計算機網絡學習(十一) 鏈路層Ⅰ

1.數據鏈路層

1.1 概述

  • 一些術語:
    • 將運行鏈路層協議協議的任何設備均稱爲結點( node) ,包括主機、路由器、交換機和 WiFi 接人點等等
    • 沿着通信路徑連接相鄰結點的通信信道稱爲鏈路( link)
    • 在通過特定的鏈路時,傳輸結點將網絡層數據報封裝在鏈路層幀(frame) 中,並將該幀傳送到鏈路中
  • 一個交通運輸的類比例子說明網絡層與鏈路層:
    • 遊客想從 A 到 B 去遊玩,旅行社選擇出最佳路線:從 A 坐大巴到 C,從 C 坐飛機到 D,從 D 坐火車到目的地 B。
    • 一個遊客好比一個數據報,每個運輸區段好比一條鏈路,每種運輸方式好比一 種鏈路層協議,而該旅行社好比一個路由選擇協議

1.2 鏈路層服務

  • 鏈路層協議能夠提供的可能服務包括:
    • 成幀( framing) :
      • 將數據報組裝成數據幀,加首部和尾部
    • 鏈路接入(link access):
      • 媒體訪問控制 (Medium Access Control , MAC) 協議規定了幀在鏈路上 傳輸的規則
      • 幀首部的 MAC 地址,用於標識幀的源和目的,不同於 IP 地址!
    • 相鄰節點的可靠交付
      • 在低誤碼率的有線鏈路上,鏈路層可靠交付可能會被認爲是一種不必要的開銷,因而很少採用
      • 誤碼率高的鏈路如無線鏈路,需要可靠交付。其目的是本地(也就是在差錯發生的鏈路上)糾正一個差錯,而不是通 過運輸層或應用層協議迫使進行端到端的數據重傳
    • 差錯檢測和糾正
      • 因特網的運輸層和網絡層也提供了有限形式的差錯檢測,即因特網檢驗和。
      • 鏈路層的差錯檢測通常更復雜, 並且用硬件實現
      • 差錯糾正類似於差錯檢測,區別在於接收方不僅能檢測幀中出現的比特差錯,而且能夠準確地確定幀中的差錯出現的位置(並因此糾正這些差錯)

1.3 鏈路層具體實現

  • 鏈路層是實現在路由器的線路卡中的。 主機的鏈路層呢?
  • 一個典型的主機體系結構:
    • 鏈路層的主體部分是在網絡適配器 (network adapter) 中實現的, 網絡適配器有時也稱爲網絡接口卡 (Network Interface Card , NIC)
    • 位於網絡適配器核心的是鏈路層控制器,通常是一個實現了許多鏈路層服務的專用芯片, 因此,鏈路層控制器的許多功能是用硬件實現。
    • 越來越多的網絡適配器被綜合進主機的主板,即所謂的局域網在主板配置
      在這裏插入圖片描述
      在這裏插入圖片描述
  • 鏈路層 是硬件和軟件的結合體,即此處是協議棧中軟件與硬件交接的地方

2.差錯檢測和糾正

3.多路訪問協議

3.1概述

  • 有兩種類型的網絡鏈路:點對點鏈路和廣播鏈路
    • 點對點鏈路( point-to-point link) 由鏈路一端的單個發送方和鏈路另一端的單個接收方組成。
    • 許多鏈路層協議都是爲點對點鏈路設計的,如點對點協議( point- to-point protocol , PPP) 和高級數據鏈路控制 (high-Ievel data link control,HDLC)
    • 廣播鏈路 (broadcast link) ,它能夠讓多個發送和接收結點都連接到相同的、單一的、共享的廣播信道上。
    • 以太網和無線局域網是廣播鏈路層技術的例子
  • 先暫緩討論特定的鏈路層協議,而研究一個對鏈路層很重要的問題:如何協調多個發送和接收結點對一個共享廣播信道的訪問,這就是多路訪問問題( multiple access problem)
  • 爲解決此類問題 —— 多路訪問協議( multiple access protocol) ,即 結點通過這些協議來規範它們在共享的廣播信道上的傳輸行爲
  • 因爲所有的結點都能夠傳輸幀,所以多個結點可能會同時傳輸幀,結果所有結點同時接到多個幀,傳輸的幀在所有的接收方處碰撞( collide) 了,此時沒有一個接收結點能夠有效地獲得任何傳輸的幀
    • 顯然,如果許多結點要頻繁地傳輸幀,許多傳輸將導致碰撞,廣 播信道的大量帶寬將被浪費掉
    • 當多個結點處於活躍狀態時,爲了確保廣播信道執行有用的工作,以某種方式協調活躍結點的傳輸是必要的。 這種協調工作由多路訪問協議負責
  • 多路訪問協議劃分爲 3 種類型
    • 信道劃分協議 (channel partitioning protocol)
    • 隨機接入協議 (random access protocol)
    • 輪流協議( taking-turns protocol)
  • 理想的多路訪問協議:
    • 給定:速率爲 R bps 的廣播信道
    • 期望:
      • 當僅有一個結點有數據發送時,該結點具有 R bps 的吞吐量;
      • 當有 M 個結點要發送數據時,每個結點吞吐量爲 R/M bps
      • 協議是分散的:這就是說不會因某主結點故障而使整個系統崩潰
      • 協議是簡單的,使實現不昂貴

