深入理解計算機網(wǎng)絡(luò)讀書筆記(五)

第五章 數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層的作用:在原始的麻裁、有差錯的物理傳輸線路的基礎(chǔ)上涝桅,采取差錯檢測、差錯控制與流量控制等方法殉了,將有差錯的物理線路改進成邏輯上無差錯的數(shù)據(jù)鏈路开仰,以便向網(wǎng)絡(luò)層提供高質(zhì)量的服務(wù)拟枚。

5.1 數(shù)據(jù)鏈路層基礎(chǔ)

物理層上構(gòu)建的是物理鏈路,在數(shù)據(jù)鏈路層上構(gòu)建的是邏輯鏈路或者數(shù)據(jù)鏈路众弓。

  • 為何除物理層外還需要一個數(shù)據(jù)鏈路層來構(gòu)建數(shù)據(jù)傳輸通道恩溅?
    一是由于物理層傳輸介質(zhì)的多樣性,通信規(guī)程也各不相同谓娃,性能不穩(wěn)定脚乡,而數(shù)據(jù)鏈路層中構(gòu)建的邏輯鏈路不考慮不同物理鏈路上傳輸介質(zhì)及其通信規(guī)程上的區(qū)別,只從邏輯意義上構(gòu)建一條性能穩(wěn)定滨达、不受傳輸介質(zhì)類型影響的邏輯數(shù)據(jù)傳輸通道奶稠。
    再一個原因是,物理層按位傳輸數(shù)據(jù)捡遍,傳輸效率低下锌订,容易出現(xiàn)傳輸差錯。而數(shù)據(jù)鏈路層以幀為單位進行傳輸?shù)幕辏粋€幀通常包含數(shù)千個比特位辆飘,傳輸效率提高,不容易出錯谓传。
  • 數(shù)據(jù)鏈路層結(jié)構(gòu)
    在OSI/RM和TCP/IP體系結(jié)構(gòu)中蜈项,數(shù)據(jù)鏈路層就一層,而在局域網(wǎng)體系結(jié)構(gòu)中數(shù)據(jù)鏈路層可細分為邏輯鏈路控制(Logical Link Control续挟,LLC)子層和介質(zhì)訪問控制(Medium Access Control紧卒,MAC)子層。MAC子層的主要解決多路通信的介質(zhì)爭用和尋址诗祸,適用于廣播型鏈路和點對多點鏈路跑芳。MAC子層接受物理層的服務(wù)浇冰,為LLC子層服務(wù)。
    注:SAP(Service Access Point聋亡,服務(wù)訪問點):簡單的說就是上層訪問相鄰下層所提供服務(wù)的點肘习,SAP是鄰層實體(實體即對應(yīng)層的邏輯功能)間實現(xiàn)相互通信的邏輯接口,位于兩層邊界處坡倔。

5.2 數(shù)據(jù)鏈路層主要功能及實現(xiàn)原理

