网络通信 频道

决局域网端口速率和双工通信的兼容性问题

本文从一个严重影响网络服务性能的故障分析案例出发,分析了对于网络接口速率的设置和相关错误的原理和故障排除过程,是常见的网络性能故障之一。

全双工让网络传输更快了吗?

增加网络应用性能的一个有效的方法就是充分利用现今大多数100M交换机和高速网卡的全双工(FDX)以太网通信能力。然而,如果两个相连设备端口的速率和双工通信设置不一致,网络性能非但不会提高反而会导致严重下降。这一现象是我们在为北京协和医院进行网络测试服务中发现的。该医院的网管人员反映信息中心的某台服务器在被网上其它站点访问时速度很慢,拷贝一个30M左右的文件需要5~6分钟时间,而该服务器的网卡为100M,交换机是10/100M自适应的。
我们使用了 FLUKE 683 企业级网络测试仪查找到了这个故障的原因。 我们用测试仪的 HUB 和NIC端口测试功能分别测试了交换机和服务器网卡的端口设置,发现交换机端口工作在半双工/10/100M自适应模式下;而服务器上的网卡工作在全双工/100M模式下,这显然是不匹配的设置情况。正是由于这个问题导致了网络的传输不正常,性能大大下降的故障。我们测试中发现,在纠正这个设置错误之前,传输数据(如拷贝文件)时就出现大量的错误帧,造成数据的重发,严重影响网络的传输效率。而在我们发现这个问题并调整服务器网卡的设置与交换机的设置一致后,网络数据传输就立即恢复正常了,同样拷贝30M的文件现在仅需要十几秒钟,并且没有发现任何的错误帧。
这个问题让我们意识到,如果没有正确的采用新技术,反而会对我们的网络造成性能的下降。所以在对我们的网络进行升级或改造时,一定要对新采用的技术和设备进行必要的了解,并对网络做变动前后的测试,通过对测试结果进行比较以确认网络的改变没有带来负面的影响。
下面我们就为什么这个全双工的简单设置问题能造成如此严重的网络传输故障而进行深入的分析。我们先从解以太网介质访问的机制入手:

端口设置基础

CSMA/CD和全双工操作
标准以太网设计为半双工操作,采用CSMA/CD(具有冲突检测功能的载波侦听多路访问协议)介质访问控制技术。其基本思想是:一个半双工以太网端口(站点)在发送信号前需要监听总线,以确定传输介质上是否存在其他站点发送的信号(CSMA/CD的CS—载波侦听)。如果传输介质空闲,则该站点开始发送数据帧。如果探测到其它站点(多路访问)有冲突(冲突检测),它就发送一个阻塞信号,通常是二进制1和0。之后为降低再次发生冲突的概率,采用退避算法随机延时一段时间,再按CSMA/CD协议重新发送数据。在双绞线和光纤拓扑结构中,出现发送数据帧的同时又接收到数据的情况极易发生碰撞。所有相互之间有可能冲突的设备被认为是在一个“冲突域”。所有通过 HUB 或中继器连接的节点都被认为是在一个冲突域中。在交换环境只有交换机和末端结点是在一个冲突域。


采用以太网交换机,全双工操作可显著地增加性能,因为其放弃了全部CSMA/CD过程。全双工操作利用了交换机内部的缓冲,因此设备可以同时发送和接收数据而不必关心来自其它站点的流量。
使用半双工操作,在任何时间内只有一方可以发送数据。而采用全双工操作,两个站点(服务器和交换机)之间发送和接收通道是相互独立的。这看起来就象是两个单工链路(一个发送而另一个接收),两通道间没有相互影响和依赖关系。

混合技术网络

目前大多数的网络都是混合速率环境,一些是10BASE-T,另一些是100BASE-TX。对于混合速率的网络环境有一个必须要遵守的原则:即在全部网络或广播域(一个以太网广播帧可以到达的网络范围)中可以是混合速率;而在一个单一的冲突域中就只能有一个网络速度。在10BASE-T和100BASE-TX网段间传送的所有数据帧必须通过网桥或交换机类的设备进行交换。另外,所有全双工链路也必须连接在交换机端口。


端口设置技术——自动协商技术
避免在一个网段中混淆速率和双工设置是非常关键的。为帮助防止出现此类问题,很多设备支持自动协商功能。
自动协商是这样一个过程:网段的两个端点会确定一个双方设备都支持的设置。自动协商使用一种特殊的连接脉冲协议---快速连接脉冲(FLP)。当主机探测到FLP并且支持它时,这两个站点就能确定另外一方的性能,如速度(10或100Mb)和通信方式(全双工或半双工)。
由于不是所有的端口都支持FLP自动协商过程,所以就会有手动设置的需要。固定速率的 HUB(10或100Mbps)通常不支持自动协商功能。比如,一个固定速率的100BASE-TX的 HUB 可能只发送100BASE-TX连接脉冲信号而不是发送快速连接脉冲用于自动协商。如果一个支持自动协商的以太网设备连接到一个固定速率的设备上,它会利用半双工操作自动设定与固定速率一致。多数厂商允许用户设定交换机端口为固定速率而禁止自动协商功能。这样可以支持早期生产的不具有自动协商功能的100BASE-TX网卡,或者使网管人员确保在重要链路中避免出现使用低速率的意外情况。

问题

