計算機網絡 -- 數據鏈路層

數據鏈路層的功能:

(1) 鏈路管理:鏈路的簡歷、維持和釋放
(2) 幀定界
(3) 流量控制
(4) 差錯控制
(5) 將數據和控制信息區分開來
(6) 透明傳輸
(7) 尋址:每一幀都能找到目的站web

數據鏈路層的通訊信道:

  1. 點對點信道:一對一進行通訊
  2. 廣播通訊:一對多的通訊方式

重要的三個概念:

  1. 物理鏈路:兩個結點的一段物理線路,中間沒有任何的交換結點。鏈路是 一條路徑的組成部分。
  2. 邏輯鏈路:物理鏈路 + 必要的通訊協議的實現硬件和軟件
  3. 幀:點對點信道的數據鏈路層的協議數據單位。

通訊的步驟:

這三個步驟,也體現了數據鏈路層的基本問題。
一、封裝成幀:將網絡層交付的IP數據報添加首部和尾部。(封裝成幀)
二、發送:將封裝好的幀進行發送(透明傳輸)
三、接收分析:檢驗接收到的幀是否有差錯,若無,提取IP數據報,提交上層網絡層,若是有錯,丟棄幀。(差錯檢測)算法

封裝成幀:

將上層的數據按照幀協議的最大傳輸單元(mtu) + 幀頭(有控制字符soh,十六進制編碼爲01)和幀尾(有控制字符eof,十六進制編碼爲04)(這二者還有一個幀定界的做用)網絡

透明傳輸:

在文本文件傳輸的狀況下,任何8比特的組合不會出現幀定界符的編碼同樣的狀況;無論鍵盤輸入什麼字均可以放在幀中傳輸。問題,在非ASCII文件中萬一在數據段出現了幀的控制字符,傳輸過程當中接受數據被提早結束怎麼辦?
解決方法:字符填充(字節填充),發送端的數據鏈路層在數據中出現的控制字符前插入一個轉義字符esc(十六進制爲1b)。在接收端的數據鏈路層在發往網絡層的時候刪除這個插入的轉義字符。
異步

差錯檢查:

比特差錯:0變1,1變0
誤碼率:在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率稱爲誤碼率(ber)。
循環冗餘檢查(crc):在數據鏈路層使用的檢錯技術。svg

