數據鏈路層


概述

1、鏈路:從一個結點到相鄰結點的一段物理線路,而中間沒有任何其他的交換結點

2、數據鏈路:把實現通信協議的硬件和軟件加到鏈路上

3、數據鏈路層以幀為單位傳輸和處理數據

 

數據鏈路層實現

1、封裝成幀

2、差錯檢測

3、可靠傳輸

 

(例)

以太網 V2 的 MAC 幀(最大長度為 1518 字節)
6 字節 6 字節 2 字節 46 ~ 1500 字節 4 字節
目的地址 源地址 類型 數據載荷 FCS
幀頭 上層交付的協議數據單元 幀尾

 

使用點對點傳輸的數據鏈路層

1、封裝成幀

(1)添加幀頭幀尾即封裝成幀:網絡層協議數據單元 + 幀頭 + 幀尾

(2)在鏈路上以幀為單元來傳輸數據

2、差錯檢測

(1)檢錯碼被封裝在幀尾中,如,FCS就是檢錯碼

(2)接收方主機收到幀后,通過檢錯碼和檢錯算法,可以檢測幀中是否有誤碼

3、可靠傳輸

(1)接收方主機收到有誤碼的幀后,會將其丟棄,然后讓接收方主機收到被丟棄幀的正確副本

(2)盡管誤碼是不能完全避免的,但若能實現發送方發送什么,接受方就收到什么,就成為可靠傳輸

 

使用廣播信道的數據鏈路層

1、編址問題

(1)將目的地址添加到幀中一起傳輸

2、由於無線信道的廣播天性,無線局域網仍使用共享信道技術

3、碰撞問題

(1)共享式以太網的媒體接入控制協議 CSMA / CD(載波偵聽多路訪問 / 沖突檢測)

(2)802.11 局域網的媒體接入控制協議 CSMA / CA(載波偵聽多路訪問/沖突避免)

 

交換式局域網

1、使用點對點鏈路和鏈路層交換機

2、在有線(局域網)領域已完全取代共享式局域網

 

封裝成幀

1、幀 = 上層交付的協議數據單元 + 幀頭 + 幀尾

2、以太網 V2 的 MAC 幀

(1)幀頭:目的地址(6 字節)+ 源地址(6 字節)+ 類型(2 字節)

(2)幀尾:FCS(4 字節)

3、PPP 幀

(1)幀頭:標志(1 字節)+ 地址(1 字節)+ 控制(1 字節)+ 協議(2 字節)

(2)幀尾:FCS(2 字節)+ 標志(1 字節)

4、幀頭、幀尾作用之一:幀定界

(1)PPP 幀:過幀頭幀尾的標志提取出幀

(2)以太網 V2 的 MAC 幀:物理層添加 8 個字節的前導碼:幀開始定界符(1 字節,確定了幀的開始)+ 前同步碼(7 個字節,使接收方時鍾同步),同時,幀間間隔時間為 96 比特時間,不需要幀結束界定符

 

透明傳輸

1、數據鏈路層對上層交付的傳輸數據沒有任何限制,就像數據鏈路層不存在一樣

(1)面向字節的物理鏈路,使用字節填充(或稱字符填充)的方法實現透明傳輸

(2)面向比特的物理鏈路,使用比特填充的方法實現透明傳輸

2、區分幀界定符:發送數據前,會對幀進行掃描,在幀中出現的幀定界符前加一個轉義字符,這樣就不會誤判了數據中的幀定界符,即幀中只會有開始和結束兩個幀定界符,其他的都是數據內容

3、區分轉義字符:發送數據前,會對幀進行掃描,在幀中出現的轉義字符前加一個轉義字符,這樣就不會誤判了數據中的轉義字符

4、提高幀的傳輸效率

(1)使幀的數據部分的長度盡可能大

(2)考慮到差錯控制等多種因素,每一種數據鏈路層協議都規定了幀的數據部分的長度上限,即最大傳送單元 MTU(Maximum Transfer Unit)

 

差錯檢測

1、比特差錯:比特在傳輸過程中可能會產生差錯:1 可能會變成 0,0 也可能變成 1

2、誤碼率(BER:BitErrorRate):在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率

3、數據鏈路層使用 FCS 檢測是否產生誤碼

4、奇偶校驗

(1)在待發送的數據后面添加 1 位奇偶校驗位,使整個數據(包括所添加的校驗位在內)中“1”的個數為奇數(奇校驗)或偶數(偶校驗)

(2)如果有奇數個位發生誤碼,則奇偶性發生變化,可以檢查出誤碼

(3)如果有偶數個位發生誤碼,則奇偶性不發生變化,不能檢查出誤碼(漏檢)

(4)漏檢率比較高

5、循環冗余校驗

(1)CRC:Cyclic Redundancy Check

(2)收發雙方約定好一個生成多項式 G(x)

(3)發送方基於待發送的數據和生成多項式計算出差錯檢測碼(冗余碼),將其添加到待傳輸數據的后面一起傳輸

(4)接收方通過生成多項式來計算收到的數據是否產生了誤碼

(5)檢錯碼只能檢測出幀在傳輸過程中出現了差錯,但並不能定位錯誤,因此無法糾正錯誤

(6)要想糾正傳輸中的差錯,可以使用冗余信息更多的糾錯碼進行前向糾錯,但糾錯碼的開銷比較大,在計算機網絡中較少使用

(7)漏檢率非常低,雖然計算比較復雜,但非常易於用硬件實現,因此被廣泛應用於數據鏈路層

(8)在計算機網絡中,通常采用檢錯重傳方式來糾正傳輸中的差錯,或者僅僅是去棄檢測到差錯的幀,取決於數據鏈路層向其上層提供的是可靠傳輸服務還是不可靠傳輸服務

 

生成多項式

1、必須包含最低次項

2、常用

(1)CRC - 16 = x16 + x15 + x2 + 1

(2)CRC - CCITT = x16 + x12 + x5 + 1

(3)CRC - 32 = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

 

(例)

1、數據:101001

2、生成多項式 G(x) = x3 + x2 + 1

3、發送方

(1)構造被除數:待發送信息后面添加生成多項式最高次數個 0:"101001" + "000" = 101001000

(2)構造除數:生成多項式各項系數構成的比特串:1101

(3)進行二進制除法

