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
?
1. 网线上的电信号经过网卡驱DMA到网卡的环形FIFO里;
2. 从网卡的接收环形FIFO里copy到TCP/IP协议栈的sk_buff里;
3. 应用程序的socket调用recv()函数从协议栈的buffer里copy到用户进程的buffer里。
步骤中的2, sk_buff结构体设计得非常精巧:
C/C++ code
?
相关文章推荐
- linux scp限速传输
- Linux的test命令
- 关闭SELinux
- centos yum安装ffmpeg
- 查看linux系统版本命令 (转)
- 比较一下Linux下的Epoll模型和select模型的区别
- CentOS6.5克隆虚拟机后无法启动网卡或无法上网的解决办法
- Ubuntu输入法切换问题
- centos 6.5 网桥配置
- linux socket编程记录
- Centos查看端口占用情况和开启端口命令
- centos 用户行为监控
- CentOS 6.4 x64 minimal安装后 临时联网 以及 setup工具安装
- 嵌入式Linux常用文件系统
- ceph存储 git查看某个文件修改历史Linux下的命令
- linux 链接ln的使用 创建和删除符号连接(软、硬链接)
- linux实训
- 安装 gevent linux
- Linux 命令行中的幽默
- linux用户环境变量