多鏈路規程

多鏈路規程(MLP)作為數據鏈路層中一個新的較高的子層出現,在網路層與數據鏈路層的多條單數據鏈路協定功能(SLPs)之間操作。

多鏈路規程就是HDLC,涉及三種類型的站,即主站、從站和複合站。主站的主要功能是傳送命令(包括數據信息)幀、接收回響幀,並負責對整個鏈路的控制系統的初啟、流程的控制、差錯檢測或恢復等。從站的主要功能是接收由主站發來的命令幀,向主站傳送回響幀,並且配合主站參與差錯恢復等鏈路控制。複合站的主要功能是既能傳送,又能接收命令幀和回響幀,並且負責整個鏈路的控制。

操作方式

根據通信雙方的鏈路結構和傳輸回響類型,HDLC提供了三種操作方式:正常回響方式、異步回響方式和異步平衡方式。

正常回響方式(NRM)
正常回響方式(NRM)適用於不平衡鏈路結構,即用於點-點和點-多點的鏈路結構中,特別是點-多點鏈路。這種方式中,由主站控制整個鏈路的操作,負責鏈路的初始化、數據流控制和鏈路復位等。從站的功能很簡單,它只有在收到主站的明確允許後,才能發出回響。

異步回響方式(ARM)
異步回響方式(ARM)也適用於不平衡鏈路結構。它與NRM不同的是:在ARM方式中,從站可以不必得到主站的允許就可以開始數據傳輸。顯然它的傳輸效率比NRM有所提高。

異步平衡方式(ABM)
異步平衡方式(ABM)適用於平衡鏈路結構。鏈路兩端的複合站具有同等的能力,不管哪個複合站均可在任意時間傳送命令幀,並且不需要收到對方複合站發出的命令幀就可以傳送回響幀。ITU-TX.25建議的數據鏈路層就採用這種方式。
除三種基本操作方式,還有三種擴充方式,即擴充正常回響方式(SNRM)、擴充異步回響方式(SARM)、擴充異步平衡方式(SABM)它們分別與基本方式相對應。

HDLC幀結構

HDLC的幀格式如圖3所示,它由六個欄位組成,這六個欄位可以分為五中類型,即標誌序列(F)、地址欄位(A)、控制欄位(C)、信息欄位(I)、幀校驗欄位(FCS)。在幀結構中允許不包含信息欄位I。標誌序列(F)
HDLC指定採用01111110為標誌序列,稱為F標誌。要求所有的幀必須以F標誌開始和結束。接收設備不斷地搜尋F標誌,以實現幀同步,從而保證接收部分對後續欄位的正確識別。另外,在幀與幀的空載期間,可以連續傳送F,用來作時間填充。
在一串數據比特中,有可能產生與標誌欄位的碼型相同的比特組合。為了防止這種情況產生,保證對數據的透明傳輸,採取了比特填充技術。當採用比特填充技術時,在信碼中連續5個“1”以後插入一個“0”;而在接收端,則去除5個“1”以後的“0”,恢復原來的數據序列,如圖4所示。比特填充技術的採用排除了在信息流中出現的標誌欄位的可能性,保證了對數據信息的透明傳輸。

數據中某一段比特組合恰好001001111110001010
出現和F欄位一樣的情況會誤認為是F欄位

傳送端在5個連1之後0010011111010001010
填入0比特再傳送出去填入0比特

在接收端將5個連1之後001001111110001010

比特填充
當連續傳輸兩幀時,前一個幀的結束標誌欄位F可以兼作後一個幀的起始標誌欄位。當暫時沒有信息傳送時,可以連續傳送標誌欄位,使接收端可以一直保持與傳送端同步。

