网络设备,即网络接口,在操作系统核心级上处理包的发送和接收。与块设备一样,网络接口也在特定的数据结构之中注册自己,以利于在跟外界进行包交换的时候被调用;但是它不象块设备一样存在于文件系统当中。二者最主要的区别在于:块设备是收到要求,才向内核发送一个块缓冲区的内容;网络接口是主动向内核推入从接口进入的包。Linux核心的网络子系统,在设计的时候是完全独立于协议的,对网络协议(如IP对IPX或其它)和硬件协议(以太网对令牌环等等)都是一样的。一个网络接口的驱动和内核的交互是一次处理一个网络包,这样就可以让协议问题巧妙的隐藏在驱动后面,也可以让物理上的传输隐藏在协议后面。
在下面的讲述中,我们将以一个基于内存的(即纯软件的)模块化网络接口,SNULL,来作为示例。为了简化讨论,我们让snull使用以太网协议并传输IP包。
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论