Linux认证辅导:Linux内核中流量控制(1)Linux认证考试

文章作者 100test 发表时间 2009:11:11 16:18:36
来源 100Test.Com百考试题网


  1. 前言linux内核中提供了流量控制的相关处理功能,相关代码在net/sched目录下;而应用层上的控制是通过iproute2软件包中的tc来实现,tc和 sched的关系就好象iptables和netfilter的关系一样,一个是用户层接口,一个是具体实现,关于tc的使用方法可详将Linux Advanced Routing HOWTO,本文主要分析内核中的具体实现。

  流控包括几个部分: 流控算法, 通常在net/sched/sch_*.c中实现, 缺省的是FIFO, 是比较典型的黑盒模式, 对外只看到入队和出对两个操作. 流控结构的操作处理. 和用户空间的控制接口, 是通过rtnetlink实现的。

  以下内核代码版本为2.6.19.2。

  2. 控制入口2.1 控制入口linux流控功能反映为网卡设备的属性,表明是网络最底层的处理部分, 已经和上层的网络协议栈无

  关了:

  /* include/linux/netdevice.h */

  struct net_device

  {

  ......

  /*

  * Cache line mostly used on queue transmit path (qdisc)

  */

  /* device queue lock */

  spinlock_t queue_lock ____cacheline_aligned_in_smp.

  //这是发送数据时的队列处理

  struct Qdisc *qdisc.

  //网卡停止时保存网卡活动时的队列处理方法

  struct Qdisc *qdisc_sleeping.

  //网卡处理的数据队列链表

  struct list_head qdisc_list.

  //最大队列长度

  unsigned long tx_queue_len. /* Max frames per queue allowed */

  /* Partially transmitted GSO packet. */

  struct sk_buff *gso_skb.

  /* ingress path synchronizer */

  //输入流控锁

  spinlock_t ingress_lock.

  //这是对于接收数据时的队列处理

  struct Qdisc *qdisc_ingress.


相关文章


Linux认证辅导:Linux内核中流量控制(5)Linux认证考试
Linux认证辅导:Linux内核中流量控制(4)Linux认证考试
Linux认证辅导:Linux内核中流量控制(3)Linux认证考试
Linux认证辅导:Linux内核中流量控制(2)Linux认证考试
Linux认证辅导:Linux内核中流量控制(1)Linux认证考试
linux传统网络配置命令与ip高级路由命令Linux认证考试
Linux或Unix下如何查看DB2所占用的端口号Linux认证考试
Linux硬盘分区格式化Linux认证考试
linux认证辅导:linux开启telnet服务Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