1. 程式人生 > >計算機網路原理知識點(第三章:資料鏈路層)

計算機網路原理知識點(第三章:資料鏈路層)

**

第三章: 資料鏈路層

**

1. 概要:

 從這章開始, 內容會多了很多, 可能有一些難以理解, 這一章從區域網來理解比較到位和合適, 本章最主要的內容是PPP協議和CDMA協議, 以及什麼是MAC地址, 鏈路層的三個基本問題.

2. 基本名詞的理解

(1)鏈路: 指的是一條物理鏈路, 用來連線相連節點的線路. 

(2)資料鏈路: 指的是"物理鏈路"+"相關的通訊協議".

(3)幀: 資料鏈路層的協議資料單元.

(4)點對點通道: 一對一的點對點通訊方式.

(5)廣播通道: 一對多或者一對全的通訊方式. 

3. 三個基本問題

(1)封裝成幀: 分組交換是一個很重要的概念, 當網路層向資料鏈路層傳送下來的IP資料包的時候, 鏈路層要對其進行打包, 即所謂的封裝成幀. 要對其加上首部和尾部, 使其首尾部成為該幀的界定符, 首部為SOH(start of header),尾部為EOT(end of transmission).

(2)封裝成幀作用: 當資料傳輸出現差錯, 例如傳送不完全的幀, 當檢測到無EOT時, 就知道這個是不完整的幀, 要丟棄. 

(3)透明傳輸:  首先了解對這個詞的理解, 在鏈路層中表示: 透明傳輸是指不管所傳資料是什麼樣的位元組合,都應當能夠在鏈路上傳送。當所傳資料中的位元組合恰巧與某一個控制資訊完全一樣時,就必須採取適當的措施,使接收方不會將這樣的資料誤認為是某種控制資訊。這樣才能保證資料鏈路層的傳輸是透明的. (摘自百度百科).  通過百科的解釋, 我們要做的是"使接收方不會將這樣的資料誤認為是某種控制資訊"。所以我們要對界定符進行特殊處理: 可能在資料部分包含一個"EOT" , 從而可能錯誤以為是結束符. 然而實際並不是, 所以我們要在界定符的前面加上"ESC"轉義字元, 使得真正的"EOT" 能夠被正確認知. 

(4)差錯檢測: 現實傳輸資料時, 可能會遇到"位元差錯"的困境, 此時為了檢驗出錯誤, 我們設計出"迴圈冗餘檢驗CRC" 的檢驗差錯的方法. 在資料部分後新增"冗餘碼(FCS)" 來檢驗. 

(5)summary: 此三個基本問題都是為了保證資料鏈路層提供"可靠傳輸"的服務. 何為"可靠傳輸"的服務, 就是我們不檢驗這個資料部分的可靠性, 完整性等等, 資料鏈路層只保證當前傳輸的幀是無位元差錯, 且在資料鏈路層看來是一個完整的幀. 

4. 使用點對點通道的資料鏈路層

(1)PPP幀的格式:

這裡寫圖片描述

    1)F的標識欄位: 十六進位制7E的二進位制為01111110 , 表示一個幀的開始或結束, 因此F表示為一個幀的界定符.

    2)A的地址欄位和C的控制欄位 並沒有攜帶PPP幀的資訊.

    3)首部中的協議欄位有3層含義, 當欄位為0x0021時, 此資料包為IP資料報, 當欄位為0xC021時, 此資料報為LCP資料報文, 當欄位為0x8021時, 該資料報表示網路層的控制資料.

    4)尾部的FCS 就是CRC的FCS.


 (2)PPP協議的組成部分: 書P78頁描述到:

     1)一個將IP資料報封裝成幀到序列鏈路的方法.(IP資料報就是PPP幀中的資訊部分).

     2)一個用來建立, 配置, 測試資料鏈路連線的鏈路控制協議(LCP)

     3)一套網路控制協議(NCP), 用來支援不同網路層協議

(3)PPP資料幀的位元組填充

    1)當PPP使用非同步傳輸時: 書P79頁
    2)當PPP使用同步傳輸: 書P80頁