如果网段中相连的两个设备没有使用相同的传输速率和双工设置将会产生严重的问题。
一般来说 10BASE-T网卡不会影响100BASE-TX的 HUB 或交换机端口。反之无自动协商功能的100BASE-TX设备直接接入10BASE-T的 HUB则会引起大量的碰半双工的配合不当问题是很难查找的。如果网段的一端运行全双工而另一端运行半双工,那么在整个冲突域中就会导致应用性能的不一致和冲突的少许增加。
冲突域影响
运行全双工的设备不遵从CSMA/CD过程。如果全双工设备有一个数据帧要发送,它就会发送而不关心当前是否在接收数据。此时,如果网段中另一个半双工设备恰巧也正在发送数据,则必定发生冲突。半双工设备会立即发送一个阻塞信号,在退避延时时间过后,它将重新发送数据。这类问题造成的故障与在共享网段中存在某个“聋”站点的故障有点相似,聋站点故障是指由于网卡的接收端故障,而不能在发送数据前判别网络是否空闲所造成的网络性能下降故障。
全双工设备接收到的帧是Bad FCS(错误的帧校验序列)帧,原因是由于CRC校验计算中受到半双工端口送出的阻塞信号的影响。多数的半双工设备也会忽略全双工设备发来的数据帧。如果单一用户站点是全双工,其对网络会有少许影响。因为帧的发送是按照请求/应答顺序:发送然后接收。然而如果该全双工站点支持多方会话,象交换机、路由器或服务器,则网络应用可能会遇到严重的性能下降问题,并且整个冲突域(在半双工一边)会出现大量的碰撞,有可能影响到其他机器。

探测端口设置

使用FLUKE 683和686企业级网络测试仪(LANMeter)可以快速识别端口速率和双工设置,在多数情况下会立即使应用性能得到改善。
运行LANMeter的Hub-Autotest、NIC-Autotest和Expert-T测试,可探测到所接Hub端口或NIC的速度及双工设置。测试仪可自动检测接入端口是否使用自动协商功能、提供何种速率和双工通信方式。如果探测到100M的连接脉冲,测试仪通过测试一个接收帧,即可告知被测端口或NIC是全双工还是半双工设置。
FLUKE 683和686使用特殊设计的硬件花费30秒钟等待一个输入帧。一旦接收到,测试仪将向网上发送数据。随后,测试仪如果检测到输入帧有正确的FCS,则判定被测端口为全双工。如果输入帧有错误的FCS (因其为响应LANMeter发出的数据而发送了一个以太网阻塞信号),则被测端口为半双工。如果被测端口是100BASE-TX Hub,在冲突域中能看到一个单一碰撞。不必担心会有数据丢失,因为MAC芯片会自动重发遭受碰撞的帧。

用LANMeter监视网段

企业级网络测试仪LANMeter本身是半双工设备。但由于其可以执行自动协商过程,因此无论处于半双工或自动协商的网段,它总能正确地设置建立连接。当测试一个强制设定为全双工的端口时,需要留意以下事情。

1. 被动监视

首先,被动监视测试不会对网络有丝毫影响。对于全双工链路的数据链路层(MAC)或网络层(IP、IPX、NetBIOS和Banyan)的流量统计是非常准确、完整的,同样对半双工链路也是一样。测试不发送任何流量绝对不会影响网络。

2. 主动测试

另一方面,LANMeter的主动测试可能会在冲突域内产生很小的影响。请记住,如果LANMeter接在一个强行设置为全双工的交换机端口,则意味着冲突域仅存在于LANMeter和交换端口之间。
当LANMeter处于发送过程而所接的交换机又给LANMeter发来一个数据包时,只会产生无意义的电压信号。LANMeter在发送过程中收到该帧,会假定一个碰撞并发出一个阻塞信号。在交换机流量停止后,LANMeter将重发数据帧。如果使用存储转发型交换机,由于LANMeter是接在全双工端口,其它网段不会看到任何错误或冲突。但是交换机如果使用“切发”技术,在其它交换网段上可能看到一些无害的错误包。使用LANMeter的SwitchWizard(交换机测试)选件分析所接交换机可以监视此类情况。当有半双工设备接入全双工交换端口时,通过SwitchWizard可以观察到全双工交换端口报告发现Bad FCS帧。
另外一个更简单的方法就是观察LANMeter的碰撞LED指示灯。该灯通常会随发送LED指示灯同时闪亮。
设定LANMeter的流量发生器运行在“背景方式”,以较低的帧发送率发送模拟流量。随后在网络统计测试结果中会看到“冲突”,这表明被测端口是全双工的。当LANMeter接入一般的中继器和Hub时,其报告“冲突”是很少见的,多数是将冲突报告为“Bad FCS”错误或“Remote Collisions”(仅对10BASE-T)。如果LANMeter接入强行设定为全双工的端口,多数网段所受影响很小,用户应用数据不会有问题。
当然,SwitchWizard也可用于查找交换机上过多FCS的错误。前提是交换机必须是SNMP可管理的且使用支持SNMP的MIBs(管理信息库)。一个基本原则是如果交换端口直接连接单一网卡或另一交换端口,绝对不应出现任何FCS错误。设置为全双工的网络更是如此。如果交换机端口接到共享介质Hub上,冲突域中的FCS错误率应与碰撞率一致(用LANMeter的网络统计可测得)。共享介质Hub网段应永远设置为半双工。
在这方面分析交换机最容易的方法是按错误统计排序SwitchWizard的端口。切记:切发设置的交换机会转发Bad FCS帧。

总结

通过使用FLUKE企业级LANMeter可以分析Hub、交换机和网卡接口的速率和双工通信能力及设置。使用SwitchWizard选件及其SNMP端口分析,通过观察交换机端口的统计结果来确定其他的半双工交换口是否出现过多的FCS错误,并据此使用LANMeter的Hub、NIC和Expert-T测试功能对交换机连接的全双工设备进行进一步检测,迅速解决设置不当引起的网络故障。

文章转载地址:http://www.365master.com/kt_article_show.php?article_id=1143&categ_code=10151002

0
相关文章