linux内核网络协议栈--数据包的接收流程(二十三)

  1. 网卡在接受数据包时会产生中断,即当 有一个以太网帧到来时,网卡向内核产生一次中断;
  2. CPU收到中断信号后,执行中断处理程序,中断处理程序会设置 缓冲区地址、DMA 地址等信息;
  3. 网卡通过DMA 方式将数据包送入内核缓冲区;
  4. 网卡驱动将内核缓冲区数据封装到 skb 中送至上层协议栈;
  5. 当缓冲区数据传送至上层协议栈后,网卡驱动取消DMA 映射,缓冲区开始接受新的数据包;
  6. 当CPU 空闲的时候,软中断被调用,操作系统从sk_buffer 队列中取出数据包,将它传送至用户态缓冲区,提供给应用程 序使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值