(4)PPP協議如何工作

    首先鏈路處於靜止狀態, 當用戶接入ISP並請求撥號時, 就建立了一條從電腦到當地ISP的物理連線. 進入鏈路建立狀態, 此時 LCP(鏈路控制協議) 開始協商配置選項, 此時個人電腦傳送一個LCP資料幀, 此幀包含特定的配置請求資訊, 當地ISP接受LCP幀後開始進行響應(1.配置確認幀 2.配置否認幀 3.配置拒絕幀), 若鑑別成功就進入網路層協議狀態. 此時PPP鏈路的兩段的NCP(網路控制協議), 根據不同協議而設定不同的網路控制分組, 以達到即使兩端的網路協議不一樣,但也能使用同一個PPP協議進行通訊, 當配置完成後, 就進入鏈路開啟的狀態. 當鏈路結束後, 其中一段執行中止請求LCP分組, 在對方收到該分組後, 轉到鏈路終止狀態. 

PPP協議工作原理
5. 使用廣播通道的資料鏈路層

(1)介面卡的作用: 首先計算機與外界網路連線是通過介面卡進行的. 介面卡又可稱為"網絡卡", 並且介面卡內裝有儲存器(ROM)和處理器(RAM), 可對外來資料進行處理和快取. 當安裝了此介面卡的驅動程式後, 該程式會告知介面卡從儲存器中的什麼位置把多長的資料塊傳送到外界or從儲存器中的什麼位置把外界的資訊儲存下來. 此外, 當介面卡遇到錯誤的幀時, 無需通知CPU 而自行丟棄該幀, 遇到正確幀再通知計算機交付給網路層. 當計算機要發信息到外界, 就將資訊送達到介面卡, 組裝成幀後傳送. 此外,介面卡還標記著該計算機的硬體地址, 此地址儲存在介面卡的ROM中. 

(2)CSMA/CD協議: 當一個主機進行廣播時, 資料幀的目的地址與區域網內某一主機的介面卡地址(MAC地址)匹配時, 該介面卡能接收改資料幀, 但是當同一時間又有另外一個主機廣播, 將會產生干擾. 所以需要載波監聽多點接入檢測(CSMA/CD)來解決此困擾.

(3)多點接入:說明這個是匯流排網路,讓計算機多點接入該網路.

(4)載波監聽: 不管在傳送前,還是傳送時, 都要檢測通道.如果遇到碰撞, 就停止

(5)碰撞檢測: 邊傳送邊監聽 通道上的訊號. 當已經有資料正在傳輸, 若自己的介面卡還發送或者接受, 就必須停止. 

(6)爭用期: 當傳輸一個數據所用時間為PI時, 爭用期為2*PI.

(7)當一個數據幀的長度太小時, P89頁 , 所以規定最小長度為64 位元組. 當小於64位元組,被視為無效幀而被迫中斷.

(8)強化碰撞: 當遇到碰撞時, 停止傳送資料並且傳送32or48bit的人為干擾訊號, 以便讓所有主機知道傳送了碰撞. 

(9)重傳次數:當一個數據幀遇到碰撞而發生停止傳輸時, 可在R倍512位元時段後(指數退避演算法)繼續重傳, 當經過16次重傳後任然失敗, 則丟棄該幀, 並彙報.

(10)summary: 介面卡獲得分組, 並封裝成幀, 傳送到快取. 此時進行通道檢測. 若為空閒狀態, 則傳送, 若為忙, 則一直等到空餘再發. 在發的同時, 也要進行通道檢測, 若在爭用期內無檢測到碰撞, 則此幀傳送成功, 若檢測到碰撞, 則執行指數退避演算法後,再重傳, 16次重傳後再失敗, 就丟棄該幀. 

(11)MAC層

    1)MAC幀分為 單播幀, 廣播幀, 多播幀.

    2)MAC地址又稱為硬體地址或者介面卡地址.

    3)MAC客戶資料規定長度為46-1500位元組. 加上幀的首部和尾部範圍為64-1518位元組.

4)MAC幀格式

前兩段位元組分別為源地址和目的地址, 第三個欄位為 型別欄位, 用來標誌上一層使用什麼協議,最後CRC是ECS的CRC.

這裡寫圖片描述

6. 乙太網交換機的自動學習功能

(1)例子: 有A(1)B(3)C(2)D(4)四臺計算機分別接入了Z這個交換機中.

(2)運作原理: 首先A向B發幀, 因為交換表內沒有資訊, 所以首先將A(1)記錄進交換表, 再廣播除1介面以外所有的計算機. 然後B向A發幀, 在路由表找到A的地址, 所以就將B(3)存進路由表, 併發給A一個數據幀, 後來C,D主機都要向其他主機發幀, 就這樣一步一步建立起來交換表, 可能過一段時間就更換裝置或者介面, 所以交換表存在一段時間後句要刪除並重新建立.