本章的主要内容是经过网线传输的网络包,如何经过集线器,交换机与路由器,最终进入互联网。本篇首先来介绍集线器与交换机的转发操作。
1 网络信号在网线与集线器中的传输
从计算机发出来的网络包需要经过集线器,交换机与路由器的转发操作,最终到达目的地,如下图所示。
1.1 网线与抑制信号衰减
网络包从网卡出发后就到达网线。以太网信号的本质是正负变化的电信号,而随着网线的延长,能量会逐渐损失,产生信号衰减。
信号的能量损失不只是能量变弱,还会导致信号形状失真。在方形信号的上升与下降沿部分,信号变化剧烈,频率很高。而频率越高的信号,其能量损失率越高,会导致原来是直角的上升沿变圆变缓。此外传输过程中的噪声也会导致信号的波形失真。信号的衰减和噪声结合起来,可能导致对信号0和1的误判,产生通信错误。网线采用双绞线的形式,就是为了抑制噪声。
噪声的来源是电磁波。金属导体周围变化的电磁波会在导体中产生电流,这种电流和信号混杂在一起,会使真实的信号产生失真,这就是噪声。
噪声分为两种,一种是网线外的其他设备泄露的电磁波产生的噪声。双绞线将信号缠绕成螺旋结构,在相邻的两段导线中产生的电流相反,互相抵消,也就抑制了噪声对真实信号的干扰。
另一种则是双绞线中相邻网线的电磁波产生的噪声。虽然网络信号的电流很微弱,但双绞线中的两根网线距离太近,产生的噪声仍然会对信号产生影响,这种内部产生的噪声称为串扰。抑制这种噪声则从双绞线的扭绞间隔(节距)入手。通过调整节距,使正负电流相互抵消,达到抑制内部串扰的目的。
1.2 集线器的转发操作
信号到达集线器后,会被转发到整个网络之中。集线器的原理是将接收到的包转发到连接到集线器的各个端口。每个端口后有和网卡具有相同功能的PHY模块,需要接收信号,因此需要将发送与接收网线交叉连接,使其能够正常接收信号。
信号进入集线器的PHY模块后,会进入中继电路,通过中继电路将信号转发到各个端口上,即转发到连接在各个端口的设备上。集线器只是进行原样转发,因此信号的失真与噪声等也会被转发。如果其中出现什么错误,校验和重发就是TCP/IP需要完成的任务了。
2 交换机的包转发操作
2.1 交换机的包转发原理
接下来看一下交换机是如何进行包转发的。
首先信号进入PHY模块,这部分与集线器相同,也需要交叉接线。接下来PHY模块将信号转换为通用格式并传递给MAC模块。MAC将信号转换为数字信息,并进行FCS校验,如果没有问题则放入缓冲区中。这部分操作与网卡基本相同,可以认为交换机的每个端口后面都是一张网卡。而与网卡的不同之处在于,交换机的端口不具有MAC地址。
但是接下来交换机要根据网络包中的接收方MAC地址来确定转发的目的地,这要如何确认呢?交换机中存放了MAC地址表,表中的信息记录了每个端口与连接到该端口的设备的MAC地址之间的对应关系。这样根据网络包中的接收方MAC地址,可以从表中查询到对应的端口号,也就可以将网络包转发到对应端口的设备上了。
交换电路的结构如图所示。
输入端口与输出端口通过一系列信号线交叉连接。每个交叉点都有一个切换开关。根据需要可以选择横向连通或者纵向连通,这样就可以实现将信号从任意一个输入端口发送到任意一个输出端口。
2.2 交换机MAC地址表维护
交换机需要根据MAC地址表来确定如何转发,因此交换机需要对MAC地址表进行维护。
维护操作分为两种。一种是在收到包时,将发送包的MAC地址与端口号写入地址表中。此后如果收到发往这个地址的包时,就可以转发到相应端口。只要接到交换机上的设备发送过一次包,其地址就会被记录到MAC地址表中。
另一种是删除地址表中的某条记录。某设备从交换机上移除后,如果收到发往该地址的包,仍然发往地址表中对应的端口,就会产生错误。对于这种情况,采取的措施是地址表中的记录在一段时间不使用后就自动删除。
交换机进行转发的过程中可能遇到一些异常情况。比如经过查询MAC地址表,发现包的目标端口与源端口是同一个端口。这种情况下会导致重复发送两次相同的包,导致通信异常。因此遇到这种情况时,交换机会直接丢弃这个包。
此外,还有可能出现包的目的地址在MAC地址表中查询不到的情况。出现这种情况可能是因为接入的设备还未发送过包,因此MAC地址还未记录到表中;还有可能是该设备已经移除了。这种情况下交换机无法判断,会将包发送到除源端口外的所有端口。
综上,交换机对MAC地址表的维护是自动进行的,不需要手动进行维护。即使出现了异常,重启交换机就可以更新MAC地址表,恢复正常使用。
2.3 交换机的自动协商
与集线器不同,有些交换机支持全双工模式,即发送与接收可以同时进行。相互连接的双方可以探测对方是否支持全双工模式,并切换成相应的工作模式。此外还可以探测对方的传输速率并进行自动切换,这一机制被称为自动协商。
在以太网中没有数据信号时,会填充一种称为连接脉冲的信号,从而能够检测对方是否正常工作,或者说网线是否正常连接。这种信号可以驱动网口周围的绿色LED灯点亮。如果绿灯亮,则说明PHY模块与网线连接正常。
这种脉冲信号最初只能用于确认网络连接是否正常。后来在脉冲信号中加入了通知自身状态的信号。通过这种信号,设备可以将自己支持的工作模式和传输速率告知对方,这样就可以选择最优的组合进行通信了。
标签:读书笔记,集线器,端口,地址,Chapter3,MAC,交换机,信号 From: https://blog.csdn.net/Ocean1994/article/details/143644262