Linux 网桥的分析 ——计算机 0707 石龙 20073093 一、综述 网桥,类似于中继器,连接局域网中两个或者多个网段
它与中继器的不同之处就在于它能够解析它收发的数据,读取目标地址信息(MAC),并决定是否向所连接网络的其他网段转发数据包
为了能够决策向那个网段发送数据包,网桥学习接收到数据包的源 MAC地址,在本地建立一个以 MAC和端口为记录项的信息数据库
Linux 内核分别在 2
4内核中实现了网桥
2 内核和 2
4内核的实现有很大的区别,2
4中的实现几乎是全部重写了所有的实现代码
0内核版本为例进行分析
在分析具体的实现之前,先描述几个概念,有助于对网桥的功能及实现有更深的理解
冲突域 一个冲突域由所有能够看到同一个冲突或者被该冲突涉及到的设备组成
以太网使用 C S M A / C D(Carrier Sense Multiple Access with Collision Detection,带有冲突监测的载波侦听多址访问)技术来保证同一时刻,只有一个节点能够在冲突域内传送数据
网桥或者交换机,构成了一个冲突域的边界
缺省情况下,网桥中的每个端口实际上就是一个冲突域的结束点
广播域 一个广播域由所有能够看到一个广播数据包的设备组成
一个路由器,构成一个广播域的边界
网桥能够延伸到的最大范围就是一个广播域
缺省的情况下,一个网桥或交换机的所有端口在同一个广播域中
VLAN技术可以把交换机或者网桥的不同端口分割成不同的广播域
一般情况下,一个广播域代表一个逻辑网段
网桥中的 CAM表 网桥和交换机一样,为了能够实现对数据包的转发,网桥保存着许多(MAC,端口)项
所有的这些项组成一个表,叫做CAM表
每个项有超时机制,如果一定时间内未接收到以这个 MAC为源 MAC地址的数据包,这个项就会被删除