數(shù)據(jù)鏈路層使用的信道主要有一下兩種類型
-
點(diǎn)對(duì)點(diǎn)信道
- 這種信道使用一對(duì)一的點(diǎn)對(duì)點(diǎn)通信方式。
-
廣播信道
- 這種信道主要是用一對(duì)多的廣播通信方式。
從整個(gè)互聯(lián)網(wǎng)上來(lái)看,局域網(wǎng)中仍然屬于數(shù)據(jù)鏈路層的范圍。
-
本章最主要的知識(shí)點(diǎn)
熟路鏈路層的點(diǎn)對(duì)點(diǎn)信道和廣播信道的特點(diǎn),以及這兩種信道使用的協(xié)議PPP協(xié)議和CSMA/CD協(xié)議的特點(diǎn)
-
數(shù)據(jù)鏈路層的三個(gè)基本問(wèn)題
封裝成幀
透明傳輸
差錯(cuò)檢測(cè)
以太網(wǎng)MAC層的硬件地址
適配器,轉(zhuǎn)發(fā)器,集線器,網(wǎng)橋,以太網(wǎng)交換機(jī)的作用以及使用場(chǎng)合。
-
我們觀察一下兩臺(tái)主機(jī)通過(guò)互聯(lián)網(wǎng)進(jìn)行通信時(shí)數(shù)據(jù)鏈路層所處的地位
圖片.png圖3-1(a)表示主機(jī)H1通過(guò)電話線上網(wǎng),中間經(jīng)過(guò)三個(gè)路由器(R1,R2,R3)連接到遠(yuǎn)程主機(jī)H2,所經(jīng)過(guò)的網(wǎng)絡(luò)是多種的,如電話網(wǎng),局域網(wǎng),廣域網(wǎng)等。當(dāng)主機(jī)H1向主機(jī)H2發(fā)送數(shù)據(jù)時(shí),從協(xié)議的層次上來(lái)看,數(shù)據(jù)流動(dòng)如圖3-2(b)所示,主機(jī)H1和主機(jī)H2都有完整的五層協(xié)議棧,單路由器在轉(zhuǎn)發(fā)分組時(shí)使用的協(xié)議棧只有下面三層。數(shù)據(jù)進(jìn)入路由器后要先從物理層上到網(wǎng)絡(luò)層,在轉(zhuǎn)發(fā)表中找到下一跳地址后,再下到物理層轉(zhuǎn)發(fā)出去。當(dāng)我們專注于研究數(shù)據(jù)鏈路層的問(wèn)題時(shí),我們可以這樣研究
H1的鏈路層->R1的鏈路層->R2的鏈路層->R3的鏈路層->H2的鏈路層。
使用點(diǎn)對(duì)點(diǎn)信道的數(shù)據(jù)鏈路層
鏈路指的是從一個(gè)結(jié)點(diǎn)到相鄰結(jié)點(diǎn)的一段物理線路(有線或無(wú)線)
數(shù)據(jù)鏈路:當(dāng)在一條線路上傳輸數(shù)據(jù)時(shí),除了必須要有一條物理線路外,還必須要有一些必要的通信協(xié)議來(lái)控制數(shù)據(jù)的傳輸,若把實(shí)現(xiàn)這些協(xié)議的硬件和軟件加到鏈路上。就構(gòu)成了數(shù)據(jù)鏈路?,F(xiàn)在最常用的就是網(wǎng)絡(luò)適配器來(lái)實(shí)現(xiàn)這些協(xié)議。
-
點(diǎn)對(duì)點(diǎn)信道的數(shù)據(jù)鏈路層協(xié)議:幀
數(shù)據(jù)鏈路層把把網(wǎng)絡(luò)層交下來(lái)的數(shù)據(jù)構(gòu)成幀發(fā)送到鏈路上,以及把接收到的幀中的數(shù)據(jù)取出并上交給網(wǎng)絡(luò)層。
在網(wǎng)絡(luò)層中,網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元就是IP數(shù)據(jù)報(bào)。
-
數(shù)據(jù)鏈路層通信圖
- 圖片.png
點(diǎn)對(duì)點(diǎn)信道的數(shù)據(jù)鏈路層在進(jìn)行通信時(shí)的主要步驟如下
結(jié)點(diǎn)A的數(shù)據(jù)鏈路層把網(wǎng)絡(luò)層交下來(lái)的IP數(shù)據(jù)報(bào)文添加首部和尾部封裝成幀。
結(jié)點(diǎn)A把封裝好的幀發(fā)送給結(jié)點(diǎn)B的數(shù)據(jù)鏈路層
若結(jié)點(diǎn)B的數(shù)據(jù)鏈路層接收到的幀無(wú)差錯(cuò)則從接收到的幀提取出IP數(shù)據(jù)報(bào)上交給網(wǎng)絡(luò)層;否則丟棄這個(gè)幀。
-
三個(gè)基本問(wèn)題:封裝成幀,透明傳輸,差錯(cuò)檢測(cè)
-
封裝成幀
封裝成幀是在一段數(shù)據(jù)的前后分別加上首部和尾部,這樣就構(gòu)成了一個(gè)幀。接收端結(jié)接收到物理層上交的比特流后,就能根據(jù)手部和尾部的標(biāo)記,會(huì)從比特流中識(shí)別到幀的開始和幀的結(jié)束。
如圖就是一個(gè)添加幀首和幀尾封裝成幀
- 圖片.png
我們知道,分組交換的的一個(gè)重要概念就是:所有在互聯(lián)網(wǎng)上傳送的數(shù)據(jù)都是以IP數(shù)據(jù)報(bào)文為傳送單位,網(wǎng)絡(luò)層的IP數(shù)據(jù)報(bào)傳送到數(shù)據(jù)鏈路層就成為了幀的數(shù)據(jù)部分。在幀的數(shù)據(jù)部分的前部和后部分別加上首部和尾部,就構(gòu)成了一個(gè)完整的幀。這樣的幀就是數(shù)據(jù)鏈路層的數(shù)據(jù)傳送單元。
一個(gè)幀的長(zhǎng)度等于數(shù)據(jù)部分的長(zhǎng)度+幀首+幀尾的長(zhǎng)度,首部和尾部的重要作用就是幀定界(確定幀的界限)。
在發(fā)送幀的時(shí)候,是從幀的首部開始送的。各種數(shù)量居鏈路層協(xié)議都要對(duì)幀首部和幀尾部的格式都有明確的規(guī)定。為了提高幀的傳輸效率,應(yīng)該使幀的數(shù)據(jù)部分盡可能的大于幀的首部和尾部的長(zhǎng)度。但是呢,每一種數(shù)據(jù)鏈路層協(xié)議都規(guī)定了所能傳送的幀的數(shù)據(jù)部分長(zhǎng)度上限------最大傳輸單元MTU。如圖給出了MTU與幀的數(shù)據(jù)部分和幀的首部和尾部的關(guān)系。
- 圖片.png
幀首部使用SOH(start of head)十六進(jìn)制編碼01作為幀的開始控制字符,幀尾部使用EOT(end of transmission)十六進(jìn)制編碼04作為幀的結(jié)束控制字符。
-
透明傳輸
由于幀的開始和結(jié)束標(biāo)記會(huì)用專門的控制字符,因此,所傳輸?shù)臄?shù)據(jù)中的任何8比特組合一定不允許使用作為幀定界的控制字符比特編碼一樣,否則會(huì)出現(xiàn)幀定界錯(cuò)誤。
當(dāng)我們不管在鍵盤上輸入什么字符都可以放單幀上傳輸,因此這樣的傳輸就是透明傳輸。
但是當(dāng)數(shù)據(jù)并不是鍵盤上普通的ASCII碼時(shí)候,而是例如像二進(jìn)制代碼或者圖像,音樂(lè)等數(shù)據(jù)流時(shí),情況就有可能變得不一樣,如果數(shù)據(jù)中的某個(gè)字節(jié)的二進(jìn)制比特剛好和幀定界符的控制字符SOH(01)或者EOS(04)重合,如圖數(shù)據(jù)鏈路層可能會(huì)錯(cuò)誤的找到幀界定符。這樣的錯(cuò)誤傳輸情況顯然并不是透明傳輸。
- 圖片.png
為了解決透明傳輸問(wèn)題,就必須設(shè)法使數(shù)據(jù)中可能出現(xiàn)的控制字符SOH,EOT在接收端不被解釋為控制字符,具體的方法是:發(fā)送端的數(shù)據(jù)鏈路層如果在數(shù)據(jù)傳輸中出現(xiàn)SOH或者EOT,就在前面插入一個(gè)轉(zhuǎn)義字符ESC(十六進(jìn)制編碼為1B),而且在接收端刪除這個(gè)轉(zhuǎn)義字符,這樣的方法稱之為字節(jié)填充或者是字符填充。如圖所示
- 圖片.png
-
-
差錯(cuò)檢測(cè)
* 現(xiàn)實(shí)中的通信鏈路都是不理想的。也就是說(shuō),比特在傳輸?shù)倪^(guò)程當(dāng)中,可能1會(huì)變成0,0或者變成1,這就叫做比特差錯(cuò)
* 在一段時(shí)間內(nèi),傳輸錯(cuò)誤的比特總數(shù)占傳輸所有比特總數(shù)的比值,稱之為誤碼率
* 因此呢,在計(jì)算機(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)的時(shí)候,必須采用各種校驗(yàn),在數(shù)據(jù)鏈路層廣泛的采用了CRC循環(huán)冗余檢驗(yàn)技術(shù)。
* 在接收端對(duì)收到的每一幀經(jīng)過(guò)CRC檢驗(yàn)后,會(huì)有以下兩種情況
* 若得出余數(shù)為0,就判定這個(gè)幀沒(méi)有出現(xiàn)差錯(cuò),接受
* 若得到余數(shù)不為0,則判斷這個(gè)幀有差錯(cuò)(但是并不知道哪里錯(cuò)了),丟棄
* 在數(shù)據(jù)鏈路層,發(fā)送端幀檢測(cè)序列FCS的生成和接收端的CRC檢驗(yàn)都是硬件完成的,因此處理速度很快并不會(huì)影響數(shù)據(jù)的傳輸。
* 數(shù)據(jù)鏈路層不使用確認(rèn)和重傳機(jī)制,也就是不要求數(shù)據(jù)鏈路層向上冊(cè)提供可靠服務(wù),如果在數(shù)據(jù)鏈路層傳輸數(shù)據(jù)出現(xiàn)了錯(cuò)誤,那么交給上層去解決,數(shù)據(jù)鏈路層都是不可靠的傳輸協(xié)議





