2016年5月14日 星期六

tx Collision


 Ethernet 全雙工
http://www.techbang.com/posts/15880-4-introduction-to-network-architecture-networks-underlying-frame-relay-rule?page=2

      以前在學網路概論的時候,總是會從ISO/OSI七層架構開始學起,PhysicalData Link NetworkTransportSessionPresentationApplication Layer;而在網路維運除錯的領域中,遇到網路障礙時,處理的思考邏輯也是與OSI/ISO的七層順序一致的,透過七層觀念與實務經驗,診斷出可能的障礙原因,並一一予以確認,以找出真正的障礙原因,才有辦法予以修復,以恢復網路的正常運作。
      在所有的網路障礙事件中,扣除變慢設定錯誤這兩個大項之外,那餘下的網路事件,將大都會與「現場分析」這個範籌有關;這也意謂者網路人員得親自或藉由遠端搖控的方式,事件現場去一趟,以便收集足夠資訊,找出主因,解決問題。以下將針對常見的現場障礙,分述如下:
一.實體層(Physical Layer)問題:
  • (1)纜線無法辨識:找不到電腦、線及埠之對照關係
  • (2)信號太弱:線路過長、衰減過高、腳位錯接、纜線製作失誤所造成
  • (3)干擾:串音、接地、外部雜訊所造成的信號錯誤
  • (4)斷線(Open)、短路(Short)等問題
二.連結層(Data Link Layer)問題:
  • (1)網路接取設備間協定不匹配
  • (2)Auto Negotiation失敗
  • (3)速度不匹配(Ethernet 10/100/1000MbpsToken Ring 4/16Mbps)
  • (4)雙工不匹配所導致的碰撞(Collision)及速度緩慢
  • (5)設備晶片組所造成之相容問題而導致的效能無法完全發揮
乙太網路常見障礙:
 Speed Mismatch: 當網路設備連結時,常見的無法連結原因之一,除了網路線
 
 不通之外,也極可能是因為Auto Negotiation時,交涉錯誤導致雙方得到了不匹
 
 配的網路連結速度;雖然Link亮綠燈,但仍無法連線
 Pair Mismatch: 當網路設備連結時,兩端的連結信號(Link Pulse)均來自於同一對線(Tx-Tx)
 
 而導致無法成功連線(正常情況下應是Rx-Tx, Tx-Rx)。常肇因於使用到CrossOver的網
 
 路線;通常可藉測線工具偵測,或使用具有Auto MDI/MDI-X功能的網路設備來預防。
 
 (具有Auto MDI/MDI-X功能的設備, 可自動測試使用1,23,6線對來做接收或傳送工作)
 
 MDI-X : Medium Dependent Interface - Crossover
 Level Low: 當網路連結信號太弱時,可能產生封包無法判讀;或100Mbps降速至10Mbps
 
 ;或網路連線斷斷續續等現象。常肇因於設備問題或網路線衰減過大所導致。
 
 通常可藉由網路儀器偵測,或在佈線工程完成後要求纜線驗證來確保施工品質。
 Transmit Pair Open: 當兩設備透過網路線連結時,因為1,23,6中任一線斷線(也稱"開路"
 
 或OPEN);而導致無法連線。常發生於外力損害(如在老舊建物中遭老鼠咬斷)或網路
 
 線路壓接失敗所導致。通常可藉由纜線測試器定位出斷線位置以排除障礙。
 Polarity Reversed: 當網路設備連結時,傳送與接收線對配置為T+T- 配上R-R+ (正常情況
 
 下應是T+T-R+R-),使得信號極性顛倒導致網路無法連結,常肇因於網路接線圖配線
 
 錯誤;通常可藉測線工具偵測,或使用具有Auto Polarity Detect功能的網路設備來預防。
 Duplex Mismatch: 當網路設備連結時,或許可正常連線,但可能因雙工狀態不匹配
 
 而產生過多的碰撞(Collision)速度緩慢