數(shù)據(jù)鏈路層(LLC子層)的主要功能:數(shù)據(jù)鏈路管理漂佩、封裝成幀、透明傳輸罪塔、差錯控制投蝉。

  • 數(shù)據(jù)鏈路管理
    (1)數(shù)據(jù)鏈路層提供的服務(wù)類型
    數(shù)據(jù)鏈路層提供的服務(wù)類型分為有確認的面向連接服務(wù)、有確認的無連接服務(wù)征堪、無確認的無連接服務(wù)瘩缆。前者稱為面向連接服務(wù),后面兩者稱為無連接服務(wù)佃蚜。
    有確認的面向連接服務(wù)必須先建立好雙方通信連接且等待對方確認后才提供服務(wù)庸娱。有確認的面向連接服務(wù)分為數(shù)據(jù)鏈路建立、數(shù)據(jù)傳輸谐算、數(shù)據(jù)鏈路釋放三個階段熟尉。大多數(shù)廣域網(wǎng)中通信子網(wǎng)的數(shù)據(jù)鏈路層協(xié)議采用有確認的面向連接服務(wù),如SLIP(串行線路協(xié)議)洲脂、PPP(點對點協(xié)議)斤儿、PPPoE(基于以太網(wǎng)的點對點協(xié)議)、HDLC(高級數(shù)據(jù)鏈路控制)協(xié)議等恐锦。
    有確認的無連接服務(wù)不需要在數(shù)據(jù)傳輸結(jié)束后釋放數(shù)據(jù)鏈路往果,接收端在接收到的每一個數(shù)據(jù)幀時都向發(fā)送端確認。應(yīng)用于:令牌環(huán)網(wǎng)一铅、令牌總線網(wǎng)陕贮、各種無線通信系統(tǒng)。
    無確認的無連接服務(wù)無須先在通信雙方建立通信連接馅闽,傳輸時不要求接收端對所接收到的每一個數(shù)據(jù)幀進行確認飘蚯。它是建立在可靠的通信線路基礎(chǔ)之上的,所以數(shù)據(jù)傳輸仍然是非掣R玻可靠的局骤。應(yīng)用于:以太網(wǎng)中所使用的各種以太網(wǎng)協(xié)議。
    (2) 數(shù)據(jù)鏈路管理功能
    數(shù)據(jù)鏈路管理功能指鏈路連接的建立暴凑、維持和釋放過程峦甩。在多個站點共享同一物理信道的情況下,如何在要求通信的站點間分配和管理信道也屬于數(shù)據(jù)鏈路層管理功能的范疇。
  • 數(shù)據(jù)幀封裝和透明傳輸
    數(shù)據(jù)鏈路層的數(shù)據(jù)幀封裝功能包括將來自網(wǎng)絡(luò)層的數(shù)據(jù)分組封裝成數(shù)據(jù)幀和將來自物理層的比特流組裝成數(shù)據(jù)幀凯傲。
    (1)數(shù)據(jù)包的幀封裝原理
    數(shù)據(jù)包到達數(shù)據(jù)鏈路層后加上數(shù)據(jù)鏈路層的協(xié)議頭和協(xié)議尾就構(gòu)成了一個數(shù)據(jù)幀犬辰。在每個幀的前部加上一個幀頭部,在幀的結(jié)尾處加上一個幀尾部冰单,把網(wǎng)絡(luò)層的數(shù)據(jù)包作為幀的數(shù)據(jù)部分幌缝,就構(gòu)成了一個完整幀。
    (2)比特流的幀組裝及透明傳輸原理
    接收端的物理層把比特流向數(shù)據(jù)鏈路層傳輸诫欠,數(shù)據(jù)鏈路層將比特流封裝成數(shù)據(jù)幀涵卵。比特流的幀組裝也即幀同步問題。
    幀同步:使接收端的數(shù)據(jù)鏈路層對從物理層傳輸而來的一串串比特流以幀為單位進行區(qū)分荒叼。
    (3)幀同步方法
    常用的幀同步方法:字節(jié)計數(shù)法瞳别、字符填充的首尾定界符法瘦棋、比特填充的首尾定界符法潮针、違法編碼法谅海。
    字節(jié)計數(shù)法:以一個特殊字符代表一個幀的起始,并以一個專門的字段來標識當前幀內(nèi)字節(jié)數(shù)的幀同步方法嫁乘。典型:DEC公司的DDCMP(Digital DataCommunications Message Protocol昆婿,數(shù)字數(shù)據(jù)通信報協(xié)議),SOH字段代表一個幀的起始亦渗,COUNT標識當前幀內(nèi)字節(jié)數(shù)挖诸,NUM標識幀的順序編號
    DDCMP

    字符填充的首尾定界符法:用一些特定的控制字符來定界一個幀的起始與結(jié)束的幀同步方法。例如:IBM的BSC協(xié)議法精,頭部以一個或多個同步字符“SYN”標記數(shù)據(jù)塊的開始;尾部用字符“ETX”標記數(shù)據(jù)決的結(jié)束痴突。
    BSC幀示例

    比特填充的首尾定界符法:幀頭和幀尾各插入一個特定的比特串來標識一個數(shù)據(jù)幀的起始與結(jié)束搂蜓,幀頭、幀尾特定比特串稱為幀標志符辽装。為了避免在信息位中出現(xiàn)的與幀起始和結(jié)束標志符相似的比特串時被誤判為幀的首帮碰、尾標志,采用了比特填充的方法拾积,例如:傳輸?shù)臄?shù)據(jù)幀為01101111110001殉挽,特定比特串01111110,比特填充后(11111后加0)拓巧,實際傳送的是01111110 011011111010001 01111110斯碌。接受方收到數(shù)據(jù)后,首先去掉兩端的特定模式字符肛度,然后在每收到連續(xù)5個1的比特位后自動刪去其后所跟的0傻唾,恢復(fù)原始信息。比特填充幀同步方式易于硬件實現(xiàn)承耿,性能優(yōu)于字符填充方式冠骄。典型代表是ISO的HDLC協(xié)議伪煤。
    違法編碼法,在物理層采用特定的比特編碼方法凛辣,例如抱既,曼徹斯特編碼方法中將1編碼成高-低電平對,將0編碼成低-高電平對扁誓,高-高電平對和低-低電平對在數(shù)據(jù)比特中是違法的蝙砌,借用這些違法編碼序列來定界幀的起始與終止。違法編碼法不需要任何填充技術(shù)跋理,便能實現(xiàn)數(shù)據(jù)的透明性择克,但它只適用于采用冗余編碼的特殊編碼環(huán)境。
  • 差錯控制
    差錯控制功能前普,包括發(fā)現(xiàn)差錯的能力和糾正錯誤的能力肚邢。
    (1)差錯檢測:通過對差錯編碼進行校驗來實現(xiàn),常見的校驗方法有奇偶校驗碼(Parity Check Code拭卿,PCC)骡湖、循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)兩種峻厚,統(tǒng)稱為檢錯碼响蕴。
    (2)差錯糾正:對于面向字符的異步傳輸,包括反饋檢測法及自動重發(fā)請求法惠桃。
    反饋檢測法在接收端收完一幀數(shù)據(jù)后浦夷,向發(fā)送端發(fā)送回所接收到的完整數(shù)據(jù)幀,由發(fā)送端通過與原始發(fā)送的幀進行比較來判斷接收端是否正確接收了對應(yīng)幀辜王。如果錯誤劈狐,發(fā)送端向接收端發(fā)送一個DEL字符及相應(yīng)的幀信息,提示接收端刪除對應(yīng)的幀呐馆,重發(fā)該幀肥缔;否則表示接收端已正確接收了對應(yīng)的幀,不重發(fā)對應(yīng)的幀汹来。為了解決數(shù)據(jù)丟失導(dǎo)致的錯誤续膳,數(shù)據(jù)發(fā)送時引入計時器(Timer)來限定接收端發(fā)回反饋信息的時間間隔。當發(fā)送端發(fā)送一幀數(shù)據(jù)的同時啟動計時器收班,若計時器超時(Timeout)坟岔,則可認為傳的對應(yīng)幀已出錯,或丟失闺阱,繼而發(fā)送端重新發(fā)送對應(yīng)的數(shù)據(jù)幀炮车。缺點:數(shù)據(jù)在信道中往返傳輸,傳輸效率低。
    自動重發(fā)請求法(ARQ法)原理:發(fā)送端將要發(fā)送的數(shù)據(jù)幀附加冗余檢錯碼(如前面介紹的PCC瘦穆、CRC碼)一起發(fā)送纪隙,接收端則根據(jù)檢錯碼對數(shù)據(jù)幀進行錯誤檢測,若錯誤扛或,就返回請求重發(fā)的響應(yīng)绵咱,發(fā)送端收到重發(fā)請求,重新傳送數(shù)據(jù)幀熙兔。
  • 流量控制
    流量控制指發(fā)送端的數(shù)據(jù)發(fā)送速度與接收端的數(shù)據(jù)接收速度和線路上的承載速率相匹配悲伶,否則會造成數(shù)據(jù)在傳輸過程中的丟失。數(shù)據(jù)鏈路層中流量控制的方案包括:基于反饋的流量控制方案住涉,基于速率的流量控制方案麸锉。
    (1)基于反饋的流量控制方案
    基于反饋的流量控制方案指接收端在接收到一個數(shù)據(jù)幀后,要向發(fā)送端發(fā)送一個確認幀舆声,表示發(fā)送端可以繼續(xù)向它發(fā)送數(shù)據(jù)了花沉。
    (2)基于速率的流量控制方案
    基于速率的流量控制方案是基于窗口滑動機制的速率控制方案,它規(guī)定發(fā)送端一次可以發(fā)送多少個數(shù)據(jù)幀媳握,限制了發(fā)送端的數(shù)據(jù)傳輸速率碱屁,而無須接收端發(fā)回確認幀。