(4)商:僅作為標記,防止計算過程中對錯位

(5)余數 / 冗余碼:1,余數的位數應該與生成多項式最高次數相同,若位數不夠,則在余數前補足 0 湊足位數:001

(6)發送:待發送數據(101001) + 冗余碼(001)= 101001001

4、接收方  

(1)構造被除數:接收到的數信息:101001001

(2)構造除數:生成多項式各項系數構成的比特串:1101

(3)進行二進制除法

(4)商:僅作為標記,防止計算過程中對錯位

(5)余數:0,余數為 0,可認為傳輸過程無誤碼;余數不為 0,可認為傳輸過程產生誤碼

 

可靠傳輸

1、數據鏈路層向上層提供的服務類型

(1)不可靠傳輸服務:僅僅去棄有誤碼的幀,其他什么也不做

(2)可靠傳輸服務:想辦法實現發送端發送什么,接收端就收到什么

2、一般情況下,有線鏈路的誤碼率比較低,為了減小開銷,並不要求數據鏈路層向上提供可靠傳輸服務,即使出現了誤碼,可靠傳輸的問題由其上層處理

3、無線鏈路易受干擾,誤碼率比較高,因此要求數據鏈路層必須向上層提供可靠傳輸服務

4、比特差錯只是傳輸差錯中的一種,從整個計算機網絡體系結構來看,傳輸差錯還包括分組丟失、分組失序、分組重復

5、分組丟失、分組失序、分組重復,一般不會出現在數據鏈路層,而會出現在其上層

6、可靠傳輸服務並不僅局限於數據鏈路層,其他各層均可選擇實現可靠傳輸

(1)運輸層:TCP 向其上層提供面向連接的可靠傳輸服務,UDP 向其上層提供無連接、不可靠傳輸服務

(2)網絡層:IP 向其上層提供無連接、不可靠傳輸服務

(3)網絡接口層:802.11 無線局域網要求數據鏈路層實現可靠傳輸,以太網不要求數據鏈路層實現可靠傳輸

7、實現比較復雜,開銷也比較大,是否使用可靠傳輸取決於應用需求

8、實現機制,以下協議可以應用到計算機網絡體系結構的各層協議中

(1)停止 - 等待協議(SW:Stop-and-Wait)

(2)回退 N 幀協議(GBN:Go-Back-N)

(3)選擇重傳協議(SR:Selective Repeat)

 

停止 - 等待協議

1、SW:Stop-and-Wait

2、通過確認和重傳機制實現的可靠傳輸協議,常稱為自動請求重傳協議(ARQ:Automatic Repeat reQuest),重傳的請求是自動進行,不需要接收方顯式地請求

3、發送方每發送完一個數據分組后,就停止發送下一個數據分組,等待來自接受方的確認分組(ACK)或否認分組(NAK),若收到確認分組,則可繼續發送下一個數據分組,若收到否認分組,則重傳

4、接收超時

(1)接收方收不到數據分組,就不會發送 ACK 分組或 NAK分組,如果不采取其他措施,發送方就會一直處於等待接收方 ACK 分組或 NAK 分組的狀態

(2)超時重傳:可以在發送方發送完一個數據分組時,啟動一個超時計時器,若到了超時計時器所設置的重傳時間,而發送方仍收不到接收方的任何 ACK 分組或 NAK 分組,則重傳原來的數據分組

(3)一般可將重傳時間選為略大於“從發送方到接收方的平均往返時間”

(4)在數據鏈路層點對點的往返時間比較確定,容易設置重傳時間

(5)在運輸層,由於端到端往返時間非常不確定,不容易設置合適的重傳時間

(6)對於誤碼率較高的點對點鏈路,接收方檢測到數據分組有誤碼時,使發送方盡早重傳,也可以給發送方發送 NAK 分組

5、分組重復

(1)接收方正確接收到數據分組,給發送方發送 ACK 分組,但 ACK 分組丟失,觸發超時重傳

(2)解決:給每個分組帶上序號,接收方丟棄重復數據分組,給發送方發送針對該分組的 ACK 分組

(3)對於停止 - 等待協議,由於每發送一個數據分組就停止等待,只要保證每發送一個新的數據分組,其發送序號與上次發送的數據分組的序號不同即可,只用一個比特來編號,即編號 0、1

(4)為了讓發送方能夠判斷所收到的 ACK 分組是否是重復的,需要給 ACK 分組編號,只用一個比特來編號,即編號 0、1

(5)數據鏈路層一般不會出現 ACK 分組遲到的情況,因此在數據鏈路層實現停止 - 等待協議可以不用給 ACK 分組編號

6、信道利用率

(1)假設收發雙方之間是一條直通的信道,忽略接收方對數據分組的處理時延、發送方對 ACK 分組的處理時延

(2)從發送一個數據分組開始,到可以發送下一個數據分組為止,總時間:TD + RTT + TA

(3)TD:發送方發送數據分組所耗費的發送時延

(4)RTT:收發雙方之間的往返時間

(5)TA:接收方發送 ACK 分組所耗費的發送時延

(6)信道利用率 U = TD / (TD + RTT + TA)

(7)TA 一般都遠小於 TD,可以忽略,當 RTT 遠大於 TD 時,信道利用率會非常低

(8)若出現重傳,則對於傳送有用的數據信息來說,信道利用率還會降低

 

回退 N 幀協議

1、GBN:Go-Back-N

2、發送方

(1)發送窗口尺寸:WT 取值范圍:1 < WT <= 2n - 1

(2)n 是構成分組序號的比特數量

(3)WT = 1 時,等同於停止-等待協議

(4)WT > 2n - 1 時,接收方無法分辨新、舊數據分組

(5)發送方可在未收到接收方確認分組的情況下,將序號落在發送窗口內的多個數據分組全部發送出去

(6)發送方只有收到對已發送數據分組的確認時,發送窗口才能向前相應滑動

(7)發送方收到多個重復確認時,可在重傳計時器超時前盡早開始重傳,由具體實現決定

(8)發送方發送窗口內某個已發送的數據分組產生超時重發時,其后續在發送窗口內且已發送的數據分組也必須全部重傳,即回退 N 幀

3、接收方

(1)接收方的接收窗口尺寸:WR 取值范圍:WR = 1,因此接收方只能按序接收數據分組

(2)接收方只接收序號落在接收窗口內,且無誤碼的數據分組,接收后,將接收窗口向前滑動一個位置,與此同時給發送方發回相應的確認分組

(3)為了減少開銷,接收方不一定每收到一個按序到達,且無誤碼的數據分組就給發送方發回一個確認分組

(4)累積確認:在連續收到好幾個按序到達,且無誤碼的數據分組后(由具體實現決定),針對最后一個數據分組發送確認分組,ACKn表示序號為 n 及以前的所有數據分組都已正確接收

(5)捎帶確認:在接收方有數據分組要發送時(即發送方、接收方互換角色),接收方(原)在發送的數據中,捎帶對之前按序接收,且無誤碼的數據分組的 ACK 分組

(6)接收方收到未按序到達的數據分組,除丟棄外,還要對最近按序接收的數據分組進行確認

4、回退 N 幀協議在流水線傳輸的基礎上,利用發送窗口來限制發送方連續發送數據分組的數量,是一種連續 ARQ 協議

5、在協議的工作過程中,發送窗口和接收窗口不斷向前滑動,因此這類協議又稱為滑動窗口協議

6、缺點

(1)由於回退 N 幀協議的特性,當通信線路質量不好時,即較多誤碼、丟失,其信道利用率並不比停止 - 等待協議高

(2)回退 N 幀協議的接收窗口尺寸 WR 只能等於 1,因此接收方只能按序接收正確到達的數據分組

(3)一個數據分組的誤碼,就會導致其后續多個數據分組不能被接收方按序接收而丟棄(盡管它們無亂序和誤碼),這必然會造成發送方對這些數據分組的超時重傳,極大浪費通信資源

 

選擇重傳協議

1、SR:Selective Repeat

2、設法只重傳出現誤碼的數據分組,接收窗口尺寸 WR 應大於 1,以便接收方先收下失序到達但無誤碼並,且序號落在接收窗口內的那些數據分組,等到所缺分組收齊后再一並送交上層

3、為了使發送方僅重傳出現差錯的分組,接收方不能再采用累積確認,而需要對每個正確接收到的數據分組進行逐一確認

4、發送方

(1)發送窗口尺寸:WT 取值范圍:1 < WT <= 2n-1

(2)n 是構成分組序號的比特數量

(3)WT = 1 時,等同於停止 - 等待協議

(4)WT > 2n-1 時,接收方無法分辨新、舊數據分組

(5)發送方可在未收到接收方確認分組的情況下,將序號落在發送窗口內的多個數據分組全部發送出去

(6)發送方只有按序收到對已發送數據分組的確認時,發送窗口才能向前相應滑動;若收到未按序到達的確認分組時,對其進行記錄,以防正其相應數據分組的超時重發,但發送窗口不能向前滑動

5、接收方

(1)接收窗口尺寸:WR 取值范圍:1 < WR <= WT

(2)WR = 1 時,等價於停止 - 等待協議

(3)WR > WT 時,無意義

(4)接收方可接收未按序到達,但沒有誤碼並且序號落在接收窗口內的數據分組

(5)為了使發送方僅重傳出現差錯的分組,接收方不能再采用累積確認,而需要對每個正確接收到的數據分組進行逐一確認

(6)接收方只有在按序接收數據分組后,接收窗口才能向前相應滑動

 

點對點協議 

1、PPP:Point-to-PointProtocol,目前使用最廣泛的點對點數據鏈路層協議

2、PPP 協議已成為因特網的正式標准 [RFC1661, RFC16621]

3、處於數據鏈路層,在點對點鏈路傳輸中,各種協議的數據報提供了一個標准方法

4、主要構成的三部分

(1)對各種協議數據報的封裝方法(封裝成幀)

(2)鏈路控制協議 LCP:用於建立、配置、測試數據鏈路的連接

(3)一套網絡控制協議 NCPs:其中的每一個協議支持不同的網絡層協議

5、使用 PPP 協議的數據鏈路層向上提供可靠傳輸服務

 

PPP 幀格式

幀的首部 幀的數據部分 幀的尾部
標志:1 字節 地址:1 字節 控制:1 字節 協議:2 字節 不超過 1500 字節 幀檢驗序列:2 字節 標志:1字節

1、標志(Flag):PPP 幀的界定符,取值 0x7E

2、地址(Address):取值 0xFF,預留,目前沒有作用

3、控制(Control):取值 0x03,預留,目前沒有作用

4、協議(Protocol):指明幀的數據部分送交哪個協議處理

(1)0x0021:PPP 幀的信息字段就是 IP 數據報

(2)0xC021:信息字段是 PPP 鏈路控制數據

(3)0x8021:表示這是網絡控制數據

(4)0xC023:信息字段是安全性認證 PAP

(5)0xC025:信息字段是 LQR

(6)0xC223:信息字段是安全性認證 CHAP

5、順檢驗序列(Frame Check Sequence):CRC 計算出的校驗位

 

PPP 透明傳輸

1、面向字節的異步鏈路:采用插入轉義字符的字節填充法

(1)發送方的處理

(2)出現的每一個 7E(PPP 幀的定界符)字節轉變成 2 字節序列 (7D, 5E)

(3)出現的每一個 7D(轉義字符)字節轉變成 2 字節序列 (7D, 5D)

(4)出現的每一個 ASCII 碼控制字符(數值小於 0x20 的字符),則在該字符前面插入一個 7D 字節,同時將該字符的編碼加上 0x20

(5)接收方的處理:進行反變換即可恢復出原來的幀的數據部分

2、面向比特的同步鏈路,采用插入比特 0 的比特填充法

(1)發送方的處理:對幀的數據部分進行掃描(一般由硬件實現),只要發現 5 個連續的比特 1,則在后面填充 1 個比特 0

(2)接收方的處理:對幀的數據部分進行掃描(一般由硬件實現),只要發現 5 個連續的比特 1,則刪除后面的 1 個比特 0 

 

PPP 工作狀態

1、以撥號接入為例

2、開始時,靜止狀態:開始時 / 結束時,不存在物理層連接

3、檢測到調制解調器的載波信號,並建立物理層連接

4、建立狀態:鏈路控制協議 LCP 開始協商一些配置選項,若協商成功,進入鑒別狀態;若協商失敗,進入靜止狀態

(1)最大幀長

