本文档将概述与以太网冲突相关的不同计数器,并说明如何排除以下错误信息报告(取决于不同平台)的以太网冲突相关问题:
%AMDP2_FE-5-COLL
%DEC21140-5-COLL
%ILACC-5-COLL
%LANCE-5-COLL
%PQUICC-5-COLL
%PQUICC_ETHER-5-COLL
%PQUICC_FE-5-COLL
%QUICC_ETHER-5-COLL
%AMDP2_FE-5-LATECOLL
%DEC21140-5-LATECOLL
%ILACC-5-LATECOLL
%LANCE-5-LATECOLL
%PQUICC-5-LATECOLL
%PQUICC_ETHER-5-LATECOLL
%PQUICC_FE-5-LATECOLL
%QUICC_ETHER-5-LATECOLL
%SIBYTE-4-SB_EXCESS_COLL
注意:本文档中的信息仅适用于半双工以太网。在全双工以太网中,冲突检测已禁用。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
冲突是以太网用于控制访问和分配站间共享带宽的机制冲突,站点则是指想要在共享介质 上同时传输数据的站点。由于共享媒体,因而必须具有一种机制,以检测出它们需要同时传输。此机制便是冲突检测。
以太网使用 CSMA/CD(载波侦听多路访问/冲突检测) 作为其冲突检测方法。这是以太网操作的一个简化示例:
站点 A 想要发送帧。首先,它检查媒体是否可用(载波侦听)。如果它不是,直到等待媒体上当前的发送方完成。
假设位置 A 相信媒体是可用的并且尝试发送帧。由于媒体共享(多路访问),其它发送器也可以尝试同时发送。这时,站点 B 尝试与站点 A 同时发送帧。
很快,A 站和 B 站将发现有另一台设备尝试发送帧(冲突检测)。每个站点将随机等待一段时间,然后再次发送帧。将冲突后的时间划分为多个时隙;A和B各选择一个随机时隙尝试重传。
如果 A 站和 B 站在同一个插槽内尝试重新传输,则将扩大插槽的数量。然后每个位置选择一个新的插槽,从而减少在同一个插槽转播的可能性。
总之,冲突是通过仲裁接入到共享介质,随着时间分配数据流负载的一种方式。冲突不是坏事;它们对于纠正以太网操作至关重要。
一些有用信息:
最大时隙限制为 1024。
冲突机制中同一帧的最多重传次数为 16。如果连续失败 16 次,则算作是过度冲突。
下面是 show interface 命令的输出示例:
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
延迟计数器计算接口设法发送帧的次数,但发现载波忙于第一次尝试(载波侦听)。这不构成问题,是正常以太网操作的一部分。
下面是 show interface 命令的另一输出示例:
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
按照此处的说明,冲突不构成问题。冲突计数器可计算发送帧时发生一次或多次冲突的帧的数量。
冲突计数器可以被分解为一次冲突和多次冲突,正如 show controller 命令的输出所示:
8 single collisions, 2 multiple collisions
这意味着在一个冲突之后成功传输了8个(10个)帧;另外两个帧需要多次冲突才能仲裁对介质的访问。
冲突率(输出的数据包数除以冲突数)的增加并不表示存在问题:它只是表示网络负载更高。一个例子可以是因为另一个站添加到网络中。
没有“多少次冲突是坏”或最大冲突比率的设置限额。
总而言之,当分析网络性能或问题时,冲突计数器并不能提供很有用的统计数据。
为使冲突检测功能正常工作,对检测冲突的时间段进行了限制(512 位时间)。对于以太网,该限制为 51.2 us(微秒),对于快速以太网,为 5.12 us。对于以太网站点,传输开始后,冲突检测最高可达 51.2 微秒,或者换句话说最高可达到帧的第 512 位。
站点发送了其帧的第 512 位之后,将检测到冲突,该冲突计为延迟冲突。
延迟冲突由以下错误消息报告:
%AMDP2_FE-5-LATECOLL: AMDP2/FE 0/0/[dec], Late collision %DEC21140-5-LATECOLL: [chars] transmit error %ILACC-5-LATECOLL: Unit [DEC], late collision error %LANCE-5-LATECOLL: Unit [DEC], late collision error %PQUICC-5-LATECOLL: Unit [DEC], late collision error %PQUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error %PQUICC_FE-5-LATECOLL: PQUICC/FE([DEC]/[DEC]), Late collision %QUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error
确切的错误信息根据平台不同而有所不同。您能用 show interface ethernet [接口号] 命令检查输出中额外冲突的数量。
router#show interface ethernet 0 Ethernet0 is up, line protocol is up Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8) Internet address is 10.200.40.74/22 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:06, output hang never Last clearing of "show interface" counters never Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: random early detection(RED) Output queue :0/40 (size/max) 5 minute input rate 1000 bits/sec, 2 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 2058015 packets input, 233768993 bytes, 1 no buffer Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles 3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored 0 input packets with dribble condition detected 298036 packets output, 32280269 bytes, 0 underruns 0 output errors, 10 collisions, 0 interface resets 0 babbles, 0 late collision, 143 deferred 0 lost carrier, 0 no carrier 0 output buffer failures, 0 output buffers swapped out
注意:报告延迟冲突的工作站仅指示问题;它通常不是问题的原因。可能的原因通常是网络中布线不正确或集线器数量不符合要求。网络接口卡(NIC)损坏也会导致延迟冲突。
如以前讨论的,在补偿算法中最大数量的重试次数是设置到 16。这意味着如果接口不能分配插槽(接口可以在插槽中传输其帧,而不会有其他 16 次冲突),则将放弃分配。帧将不会传输,并标记为过度冲突。
过度冲突由以下错误消息报告:
%AMDP2_FE-5-COLL: AMDP2/FE 0/0/[DEC], Excessive collisions, TDR=[DEC], TRC=[DEC] %DEC21140-5-COLL: [chars] excessive collisions %ILACC-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %LANCE-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %PQUICC-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %PQUICC_FE-5-COLL: PQUICC/FE([DEC]/[DEC]), Excessive collisions, TDR=[DEC], TRC=[DEC] %QUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded %SIBYTE-4-SB_EXCESS_COLL : Excessive collisions on mac [dec] (count: [dec])
确切的错误信息根据平台不同而有所不同。
注意:传输重试计数(TRC)计数器是一个4位字段,指示关联数据包的传输重试次数。最大计数为 15。然而,如果发生重试错误,计数将返回为零。仅在这种情况下,TRC 值为零应理解为十六。控制器将 TRC 写入一个帧的最后传输描述符,或者当一个错误终止了帧。
注意:延时反射计数(TDR)计数器是一个内部计数器,计算从传输开始到发生冲突所经过的时间(以刻度为单位,每秒100纳秒(ns)为单位)。由于计数器每跳一下,大约能传输 35 英尺,因而该值可用于确定到线缆故障的大约距离。
您能用 show controller ethernet [接口号] 命令检查输出中额外冲突的数量。
router#show controller ethernet 0 LANCE unit 0, idb 0xFA6C4, ds 0xFC218, regaddr = 0x2130000, reset_mask 0x2 IB at 0x606E64: mode=0x0000, mcfilter 0000/0000/0100/0000 station address 0010.7b36.1be8 default station address 0010.7b36.1be8 buffer size 1524 RX ring with 16 entries at 0x606EA8 Rxhead = 0x606EC8 (4), Rxp = 0xFC244 (4) 00 pak=0x0FCBF4 Ds=0x60849E status=0x80 max_size=1524 pak_size=66 01 pak=0x10087C Ds=0x6133B6 status=0x80 max_size=1524 pak_size=66 02 pak=0x0FDE94 Ds=0x60BA7E status=0x80 max_size=1524 pak_size=203 03 pak=0x100180 Ds=0x611F82 status=0x80 max_size=1524 pak_size=66 04 pak=0x0FD09C Ds=0x609216 status=0x80 max_size=1524 pak_size=66 05 pak=0x0FE590 Ds=0x60CEB2 status=0x80 max_size=1524 pak_size=66 06 pak=0x100AD0 Ds=0x613A72 status=0x80 max_size=1524 pak_size=66 07 pak=0x0FD9EC Ds=0x60AD06 status=0x80 max_size=1524 pak_size=66 08 pak=0x0FF830 Ds=0x610492 status=0x80 max_size=1524 pak_size=348 09 pak=0x1003D4 Ds=0x61263E status=0x80 max_size=1524 pak_size=343 10 pak=0x0FEA38 Ds=0x60DC2A status=0x80 max_size=1524 pak_size=66 11 pak=0x100D24 Ds=0x61412E status=0x80 max_size=1524 pak_size=64 12 pak=0x0FC74C Ds=0x607726 status=0x80 max_size=1524 pak_size=64 13 pak=0x0FD798 Ds=0x60A64A status=0x80 max_size=1524 pak_size=66 14 pak=0x0FE7E4 Ds=0x60D56E status=0x80 max_size=1524 pak_size=64 15 pak=0x0FD2F0 Ds=0x6098D2 status=0x80 max_size=1524 pak_size=66 TX ring with 4 entries at 0x606F68, tx_count = 0 TX_head = 0x606F80 (3), head_txp = 0xFC294 (3) TX_tail = 0x606F80 (3), tail_txp = 0xFC294 (3) 00 pak=0x000000 Ds=0x63491E status=0x03 status2=0x0000 pak_size=332 01 pak=0x000000 Ds=0x634FDA status=0x03 status2=0x0000 pak_size=327 02 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 03 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=60 3 missed datagrams, 0 overruns 0 transmitter underruns, 0 excessive collisions 8 single collisions, 2 multiple collisions 0 dma memory errors, 0 CRC errors 0 alignment errors, 0 runts, 0 giants 0 tdr, 0 spurious initialization done interrupts 0 no enp status, 0 buffer errors, 0 overflow errors 0 TX_buff, 1 throttled, 1 enabled Lance csr0 = 0x73
过度冲突表示出现问题。常见原因是:设备以全双工方式在共享以太网上连接、NIC 破坏、或者共享媒体上站点过多。过度冲突可以通过硬编码指定速度和双工来解决。
在 Cisco Catalyst 交换机中,如果 service internal 模式打开,每次出现过度冲突时将显示 %SIBYTE-4-SB_EXCESS_COLL 系统消息。当 service internal 模式关闭时,仅当过度冲突达到某一固定阈值时,系统才输出此消息。在这种情况下,出现此消息可能表示存在真正的冲突。当 service internal 模式打开时,每出现一次过度冲突,系统即输出此消息。这也许是由一些硬件噪声造成的。service internal 模式打开时,偶尔出现此消息是正常的。您可以发出 no service internal 命令以关闭此日志记录,并查看此操作对错误日志的影响。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
01-Aug-2006 |
初始版本 |