數(shù)據(jù)部分恰好出現(xiàn)與EOT一樣的代碼
發(fā)布時(shí)間:2014/9/16 20:51:32 訪問次數(shù):1423
由于幀的開始和結(jié)束的標(biāo)記是使用專門指明的控制字符,因此,所傳輸M1541A1的數(shù)據(jù)中的任何8比特的組合一定不允許和用作幀定界的控制字符的比特編碼一樣,否則就會(huì)出現(xiàn)幀定界的錯(cuò)誤。
當(dāng)傳送的幀是用文本文件組成的幀時(shí)(文本文件中的字符都是從鍵盤上輸入的),其數(shù)據(jù)部分顯然不會(huì)出現(xiàn)像SOH或EOT這樣的幀定界控制字符?梢姴还軓逆I盤上輸入什么字符都可以放在這樣的幀中傳輸過去,因此這樣的傳輸就是透明傳輸。
但當(dāng)數(shù)據(jù)部分是非ASCII碼的文本文件時(shí)(如二進(jìn)制代碼的計(jì)算機(jī)程序或圖像等),情況就不同了。如果數(shù)據(jù)中的某個(gè)字節(jié)的二進(jìn)制代碼恰好和SOH或EOT這種控制字符一樣,數(shù)據(jù)鏈路層就會(huì)錯(cuò)誤地“找到幀的邊界”,把部分幀收下(誤認(rèn)為是個(gè)完整的
幀),而把剩下的那部分?jǐn)?shù)據(jù)丟棄(這部分找不到幀定界控制字符SOH)。
像圖3-6所示的幀的傳輸顯然就不是“透明傳輸”,因?yàn)楫?dāng)遇到數(shù)據(jù)中碰巧出現(xiàn)字符“EOT”時(shí)就傳不過去了。數(shù)據(jù)中的“EOT”將被接收端錯(cuò)誤地解釋為“傳輸結(jié)束”的控制字符,而在其后面的數(shù)據(jù)因找不到“SOH”被接收端當(dāng)作是無效幀而丟棄。但實(shí)際上在數(shù)據(jù)中出現(xiàn)的字符“EOT”并非控制字符而僅僅是二進(jìn)制數(shù)據(jù)00000100。
前面提到的“透明”是一個(gè)很重要的術(shù)語。它表示:某一個(gè)實(shí)際存在的事物看起來卻是好像不存在一樣(例如,你看不見在你前面有塊100%透明的玻璃的存在)。“在數(shù)據(jù)鏈路層透明傳送數(shù)據(jù)”表示無論什么樣的比特組合的數(shù)據(jù)都能夠通過這個(gè)數(shù)據(jù)鏈路層。因此,對所傳送的數(shù)據(jù)來說,這些數(shù)據(jù)就“看不見”數(shù)據(jù)鏈路層有什么妨礙數(shù)據(jù)傳輸?shù)臇|西。或者說,數(shù)據(jù)鏈路層對這些數(shù)據(jù)來說是透明的。
為了解決透明傳輸問題,就必須設(shè)法使數(shù)據(jù)中可能出現(xiàn)的控制字符“SOH”和“EOT”在接收端不被解釋為控制字符。具體的方法是:發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”或“EOT”的前面插入一個(gè)轉(zhuǎn)義字符“ESC”(其十大進(jìn)制編碼是1B,二進(jìn)制是00011011)。而在接收端的數(shù)據(jù)鏈路層在把數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除這個(gè)插入的轉(zhuǎn)義字符。這種方法稱為字節(jié)填充(byte stuffing)或字符填充(character stuffing)。如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)當(dāng)中,那么解決方法仍然是在轉(zhuǎn)義字符的前面插入一個(gè)轉(zhuǎn)義字符。因此,當(dāng)接收端收到連續(xù)的兩個(gè)轉(zhuǎn)義字符時(shí),就刪除其中前面的一個(gè)。圖3-7表示用字節(jié)填充法解決透明傳輸?shù)膯栴}。
由于幀的開始和結(jié)束的標(biāo)記是使用專門指明的控制字符,因此,所傳輸M1541A1的數(shù)據(jù)中的任何8比特的組合一定不允許和用作幀定界的控制字符的比特編碼一樣,否則就會(huì)出現(xiàn)幀定界的錯(cuò)誤。
當(dāng)傳送的幀是用文本文件組成的幀時(shí)(文本文件中的字符都是從鍵盤上輸入的),其數(shù)據(jù)部分顯然不會(huì)出現(xiàn)像SOH或EOT這樣的幀定界控制字符?梢姴还軓逆I盤上輸入什么字符都可以放在這樣的幀中傳輸過去,因此這樣的傳輸就是透明傳輸。
但當(dāng)數(shù)據(jù)部分是非ASCII碼的文本文件時(shí)(如二進(jìn)制代碼的計(jì)算機(jī)程序或圖像等),情況就不同了。如果數(shù)據(jù)中的某個(gè)字節(jié)的二進(jìn)制代碼恰好和SOH或EOT這種控制字符一樣,數(shù)據(jù)鏈路層就會(huì)錯(cuò)誤地“找到幀的邊界”,把部分幀收下(誤認(rèn)為是個(gè)完整的
幀),而把剩下的那部分?jǐn)?shù)據(jù)丟棄(這部分找不到幀定界控制字符SOH)。
像圖3-6所示的幀的傳輸顯然就不是“透明傳輸”,因?yàn)楫?dāng)遇到數(shù)據(jù)中碰巧出現(xiàn)字符“EOT”時(shí)就傳不過去了。數(shù)據(jù)中的“EOT”將被接收端錯(cuò)誤地解釋為“傳輸結(jié)束”的控制字符,而在其后面的數(shù)據(jù)因找不到“SOH”被接收端當(dāng)作是無效幀而丟棄。但實(shí)際上在數(shù)據(jù)中出現(xiàn)的字符“EOT”并非控制字符而僅僅是二進(jìn)制數(shù)據(jù)00000100。
前面提到的“透明”是一個(gè)很重要的術(shù)語。它表示:某一個(gè)實(shí)際存在的事物看起來卻是好像不存在一樣(例如,你看不見在你前面有塊100%透明的玻璃的存在)。“在數(shù)據(jù)鏈路層透明傳送數(shù)據(jù)”表示無論什么樣的比特組合的數(shù)據(jù)都能夠通過這個(gè)數(shù)據(jù)鏈路層。因此,對所傳送的數(shù)據(jù)來說,這些數(shù)據(jù)就“看不見”數(shù)據(jù)鏈路層有什么妨礙數(shù)據(jù)傳輸?shù)臇|西;蛘說,數(shù)據(jù)鏈路層對這些數(shù)據(jù)來說是透明的。
為了解決透明傳輸問題,就必須設(shè)法使數(shù)據(jù)中可能出現(xiàn)的控制字符“SOH”和“EOT”在接收端不被解釋為控制字符。具體的方法是:發(fā)送端的數(shù)據(jù)鏈路層在數(shù)據(jù)中出現(xiàn)控制字符“SOH”或“EOT”的前面插入一個(gè)轉(zhuǎn)義字符“ESC”(其十大進(jìn)制編碼是1B,二進(jìn)制是00011011)。而在接收端的數(shù)據(jù)鏈路層在把數(shù)據(jù)送往網(wǎng)絡(luò)層之前刪除這個(gè)插入的轉(zhuǎn)義字符。這種方法稱為字節(jié)填充(byte stuffing)或字符填充(character stuffing)。如果轉(zhuǎn)義字符也出現(xiàn)在數(shù)據(jù)當(dāng)中,那么解決方法仍然是在轉(zhuǎn)義字符的前面插入一個(gè)轉(zhuǎn)義字符。因此,當(dāng)接收端收到連續(xù)的兩個(gè)轉(zhuǎn)義字符時(shí),就刪除其中前面的一個(gè)。圖3-7表示用字節(jié)填充法解決透明傳輸?shù)膯栴}。
熱門點(diǎn)擊
- ICMP差錯(cuò)報(bào)告報(bào)文共有五種
- 所有的因特網(wǎng)標(biāo)準(zhǔn)都是以RFC的形式在因特網(wǎng)上
- PPP協(xié)議的幀格式
- MAC幀的格式
- 用機(jī)內(nèi)基準(zhǔn)信號對示波器進(jìn)行自檢
- A類地址的網(wǎng)絡(luò)號字段占一個(gè)字節(jié)
- 在RFC 4271中規(guī)定了BGP-4的四種報(bào)
- 網(wǎng)橋的自學(xué)習(xí)和轉(zhuǎn)發(fā)過程
- 在局域網(wǎng)上進(jìn)行硬件多播
- TCP的擁塞控制采用了四種算法
推薦技術(shù)資料
- 驅(qū)動(dòng)板的原理分析
- 先來看看原理圖。圖8所示為底板及其驅(qū)動(dòng)示意圖,F(xiàn)M08... [詳細(xì)]
- 1200 V CoolSiC MOSFET
- 高帶寬內(nèi)存(HBM)和芯片間互連(ICI)應(yīng)
- 第七代TPU—Ironwood
- Neuralink新款“心靈感
- IR最新功率MOSFET的30
- 全新第4代SiC MOSFET
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究