(2)鑒別協議:無需鑒別、口令鑒別協議 PAP、挑戰握手鑒別協議 CHAP 等

5、鑒別狀態:無需鑒別 / 鑒別成功,進入網絡狀態;若鑒別失敗,進入終止狀態

6、網絡狀態:進行 NCP 配置,配置完成,進入打開狀態

(1)PPP 鏈路的兩端,通過互相交換網絡層特定的 NCP 分組,進行 NCP 配置

(2)如果在 PPP 鏈路上運行的是 IP 協議,則使用 IP 控制協議 IPCP,對 PPP 鏈路的每一端配置 IP 模塊(如分配 IP 地址)

7、打開狀態:只要處於此狀態,就可以進行數據通信,出現故障 / 鏈路其中一端發出終止請求,進入終止狀態

8、終止狀態:載波停止后,進入靜止狀態

 

媒體接入控制

1、MAC:Medium Access Control

2、協調多個發送和接收站點對一個共享傳輸媒體的占用

3、靜態划分信道

(1)預先固定分配信道

(2)不靈活,對於突發性數據,傳輸信道利用率低

(3)通常在無線網絡的物理層便用,而不是在數據鏈路層中使用

(4)分類:頻分多址(FDMA)、時分多址(TDMA)、碼分多址(CDMA)

4、動態接入控制

(1)受控接入(淘汰):集中控制、分散控制

(2)隨機接入:所有站點通過競爭,隨機地在信道上發送數據,如果恰巧有兩個或更多的站點在同一時刻發送數據,則信號在共享媒體上就要產生碰撞(即發生了沖突),共享式以太網采用的就是隨機接入

5、點對點鏈路和鏈路層交換機的交換式局域網,在有線領域已完全取代了共享式局域網

6、由於無線信道的廣播天性,無線局域網仍然使用的是共享媒體技術

 

信道復用

1、復用:通過一條物理線路同時傳輸多路用戶的信號

2、當網絡中傳輸媒體的傳輸容量大於多條單一信道傳輸的總通信量時,可利用復用技術在一條物理線路上建立多條通信信道來充分利用傳輸媒體的帶寬

3、頻分復用

(1)FDM:Frequency Division Multiplexing,所有用戶同時占用不同頻帶資源並行通信

(2)傳輸線路的頻帶資源划分為多個子頻帶,形成多個子信道

(3)各子信道之間留出隔離頻帶,避免子信道之間干擾

(4)當多路信號輸入一個多路復用器時,復用器將每一路信號調制到不同頻率的載波上

(5)接收端由相應的分用器,通過濾波將各路信號分開,合成的復用信號恢復為原始多路信號

4、時分復用

(1)TDM:Time Division Multiplexing,所有用戶在不同的時間占用同樣的頻帶寬度

(2)將時間划分成一個個的間隙,將傳輸線路的帶寬資源,按間隙輪流分配給不同的用戶

(3)每對用戶只在所分配的時隙里使用線路傳輸數據

(4)時間划分成了一段段等長的時分復用幀,每一個時分復用的用戶,在每一個時分復用幀中,占用固定序號的時隙

(5)每一個用戶所占用的時隙是周期性出現的,其周期就是時分復用幀的長度

5、波分復用

(1)WDM:Wavelength Division Multiplexing,光的頻分復用

(2)相同波長的多路光載波,經光調制器,轉為不同波長

(3)經過光復用器 / 合波器,在光纖中傳輸,多個摻鉺光纖放大器,放大衰減的光信號

(4)光分用器 / 分波器,將不同波長的多路光載波,轉為相同波長

6、碼分復用

(1)CDM:Code Division Multiplexing

(2)主要用於多址接入,更常用的名詞是碼分多址(CDMA:Code Division Multiple Access)

(3)與 FDM 和 TDM 不同,CDM 的所有用戶可以在同樣的時間使用同樣的頻帶進行通信

(4)由於各用戶使用經過特殊挑選的不同碼型,因此各用戶之間不會造成干擾

7、不嚴格區分復用、多址,簡單理解如下

(1)復用:將單一媒體的頻帶資源划分成很多子信道,這些子信道之間相互獨立,互不干擾,從媒體的整體頻帶資源上看,每個子信道只占用該媒體頻帶資源的一部分

(2)多址(多點接入):處理動態分配信道給用戶,用戶僅僅暫時性地占用信道,所有的移動通信系統基本上都屬於這種情況,相反,在信道永久性地分配給月戶的應用,對於無線廣播、電視廣播站,多址是不需要的

8、碼分多址

(1)CDMA:Code Division Multiple Access

(2)在 CDMA 中,每一個比特時間再划分為 m 個短的間隔,稱為碼片(Chip),通常 m 的值是 64 或 128

(3)直接序列擴頻(DSSS):使用 CDMA 的每一個站,被指派一個唯一的 m bit 碼片序列(Chip Sequence)

(4)一個站如果要發送比特 1,則發送它自己的 m bit 碼片序列

(5)一個站如果要發送比特 0,則發送它自己的 m bit 碼片序列的二進制反碼

(6)碼片序列中,比特 0 為 -1,比特 1 為 +1

9、碼片序列的挑選原則

(1)分配給每個站的碼片序列必須各不相同,實際常采用偽隨機碼序列

(2)分配給每個站的碼片序列必須相互正交(規格化內積為 0)

(3)令向量 S 表示站 S 的碼片序列,令向量 T 表示其他任何站的碼片序列

(4)兩個不同站 S 和 T 的碼片序列正交,就是向量 S 和 T 的規格化內積為 0,即向量 S 和 T 中對應分量相乘,然后相加,再除以向量中分量的數量

(5)任何一個碼片向量,與自身的規格化內積為 1;和其他各站碼片反碼的向量的內積為 0,與自身反碼的向量的內積為 -1

(6)已知其他各站特有的碼片序列,對接收的疊加信號進行判斷

(7)疊加信號的碼片向量相加,與指定的發送站的碼片序列,進行規格化內積運算

(8)結果為 0,表示指定站發送比特 1;結果為 1,表示指定站發送比特 0;結果為 -1,表示指定站未發送

 

隨機接入

1、CSMA / CD 協議:用於總線局域網

2、CSMA / CA 協議:用於無線局域網

 

載波監聽多址接入 / 碰撞檢測

