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

字號:

3.3.4數(shù)據(jù)鏈路控制協(xié)議
    數(shù)據(jù)鏈路控制協(xié)議也稱鏈路通信規(guī)程,也就是岱I參考模型中的數(shù)據(jù)鏈路層協(xié)議。路控制協(xié)議可分為異步協(xié)議和同步協(xié)議兩大類。
     異步協(xié)議以字符為獨立的信息傳輸單位,在每個字符的起始處開始對字符內(nèi)的比特實現(xiàn)同步,但字符與字符之間的間隔時間是不固定的(即字符之間是異步的)。由于發(fā)送器和接收器中近似于同一頻率的兩個約定時鐘,能夠在一段較短的時間內(nèi)保持同步,所以可以用字符起始處同步的時鐘來采樣該字符中的各比特,而不需要每個比特再用其它方法同步。前面介紹過的"起一止"式通信規(guī)程便是異步協(xié)議的典型,它是靠起始位(邏輯0)和停止位(邏輯1)來實現(xiàn)字符的定界及字符內(nèi)比特的同步的。異步協(xié)議中由于每個傳輸字符都要添加諸如起始位、校驗位、停止位等冗余位,故信道利用率很低,一般用于數(shù)據(jù)速率較低的場合。
     同步協(xié)議是以許多字符或許多比特組織成的數(shù)據(jù)塊一一幀為傳輸單位,在幀的起始步,使幀內(nèi)維持固定的時鐘。由于采用幀為傳輸單位,所以同步協(xié)議能更有效地利用信道,也便于實現(xiàn)差錯控制、流量控制等功能。
     同步協(xié)議又可分為面向字符的同步協(xié)議、面向比特的同步協(xié)議及面向字節(jié)計數(shù)的同步協(xié)議三種類型。其中面向字節(jié)計數(shù)的同步協(xié)議在本節(jié)前面的幀同步功能中已做了較詳細(xì)的介紹,下面介紹另外兩種同步協(xié)議。
    1.面向字符的同步控制協(xié)議
    面向字符的同步協(xié)議是最早提出的同步協(xié)議,其典型代表是IBM公司的二進同步通信部BSC(Binary Synchronous Communication)協(xié)議。隨后,ANSI和ISO都提出了類似的相應(yīng)標(biāo)準(zhǔn)。,任何鏈路層協(xié)議均可由鏈路建立、數(shù)據(jù)傳輸和鏈路拆除三部分組成。為實現(xiàn)建鏈、拆鏈等鏈路管理以及同步等各種功能,除了正常傳輸?shù)臄?shù)據(jù)塊和報文外,還需要一些控制字符。BSC協(xié)議用ASCII或EBCDIC字符集定義的傳輸控制字符來實現(xiàn)相應(yīng)的功能。這些傳輸控制字符的標(biāo)記、名稱及ASCII碼值和EBCDIC碼值見表3.3.
    各傳輸控制字符的功能如下:
    SOH(Start of Head):序始,用于表示報文的標(biāo)題信息或報頭的開始。
    STX(Start d Text):文始,標(biāo)志標(biāo)題信息的結(jié)束和報文文本的開始。
    ETX (End of Text):文終,標(biāo)志報文文本的結(jié)束。
    EOT (End d Transmission):送畢,用以表示一個或多個文本塊的結(jié)束,并拆除鏈路。
    ENQ(Enquire):詢問,用以請求遠程站給出響應(yīng),響應(yīng)可能包括站的身份或狀態(tài)。
    ACK (Acknowledge):確認(rèn),由接收方發(fā)出的作為對正確接收到報文的響應(yīng)。
    DLE (Data Link EScape):轉(zhuǎn)義,用以修改緊跟其后的有限個字符的意義。在BSC中實現(xiàn)透明方式的數(shù)據(jù)傳輸,或者當(dāng)10個傳輸控制字符不夠用時提供新的轉(zhuǎn)義傳輸控制字符。NAK (Negative Acknowledge):否認(rèn),由接收方發(fā)出的作為對未正確接收的報文的響應(yīng)。
    SYN(Synchronous):同步字符,在同步協(xié)議中,用以實現(xiàn)節(jié)點之間的字符同步,或用于在無數(shù)據(jù)傳輸時保持該同步。
     ETB (End of Transmission Block):塊終或組終,用以表示當(dāng)報文分成多個數(shù)據(jù)塊時?
    一個數(shù)據(jù)塊的結(jié)束。
    BSC協(xié)議將在鏈路上傳輸?shù)男畔⒎譃閿?shù)據(jù)報文和監(jiān)控報文兩類。監(jiān)控報文又可分為正向監(jiān)控和反向監(jiān)控兩種。每一種報文中至少包含一個傳輸控制字符,用以確定報文中信息的性質(zhì)或?qū)崿F(xiàn)某種控制作用。
    數(shù)據(jù)報文一般由報頭和文本組成。文本是要傳送的有效數(shù)據(jù)信息,而報頭是與文本傳送及處理有關(guān)的輔助信息,報頭有時也可不用。對于不超過長度限制的報文可只用一個數(shù)據(jù)塊發(fā)送,對較長的報文則分作多塊發(fā)送,每一個數(shù)據(jù)塊作為一個傳輸單位。接收方對于每一個收到的數(shù)據(jù)塊都要給以確認(rèn),發(fā)送方收到返回的確認(rèn)后,才能發(fā)送下一個數(shù)據(jù)塊。mc協(xié)議的數(shù)據(jù)塊有如下四種格式:
    (1)不帶報頭的單塊報文或分塊傳輸中的最后一塊報文:
    (2)帶報頭的單塊報文:
    (3)分塊傳輸中的第一塊報文:
    (4)分塊傳輸中的中間報文:
    BSC協(xié)議中所有發(fā)送的數(shù)據(jù)均眼在至少兩個SYN字符之后,以使接收方能實現(xiàn)字符同步。報頭字段用以說明數(shù)據(jù)報文字段的包識別符(序號)及地址。所有數(shù)據(jù)塊在塊終限定符(ETX或EIB)之后還有塊校驗字BCC(Block Check Character),BCC可以是垂直奇偶校驗或16位CRC,校驗范圍從町X開始到ETX或m為止。
     當(dāng)發(fā)送的報文是二進制數(shù)據(jù)而不是字符串時,二進制數(shù)據(jù)中形同傳輸控制字符的比特串將會引起傳輸混亂。為使二進制數(shù)據(jù)中允許出現(xiàn)與傳輸控制字符相同的數(shù)據(jù)(即數(shù)據(jù)的透明性),可在各幀中真正的傳輸控制字符(SYN除外)前加上DLE轉(zhuǎn)義字符,在發(fā)送時,若文本中也出現(xiàn)與DLE字符相同的二進制比特串,則可插入一個外加的DLE字符加以標(biāo)記。在接收端則進行同樣的檢測,若發(fā)現(xiàn)單個的DLE字符,則可知其后為傳輸控制字符;若發(fā)現(xiàn)連續(xù)兩個DLE字符,則知其后的DLE為數(shù)據(jù),在進一步處理前將其中一個刪去。
     正、反向監(jiān)控報文有如下四種格式:
    (1)肯定確認(rèn)和選擇響應(yīng):
    (2)否定確認(rèn)和選擇響應(yīng):
    (3)輪詢/選擇請求:
    (4)拆鏈:
     監(jiān)控報文一般附傳輸控時或由若干個其時時單個傳輸控時組成。引導(dǎo)字符統(tǒng)稱為前綴,它包含識別符(序號)、地址信息、狀態(tài)信息以及其它所需的信息NAK監(jiān)控報文的作用,首先是作為對先前所發(fā)數(shù)據(jù)塊是否正確接收的響應(yīng),因而包含識別符(序號);其次,用做對選擇監(jiān)控信息的響應(yīng),以ACK表示所選站能接收數(shù)據(jù)塊,而NAK表壁示不能接收。ENQ用做輪詢和選擇監(jiān)控報文,在多站結(jié)構(gòu)中,輪詢或選擇的站地址在ENQ符前。EOT監(jiān)控報文用以標(biāo)志報文交換的結(jié)束,并在兩站點間拆除邏輯鏈路。
     由于BSC協(xié)議與特定的字符編碼集關(guān)系過于密切,故兼容性較差。為滿足數(shù)據(jù)透明性而采用的字符填充法,實現(xiàn)起來也比較麻煩,且也依賴于所采用的字符編碼集。另外,由于BSC是一個半雙工協(xié)議,它的鏈路傳輸效率很低。不過,由于BSC協(xié)議需要的緩沖存儲空間較小,因而在面向終端的網(wǎng)絡(luò)系統(tǒng)中仍然被廣泛使用。
    2.面向比特的同步控制協(xié)議這里以Im的高級數(shù)據(jù)鏈路控制規(guī)程HDLC(High一level Data Link CoNTrol)協(xié)議為例來討論面向比特的同步控制協(xié)議的一般原理與操作過程。作為面向比特的數(shù)據(jù)鏈路控制協(xié)議的典型,EBLC具有如下特點:協(xié)議不依賴于任何一種字符編碼集;數(shù)據(jù)報文可透明傳輸,達用于實現(xiàn)透明傳輸?shù)?0比特插入法"易于硬件實現(xiàn);全雙工通信,不必等待確認(rèn)便可連續(xù)發(fā)送數(shù)據(jù),有較高的數(shù)據(jù)鏈路傳輸效率;所有幀均采用CRC校驗,對信息幀進行順序編號,,傳輸可靠性高;傳輸控制功能與處理功能分離,具有較大靈活性。由于以上特點,目前網(wǎng)絡(luò)設(shè)計普遍使用HDLC作為數(shù)據(jù)鏈路控制協(xié)議。
    (1)HDLC的操作方式。HDLC是通用的數(shù)據(jù)鏈路控制協(xié)議,在開始建立數(shù)據(jù)鏈路時允許選用特定的操作方式。所謂操作方式,通俗地講就是某站點是以主站方式操作還是以從站方式操作,或者是二者兼?zhèn)洹?BR>     鏈路上用于控制目的的站稱為主站,其它的受主站控制的站稱為從站。主站負(fù)責(zé)對數(shù)據(jù)流進行組織,并且對鏈路上的差錯實施恢復(fù)。由主站發(fā)往從站的幀稱為命令幀,而由從站返回回主站的幀稱響應(yīng)幀。連有多個站點的鏈路通常使用輪詢技術(shù),輪詢其它站的站稱為主站,而在點一點鏈路中每個站均可為主站6主站需要比從站有更多的邏輯功能,所以當(dāng)終端與主機相連時,主機一般總是主站。在一個站連接多條鏈路的情況下,該站對于一些鏈路而言可能是主站,而對另外一些鏈路而言又可能是從站。有些站可兼?zhèn)渲髡竞蛷恼镜墓δ?這種站稱為組合站,用于組合站之間信息傳輸?shù)膮f(xié)議是對稱的,即在鏈路上主、從站具有同樣的傳輸控制功能,這又被稱做平衡操作。相對的,那種操作時有主站、從站之分的,且各自功能高溫不同的操作,稱為非平衡操作。