5.3 差錯控制方案

差錯控制的差錯糾正方案包括反饋檢測法和自動重發(fā)請求法兩種蛾找。也有一些具有自動糾錯功能的編碼娩脾,稱為糾錯碼(前向糾錯碼),如海明碼打毛。

  • 自動重發(fā)法中的冗余檢錯碼
    (1)奇偶校驗碼
    奇偶校驗碼(PCC)是奇校驗碼和偶校驗碼的統(tǒng)稱柿赊。原理:原信息代碼的最后一位用于奇校驗或偶校驗的代碼,最終的幀代碼由n-1位信元碼和1位校驗碼組成隘冲,使得幀代碼中1的總個數(shù)為奇數(shù)(奇校驗)或偶數(shù)(偶校驗)闹瞧。奇偶校驗方法只能檢查單個碼元錯誤,檢錯能力差展辞,只適用于誤碼率較低的環(huán)境,如用于以太局域網(wǎng)中万牺、用于磁盤的數(shù)據(jù)存儲中等罗珍。
    (2)循環(huán)冗余校驗碼(CRC)
    原理:要發(fā)送的幀加上一個校驗碼(二進制序列),生成一個新幀發(fā)送給接收端脚粟,使得所生成的新幀能整除特定數(shù)覆旱。接收端把接收到的新幀除以該特定除數(shù)。如果余數(shù)不為0核无,表明該幀出現(xiàn)傳輸差錯扣唱,余數(shù)為0,則表明傳輸無錯。這里的除法指模2除法噪沙。模2除法只對相同位數(shù)異或操作炼彪,被除數(shù)首位為1則商為1,被除數(shù)首位為0則商為0正歼;余數(shù)去掉首位為新的被除數(shù)辐马;新的被除數(shù)以0開頭,則除數(shù)變?yōu)槿?局义,以1開頭則除數(shù)不變喜爷。例如:100101除以1110的過程:1.被除數(shù):1001,除數(shù):1110萄唇,商:1檩帐,余數(shù):0111,2.被除數(shù):1110另萤,除數(shù):1110湃密,商:1,余數(shù):0000仲墨,3.被除數(shù):0001勾缭,除數(shù):0000,商:0目养,余數(shù):1俩由。因此,商:110癌蚁,余數(shù):1幻梯。
    CRC校驗步驟:選擇一個用于校驗的k位二進制除數(shù);在待發(fā)送的數(shù)據(jù)幀后加上k-1位0努释,得到新幀碘梢,新幀與選定除數(shù)做模2除法,得到的余數(shù)即為CRC校驗碼伐蒂,又稱FCS(幀校驗序列)煞躬;將校驗碼與原數(shù)據(jù)幀相加,得到一個新幀發(fā)送到接收端逸邦,最后在接收端再把這個新幀與選定除數(shù)做模2除法恩沛。除數(shù)可以隨機選擇,也可按通行的標準選擇缕减,但最高位和最低位必須均為1雷客。例如IBM的SDLC規(guī)程中使用CRC—16的除數(shù)為11000000000000101,而在ISO的HDLC規(guī)程桥狡、ITU的SDLC搅裙、X.25皱卓、V.34、V.41部逮、V.42等中的除數(shù)為11000000000100001娜汁。
    計算示例:假設(shè)選擇的CRC生成多項式為 G(X) =X^4 + X^3+ 1,要求出二進制序列10110011的CRC校驗碼甥啄。由CRC生成多項式可知存炮,除數(shù)為11001;計算10110011 0000與11001的模2除法蜈漓,余數(shù)為0100穆桂;計算0100與10110011的和,作為傳輸幀10110111融虽。
  • 自動重發(fā)請求方案
    自動重發(fā)請求分為空閑重發(fā)請求和連續(xù)重發(fā)請求享完。
    (1)空閑重發(fā)請求方案
    又稱停-等法,發(fā)送端每發(fā)送一幀后將數(shù)據(jù)幀作為待確認幀保留在緩沖存儲器中并啟動計時器有额,等待接收端發(fā)來的確認信息般又;接收端收到數(shù)據(jù)幀時,先利用幀中檢錯碼進行校驗巍佑,確認無差錯后向發(fā)送端返回確認信息茴迁,檢測到該幀有誤時,返回一個否認幀萤衰,同時丟棄該幀堕义; 如果發(fā)送端在計時器中規(guī)定的時間內(nèi)收到來自接收端的確認信息,計時器清零脆栋,清除緩存中的待確認幀倦卖,開始下一數(shù)據(jù)幀的發(fā)送;若發(fā)送端的計時器超時或收到否認幀椿争,則重發(fā)存放于緩沖器中的待確認數(shù)據(jù)幀怕膛。
    優(yōu)點:設(shè)計簡單,容易實現(xiàn)秦踪;缺點:存在等待時間褐捻,信道的有效利用率低。
    (2)連續(xù)重發(fā)請求方案
    發(fā)送端連續(xù)發(fā)送一系列數(shù)據(jù)幀(幀的數(shù)量視雙方的緩存空間大小而定)椅邓,不用等前一幀被確認便可繼續(xù)發(fā)送下一幀舍扰,效率大大提高。發(fā)送端同時接收來自接收端的響應(yīng)消息并對傳輸出錯的數(shù)據(jù)幀進行重發(fā)希坚。連續(xù)重發(fā)請求方案減少了等待時間,提高整個通信的吞吐量陵且,發(fā)送端需要額外設(shè)置一個較大的緩沖存儲空間(重發(fā)表)裁僧。
    出現(xiàn)傳輸差錯時个束,連續(xù)重發(fā)請求方案有兩種處理策略,即回退N幀策略和選擇重發(fā)策略聊疲〔绲祝回退N幀指回到錯誤幀的地方,重發(fā)錯誤幀及錯誤幀之后的幀获洲,接收端自動刪除錯誤幀之后的幀阱表,直至該錯誤幀無誤。選擇重發(fā)指在接收端發(fā)現(xiàn)錯誤幀后贡珊,把其后續(xù)的正確幀存放在一個緩沖區(qū)中最爬,同時向發(fā)送端發(fā)送NAK否認幀,要求重發(fā)錯誤幀门岔,在收到無誤的重發(fā)幀后爱致,與存于緩沖區(qū)中的其余幀一起按正確的順序遞交給網(wǎng)絡(luò)層。
  • 海明糾錯碼
    海明碼是一個具備多個校驗位寒随,能夠檢測并糾正一位錯誤代碼功能的糾錯碼糠悯,僅用于信道特性比較好的環(huán)境中,如以太局域網(wǎng)中妻往。
    (1)海明碼的原理:將有效信息按某種規(guī)律分成若干組互艾,每組安排一個校驗位進行奇偶性測試,然后產(chǎn)生多位檢測信息讯泣,并從中得出具體的出錯位置纫普,最后通過對錯誤位取反將其糾正。
    (2)步驟:計算校驗位數(shù)→確定校驗碼位置→確定校驗碼→實現(xiàn)校驗和糾錯判帮。
    計算校驗位數(shù)局嘁,假設(shè)N:添加了校驗碼位后整個信息的二進制位數(shù),K:有效信息位數(shù)晦墙,r:校驗碼位數(shù)悦昵,它們之間的關(guān)系應(yīng)滿足:N=K+r≤2^{r-1}
    確定校驗碼位置,校驗碼必須是在2^n次方位置晌畅。
    確定校驗碼但指,校驗位的值代表了代碼字中部分數(shù)據(jù)位的奇偶性,其所在位置決定了要校驗的比特位序列抗楔。第i位校驗碼從當前位開始棋凳,每次連續(xù)校驗i位后再跳過i位,然后再連續(xù)校驗i位连躏,再跳過i位剩岳,以此類推。最后根據(jù)所采用的是奇校驗還是偶校驗即可得出第i位校驗碼的值入热。例如:第1個校驗位拍棕,校驗的碼字符包括:第1位(本身)晓铆,第3位,第5位绰播,第7位骄噪,第9位,第11位蠢箩,第13位链蕊,第15位,....
    實現(xiàn)校驗和糾錯谬泌,校驗方式就是各校驗碼對它所校驗的位組進行異或運算滔韵,采用偶校驗時,各校驗組通過異或運算后的校驗結(jié)果均應(yīng)該是為0呵萨;而采用奇校驗時奏属,各組校驗結(jié)果均應(yīng)是為1。糾錯:對錯誤的位進行取反潮峦。