3.2信道劃分協議

  • 之前講過,時分多路複用 (TDM) 和頻分多路複用 (FDM) 是兩種能夠用於在所有共享信道結點之間劃分廣播信道帶寬的技術
  • TDMA(time division multiple access)
    • 週期性接入信道
    • 每個站點在每個週期,佔用固定長度的時隙
    • 未用時空閒時隙、
    • 消除了碰撞而且非常公平,每個結點在每個幀時間內得到了專用的傳輸速率
    • 然鵝,結點被限制於 R/Nbps 的平均速率,即使當它是唯一有分組要發送的結點;結點必須總是等待它在傳輸序列中的輪次,即使當它是唯一有分組要發送的結點
  • FDMA(frequency division multiple access)
    • 信道頻譜劃分爲多個頻帶
    • 每個站點分配一個固定的頻帶
    • 無傳輸頻帶空閒
    • 避免了碰撞, 在 N 個結點之間公平地劃分了帶寬
    • 然鵝,限制了一個結點只能使用 R/N 的帶寬,即使當它是唯一一個有分組要發送的結點時

3.3 隨機接入協議

  • 在隨機接入協議中,一個傳輸結點總是以信道的全部速率(即 R bps) 進行發送
  • 沒有事先的節點間協調,當有碰撞時,涉及碰撞的每個結點反覆地重發(不必立即重發)它的幀 (也就是分組) ,到該幀無碰撞地通過爲止
  • 在重發該幀之前等待一個隨機時延。涉及碰撞的每個結點獨立地選擇隨機時延
  • 典型的數據接入協議:
    • ALOHA 協議
    • CSMA 協議、CSMA/CD、CSMA/CA

3.3.1 時隙 ALOHA

  • 最簡單的隨機接人協議之一 —— 時隙 ALOHA 協議
  • 假設:
    • 所有幀大小相同
    • 時間被劃分等長的時隙(一個時隙等於傳輸一幀的時間)
    • 結點只在時隙起點開始傳輸幀
    • 結點是同步的, 每個結點都知道時隙何時開始
    • 如果在一個時隙中有兩個或者更多個幀碰撞,則所有結點在該時隙結束之前檢測到該碰撞事件
  • 在每個結點中,時隙 ALOHA 的操作是:
    • 每個結點在每個時隙以概率 p 發送數據
    • 當結點有一個新幀要發送時,等到下一個時隙開始並在該時隙傳輸整個幀
    • 如果沒有碰撞,該結點成功地傳輸它的幀
    • 如果有碰撞,該結點檢測到這次碰撞,以概率 p 在後續的每個時隙中重傳它的幀,直到成功
      在這裏插入圖片描述
  • 優點:
    • 單個節點活動時,可以連續以信道全部速率傳輸數據
    • 高度分散化,只需時鐘同步
    • 簡單
  • 缺點:
    • 衝突,浪費時隙
    • 空閒時隙
    • 結點也許能以遠小於分組傳輸時間檢測到衝突
  • 效率:
    • 定義:長期運行中成功時隙的比例(很多結點、很多幀待發送)
    • 因爲有 N 個結點,任意一個結點成功傳送的概率是 Np(l-p)N-1
    • 當 N 無窮大時,可得最大效率 = 1/e = 0.37
    • 相似的分析還表明 37% 的時隙是空閒的, 26% 的時隙有碰撞

3.3.2 ALOHA 協議

  • 第 一個 ALOHA 協議實際上是一個非時隙、完全分散的協議。更加簡單,無需同步
  • 當有新的幀需要發送時,立即發送
  • 衝突性增大,若在t0 時刻發送,會與在[t0 - 1 , t0 + 1] 期間發送的幀衝突
  • 任意一個結點成功傳送的概率是 p(1 - p)2(N-1)
  • 當 N 無窮大時,可得最大效率 = 1/2e = 0.18,剛好是時隙 ALOHA 的一半。 這就是完全分散的 ALOHA 協議所要付出的代價
    在這裏插入圖片描述

