Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245393
  • 博文数量: 22
  • 博客积分: 513
  • 博客等级: 下士
  • 技术积分: 209
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 17:47
个人简介

生命的奇迹

文章分类

全部博文(22)

文章存档

2014年(1)

2013年(9)

2012年(4)

2011年(8)

分类: LINUX

2012-12-15 07:12:02

数据发送路径:
    高层网络代码负责分配SKB以存储网络数据包,然后将该SKB传到驱动程序的发送函数中。驱动程序的发送函数一般会使用DMA来将位于主存中的SKB传输到网络设备内存中,再由硬件逻辑发送出去。硬件在成功发送完一个数据帧后,通常会以中断的方式通知处理器,接下来相应驱动程序的中断处理函数被调用来处理这种情况。对于成功发送分组产生的中断,在其中断处理函数中会释放该分组所在的SKB。
接收数据路径:
    底层网络设备在成功将一个分组传输到主存中后,也会调用中断的方式通知驱动程序,后者负责分配一个新的SKB来容纳该新入的分组,然后通过调用netif_rx函数通知网络子系统高层有新数据包的到达。

阅读(1669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~