1、CSMA / CD:Carrier Sense Multiple Access / Collision Detection

2、載波監聽

(1)CS:Carrier Sense

(2)先監聽后發送:每一個站在發送幀之前,先要檢測下總線上是否有其他站點在發送幀

(3)若檢測到總線空閑 96 比特時間,則發送這個幀

(4)若檢測到總線忙,則繼續檢測,井等待總線轉為空閑 96 比特時間,然后發送這個幀

3、多址接入

(1)MA:Multiple Access

(2)多個站連接在一條總線上,競爭使用總線

4、碰撞檢測

(1)CD:Collision Detection

(2)每一個正在發送幀的站,邊發送邊檢測碰撞

(3)一旦發現總線上出現碰撞,則立即停止發送,退避一段隨機時間后再次發送

5、強化碰撞

(1)當發送幀的站點一旦檢測到碰撞,除了立即停止發送幀外

(2)繼續發送 32 比特 / 48 比特的人為干擾信號(Jamming Signal)

(3)確保有足夠多的碰撞信號,使所有站點都能檢測出碰撞

6、幀發送流程

7、幀接收流程

 

爭用期 / 碰撞窗口

1、假設以太網單程端到端傳播時延 τ

(1)t = 0 時,A 檢測到信道空閑,發送數據

(2)t = τ - δ 時,B 檢測到信道空閑,發送數據

(3)t = τ - δ / 2 時,發生碰撞

(4)t = τ 時,B 檢測到碰撞,停止發送

(5)t = 2τ - δ 時,A 檢測到碰撞,停止發送

2、爭用期 / 碰撞窗口:以太網端到端往返傳播時延 2τ

3、主機最多經過 2τ(即 δ -> 0)的時長,就可以檢測到本次發送是否遭受碰撞

4、經過爭用期后,還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞

5、每一個主機在自己發送幀之后的一小段時間內,存在着遭遇碰撞的可能性,這一小段時間是不確定的,它取決於另一個發送幀的主機到本主機的距離,但不會超過總線的端到端往返傳播時延,即一個爭用期時間

6、顯然,在以太網中發送幀的主機越多,端到端往返傳播時延越大,發生碰撞的概率就越大,因此,共享式以太網不能連接太多的主機,使用的總線也不能太長

 

最小幀長

1、假設 A 發送之后,在傳輸過程中,B 監聽到 96 比特時間之后(實際上總線時間並不是空閑的),碰撞之后,C 就會收到有差錯的幀丟棄,但對於 A 並不知道自己發送的幀產生了碰撞,所以,以太網的幀長不能太短

2、最小幀長 = 爭用期 * 數據傳輸速率

3、以太網規定最小幀長為 64 字節,即 512 比特(512 比特時間即為爭用期)

(1)如果要發送的數據非常少,那么必須加入一些填充字節,使幀長不小於64字節

4、以太網的最小幀長,確保了主機可在幀發送完成之前,就檢測到該幀的發送過程中是否遭遇了碰撞

(1)如果在爭用期(共發送64字節)沒有檢測到碰撞,那么后續發送的數據就一定不會發生碰撞

(2)如果在爭用期內檢測到碰撞,就立即中止發送,這時已經發送出去的數據一定小於 64 字節,因此,長度小於 64 字節的幀,都是由於碰撞而異常中止的無效幀

 

最大幀長

1、目的

(1)防止占用總線時間過長,阻塞其他發送請求

(2)防止接收方緩沖區產生溢出

2、類別

(1)以太網 V2 的 MAC 幀:最大長度為 1518 字節

(2)插入 VLAN 標記后的 802.1Q 幀:最大長度為1522字節

 

截斷二進制指數退避算法

1、退避時間 = 基本退避時間 * 隨機數 r

(1)基本退避時間:爭用期 2τ

(2)隨機數 r:r 從離散的整數集合 {0, 1, ……, (2k - 1)} 中隨機選擇一個數,k = min(重傳次數, 10)

2、若連續多次發生碰撞,就表明可能有較多的主機參與競爭信道

3、動態退避:使用上述退避算法,可使重傳需要推遲的平均時間隨重傳次數而增大,因而減小發生碰撞的概率,有利於整個系統的穩定

4、當重傳達16次仍不能成功時,表明同時打算發送幀的主機太多,以至於連續發生碰撞,則丟棄該幀,並向高層報告

 

信道利用率

1、發送一幀所需平均時間:2τ * n + T0 + τ

(1)2τ * n:發生 n 次碰撞,進行 n 次退避,爭用期 2τ

(2)發送時延:T0

(3)傳播時延:τ

2、理想情況

(1)各主機發送幀都不發生碰撞

(2)總線一旦空閑,就有某個主機立即發送幀

(3)發送一幀占用總線時間 T0 + τ,幀發送時間 T0,設 a = τ / T0

(4)極限信道利用率 Smax = T0 / (T0 + τ) = 1 / (1 + a)

(5)a 值盡量小,提高信道利用率,以太網端到端的距離受限制,以太網幀的長度盡量長

 

載波監聽多址接入 / 碰撞避免

1、CSMA / CA:Carrier Sense Multiple Access / Collision Avoidance

2、在無線局域網中,仍然可以使用 CSMA,即在發送幀之前先對傳輸媒體進行載波監聽,若發現有其他站在發送幀,就推遲發送以免發生碰撞

3、在無線局域網中,不能使用 CD

(1)由於無線信道的傳輸條件特殊,其信號強度的動態范圍非常大,無線網卡上接收到的信號強度,往往會遠遠小於發送信號的強度,如果要在無線網卡上實現碰撞檢測 CD,對硬件的要求非常高

(2)即使能夠在硬件上實現無線局域網的碰撞檢測功能,但由於存在隱蔽站問題,進行碰撞檢測的意義也不大

4、隱蔽站問題:未能檢測出信道上其他站點信號

(1)A 和 C 都檢測不到對方的無線信號

(2)A 和 C 都給 B 發送幀時,產生碰撞

(3)A 和 C 無法檢測到碰撞

5、802.11 無線局域網使用 CSMA / CA 協議,在 CSMA 的基礎上增加了一個 碰撞避免 CA 功能

6、由於不可能避免所有的碰撞,並且無線信道誤碼率較高,802.11 標准還使用了數據鏈路層確認機制(停止 - 等待協議)來保證數據被正確接收