地址欄位(A)
地址欄位表示鏈路上站的地址。在使用不平衡方式傳送數據時(採用NRM和ARM),地址欄位總是寫入從站的地址;在使用平衡方式時(採用ABM),地址欄位總是寫入應答站的地址。
地址欄位的長度一般為8bit,最多可以表示256個站的地址。在許多系統中規定,地址欄位為“11111111”時,定義為全站地址,即通知所有的接收站接收有關的命令幀並按其動作;全“0”比特為無站地址,用於測試數據鏈路的狀態。因此有效地址共有254個之多,這對一般的多點鏈路是足夠的。但考慮在某些情況下,例如使用分組無線網,用戶可能很多,可使用擴充地址欄位,以位元組為單位擴充。在擴充時,每個地址欄位的第1位用作擴充指示,即當第1位為“0”時,後續位元組為擴充地址欄位;當第1位為“1”時,後續位元組不是擴充地址欄位,地址欄位到此為止。

控制欄位(C)
控制欄位用來表示幀類型、幀編號以及命令、回響等。從圖5-11可見,由於C欄位的構成不同,可以把HDLC幀分為三種類型:信息幀、監控幀、無編號幀,分別簡稱I幀(Information)、S幀(Supervisory)、U幀(Unnumbered)。在控制欄位中,第1位是“0”為I幀,第1、2位是“10”為S幀,第1、2位是“11”為U幀,它們具體操作複雜,在後面予以介紹。另外控制欄位也允許擴展。

信息欄位(I)
信息欄位內包含了用戶的數據信息和來自上層的各種控制信息。在I幀和某些U幀中,具有該欄位,它可以是任意長度的比特序列。在實際套用中,其長度由收發站的緩衝器的大小和線路的差錯情況決定,但必須是8bit的整數倍。

幀校驗序列欄位(FCS)
幀校驗序列用於對幀進行循環冗餘校驗,其校驗範圍從地址欄位的第1比特到信息欄位的最後一比特的序列,並且規定為了透明傳輸而插入的“0”不在校驗範圍內。

控制欄位和參數

控制欄位是HDLC的關鍵欄位,許多重要的功能都靠它來實現。控制欄位規定了幀的類型,即I幀、S幀、U幀,控制欄位的格式如圖3所示,其中
N(S)傳送幀序列編號
N(R)期望接收的幀序列編號,且是對N(R)以前幀的確認
S監控功能比特
M無編號功能比特
P/F查詢/結束(Poll/Final)比特,作為命令幀傳送時的查詢比特,以P位出現;作為回響幀傳送時的結束比特,以F位出現。
下面對三種不同類型的幀分別予以介紹。

信息幀(I幀)
I幀用於數據傳送,它包含信息欄位。在I幀控制欄位中b1~b3比特為N(S),b5~b7比特為N(R)。由於是全雙工通信,所以通信每一方都各有一個N(S)和N(R)。這裡要特彆強調指出:N(R)帶有確認的意思,它表示序號為N(R)-1以及在這以前的各幀都已經正確無誤地收妥了。
為了保證HDLC的正常工作,在收發雙方都設定兩個狀態變數V(S)和V(R)。V(S)是傳送狀態變數,為傳送I幀的數據站所保持,其值指示待發的一幀的編號;V(R)是接收狀態變數,其值為期望所收到的下一個I幀的編號。可見這兩個狀態變數的值確定傳送序號N(S)和接收序號N(R)。
在傳送站,每傳送一個I幀,V(S)→N(S),然後V(S)+1→V(S)。在接收站,把收到的N(S)與保留的V(R)作比較,如果這個I幀可以接收,則V(R)+1→N(R),回送到傳送站,用於對前面所收到的I幀的確認。N(R)除了可以用I幀回送之外,還可以用S幀回送,這一點從圖5-11中可以看出來,在I幀和S幀的控制欄位中具有N(R)。
V(S)、V(R)和N(S)、N(R)都各占3bit,即序號採用模8運算,使用0~7八個編號。在有些場合,如衛星通信模8已經不能滿足要求了,這時可以把控制欄位擴展為兩個位元組,N(S)、N(R)和V(S)、V(R)都用7bit來表示,即增加到模128。

