![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux网络子系统
阿曼
这个作者很懒,什么都没留下…
展开
-
网络子系统大杂烩
阅读《深入理解linux网络技术内幕》和Linux2.6.37.1源码记录 三个数据结构 1.net_device 2.softnet_data 3.sk_buff softnet_data是一个cpu对应一个。 网卡接收数据的流程如下 网卡收到数据收首先会出发中断,导致执行中断处理函数dm9000_rx。 以太网驱动接收函数中的skb_reserve(skb, 2) 这原创 2012-11-10 20:25:09 · 1302 阅读 · 0 评论 -
网络子系统大杂烩三
之前分析的是网桥对输入帧的处理。 若系统未配置成网桥,则在__netif_receive_skb帧处理函数中 会继续执行后续代码,将帧提交给上层协议处理。 上层协议的处理函数在系统初始化的时候已经注册到packet_base函数指针数组中了 例如 802.2帧 对应的是llc_packet_type,其处理函数为llc_rcv 系统在初始化的时候通过/net/llc/llc_core.原创 2012-11-12 13:27:38 · 1156 阅读 · 0 评论 -
网络子系统大杂烩二
网桥 网桥属于一种虚拟设备,所以在使用之前需要先初始化和注册 网桥部分的初始化在/net/bridge/br.c中,通过初始化函数br_init函数实现 在br_init函数中通过brioctl_set(br_ioctl_deviceless_stub);来创建一个 网桥设备。brioctl_set(br_ioctl_deviceless_stub)->br_add_bridge-原创 2012-11-11 23:14:56 · 1238 阅读 · 0 评论