7、802.11 的 MAC 層標准定義了兩種不同的媒體接入控制方式

(1)分布式協調功能(DCF:Distributed Coordination Function):沒有中心控制站點,每個站點使用 CSMA / CA 協議通過爭用信道來獲取發送權,這是 802.11 定義的默認方式

(2)點協調功能(PCF:Point Coordination Function):使用集中控制的接入算法(一般在接入點 AP 實現集中控制),是 802.11 定義的可選方式,在實際中較少使用

 

幀間間隔

1、lFS:InterFrame Space,802.11 標准規定,所有站點必須在持續檢測到信道空閑一段指定時間后才能發送幀

2、幀間間隔的長短,取決於該站點要發送的幀的類型

(1)高優先級幀:需要等待的時間較短,因此可優先獲得發送權

(2)低優先級幀:需要等待的時間較長,若某個站的低優先級幀還沒來得及發送,而其他站的高優先級幀已發送到信道上,則信道變為忙態,因而低優先級幀就只能再推退發送了,這樣就減少了發生碰撞的機會

3、常用的兩種幀間間隔

(1)短幀間間隔:SIFS(28 μs),是最短的幀間間隔,用來分隔開屬於一次對話的各幀,一個站點應當能夠在這段時間內,從發送方式切換到接收方式,使用 SIFS 的幀類型有 ACK 幀、CTS 幀、由過長的 MAC 幀分片后的數據幀、所有回答 AP 探詢的幀、在 PCF 方式中接入點 AP 發送出的任何幀

(2)DCF 幀間間隔:DIFS(128us),比短幀間間隔 SIFS 要長得多,在 DCF 方式中,用來發送數據幀和管理幀

4、作用

(1)源站檢測到信道空閑,且有幀要發送,則在等待幀間間隔 DIFS 后發送數據幀:考慮到有其他站需要發送高優先級的幀,

(2)目的站正確接收到數據幀,等待幀間間隔 SIFS,才發送 ACK 幀:用來分隔開屬於一次對話的各幀,一個站點應當能夠在這段時間內,從發送方式切換到接收方式

 

退避算法

1、當站點檢測到信道是空閑的,且經過 DIFS 時間,再退避一段時間,才能發送幀

2、不使用的情況:當站點檢測到信道是空閑的,並且所發送的數據幀,不是成功發送完上一個數據幀之后,立即連續發送的數據幀

3、必須使用的情況

(1)在發送數據幀之前,檢測到信道處於忙狀態時

(2)在每一次重傳一個數據幀時

(3)在每一次成功發送后,要連續發送下一個幀時,避免一個站點長時間占用信道

4、在執行退避算法時,站點為退避計時器設置一個隨機的退避時間

(1)當退避計時器的時間減小到零時,就開始發送數據

(2)當退避計時器的時間還未減小到零時,而信道又轉變為忙狀態,這時就凍結退避計時器的數值,重新等待信道變為空閑,再經過時間 DIFS 后,繼續啟動退避計時器

5、在進行第 i 次退避時,退避時間在時隙編號 {0, 1,……, 22+i - 1} 中隨機選擇一個,然后乘以基本退避時間(即一個時隙的長度),就可以得到隨機的退避時間,使不同站點選擇相同退避時間的概率減少,當時隙編號達到 255 時(對應第6次退避)就不再增加

 

信道預約

1、802.11 標准允許要發送數據的站點對信道進行預約

2、目的:盡可能減少碰撞的概率和降低碰撞的影響

3、過程

(1)源站在發送數據幀之前,先發送一個短的控制幀,稱為請求發送(RTS:Request To Send),它包括源地址、目的地址、此次通信(包括相應的確認幀)所需的持續時間

(2)若目的站正確收到源站發來的 RTS 幀,且媒體空閑,就發送一個響應控制幀,稱為允許發送(CTS:Clear To Send),它包括此次通信所需的持續時間(從 RTS 幀中將此持續時間復制到 CTS 幀中)

(3)源站收到 CTS 幀后,再等待一段時間 SIFS 后,就可發送其數據幀

(4)若目的站正確收到了源站發來的數據幀,在等待時間 SIFS 后,就向源站發送確認幀 ACK

4、除源站和目的站以外的其他各站,在收到 CTS 幀(或數據幀)后,就推遲接入到無線局域網中,保證了源站和目的站之間的通信不會受到其他站的干擾

5、如果 RTS 幀發生碰撞,源站就收不到 CTS 幀,需要執行退避算法重傳 RTS 幀

6、RTS 幀、CTS 幀很短,發送碰撞的概率、碰撞產生的開銷、本身的開銷都很小

7、802.11 標准規定了 3 種情況,選擇使用 RTS 幀、CTS 幀

(1)使用 RTS 幀、CTS 幀

(2)不使用 RTS 幀、CTS 幀

(3)只有當數據幀的長度超過某一數值時,才使用 RTS 幀、CTS 幀

 

虛擬載波監聽

1、除 RTS 幀、CTS 幀會攜帶通信需要持續的時間,數據幀也能攜帶通信需要持續的時間

2、減少隱蔽站帶來的碰撞問題:站點只要監聽到 RTS 幀、CTS 幀、數據幀,其中任何一個,就能知道信道被占用的持續時間,而不需要真正監聽到信道上的信號

 

MAC 地址、IP 地址、ARP 協議

1、數據鏈路層

(1)MAC 地址:以太網的 MAC 子層所使用的地址

2、網絡層

(1)IP 地址:TCP / IP 體系結構的網絡層所使用的地址

(2)ARP 協議:TCP / IP 體系結構的網絡層,作用:已知設備所分配到的 IP 地址,使用 ARP 協議可以通過該 IP 地址獲取到設備的 MAC 地址

 

MAC 地址

1、MAC:Media Access Control,媒體接入控制

2、當多個主機連接在同一個廣播信道上,要想實現兩個主機之間的通信,則每個主機都必須有一個唯一的標識,即一個數據鏈路層地址

(1)MAC 地址一般被固化在網卡(網絡適配器)的電可擦可編程只讀存儲器EEPROM中,因此 MAC 地址也被稱為硬件地址

(2)MAC 地址也被稱為物理地址,不意味着 MAC 地址屬於網絡體系結構中的物理層