3.4 載波偵聽多路訪問 (CSMA)

  • 載波偵聽( carrier sensing) ,即一個結點在傳輸前先偵聽信道
    • 若信道空閒,則發送完整幀
    • 若信道上有幀正在發送,則推遲發送
      • 1 - 堅持 CSMA
      • 非堅持 CSMA
      • p - 堅持 CSMA
  • 碰撞檢測( collision detection) ,即當一個傳輸結點在傳輸時一直在偵聽此信道
    • 如果它檢測到另 一個結點正在傳輸干擾幀,它就停止傳輸,在重複"偵聽-當空閒時傳輸"循環 之前等待一段隨機時間
  • 以上兩個規則包含在載波偵聽多路訪問( Carrier Sense Multiple Access , CSMA)具有碰撞檢測的 CSMA(CSMA with Collision Detection, CSMA/CD)
  • 對於 CSMA,如果所有的結點都進行載波偵聽了,爲什麼當初會發生碰撞?—— 以時空圖解釋:
    在這裏插入圖片描述
    • 在時刻 t0,結點 B 偵聽到信道是空閒的,因此結點 B 開始傳輸,沿着廣播媒體在兩個方向上傳播它的比特
    • 在時刻 t1(兩時刻相差極短),結點 D 有一個幀要發送。儘管結點 B 在該時刻正在傳輸, 但 B 傳輸的比特還沒有到達 D ,因此 D 此時偵聽到信道空閒,從而 D 開 始傳輸它的幀
    • 一個短暫的時間之後, B 的傳輸開始在 D 干擾 D 的傳輸
    • 顯然廣播信道的端到端信道傳播時延 (channel propagation delay) (信號從一個結點傳播到另一個結點所花費的時間) 在決定其性能方面起着關鍵的作用
    • 繼續發生衝突幀,導致浪費資源
  • 對於 CSMA / CD
    • 短時間內可以檢測到衝突,衝突後終止傳輸,減少信道浪費
    • 在這裏插入圖片描述
    • 當某結點執行碰撞檢測時, 一旦它檢測到碰撞將立即停止傳輸
    • 在多路訪問協議中加入碰撞檢測,通過不傳輸一個無用的、(由來自另一個結點的幀干擾)損壞的幀,將有助於改善協議的性能
    • 在結點中與廣播信道相連的適配器負責鏈路層幀的傳輸
      • 信道空閒則開始傳輸,信道忙則等待,直到偵聽到沒有信號能量時纔開始傳輸
      • 在傳輸過程中,適配器監視來自其他使用該廣播信道的適配器的信號能量的存在
      • 如果在傳輸時檢測到來自其他適配器的信號能量,它中止傳輸。適配器等待一個隨機時間量後,再次返回第一步
    • 隨機時間長短如何選擇?
      • 當碰撞結點數量較少時,時間間隔較短;當碰撞結點數量較大時,時間間隔較長
      • 採用二進制指數後退(binary exponential backoff)算法
      • 當傳輸一個給定幀時,在該幀經歷了一連串的幾次碰撞後,結點隨機地從 [ 0,1, 2, … , 2n-1] 中選擇一個 K 值。對於以太網,一個結點等待的實際時間量是 K*512 比特時間
      • 因此從中選擇 K 的集合長度隨着碰撞次數呈指數增長;正是由於這個原因,該算法被稱爲二進制指數後退
    • CSMA / CD 效率問題
      • 當只有一個結點有一個幀發送時,該結點能夠以信道全速率進行傳輸。然而,如果很多結點都有幀要發送,信道的有效傳輸速率可能會小得多。
      • CSMA / CD 效率的推導超出了本書的範圍
      • 當結點間的傳播時延約爲 0 時,或最大幀的傳輸時間很大時,CSMA / CD 的效率很高

3.5 輪轉訪問協議

  • 主要討論們兩種比較重要的輪流協議:
    • 輪詢協議 ( polling protocol)
    • 令牌傳遞協議 ( token-passing protocol)
  • 輪詢協議 ( polling protocol)
    • 要求這些結點之一要被指定爲主結點,主結點以循環的方式輪詢 ( poll) 每個結點(輪流“邀請”每個從屬結點發送數據)
    • 問題:
      • 輪詢開銷
      • 等待延遲
      • 單點故障
  • 令牌傳遞協議 ( token-passing protocol)
    • 控制令牌依次以某種固定的次序從一個結點傳遞到下一個結點,持有令牌的結點發送數據
    • 令牌:很小的特殊幀
    • 問題:
      • 令牌開銷
      • 等待延遲
      • 單點故障
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章