本节书摘来自异步社区《Network Warrior中文版(第2版)——思科网络工程师必备手册》一书中的第3章,第3.3节,作者【美】Gary A. Donahue,更多章节内容可以访问云栖社区“异步社区”公众号查看
3.3 自动协商故障
Network Warrior中文版(第2版)——思科网络工程师必备手册
对于10M/100M链路,发生自动协商故障时,很可能是链路的一端被设置为100M/全双工,而对端则被设置为了自动协商。这最终会导致链路两端(网卡/接口)分别运行100M/全双工和100M/半双工。
图3-1所示为一条半双工链路。对于半双工链路,信号接收线路(RX)会受到监控1。在RX线路畅通之前,若有帧现身于RX线路,将不会被发送2。要是TX(信号发送)线路发送帧的同时,RX线路收到了帧,便发生了冲突。冲突会导致冲突错误计数器3递增,在随机回退(back-off)延迟之后,未发送成功的帧将会被重传。联想到现代化交换式网络环境,这听起来似乎有点“毛骨悚然”,但请不要忘记,在以太网发展的初级阶段,数据可都是在单条线路上收发的。交换机和双绞线全是后来才发明的。
图3-2所示为一条全双工链路。在全双工操作模式的操作中,RX线路不受监控,而总是“认为”TX线路可用4。由于RX和TX线路完全独立,因此在全双工模式的操作中,不会发生冲突。
当链路两端(接口/网卡)分别为全双工和半双工时,半双工那端就会发生大量的冲突。由于全双工那端在发送帧时不检测RX线路,因此只要全双工侧的设备有较多数据待发,便会不停地发帧。而由于链路对端设备接口(网卡)为半双工,因此不但会侦听RX线路,而且只有在RX线路可用(畅通)时才会发帧。因为那台半双工侧设备很难获得发帧的机会,所以只能留下“劣迹斑斑”的冲突记录,并会给人以一种网络设备运行速度变慢的感觉。此类故障其实并不难查,因为半双工接口通常都会自报冲突,而全双工接口则不然。接口全双工即意味着,无需执行clear-to-send(清除发送)条件测试,对于这种情况,全双工接口不会记录任何错误。故障的出现是拜过量冲突所赐,但只限于半双工一侧。
图3-3所示为一条发生了自动协商故障的链路。
注意
实战中,要是看见某个设为自动协商的接口,最终协商成了100M/半双工,那么其对端接口多半为100M/半双工。如今,不支持全双工的100Mbit/s端口已很难见到,因此,只要正确配置了自动协商模式,交换机么端口最终不可能最后协商成半双工。
1译者注:原文是“In a half-duplex environment, the receiving (RX) line is monitored”。好在英语语法支持被动语态,请问作者,RX线路受“谁”的监控?译者不知作者葫芦里所卖何药,只能直译。
2译者注:原文是“If a frame is present on the RX link, no frames are sent until the RX line is clear”。再问作者,帧被谁发送?此外,前半句是“RX link”,后半句是“RX line”。译者很困惑,译文为直译。
3译者注:请问作者,“冲突错误计数器”是什么,从哪儿来?
4译者注:原文是“Figure 3-2 shows a full-duplex link. In full-duplex operation, the RX line is not monitored, and the TX line is always considered available”。不受“谁”监控,被“谁”视为可用,作者并没有说通过,译者只能直译。