您的位置:首页 > 运维架构 > Linux

linux2.6内核网卡数据流过程

2015-07-07 10:10 387 查看
linux 2.6版的内核,网络数据从网线到应用程序需经过3次copy,分别是:

1. 网线上的电信号经过网卡驱DMA到网卡的环形FIFO里;

2. 从网卡的接收环形FIFO里copy到TCP/IP协议栈的sk_buff里;

3. 应用程序的socket调用recv()函数从协议栈的buffer里copy到用户进程的buffer里。

步骤中的2, sk_buff结构体设计得非常精巧:

C/C++ code

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: