
上图是用一个网桥连接的两个网络,网桥的A端口连接A子网,B端口连接B子网,为什么网桥知道哪些数据包该转发,哪些包不该转发呢?那是因为它有两个表A和B,当有数据包进入端口A时,网桥从数据包中提取出源MAC地址和目的MAC地址。
一开始的时候,表A和表B都是空的,没有一条记录,这时,网桥会把数据包转发给B网络,并且在表A中增加一条MAC地址(把源MAC地址记录表中),说明这个MAC地址的机器是A子网的,同理,当B子网发送数据包到B端口时,网桥也会记录源MAC地址到B表。
当网桥工作一段时候后,表A基本上记录了A子网所有的机器的MAC地址,表B同理,当再有一个数据包从A子网发送给网桥时,网桥会先看看数据包的目的MAC地址是属于A子网还是B子网的,如果从A表中找到对应则,抛弃该包(因为该包在HUB中已经被转发),如果不是,则转发给B子网,然后检查源MAC地址,是否在表中已经存在,如果不存在,在表A中增加一条记录。
噢,或许你现在会问了,为什么需要两张表呢,一张表不行么??嗯~刚才把表一分为二是为了便于理解,实际上,真正的网桥里面存的应该是一张表(当然有可能为了提速,或者其他原因,它也可能把信息存为多张表,这个得看它怎么实现了~),如果是一张信息表,表里记录的应该是:MAC-PortNum,所以它是具有学习功能的。
网桥相当于二层交换机它可以在Layer2“桥接”两个网段。它比HUB强一些的是,它分离了两个网段,不会把一个网段内部的packet广播到另一个网段。因此,两个网段之间不会产生不必要的信号冲突碰撞。举例:AB在桥东,CD在桥西,AB对话时,CD也可以对话。AC对话时,BD大致要避让。
交换机
交换机(Switch)由输入输出接口以及具有交换分组或信元等数据单元能力的转发逻辑组成的网络设备。转发逻辑描述了用于交换技术的规则,实现数据单元的转发,输入输出端口是物理的和逻辑的接口,用来连接到需要交换数据单元的通信网络。

1.交换机的功能
交换机的功能是连接计算机、服务器、网络打印机、网络摄像头、IP电话等终端设备,并实现与其它交换机、无线接入点、路由器、网络防火墙等网络设备的互联,从而构建局域网络,实现所有设备之间的通信。
2.交换机的工作原理
交换机位于OSI参考模型中的第二层(数据链路层),交换机的工作依赖于对MAC地址的识别(所有的网络设备都有一个唯一的MAC地址,通常是由厂商直接烧录进网卡中)。
当交换机从其某个端口收到一个数据包时,先读取包头中的源MAC地址(即发送该数据包的设备网卡的MAC地址),将该MAC地址和端口对应起来添加到交换机内存里的地址表中;
然后再读取包头中的目的MAC地址,对照内存里的地址表看该MAC地址与哪个端口对应,如果地址表中有该MAC地址的对应端口,则将该数据包直接复制到对应的端口上,如果没有找到,则将该数据帧作为一个广播帧发送到所有的端口,对应的MAC地址设备会自动接受该帧数据,同时,交换机将接受该帧数据的端口与这个目的MAC地址对应起来放入内存中的地址表中。
知识总结:
中继器、集线器、网桥、交换机、路由器、网关
