交换机的功能与工作原理
2.1.1交换机的功能
交换机是搭建局域网时不可或缺的集线设备,其主要功能就是连接设备和隔离网络中的广播。
1、连接设备
局域网络其实就是若干计算机的集合。而这些计算机只有借助交换机才能相互连接在一起,因此,交换机往往拥有数量众多的端口。作为整个局域网的核心与枢纽,交换机的性能直接决定网络性能,交换机端口的传输速率。因此,局域网络的升级往往就是交换机的升级。前提条件是网络布线必须能够满足网络传输的需要。下图为Cisco Catalyst 系列交换机
2、隔离碰撞
以太网的工作机制为先监听后讲话,类似于会议讨论时的自由发言。当某个人想发言时首先要听一听(监听)有没有其他人在讲话。如果有就再等待一段时间,如果没有就立即起立发言,如果有两个人同时发言(碰撞),那么两个人就会同时坐下,然后稍等片刻后其中一人再起立发言。这种机制虽然保证了同一时刻只有一个人在发言,但是问题也随之出现了:
1)当两个人需要私下交流时,也将占用大家发言的时间。
2)当多个人需要相互交流时,只能耐心等待其他人讲话,而不能同时进行。
3)人数越多同时发言的可能性就会越大,浪费的时间也就越多。
由集线器构建的网络就是这样一个低效率的广播网络。对于集线器而言,它对连接到自己连接的计算机不会做出任何识别和记录,它的任务就是将一个端口传来的数据广播到其他所有的端口上。其他端口如果是自己的数据就接收,如果不是自己的就丢弃。由于集线器中只能同时存在一个广播,所以同一时刻只能有两个端口传递数据。同时不断地碰撞将耽误大量宝贵的传输时间,从而降低网络的传输效率。
交换机则可以有效的解决这个问题,由于交换机可以将网络“分段”。所以它的每一个端口就是一个“碰撞”域,可以将碰撞有效地隔离在每个端口内(见下图),只允许必要的网络流量通过交换机端口。同时通过交换机的过滤和转发,可以有效地隔离广播风暴,减少误包和错包的出现,避免共享冲突。
2.1.2交换机的工作原理
交换机位于OSI模型中的链路层(第二层),是一种基于MAC地址识别,完成数据的封装和转发的网络设备。交换机可以学习MAC地址,并把其存放在内部地址表中,通过在数据帧的始发和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。因此,交换机就像是一个业务熟练的调度员,能够准确地将装载数据的汽车从出发路口发送到目的地路口。
计算机借助网卡连接到局域网络,而每块网卡都有与生俱来的“胎记”--MAC地址。交换机通过“学习”,会把连接到每个端口的MAC地址记住,形成一个端口与MAC地址对应表。
交换机的工作过程:
1)当交换机从某个端口收到一个数据包,先读取包头中的源MAC地址,从而建立端口与源MAC地址的对应关系,并将其添加到地址表。由于交换机能够自动根据收到的以太网帧中的源MAC地址更新地址表中的内容,所以,交换机使用的时间越长,学习到的MAC地址越多,未知的MAC地址就越少,因而广播的包就越少(如果目的MAC地址未知,则将该包广播处理),处理速度就越快。
2)读取包头中目的MAC地址,并在地址表中查找相应的端口。
3)如果在地址表中找到该MAC地址对应的端口,则把数据包直接复制到这个端口上。由于不是将该帧发送到所有端口,从而使那些既非源端口又非目的端口的端口间应然可以进行相互间的访问,从而提供更高的传输速率。
4)如果在地址表中没有找到该MAC地址对应的端口,即该目的MAC地址是首次出现,则将该帧发送到所有其他的端口,相当于该帧是广播帧。拥有该MAC地址的网卡在接收到该广播帧后,将立即做出应答,从而使交换机将“端口号-MAC地址”对照表添加到地址表。
不断重复上述的过程,交换机即可实现所有数据的转发,并逐步学习和记忆整个网络中的MAC地址,不断丰富和完善自己的MAC地址表。但由于交换机中内存有限,因此,能够记忆的MAC地址的数量也是有限的。因此交换机设计了一个“自动老化时间”机制,若某个MAC地址在一定时间内(默认为300S)不再出现,那么交换机将该MAC地址自动从地址表中删除,下次再出现后重新学习。另外,由于地址表是保存在内存中,因此,当交换机断电再重新启动,地址表将清空,必须重新学习。
总结,交换机的工作过程概括为:“学习->记忆->接收->查找->转发”。通过广播学习“MAC地址”,将“MAC地址-端口号”的对应关系创建一个地址表“记忆”在内存中。从源端口“接收”到数据后,在地址表中“查找”与目的MAC地址相对的端口,将数据帧“转发”至目的端口。