一、封裝成幀
封裝成幀就是在一段數(shù)據(jù)的前后分別添加首部和尾部,這樣就構(gòu)成了一個(gè)幀。接收端在收到物理層上交的比特流后,就能根據(jù)首部和尾部的標(biāo)記,從比特流中識(shí)別幀的開(kāi)始和結(jié)束。
首部和尾部的一個(gè)重要作用就是進(jìn)行幀定界(即確定幀的界限)。此外,首部和尾部還包括許多必要的控制信息。 為了提高幀的傳輸效率,應(yīng)當(dāng)使幀的數(shù)據(jù)部分長(zhǎng)度盡量大于首部和尾部的長(zhǎng)度。最大傳輸單元MTU:幀數(shù)據(jù)部分長(zhǎng)度上限。
當(dāng)數(shù)據(jù)是由可打印的ASCII碼組成的文本文件時(shí),幀定界可以使用特殊的幀定界符。ASCII碼是7位編碼,一共可以組合成128個(gè)不同的ASCII碼,其中可打印的有95個(gè),而不可打印的控制字符有33個(gè)。(可打印的字符就是可以在鍵盤(pán)上輸入的字符,我們使用的標(biāo)準(zhǔn)鍵盤(pán)有47個(gè)鍵可輸入94個(gè)字符,包括使用shift鍵,加上空格鍵,一共可以輸入95個(gè)可打印字符)
控制字符SOH放在一幀的最前面,表示幀的首部開(kāi)始。另一個(gè)控制字符EOT表示幀的結(jié)束。注意:SOH和EOT都只是控制字符的名稱(chēng),他們的十六進(jìn)制編碼分別是01(二進(jìn)制是00000001)和04(二進(jìn)制是00000100)。SOH,EOT 并不是S O H E O T這幾個(gè)字符,只是名字而已。當(dāng)傳輸中出現(xiàn)差錯(cuò),幀定界符的作用更加明顯。假設(shè)未發(fā)送完一個(gè)幀而發(fā)生故障,接收端就知道收到的數(shù)據(jù)是不完整的幀(只有首部),必須丟棄。
二、透明傳輸
當(dāng)傳送的幀是用文本文件組成的幀時(shí)(文本文件中的字都是從鍵盤(pán)上輸入的),其數(shù)據(jù)部分顯然不會(huì)出現(xiàn)像SOH或EOT這樣的幀定界控制字符??梢?jiàn)不管從鍵盤(pán)上輸入什么字符都可以放在這樣的幀中傳輸過(guò)去,因此這樣的傳輸就是透明傳輸。
但當(dāng)數(shù)據(jù)部分是非ASCII碼的文本文件時(shí)(如二進(jìn)制代碼的計(jì)算機(jī)程序或者圖像等),情況就不同了。如果數(shù)據(jù)中的某個(gè)字節(jié)的二進(jìn)制代碼恰好和SOH或EOT這種控制字符一樣,數(shù)據(jù)鏈路層就好錯(cuò)誤地“找到幀的邊界”,把部分幀收下(誤以為是個(gè)完整的幀),而把剩下的那部分?jǐn)?shù)據(jù)丟棄(這部分找不到幀定界控制字符SOH)。這種情況就不是透明傳輸,因?yàn)楫?dāng)遇到書(shū)中碰巧出現(xiàn)字符“EOT”時(shí)就傳不過(guò)去了,而其后面的數(shù)據(jù)因找不到“SOH”被接收端當(dāng)做無(wú)效幀而丟棄。但實(shí)際上數(shù)據(jù)中出現(xiàn)的字符“EOT”并非控制字符而僅僅是二進(jìn)制數(shù)據(jù)00000100 。
為了解決透明傳輸問(wèn)題,字節(jié)填充法或字符填充:在控制字符SOH、EOT的前面插入一個(gè)轉(zhuǎn)義字符ESC(其十六進(jìn)制編碼是1B,二進(jìn)制是00011011)。而接收端的數(shù)據(jù)鏈路層在把數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除這個(gè)插入的轉(zhuǎn)義字符。
三、差錯(cuò)檢測(cè)
現(xiàn)實(shí)的通信鏈路都不會(huì)是理想的。傳輸過(guò)程中,1可能變成0, 0 可能變成1 。這就叫比特差錯(cuò)——誤碼率。 誤碼率和信噪比有很大的關(guān)系。因此,在計(jì)算機(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí),必須采用各種差錯(cuò)控制技術(shù)。目前在數(shù)據(jù)鏈路層廣泛使用了循環(huán)冗余檢驗(yàn)(CRC)的檢錯(cuò)技術(shù)。
在數(shù)據(jù)鏈路層的CRC檢驗(yàn)都是用硬件完成的,處理很迅速,因此不會(huì)延誤數(shù)據(jù)的傳輸。為什么數(shù)據(jù)鏈路層要以幀為單位來(lái)傳送數(shù)據(jù)呢?因?yàn)槿绻灰詭瑸閱挝?,就無(wú)法加入冗余碼來(lái)進(jìn)行差錯(cuò)檢驗(yàn)。傳輸差錯(cuò)分為兩類(lèi):一類(lèi)就是前面所說(shuō)的最基本的比特差錯(cuò)。第二類(lèi):收到的幀出現(xiàn)了幀丟失、幀重復(fù)和幀失序。(停止等待協(xié)議,ARQ)。數(shù)據(jù)鏈路層并不需要給網(wǎng)絡(luò)層提供“可靠傳輸”的服務(wù)。過(guò)去OSI的觀點(diǎn)是:必須讓數(shù)據(jù)鏈路層向上提供可靠傳輸。因此在CRC的基礎(chǔ)上,增加了幀編號(hào)、確認(rèn)和重傳機(jī)制。
-
數(shù)據(jù)鏈路層
+關(guān)注
關(guān)注
0文章
61瀏覽量
12193
發(fā)布評(píng)論請(qǐng)先 登錄
nvme IP開(kāi)發(fā)之PCIe上
如何使用ZPS-CANFD觀察CAN數(shù)據(jù)鏈路層的工作過(guò)程

Linux系統(tǒng)中最重要的三個(gè)命令
工業(yè)以太網(wǎng)中的數(shù)據(jù)鏈路層與工業(yè)交換機(jī)的關(guān)鍵作用

PCIE數(shù)據(jù)鏈路層架構(gòu)解析

簡(jiǎn)述光刻工藝的三個(gè)主要步驟
自動(dòng)發(fā)電控制系統(tǒng)具有三個(gè)基本功能
CAN總線協(xié)議的數(shù)據(jù)鏈路層有哪些部分
基本理想電路元件的三個(gè)特征是什么
對(duì)稱(chēng)三相電壓的特點(diǎn)是哪三個(gè)方面
簡(jiǎn)述三極管的三個(gè)工作區(qū)域
可調(diào)變阻器三個(gè)引腳怎么區(qū)分
可調(diào)電阻三個(gè)腳各是什么
ADS7869電機(jī)控制前端,內(nèi)置三個(gè)模數(shù)轉(zhuǎn)換器(ADC)數(shù)據(jù)表

評(píng)論