1、数据包到达网卡设备
2、收到数据后网卡根据设置的hash规则(多队列网卡),决定将数据放到哪个ring buffer,然后通过DMA将数据放到内存,也就是网卡的ring buffer中
3、设备产生硬件中断,根据网卡设置的中断绑核通知对应CPU处理数据报文
4、对应CPU执行网络设备注册的中断处理函数,响应硬中断,将该设备添加到CPU轮询设备队列中,关闭网络设备中断响应,并唤醒软中断处理
5、系统根据RPS和RFS的设置,确定软中断在哪个CPU执行,对应CPU的NAPI软中断处理例程从CPU的轮询队列中按额度从ring buffer中poll数据报文skb并递交上层协议栈处理,收完报文后,恢复网卡设备中断响应
6、协议栈处理报文
7、报文递交至应用程序socket的receive buffers中
数据包接收流程
最新推荐文章于 2023-03-23 22:23:34 发布