红联Linux门户
Linux帮助

关于网络数据发送机制的一些问题

发布时间:2008-12-17 23:32:07来源:红联作者:ppb0320
内核在调用驱动发送函数dev_queue_xmit的时候流程大概是这样的:

dev_queue_xmit()->->qdisc_run()->__qdisc_run(dev)->qdisc_restart()->dev_hard_start_xmit()->驱动发送函数,这里有几个问题想不明白:

(1)在这个过程当中并没有出现发送软中断处理函数net_tx_action(),那么net_tx_action()是在什么时候被调用呢?

(2)我看资料说驱动发送函数把数据发送出去以后要把skb加入到completion_queue中,然后再让net_tx_action()去释放这些数据,
那么就是说驱动中并不释放数据,而是在net_tx_action中一次性释放多个数据,是这样的吗?

(3)net_tx_action()中还有一部分代码也是进行发送数据,那么这部分又是什么数据呢?

这部分看的有点晕,然后还有数据接收的软中断调用时机也有点迷糊,跪求高手不吝赐教啊~~

[ 本帖最后由 ppb0320 于 2008-12-18 10:05 编辑 ]
文章评论

共有 1 条评论

  1. meimei890 于 2008-12-19 14:10:39发表:

    很强大,很含色,很暴力,非常楼主。