資源描述:
《第5講 CH1-數(shù)據(jù)鏈路層.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、1數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層主要解決兩臺相鄰機(jī)器之間實(shí)現(xiàn)可靠、有效的通信所涉及到的各種算法數(shù)據(jù)鏈路層使用的信道主要有以下兩種類型:點(diǎn)對點(diǎn)信道廣播信道2數(shù)據(jù)鏈路和幀鏈路(link)是一條無源的點(diǎn)到點(diǎn)的物理線路段,中間沒有任何其他的交換結(jié)點(diǎn)。一條鏈路只是一條通路的一個組成部分。數(shù)據(jù)鏈路(datalink)除了物理線路外,還必須有通信協(xié)議來控制這些數(shù)據(jù)的傳輸。若把實(shí)現(xiàn)這些協(xié)議的硬件和軟件加到鏈路上,就構(gòu)成了數(shù)據(jù)鏈路?,F(xiàn)在最常用的方法是使用適配器(即網(wǎng)卡)來實(shí)現(xiàn)這些協(xié)議的硬件和軟件。一般的適配器都包括了數(shù)據(jù)鏈路層和物理層這兩層的功能。3IP數(shù)據(jù)報1010……0110幀取出數(shù)據(jù)鏈路層網(wǎng)絡(luò)層鏈路結(jié)點(diǎn)A結(jié)點(diǎn)B
2、物理層數(shù)據(jù)鏈路層結(jié)點(diǎn)A結(jié)點(diǎn)B幀(a)(b)發(fā)送幀接收鏈路IP數(shù)據(jù)報1010……0110幀裝入數(shù)據(jù)鏈路層傳送的是幀4數(shù)據(jù)鏈路層像個數(shù)字管道常常在兩個對等的數(shù)據(jù)鏈路層之間畫出一個數(shù)字管道,而在這條數(shù)字管道上傳輸?shù)臄?shù)據(jù)單位是幀。早期的數(shù)據(jù)通信協(xié)議曾叫作通信規(guī)程(procedure)。因此在數(shù)據(jù)鏈路層,規(guī)程和協(xié)議是同義語。結(jié)點(diǎn)結(jié)點(diǎn)幀幀5糾錯碼Error-CorrectingCodes檢錯碼Error-DetectingCodes分組與幀的關(guān)系6提供給網(wǎng)絡(luò)層服務(wù)數(shù)據(jù)鏈路層協(xié)議的位置.71.封裝成幀封裝成幀(framing)就是在一段數(shù)據(jù)的前后分別添加首部和尾部,然后就構(gòu)成了一個幀。確定幀的界限。首部
3、和尾部的一個重要作用就是進(jìn)行幀定界。幀結(jié)束幀首部IP數(shù)據(jù)報幀的數(shù)據(jù)部分幀尾部?MTU數(shù)據(jù)鏈路層的幀長開始發(fā)送幀開始8用控制字符進(jìn)行幀定界的方法舉例SOH裝在幀中的數(shù)據(jù)部分幀幀開始符幀結(jié)束符發(fā)送在前EOT92.透明傳輸SOHEOT出現(xiàn)了“EOT”被接收端當(dāng)作無效幀而丟棄被接收端誤認(rèn)為是一個幀數(shù)據(jù)部分EOT完整的幀發(fā)送在前10解決透明傳輸問題發(fā)送時避免在幀內(nèi)數(shù)據(jù)出現(xiàn)EOT和SOH字節(jié)填充(bytestuffing),又稱字符填充(characterstuffing如果轉(zhuǎn)義字符ESC也出現(xiàn)數(shù)據(jù)當(dāng)中,那么應(yīng)在轉(zhuǎn)義字符前面插入一個轉(zhuǎn)義字符。11SOHSOHEOTSOHESCESCEOTESCSOHE
4、SCESCESCSOH原始數(shù)據(jù)EOTEOT經(jīng)過字節(jié)填充后發(fā)送的數(shù)據(jù)字節(jié)填充字節(jié)填充字節(jié)填充字節(jié)填充發(fā)送在前幀開始符幀結(jié)束符用字節(jié)填充法解決透明傳輸?shù)膯栴}SOH123.差錯檢測在傳輸過程中可能會產(chǎn)生比特差錯:1可能會變成0而0也可能變成1。在一段時間內(nèi),傳輸錯誤的比特占所傳輸比特總數(shù)的比率稱為誤碼率BER(BitErrorRate)。誤碼率與信噪比有很大的關(guān)系。為了保證數(shù)據(jù)傳輸?shù)目煽啃裕谟嬎銠C(jī)網(wǎng)絡(luò)傳輸數(shù)據(jù)時,必須采用各種差錯檢測措施。13循環(huán)冗余檢驗的原理在數(shù)據(jù)鏈路層傳送的幀中,廣泛使用了循環(huán)冗余檢驗CRC的檢錯技術(shù)。在發(fā)送端,先把數(shù)據(jù)劃分為組。假定每組k個比特。假設(shè)待傳送的一組數(shù)據(jù)M=1
5、01001(現(xiàn)在k=6)。我們在M的后面再添加供差錯檢測用的n位冗余碼一起發(fā)送。14冗余碼的計算用二進(jìn)制的模2運(yùn)算進(jìn)行2n乘M的運(yùn)算,這相當(dāng)于在M后面添加n個0。得到的(k+n)位的數(shù)除以事先選定好的長度為(n+1)位的除數(shù)P,得出商是Q而余數(shù)是R,余數(shù)R比除數(shù)P少1位,即R是n位。15冗余碼的計算舉例現(xiàn)在k=6,M=101001。設(shè)n=3,除數(shù)P=1101,被除數(shù)是2nM=101001000。模2運(yùn)算的結(jié)果是:商Q=110101,余數(shù)R=001。把余數(shù)R作為冗余碼添加在數(shù)據(jù)M的后面發(fā)送出去。發(fā)送的數(shù)據(jù)是:2nM+R即:101001001,共(k+n)位。16110101←Q(商)P(除數(shù)
6、)→1101101001000←2nM(被除數(shù))11011110110101110000111011010110000011001101001←R(余數(shù)),作為FCS循環(huán)冗余檢驗的原理說明17幀檢驗序列FCS在數(shù)據(jù)后面添加上的冗余碼稱為幀檢驗序列FCS(FrameCheckSequence)。循環(huán)冗余檢驗CRC和幀檢驗序列FCS并不等同。CRC是一種常用的檢錯方法,而FCS是添加在數(shù)據(jù)后面的冗余碼。FCS可以用CRC這種方法得出,但CRC并非用來獲得FCS的唯一方法。18接收端對收到的每一幀進(jìn)行CRC檢驗(1)若得出的余數(shù)R=0,則判定這個幀沒有差錯,就接受(accept)。(2)若余數(shù)R
7、?0,則判定這個幀有差錯,就丟棄。但這種檢測方法并不能確定究竟是哪一個或哪幾個比特出現(xiàn)了差錯。只要經(jīng)過嚴(yán)格的挑選,并使用位數(shù)足夠多的除數(shù)P,那么出現(xiàn)檢測不到的差錯的概率就很小很小。19CRC的生成多項式較方便的方法用多項式來表示CRC過程。當(dāng)除數(shù)P為1101,可表示為生成多項式:P(X)=X3+X2+1廣泛使用的P(X)有CRC-16=X16+X15+X2+1CRC-CCITT=X16+X12+X5+1CRC-32=X3