計算機網絡-數據鏈路層

  1. 使用點對點信道的數據鏈路層:

    • 數據鏈路和幀: 數據鏈路包括結點之間的物理線路以及實現通信協議的硬件和軟件. 現在通常使用網絡適配器來實現數據鏈路層通信協議. 數據鏈路層的協議數據單元爲幀(frame).
    • 數據鏈路層需要解決的問題:
      • 封裝成幀(framing): 在一段數據的前後分別添加首部和尾部.
        幀格式
      • 透明傳輸: 無論什麼樣的比特組合的數據, 都能夠按照原樣沒有差錯地通過這個數據鏈路層. 數據鏈路層使用幀首部和幀尾部來進行幀的劃分, 這樣的特殊字符稱爲幀定界符. 但是可能出現幀的數據部分中出現和幀首部或幀尾部相同的比特組合, 這時候接收端會將其視作幀的定界符. 因爲接收端看到了幀的數據部分, 所以稱爲不透明(透明就是實際存在但是看不到, 既然看到了就不透明瞭). 爲了解決這個問題所以需要進行轉義, 這和編程裏面的轉移字符概念類似.
      • 差錯檢測:
        數據鏈路層廣泛使用的差錯檢測方法是循環冗餘校驗CRC(Cyclic Redundancy Check). 因爲該差錯檢查方法可以藉助於硬件來實現, 因此在速度上更快.
  2. 點對點協議PPP:

    • 2.1. PPP協議的特點: PPP 協議就是用戶計算機和 ISP 進行通信時所使用的數據鏈路層協議.
      • PPP 協議需滿足的需求
        • 簡單: 數據鏈路層的幀不需要糾錯, 不需要序號, 也不需要流量控制.
        • 封裝成幀: PPP 協議需要規定特殊的字符作爲幀定界符.
        • 透明性: PPP 需要措施來解決透明傳輸的問題.
        • 多種網絡層協議: PPP 協議必須能夠在同一條物理鏈路上同時支持多種網絡層協議的運行.
        • 多種類型的鏈路: PPP 協議還需要能夠在多種類型的鏈路上運行.
        • 差錯檢測(error detection): PPP 協議必須能夠對接收端接收到的幀進行檢測, 並立即丟棄有差錯的幀.
        • 檢測連接狀態: PPP 協議需要能夠及時自動檢測鏈路是否處於正常的工作狀態.
        • 最大傳輸單元: PPP 協議必須對每一種類型的點對點鏈路設置最大傳輸單元(Maximum transmission unit)的默認值. MTU 指的是數據鏈路層的幀可以載荷的數據部分的最大長度, 而不是幀的總長度.
        • 網絡層地址協商: PPP 協議必須提供一種機制使通信的兩個網絡層的實體能夠通過協商之道或能夠配置彼此的網絡層地址.
        • 數據壓縮協商: PPP 協議必須提供一種方法來協商使用數據壓縮算法.
      • PPP 協議的組成
        • 一個將 IP 數據報封裝到串行鏈路的方法. PPP 協議支持異步鏈路(無奇偶校驗的 8 比特數據), 也支持面向比特的同步鏈路.
        • 一個用來建立、配置和測試數據鏈路連接的鏈路控制協議 LCP(Link Control Protocol).
        • 一套網絡控制協議 NCP(Network Control Protocol), 其中的每一個協議支持不同的網絡層協議.
    • 2.2. PPP 協議的幀格式:
      • 各字段的含義: 標誌字段 F 表示一個幀的開始或結束. 第四個字段是協議字段. 當協議字段爲 0x0021 時, PPP 幀的信息字段就是 IP 數據報. 若爲 0xC021, 則信息字段是 PPP 鏈路控制協議 LCP 的數據, 而 0x8021 表示這時網絡層的控制數據.
        ppp-frame
      • 字節填充: 異步傳輸時, PPP 協議的轉移字符爲 0x7D.填充規則如下:
        • 信息字段中出現的 0x7E 轉變成(0x7D, 0x5E)
        • 信息字段中出現的 0x7D 轉變成(0x7D, 0x5D)
        • 信息字段中出現的控制字符, 則在該字符前要加入一個 0x7D 字節, 同時將該字符編碼加 0x20. 例如 0x03 最終變爲(0x7D, 0x23)
      • 零比特填充:
        • 只要發現有 5 個連續 1, 則立即填入一個 0.
    • 2.3. PPP 協議的工作狀態:
      • PPP 鏈路起始和終止狀態爲**鏈路靜止(Link Dead)**狀態.
      • 個人電腦公國調制解調器呼叫路由器時, 路由器檢測到調制解調器發出的載波信號. 雙方建立物理連接. 此時進入**鏈路建立(Link Establish)**狀態, 其目的是爲了建立 LCP 連接.
      • LCP 開始協商配置選項, 即發送 LCP 的配置請求幀(Configure-Reqeust). 協商結束後就建立 LCP 鏈路, 此時進入**鑑別(Authenticate)**狀態.
      • 在鑑別狀態只允許傳送 LCP 協議的分組, 鑑別協議的分組以及檢測鏈路質量的分組. 若鑑別成功則進入**網絡層協議(Network-Layer Protocol)**狀態.
      • 在網絡層協議狀態, 若此時 鏈路上運行的是 IP 協議, 使用 IP 控制協議 IPCP(IP Control Protocol) 分配 IP 地址. 配置完成後進入**鏈路打開(Link Open)**狀態. 在此狀態即可互相發送分組.
      • 數據傳輸結束後, 可以由鏈路的一段發出終止請求 LCP 分組(Terminate-Request) 請求終止鏈路連接, 在收到對方發來的終止確認 LCP 分組(Terminate-Ack)後, 轉到鏈路終止狀態. 當調制解調器的載波停止後, 轉到鏈路靜止狀態.
        ppp working state
  3. 使用廣播信道的數據鏈路層:

    • 3.1. 局域網的數據鏈路層:
      • 以太網的兩個標準: DIX Ethernet V2 和 IEEE 802.3 標準
      • 適配器的作用: 適配器即網絡接口卡, 俗稱網卡. 適配器和局域網之間的通信時通過電纜或雙絞線以串行傳輸方式進行的, 而適配器和計算機之間的通信則是通過計算機主板上的 I/O 總線以並行傳輸方式進行的. 適配器的一個重要功能就是要進行數據串行傳輸和並行傳輸的轉換. 適配器需要能夠實現以太網協議.
    • 3.2. CSMA/CD 協議:
      • 總線的特點: 當一臺計算機發送數據時, 總線上的所有計算機都能檢測到這個數據.

      • 以太網採用無連接的工作方式: 以太網不必先建立連接就可以直接發送數據. 適配器對發送的數據幀不進行編號, 也不要求對方發回確認. 對有差錯幀是否需要重傳則由高層來決定, 以太網並不知道這是重傳幀, 而是當作新的數據幀來發送.

      • 以太網發送數據使用曼徹斯特(Manchester)編碼的信號.

      • CSMA/CD 協議要點:

        • 多點接入: 許多計算機以多點接入的方式連接在一根總線上.

        • 檢測信道: 不管在發送前還是在發送中, 每個站都必須不停地檢測信道. 發送前檢測信道時爲了獲得發送權; 在發送中檢測信道是爲了及時發現有沒有其它站的發送和本站發送的碰撞.

        • 碰撞檢測: 適配器邊發送數據邊檢測信道上的信號電壓變化情況, 以便判斷自己在發送數據時其它站是否也在發送數據.

          當幾個站同時在總線上發送數據時, 總線上的信號電壓變化幅度將會增大. 當適配器檢測到的信號電壓變化幅度超過一定的門限值時, 就認爲總線上至少有兩個站同時在發送數據, 表明產生了碰撞.

          任何一個正在發送數據的站, 一旦發現總線上出現了碰撞, 其適配器就要立即停止發送, 免得繼續進行無效的發送, 白白浪費網絡資源, 然後等待一段隨機時間後再次發送.

          以太網的端到端往返時間 2τ\tau 稱爲爭用期(connection period), 也叫碰撞窗口(collision window). 經過爭用期這段時間還沒有檢測到碰撞, 才能肯定這次發送不會發生碰撞.

      • 碰撞規避算法: 截斷二進制指數退避(truncated binary exponential backoff).

        基本退避時間爲爭用期2τ\tau, 具體時間是51.2μ\mus. 對於 10 Mbit/s 的以太網, 在爭用期可以發送 512 bit, 即 64 字節.

        從離散的整數集合[0, 1,…, (2k-1)]中隨機取出一個數, 記爲 r. 重傳推後的時間是 r 倍的爭用期. 計算公式如下:
        k=Min[,10] k = Min[重傳次數, 10]

        以太網規定一個最短幀長 64 字節. 凡是長度小於 64 字節的幀都是由於衝突而異常終止的無效幀.

        發送端檢測到發生碰撞後, 立即停止發送數據, 然後繼續發送 32 或 48 比特的人爲干擾信息(jamming signal). 假設 A 站發送信號到檢測衝突時間爲 TB, 發送強化干擾信號時間爲 TJ, 單程傳播時延爲 τ\tau, 因此總線被佔用時間爲 TB + TJ + τ\tau

      • CSMA/CD 算法過程:

        • 準備發送: 適配器從網絡層獲得一個分組, 加上以太網的首部和尾部, 組成以太網幀, 放入適配器的緩存中. 但是在發送之前, 必須先檢測信道.
        • 檢測信道: 若檢測到信道忙, 則應不停地檢測, 一直等待信道轉爲空閒. 若檢測到信道空閒, 並在 96 比特時間內信道保持空閒, 就發送這個幀.
        • 在發送過程中仍不停地檢測信道, 即網絡適配器要邊發送邊監聽. 若在爭用期內一直未檢測到碰撞, 則一定能夠發送成功. 發送完畢後回到準備發送階段; 若在爭用期內檢測到碰撞. 立即停止發送數據, 並按規定發送認爲干擾信號. 適配器戒指執行指數退避算法, 等待 r 倍爭用期後, 回到信道檢測階段.
    • 3.3. 使用集線器的星型拓撲:
      每個站需要用兩對無屏蔽雙絞線(放在一根電纜內), 分別用於發送和接收. 雙絞線總是和集線器配合使用.
      • 集線器特點:
        • 使用集線器的以太網在邏輯上仍是一個總線網, 各站共享邏輯上的總線. 在同一時刻之多隻允許一個站發送數據.
        • 集線器工作在物理層, 它的每個接口僅僅簡單地轉發比特, 不進行碰撞檢測.
    • 3.4. 以太網的 MAC 層:
      • MAC 層的硬件地址:
        MAC 地址佔 6 字節長, 第一字節的最低爲爲I/G位. 當I/G位爲0時, 地址字段表示一個單個站地址; 當I/G位爲1時表示組地址, 用力啊進行多播. 適配器有過濾功能, 每收到一個 MAC 地址就先用硬件檢查 MAC 幀中的目的地址. 如果是發往本站的幀則收下, 然後再進行其它的處理. 否則就將此幀丟棄, 不再進行其它的處理.
      • MAC 幀的格式:
        以太網有幀開始定界符, 但是沒有幀結束定界符. 這是因爲以太網採用的是曼徹斯特編碼, 在該編碼中每一個碼元中間都有一次電壓的轉換. 當發送方將一個以太網幀發送完畢後, 就不再發送其它碼元了, 因此電壓也不會發生變化了, 這樣接收方就很容易找到以太網幀的結束位置.
        mac frame
    1. 擴展的以太網:
      • 物理層擴展以太網: 使用集線器
      • 數據鏈路層擴展以太網: 以太網交換機. 以太網交換機可以實現全雙工通信, 使多對主機能夠同時通信, 相互通信的主機都是獨佔傳輸媒體, 無碰撞地傳輸數據. 以太網交換機還擁有自學功能.
      • 虛擬局域網: 由一些局域網網段構成的與物理位置無關的邏輯組. 可以使用以太網交換機實現.
    2. 參考:
      [1] : 計算機網絡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章