在网络中最多的设备就是交换机。这是一种把数据从一个端口交换到或者转发到另一个端口的设备。它的工作原理非常的简单,因此转发的速度非常的快。
每一张网卡都有一个地址叫做物理地址也叫做MAC地址。由48位二进制数组成,通常以6组16进制数来表示每组8位二进制数(1位十六进制数=4位二进制数)例如11-22-33-AA-BB-CC(可以使用:或-分割),交换机就是依据MAC地址来进行交换转发的!因为MAC地址属于osi7层参考模型中的第2层数据链路层,所以如果没有特殊的强调通常的交换机指的是二层交换机,在交换机内部所转发的数据叫做帧。
交换机有多个网络接口或者也称为端口,每一个端口都可以通过网线连接设备。应用层产生数据并逐层向下传递封装,到达第2层以后会封装网卡的 MAC地址作为发送者的源MAC地址,紧接着在最外层封装目的地的MAC地址,当这个已经封装好的数据包通过物理层发送到达交换机以后,交换机首先会读取位于最外层的目的MAC地址和内部存储的 MAC地址表进行比对,同时读取发送者的 MAC地址并更新自己的MAC地址表。 MAC地址表中记载着从哪一个端口接收到的数据包的MAC地址是多少,通过比对就知道目的MAC地址所代表的设备连接在交换机的哪一个端口,随即通过这个端口把数据发送出去,这种数据帧交换叫做单播。
那如果交换机内部的MAC地址表没有目的,MAC地址怎么办?很简单,构建一个目的地址是全体设备都认可的MAC地址的询问数据帧发送给除了接收到数据的接口以外的其他接口,在一定的时间内看是否有设备来回应这,如果没有回应就会丢弃已经收到了数据帧,如果有回应那么记录下这个回应对应的关系,有了对应关系以后,就按照单播的处理方式来交换数据帧。这种全体设备都认可的MAC地址的数据帧的转发方式就叫做广播也叫做泛洪。就像学校和村里的大喇叭一样,如果不确定那么就喊一嗓子所有人都可以听到,当事人自然需要回应,而无关人员则忽略该信息。而广播的MAC地址是全F也就是 FF:FF:FF:FF:FF FF。
但是普通交换机有一个问题那就是广播。虽然无关的设备可以忽略该信息,但是毕竟也是需要经过处理的,如果广播的数量非常庞大,比如连接了几百台的电脑的交换网络,如果同时发送这种广播数据处理信息量将是恐怖的,使交换机的CPU利用率居高不下,导致网络堵塞无法使用。于是在大型的交换网络中用虚拟局域网VLAN技术来避免这种众多的广播数据!
还没有评论,来说两句吧...