計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)及協(xié)議之?dāng)?shù)據(jù)鏈路層功能

字號(hào):

3.3.1 數(shù)據(jù)鏈路層功能
       數(shù)據(jù)鏈路層最基本的服務(wù)是將源機(jī)網(wǎng)絡(luò)層來(lái)的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點(diǎn)的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路層必須具備一系列相應(yīng)的功能,它們主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中將這種數(shù)據(jù)塊稱為幀(Fram),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯(cuò),如何調(diào)節(jié)發(fā)送速率以使之與接收方相匹配;在兩個(gè)網(wǎng)絡(luò)實(shí)體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放管理。
    1.幀同步功能
    為了使傳輸中發(fā)生差錯(cuò)后只將出錯(cuò)的有限數(shù)據(jù)進(jìn)行重發(fā),數(shù)據(jù)鏈路層將比特流組織成以幀為單位傳送。幀的組織結(jié)構(gòu)必須設(shè)計(jì)成使接收方能夠明確地從物理層收到的比特流中對(duì)其進(jìn)行識(shí)別,也即能從比特流中區(qū)分出幀的起始與終止,這就是幀同步要解決的問(wèn)題。由于網(wǎng)絡(luò)傳輸中很難保證計(jì)時(shí)的正確和一致,所以不能采用依靠時(shí)間間隔關(guān)系來(lái)確定一幀的起始與終止的方法。下面介紹幾種常用的幀同步法。
    (1)字節(jié)計(jì)數(shù)法。這種幀同步方法以一個(gè)特殊字符表征一幀的起始,并以一個(gè)專門字段來(lái)標(biāo)明幀內(nèi)的字節(jié)數(shù)。接收方可以通過(guò)對(duì)該特殊字符的識(shí)別從比特流中區(qū)分出幀的起始,并從專門字段中獲知該幀中隨后跟隨的數(shù)據(jù)字節(jié)數(shù),從而可確定出幀的終止位置。
     面向字節(jié)計(jì)數(shù)的同步規(guī)程的典型實(shí)例是DEC公司的數(shù)字?jǐn)?shù)據(jù)通信報(bào)文協(xié)議DDcmp(Digital Data Communications Message Protocol)o DDcmP采用的幀格式如下:
    格式中控制字符SOH標(biāo)志數(shù)據(jù)幀的起始。 Count字段共有14位,用以指示幀中數(shù)據(jù)段中數(shù)據(jù)的字節(jié)數(shù),數(shù)據(jù)段長(zhǎng)度為8×(214-1)=131064位,長(zhǎng)度必須為字節(jié)(EP 8位)的整倍數(shù),DDCMP協(xié)議就是靠這個(gè)字節(jié)計(jì)數(shù)來(lái)確定幀的終止位置的。 DDCMP幀格式中的Ack、seg、addr及Flag中的第2位,它們的功能分別類似于本節(jié)稍后要詳細(xì)介紹的hdlC中的N(R)、N(S)、Addr字段及P/F位。 CRC1、CRC2分別對(duì)標(biāo)題部分和數(shù)據(jù)部分進(jìn)行雙重校驗(yàn),強(qiáng)調(diào)標(biāo)題部分單獨(dú)校驗(yàn)的原因是,一旦標(biāo)題部分中的Count字段出錯(cuò),即失卻了幀邊界劃分的依據(jù),將造成災(zāi)難性的后果。
    由于采用字符計(jì)數(shù)方法來(lái)確定幀的終止邊界不會(huì)引起數(shù)據(jù)及其它信息的混淆,因而不必采用任何措施便可實(shí)現(xiàn)數(shù)據(jù)的透明性,即任何數(shù)據(jù)均可不受限制地傳輸。
    (2)使用字符填充的首尾定界符法。該法用一些特定的字符來(lái)定界一幀的起始與終止,本節(jié)稍后要介紹的部C規(guī)程便是典型例子。為了不使數(shù)據(jù)信息位中出現(xiàn)的與特定字符相同的字符被誤判為幀的首尾定界符,可以在這種數(shù)據(jù)字符前填充一個(gè)轉(zhuǎn)義控制字符(DLE)以示區(qū)別,從而達(dá)到數(shù)據(jù)的透明性。但這種方法使用起來(lái)比較麻煩,而且所用的特定字符依賴于所采用的字符編碼集,兼容性比較差。
    (3)使用比特填充的首尾標(biāo)志法。該法以一組特定的比特模式(如01111110)來(lái)標(biāo)志一幀的起始與終止。本節(jié)稍后要詳細(xì)介紹的E由LC規(guī)程即采用該法。為了不使信息位中出現(xiàn)的與該特定比特模式相似的比特串被誤判為幀的首尾標(biāo)志,可以采用比特填充的方法。比如,采用特定模式01111110,則對(duì)信息位中的任何連續(xù)出現(xiàn)的5個(gè)"1",發(fā)送方自動(dòng)在其后插入一個(gè)"0",而接收方則做該過(guò)程的逆操作,即每接收到連續(xù)5個(gè)"1",則自動(dòng)刪去其后所跟的"0",以此恢復(fù)原始信息,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)耐该餍?。比特填充很容易由硬件?lái)實(shí)現(xiàn),性能優(yōu)于字符填充方法。
    (4)違法編碼法。該法在物理層采用特定的比特編碼方法時(shí)采用。例如,曼徹斯特編碼方法,是將數(shù)據(jù)比特"1"編碼成"高一低"電平對(duì),將數(shù)據(jù)比特"0"編碼成"低一高"電平對(duì)。而"高一高"電平對(duì)和"低低"電平對(duì)在數(shù)據(jù)比特中是違法的。可以借用這些違法編碼序列來(lái)定界幀的起始與終止。局域IEEE802標(biāo)準(zhǔn)中就采用了這種方法。違法編碼法不需要任何填充技術(shù),便能實(shí)現(xiàn)數(shù)據(jù)的透明性,但它只適用于采用冗余編碼的特殊編碼環(huán)境。
    由于字節(jié)計(jì)數(shù)法中Count字段的脆弱性(其值若有差錯(cuò)將導(dǎo)致災(zāi)難性后果)以及字符填充法實(shí)現(xiàn)上的復(fù)雜性和不兼容性,目前較普遍使用的幀同步法是比特填充法和違法編碼法。