3、在每個主機發送的幀中,必須攜帶標識發送主機和接收主機的地址

4、一般情況下,用戶主機包含兩個網絡適配器:有線局域網適配器(有線網卡)、無線局域網適配器(無線網卡),每個網絡適配器都有一個全球唯一的 MAC 地址,而交換機和路由器往往擁有更多的網絡接口,所以會擁有更多的MAC地址,綜上所述,嚴格來說,MAC 地址是對網絡上各接口的唯一標識,而不是對網絡上各設備的唯一標識

5、IEEE 802局域網的 MAC 地址格式:擴展的唯一標識符 EUI

(1)從左至右:第一字節到第六字節,每個字節 b7 位到 b0 位

(2)組織唯一標識符 OUI:前三個字節,生產網絡設備商向 IEEE 的注冊管理機構,申請一個 / 多個 OUI

(3)網絡接口標識符:后三個字節,由獲得 OUI 的廠商自行隨意分配

(4)每 4 比特寫成一個十六進制字符,共 12 個字符

(5)標准表示法:每兩個字符為一組,共六組,組之間用 - 連接,如:Windows

(6)其他表示法:每兩個字符為一組,共六組,組之間用 : 連接,如:Linux、macOS、Android;每四個字符為一組,共三組,組之間用 . 連接,如:Packet Trace

(7)第一字節:b0 位:取 0 時,表示單播地址;取 1 時,表示多播地址(組播地址);b1 位:取 0 時,表示全球管理;取 1 時,表示本地管理

第一字節 b1 位 第一字節 b0 位 MAC 地址類型 地址數量占比 總地址數量
0 0 全球管理 單播地址:廠商生產網絡設備(網卡、交換機、路由器)時固化 1 / 4 248
1 全球管理 多播地址:標准網絡設備所支持的多播地址,用於特定功能 1 / 4
1 0 本地管理 單播地址:由網絡管理員分配,會覆蓋網絡接口的全球管理單播地址 1 / 4
1

本地管理 多播地址:用戶對主機進行軟件配置,以表明其屬於哪些多播組

若剩余 46 位全為 1,即為廣播地址 FF-FF-FF-FF-FF-FF

1 / 4

(8)發送順序:字節:第一字節 -> 第六字節;字節內比特:b0 位 -> b7 位

 

IP 地址

1、因特網(Internet)上的主機和路由器所使用的地址,用於標識兩部分信息

(1)網絡編號:標識因特網上數以百萬計的網絡

(2)主機編號:標識同一網絡上不同主機,或路由器各接口

2、MAC 地址不具備區分不同網絡的功能

(1)如果只是一個單獨的網絡,不接入因特網,可以只便用 MAC 地址

(2)如果主機所在的網絡要接入因特網,則 IP 地址和 MAC 地址都需要使用

3、數據包轉發過程中 IP 地址與 MAC 地址的變化情況

(1)源 IP 地址和目的 IP 地址保持不變

(2)源 MAC 地址和目的 MAC 地址逐個鏈路(或逐個網絡)改變

 

ARP 協議

1、每台主機都有一個 ARP 高速緩存表,記錄 IP 地址和 MAC 地址對應關系

(1)動態類型:主機自動獲取,生命周期默認為兩分鍾,生命周期結束時,自動刪除該記錄

(2)靜態類型:用戶或網絡維護人員手工配置記錄,不同 OS ,生命周期不同

2、工作原理

(1)源主機在自己的 ARP 高速緩存表中,查找目的主機的 IP 地址所對應的 MAC 地址,若找到了,則可以封裝 MAC 幀進行發送;若找不到,則發送 ARP 請求(封裝在廣播 MAC 幀中)

(2)目的主機收到 ARP 請求后,將源主機的 IP 地址與 MAC 地址記錄到自己的 ARP 高速緩存表中,然后給源主機發送 ARP 響應(封裝在單播 MAC 幀中),ARP 響應中包含有目的主機的 IP 地址和 MAC 地址

(3)源主機收到 ARP 響應后,將目的主機的 IP 地址與 MAC 地址記錄到自己的 ARP 高速緩存表中,然后就可以封裝之前想發送的 MAC 幀並發送給目的主機

3、作用范圍:逐段鏈路或逐個網絡使用

4、除 ARP 請求和響應外,ARP 還有其他類型的報文,例如,用於檢查 IP 地址沖突的“無故 ARP、免費 ARP”

5、ARP 沒有安全驗證機制,存在 ARP 欺騙(攻擊)問題

 

集線器、交換機

1、集線器

(1)使用集線器的以太網在邏輯上仍是一個總線網(共享總線式以太網),各站共享總線資源,屬於同一個碰撞域和廣播域,使用的還是 CSMA / CD 協議

(2)集線器只工作在物理層,它的每個接口僅簡單地轉發比特,不進行碰撞檢測,由各站的網卡檢測

(3)集線器一般都有少量的容錯能力和網絡管理功能,例如,若網絡中某個網卡出了故障,不停地發送幀,此時,集線器可以檢測到這個問題,在內部斷開與出故障網卡的連線,使整個以太網仍然能正常工作

(4)對接收到的信號進行放大、轉發

2、以太網交換機

(1)通常都有多個接口,每個接口都可以直接與一台主機或另一個以太網交換機相連,一般以全雙工方式工作

(2)具有並行性,能同時連通多對接口,使多對主機能同時通信,每個接口是一個獨立的碰撞域,無碰撞(不使用 CSMA / CD 協議)

(3)一般都具有多種速率的接口

(4)在數據鏈路層(包括物理層)工作,它收到幀后,在幀交換表中查找幀的目的 MAC 地址所對應的接口號,然后通過該接口轉發幀

(5)是一種即插即用設備,剛上電啟動時其內部的幀交換表是空的,隨看網絡中各主機間的通信,以太網交換機通過自學習算法自動逐漸建立起幀交換表

(6)幀的兩種轉發方式:存儲轉發;直通交換:采用基於硬件的交叉矩陣(交換時延非常小,但不檢查幀是否有差錯)

(7)交換式以太網:交換機可以根據MAC地址過濾幀,即隔離碰撞域,交換機隔離碰撞域但不隔離廣播域(VLAN 除外)

 

以太網交換機自學習和轉發幀的流程

1、假設各主機知道網絡中其他各主機的 MAC 地址,即無需進行 ARP