現假設選擇的CRC生成多項式爲G(X) = X4 + X3 + 1,要求出二進制序列10110011的CRC校驗碼。下面是具體的計算過程:
(1)首先把生成多項式轉換成二進制數,由G(X) = X4 + X3 + 1能夠知道(,它一共是5位(總位數等於最高位的冪次加1,即4+1=5),而後根據多項式各項的含義(多項式只列出二進制值爲1的位,也就是這個二進制的第4位、第3位、第0位的二進制均爲1,其它位均爲0)很快就可獲得它的二進制比特串爲11001。
(2)由於生成多項式的位數爲5,根據前面的介紹,得知CRC校驗碼的位數爲4(校驗碼的位數比生成多項式的位數少1)。由於原數據幀10110011,在它後面再加4個0,獲得101100110000,而後把這個數以「模2除法」方式除以生成多項式,獲得的餘數(即CRC碼)爲0100,如圖5-10所示。注意參考前面介紹的「模2除法」運算法則。

(3)把上步計算獲得的CRC校驗0100替換原始幀101100110000後面的四個「0」,獲得新幀101100110100。再把這個新幀發送到接收端。
(4)當以上新幀到達接收端後,接收端會把這個新幀再用上面選定的除數11001以「模2除法」方式去除,驗證餘數是否爲0,若是爲0,則證實該幀數據在傳輸過程當中沒有出現差錯,不然出現了差錯。測試

ppp協議

PPP(點到點協議)是爲在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操做,並按照順序傳遞數據包。設計目的主要是用來經過撥號或專線方式創建點對點鏈接發送數據,使其成爲各類主機、網橋和路由器之間簡單鏈接的一種共通的解決方案。編碼

功能:

鏈路控制
  PPP爲用戶發起呼叫以創建鏈路;在創建鏈路時協商參數選擇;通訊過程當中隨時測試線路,當線路空閒時釋放鏈路等。PPP中完成上述工做的組件是鏈路控制協議。操作系統

LCP(Link Control Protocol,LCP)。
網絡控制
  當LCP將鏈路創建好了之後,PPP要開始根據不一樣用戶的須要,配置上層協議所需的環境。PPP使用網絡控制協議NCP(Network Control Protocol,NCP)來爲上層提供服務接口。針對上層不一樣的協議類型,會使用不一樣的NCP組件。如對於IP提供IPCP接口,對於IPX提供IPXCP接口,對於APPLETALK提供ATCP接口等。設計

組成部分:

一、將IP數據報封裝到串行鏈路的方法,即支持異步鏈路,也支持面向比特的同步鏈路。
二、一個用來簡歷、配置 和測試數據鏈路鏈接的鏈路控制協議LCP。
三、一套網絡控制協議NCP。3d

幀格式:

PPP幀的首部爲四個字段,尾部爲兩個字段;

首部的第一個字段和尾部的第二個字段都是十六進制的0x7E,標誌字段表示一個幀的開始或者結束,標誌字段也是PPP幀的定界符,連兩個幀之間只要一個定界符,若是連續出現兩個定界符,則表示是空串。

PPP首部的第四個字段是2個字節的協議字段。當協議字段爲0x0021時,PPP幀的信息字段就是IP數據報;若爲0Xc021,則信息字段是PPP鏈路控制協議LCP的數據;而0x8021表示這是網絡層的控制數據。

數據完整:

字節填充:

當信息字段出現和標誌字段同樣的比特,將採用字節填充的方式避免出現歧義。
一、信息字段出現的每一個0x7E轉換===>爲0x7D和0x5E,
二、信息字段出現的0x7D轉換====>爲0x7D和0x5D
三、小於0x20的控制字符,添加0x7D。

零比特填充法:

每出現5個連續的1,當即填入一個0。

PPP回話的四個階段

既然要對PPP協議詳解,那麼確定須要對PPP協議的四個階段進行了解了。一次完整的PPP回話過程包括四個階段: 鏈路創建階段、肯定鏈路質量階段、網絡層控制協議階段和鏈路終止階段(如圖2所示)。

PPP回話過程包括四個階段

(1) 鏈路創建階段:PPP通訊雙方用鏈路控制協議交換配置信息,一旦配置信息交換成功,鏈路即宣告創建。配置信息一般都使用默認值,只有不依賴於網絡控制協議的配置選項纔在此時由鏈路控制協議配置。值得注意的是,在鏈路創建的過程當中,任何非鏈路控制協議的包都會被沒有任何通告地丟棄。

(2) 鏈路質量肯定階段:這個階段在某些文獻中也稱爲鏈路認證階段。鏈路控制協議負責測試鏈路的質量是否能承載網絡層的協議。在這個階段中,鏈路質量測試是PPP協議提供的一個可選項,也可不執行。同時,若是用戶選擇了驗證協議,驗證的過程將在這個階段完成。PPP支持兩種驗證協議:密碼驗證協議(PAP)和握手鑑權協議(CHAP)。

(3) 網絡層控制協議階段:PPP會話雙方完成上述兩個階段的操做後,開始使用相應的網絡層控制協議配置網絡層的協議,如:IP、IPX等。

(4) 鏈路終止階段:鏈路控制協議用交換鏈路終止包的方法終止鏈路。引發鏈路終止的緣由不少:載波丟失、認證失敗、鏈路質量失敗、空閒週期定時器期滿或管理員關閉鏈路等。

局域網的拓撲:

分類:星形網,環形網,總線網,樹形網

共享信道的劃分:

一、靜態劃分信道:頻分,時分,波分,碼分等,一旦分配到信道就不會與其餘用戶衝突。
二、動態媒體接入控制:
隨機接入:全部用戶隨機發送信息,會出現碰撞的現象。
受控接入:用戶服從控制,輪詢地發送信息。

適配器的做用:

進行串行\並行的轉換;對數據進行緩衝;在計算機操做系統安裝驅動設備;實現以太網協議

CSMA/CD:

載波監聽多點接入/碰撞檢測。一個站不能同時進行發送和接收,所以,不能進行全雙工通訊而進行雙向交替通訊(半雙工通訊)

MAC地址:

實際是適配器地址或適配器標識符EUI-48,有兩個字節的也有6個字節的,目前使用的是6個字節的。全球由IEEE的註冊管理機構RA(局域網全球地址法定管理機構)負責分配地址字段的6個字節中的前三個字節(也叫地址塊,也叫組織惟一標識符OUI,一般也叫公司標示符);通常後面的三個字節由廠家來進行分配,也叫作擴展標示符;一個地址塊能夠有2的24次方個不一樣的地址,這種地址也叫作MAC-48(通用簡寫EUI-48,英文爲擴展的惟一標識)

例題:

eg1:
一個PPP幀的數據部分(用十六進制寫出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。試問真正的數據是什麼??
解:
根據:字節填充的法則,能夠獲得:
具體的作法是將信息字段中出現的每個0x7E字節轉變成2字節序列(0x7D,0x5E)。若信息字段中出現一個0x7D的字節,則將其轉變成2字節序列(0x7D,0x5D)。若信息字段中出現ASCII碼的控制字符,則在該字符前面要加入一個0x7D字節。這樣作的目的是防止這些表面上的ASCII碼控制字符被錯誤地解釋爲控制字符。

真正的16進制數據是7E FE 27 7D 7D 65 7E

eg2:
假定1KM長的CSMA/CD協議網絡的數據率爲1Gb/s。設信號在網絡上的傳播速率爲200000KM/S。求可以使用此協議的最短幀長??
解:
對於 1km 電纜,單程傳播時間爲1÷200000=5×,即5us,來回路程傳播時間爲10us。爲了可以按照CSMA/CD工做,最小幀的發射時間不能小於10us。以1Gb/s速率工做,10us能夠發送的比特數等於:

10x10的-6次方/1x10的-9次方 = 10000,所以,最短幀是10000 位或 1250 字節長。

all