网络数据接收过程经历了什么

解析数据接收的过程经历了什么
1.物理网卡
- 物理网卡接收(
vmware的网络适配器就是一个网卡,是vmware模拟的) - 物理网卡是光信号或者电信号与数字信号的相互转换
2.NIC
- 接收后每个网卡都会配对的有一个网络适配器(
NIC)- 问题,
NIC什么数据结构存? - 使用
ifconfig就是查看NIC的数量以及相关信息 - 网卡每来一帧数据
NIC都会将它组织成sk_buff(其中有很多指针,指向数据包中的各个层的头部),发送给协议栈,协议栈就解析其各个头
- 问题,
3.内核协议栈
NIC把数据抛给内核协议栈,协议栈解析其sk_buff中指向的各个头,注意这个协议栈是所有网卡共用的- 协议栈与
NIC驱动的数据交互是怎样的- 网卡每来一帧数据
NIC都会将它组织成sk_buff(其中有很多指针,指向数据包中的各个层的头部),发送给协议栈,协议栈就解析其各个头
- 网卡每来一帧数据
- 协议栈与
4.标准接口层Posix API
- 标准接口层调用各种网络系统调用
5. 应用层
应用层就接收到了…
上述过程发生的拷贝
-
网卡数据拷贝到
NIC,组织出sk_buff -
APP调用recv..将数据从内核态拷贝到用户态


