链路自适应如何进行
以太网中的各节点通过双绞线连接在一起,在进行通信之前必须在链路速率和全双工/半双工模式上达成一致。这种过程叫做自适应,它由链路脉冲来实现。当网络中发现新主机时, 链路脉冲发送”链路通告”以建立连接。有两种类型的链路脉冲,一种是普通链路脉冲(NLP),一种是快速链路脉冲(FLP)。如图所示:
10BASE-T的链路脉冲(NLP) 由简单的半波脉冲组成, 当从+1到-1伏的数据信号发送空闲时,在发送线对(TX)上,一秒钟发送8个链路脉冲。
快速以太网出现后,国际标准化组织很谨慎地保持了向后兼容性问题,为自适应选择了简单有效的物理信号协商机制。快速链路脉冲(FLP)借助普通链路脉冲(NLP)携带着表示链路速率和双工状况的信息。 快速链路脉冲以”1”来表示有效信息,”0”表示无信息,这些数据形成”链路字”。数据脉冲在时钟脉冲之间发送,17个时钟脉冲为16个数据脉冲提供了机会,所以一个FLP可能具有17到33个脉冲。
以太网设备会按照一定顺序选择适当的链路配置, FLP信号在自适应设备加电后自动产生,或者可以通过管理接口手工选择。以下是自适应的优先选择顺序。
· 1000BASE-T 全双工
· 1000BASE-T 半双工
· 100BASE-T2 全双工
· 100BASE-TX 全双工
· 100BASE-T2
· 100BASE-T4
· 100BASE-TX 半双工
· 10BASE-T 全双工
· 10BASE-T 半双工
自适应机制可以充许设备使用多种FLP链路字,按照优选顺序可以很容易的使用三四种不同的FLP链路字来确定配置。IEEE标准化组织在802。3标准的第28节定义了自适应。
自适应的实现
现在,几乎所有的以太网网卡,交换机和路由器都支持自适应并默认启动自适应状态,这样不用做任何配置就可以互联。这就意味着,你不必担忧速率与双工的匹配问题。但是,并非总是一帆风顺,事实上生产网络产品的厂商在实行自适应方面也有差别,这些差别带来了匹配性的问题。事实上,当两台设备互联时,先以低水平的链路脉冲来确定连接模式,速率的适应很容易成功,但是双工问题有时会失败,交换机可能会告诉我们双工模式有问题。另外,如果互联的设备一个设置为自适应,一个不是自适应,那么自适应一端必须设置在半双工状态。如果服务器或交换机的端口被设定为全双工, 但是另一端是自适应,那么你就会碰到半/全双工不匹配的问题。也就是说,自适应一方总努力在半双工上适应。
自适应的问题
一个普遍的问题是FLP要以NLP为基础以满足兼容性上的问题。真正的自适应只在两端都以FLP来完成自适应时实现,因此如果NLP和FLP混合使用,使用FLP的设备会自动适应在NLP的10M半双工的水平上,尽管它具有有全双工和高速率的能力。如果。 如果换为NLP,自适应端在收线对上遵守快速以太网信号的编码格式(MLT-3),那么它将适应在快速以太网的100M半双工的水平上,即使该设备可以工作在任何速率和全双工水平。这种向后的兼容性,我们称之为并行探测。
如果只是链路的一端具有自适应功能,那么自适应协议将同一个名为并行侦测的机制来检测链路条件是否正确响应。例如,一个10/100M网卡接入一个10M集线器,此时网卡接口会发送FLP信号而只从10M集线器接收NLP信号,接口处的自适应功能对NLP信号进行检测,并自动工作于10BASE-T模式。
相应地,当自适应集线器的一个具有多种功能的端口与一个没有自适应功能的100BASE-TX网卡相连时,自适应协议将使该集线器端口工作于100BASE-T模式。并行检测功能工作于没有自适应协议的10BASE-T、100BASE-TX及100BASE-T4设备上。100BASE-TX/T4上的并行检测机制检查所收到的信号,把它与自身的链路监察信号对比,看其是否符合给定的链路模式。如果检查到链路监察信号中有一种模式与输入信号的相符,链路就以此模式建立连接。
自适应设备面临五种主要的状态。
1. 自动/自动 – 两端都采用FLP来自适应。
2. 自动/并行探测 – 在收线对上采用检测信号决定链路配置,取代采用采用FLP功能。
3. 速率探试/侦听是否工作 –根据对方的反应来决定速度配置。
4. 在FLP和速度探试之间轮询- 用每一个速度偿试一会后,换另一速度。
5. 在对方有响应之前什么都不作 – 当在收线对上有信号之后,再从上面四种方式中选择一种。这是一
种节电方式。
可以理解,这些机制,特别是考虑到兼容性的机制是导致问题的根源。以上这些方式的实施过程中都有可能出现问题。
速度冲突
速度冲突很少是一个长期性的问题,链路不通,需要很快得到解决才可以,这不仅是影响一台设备的上网,也会带来其它以太网问题。
如果10BASE-T设备连接到100BASE-TX的交换机, 10BASE-T设备上的LED会很正常,但是不能通信。100BASE-TX交换机不会显示存在链路 。如果100BASE-TX的主机接到10BASE-T的集线器上时,它将对所在的冲突域带来33%到100%的冲突。 10BASE-T集线器LED会显示有流量或冲突存在。
半/全双工冲突问题
10BASE-T 和100BASE-TX以太网用一对线收信号(RX),一对信发信号(TX)。 根据定义, 半双工表示在一对线上同一时刻只能有一个方向的数据。如果对于半双工的设备双向都有数据,就会有冲突,发生冲突的帧会被丢弃。对于旧的同轴电缆10BASE5 和10BASE2网络, 只有一条物理线线用于收发,所以必须采用半双工的模式。新的以太网将收发线对分开,所以就不会有冲突产生。
在10BASE-T 和100BASE-TX以太网中,使用全双工将会把吞吐增加一倍,100M的网络的吞吐量会有200M。 半/全双工的冲突会降低主机上网的带宽,虽然也能发送数据,但是对于全双工一端会有间歇性地错误。大多数10BASE-T以太网集线器会操作在半双工模式。许多最新的10/100M交换机和集线器即可半双工,也可全双工。如果以一端半双工,一端全双工,那么一端将认为自己任何时候都可以发送数据,而另一端将会在任何收到数据的时候中断传输。被中断或破坏的报文将会被发送主机计数为小于64字节的冲突碎片或大于或等于64字节的最新的数据。
在双工不匹配时,接收主机仍可以在任何时候收发数据。这样,它不会把有问题的大于64字节的数据当作冲突的数据,而是发现校验和有问题后,当做FCS或CRC错误类型的数据帧。小于64字节的数据会被当做冲突的碎片,这些碎片根本不会在全双工的链路中出现。 如果大于64字节的报文在发生冲突的时候已经通过集线器,哪么发送的主机不会象在一般的冲突发生时那样重新发送这些报文。
冲突或丢失的数据包会由上层相关软件重发。这些重发的数据会带来网络的延时,同时这些额外的流量可能会难以传送,导致的结果是网络文件传输或应用很慢。冲突的数据重传大约需要几微秒,而被丢弃的数据可能需要上层软件,如TCP,可能需要几十秒来重传,如果TCP的努力仍不成功,那么网络的连接就会失败。
混合的自适应和固定的全双工并存是引起半/全双工冲突的最主要原因。设备固件上的设计问题是第二个主要原因。请注意,在自适应问题上,在早期的网卡,交换机或其它网络设备,许多厂商都有不完善的逻辑电路错误。交换机经常报告是在全双工工作,而实际上确是在半双工工作。另外,许多厂商的自适应技术无法实现双工问题的有效探测。其有问题的产品也会带来半/全双工的冲突。
例如:现场中经常会有这样的例子,交换机隨机地发出FLP链路字,直到对方有了明确的反应。稍后,链路建立起来,交换机将所获得的链路信息存储在FLP的寄存器中。当互联情况改变后,交换机仍按原来的存储信息来确认链路,就会带来冲突。
半双工FDX
· 同一时间,只能有一个方向的数据传输
· 如果两个方向都有流量,将产生冲突,数据会被丢弃
全双工HDX
· 数据充许在两个方向上同时传输
· 在全双工链路不会有冲突产生
自适应问题的测试
总有用户报怨”网络太慢”或”无法与服务器连接”,有什么办法可以判断是否由自适应问题引起的呢?
从网络监测的角度看,可以使用SNMP协议从交换机的MIB库中读取基本的流量统计信息。
例如:
· 端口利用率
· 帧的数量及其中的错误类型
· 冲突和CRC错误帧
如果有大量的冲突或CRC错误被检测到,就有可能是自适应失败。但是,怎样确认问题的真正原因,是在主机一端,还是在交换机/集线器一端?
手持式网络测试仪
美国福禄克网络公司的手持式测试仪有链路通LinkRunner™,网络万用表NetTool™,OPV网络综合分析仪OptiView™,网络故障一点通OneTouch™等等都可以发现半/全双工的不匹配问题。
用NetTool或LinkRunner选择自动测试就可获得端口的半/全双工状态,用OptiView或One Touch时,选择电缆测试或相关选项也可获得详细信息。
NetTool
NetTool在诊断电缆两端的速率及半/全双工匹配问题上能力很强。它可以监测两端连接状态,只需片刻就可以报告两边的实际速度和双工状态。
图4是在交换机和主机之间自动测试的例子,你还可以看到更详细的信息。主屏显示的是综合结果,最初查看两边都是10/100M的以太网设备:自适应后,两边都选择了半双工模式,100M做为传输速率,链路脉冲正常。另外,也显示出左边正在使用3-6线对,右边正在使用1-2线对,而且两边是何种设备可以自动识别,以不同的图符来表示。
选择PC或集线器/交换机的图标后,会给出更详细的链路配置信息,例如使用的线对,电平极性,最大速率,半/全双工模式。
图5是NetToolI在不同链路上工作的结果。显示出PC被迫使使用100M全双工配置(PC只支持100M,交换机支持10/100M自适应)。结果显示左边为半双工,右边为全双工,报告的问题是全双工不匹配。尽管双工不匹配,但是链路仍可正常运行,但是也会带来帧被破坏,丢失的帧由上层协议来重传。图5还显示出有许多FCS错误(有时也被称为CRC错误)的帧。
自适应问题的解决
如果发现半/全双工冲突问题,可以有下列三种方法:
· 两端都设置为自适应
· 两端都设置为半双工
· 两端都设置为全双工
解决的方案与设备有关,如果问题的根源是误配置,简单的方法是都设定为自动模式。如果问题的根源是一端设备的性能有问题,就需要实验来判断了。为了避免潜在的双全问题,许多网络工程师都采用默认地自动方式,除非明确地知道两边的情况。
备注:
自适应协议可用于全系列双绞线以太网网段以及全双工以太网链路。全双工以太网技术现正由IEEE进行标准化。由于缺少标准,各厂商的设备所支持的全双工链路长度也可能不一样。除非标准已经制定,否则无法确保不同厂商的全双工设备可以互操作。但今天已有越来越多的网络需要全双工,所以有必要在此将它介绍一番。
相对于传统的以太网而言,全双工操作简单,而且全双工链路两端的设备均可同时收发数据。由此而来的一个好处就是在理论上全双工的理论带宽是传统以太网(半双工) 的二倍。全双工操作模式要求链路上的每一端都只连接一个设备,如一个工作站与一个交换机端口相连。
既然一个全双工链路上只有二台设备,在该链路上的数据传输无需考虑同时支持多台设备,所以没必要坚持原先的以太网媒介访问控制系统。由于不再需要多台工作站共享同一信道,CSMA/CD媒介访问控制机制也就显得多余,一条全双工以太网链路上的设备在发送数据时,就不必为防止碰撞而侦听其它可能的传输信号。
10BASE-T、100BASE-T、100BAS E-FX的信号系统都能支持全双工操作,因为它们的传送和接收信道可同时激活。另一个好处是,全双工光纤链路可长于通常100BASE-FX许可 的距离。原因在于此时无需计算一个冲突域的往返时间(Round Trip Timing),光纤长度只需考虑光信号传输衰减的距离即可。因此,全双工100M光纤链路通常可提供2公里左右的距离长度。
总结
尽管标准化组织在努力解决兼容性问题,但实际网络中仍有不尽人意的地方,这就需要网络专家在现场要借助于工具来解决自适应的冲突问题。