探索集线器、交换机和路由器——交换机的包转发操作

1、交换机根据地址表进行转发:

在研究交换机是如何将网络包转发到目的地之前,先来看一下交换机的内部结构:

大家可以认为交换机的每个网线接口后面都是一块网卡,网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。但交换机的工作方式和网卡有一点不同。网卡本身具有MAC地址,并通过核对收到的包的接收方MAC地址判断是不是发给自己的,如果不是发给自己的则丢弃;相对地,交换机的端口不核对接收方MAC地址,而是直接接收所有的包并存放到缓冲区中。因此,交换机的端口不具有MAC地址(内置用于实现管理等功能的处理器的交换机除外)。

将包放入缓冲区后,需要查询一下这个包的接收方MAC地址是否已经在MAC地址表中有记录了。MAC地址表主要包含两个信息,一个是设备的MAC地址,另一个是该设备连接在交换机的哪个端口上。

再来看一下交换电路到底是如何工作的:

交换开关是电子控制的,通过切换开关的状态就可以改变信号的流向。网络包通过这个网格状的电路在端口之间流动。每个交叉点上的交换开关都可以独立工作,因此只要路径不重复,就可以同时传输多路信号。

在发送信号的过程中,还需要对接收信号进行监控,这一点和网卡一样。如果在发送过程中检测到其他设备发送信号,就意味着出现了信号碰撞,这时需要发送阻塞信号以停止网络中所有的发送操作,等待一段时间后再尝试重新发送,这一步和网卡也是一样的(这个操作过程的前提是终端通过集线器连接到交换机,也就是半双工模式的工作方式)。

2、MAC地址表的维护:

对MAC表的维护操作分为两种。第一种是收到包时,将发送方MAC地址以及其输入端口的号码写入MAC地址表中。另一种是删除地址表中某条记录的操作,这是为了防止设备移动时产生问题,所以需要在一段时间不使用后就自动删除。过时记录从地址表中删除的时间一般为几分钟,因此在过时被删除之前,依然可能有发给该设备的包到达交换机。这时,通信就会发生错误。遇到这种情况,只要重启一下交换机,地址表就会被清空并更新正确信息。

3、特殊操作:

(1)当交换机发现一个包要发回到原端口时,就会直接丢弃这个包。

(2)当地址表中找不到指定的MAC地址时,交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上。

(3)如果接收方MAC地址是一个广播地址(MAC地址中的FF:FF:FF:FF:FF:FF和IP地址中的255.255.255.255都是广播地址),那么交换机会将包发送到除源端口之外的所有端口。

4、全双工模式可以同时进行发送和接收:

全双工模式是交换机特有的工作模式,可以同时进行发送和接收操作。它是人们对于以太网规范进行的修订,由于在这一工作模式下停用了碰撞检测,所以它比半双工模式速度要快(除了网络包数量很少的情况),同时传输的数据量更大,性能更高。

使用双绞线时,发送和接收的信号线是各自独立的(1000BASE-T规格的千兆以太网中,发送和接收的信号线不是独立的,而是在同一条线上同时传输两个方向的信号,但是PHY(MAU)模块可以将发送和接收的信号进行分离),因此在双绞线中信号不会发生碰撞。网线连接的另一端,即交换机端口和网卡的PHY(MAU)模块以及MAC模块,其内部发送和接收电路也是独立的,因此,只要不使用集线器,就可以避免信号碰撞。

5、自动协商——确定最优的传输速率:

随着全双工模式的出现,如何在全双工和半双工模式之间进行切换的问题也产生了。在全双工模式刚出现的时候,还需要手动进行切换,但是这样太麻烦了,于是后来出现了自动切换工作模式的功能。相互连接的双方探测对方是否支持全双工模式,并自动切换成相应的工作模式。此外,还能探测对方的传输速率并进行自动切换。这种自动切换的功能称为自动协商。

在以太网中,当没有数据在传输时,网络中会填充一种称为连接脉冲的脉冲信号,使网络中一直都有信号流过,从而能够检测对方是否在正常工作,或者说网络有没有正常连接。以太网设备的网线接口周围有一个绿色的LED指示灯,它表示是否检测到正常的脉冲信号。如果绿灯亮,说明PHY(MAU)模块以及网线连接正常(MAC模块、缓冲区、内存和总线部分的异常无法通过这个指示灯来判断)。

在双绞线以太网规范最初制定的时候,只规定了按一定间隔发送脉冲信号,这种信号只能用来确认网络是否正常。后来,人们设计出了如下图所示的具有特定排列的脉冲信号,通过这种信号可以将自身的状态告知对方(要注意的是由于自动协商功能是后来才写入以太网规范的,所以并非所有设备都支持)。

Guess you like

Origin blog.csdn.net/qq_38386085/article/details/97049043