網路層常見障礙:
Short Frames received(also Jabber/FCS): 
封包長度小於合法長度,且FSC檢查碼又是正確的封包稱為Short Frame Jabber是指長度超過於最大合法尺寸的封包(大於1518bytes) 封包檢測序列(FCS)錯誤是指封包標頭資訊可能是正確的, 但是由接收端計算的FCS與加在封包末端的FCS不符。
解決辦法:檢查NIC卡或NIC驅動程式。也可能是由接線或接地問題造成的。
Excessive utilization seen(also collisions):
網路使用率超過40%或碰撞率大於5%時定義為過高。
解決辦法:
1.
如果流量過大是整個網路的問題,建議安裝Switch
2.
如果只是一台PC碰撞率很高,可以檢查接線與網卡設定是否正常。
3.
請檢查網路流量是否過大(超過40%)而導致碰撞過多。
4.
減少網路流量。檢查接線。更換NIC卡或交換機/集線器連接埠。
5.
使用網路分析工具定本網路中佔用資源的主要站台為何?
Ethernet frame-type mismatches: 
為了使PC與網路通信,它們應設定為相同的封包類型
(802.3-raw
802.2Ethernet IISNAP)
解決辦法: NetTool確定所有的封包類型。若用戶端需要,則確定用戶端封包類型與 伺服器上設定的封包類型一致。
      由於上述事件在所有的網路事件統計中,比例並不算低,且只要是發生,便會產生網路完全無法使用的問題,因此「現場分析」也成為網路維運除錯議題中,最重要的一部分。
四、封包解析
      封包解析對於應用層上的維修具有舉足輕重的地位,舉凡應用層上的反應時間(Response Time),設備本身處理及轉送封包的Latency,應用層封包型態佔用頻寬的封包數及百分比,都可使用封包解析軟體來分析,傳統的硬體環境下封包解析對網路的維運及除錯占著舉足輕重的地位,因為以往的硬體架構是Hub,所以我們可以輕易地從一個埠端(Port)擷取其他埠端(Port)的封包進而做解析,但是面臨到目前的交換器(Switch)架構時,封包解析軟體若不配合硬體可說是無用武之地.
封包解析軟體所遭遇的測試挑戰:
1.一般的網路卡效能不足,100Mbps的網路卡為例,效能可達到60-70%就算是不錯了,也就是如果網路上的流量很高時,一般的網路卡無法做到Full Line Rate的擷取,加上正常的網卡是會拋棄錯誤封包的,所以運用封包解析軟體不搭配專用網卡其實是沒有太大用處的.
2.交換器環境每個埠端(Port)便是一個碰撞區域,我們僅能用Mirror的方式將另一個埠端(Port)的封包 Mirror過來,而交換器並不會Forward錯誤的封包.
3.在埠端(Port)加裝Hub亦有如同第一項的問題,無法做到Full Line Rate的擷取.
     根據上述三項挑戰,我們的建議是-目前交換器環境的網路架構,必須先使用網路管理及網路監控的機制來了解您網路的基本情形,或發生問題時運用現場分析工具來發現並解決問題,至於封包解析是應用層出現問題時的分析方法,且必須使用被動的Tap將封包取出,才能做到不拋棄錯誤封包及達到Full Line Rate的擷取.
