1. 程式人生 > >【計算機網路】學習筆記,第三篇:資料鏈路層(謝希仁版)

【計算機網路】學習筆記,第三篇:資料鏈路層(謝希仁版)

![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01513090610b480a8fc70f871ceaf3dc~tplv-k3u1fbpfcp-zoom-1.image) **說明:** - 文章主要針對科班上課做的簡單筆記,以及後面針對一些面試涉及內容的詳細講解 - 再三宣告:考研的同學好好去背書,做題,重點研究一下側重點,加油 !!! - 此文章歸納整理自:【計算機網路】(第七版)謝希仁 ,一切內容版權均歸書籍作者所有,侵刪 # 一 資料鏈路層序言 資料鏈路層屬於計算機網路的低層,資料鏈路層使用的通道主要有以下兩種型別: - **點對點通道**。這種通道使用**一對一**的點對點通訊方式。 - **廣播通道**。這種通道使用**一對多的廣播通訊方式**,因此過程比較複雜。廣播通道上連線的主機很多,因此必須**使用專用的共享通道協議來協調這些主機的資料傳送**。 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/208a69688c154e65a2009fecaaaec072~tplv-k3u1fbpfcp-zoom-1.image) 當我們專心研究資料鏈路層找那個的問題的時候,在許多情況下我們可以**只關心在協議棧中水平方向的各資料鏈路層**,於是當主機 H1 向主機 H2 傳送資料的時候,我們可以**想象資料就是在資料鏈路層中從左向右沿著水平方法傳送的** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/72329df91565406e984aa203b12c41e6~tplv-k3u1fbpfcp-zoom-1.image) # 二 使用點對點通道的資料鏈路層 ## (一) 資料鏈路和幀 ### (1) 鏈路 **鏈路**:一個節點到相鄰節點的一段物理路線,而中間任何其他的交換節點 - 在資料通訊的時候,兩臺計算機之間的通訊路徑往往要經過許多段這樣的鏈路,可見鏈路只是一條路徑的組成部分 ### (2) 資料鏈路 **資料鏈路 (data link)**: **除了物理線路外,還必須有通訊協議來控制這些資料的傳輸**。若把實現這些協議的硬體和軟體加到鏈路上,就構成了資料鏈路 - 現在最常用的方法是使用介面卡(即網絡卡)來實現這些協議的硬體和軟體 - **一般的介面卡都包括了資料鏈路層和物理層這兩層的功能** 也有人採用另外的術語。這就是把**鏈路分為物理鏈路和邏輯鏈路** - 物理鏈路就是上面所說的鏈路 - 邏輯鏈路就是上面的資料鏈路,是物理鏈路加上必要的通訊協議 補充:早起資料通訊協議曾經叫做**通訊規程**,所以在資料鏈路層中,規程和協議是同義語 ### (3) 幀 **資料鏈路層傳送的是幀** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/25ad10d0cd8a410d808f4a459c2d325f~tplv-k3u1fbpfcp-zoom-1.image) 常常在兩個對等的資料鏈路層之間畫出一個數字管道,而在這條數字管道上傳輸的資料單位是幀 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a3374d1ab83149bfb19854ca0b0b2ed8~tplv-k3u1fbpfcp-zoom-1.image) 資料鏈路層不必考慮物理層如何實現位元傳輸的細節。甚至還可以更簡單地設想好像是沿著兩個資料鏈路層之間的水平方向把幀直接傳送到對方 ## (二) 三個基本問題 資料鏈路層協議有很多種,但是又三個基本問題是共同的,封裝成幀、透明傳輸、差錯控制 ### (1) 封裝成幀 **封裝成幀 (framing) 就是在一段資料的前後分別新增首部和尾部,然後就構成了一個幀** 首部和尾部的一個重要作用就是進行**幀定界** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9a80e302a5aa4f2ea0f6a16b541f067f~tplv-k3u1fbpfcp-zoom-1.image) 當資料是由可列印的 ASCII 碼組成的文字檔案時,幀定界可以使用特殊的幀定界符 控制字元 SOH (Start Of Header) 放在一幀的最前面,表示幀的首部開始。另一個控制字元 EOT (End Of Transmission) 表示幀的結束 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ad2d723484fa4b25bd64a151ee4e4a58~tplv-k3u1fbpfcp-zoom-1.image) > ASCII 碼是7位編碼,一共可以組成128個不同的 ASCII 碼,其中可列印的有95個,不可列印的有33個,請注意,SOH 和 EOT 都是控制字元的名稱,他們的十六進位制編碼分別為 01(二進位制是 00000001)和 04(00000100)SOH(或 EOT) 並不是 S,O,H (或 E,O,T)三個字元 ### (2) 透明傳輸 如果資料中的某個位元組的二進位制程式碼恰好和 SOH 或 EOT 一樣,資料鏈路層就會錯誤地“找到幀的邊界” ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/444c5ffee4504c3d9c9622ca6a1fc743~tplv-k3u1fbpfcp-zoom-1.image) **解決方法:位元組填充 (byte stuffing) 或字元填充 (character stuffing)** - 傳送端的資料鏈路層在資料中出現控制字元“SOH”或“EOT”的前面插入一個轉義字元“ESC”(其十六進位制編碼是1B) - 接收端的資料鏈路層在將資料送往網路層之前刪除插入的轉義字元 - 如果轉義字元也出現在資料當中,那麼應在轉義字元前面插入一個轉義字元 ESC。當接收端收到連續的兩個轉義字元時,就刪除其中前面的一個 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c34f4444a1824855bafc032e8bc698ae~tplv-k3u1fbpfcp-zoom-1.image) ### (3) 差錯檢測 在傳輸過程中可能會產生位元差錯:1 可能會變成 0, 而 0 也可能變成 1 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1697fbdeabaf4b3891c44ef97d09b01c~tplv-k3u1fbpfcp-zoom-1.image) #### A:迴圈冗餘檢驗 在資料鏈路層傳送的幀中,廣泛**使用了迴圈冗餘檢驗 CRC 的檢錯技術** 在傳送端,先把資料劃分為組。假定每組 k 個位元 在每組 M(待傳送資料) 後面再新增供差錯檢測用的 n 位冗餘碼,然後一起傳送出去 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4a299ee4ba094448971b039a34dba03f~tplv-k3u1fbpfcp-zoom-1.image) **冗餘碼如何計算:** - 用二進位制的模 2 運算進行 2^n 乘 M 的運算,這相當於在 M 後面新增 n 個 0 - 得到的 (k + n) 位的數除以事先選定好的長度為 (n + 1) 位的除數 P,得出商是 Q 而餘數是 R,餘數 R 除數 P 少 1 位,即 R 是 n 位 - 將餘數 R 作為冗餘碼拼接在資料 M 後面,一起傳送出去 **舉例:** 現在 k = 6, M = 101001 設 n = 3, 除數 P = 1101 被除數是 2^nM = 101001000 模 2 運算的結果是:商 Q = 110101,餘數 R = 001 把餘數 R 作為冗餘碼新增在資料 M 的後面傳送出去。傳送的資料是:2nM + R,即:101001001,共 (k + n) 位 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bea1f7fa39174910b9ac47216db32cc6~tplv-k3u1fbpfcp-zoom-1.image) **接收方如何判定** - 若得出的餘數 R = 0,則判定這個幀沒有差錯,就接受 (accept) - 若餘數 R ≠ 0,則判定這個幀有差錯,就丟棄 但這種檢測方法並不能確定究竟是哪一個或哪幾個比特出現了差錯 只要經過嚴格的挑選,並使用位數足夠多的除數 P,那麼出現檢測不到的差錯的概率就很小很小 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e36f5bec8b144996badec5801332e39d~tplv-k3u1fbpfcp-zoom-1.image) #### B:幀檢驗序列 FCS **在資料後面新增上的冗餘碼稱為幀檢驗序列 FCS (Frame Check Sequence)** 迴圈冗餘檢驗 CRC 和幀檢驗序列 FCS 並不等同 - CRC 是一種常用的檢錯方法,而 FCS 是新增在資料後面的冗餘碼 - FCS 可以用 CRC 這種方法得出,但 CRC 並非用來獲得 FCS 的唯一方法 **注意:** 僅用迴圈冗餘檢驗 CRC 差錯檢測技術只能做到無差錯接受 (accept) - “無差錯接受”是指:“凡是接受的幀(即不包括丟棄的幀),我們都能以非常接近於 1 的概率認為這些幀在傳輸過程中沒有產生差錯” - 也就是說:“凡是接收端資料鏈路層接受的幀都沒有傳輸差錯”(有差錯的幀就丟棄而不接受) 單純使用 CRC 差錯檢測技術不能實現“無差錯傳輸”或“可靠傳輸” 應當明確,“無位元差錯”與“無傳輸差錯”是不同的概念 在資料鏈路層使用 CRC 檢驗,能夠實現無位元差錯的傳輸,但這還不是可靠傳輸 要做到“無差錯傳輸”(即傳送什麼就收到什麼)就必須再加上確認和重傳機制 這一篇中介紹的資料鏈路層協議都不是可靠傳輸的協議 ## (三) PPP 協議 **對於點對點的鏈路,目前使用得最廣泛的資料鏈路層協議是點對點協議 PPP (Point-to-Point Protocol)** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/71aa6f15f69e4beeae2b65d92caa2b1d~tplv-k3u1fbpfcp-zoom-1.image) PPP 協議有三個組成部分: - 一個將 **IP 資料報封裝到序列鏈路的方法** - **鏈路控制協議 LCP** (Link Control Protocol) - **網路控制協議 NCP** (Network Control Protocol) ### (1) PPP 協議應該滿足的需求 - **簡單** —— 這是首要的要求 - **封裝成幀** —— 必須規定特殊的字元作為幀定界符 - **透明性** —— 必須保證資料傳輸的透明性 - **多種網路層協議** —— 能夠在同一條物理鏈路上同時支援多種網路層協議 - **多種型別鏈路** —— 能夠在多種型別的鏈路上執行 - **差錯檢測** —— 能夠對接收端收到的幀進行檢測,並立即丟棄有差錯的幀 - **檢測連線狀態** —— 能夠及時自動檢測出鏈路是否處於正常工作狀態 - **最大傳送單元** —— 必須對每一種型別的點對點鏈路設定最大傳送單元 MTU 的標準預設值,促進各種實現之間的互操作性 - **網路層地址協商** —— 必須提供一種機制使通訊的兩個網路層實體能夠通過協商知道或能夠配置彼此的網路層地址 - **資料壓縮協商** —— 必須提供一種方法來協商使用資料壓縮演算法 ### (2) PPP 協議的幀格式 - PPP 幀的首部和尾部分別為 4 個欄位和 2 個欄位 - 標誌欄位 F = 0x7E (符號“0x”表示後面的字元是用十六進位制表示。十六進位制的 7E 的二進位制表示是 01111110) - 地址欄位 A 只置為 0xFF。地址欄位實際上並不起作用 - 控制欄位 C 通常置為 0x03 - PP 是面向位元組的,所有的 PPP 幀的長度都是整數字節 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/75143dc8e33248a8b3c3180933a5023b~tplv-k3u1fbpfcp-zoom-1.image) PPP 有一個 2 個位元組的協議欄位,其值: - 若為 0x0021,則資訊欄位就是 IP 資料報。 - 若為 0x8021,則資訊欄位是網路控制資料。 - 若為 0xC021,則資訊欄位是 PPP 鏈路控制資料。 - 若為 0xC023,則資訊欄位是鑑別資料。 ### (3) PPP 協議解決透明傳輸的問題 - 當 PPP 用在**同步**傳輸鏈路時,協議規定**採用硬體來完成位元填充**(和 HDLC 的做法一樣) - 當 PPP 用在**非同步**傳輸時,就使用一種特殊的**字元填充法** #### A:字元填充 將資訊欄位中出現的每一個 0x7E 位元組轉變成為 2 位元組序列 (0x7D, 0x5E) 若資訊欄位中出現一個 0x7D 的位元組, 則將其轉變成為 2 位元組序列 (0x7D, 0x5D) 若資訊欄位中出現 ASCII 碼的控制字元(即數值小於 0x20 的字元),則在該字元前面要加入一個 0x7D 位元組,同時將該字元的編碼加以改變 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6a005102d50a4f6d9becc4666650a884~tplv-k3u1fbpfcp-zoom-1.image) #### B:零位元填充 PPP 協議用在 SONET/SDH 鏈路時,使用同步傳輸(一連串的位元連續傳送)。這時 PPP 協議採用零位元填充方法來實現透明傳輸 在傳送端,只要發現有 5 個連續 1,則立即填入一個 0 接收端對幀中的位元流進行掃描。每當發現 5 個連續1時,就把這 5 個連續 1 後的一個 0 刪除 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1d0b7df7e23145c7ae0b0040bbd7bd66~tplv-k3u1fbpfcp-zoom-1.image) ### (4) 不提供使用序號和確認的可靠傳輸 PPP 協議之所以**不使用**序號和確認機制是出於以下的考慮: 在資料鏈路層出現差錯的概率不大時,使用比較簡單的 PPP 協議較為合理 在因特網環境下,PPP 的資訊欄位放入的資料是 IP 資料報。資料鏈路層的可靠傳輸並不能夠保證網路層的傳輸也是可靠的 幀檢驗序列 FCS 欄位可保證無差錯接受 ### (5) PPP 協議的工作狀態 當用戶撥號接入 ISP 時,路由器的調變解調器對撥號做出確認,並建立一條物理連線 PC 機向路由器傳送一系列的 LCP 分組(封裝成多個 PPP 幀) 這些分組及其響應選擇一些 PPP 引數,並進行網路層配置,NCP 給新接入的 PC 機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機 通訊完畢時,NCP 釋放網路層連線,收回原來分配出去的 IP 地址。接著,LCP 釋放資料鏈路層連線。最後釋放的是物理層的連線 **可見,PPP 協議已不是純粹的資料鏈路層的協議,它還包含了物理層和網路層的內容** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5373d1c406e74718a43b9511e27e0956~tplv-k3u1fbpfcp-zoom-1.image) # 三 使用廣播通道的資料鏈路層 ## (一) 區域網的資料鏈路層 **區域網最主要的特點是:** - 網路為一個單位所擁有 - 地理範圍和站點數目均有限 **區域網具有如下主要優點:** - 具有廣播功能,從一個站點可很方便地訪問全網,區域網上的主機可共享連線在區域網上的各種硬體和軟體資源 - 便於系統的擴充套件和逐漸地演變,各裝置的位置可靈活調整和改變 - 提高了系統的可靠性、可用性和殘存性 **網際網路的拓撲結構:** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/12e090ebae1f46f5a8f413988d3eaeb1~tplv-k3u1fbpfcp-zoom-1.image) ### (1) 乙太網的兩個標準 **DIX Ethernet V2** 是世界上第一個區域網產品(乙太網)的規約 **IEEE 802.3** 是第一個 IEEE 的乙太網標準 - DIX Ethernet V2 標準與 IEEE 的 802.3 標準只有很小的差別,因此可以將 802.3 區域網簡稱為“乙太網” - 嚴格說來,“乙太網”應當是指符合 DIX Ethernet V2 標準的區域網 ### (2) 資料鏈路層的兩個子層 為了使資料鏈路層能更好地適應多種區域網標準,IEEE 802 委員會就將區域網的資料鏈路層拆成兩個子層: - **邏輯鏈路控制 LLC** (Logical Link Control)子層 - **媒體接入控制 MAC** (Medium Access Control)子層 與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關 不管採用何種協議的區域網,對 LLC 子層來說都是透明的 ### (3) 介面卡的作用 網路介面板又稱為**通訊介面卡** (adapter) 或**網路介面卡** NIC (Network Interface Card),或**“網絡卡”** 介面卡的重要功能: - **進行序列/並行轉換** - **對資料進行快取** - **在計算機的作業系統安裝裝置驅動程式** - **實現乙太網協議** ## (二) CSMA/CD 協議 最初的乙太網是將許多計算機都連線到一根總線上。**易於實現廣播通訊**。當初認為這樣的連線方法既簡單又可靠,因為總線上沒有有源器件。 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/85f05a987fa541e79f102158b65b6de4~tplv-k3u1fbpfcp-zoom-1.image) 為了實現一對一通訊,將接收站的硬體地址寫入幀首部中的目的地址欄位中。僅當資料幀中的目的地址與介面卡的硬體地址一致時,才能接收這個資料幀 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/694f0588e3f74b788a9a70ada094389d~tplv-k3u1fbpfcp-zoom-1.image) 匯流排也有缺點。若多臺計算機或多個站點同時傳送時,會產生髮送碰撞或衝突,導致傳送失敗。 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/78bab146c02d46afbb13ee1260137a70~tplv-k3u1fbpfcp-zoom-1.image) ### (1) 乙太網採取的兩種重要措施 **① 採用較為靈活的無連線的工作方式** - 不必先建立連線就可以直接傳送資料 - 對傳送的資料幀不進行編號,也不要求對方發回確認 - 這樣做的理由是區域網通道的質量很好,因通道質量產生差錯的概率是很小的 **② 乙太網傳送的資料都使用曼徹斯特 (Manchester) 編碼** - 曼徹斯特編碼缺點是:它所佔的頻頻寬度比原始的基帶訊號增加了一倍 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ed9025f7c02046de817fb396f484c158~tplv-k3u1fbpfcp-zoom-1.image) ### (2) CSMA/CD 協議的要點 CSMA/CD 含義:**載波監聽多點接入 / 碰撞檢測** (Carrier Sense Multiple Access with Collision Detection) **“多點接入”**表示許多計算機以多點接入的方式連線在一根總線上 **“載波監聽”**是指每一個站在傳送資料之前先要檢測一下總線上是否有其他計算機在傳送資料,如果有,則暫時不要傳送資料,以免發生碰撞 總線上並沒有什麼“載波”。因此, **“載波監聽”就是用電子技術檢測總線上有沒有其他計算機發送的資料訊號** ### (3) 碰撞檢測 由於**電磁波在總線上的傳播速率是有限的**,當某個站監聽到匯流排是空閒時,也可能匯流排並非真正是空閒的 - A 向 B 發出的資訊,要經過一定的時間後才能傳送到 B - B 若在 A 傳送的資訊到達 B 之前傳送自己的幀 (因為這時 B 的載波監聽檢測不到 A 所傳送的資訊),**則必然要在某個時間和 A 傳送的幀發生碰撞** - 碰撞的結果是兩個幀都變得無用 所以需要在**傳送期間進行碰撞檢測,以檢測衝突** **“碰撞檢測”就是計算機邊傳送資料邊檢測通道上的訊號電壓大小。** 當幾個站同時在總線上傳送資料時,總線上的訊號電壓擺動值將會增大(互相疊加)。 當一個站檢測到的訊號電壓擺動值**超過一定的門限值時**,就認為**總線上至少有兩個站同時在傳送資料,表明產生了碰撞**。 **所謂“碰撞”就是發生了衝突。因此“碰撞檢測”也稱為“衝突檢測”** 每一個正在傳送資料的站,**一旦發現總線上出現了碰撞,就要立即停止傳送,免得繼續浪費網路資源,然後等待一段隨機時間後再次傳送** 使用 CSMA/CD 協議的乙太網**不能進行全雙工通訊而只能進行雙向交替通訊(半雙工通訊),因為了碰撞了幀就無效了**。 當傳送資料的站**一旦發現發生了碰撞時**: - (1) **立即停止傳送資料**; - (2) 再繼續傳送若干位元的**人為干擾訊號** (jamming signal),以便讓所有使用者都知道現在**已經發生了碰撞**。 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/36cdf952ab5343ef8ed18986b1298c77~tplv-k3u1fbpfcp-zoom-1.image) 第 (2) 點 CSMA/CD 協議的要點圖示補充: ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/601210b49c7e413b9c4a78b3b2deeaa1~tplv-k3u1fbpfcp-zoom-1.image) ## (三) 集線器的星形拓撲 傳統乙太網最初是使用粗同軸電纜,後來演進到使用比較便宜的細同軸電纜,最後發展為使用更便宜和更靈活的雙絞線 採用雙絞線的乙太網採用星形拓撲,在星形的中心則增加了一種可靠性非常高的裝置,叫做集線器 (hub) 傳統乙太網使用同軸電纜,採用匯流排形拓撲結構 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/79b866320b55491a8ffc6fde12777fdd~tplv-k3u1fbpfcp-zoom-1.image) 使用集線器的雙絞線乙太網 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fa448fe123664b698c964e03957e84dd~tplv-k3u1fbpfcp-zoom-1.image) 集線器是使用電子器件來模擬實際電纜線的工作,因此整個系統仍然像一個傳統的乙太網那樣執行 使用集線器的乙太網在邏輯上仍是一個匯流排網,各工作站使用的還是 CSMA/CD 協議,並共享邏輯上的匯流排 集線器很像一個多介面的轉發器,工作在物理層 集線器採用了專門的晶片,進行自適應串音回波抵消,減少了近端串音 ## (四) 乙太網的通道利用率 ### (1) 基本 多個站在乙太網上同時工作就可能會發生碰撞 當發生碰撞時,通道資源實際上是被浪費了。因此,當扣除碰撞所造成的通道損失後,**乙太網總的通道利用率並不能達到 100%** 假設 x 是乙太網單程端到端傳播時延。則爭用期長度為 2x ,即端到端傳播時延的兩倍。檢測到碰撞後不傳送干擾訊號 設幀長為 L (bit),資料傳送速率為 C (bit/s),則幀的傳送時間為 T0 = L/C (s) 一個站在傳送幀時出現了碰撞。經過一個爭用期 2x 後,可能又出現了碰撞。這樣經過若干個爭用期後,一個站傳送成功了。假定傳送幀需要的時間是 T0 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f46e5af1e20f45379b5b99081a5d8451~tplv-k3u1fbpfcp-zoom-1.image) 注意到,成功傳送一個幀需要佔用通道的時間是 T0 + x ,比這個幀的傳送時間要多一個單程端到端時延 x 這是因為當一個站傳送完最後一個位元時,這個位元還要在乙太網上傳播 在最極端的情況下,傳送站在傳輸媒體的一端,而位元在媒體上傳輸到另一端所需的時間是 x 要提乙太網的通道利用率,就必須減小 x 與 T0 之比 在乙太網中定義了引數 a ,它是乙太網單程端到端時延 x 與幀的傳送時間 T0 之比: ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/95af0bf665e049acb0eeee338d320b58~tplv-k3u1fbpfcp-zoom-1.image) 說明:本質分子的符號是如圖所示,由於編輯器數字公式符號等相對麻煩,所以上面全部使用 x 來代替了 為提高利用率,乙太網的引數 a 的值應當儘可能小些 對乙太網引數 a 的要求是: - 當資料率一定時,乙太網的連線的長度受到限制,否則 x 的數值會太大 - 乙太網的幀長不能太短,否則 T0 的值會太小,使 a 值太大 ### (2) 通道利用率的最大值 Smax 在理想化的情況下,乙太網上的各站傳送資料都不會產生碰撞(這顯然已經不是 CSMA/CD,而是需要使用一種特殊的排程方法),即匯流排一旦空閒就有某一個站立即傳送資料 傳送一幀佔用線路的時間是 T0 + x ,而幀本身的傳送時間是 T0。於是,我們可計算出理想情況下的極限通道利用率 Smax 為: ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b3d90abcd12d4c319e8283024ae913c9~tplv-k3u1fbpfcp-zoom-1.image) - 只有當引數 a 遠小於 1 才能得到儘可能高的極限通道利用率 - 據統計,當乙太網的利用率達到 30% 時就已經處於過載的情況。很多的網路容量被網上的碰撞消耗掉了 ## (五) 乙太網的 MAC 層 在區域網中,硬體地址又稱為實體地址,或 MAC 地址。 802 標準所說的“地址”嚴格地講應當是每一個站的“名字”或識別符號。 ### (1) MAC地址組成 - IEEE 802 標準規定 MAC 地址欄位可採用 6 位元組 ( 48位) 或 2 位元組 ( 16 位) 這兩種中的一種 - IEEE 的註冊管理機構 RA 負責向廠家分配地址欄位 6 個位元組中的前三個位元組 (即高位 24 位),稱為組織唯一識別符號 - 地址欄位 6 個位元組中的後三個位元組 (即低位 24 位) 由廠家自行指派,稱為擴充套件唯一識別符號,**必須保證生產出的介面卡沒有重複地址** ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b8bd2562fdad46e586b5310d9ee2afeb~tplv-k3u1fbpfcp-zoom-1.image) - 一個地址塊可以生成 224 個不同的地址。這種 48 位地址稱為 MAC-48,它的通用名稱是 EUI-48 - 生產介面卡時,6 位元組的 MAC 地址已被固化在介面卡的 ROM,因此,MAC 地址也叫做硬體地址 (hardware address) 或實體地址 - “MAC 地址”實際上就是介面卡地址或介面卡識別符號 EUI-48 ### (2) 介面卡檢查MAC 所有的介面卡都至少能夠識別前兩種幀,即能夠識別**單播地址和廣播地址** 以混雜方式 (promiscuous mode) 工作的乙太網介面卡只要**“聽到”有幀在乙太網上傳輸就都接收下來** ### (3) MAC 幀的格式 常用的乙太網 MAC 幀格式有兩種標準: - DIX Ethernet V2 標準(常用) - IEEE 的 802.3 標準 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2734343de8f04206b9e7f37302b382ab~tplv-k3u1fbpfcp-zoom-1.image) - 型別欄位用來標誌上一層使用的是什麼協議,以便把收到的 MAC 幀的資料上交給上一層的這個協議 - 資料欄位的正式名稱是 MAC 客戶資料欄位,最小長度 64 位元組 - 18 位元組的首部和尾部 = 資料欄位的最小長度(46位元組) - 當資料欄位的長度小於 46 位元組時,應在資料欄位的後面加入整數字節的填充欄位,以保證乙太網的 MAC 幀長不小於 64 位元組 - 在幀的前面插入(硬體生成)的 8 位元組中,第一個欄位共 7 個位元組,是前同步碼,用來迅速實現 MAC 幀的位元同步。第二個欄位 1 個位元組是幀開始定界符,表示後面的資訊就是 MAC 幀。 **無效的 MAC 幀** - 資料欄位的長度與長度欄位的值不一致 - 幀的長度不是整數個位元組 - 用收到的幀檢驗序列 FCS 查出有差錯 - 資料欄位的長度不在 46 ~ 1500 位元組之間 - 有效的 MAC 幀長度為 64 ~ 1518 位元組之間 # 四 擴充套件的乙太網 ## (一) 在物理層擴充套件乙太網 **使用光纖擴充套件** - 主機使用光纖(通常是一對光纖)和一對光纖調變解調器連線到集線器。 - 很容易使主機和幾公里以外的集線器相連線 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6ddbad5731cd47ec921bbf2bfd7d72ed~tplv-k3u1fbpfcp-zoom-1.image) **使用集線器擴充套件**:將多個乙太網段連成更大的、多級星形結構的乙太網 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1917ecd7abac4890ae528c5085f0a1be~tplv-k3u1fbpfcp-zoom-1.image) **優點** - 使原來屬於不同碰撞域的乙太網上的計算機能夠進行跨碰撞域的通訊 - 擴大了乙太網覆蓋的地理範圍 **缺點** - 碰撞域增大了,但總的吞吐量並未提高 - 如果不同的碰撞域使用不同的資料率,那麼就不能用集線器將它們互連起來 **補充** - 碰撞域(collision domain)又稱為衝突域,是指網路中一個站點發出的幀會與其他站點發出的幀產生碰撞或衝突的那部分網路 碰撞域越大,發生碰撞的概率越高 ## (二) 在資料鏈路層擴充套件乙太網 擴充套件乙太網更常用的方法是在資料鏈路層進行 早期使用網橋,現在使用乙太網交換機 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/67b3db3463464bca8a4b5b2d11988ed8~tplv-k3u1fbpfcp-zoom-1.image) - 網橋工作在資料鏈路層 - 它根據 MAC 幀的目的地址對收到的幀進行轉發和過濾 - 當網橋收到一個幀時,並不是向所有的介面轉發此幀,而是先檢查此幀的目的 MAC 地址,然後再確定將該幀轉發到哪一個介面,或把它丟棄 ### (1) 以太交換機的特點 - 乙太網交換機實質上就是一個都有十幾個或更多的介面 - 通常都有十幾個或更多的介面 - 每個介面都直接與一個單臺主機或另一個乙太網交換機相連,並且一般都**工作在全雙工方式** - 乙太網交換機**具有並行性** - 能同時連通多對介面,使多對主機能同時通訊 ### (2) 交換機的交換方式 **儲存轉發方式** - 把整個資料幀先快取後再進行處理。 **直通 (cut-through) 方式** - 接收資料幀的同時就**立即按資料幀的目的 MAC 地址決定該幀的轉發介面,因而提高了幀的轉發速度。** - 缺點是它不檢查差錯就直接將幀轉發出去,因此**有可能也將一些無效幀轉發給其他的站**。 總結: 乙太網交換機執行**自學習演算法自動維護交換表** - 交換機收到一幀後先進行自學習。查詢交換表中與收到幀的源地址有無相匹配的專案。 - 如沒有,就在交換表中增加一個專案(源地址、進入的介面和有效時間)。 - 如有,則把原有的專案進行更新(進入的介面或有效時間)。 - 轉發幀。查詢交換表中與收到幀的目的地址有無相匹配的專案。 - 如沒有,則向所有其他介面(進入的介面除外)轉發。 - 如有,則按交換表中給出的介面進行轉發。 - 若交換表中給出的介面就是該幀進入交換機的介面,則應丟棄這個幀(因為這時不需要經過交換機進行轉發)。 **乙太網交換機的這種自學習方法使得乙太網交換機能夠即插即用,不必人工進行配置,因此非常方便。** ## (三) 虛擬區域網 利用乙太網交換機可以很方便地實現虛擬區域網 VLAN (Virtual LAN) IEEE 802.1Q 對虛擬區域網 VLAN 的定義: - 虛擬區域網 VLAN 是由一些區域網網段構成的與物理位置無關的邏輯組,而這些網段具有某些共同- 的需求。每一個 VLAN 的幀都有一個明確的識別符號,指明發送這個幀的計算機是屬於哪一個 VLAN 虛擬區域網其實只是區域網給使用者提供的一種服務,而並不是一種新型區域網 由於虛擬區域網是使用者和網路資源的邏輯組合,因此可按照需要將有關裝置和資源非常方便地重新組合,使使用者從不同的伺服器或資料庫中存取所需的資源 ![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f555d224921e46d0ad2d144e0c8d1eb7~tplv-k3u1fbpfcp-zoom-1.image) - 10 臺計算機劃分為三個虛擬區域網: VLAN1, VLAN2 和 VLAN3 - 每個虛擬區域網是一個廣播域,VLAN1, VLAN2 和 VLAN3 是三個不同的廣播域 - 當 B1 向 VLAN2 工作組內成員傳送資料時,工作站 B2 和 B3 將會收到其廣播的資訊 - B1 傳送資料時,VLAN1 和 VLAN3 中的工作站 A1,A2 和 C1 等都不會收到 B1 發出的廣播資訊 - 虛擬區域網限制了接收廣播資訊的工作站數,使得網路不會因傳播過多的廣播資訊 (即“廣播風暴”) 而引起效能惡化。 **虛擬區域網(VLAN)技術具有以下主要優點:** - 改善了效能 - 簡化了管理 - 降低了成本 - 改善了安全性 # 五 PPPoE - PPPoE (PPP over Ethernet) 的意思是“在乙太網上執行 PPP”,它把 PPP 協議與乙太網協議結合起來 —— 將 PPP 幀再封裝到乙太網中來傳輸 - 現在的光纖寬頻接入 FTTx 都要使用 PPPoE 的方式進行接入。在 PPPoE 彈出的視窗中鍵入在網路運營商購買的使用者名稱和密碼,就可以進行寬頻上網了 - 利用 ADSL 進行寬頻上網時,從使用者個人電腦到家中的 ADSL 調變解調器之間,也是使用 RJ-45 和 5 類線(即乙太網使用的網線)進行連線的,並且也是使用 PPPoE 彈出的視窗進行撥號