本文件概述與乙太網路衝突有關的不同計數器,並說明如何疑難排解錯誤訊息(視平台而定)所舉報的乙太網路衝突問題。
%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
注意:本檔案中的資訊僅適用於半雙工乙太網路。在全雙工乙太網路中,衝突檢測功能會停用。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
衝突是乙太網用於控制訪問和在希望同時在共用介質上傳輸的站點之間分配共用頻寬的機制。由於介質是共用的,因此必須存在一種機制,兩個站可以檢測到它們要同時傳輸。這種機制就是衝突檢測。
乙太網路使用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
deferred計數器計算介面嘗試傳送幀但第一次嘗試(載波偵測)發現載波處於忙碌狀態的次數。 這不會構成問題,並且是正常乙太網操作的一部分。
以下是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.2us(微秒),快速乙太網為5.12us。對於乙太網站,在傳輸開始後最多可以檢測到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 [interface number]命令的輸出中檢查過度衝突數量。
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])
準確的錯誤消息取決於平台。
註:Transmit Retry Count(TRC)計數器是一個4位欄位,指示關聯資料包的傳輸重試次數。最大計數為15。但是,如果發生重試錯誤,計數將滾動到零。僅在本例中,TRC值0應解釋為含義16。TRC由控制器寫入幀的最後一個傳輸描述符,或者在錯誤終止幀時寫入。
註:延時反射計數(TDR)計數器是一個內部計數器,用來計算從傳輸開始到發生衝突所花費的時間(以秒為單位,每秒100納秒(ns)為單位)。由於傳輸每刻移動大約35英尺,該值可用於確定到電纜故障的近似距離。
您可以在show controller ethernet [interface number]命令的輸出中檢查過度衝突數量。
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交換機中,如果服務內部模式處於開啟狀態,則每次發生過度衝突時都會顯示%SIBYTE-4-SB_EXCESS_COLL系統消息。在關閉服務內部模式的情況下,系統僅在過度衝突達到某個固定閾值時輸出此消息。在這種情況下,出現此消息可能表示發生了真正的衝突。啟用服務內部模式後,每當出現一個過度衝突例項時,系統都會輸出此消息。可能是由某些硬體雜訊引起的。在服務內部模式處於開啟狀態時偶爾出現此消息是正常行為。您可以發出no service internal命令以關閉此日誌記錄,並檢視它對錯誤日誌的影響。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
01-Aug-2006 |
初始版本 |