監控幀(S幀)
監控幀用於監視和控制數據鏈路,完成信息幀的接收確認、重發請求、暫停傳送請求等功能。監控幀不具有信息欄位。監控幀共有4種,表1是這4種監控幀的代碼、名稱和功能。表1監控幀的名稱和功能

記憶符
名稱比特
功能
b2b3
RR接收準備好00確認,且準備接受下一幀,已收妥N(R)以前的各幀
RNR接收未準備好10確認,暫停接收下一幀,N(R)含義同上
REJ拒絕接收01否認,否認N(R)起的各幀,但N(R)以前的幀已收妥
SREJ選擇拒絕接收11否認,只否認序號為N(R)的幀
上面四種監控幀中,前三種用在返回N連續ARQ方法中,最後一種只用於選擇重發ARQ方式中。
S幀中沒有包含用戶的數據信息欄位,它只有48bit長,顯然不需要N(S),但S幀中N(R)特別有用,它具體含義隨不同的S幀類型而不同。其中RR幀和RNR幀相當於確認信息ACK,REJ幀相當於否認信息NAK。同時應當注意到,RR幀和RNR幀還具有流量控制的作用,RR幀表示已經作好表示接收幀的準備,希望對方繼續傳送,而RNR幀則表示希望對方停止傳送(這可能是由於來不及處理到達的幀或緩衝器已存滿)。

無編號幀(U幀)
無編號幀用於數據鏈路的控制,它本身不帶編號,可以在任何需要的時刻發出,而不影響帶編號的信息幀的交換順序。它可以分為命令幀和回響幀。用5個比特位(即M1、M2)來表示不同功能的無編號幀。HDLC所定義的無編號幀名稱和代碼見表2。
表2無編號幀的名稱和代碼
記憶符名稱類型M1M2
命令回響b3b4b6b7b8
SNRM置正常回響模式C00001
SARM/DM置異步回響模式/斷開方式CR11000
SABM置異步平衡模式C11100
SNRME置擴充正常回響模式C11011
SARME置擴充異步回響模式C11010
SABME置擴充異步平衡模式C11110
DISC/RD斷鏈/請求斷鏈CR00010
SIM/RIM置初始化方式/請求初始化方式C10000
UP無編號探詢C00100
UI無編號信息C00000
XID交換識別CR11101
RESET復位C11001
FRMR幀拒絕R10001
UA無編號確認R00110

4P/F比特的使用
值得注意的是在HDLC的各類幀中,均帶有查詢/結束(P/F)比特。在不同的數據傳送方式中,P/F比特的用法是不一樣的,
在NRM方式中,從站不能主動向主站傳送信息,從站只有收到主站發出的P比特為1(對從站的查詢)的命令幀以後才能傳送回響幀。若從站有數據傳送,則在最後一個數據幀中將F比特置1;若無數據傳送,則應在回答的S幀中將F比特置1。
在ARM或ABM方式中,任何一個站都可以在主動傳送的S幀和I幀中將P比特置1。對方站收到P=1的幀後,應儘早地回答本站的狀態並將F比特置1。
下面結合圖5的例子具體說明P/F比特的使用方法。圖中主站A和從站B、C連成多點鏈路,傳送幀的一些主要參數按照“地址,幀名和序號,P/F”的先後順序標註。這裡的地址是指地址欄位中應填入的站地址;幀名是指幀的名稱,如RR、I;序號是指監控幀中的N(R)或信息幀中的N(S)N(R),如RR4、I31(第1個數字是N(S),第2個數字是N(R))。P/F是在其為1時才寫上P或F,表明此時控制欄位的第5比特為1。