5.4 流量控制

流量控制方案主要有兩種:一種是適用于面向字符的異步通信協(xié)議中的簡單流量控制方案—XON/XOFF方案囱皿;另一種是適用于大量數(shù)據(jù)通信環(huán)境中的滑動窗口機制。

  • XON/XOFF流量控制方案
    XON/XOFF常用于通信雙方速率不同步的情形忱嘹,通過對發(fā)送端的數(shù)據(jù)傳輸速率進行控制嘱腥,以達到與接收數(shù)據(jù)數(shù)據(jù)處理速率匹配。接收端的緩存空間滿了或者接近滿時拘悦,接收端向發(fā)送端發(fā)送XOFF控制字符齿兔,發(fā)送端收到XOFF控制字符時停止數(shù)據(jù)的發(fā)送;當接收端可以繼續(xù)接收數(shù)據(jù)础米,接收端向發(fā)送端發(fā)送XON控制字符分苇,發(fā)送端收到XON控制字符后恢復(fù)數(shù)據(jù)發(fā)送。
  • 滑動窗口機制
    窗口指發(fā)送端和接收端的緩存空間屁桑∫绞伲滑動指緩存空間中存放的未處理幀數(shù)是變化的,發(fā)送端在收到確認幀蘑斧,接收端向網(wǎng)絡(luò)層提交幀后都會刪除緩存中的對應(yīng)幀靖秩。空閑重發(fā)中緩存空間大小為一幀竖瘾,連續(xù)重發(fā)中緩存空間一般為4幀沟突。
    滑動窗口示例(窗口大小為2幀):初始狀態(tài)下,發(fā)送端和接收端的緩存空間中均沒有保存數(shù)據(jù)幀捕传。發(fā)送端發(fā)送0號幀惠拭,并保存在緩存空間中,建立一個待重發(fā)表庸论,序號為0求橄。發(fā)送端繼續(xù)發(fā)送1號幀今野,同時把1號幀保存在緩存空間中,待重發(fā)表中添加1罐农。發(fā)送端收到0號幀確認幀后,從緩存空間中清除0號待重發(fā)幀催什,待重發(fā)表中清除序號0涵亏, 接收端把收到的0號幀提交給網(wǎng)絡(luò)層,并清除緩存空間中的0號幀蒲凶,此時緩存空間中為空气筋。發(fā)送端發(fā)送2號幀,同時也把2號幀保存在緩存空間中旋圆,待重發(fā)表中添加序號2宠默。發(fā)送端在收到1號幀的確認幀后,立即從緩存空間中清除1號待重發(fā)幀灵巧,待重發(fā)表中清除序號1搀矫。接收端把1號幀提交給網(wǎng)絡(luò)層,清除緩存空間中的1號幀刻肄,此時緩存空間中為空瓤球。重復(fù)這樣的過程。

