准备接收:
准备传输:
每个cpu都有一个output_queue队列,里面包含有数据要传输的设备。每个设备有自己的qdisc队列(若设备的队列规则存在时),里面包含该设备需要发送的sk_buff队列(若在dev_queue_xmit传输失败,则在软中断里面重新发送)。
dev->qdisc指向一个队列的实例,里面包含了队列本身以及操作队列的方法(enqueue、dequeue、requeue)。这些方法的集合组成了一种队列规则(skb将以某种规则入队、以某种规则出队,并不一定是简单的先进先出),这样的规则可用于流量控制。
有些设备没有队列,如回环设备:每当传输一个帧时,就会立刻被传递出去,但是因为没有队列可以让帧重新排入,如果有地方出错,帧就会被丢弃,没有第二次机会(TCP有重传机制,所以还是不会丢,但是UDP就丢了)。
《深入理解Linux网络技术内幕》阅读笔记(十一)
最新推荐文章于 2024-08-13 17:03:22 发布