跳转至主要内容

FTP传输时间高得令人痛苦,交互式登录响应时间太长,从100 mbps的网络中获得1 mbps的速度。虽然我总是喜欢责怪网络,但我不得不承认,有时不是网络的问题。

在处理TCP性能问题时,首先要寻找的是低级别的以太网问题,目前最常见的问题是双工不匹配。以太网可以在全双工或半双工模式下运行。在全双工模式下,模块的适配器和它所连接的设备,它的链路对等设备(通常是交换机,但并不总是)可以在同一时间传输。在半双工模式下,只有一方可以传输。有一个时间窗口,当双方都能认为可以传输并这样做,当发生这种情况时,就会宣布发生碰撞,双方都停止传输,随机等待一段时间,然后再尝试。需要了解的是,当双方都处于半双工模式时,这些碰撞并不会显著降低网络吞吐量。
在双工不匹配中,一方处于全双工模式,而其链路对等体处于半双工模式。处于半双工模式的一方可能会出现晚期碰撞和过度碰撞,这些类型的错误确实会显著降低吞吐量。 任何晚期或过度碰撞都是一个问题的迹象。网络速度减慢可能会出现与晚期和过度碰撞的数量不相称的情况,因为在双工不匹配的情况下,即使是正常的碰撞也会降低吞吐量,因为链路对等体在全双工模式下不会识别碰撞,所以不会重传帧。
那么如何判断这种情况是否发生在自己身上呢?在"netstat -interface"命令将显示统计信息,以便您确定是否发生了双工不匹配。在下面的例子中,活动的适配器的统计信息为 #sdlmux.m16.11-3 接口都会显示。为了节省空间,我删除了备用适配器的统计数据,并添加了行号。
如果适配器处于半双工模式,您将在第25行(传输帧被推迟)、第26行(单次重试后传输帧)和第27行(多次重试后传输帧)中看到正数。这些是正常的碰撞计数器。如果您在第24行(传输帧被丢弃,延迟碰撞)和/或第28行(传输帧被丢弃,过度重试)看到正数,您可能有或有双工不匹配。这些计数器只有在适配器复位时才会被重置,因此正值表明有问题;计数器继续上升表明您仍然有问题。如果适配器处于全双工模式,而你在第32行看到一个正值(接收帧丢弃,CRC不良),则链路对等体可能处于半双工模式。
1    netstat -interface #sdlmux.m16.11-3
2
3    Ethernet adapters are grouped
4    Number of failovers = 0
5
6    Active Device Statistics:
7
8
9    MAC Type   : CSMA/CD
10    MAC Address: 00:00:a8:43:52:22
11    Device Name: #sdlmux.m16.11-3
12    Line Speed : 100 mb/s
13    Line Duplex: Full-Duplex
14
15    MAC Statistics:
16     Received frames                          : 20783181
17     Received multicast and broadcast frames : 2984375
18     Received octets                          : 1787913869
19     Transmitted frames                       : 9747015
20     Transmitted octets                       : 2780485819
21     LAN Chipset re-initialized               : 0
22     SQE error                                : 0
23     Transmit ring full                       : 0
24     Transmit frame discarded, late collisions: 0
25     Transmit frame was deferred              : 0
26     Transmit frame after a single retry      : 0
27     Transmit frame after multiple retry      : 0
28     Transmit frame discarded, excessive retry: 0
29     Receive frame discarded, lack of buffers : 0
30     Receive frame discarded, improper framing: 0
31     Receive frame discarded, an overflow     : 0
32     Receive frame discarded, bad CRC         : 674
33     Receive frame discarded, bad address     : 0
34     Receive frame discarded, congestion      : 0
35
36    MAC Summary:
37     Transmitted frames         : 9747015
38     Transmitted octets         : 2780485819
39     Retransmitted frames       : 0
40     Received frames            : 23767556
41     Received octets            : 1787913869
42     Total of lost frames       : 0
43    Partner Device Statistics:
. . . .
ready 08:35:14
你是怎么进入这种双工不匹配的情况的?当然可以让一台设备配置为全双工模式运行,而链路对等体配置为半双工模式,但最常见的情况是让一台设备配置为全双工,而链路对等体配置为自动协商。大多数设备在配置为全双工时不会自动协商,根据自动协商规范,试图自动协商的一方在没有看到链路对等体的自动协商协议时,必须退回到半双工模式。
默认情况下,OpenVOS使用的以太网适配器将自动协商,因此除非链路对等体也配置为自动协商或半双工模式,否则你将得到一个双工不匹配。要为一个特定的双工模式设置适配器,你需要添加以下信息 “-duplex full” “-duplex half” 字符串到适配器的devices.tin条目中的参数字段。你还必须设置速度。OpenVOS Streams TCP/IP Administrator's Guide (R419) 详细介绍了这一点。
最后要说明的是,如果适配器以千兆运行,那么它也将以全双工模式运行。没有人支持半双工千兆。

© 2024Stratus Technologies.