5.5 數(shù)據(jù)鏈路協(xié)議

數(shù)據(jù)鏈路協(xié)議可分為兩類:面向字符的和面向比特的鏈路層協(xié)議敏弃。面向字符的鏈路層協(xié)議主要有IBM的BSC協(xié)議卦羡、DEC的DDCMP、SLIP麦到、PPP等绿饵;面向比特的鏈路層協(xié)議主要有IBM的SDLC、在SDLC協(xié)議基礎(chǔ)上ANSI的ADCCP和ISO的HDLC瓶颠、CCITT在HDLC基礎(chǔ)上提出的LAP等拟赊。面向字符的鏈路層協(xié)議用字符來控制幀的同步等信息,面向比特的鏈路層協(xié)議則用比特流來表示控制信息步清。

  • BSC協(xié)議
    數(shù)據(jù)幀中的數(shù)據(jù)被看作字符序列要门,數(shù)據(jù)塊的頭部用一個或多個同步字符SYN來標記數(shù)據(jù)塊的開始;尾部用字符ETX來標記數(shù)據(jù)塊的結(jié)束廓啊。鏈路上傳送的數(shù)據(jù)必須是由規(guī)定字符集(例如ASCII欢搜,或者EBCDIC)中的字符組成,控制信息也必須由同一個字符集中的若干指定的控制字符構(gòu)成谴轮。對于數(shù)據(jù)塊中的特殊字符(控制字符)通過轉(zhuǎn)義字符將其作為普通數(shù)據(jù)處理炒瘟。
    (1)BSC控制字符
    通信控制字符:ACK:確認標志,由接收端發(fā)出的第步,作為對正確接收到報文的響應(yīng)疮装。DLE:轉(zhuǎn)義標志缘琅,用于指示后面的字符是數(shù)據(jù)字符,而不是特殊控制字符廓推。ENQ:詢問標志刷袍,用于請求遠程站點給出響應(yīng)。響應(yīng)可能包括遠程站點的身份或狀態(tài)樊展。EOT:發(fā)送完畢標志呻纹,用于表示一個或多個文本的發(fā)送結(jié)束,并拆除鏈路专缠。ETB:塊終止或組終止標志雷酪,用于標志每個數(shù)據(jù)塊的結(jié)束位置。僅在一個報文要分成多個數(shù)據(jù)塊傳輸時才有此標志涝婉。ETX:文本終止標志哥力,標志報文文本的結(jié)束。僅在一個報文不分成多個數(shù)據(jù)塊傳輸時才有此標志墩弯。NAK:否認標志吩跋,由接收端發(fā)出的,作為對未正確接收的報文響應(yīng)最住。SOH:報頭開始標志钞澳,用于表示報文的標題信息或報頭的開始,僅在報文的第一個數(shù)據(jù)塊中才有此標志涨缚。STX:文本開始標志轧粟,標志標題信息的結(jié)束和報文文本的開始,每個數(shù)據(jù)塊均有此標志脓魏。SYN:字符同步標志兰吟,用以實現(xiàn)通信雙方的字符同步,或用于在無數(shù)據(jù)傳輸時保持同步茂翔,在每個數(shù)據(jù)塊中均有此標志混蔼,而且通常是兩個。
    (2)BSC數(shù)據(jù)塊格式
    BSC協(xié)議數(shù)據(jù)塊四種格式:



    (3)BSC基本特點:
    所有發(fā)送的數(shù)據(jù)均跟在至少兩個SYN字符之后珊燎,以使接收端能實現(xiàn)字符同步惭嚣;所有數(shù)據(jù)塊在塊終止標志符(ETX或ETB)之后還有塊校驗字符BCC,校驗是單字節(jié)的CRC或雙字節(jié)的CRC悔政,校驗范圍從STX開始到ETX或ETB為止晚吞。

  • 面向比特的SDLC和HDLC協(xié)議
    面向比特的鏈路層協(xié)議中,數(shù)據(jù)塊的頭部和尾部都用一個特殊的比特序列來標記數(shù)據(jù)塊的開始和結(jié)束谋国。所有的面向比特的數(shù)據(jù)鏈路協(xié)議均采用統(tǒng)一的幀格式槽地。
    SDLC支持識別兩類網(wǎng)絡(luò)站點:主站點和從站點。主站點控制從站點,主站點輪詢從站點是否有數(shù)據(jù)要發(fā)送捌蚊。從站點只有在主站點授權(quán)前提下才可以向主站點發(fā)送信息集畅。主站點按照預(yù)先確定的順序選擇從站點,如果選定的從站點已經(jīng)導(dǎo)入數(shù)據(jù)缅糟,才可進行數(shù)據(jù)傳輸挺智。主站點負責鏈路的建立、拆除和控制溺拱。
    (1) HDLC鏈路結(jié)構(gòu)和操作方式
    HDLC也采用主站點和從站點操作方式逃贝。主站點發(fā)往從站點稱為命令幀,從站點返回主站點稱為響應(yīng)幀迫摔。HDLC中定義了三種鏈路結(jié)構(gòu):不平衡鏈路結(jié)構(gòu)、對稱非平衡鏈路結(jié)構(gòu)和平衡鏈路結(jié)構(gòu)泥从,分別對應(yīng)提供三種基本操作方式和三種擴充方式:正常響應(yīng)方式(NRM)句占、異步響應(yīng)方式(ARM)和異步平衡方式(ABM),和三種擴充方式:擴充正常響應(yīng)方式躯嫉、擴充異步響應(yīng)方式纱烘、擴充異步平衡方式。異步響應(yīng)方式中從站點可以在沒有得到主站點允許的情況下開始數(shù)據(jù)傳輸祈餐,傳輸效率比NRM高擂啥。


    HDLC三種鏈路結(jié)構(gòu)

    (2) SDLC/HDLC幀結(jié)構(gòu)


    SDLC/HDLC幀結(jié)構(gòu)

    標志字段:所有信息傳輸必須以一個標志字段F(Flag)開始,且以同一個標志字段結(jié)束帆阳。為了維持信道處于激活狀態(tài)哺壶,發(fā)送端會不斷地發(fā)送標志字段。地址字段:表明幀是來自主站點還是來自從站點蜒谤,命令幀中地址字段攜帶目的從站點的地址山宾,響應(yīng)幀地址字段攜帶本站點的地址。通常為8位鳍徽,00000000的地址為空地址资锰,用于測試數(shù)據(jù)鏈路的狀態(tài);11111111地址為廣播地址阶祭”炼牛控制字段:實現(xiàn)HDLC協(xié)議的各種控制信息,并標志幀的類型濒募,占1個字節(jié)長度鞭盟。控制字段前兩位代表幀的類型萨咳,第1位為0懊缺,代表幀為信息幀,前兩位為10,代表幀為監(jiān)控幀S鹃两;前兩位位為11遗座,代表幀為無編號幀U。信息字段:包含了用戶的數(shù)據(jù)信息和來自上層的各種控制信息俊扳。監(jiān)控幀不具備信息字段途蒋。幀校驗序列字段:可以使用16位的CRC,對兩個標志字段之間的整個幀的內(nèi)容進行校驗馋记。
    (3)SDLC/HDLC幀類型及其標識方法
    數(shù)據(jù)幀分為信息幀I号坡、監(jiān)控幀S、無編號幀U梯醒。
    控制字段結(jié)構(gòu)

    第5位宽堆,P/F(Poll/Final,查詢/結(jié)束)位:在不同幀中的含義不一樣茸习,命令幀中取P位畜隶,起查詢的作用,值為1号胚;響應(yīng)幀中取F位籽慢,起結(jié)束數(shù)據(jù)發(fā)送或確認結(jié)束的作用,該位取1表示從站點數(shù)據(jù)發(fā)送完畢或響應(yīng)完畢猫胁,該位取0表示數(shù)據(jù)未發(fā)送完箱亿。
    信息幀(I幀):I幀控制字段中第1位為0;第2-4位為N(S,Send)弃秆,標志待發(fā)送的幀序號届惋;第5位為P/F位;第6-8位為N(R,Recieve)驾茴,標志待接收的確認幀序號(表示發(fā)送端已確認了前N-1個幀盼樟,同時發(fā)送端待接收第N幀的確認幀)。

    監(jiān)控幀(S幀):S幀用于監(jiān)視和控制數(shù)據(jù)鏈路锈至,完成I幀的接收確認晨缴、重發(fā)請求、暫停發(fā)送請求等功能峡捡。S幀沒有信息字段(48位)击碗。S幀的控制字段中第12位固定為10;第3-4位為S们拙,代表監(jiān)控功能稍途,包含4種監(jiān)控類型的幀:00,接收就緒(RR)砚婆,主站點用RR型S幀來查詢從站點械拍,從站點用RR型S幀作為對主站點的響應(yīng)幀突勇。01,拒絕(REJ)坷虑,接收端要求發(fā)送端對從編號為N(R)開始的幀及其以后所有的幀進行重發(fā)甲馋。10,接收未就緒(RNR)迄损,接收端通知發(fā)送端尚未準備好接收編號為N(R)的I幀定躏。11,選擇拒絕(SREJ)芹敌,接收端要求發(fā)送端發(fā)送編號為N(R)單個I幀痊远;第5-8位與I幀一樣。
    無編號幀(U幀):用于數(shù)據(jù)鏈路的控制氏捞,不帶編號碧聪,可以在任何需要的時刻發(fā)出,不影響帶編號的信息幀的交換順序液茎。第12位為11矾削;第3-4,6-8位均為M豁护,代表無編號功能;第5位P/F與I幀一樣欲间。U幀分為命令幀(C)和響應(yīng)幀(R)楚里。

  • 面向字符的PPP同步傳輸協(xié)議
    BSC、SDLC猎贴、HDLC屬于局域網(wǎng)中的數(shù)據(jù)鏈路層協(xié)議班缎,PPP(Point-to-Point Protocol,點對點協(xié)議)是廣域網(wǎng)數(shù)據(jù)鏈路層協(xié)議她渴。
    (1)PPP發(fā)展過程
    SLIP(串行線路網(wǎng)際協(xié)議)具有如下缺點:連接速率低达址;不能自動分配IP地址;無協(xié)議類型字段趁耗,只支持默認的IP協(xié)議沉唠,SLIP幀只是在IP包的首尾加一個END字符,作為幀邊界苛败,標志一個幀的起始和結(jié)束满葛。包中END字符,用ESC字符和0xdc兩個字符來替代罢屈,包中ESC字符用ESC字符和0xdd兩個字符替代嘀韧,以實現(xiàn)透明傳輸悬钳;無幀校驗序列(FCS)字段说敏,無法檢測出傳輸差錯。
    針對SLIP以上缺點提出PPP協(xié)議牢酵,PPP在連接速率上遠高于SLIP,同時提供了協(xié)議類型字段和幀校驗序列(FCS)字段谊却,使得PPP除了支持IP協(xié)議包封裝外柔昼,還可以封裝其他三層協(xié)議包,可以提供各種差錯控制功能因惭。PPP通過幾個子協(xié)議提供了一整套方案來解決鏈路建立岳锁、維護、拆除蹦魔、上層協(xié)議協(xié)商激率、認證等問題。
    子協(xié)議包括鏈路控制協(xié)議(LCP):用于建立勿决、配置乒躺、測試和管理數(shù)據(jù)鏈路連接;網(wǎng)絡(luò)控制協(xié)議(NCP):協(xié)商該鏈路上所傳輸?shù)臄?shù)據(jù)包格式與類型低缩,建立嘉冒、配置不同的網(wǎng)絡(luò)層協(xié)議;口令認證協(xié)議(PAP)和質(zhì)詢握手認證協(xié)議(CHAP):為PPP連接提供用戶認證功能咆繁,可以確保PPP連接的安全性讳推。
    PPP協(xié)議在ADSL(非對稱數(shù)據(jù)用戶環(huán)線)接入方式中,與其他的協(xié)議共同派生出了符合寬帶接入要求的新協(xié)議玩般,如PPPoE(PPP over Ethernet)银觅,PPPoA(PPP over ATM)。
    (2)PPP幀結(jié)構(gòu)和透明傳輸原理


    PPP幀

    PPP幀包括7個字段坏为,幀的首尾均有一個標志字段究驴,其他字段各一個。標志:標志幀的起始或結(jié)束匀伏,1個字節(jié)洒忧,值固定為01111110(0x7E)。地址:標志對方節(jié)點地址的够颠,由于PPP是點對點通信協(xié)議熙侍,無須知道對方的數(shù)據(jù)鏈路層地址(MAC地址),因此地址字段固定為標準廣播地址11111111摧找,1個字節(jié)核行。控制:PPP只有UI(無編號信息)幀蹬耘,無須接收端對收到的幀進行確認芝雪,控制字段值固定為00000011。協(xié)議:PPP幀它除了可封裝IP協(xié)議外综苔,還可封裝其他多種網(wǎng)絡(luò)層協(xié)議包惩系。協(xié)議字段占2個字節(jié)位岔,指示在信息字段中封裝的數(shù)據(jù)類型。信息:來自網(wǎng)絡(luò)層的有效數(shù)據(jù)堡牡,可以是任意長度抒抬,默認為1500字節(jié)。幀校驗序列(FCS):使用16位的循環(huán)冗余校驗計算信息字段中的校驗和晤柄,以驗證數(shù)據(jù)的正確性擦剑。
    透明傳輸:PPP是面向字符協(xié)議,使用轉(zhuǎn)義字符0x7D(01111101)進行填充芥颈,一字節(jié)變兩字節(jié)惠勒。
    (3)PPP鏈路建立、使用和拆除流程
    整個過程分為死亡爬坑、鏈路建立纠屋、身份認證、網(wǎng)絡(luò)控制協(xié)商和結(jié)束五個階段盾计。



    具體流程:用戶向ISP或者對端節(jié)點發(fā)起PPP連接請求時售担,首先打開物理接口,通過封裝了LCP的PPP幀與接口進行協(xié)商署辉,協(xié)商內(nèi)容包括工作方式(單PPP通信或多PPP通信)族铆、認證方式和最大傳輸單元等。協(xié)商完成后就進入鏈路建立階段哭尝,啟用PPP數(shù)據(jù)鏈路層協(xié)議骑素,對接口進行封裝。如果啟用成功刚夺,則進入身份認證階段,保持LCP激活末捣,否則關(guān)閉接口和LCP侠姑。數(shù)據(jù)鏈路建立成功后對請求連接的用戶進行身份認證(CHAP/PAP)。身份認證成功后進入網(wǎng)絡(luò)控制協(xié)商階段箩做,通過封裝了NCP的PPP幀與網(wǎng)絡(luò)層協(xié)議進行協(xié)商莽红,并為用戶分配一個臨時的網(wǎng)絡(luò)層地址;如果身份認證失敗邦邦,直接進入結(jié)束階段安吁,拆除鏈路,返回死亡階段燃辖,關(guān)閉LCP鬼店。PPP鏈路將一直保持通信,直至有明確的LCP或NCP幀關(guān)閉這條鏈路黔龟,或發(fā)生了某些外部事件導(dǎo)致進入結(jié)束階段妇智,關(guān)閉NCP協(xié)議滥玷,釋放為用戶分配的臨時網(wǎng)絡(luò)層地址,最后返回死亡階段巍棱,關(guān)閉LCP惑畴。
    (4)PPP的PAP/CHAP身份認證
    身份認證方式包括:PAP(密碼認證協(xié)議),CHAP(質(zhì)詢握手認證協(xié)議)航徙。路由器間Serial口之間的PPP連接不需要身份認證如贷。
    PAP身份認證:二次握手機制,被認證方發(fā)送認證請求→認證方給出認證結(jié)果到踏。具體步驟:發(fā)起PPP連接的客戶端向擔當身份認證的PAP服務(wù)器端發(fā)送一個認證請求幀杠袱,包括用于身份認證的用戶名和密碼。服務(wù)器端收到認證請求幀后夭禽,查詢服務(wù)器用戶賬戶數(shù)據(jù)庫霞掺,如果用戶賬戶信息合法,向客戶端返回一個認證確認(ACK)幀讹躯,表示認證成功菩彬;否則返回一個認證否認(NAK)幀,表示認證失敗潮梯。如果第一次認證失敗骗灶,并不會直接將鏈路關(guān)閉,而是提示客戶端以新的用戶賬戶信息再次認證秉馏,當認證失敗達到一定次數(shù)(默認為4)才會關(guān)閉鏈路耙旦,以防止因誤傳、網(wǎng)絡(luò)干擾等造成不必要的LCP重新協(xié)商過程萝究。缺點:PAP身份認證用戶名及密碼在網(wǎng)絡(luò)上是以明文方式進行傳輸免都,不安全。
    CHAP身份認證:三次握手機制帆竹,認證方要求被認證方提供認證信息→被認證方提供認證信息→認證方給出認證結(jié)果绕娘。具體步驟:鏈路建立后,CHAP服務(wù)器端不斷產(chǎn)生一個隨機序列號的質(zhì)詢(challenge)字符串幀發(fā)送給CHAP客戶端栽连,詢問客戶端是否要進行身份認證险领,直至客戶端對質(zhì)詢做出響應(yīng),把用于身份認證的用戶名和密碼通過MD5摘要加密協(xié)議生成一個隨機序列的響應(yīng)幀發(fā)送給服務(wù)器端秒紧。服務(wù)器端收到響應(yīng)幀后绢陌,解密出其中的認證用戶名和密碼,并在本地用戶賬戶數(shù)據(jù)庫中查找熔恢,如果用戶信息合法脐湾,通過認證,允許客戶端發(fā)起的PPP連接叙淌,否則拒絕認證沥割,認證失敗耗啦。同樣,多次認證失敗后才會關(guān)閉鏈路机杜。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帜讲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椒拗,更是在濱河造成了極大的恐慌似将,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚀苛,死亡現(xiàn)場離奇詭異在验,居然都是意外死亡,警方通過查閱死者的電腦和手機堵未,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門腋舌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渗蟹,你說我怎么就攤上這事块饺。” “怎么了雌芽?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵授艰,是天一觀的道長。 經(jīng)常有香客問我世落,道長淮腾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任屉佳,我火速辦了婚禮谷朝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘武花。我一直安慰自己徘禁,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布髓堪。 她就那樣靜靜地躺著,像睡著了一般娘荡。 火紅的嫁衣襯著肌膚如雪干旁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天炮沐,我揣著相機與錄音争群,去河邊找鬼。 笑死大年,一個胖子當著我的面吹牛换薄,可吹牛的內(nèi)容都是我干的玉雾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼轻要,長吁一口氣:“原來是場噩夢啊……” “哼复旬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冲泥,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤驹碍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凡恍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體志秃,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年嚼酝,在試婚紗的時候發(fā)現(xiàn)自己被綠了浮还。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡闽巩,死狀恐怖钧舌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情又官,我是刑警寧澤延刘,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站六敬,受9級特大地震影響碘赖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜外构,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一普泡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧审编,春花似錦撼班、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勘究,卻和暖如春矮湘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背口糕。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工缅阳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人景描。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓十办,卻偏偏與公主長得像秀撇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子向族,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容