比特的使用方法
主站A先詢問B站:“B站,若有信息,請立刻傳送”。這時A站傳送的幀是RR監控幀,並將N(R)置0,表示期望收到對方的0號幀。因此在圖5-13中將這樣的幀記為“B,RR0,P”。對主站的這一命令,B站回響以連續4個信息幀,其序號N(S)從0到3。最後在第4個信息幀中將F置1,表示“我要傳送的信息已發完”。這個幀記為“B,I30,F”。A站在收到B站發來的4個信息幀後,發回確認幀RR4(這時N(R)=4)。我們注意到這時P/F比特並未置1,所以B站收到RR4後不必應答。接下去A站輪詢C站,P=1,雖然這時C站沒有數據傳送,但也必須立即應答。C站應答也是RR幀,表示目前沒有信息幀傳送,F=1表明這是回答對方命令的一個回響。
有了P/F比特,使HDLC規程使用起來更加靈活。在兩個複合站全雙工通信時,任何一方都可隨時使P=1,這時對方就要立即回答RR幀,並置F=1,這樣就可以收到對方的確認了。如果不使用P/F比特,則收方不一定馬上發出確認幀,比如收方可以在傳送自己的信息幀時,利用N(R)把確認信息發出。

HDLC操作

中討論了主站A和從站B、C交換信息的情況,這只是整個數據通信的中間階段,在這個階段之前還有一個數據鏈路的建立階段,在數據傳送完畢後,還必須有一個數據鏈路的釋放階段。也就是說HDLC執行數據傳輸控制功能,一般分為3個階段:數據鏈路建立階段、信息幀傳送階段、數據鏈路釋放階段。第2階段的完成需要用到信息幀和監控幀,第1、3階段的完成需要用到無編號幀。
圖6畫出了多點鏈路的建立和釋放。主站A先向從站B發出置正常回響模式SNRM的命令,並將P置1,要求B站作出回響。B站同意建立鏈路後,傳送無編號確認UA的回響,將F置1。A站和B站在將其狀態變數V(S)和V(R)進行初始化後,就完成了數據鏈路的建立。接著A站開始與C站建立鏈路。

圖6多點鏈路的建立和釋放
當數據傳送完畢後,A站分別向B站和C站發出斷鏈命令DISC,B站、C站用無編號確認幀UA回響,數據鏈路就釋放了。

圖7為點對點鏈路中兩個站都是複合站的情況。複合站中的一個站先發出置異步平衡模式SABM的命令,對方回答一個無編號回響幀UA後,即完成了數據鏈路的建立。由於兩個站是平等的,任何一個站均可在數據傳送完畢後發出DISC命令提出斷鏈的要求,對方用UA幀回響,完成數據鏈路的釋放。

HDLC規程的特點

與面向字元的基本型傳輸控制規程相比較,HDLC具有以下特點:

透明傳輸
HDLC對任意比特組合的數據均能透明傳輸。“透明”是一個很重要的術語,它表示:某一個實際存在的事物看起來好象不存在一樣。“透明傳輸”表示經實際電路傳送後的數據信息沒有發生變化。因此對所傳送數據信息來說,由於這個電路並沒有對其產生什麼影響,可以說數據信息“看不見”這個電路,或者說這個電路對該數據信息來說是透明的。這樣任意組合的數據信息都可以在這個電路上傳送。

可靠性高
在HDLC規程中,差錯控制的範圍是除了F標誌的整個幀,而基本型傳輸控制規程中不包括前綴和部分控制字元。另外HDLC對I幀進行編號傳輸,有效地防止了幀的重收和漏收。

傳輸效率高
在HDLC中,額外的開銷比特少,允許高效的差錯控制和流量控制。

適應性強
HDLC規程能適應各種比特類型的工作站和鏈路。

結構靈活
在HDLC中,傳輸控制功能和處理功能分離,層次清楚,套用非常靈活。
最後需要指出,一般的套用極少需要使用HDLC的全集,而選用HDLC的子集。當使用某一廠商的HDLC時,一定要弄清該廠商所選用的子集是什麼。

相關詞條


相關詞條

相關搜尋

熱門詞條

聯絡我們