乙太網路錯誤封包定義:
資料在傳遞時,因電壓的不穩、磁場的干擾,故障的硬體或驅動程式異常...... 均可能使訊號在傳輸時被改變而造成資料接收錯誤。合法的封包長度應屆於641518 Bytes 之間,以下將針對乙太網路中常見的錯誤封包定義,予以說明:(資料來源:IEEE 802.3)
  • FCS Error: 封包檢查碼錯誤,封包檢查碼與已接收的封包內容經演算不相等。
  • Alignment Error: 組合錯誤,封包長度結尾不足8 bitsex: 64 Bytes6 bits
  • Runt: 短封包,封包小於64 Bytes
  • Short Frame:(Shorttoo short) 短封包,封包小於64 BytesFCS正確。
  • Jabber: 長封包,封包大於1518 Bytes
  • Long Frame:(Longtoo long) 長封包,封包大於1518 BytesFCS正確。

     
  • Collision: 碰撞,在半雙工環境下,TX正在傳遞資料時,RX同時接收到資料。
  • Late Collision: 晚碰撞,封包傳遞的512bit之後發生碰撞。通常肇因網路範圍過大
  • Single Collision: 單一碰撞,碰撞發生時,同一時段內僅有該次碰撞發生。
  • Multiple Collision: 多重碰撞,碰撞發生時,同時也發生了多次的碰撞。
  • Excessive Collision: 過度碰撞,碰撞後封包會再重送(backoff),但重送16次後,會放棄重送,並註記為Excessive Collision
  •  
  •  
  •  
  •  
  • 計網概:Ethernet 簡介

    Ethernet

    第一個被廣泛使用的 LAN 結構。
    1970年中期由 Xerox 首先發明
    1978 由 DEC,Intel and Xerox 制定 10-Mbps Ethernet,後來演進成 IEEE standard 802.3

    Ethernet 的特性

    Connectionless,通訊時不必建立連線,(需要建立連線如:電話、ATM 網路)。
    Unreliable,不可靠,丟出的封包目標不一定收得到。可靠連線上,對方收到時會回應 ACKs,失敗會回應 NACKs,但 ethernet 上並沒有此機制。
    MAC protocol: CSMA/CD(Carrier Sense Multiple Access with Collision Detection),用來制定輸送資料時的規則,在送資料前會看有沒有其他人正在送資料,提升成功傳送資料的機會。

    Ethernet Topology

    Bus Topology and Ethernet(10base5)

    bus_topology.jpg
    流行在 90 年代中期的一種 ethernet topology。
    機器透過收發器(transceiver)連接在同軸電纜(coaxial cable)上
    transceiver 在電纜的兩端時會接上 terminator,如果沒有接上會造成網路癱瘓
    transceiver 會做收發訊號的動作,現在的收發器都內建在 ethernet adaptor 上(也包含 CSMA/CD 處理晶片)
    此結構的同軸電纜最大長度為 500 公尺
    又名粗線 ethernet
    10base5:10 Mbps, baseband transmission, 500m
    Cabel Signaling:Manchester Encoding
    Each bit has a transition,每個 bit 中接都會有電位變化,藉此辨識不同的 bit
    node 中包含 clock 資訊,用來同步輸送端和接收端
    不同的 ethernet 可以透過 repeater 來連接
    repeater 輸送數位訊號,為 L1 的設備
    輸送到線纜末端時訊號會有失真和衰減的情況,當訊號經過 repeater 時會增強訊號
    兩個 hosts 之間最多使用 4 個 repeater
    ethernet(10base5) 的最大長度為 2500 m
    bus_topology2.jpg
    (示意圖)

    Ethernet(10Base2)

    細線 ethernet
    10 Mbps, baseband, 200m
    仍可使用 repeater 來連接不同網段。

    Ethernet(10BaseT)

    hub.jpg
    T stands for twisted pair.(雙絞線)
    線內有四對(八條)線,一對線會絞在一起,減少電磁波影響
    最大長度為 100m
    使用 hub 而不是 transceiver,集中管理網路線。
    如同 10base5, 10base2,仍然有 broadcast 的特性(送到網路上的訊號會跑到所有的電腦上)

    Star Topology and Switch

    switch.jpg
    active switch in center
    hub 只會把封包轉送出去而不處理,但 switch 上的每一個 port 都像一個網卡,會做封包的處理和傳送,沒有 broadcast 現象,因此很多設備可以同時送資料,增加網路效率
    switch 上都會有一個 SCM (Switch Control Module) 來處理封包的來去

    Ethernet Frame Format

    frame.jpg
    Preamble(64bits), allow the receiver to synchcronize with the signal
    SFD, start frame delimiter
    DA, destination address
    SA, source address
    Type, 告訴我們後面的資料是什麼資料, 16bits
    LLC, 最多 1500 bytes
    PAD, padding when LLC frame < 46 bytes
    Data = LLC + PAD
    FCS,Frame Check Sequence,檢查碼,如果傳輸過程中發生錯誤可以從此檢查出來,使用 CRC 32
    MAC frame size: from DA to FCS
    1518: ethernet 上面的每個封包最大為 1518 byte,加頭加尾(DA+SA+Type+FCS = 6+6+2+4 = 18)
    64: ethernet 上最短的封包大小

    Ethernet Addresses

    世界上每一個網路卡都有不同的 MAC address
    6 byte address (48 bits)
    使用 16 進位表達
    為了保證生產出來的網路卡都有不同的 MAC address,每一家公司都有不同的前置碼 prefix,例如 AMD 的 prefix 為 8:0:20
    網卡會收到所有的封包但會去辨認接收到的封包是不是給自己的
    ethernet address 如果全部都是 1 為 broadcst address
    ethernet address 的第一個 bit 被設定為 1 的話為 multicast address

    Ethernet MAC protocol

    CSMA, Carrier Sense Multiple Access

    多台電腦同時存取 cable 時,可以透過這個協定來偵測目前線上有沒有人正在傳送封包,藉此減少 collision 的機會。
    如果 cable 上沒有訊號,則發送資料,如果線上有東西,則延後發送資料。
    缺點:仍有可能發生 collisions。原因是資料傳送會有延遲,可能 A 發送的資料因為延遲而使得 B 在沒有偵測到 A 輸送的資料情況下又發送資料,導致 collision 發生。

    CSMA/CD(Collision Detection)

    在 CSMA 的基礎上加上 CD 偵測功能,送封包時會偵測有沒有發生 collision ,如果有 collision 發生時會終止資料傳送。
    運作方式:
    • 一堆設備在同一個線上輸送接收資料(multiple access)
    • 偵測線上是 busy 還是 idle(carrier sense)
    • 丟出資料時會監聽線上的情況(collision detection)
    1-persistent protocol:
    當發現線上是 busy 時,會監聽資料傳輸直到線上狀態變成 idle ,狀態變成 idle 時,會有 p 的機率送出峰包則稱為 p-persistent。
    分散式方法:
    因為沒有一個中央設備來管控線上各個設備的資料傳送,如果同時有兩個設備偵測到線上為 idle,仍會同時送出資料。

    Collision Detection

    資料傳輸時會偵測線上的 collision 狀態(一邊送一邊聽),偵測到 collision 時,會發送 32-bit 的 jamming sequence 把線上的封包打爛,藉此保證所有的網卡都會偵測到 collision。
    一個網卡送出最少資料的情況: 64 bit preamble + 32 bit jamming sequence(runt frame) ,送出 preamber 後立刻 collision,並送出 jamming sequence,會發生在兩個設備非常接近時。
    封包送出後要監聽碰撞多久(collision window)
    最壞的情況是訊號碰到線的終端後回來再接收的時間,至少 51.2 ms,因最長為 2500m 。
    在監聽完前不可送完封包,以免混淆。
    10 Mbps * 51.2ms = 512 bits(64 bytes,14 bytes of header + 46 bytes of data + 4 bytes of CRC,ethernet 上一個封包的長度最少要 512 bits,否則會在 51.2ms 以內就把封包送完)
    如果收到小於 64 bytes 的封包會被直接丟棄。

    Exponential Backoff Algorithm,封包傳送失敗以後要等多久才傳第二次?

    每次傳送都要從 carrier sense 開始。
    第一次 delay 後隨機等待 0 or 51.2us 後重新傳送
    第二次 delay 隨機等待 0, 51.2, 102.4, 153.6 us 後重新傳送(k * 51.2 for k = 0,1,2,3)
    第三次 delay 隨機等待 k * 51.2 for k = 0...2^3-1
    第n次 delay 隨機等待 k * 51.2 for k = 0...2*n-1
    side effect:先送不一定先到
    n 的上限 10 ,delay 16 次後放棄傳送。

    Ethernet(CSMA/CD) 的效能

    loading 很輕時,效能隨著 loading 上升而上升,達到某個程度時效能便會開始下降。
    Ethernet 的效能在 loading 低時效能最好,早期有高負載需求的地方不用 ethernet。

    其他 802.3 Ethernet Standards

    共同點:MAC protocol(CSMA/CD), frame format
    不同點:速度,實體媒介(fiber, cable)
    ex. 100BASE-TX, 100BASE-T2, 100BASE-T4, 100BASE-FX(fiber), 100BASE-SX, 100BASE-BX

    補充

    full-duplex:on switch topology,可同時雙向傳送,不會有 collisions 產生
    half-duplex:on bus topology,會有 collisions 產生
     

沒有留言:

張貼留言