2、自學習:收到幀后,登記到交換機的幀交換表,內容為幀的源 MAC 地址及進入交換機的接口號

3、根據幀的目的 MAC 地址和交換機的幀交換表對幀進行轉發,有以下三種情況

(1)明確轉發:交換機知道應當從哪個(或哪些)接口轉發該幀頁(單播,多播,廣播),即交換機的幀交換表,存在目的主機的 MAC 地址

(2)盲目轉發 / 泛洪:交換機不知道應當從哪個端口轉發幀,只能通過,除進入交換機的接口外,其他所有接口轉發

(3)明確丟棄:交換機知道不應該轉發該幀,將其丟棄,即兩台主機在同一碰撞域(同一總線、同一交換機接口)

4、幀交換表中的每條記錄都有自己的有效時間,到期刪除,原因如下

(1)交換機的接口改接了另一台主機

(2)主機更換了網卡

 

以太網交換機生成樹協議 STP

1、只添加冗余鏈路:提高以太網的可靠性,但有負面效應:形成網絡環路

(1)廣播風暴:大量消耗網絡資源,便得網絡無法正常轉發其他數據幀

(2)主機收到重復的廣播幀:大量消耗主機資源

(3)交換機的幀交換表震盪(漂移)

2、使用生成樹協議 STP(Spanning Tree Protocol),增加冗余鏈路,提高網絡可靠性,同時避免網絡環路

(1)不論交換機之間采用怎樣的物理連接,交換機都能夠自動計算並構建一個邏輯上沒有環路的網絡,其邏輯拓撲結構必須是樹型的(無邏輯環路)

(2)最終生成的樹型邏輯拓撲要確保連通整個網絡

(3)當首次連接交換機或網絡物理拓撲發生變化時(可能是人為改變或故障),交換機都將進行生成樹的重新計算

 

網絡中頻繁出現廣播信息

1、TCP / IP 協議棧中的很多協議都會使用廣播

(1)地址解析協議 ARP(已知 IP 地址,找出其相應的 MAC 地址)

(2)路由信息協議 RIP(一種小型的內部路由協議)

(3)動態主機配置協議 DHCP(用於自動配置 IP 地址)

2、NetBEUI:Windows 下使用的廣播型協議

3、IPX / SPX:Novell 網絡的協議棧

4、Apple Talk:Apple 公司的網絡協議棧

5、廣播域弊端

(1)廣播風暴

(2)難以管理和維護

(3)潛在安全問題

6、分割廣播域

(1)使用路由器,但成本較高

(2)虛擬局域網

 

虛擬局域網

1、VLAN:Virtual Local Area Network

2、將局域網內的設備划分成與物理位置無關的邏輯組,這些邏輯組具有某些共同的需求

3、功能

(1)能夠處理帶有 VLAN 標記的幀

(2)交換機各端口可以支持不同端口類型

 

 

 

IEEE 802.1Q幀 / Dot One Q幀

1、對以太網的 MAC 幀格式進行了擴展,在源 MAC 地址、數據載荷之間,插入 4 字節的 VLAN 標記

2、VLAN 標識符 VID:VLAN 標記的最后 12 比特,它唯一地標志了以太網幀屬於哪一個 VLAN

(1)VID 取值范圍:0 ~ 4095(0 ~ 212 - 1)

(2)0 和 4095 都不用來表示 VLAN,因此用於表示 VLAN 的 VID 有效取值范圍:1 ~ 4094

3、802.1Q幀是由交換機來處理,而不是用戶主機來處理

(1)打標簽:當交換機收到普通的以太網幀時,會將其插入 4 字節的 VLAN 標記,轉變為 802.1Q幀

(2)去標簽:當交換機轉發 802.1Q幀 時,可能會刪除其 4 字節 VLAN 標記,轉變為普通以太網幀

 

交換機端口

1、交換機各端口的缺省 VLAN ID

(1)思科交換機上稱為 Native VLAN,即本征 VLAN

(2)在華為交換機上稱為 Port VLAN ID,即端口 VLAN ID,簡記為 PVID

(3)交換機的每個端口有且僅有一個 PVID

2、端口類型

(1)Access

(2)Trunk

(3)Hybrid

3、Access 端口

(1)一般用於交換機與用戶計算機互連

(2)只能屬於一個 VLAN

(3)PVID 值與端口所屬 VLAN ID 相同(默認為1)

(4)接收處理方法:一般只接受“未打標簽”的普通以大網 MAC 幀,根據接收幀的端口的 PVID 給幀“打標簽”,即插入 4 字節 VLAN 標記學段,字段中的 VID 取值與接收端口的 PVID 取值相等

(5)發送處理方法:若幀中的 VID 與發送端口的 PVID 相等,則“去標簽”並轉發該幀;否則不轉發

4、Trunk 端口

(1)一般用於交換機之間,或交換機與路由器之間的互連

(2)可以屬於多個VLAN

(3)用戶可以設置 Trunk 端口的 PVID 值,默認情況下,Trunk 端口的 PVID 值為1

(4)發送處理方法:對 VID 等於發送端口的 PVID 的幀,則“去標簽”再轉發;對 VID 不等於發送端口的 PVID 的幀,直接轉發

(5)接收處理方法:接收“未打標簽”的幀,根據接收幀的端口的 PVID 給幀“打標簽”,即插入 4 字節 VLAN 標記字段,字段中的 VID 取值與接收端口的 PVID 取值相等;直接接收已打標簽的幀

(6)互連的 Trunk 端口的 PVID 值必須相等,否則會造成轉發錯誤

5、Hybrid 端口

(1)既可用於交換機之間,或交換機與路由器之間的互連,也可用於交換機與用戶計算機之間的互連

(2)可以屬於多個 VLAN

(3)用戶可以設置 Hybrid 端口的 PVID 值,默認情況下 Hybrid 端口的 PVID 值為 1

(3)發送處理方法:查看幀的 VID 是否在發送端口的“去標簽”列表中,若存在,則“去標簽”后再轉發;若不存在,則直接轉發

(4)接收處理方法:接收“未打標簽”的幀,根據接收幀的端口的 PVID 給幀“打標簽”,即插入 4 字節 VLAN 標記字段,字段中的 VID 取值與接收端口的 PVID 取值相等;直接接收已打標簽的幀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM