一、術語
- 主機和路由器:結點(nodes)
- 連接相鄰結點的通信信道:鏈路 (links)
- 有線鏈路(wired links)
- 無線鏈路(wireless links)
- 局域網(LANs)
- 鏈路層數據分組:幀,封裝網絡層數據報。
- 鏈路層負責通過一條鏈路從一個節點相另一個物理鏈路直接相連的相鄰結點傳送數據報。
二、鏈路層服務
-
組幀(framing)
- 封裝數據報構成數據幀,加首部和尾部
- 幀同步
-
鏈路接入(ink access)
- 如果是共享介質, 需要解決信道接入(channel access)
- 幀首部中的“MAC”地址,用於標識幀的源和目的
- 不同於IP地址!
-
相鄰結點間可靠交付
-
流量控制(flow control)
- 協調(pacing)相鄰的發送結點和接收
-
差錯檢測(error detection)
- 信號衰減和噪聲會引起差錯.
- 接收端檢測到差錯:通知發送端重傳或者直接丟棄幀
-
差錯糾正(error correction)
- 接收端直接糾正比特差錯
-
全雙工和半雙工通信控制
- 全雙工:鏈路兩端結點同時雙向傳輸
- 半雙工:鏈路兩端結點交替雙向傳輸
三、鏈路層的具體實現
- 每個主機或路由器接口
- 鏈路層在“適配器” (即網絡接口卡-NIC) 中實現或者在一個芯片上實現
- 以太網網卡,802.11網卡;以太網芯片組
- 實現鏈路層和物理層
- 鏈接主機的系統總線
- 由硬件、軟件與固件組成
四、差錯編碼
1. 奇偶檢驗碼
- 奇校驗:1的個數是奇數個;
- 偶校驗:1的個數是偶數個。
2. Internet校驗和(Checksum)
發送端
- 將“數據”(校驗內容)劃分爲16位的二進制“整數”序列
- 求和(sum):補碼求和(最高位進位的“1”,返回最低位繼續加)
- 校驗和(Checksum):sum的反碼
- 放入分組(UDP、TCP、IP)的校驗和字段
接收端:
- 與發送端相同算法計算
- 計算得到的"checksum"
- 爲16位全0 (或sum爲16位全1) :無錯
- 否則:有錯
3. 循環冗餘校驗碼(CRC)
檢錯能力強大,廣泛應用於實際網絡(以太網,802.11 WIFI,ATM)。
- 將數據比特D視爲一個二進制數
- 選擇一個r+1位的比特模式(生成比特模式)G
- 目標:選擇r位的CRC比特R,滿足<D,R>正好可以被G整除
- 接收端檢錯:利用G除<D,R>,餘式全0無錯;否則有錯。
- 可以檢測所有突發長度小於r+1位差錯。
五、多路訪問控制(Multiple Access Control,MAC)協議
1. 兩類“鏈路”
-
點對點鏈路
- 撥號接入的PPP
- 以太網交換機與主機間的點對點鏈路
-
廣播鏈路(共享介質)
- 早期的總線以太網
- HFC的上行鏈路
- 802.11無線局域網
-
單一共享廣播信道
-
兩個或者兩個以上結點同時傳輸:干擾(interference)
- 衝突(collision):結點同時接收到兩個或者多個信號 ,則接收失敗!
2. 多路訪問控制協議(Multiple Access Control Protocol)
- 採用分佈式算法決定結點如何共享信道,即決策結點何時可以傳輸數據。
- 必須基於信道本身,通信信道共享協調信息。
3. 理想MAC協議
- 給定:速率爲R bps的廣播信道
- 期望:
- 當只有一個結點希望傳輸數據時,它可以以速率R發送;
- 當有M個結點期望發送數據時,每個節點平均發送數據的平均速率是R/M;
- 完全分散控制:
- 無需特定結點協調
- 無需時鐘、時隙同步
4. MAC協議分類
-
信道劃分MAC協議
- 多路複用技術:TDMA/FDMA/CDMA/WDMA
-
隨機訪問MAC協議
- 信道不劃分,允許衝突
- 採用衝突恢復機制
-
當結點要發送分組
- 利用信道全部數據速率R發送分組
- 沒有事先的結點間協調
-
兩個或多個結點同時傳輸: >“衝突
-
隨機訪問MAC協議需要定義:
- 如何檢測衝突
- 如何從衝突中恢復(e.g. 通過延遲重傳)
-
典型的隨機訪問MAC協議
- 時隙(sloted)ALOHA
- ALOHA
- 載波監聽多路訪問協議CSMA、CSMA/CD(以太網)、CSMA/CA(WIFI)
-
輪轉MAC協議
- 結點輪流使用信道
- 輪詢、令牌傳遞
5. 對比
-
信道劃分MAC協議:
- 網絡負載重時,共享信道效率高,且公平
- 網絡負載輕時,共享信道效率低!
-
隨機訪問MAC協議:
- 網絡負載輕時,共享信道效率高,單個結點可以利用信道的全部帶寬
- 網絡負載重時,產生衝突開銷
-
輪轉訪問MAC協議:
- 綜合兩者的優點!