Linux网桥知识总结(beta1)——bymoonflowqq:171932120(总结自互联网)目录前言 4第一章网桥的基本概念 5第二章重要数据结构 18第三章设备和初始化 203.\bridge\] 203.\bridge\] 213.\bridge\] 213.\bridge\] ()[net\bridge\] 28第四章网桥的报文处理功能 38第五章CAM表操作 43第六章STP及相关处理 596./bridge/ 61第七章IOCTL和桥的管理 68第八章总结 69参考资料 70前言此文档是本人这段时间内学习Linux网络协议栈网桥功能相关知识,总结并且整理出来的文档。(相关的资料较多,便于开展),当然也是对互联网资源的整合。参考了锐捷的一份文档,并且参考了网上很多资源。可以说基本上总结自互联网。参考中附上我学习时参考的资料,很多,而且他们写的都非常好,导致我都不知道写啥了。不过仅仅只是为了借这次总结的机会,让个人对Linux网桥部分更加深入。因为本人初学Linux协议栈,对很多部分都还很迷茫,所以很多地方会出现失误或者不够清楚。我接触Linux时间很短,但是非常喜爱Linux,同时对网络部分非常喜爱,希望大家喜欢并且与我交流,共同进步。,通过mac地址来区分,实现几个网络或主机之间的互联。(b)showswhatiscalledastore-and-forwardbridge,whichistheschemeusedbyLinux:framesarecopiedoutoftherightportsonlyaftertheyhavebeenreceivedintheirentirety.(转自ULNI)网桥的工作原理其实很简单,就是:某个主机的消息从哪个端口进来,那么这个主机必定位与这个端口这一侧,从这个端口一定能找到这个主机,给这个主机的消息也就应该从这个端口转发。比如,一个网桥连接主机A和主机B。当主机A连接到网桥时,会告诉网桥,它在端口A。网桥会维持一个映射表,让端口A与主机A的mac地址对应。当有其他主机试图通过网桥转发目的mac地址为主机A的mac地址的消息时,网桥会通过查表来指导应该由端口A转发。同理,当网桥连接两个或两个以上主机或主机构成的网络时,也按照这个原则,维持一个记录端口和mac地址的映射表,需要转发消息的时候通过查找这个表来找到应该去的地址。当然,如果收到的消息是发给网桥本身的,就要交给上层协议来处理。这就是网桥的工作原理。重要数据结构2./bridge/,这个结构体描述一个网桥。dev是这个桥对应的设备。_bridge_port的链表头。hash[BR_HASH_SIZE]是net_bridge_fdb_entry的散列表,也是网桥MAC地址和端口的映射表CAM。_bridge{//自旋锁spinlock_tlock;//桥组中的端口列表structlist_headport_list;//网桥会建立一个虚拟设备来进行管理,这个设备的MAC地址是动态指定的,_device*dev;//_device_statsstatistics;//hash列表自旋锁spinlock_thash_lock;//_bridge_fdb_entry的哈希表,实际上就是mac和port的对应表structhlist_headhash[BR_HASH_SIZE];structlist_headage_list;unsignedlongfeature_mask;//以下定义了STP协议所使用的信息bridge_iddesignated_roo
Linux网桥知识总结 来自淘豆网m.daumloan.com转载请标明出处.