linux网桥知识总结

linux网桥知识总结

ID:10884821

大小:1.80 MB

页数:71页

时间:2018-07-08

linux网桥知识总结_第1页
linux网桥知识总结_第2页
linux网桥知识总结_第3页
linux网桥知识总结_第4页
linux网桥知识总结_第5页
资源描述:

《linux网桥知识总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux网桥知识总结(beta1)——bymoonflowqq:171932120(总结自互联网)目录前言4第一章网桥的基本概念51.1网桥的作用51.2网桥的工作原理5第二章重要数据结构62.1net_bridge62.2net_bridge_port72.3net_bridge_fdb_entry82.4net_device92.4数据结构关系18第三章设备和初始化203.1br_init[netbridgebr.c]203.2br_ioctl_deviceless_stub[netbridge

2、br_ioctl.c]213.3br_add_bridge[netbridgebr_if.c]213.4br_dev_setup[netbridgebr_dev_setup.c]243.5br_add_if()[netbridgebr_if.c]243.6LLC28第四章网桥的报文处理功能294.1网桥位置294.1.1netif_receive_skb函数314.1.2br_handle_frame函数344.1.3br_handle_frame_finish函数364.1.3附上br_forw

3、ard.c38第五章CAM表操作435.1CAM查找流程435.2相关代码435.2.1重点函数435.2.2br_fdb.c函数解析43第六章STP及相关处理596.1STP处理过程596.2STP相关信息/net/bridge/br_private_stp.h596.4STP选举过程616.4BPDU相关函数61第七章IOCTL和桥的管理687.1IOCTL相关函数68第八章总结69参考资料70前言此文档是本人这段时间内学习Linux网络协议栈网桥功能相关知识,总结并且整理出来的文档。本文中的参考内核代码

4、为2.6.24(相关的资料较多,便于开展),当然也是对互联网资源的整合。参考了锐捷的一份文档,并且参考了网上很多资源。可以说基本上总结自互联网。参考中附上我学习时参考的资料,很多,而且他们写的都非常好,导致我都不知道写啥了。不过仅仅只是为了借这次总结的机会,让个人对Linux网桥部分更加深入。因为本人初学Linux协议栈,对很多部分都还很迷茫,所以很多地方会出现失误或者不够清楚。我接触Linux时间很短,但是非常喜爱Linux,同时对网络部分非常喜爱,希望大家喜欢并且与我交流,共同进步。第一章网桥的基本概念1

5、.1网桥的作用网桥工作在ISO层次结构中的二层,通过mac地址来区分,实现几个网络或主机之间的互联。1.2网桥的工作原理Figure(b)showswhatiscalledastore-and-forwardbridge,whichistheschemeusedbyLinux:Ethernetframesarecopiedoutoftherightportsonlyaftertheyhavebeenreceivedintheirentirety.(转自ULNI)网桥的工作原理其实很简单,就是:某个主机的消息从

6、哪个端口进来,那么这个主机必定位与这个端口这一侧,从这个端口一定能找到这个主机,给这个主机的消息也就应该从这个端口转发。比如,一个网桥连接主机A和主机B。当主机A连接到网桥时,会告诉网桥,它在端口A。网桥会维持一个映射表,让端口A与主机A的mac地址对应。当有其他主机试图通过网桥转发目的mac地址为主机A的mac地址的消息时,网桥会通过查表来指导应该由端口A转发。同理,当网桥连接两个或两个以上主机或主机构成的网络时,也按照这个原则,维持一个记录端口和mac地址的映射表,需要转发消息的时候通过查找这个表来找到应

7、该去的地址。当然,如果收到的消息是发给网桥本身的,就要交给上层协议来处理。这就是网桥的工作原理。第二章重要数据结构2.1net_bridge在/net/bridge/br_private.h,这个结构体描述一个网桥。dev是这个桥对应的设备。port_list是net_bridge_port的链表头。hash[BR_HASH_SIZE]是net_bridge_fdb_entry的散列表,也是网桥MAC地址和端口的映射表CAM。structnet_bridge{//自旋锁spinlock_tlock;//桥组中

8、的端口列表structlist_headport_list;//网桥会建立一个虚拟设备来进行管理,这个设备的MAC地址是动态指定的,通常就是桥组中一个物理端口的MAC地址structnet_device*dev;//网桥中虚拟网卡的统计数据structnet_device_statsstatistics;//hash列表自旋锁spinlock_thash_lock;//存放的是net_bridge_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。