計算機網絡:數據鏈路層
3.1、基本概念
數據鏈路層使用的信道類型
-
點對點信道
- 這種信道使用一對一的點對點通信方式。
-
廣播信道
- 使用一對多的廣播通信方式。
- 過程比較復雜,廣播信道上連接的主機很多,因此必須使用專用的共享信道協議來協調這些主機的數據發送。
鏈路與數據鏈路
-
鏈路 (link) 是一條無源的點到點的物理線路段,中間沒有任何其他的交換結點。
- 一條鏈路只是一條通路的一個組成部分。
-
數據鏈路 (data link) 除了物理線路外,還必須有通信協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。
- 現在最常用的方法是使用適配器(即網卡)來實現這些協議的硬件和軟件。
- 一般的適配器都包括了數據鏈路層和物理層這兩層的功能。
-
也有人采用另外的術語。這就是把鏈路分為物理鏈路和邏輯鏈路。
-
物理鏈路就是上面所說的鏈路。
-
邏輯鏈路就是上面的數據鏈路,是物理鏈路加上必要的通信協議。
-
早期的數據通信協議曾叫做通信規程 (procedure)。因此在數據鏈路層,規程和協議是同義語。

數據鏈路層像個數字管道
- 常常在兩個對等的數據鏈路層之間畫出一個數字管道,而在這條數字管道上傳輸的數據單位是幀。
- 數據鏈路層不必考慮物理層如何實現比特傳輸的細節。甚至還可以更簡單地設想好像是沿着兩個數據鏈路層之間的水平方向把幀直接發送到對方。
3.2、三個基本問題
數據鏈路層協議有許多種,但有三個基本問題則是共同的。這三個基本問題是:
- 封裝成幀
- 透明傳輸
- 差錯控制
1、封裝成幀
- 封裝成幀 (framing) 就是在一段數據的前后分別添加首部和尾部,然后就構成了一個幀。
- 首部和尾部的一個重要作用就是進行幀定界。
-
MTU:最大傳輸單元,以太網協議規定最大幀長度是 1500Byte。
-
如果 IP 數據報的長度大於 MTU,這時候就需要對 IP 數據報進行分片處理后再經由鏈路層轉發。
OSI各層的信息單元對應如下:
段——————–>傳輸層
數據包、數據報——>網絡層
數據幀—————>數據鏈路層
MTU查詢
# windows 系統
netsh interface ip show interface
# linux系統
nestat -i
用控制字符進行幀定界的方法舉例
- 當數據是由可打印的 ASCII 碼(95個)組成的文本文件時,幀定界可以使用特殊的幀定界符。
- 控制字符 SOH (Start Of Header) 放在一幀的最前面,表示幀的首部開始。另一個控制字符 EOT (End Of Transmission) 表示幀的結束。
2、透明傳輸
- 如果數據中的某個字節的二進制代碼恰好和 SOH 或 EOT 一樣,數據鏈路層就會錯誤地“找到幀的邊界”。
解決透明傳輸問題
- 解決方法:字節填充 (byte stuffing) 或字符填充 (character stuffing)。
- 發送端的數據鏈路層在數據中出現控制字符“SOH”或“EOT”的前面插入一個轉義字符“ESC”(其十六進制編碼是1B)。
- 接收端的數據鏈路層在將數據送往網絡層之前刪除插入的轉義字符(ESC)
- 如果轉義字符也出現在數據當中,那么應在轉義字符前面插入一個轉義字符 ESC。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個。
透明
- 指某一個實際存在的事物看起來卻好像不存在一樣。
“在數據鏈路層透明傳送數據”表示無論發送什么樣的比特組合的數據,這些數據都能夠按照原樣沒有差錯地通過這個數據鏈路層。
3、差錯控制
- 在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率 BER (Bit Error Rate)。
- 誤碼率與信噪比有很大的關系。
- 為了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須采用各種差錯檢測措施。
- 在數據鏈路層傳送的幀中,廣泛使用了循環冗余檢驗 CRC 的檢錯技術。
循環冗余校驗 CRC 的原理(重要)
冗余碼的計算
- 用二進制的模 2 運算進行 2n 乘 M 的運算,這相當於在 M 后面添加 n 個 0。
- 得到的 (k + n) 位的數除以事先選定好的長度為 (n + 1) 位的除數 P,得出商是 Q 而余數是 R,余數 R 比除數 P 少 1 位,即 R 是 n 位。
- 將余數 R 作為冗余碼拼接在數據 M 后面,一起發送出去。
接收端對收到的每一幀進行 CRC 檢驗
(1) 若得出的余數 R = 0,則判定這個幀沒有差錯,就接受 (accept)。
(2) 若余數 R ≠ 0,則判定這個幀有差錯,就丟棄。
但這種檢測方法並不能確定究竟是哪一個或哪幾個比特出現了差錯。
只要經過嚴格的挑選,並使用位數足夠多的除數 P,那么出現檢測不到的差錯的概率就很小很小。
當然也不是絕對的,如果 CRC 在傳輸過程中丟失了一些比特,但又恰好和協議好的相除,最終結果也可能等於 0,隨着除數位數的增多,出錯的概率會越來越小。
- 計算兩個數相減時相同為 0,不同為 1
幀檢驗序列 FCS
- 在數據后面添加上的冗余碼稱為幀檢驗序列 FCS (Frame Check Sequence)。
- 循環冗余檢驗 CRC 和幀檢驗序列 FCS 並不等同。
- CRC 是一種常用的檢錯方法,而 FCS 是添加在數據后面的冗余碼。
- FCS 可以用 CRC 這種方法得出,但 CRC 並非用來獲得 FCS 的唯一方法。
注意:
- 僅用循環冗余檢驗 CRC 差錯檢測技術只能做到無差錯接受 (accept)。
- “無差錯接受”是指:“凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近於 1 的概率認為這些幀在傳輸過程中沒有產生差錯”。
- 也就是說:“凡是接收端數據鏈路層接受的幀都沒有傳輸差錯”(有差錯的幀就丟棄而不接受)。
- 單純使用 CRC 差錯檢測技術不能實現“無差錯傳輸”或“可靠傳輸”。
應當明確,“無比特差錯”與“無傳輸差錯”是不同的概念。
- 在數據鏈路層使用 CRC 檢驗,能夠實現無比特差錯的傳輸,但這還不是可靠傳輸。
- 要做到“無差錯傳輸”(即發送什么就收到什么)就必須再加上確認和重傳機制。
- 考慮幀重復、幀丟失、幀亂序……的情況
- 本章介紹的數據鏈路層協議都是不可靠傳輸的協議。
3.3、使用點對點信道的數據鏈路層
3.3.1、點對點協議 PPP
PPP 協議的使用場合:用戶撥號電話線上網
對於點對點的鏈路,目前使用得最廣泛的數據鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)。
PPP 協議在 1994 年就已成為互聯網的正式標准。
用戶使用撥號電話線接入因特網時,一般是使用 PPP 協議。
PPP 協議的特點
1)PPP 協議應滿足的需求(了解)
-
簡單 —— 這是首要的要求。
-
封裝成幀 —— 必須規定特殊的字符作為幀定界符。
-
透明性 —— 必須保證數據傳輸的透明性。
-
多種網絡層協議 —— 能夠在同一條物理鏈路上同時支持多種網絡層協議。
-
多種類型鏈路 —— 能夠在多種類型的鏈路上運行。
-
差錯檢測 —— 能夠對接收端收到的幀進行檢測,並立即丟棄有差錯的幀。
-
檢測連接狀態 —— 能夠及時自動檢測出鏈路是否處於正常工作狀態。
-
最大傳送單元 —— 必須對每一種類型的點對點鏈路設置最大傳送單元 MTU 的標准默認值,促進各種實現之間的互操作性。
-
網絡層地址協商 —— 必須提供一種機制使通信的兩個網絡層實體能夠通過協商知道或能夠配置彼此的網絡層地址。
-
數據壓縮協商 —— 必須提供一種方法來協商使用數據壓縮算法。
2)PPP 協議不需要的功能(了解)
- 糾錯
- 流量控制
- 序號
- 多點線路
- 半雙工或單工鏈路
數據鏈路層協議可以用於 異步串行 或 同步串行 介質。
3)PPP 協議的組成
PPP 協議有三個組成部分:
- 一個將 IP 數據報封裝到串行鏈路的方法。
- 鏈路控制協議 LCP (Link Control Protocol):建立並維護數據鏈路連接。
- 網絡控制協議 NCP (Network Control Protocol):允許在點到點連接上使用多種網絡層協議。
PPP 協議的幀格式
- PPP 幀的首部和尾部分別為 4 個字段和 2 個字段。
- 標志字段 F = 0x7E (符號“0x”表示后面的字符是用十六進制表示。十六進制的 7E 的二進制表示是 01111110)。
- 地址字段 A 只置為 0xFF。地址字段實際上並不起作用。
- 控制字段 C 通常置為 0x03。
- PPP 是面向字節的,所有的 PPP 幀的長度都是整數字節。
透明傳輸問題
- 當 PPP 用在異步傳輸時,就使用一種特殊的字節填充法。
- 當 PPP 用在同步傳輸鏈路時,協議規定采用硬件來完成零比特填充(和 HDLC 的做法一樣)。
1、字節填充
Q:信息字段中出現了標志字段的值,可能會被誤認為是”標志字段“,該怎么辦?
A:
- 將信息字段中出現的每一個 0x7E 字節轉變成為 2 字節序列 (0x7D, 0x5E)。
- 若信息字段中出現一個 0x7D 的字節, 則將其轉變成為 2 字節序列 (0x7D, 0x5D)。
- 若信息字段中出現 ASCII 碼的控制字符(即數值小於 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
2、零比特填充
- PPP 協議用在 SONET/SDH 鏈路時,使用同步傳輸(一連串的比特連續傳送)。這時 PPP 協議采用零比特填充方法來實現透明傳輸。
- 在發送端,只要發現有 5 個連續 1,則立即填入一個 0。
- 接收端對幀中的比特流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 后的一個 0 刪除。
不提供使用序號和確認的可靠傳輸
PPP 協議之所以不使用序號和確認機制是出於以下的考慮:
- 在數據鏈路層出現差錯的概率不大時,使用比較簡單的 PPP 協議較為合理。
- 在因特網環境下,PPP 的信息字段放入的數據是 IP 數據報。數據鏈路層的可靠傳輸並不能夠保證網絡層的傳輸也是可靠的。
- 幀檢驗序列 FCS 字段可保證無差錯接受。
PPP 協議的工作狀態
- 當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,並建立一條物理連接。
- PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
- 這些分組及其響應選擇一些 PPP 參數,並進行網絡層配置,NCP 給新接入的 PC 機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。
- 通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接着,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。
- 可見,PPP 協議已不是純粹的數據鏈路層的協議,它還包含了物理層和網絡層的內容。
3.4、使用廣播信道的數據鏈路層
1、局域網的數據鏈路層
- 局域網最主要的特點是:
- 網絡為一個單位所擁有;
- 地理范圍和站點數目均有限。
- 局域網具有如下主要優點:
- 具有廣播功能,從一個站點可很方便地訪問全網。局域網上的主機可共享連接在局域網上的各種硬件和軟件資源。
- 便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。
- 提高了系統的可靠性、可用性和殘存性。
局域網拓撲結構:
局域網傳輸媒體:
共享信道帶來的問題:
- 使用一對多的廣播通信方式。
- 問題:若多個設備在共享的廣播信道上同時發送數據,則會造成彼此干擾,導致發送失敗。
媒體共享技術:
- 靜態划分信道
- 頻分復用
- 時分復用
- 波分復用
- 碼分復用
- 動態媒體接入控制(多點接入)
- 隨機接入(主要被以太網采用)
- 受控接入 ,如多點線路探詢 (polling),或輪詢(目前已不被采用)
3.5、以太網
3.5.1、以太網概述
-
以太網——ethernet
-
以太網是一種實現計算機局域網的技術。
-
以太網是目前應用最普遍的局域網技術。
1、以太網的兩個標准
- DIX Ethernet V2 是世界上第一個局域網產品(以太網)的規約。
- IEEE 802.3 是第一個 IEEE 的以太網標准。
- DIX Ethernet V2 標准與 IEEE 的 802.3 標准只有很小的差別,因此可以將 802.3 局域網簡稱為“以太網”。
- 嚴格說來,“以太網”應當是指符合 DIX Ethernet V2 標准的局域網 。
數據鏈路層的兩個子層
- 為了使數據鏈路層能更好地適應多種局域網標准,IEEE 802 委員會就將局域網的數據鏈路層拆成兩個子層:
- 邏輯鏈路控制 LLC (Logical Link Control)子層;
媒體接入控制 MAC (Medium Access Control)子層。
- 與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關。
- 不管采用何種協議的局域網,對 LLC 子層來說都是透明的。
一般不考慮 LLC 子層
由於 TCP/IP 體系經常使用的局域網是 DIX Ethernet V2 而不是 802.3 標准中的幾種局域網,因此現在 802 委員會制定的邏輯鏈路控制子層 LLC(即 802.2 標准)的作用已經不大了。
很多廠商生產的適配器就僅裝有 MAC 協議
而沒有 LLC 協議!
2、適配器的作用
-
網絡接口板又稱為通信適配器 (adapter) 或網絡接口卡 NIC (Network Interface Card),或“網卡”。
-
適配器的重要功能:
- 進行串行/並行轉換。
- 對數據進行緩存。
- 在計算機的操作系統安裝設備驅動程序。
- 實現以太網協議。
3.5.2、CSMA/CD 協議
最初的以太網是將許多計算機都連接到一根總線上。易於實現廣播通信。當初認為這樣的連接方法既簡單又可靠,因為總線上沒有有源器件。
為了實現一對一通信,將接收站的硬件地址寫入幀首部中的目的地址字段中。僅當數據幀中的目的地址與適配器的硬件地址一致時,才能接收這個數據幀。
總線也有缺點。若多台計算機或多個站點同時發送時,會產生發送碰撞或沖突,導致發送失敗。
為了通信的簡便,以太網采取了兩種重要的措施:
1、采用較為靈活的無連接的工作方式
- 寫數據幀不進行編號,也不要求對方發回確認。
- 對發送的數據幀不進行編號,也不要求對方發回確認。
- 這樣做的理由是局域網信道的質量很好,因信道質量產生差錯的概率是很小的。
以太網提供的服務
- 以太網提供的服務是不可靠的交付,即盡最大努力的交付。
- 當目的站收到有差錯的數據幀時就丟棄此幀,其他什么也不做。差錯的糾正由高層來決定。
- 如果高層發現丟失了一些數據而進行重傳,但以太網並不知道這是一個重傳的幀,而是當作一個新的數據幀來發送。
2、以太網發送的數據都使用曼徹斯特 (Manchester) 編碼
曼徹斯特編碼缺點是:它所占的頻帶寬度比原始的基帶信號增加了一倍。
以太網提供的服務
- CSMA/CD 含義:載波監聽多點接入 / 碰撞檢測 (Carrier Sense Multiple Access with Collision Detection) 。
- “多點接入”:表示許多計算機以多點接入的方式連接在一根總線上。
- “載波監聽”:是指每一個站在發送數據之前先要檢測一下總線上是否有其他計算機在發送數據,如果有,則暫時不要發送數據,以免發生碰撞。
- 總線上並沒有什么“載波”。因此, “載波監聽”就是用電子技術檢測總線上有沒有其他計算機發送的數據信號。
碰撞檢測
-
“碰撞檢測”就是計算機邊發送數據邊檢測信道上的信號電壓大小。
-
當幾個站同時在總線上發送數據時,總線上的信號電壓擺動值將會增大(互相疊加)。
-
當一個站檢測到的信號電壓擺動值超過一定的門限值時,就認為總線上至少有兩個站同時在發送數據,表明產生了碰撞。
-
所謂“碰撞”就是發生了沖突。因此“碰撞檢測”也稱為“沖突檢測”。
-
在發生碰撞時,總線上傳輸的信號產生了嚴重的失真,無法從中恢復出有用的信息來。
-
每一個正在發送數據的站,一旦發現總線上出現了碰撞,就要立即停止發送,免得繼續浪費網絡資源,然后等待一段隨機時間后再次發送。
為什么要進行碰撞檢測? 因為信號傳播時延對載波監聽產生了影響
A 需要單程傳播時延的 2 倍的時間,才能檢測到與 B 的發送產生了沖突
爭用期
- 最先發送數據幀的站,在發送數據幀后至多經過時間 2τ(兩倍的端到端往返時延)就可知道發送的數據幀是否遭受了碰撞。
- 以太網的端到端往返時延 2τ 稱為爭用期,或碰撞窗口。
- 經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞。
發生碰撞的站在停止發送數據后,要推遲(退避)一個隨機時間才能再發送數據。
二進制指數類型退避算法 (truncated binary exponential type)
- 基本退避時間取為爭用期 2τ 。
- 從整數集合 \([0, 1, … , (2k - 1)]\) 中隨機地取出一個數,記為 r。重傳所需的時延就是 r 倍的基本退避時間。
- 參數 k 按下面的公式計算:
\(k = Min[重傳次數, 10]\) - 當 k ≤10 時,參數 k 等於重傳次數。
- 當重傳達 16 次仍不能成功時即丟棄該幀,並向高層報告。
例如:
- 第 1 次沖突重傳時:
- k = 1,r 為 {0,1} 集合中的任何一個數。
- 第 2 次沖突重傳時:
- k = 2,r 為 {0,1,2,3} 集合中的任何一個數。
- 第 3 次沖突重傳時:
- k = 3,r 為 {0,1,2,3,4,5,6,7} 集合中的任何一個數。
10 Mbit/s 以太網爭用期的長度
- 10 Mbit/s 以太網取 51.2 us 為爭用期的長度。
- 對於 10 Mbit/s 以太網,在爭用期內可發送 512 bit,即 64 字節。
這意味着:以太網在發送數據時,若前 64 字節沒有發生沖突,則后續的數據就不會發生沖突。
最短有效幀長
- 如果發生沖突,就一定是在發送的前 64 字節之內。
- 由於一檢測到沖突就立即中止發送,這時已經發送出去的數據一定小於 64 字節。
- 以太網規定了最短有效幀長為 64 字節,凡長度小於 64 字節的幀都是由於沖突而異常中止的無效幀。
CSMA/CD 協議的重要特性
- 使用 CSMA/CD 協議的以太網不能進行全雙工通信而只能進行雙向交替通信(半雙工通信)。
- 每個站在發送數據之后的一小段時間內,存在着遭遇碰撞的可能性。
- 這種發送的不確定性使整個以太網的平均通信量遠小於以太網的最高數據率。
3.5.3、使用集線器的星形拓撲
傳統以太網最初是使用粗同軸電纜,后來演進到使用比較便宜的細同軸電纜,最后發展為使用更便宜和更靈活的雙絞線。
采用雙絞線的以太網采用星形拓撲,在星形的中心則增加了一種可靠性非常高的設備,叫做集線器 (hub)。
星形以太網 10BASE-T
- 使用無屏蔽雙絞線,采用星形拓撲。
- 每個站需要用兩對雙絞線,分別用於發送和接收。
- 雙絞線的兩端使用 RJ-45 插頭。
- 集線器使用了大規模集成電路芯片,因此集線器的可靠性提高。
- 10BASE-T 的通信距離稍短,每個站到集線器的距離不超過 100m。
10BASE-T 以太網在局域網中的統治地位
- 這種 10 Mbit/s 速率的無屏蔽雙絞線星形網的出現,既降低了成本,又提高了可靠性。 具有很高的性價比。
- 10BASE-T 雙絞線以太網的出現,是局域網發展史上的一個非常重要的里程碑,它為以太網在局域網中的統治地位奠定了牢固的基礎。
- 從此以太網的拓撲就從總線形變為更加方便的星形網絡,而以太網也就在局域網中占據了統治地位。
集線器(hub)的一些特點
- 集線器是使用電子器件來模擬實際電纜線的工作,因此整個系統仍然像一個傳統的以太網那樣運行。
- 使用集線器的以太網在邏輯上仍是一個總線網,各工作站使用的還是 CSMA/CD 協議,並共享邏輯上的總線。
- 集線器很像一個多接口的轉發器,工作在物理層。
- 集線器采用了專門的芯片,進行自適應串音回波抵消,減少了近端串音。
3.5.4、信道利用率
- 多個站在以太網上同時工作就可能會發生碰撞。
- 當發生碰撞時,信道資源實際上是被浪費了。因此,當扣除碰撞所造成的信道損失后,以太網總的信道利用率並不能達到 100%。
- 假設 τ 是以太網單程端到端傳播時延。則爭用期長度為 2τ ,即端到端傳播時延的兩倍。檢測到碰撞后不發送干擾信號。
- 設幀長為 L (bit),數據發送速率為 C (bit/s),則幀的發送時間為 \(T_0 = L / C (s)\)
以太網信道被占用的情況
一個站在發送幀時出現了碰撞。經過一個爭用期 2τ 后,可能又出現了碰撞。這樣經過若干個爭用期后,一個站發送成功了。假定發送幀需要的時間是 T0。
注意到,成功發送一個幀需要占用信道的時間是 T0 + τ ,比這個幀的發送時間要多一個單程端到端時延 τ 。
這是因為當一個站發送完最后一個比特時,這個比特還要在以太網上傳播。
在最極端的情況下,發送站在傳輸媒體的一端,而比特在媒體上傳輸到另一端所需的時間是 τ 。
參數 a 與利用率
要提高以太網的信道利用率,就必須減小 τ 與 T0 之比。
在以太網中定義了參數 a ,它是以太網單程端到端時延 τ 與幀的發送時間 T0 之比:
- a → 0,表示一發生碰撞就立即可以檢測出來, 並立即停止發送,因而信道利用率很高。
- a 越大,表明爭用期所占的比例增大,每發生一次碰撞就浪費許多信道資源,使得信道利用率明顯降低。
對以太網參數 a 的要求
為提高利用率,以太網的參數 a 的值應當盡可能小些。
對以太網參數 a 的要求是:
- 當數據率一定時,以太網的連線的長度受到限制,否則 τ 的數值會太大。
- 以太網的幀長不能太短,否則 T0 的值會太小,使 a 值太大。
信道利用率的最大值 Smax
在理想化的情況下,以太網上的各站發送數據都不會產生碰撞(這顯然已經不是 CSMA/CD,而是需要使用一種特殊的調度方法),即總線一旦空閑就有某一個站立即發送數據。
發送一幀占用線路的時間是 T0 + τ ,而幀本身的發送時間是 T0。於是,我們可計算出理想情況下的極限信道利用率 Smax 為:
只有當參數 a 遠小於 1 才能得到盡可能高的極限信道利用率。
據統計,當以太網的利用率達到 30% 時就已經處於重載的情況。很多的網絡容量被網上的碰撞消耗掉了。
3.5.5、MAC 層(重點)
重點介紹:
- MAC 層的硬件地址
- MAC 幀的格式
1、MAC 層的硬件地址
- 在局域網中,硬件地址(Hardware address)又稱為物理地址,或 MAC 地址。
- 802 標准所說的“地址”嚴格地講應當是每一個站的“名字”或標識符。
- 但鑒於大家都早已習慣了將這種 48 位的“名字”稱為“地址”,所以本書也采用這種習慣用法,盡管這種說法並不太嚴格。
請注意,如果連接在局域網上的主機或路由器安裝有多個適配器,那么這樣的主機或路由器就有多個“地址”。更准確些說,這種 48 位“地址”應當是某個接口的標識符。
48 位的 MAC 地址
- IEEE 802 標准規定 MAC 地址字段可采用 6 字節 ( 48位) 或 2 字節 ( 16 位) 這兩種中的一種。
- IEEE 的注冊管理機構 RA 負責向廠家分配地址字段 6 個字節中的前三個字節 (即高位 24 位),稱為組織唯一標識符。
- 地址字段 6 個字節中的后三個字節 (即低位 24 位) 由廠家自行指派,稱為擴展唯一標識符,
必須保證生產出的適配器沒有重復地址
。
- 一個地址塊可以生成 224 個不同的地址。這種 48 位地址稱為 MAC-48,它的通用名稱是 EUI-48。
- 生產適配器時,6 字節的 MAC 地址已被固化在適配器的 ROM,因此,MAC 地址也叫做硬件地址 (hardware address) 或物理地址。
- “MAC 地址”實際上就是適配器地址或適配器標識符 EUI-48。
單站地址,組地址,廣播地址
- IEEE 規定地址字段的第一字節的最低位為 I/G 位。I/G 表示 Individual / Group。
- 當 I/G 位 = 0 時,地址字段表示一個單站地址。
- 當 I/G 位 = 1 時,表示組地址,用來進行多播(以前曾譯為組播)。此時,IEEE 只分配地址字段前三個字節中的 23 位。
- 當 I/G 位分別為 0 和 1 時,一個地址塊可分別生成 223 個單個站地址和 223 個組地址。
- 所有 48 位都為 1 時,為廣播地址。只能作為目的地址使用。
全球管理與本地管理
- IEEE 把地址字段第一字節的最低第 2 位規定為 G/L 位,表示 Global / Local。
- 當 G/L 位 = 0 時,是全球管理(保證在全球沒有相同的地址),廠商向 IEEE 購買的 OUI 都屬於全球管理。
- 當 G/L 位 = 1 時, 是本地管理,這時用戶可任意分配網絡上的地址。
適配器檢查 MAC 地址
-
適配器從網絡上每收到一個 MAC 幀就首先用硬件檢查 MAC 幀中的 MAC 地址。
- 如果是發往本站的幀則收下,然后再進行其他的處理。
- 否則就將此幀丟棄,不再進行其他的處理。
-
“發往本站的幀”包括以下三種幀:
- 單播 (unicast) 幀(一對一)
- 廣播 (broadcast) 幀(一對全體)
- 多播 (multicast) 幀(一對多)
-
所有的適配器都至少能夠識別前兩種幀,即能夠識別單播地址和廣播地址。
-
有的適配器可用編程方法識別多播地址。
-
只有目的地址才能使用廣播地址和多播地址。
-
以混雜方式 (promiscuous mode) 工作的以太網適配器只要“聽到”有幀在以太網上傳輸就都接收下來。
2、MAC 幀的格式
-
常用的以太網 MAC 幀格式有兩種標准:
- DIX Ethernet V2 標准
- IEEE 的 802.3 標准
-
最常用的 MAC 幀是以太網 V2 的格式。
類型字段用來標志上一層使用的是什么協議,以便把收到的 MAC 幀的數據上交給上一層的這個協議。
數據字段的正式名稱是 MAC 客戶數據字段。
最小長度 64 字節 - 18 字節的首部和尾部 = 數據字段的最小長度(46字節)
當傳輸媒體的誤碼率為 1x10-8 時,MAC 子層可使未檢測到的差錯小於 1x10-14 。
當數據字段的長度小於 46 字節時,應在數據字段的后面加入整數字節的填充字段,以保證以太網的 MAC 幀長不小於 64 字節。
無效的 MAC 幀
- 數據字段的長度與長度字段的值不一致;
- 幀的長度不是整數個字節;
- 用收到的幀檢驗序列 FCS 查出有差錯;
- 數據字段的長度不在 46 ~ 1500 字節之間。
- 有效的 MAC 幀長度為 64 ~ 1518 字節之間。
對於檢查出的無效 MAC 幀就簡單地丟棄。以太網不負責重傳丟棄的幀。
IEEE 802.3 MAC 幀格式
與以太網 V2 MAC 幀格式相似,區別在於:
-
IEEE 802.3 規定的 MAC 幀的第三個字段是“長度 / 類型”。
- 當這個字段值大於 0x0600 時(相當於十進制的 1536),就表示“類型”。這樣的幀和以太網 V2 MAC 幀完全一樣。
- 當這個字段值小於 0x0600 時才表示“長度”。
-
當“長度/類型”字段值小於 0x0600 時,數據字段必須裝入上面的邏輯鏈路控制 LLC 子層的 LLC 幀。
現在市場上流行的都是以太網 V2 的 MAC 幀,但大家也常常把它稱為 IEEE 802.3 標准的 MAC 幀。
幀間最小間隔
- 幀間最小間隔為 9.6 us,相當於 96 bit 的發送時間。
- 一個站在檢測到總線開始空閑后,還要等待 9.6 us 才能再次發送數據。
- 這樣做是為了使剛剛收到數據幀的站的接收緩存來得及清理,做好接收下一幀的准備。
3.6、擴展的以太網
3.6.1、在物理層擴展以太網
使用光纖擴展
- 主機使用光纖(通常是一對光纖)和一對光纖調制解調器連接到集線器。
- 很容易使主機和幾公里以外的集線器相連接。
使用集線器擴展:將多個以太網段連成更大的、多級星形結構的以太網。
用集線器擴展以太網
優點
- 使原來屬於不同碰撞域的以太網上的計算機能夠進行跨碰撞域的通信。
- 擴大了以太網覆蓋的地理范圍。
缺點
- 碰撞域增大了,但總的吞吐量並未提高。
- 如果不同的碰撞域使用不同的數據率,那么就不能用集線器將它們互連起來。
碰撞域
- 碰撞域(collision domain)又稱為沖突域,是指網絡中一個站點發出的幀會與其他站點發出的幀產生碰撞或沖突的那部分網絡。
- 碰撞域越大,發生碰撞的概率越高。
3.6.2、在數據鏈路層擴展以太網
擴展以太網更常用的方法是在數據鏈路層進行。
早期使用網橋,現在使用以太網交換機。
網橋與以太網交換機
-
網橋工作在數據鏈路層。
-
它根據 MAC 幀的目的地址對收到的幀進行轉發和過濾。
-
當網橋收到一個幀時,並不是向所有的接口轉發此幀,而是先檢查此幀的目的 MAC 地址,然后再確定將該幀轉發到哪一個接口,或把它丟棄。
-
1990 年問世的交換式集線器 (switching hub) 可明顯地提高以太網的性能。
-
交換式集線器常稱為以太網交換機 (switch) 或第二層交換機 (L2 switch),強調這種交換機工作在數據鏈路層。
1、以太網交換機的特點
-
以太網交換機實質上就是一個多接口的網橋。
- 通常都有十幾個或更多的接口。
-
每個接口都直接與一個單台主機或另一個以太網交換機相連,並且一般都工作在全雙工方式。
-
以太網交換機具有並行性。
- 能同時連通多對接口,使多對主機能同時通信。
-
相互通信的主機都是獨占傳輸媒體,無碰撞地傳輸數據。
- 以太網交換機的接口有存儲器,能在輸出端口繁忙時把到來的幀進行緩存。
- 以太網交換機是一種即插即用設備,其內部的幀交換表(又稱為地址表)是通過自學習算法自動地逐漸建立起來的。
- 以太網交換機使用了專用的交換結構芯片,用硬件轉發,其轉發速率要比使用軟件轉發的網橋快很多。
- 以太網交換機的性能遠遠超過普通的集線器,而且價格並不貴。
以太網交換機的優點
- 用戶獨享帶寬,增加了總容量。
- 從共享總線以太網轉到交換式以太網時,所有接入設備的軟件和硬件、適配器等都不需要做任何改動。
- 以太網交換機一般都具有多種速率的接口,方便了各種不同情況的用戶。
以太網交換機的交換方式
- 存儲轉發方式
- 把整個數據幀先緩存后再進行處理。
- 直通 (cut-through) 方式
- 接收數據幀的同時就立即按數據幀的目的 MAC 地址決定該幀的轉發接口,因而提高了幀的轉發速度。
- 缺點是它不檢查差錯就直接將幀轉發出去,因此有可能也將一些無效幀轉發給其他的站。
在某些情況下,仍需要采用基於軟件的存儲轉發方式進行交換,例如,當需要進行線路速率匹配、協議轉換或差錯檢測時。
2、以太網交換機的自學習功能
以太網交換機運行自學習算法自動維護交換表。
舉例:主機 A 先向 B 發送數據,主機 B 再向 A 發送數據
如果一旦某個主機更換網卡,后者直接更換主機:
交換機自學習和轉發幀的步驟歸納
理解以太網交換機的自學習功能
存在的問題:回路
產生問題的場景:一開始兩個交換機的交換表中沒 MAC地址和對應的接口,都為空,如果主機 A 向主機 E 發送數據,此時主機 A 就會向除 主機 A 以外的所有主機發送 MAC 幀,此時就會產生回路!
不止交換機之間,兩個網橋之間就可以產生回路。
轉發的幀在網絡中不斷兜圈子,浪費網絡資源,造成網絡堵塞。
解決方法:生成樹算法
主要的思想:不改變網絡的實際拓撲,在實際拓撲中找一個子集,使得整個聯通的網絡中不存在回路,即在任何兩個站之間只有一條路徑。也就是在邏輯上則切斷某些鏈路,使得從一台主機到所有其他主機的路徑是無環路的樹狀結構,從而消除了兜圈子現象。
為了得出能夠反映網絡拓撲發生變化時的生成樹,在生成樹上的根網橋每隔一段時間還要對生成樹的拓撲進行更新。
3、總線以太網 --> 星形以太網
- 早期,以太網采用無源的總線結構。
- 現在,采用以太網交換機的星形結構成為以太網的首選拓撲。
- 總線以太網使用 CSMA/CD 協議,以半雙工方式工作。
- 以太網交換機不使用共享總線,沒有碰撞問題,因此不使用 CSMA/CD 協議,以全雙工方式工作。但仍然采用以太網的幀結構。
- 以太網交換機內部有一個緩存隊列,會將對同一個主機進行通信的多個主機進行排隊。
局域網存在的問題
- 擴展性
- 安全性
- 可管理性 等
總線以太網 和 10Base_T 星形以太網
- 所有計算機都處於同一個碰撞域(或沖突域)中和同一個廣播域中。
廣播域(broadcast domain):指這樣一部分網絡,其中任何一台設備發出的廣播通信都能被該部分網絡中的所有其他設備所接收。
采用以太網交換機的星形以太網
- 每個接口都處於一個獨立的碰撞域(或沖突域)中,但所有計算機都處於同一個廣播域中。
3.6.3、虛擬局域網 VLAN
-
利用以太網交換機可以很方便地實現虛擬局域網 VLAN (Virtual LAN)。
-
IEEE 802.1Q 對虛擬局域網 VLAN 的定義:
虛擬局域網 VLAN 是由一些局域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同的需求。每一個 VLAN 的幀都有一個明確的s 標識符,指明發送這個幀的計算機是屬於哪一個 VLAN。 -
虛擬局域網其實只是局域網給用戶提供的一種服務,而並不是一種新型局域網。
-
由於虛擬局域網是用戶和網絡資源的邏輯組合,因此可按照需要將有關設備和資源非常方便地重新組合,使用戶從不同的服務器或數據庫中存取所需的資源。
虛擬局域網(VLAN)技術具有以下主要優點:
- 改善了性能
- 簡化了管理
- 降低了成本
- 改善了安全性
划分虛擬局域網的方法
- 基於交換機端口
- 基於計算機網卡的 MAC 地址
- 基於協議類型
- 基於 IP 子網地址
- 基於高層應用或服務
1、基於交換機端口的方法
- 最簡單、也是最常用的方法。
- 屬於在第一層(物理層)划分虛擬局域網的方法。
- 缺點:不允許用戶移動。
2、基於計算機網卡的MAC地址的方法
- 根據用戶計算機的MAC地址划分虛擬局域網。
- 屬於在第二層(數據鏈路層)划分虛擬局域網的方法。
- 允許用戶移動。
- 缺點:需要輸入和管理大量的MAC地址。如果用戶的MAC地址改變了,則需要管理員重新配置VLAN。
MAC 地址 | VLAN |
---|---|
00-15-F5-CC-C8-14 | 10 |
C0-AB-D5-00-18-F4 | 10 |
C0-C5-18-DE-BC-E6 | 30 |
3、基於協議類型的方法
- 根據以太網幀的第三個字段“類型”字段確定該類型的協議屬於哪一個虛擬局域網。
- 屬於在第二層(數據鏈路層)划分虛擬局域網的方法。
“類型” | VLAN |
---|---|
IP | 10 |
IPX | 30 |
…… | … |
4、基於IP子網地址的方法
- 根據以太網幀的第三個字段“類型”字段和IP分組首部中的源 IP 地址字段確定該 IP 分組屬於哪一個虛擬局域網。
- 屬於在第三層(網路層)划分虛擬局域網的方法。
IP 子網 | VLAN |
---|---|
192.168.1.0/24 | 10 |
192.168.2.0/24 | 30 |
…… | … |
5、基於高層應用或服務的方法
- 根據高層應用或服務、或者它們的組合划分虛擬局域網。
- 更加靈活,但更加復雜。
應用 | VLAN |
---|---|
FTP | 10 |
TELNET | 30 |
…… | … |
虛擬局域網使用的以太網幀格式
- IEEE 批准了 802.3ac 標准,該標准定義了以太網的幀格式的擴展,以支持虛擬局域網。
- 虛擬局域網協議允許在以太網的幀格式中插入一個4字節的標識符,稱為 VLAN 標記 (tag),用來指明該幀屬於哪一個虛擬局域網。
- 插入 VLAN 標記得出的幀稱為 802.1Q 幀或帶標記的以太網幀。
交換機的端口有兩種類型:
- 訪問端口
- 訪問端口只能屬於某一個 VLAN,它只能承載一個 VLAN 的流量,連接訪問端口的鏈路稱為訪問鏈路。
- 中繼端口
- 中繼端口能夠同時承載多個 VLAN 的流量,連接中繼端口的鏈路稱為干道鏈路。
- 數據幀進入干道鏈路時需要添加幀標記(VLAN ID),離開干道鏈路時去掉幀標記,這個過程對於計算機來說是透明的。
交換機組建的網絡,如果需要多個 VLAN 通過的鏈路,就配置成干道鏈路;如果鏈路上只需要單一 VLAN 的數據通過,就配置成訪問鏈路。
3.7、高速以太網
3.7.1、100BASE-T 以太網
- 速率達到或超過 100 Mbit/s 的以太網稱為高速以太網。
- 100BASE-T 在雙絞線上傳送 100 Mbit/s 基帶信號的星形拓撲以太網,仍使用 IEEE 802.3 的 CSMA/CD 協議。
- 100BASE-T 以太網又稱為快速以太網 (Fast Ethernet)。
- 1995 年IEEE已把 100BASE-T 的快速以太網定為正式標准,其代號為 IEEE 802.3u。
100BASE-T 以太網的特點
- 可在全雙工方式下工作而無沖突發生。在全雙工方式下工作時,不使用 CSMA/CD 協議。
- MAC 幀格式仍然是 802.3 標准規定的。
- 保持最短幀長不變,但將一個網段的最大電纜長度減小到 100 米。
- 幀間時間間隔從原來的 9.6 us 改為現在的 0.96 us 。
100 Mbit/s 以太網的三種不同的物理層標准
- 100BASE-TX
- 使用 2 對 UTP 5 類線 或 屏蔽雙絞線 STP。
- 網段最大程度:100 米。
- 100BASE-T4
- 使用 4 對 UTP 3 類線 或 5 類線。
- 網段最大程度:100 米。
- 100BASE-FX
- 使用 2 對光纖。
- 網段最大程度:2000 米。
3.7.2、吉比特以太網
- 允許在 1 Gbit/s 下以全雙工和半雙工兩種方式工作
- 使用 IEEE 802.3 協議規定的幀格式。
- 在半雙工方式下使用 CSMA/CD 協議,全雙工方式不使用 CSMA/CD 協議。
- 與 10BASE-T 和 100BASE-T 技術向后兼容。
吉比特以太網可用作現有網絡的主干網,也可在高帶寬(高速率)的應用場合中。
使用兩種成熟的技術:一種來自現有的以太網,另一種則是美國國家標准協會 ANSI 制定的光纖通道 FC (Fiber Channel)。
名稱 | 媒體 | 網段最大長度 | 特點 |
---|---|---|---|
1000BASE-SX | 光纜 | 550 m | 多模光纖(50 和 62.5 um) |
1000BASE-LX | 光纜 | 5000 m | 單模光纖(10 um)多模光纖(50 和 62.5 um) |
1000BASE-CX | 銅纜 | 25 m | 使用 2 對屏蔽雙絞線電纜 STP |
1000BASE-T | 銅纜 | 100 m | 使用 4 對 UTP 5 類線 |
半雙工方式工作的吉比特以太網
- 吉比特以太網工作在半雙工方式時,就必須進行碰撞檢測。
- 為保持 64 字節最小幀長度,以及 100 米的網段的最大長度,吉比特以太網增加了兩個功能:
- 載波延伸 (carrier extension)
- 分組突發 (packet bursting)
載波延伸
- 使最短幀長仍為 64 字節(這樣可以保持兼容性),同時將爭用時間增大為 512 字節。
- 凡發送的 MAC 幀長不足 512 字節時,就用一些特殊字符填充在幀的后面,使MAC 幀的發送長度增大到 512 字節。接收端在收到以太網的 MAC 幀后,要將所填充的特殊字符刪除后才向高層交付。
分組突發
當很多短幀要發送時,第一個短幀要采用載波延伸方法進行填充,隨后的一些短幀則可一個接一個地發送,只需留有必要的幀間最小間隔即可。這樣就形成可一串分組的突發,直到達到 1500 字節或稍多一些為止。
全雙工方式工作的吉比特以太網
當吉比特以太網工作在全雙工方式時(即通信雙方可同時進行發送和接收數據),不使用載波延伸和分組突發。
3.7.3、10 吉比特以太網 (10GE) 和更快的以太網
10 吉比特以太網(10GE)並非把吉比特以太網的速率簡單地提高到 10 倍,其主要特點有:
- 與 10 Mbit/s、100 Mbit/s 和 1 Gbit/s 以太網的幀格式完全相同。
- 保留了 802.3 標准規定的以太網最小和最大幀長,便於升級。
- 不再使用銅線而只使用光纖作為傳輸媒體。
- 只工作在全雙工方式,因此沒有爭用問題,也不使用 CSMA/CD 協議。
名稱 | 媒體 | 網段最大長度 | 特點 |
---|---|---|---|
10GBASE-SR | 光纜 | 300 m | 多模光纖(0.85 um) |
10GBASE-LR | 光纜 | 10 km | 單模光纖(1.3 um) |
10GBASE-ER | 光纜 | 40 km | 單模光纖(1.5 um) |
10GBASE-CX4 | 銅纜 | 15 m | 使用 4 對雙芯同軸電纜 (twinax) |
10GBASE-T | 銅纜 | 100 m | 使用 4 對 6A 類 UTP 雙絞線 |
物理層 | 40GE | 100GE |
---|---|---|
在背板上傳輸至少超過 1 m | 40GBASE-KR4 | |
在銅纜上傳輸至少超過 7 m | 40GBASE-CR4 | 100GBASE-CR10 |
在多模光纖上傳輸至少 100 m | 40GBASE-SR4 | 100GBASE-SR10,*100GBASE-SR4 |
在單模光纖上傳輸至少 10 km | 40GBASE-LR4 | 100GBASE-LR4 |
在單模光纖上傳輸至少 40 km | 40GBASE-ER | 100GBASE-ER4 |
端到端的以太網傳輸
- 以太網的工作范圍已經從局域網(校園網、企業網)擴大到城域網和廣域網,從而實現了端到端的以太網傳輸。
- 這種工作方式的好處有:
- 技術成熟;
- 互操作性很好;
- 在廣域網中使用以太網時價格便宜;
- 采用統一的以太網幀格式,簡化了操作和管理。
3.7.4、使用以太網進行寬帶接入
- IEEE 在 2001 年初成立了 802.3 EFM 工作組,專門研究高速以太網的寬帶接入技術問題。
- 以太網寬帶接入具有以下特點:
- 可以提供雙向的寬帶通信。
- 可以根據用戶對帶寬的需求靈活地進行帶寬升級。
- 可以實現端到端的以太網傳輸,中間不需要再進行幀格式的轉換。這就提高了數據的傳輸效率且降低了傳輸的成本。
- 但是不支持用戶身份鑒別。
PPPoE
PPPoE詳解:https://blog.csdn.net/u011857683/article/details/84703669
- PPPoE (PPP over Ethernet) 的意思是“在以太網上運行 PPP”,它把 PPP 協議與以太網協議結合起來 —— 將 PPP 幀再封裝到以太網中來傳輸。
- 現在的光纖寬帶接入 FTTx 都要使用 PPPoE 的方式進行接入。在 PPPoE 彈出的窗口中鍵入在網絡運營商購買的用戶名和密碼,就可以進行寬帶上網了。
- 利用 ADSL 進行寬帶上網時,從用戶個人電腦到家中的 ADSL 調制解調器之間,也是使用 RJ-45 和 5 類線(即以太網使用的網線)進行連接