发布时间:2014-01-03 14:07:33
数据包在网络协议栈中所走的路径根据数据包是传输、接收还是转发不同而不同: 但虚拟设备可能有所不同,如回环设备不会使用硬件设备的协议栈,而有些虚拟设备可以避免硬件的某些限制如MTU等,因而可以提高性能。 网络设备与内核通信有两种方式: 轮询:不断读取设备的一个内存寄存器,或当一个定时器到期后检查.........【阅读全文】
发布时间:2014-01-03 14:07:28
网络设备在系统中注册、注销和关闭、打开等事件都可以通知给相应的内核组件或用户空间应用程序,其中内核组件通过netdev_chain通知链获取消息,而用户空间应用程序则通过注册Netlink RTMGRP_LINK多播群组获取事件消息。 .........【阅读全文】
发布时间:2014-01-03 14:07:19
在内核中,网络设备通过函数register_netdev和unregister_netdev在内核中注册和注销,这两个函数对实际操作函数register_netdevice和unregister_netdevice进行封装,在调用这两个函数之前负责上锁。 .........【阅读全文】
发布时间:2014-01-03 14:07:13
net_device结构是一个非常庞大的数据结构,其中的字段包含了从硬件层、网络层和传输层等各种功能涉及的参数,因此,其初始化也是分批由不同的函数完成的,相当于每个函数负责其中相关联的一些子集字段,大致分为: 设备驱动程序:完成与硬件配置相关的IRQ、I/O内存以.........【阅读全文】
发布时间:2014-01-03 14:06:57
NIC注册和注销的通用架构 Linux系统中NIC网络设备驱动程序利用网络代码进行注册和注销有其通用的架构,这里以PCI Ethernet NIC为例,其他设备类型只是所以函数名称和调用方式不同,主要依据于设备总线提供的接口。 其中(a)为设备注册的大致流程图,而(b)为设备注销的流.........【阅读全文】