數(shù)據(jù)鏈路層常用成紙法有哪些_數(shù)據(jù)鏈路層的作用
數(shù)據(jù)鏈路層是OSI參考模型中的第二層,介乎于物理層和網(wǎng)絡(luò)層之間。數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標機網(wǎng)絡(luò)層。為達到這一目的,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個網(wǎng)絡(luò)實體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理。
數(shù)據(jù)鏈路層的功能或作用
數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標機網(wǎng)絡(luò)層。數(shù)據(jù)鏈路層應(yīng)具備如下功能:
?、冁溌愤B接的建立,拆除,分離。
?、趲ń绾蛶?。鏈路層的數(shù)據(jù)傳輸單元是幀,協(xié)議不同,幀的長短和界面也有差別,但無論如何必須對幀進行定界。
?、垌樞蚩刂?,指對幀的收發(fā)順序的控制。
?、懿铄e檢測和恢復。還有鏈路標識,流量控制等等。差錯檢測多用方陣碼校驗和循環(huán)碼校驗來檢測信道上數(shù)據(jù)的誤碼,而幀丟失等用序號檢測。各種錯誤的恢復則常靠反饋重發(fā)技術(shù)來完成。
數(shù)據(jù)鏈路層的主要協(xié)議
數(shù)據(jù)鏈路層協(xié)議是為發(fā)對等實體間保持一致而制定的,也為了順利完成對網(wǎng)絡(luò)層的服務(wù)。主要協(xié)議如下:
a.ISO1745--1975:“數(shù)據(jù)通信系統(tǒng)的基本型控制規(guī)程”。這是一種面向字符的標準,利用10個控制字符完成鏈路的建立,拆除及數(shù)據(jù)交換。對幀的收發(fā)情況及差錯恢復也是靠這些字符來完成.ISO1155,ISO1177,ISO2626,ISO2629等標準的配合使用可形成多種鏈路控制和數(shù)據(jù)傳輸方式。
b.ISO3309--1984:稱為“HDLC幀結(jié)構(gòu)”.ISO4335--1984:稱為“HDLC規(guī)程要素”。ISO7809--1984:稱為“HDLC規(guī)程類型匯編”。這3個標準都是為面向比特的數(shù)據(jù)傳輸控制而制定的。有人習慣上把這3個標準組合稱為高級鏈路控制規(guī)程。
c.ISO7776:稱為“DTE數(shù)據(jù)鏈路層規(guī)程”。與CCITTX.25LAB“平衡型鏈路訪問規(guī)程”相兼容。
數(shù)據(jù)鏈路層常用成紙法有哪些
數(shù)據(jù)鏈路層成紙的方法主要有三個:字符計數(shù)法,字符填充的首尾界定法和比特填充的首尾界定法。
1、字符計數(shù)法字符計數(shù)法用一個幀的第一字節(jié)來說明幀的總長度(總長度包含這個幀頭)
看這張圖,白色為幀頭,指明了長度,比如第一幀長度為5,后面就跟了4個字節(jié),第二幀的長度為5,后面也跟了4字節(jié),之后是兩個8字節(jié)長度的,所以各自跟了7字節(jié)的正文部分。但是很顯然,如果頭這一個字節(jié)出了問題,影響的就不僅僅是這一幀了,其他的都會出問題。比如:
第二個幀頭出了問題,那么就會出現(xiàn)大問題:后面的全部幀都會出錯,連鎖反應(yīng)。所以這種方法不太常用。
2、字符填充的首尾界定法在幀的頭之前和尾之后加一個特殊的字符,只要讀到這個字符幀就開始了,再次讀到就認為這個幀結(jié)束了,如下圖所示:
這種方法能夠避免上面字符計數(shù)法的頭出錯問題,但是他也有問題:如果正文里面出現(xiàn)了flag特殊字符怎么辦?解決辦法是在正文里面flag字符前面加上轉(zhuǎn)義字符esc,這樣讀到flag之前如果沒有轉(zhuǎn)義字符esc,那么認為幀結(jié)束,如果有esc那么認為他就是普通的數(shù)據(jù)就行。問題又來了,那么正文里面如果有esc字符呢?那么就在esc前面再加一個esc就行了,這兩個的處理是一樣的。如下圖:
3、比特填充的字符界定法
這種方法和第二種比較類似,區(qū)別是他把flag具體化了,為6個1。這樣當正文讀取的時候一旦出現(xiàn)了5個連續(xù)的1,那么在后面填充一個0,避免出現(xiàn)6個1造成幀提前結(jié)束。如下圖所示: