- 网卡在接受数据包时会产生中断,即当 有一个以太网帧到来时,网卡向内核产生一次中断;
- CPU收到中断信号后,执行中断处理程序,中断处理程序会设置 缓冲区地址、DMA 地址等信息;
- 网卡通过DMA 方式将数据包送入内核缓冲区;
- 网卡驱动将内核缓冲区数据封装到 skb 中送至上层协议栈;
- 当缓冲区数据传送至上层协议栈后,网卡驱动取消DMA 映射,缓冲区开始接受新的数据包;
- 当CPU 空闲的时候,软中断被调用,操作系统从sk_buffer 队列中取出数据包,将它传送至用户态缓冲区,提供给应用程 序使用。
linux内核网络协议栈--数据包的接收流程(二十三)
最新推荐文章于 2023-01-05 16:19:17 发布