3.2 自动协商的运作方式
Network Warrior中文版(第2版)——思科网络工程师必备手册
首先,来看一下自动协商干不了的事儿:在接口上激活自动协商功能时,该机制既不会自动测出以太网链路对端接口的配置,也不会针对测出的配置,随即与之匹配。但很多网管人员都对此不明就里,从而导致了许多问题。
自动协商是一种协议,与所有协议一样,只有链路两端同时运行时,协议机制方可生效。换句话说,若链路一端运行了自动协商,而对端却没有,那么该机制就不能自动测出链路对端的速度和双工配置。要是链路对端也开启了自动协商功能,那么链路两端的接口(网卡)便能够共同确定最佳速度和双工模式。每端接口都会通告自己所能运行的速度和双工模式,于是,便可选择速度与双工的最佳配对模式(优选较高的速度,并配以全双工)。
人们对自动协商存在误解,主要是因为自动协商看起来似乎总能大功告成。这要拜赐于一种叫做并行检测(parallel detection)的特性,在自动协商的过程中,若未发现对端链路开启自动协商功能,并行检测特性就会“出手干预”。该特性的运作方式是:将接收自本端10Base-T、100Base-TX以及100Base-T4驱动程序的信号,发送给链路对端。只要上述驱动程序中的任何一个检测到了(对端发回的)信号,便会将接口设置为相应的速度。
并行检测只能测出链路的速度,无法测定双工模式。这一点非常值得关注,因为双工模式会随以太网的速度而变。
10Base-T
10Base-T在设计之初并不支持全双工。支持全双工的10Base-T实现寥寥无几。
100Base-T
100Base-T很早便开始支持全双工,只要还有人用,该技术就是连接100Mbit/s链路的首选方法。然而,100Base-T的默认行为通常为半双工,需手动设置为全双工。
1000Base-T
就功能而言,吉比特以太网的自动协商协议要远胜于10M或100M以太网。在大多数情况下,应将吉比特接口设置为自动协商模式。
10吉比特
一般而言,10 吉比特以太网连接要依赖于光纤收发器,或特殊的铜线连接器(与10/100/1000 M以太网所用的RJ45连接器不同)。硬件往往也会指明10吉比特以太网的连接方式。在6500交换机上,10吉比特接口都需要XENPAK模块,该模块也只能用于10吉比特端口。在Nexus 5000交换机上,有些端口是1吉/10吉端口,可使用speed命令来更改端口的速度。
由于10Base-T不具备全面支持全双工的能力,加之100Base-T典型的默认行为(需人工激活自动协商功能),因此,当自动协商失败,过渡到了并行检测阶段(该阶段只会检测速度)时,对驱动程序来说,最可靠的做法是:让链路(接口/网卡)运行半双工。
随着网络以及联网设备功能的不断发展,链路速度越高,所附带的自动协商协议功能也越强,自动协商发生故障的可能性自然也会越来越低。话虽这么说,但笔者曾见过不少20“岁”以上高龄的路由器仍在网络中“老当益壮”,因此,在未来若干年内,对自动协商运作方式“门清”的读者,肯定不会“吃亏”。