HDLC協定

HDLC——面向比特同步協定:High Level Data Link Control(高級數據鏈路控制規程)。 HDLC是面向比特的數據鏈路控制協定的典型代表,該協定不依賴於任何一種字元編碼集;數據報文透明傳輸,用於實現透明傳輸的“0比特插入法”易於硬體實現;全雙工通信,有較高的數據鏈路傳輸效率;所有幀採用CRC檢驗,對信息幀進行順序編號,可防止漏收或重發,傳輸可靠性高;傳輸控制功能與處理功能分離,具有較大靈活性。

基本介紹

  • 中文名:面向比特的同步協定
  • 外文名:The HDLC protocol
  • 性質:協定標準
  • 領域:計算機
特點與格式,幀信息的分段,SDLC/HDLC標誌字元,地址欄位和控制欄位,信息場,幀校驗欄位,實際套用時的兩個技術問題,"0"位插入/刪除技術,SDLC/HDLC異常結束,數據鏈路的配置和數據傳送方式,HDLC的幀結構,數據鏈路層的工作過程,

特點與格式

面向比特的協定中最有代表性的是IBM的同步數據鏈路控制規程SDLC(Synchronous Data Link Control),國際標準化組織ISO (International Standards Organization)的高級數據鏈路控制規程HDLC(High Level Data Link Control),美國國家標準協會(American National Standards Institute )的先進數據通信規程ADCCP ( Advanced Data Communications Control Procedure)。這些協定的特點是所傳輸的一幀數據可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字元來標誌幀的開始和結束,故稱"面向比特"的協定。

幀信息的分段

SDLC/HDLC的一幀信息包括以下幾個欄位(Field),所有欄位都是從最低有效位開始傳送。

SDLC/HDLC標誌字元

SDLC/HDLC協定規定,所有信息傳輸必須以一個標誌字元開始,且以同一個字元結束。這個標誌字元是01111110,稱標誌欄位(F)。從開始標誌到結束標誌之間構成一個完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形式傳輸的,而標誌字元提供了每一幀的邊界。接收端可以通過搜尋"01111110"來探知幀的開頭和結束,以此建立幀同步

地址欄位和控制欄位

在標誌欄位之後,可以有一個地址欄位A(Address)和一個控制欄位C(Contro1)。地址欄位用來規定與之通信的次站的地址。控制欄位可規定若干個命令。SDLC規定A欄位和C欄位的寬度為8位。HDLC則允許A欄位可為任意長度,C欄位為8位或16位。接收方必須檢查每個地址位元組的第一位,如果為"0",則後邊跟著另一個地址位元組;若為"1",則該位元組就是最後一個地址位元組。同理,如果控制欄位第一個位元組的第一位為"0",則還有第二個控制欄位位元組,否則就只有一個位元組。

信息場

跟在控制欄位之後的是信息欄位(Information)。信息欄位包含有要傳送的數據,亦成為數據欄位。並不是每一幀都必須有信息欄位。即信息欄位可以為0,當它為0時,則這一幀主要是控制命令。

幀校驗欄位

緊跟在信息欄位之後的是兩位元組的幀校驗欄位,幀校驗欄位稱為FC(Frame Check)欄位, 校驗序列FCS(Frame check Sequence)。SDLC/HDLC均採用16位循環冗餘校驗碼CRC (Cyclic Redundancy Code),其生成多項式為CCITT多項式X^16+X^12+X^5+1。除了標誌欄位和自動插入的"0"位外,所有的信息都參加CRC計算。 CRC的編碼器在傳送碼組時為每一碼組加入冗餘的監督碼位。接收時解碼器可對在糾錯範圍內的錯碼進行糾正,對在校錯范 圍內的錯碼進行校驗,但不能糾正。超出校、糾錯範圍之外的多位錯誤將不可能被校驗發現 。

實際套用時的兩個技術問題

"0"位插入/刪除技術

如上所述,SDLC/HDLC協定規定以01111110為標誌位元組,但在信息欄位中也完全有可能有同一種模式的字元,為了把它與標誌區分開來,所以採取了"0"位插入和刪除技術。具體作法是傳送端在傳送所有信息(除標誌位元組外)時,只要遇到連續5個"1",就自動插入一個"0"當接收端在接收數據時(除標誌位元組)如果連續接收到5個"1",就自動將其後的一個"0"刪除,以恢覆信息的原有形式。這種"0"位的插入和刪除過程是由硬體自動完成的,比上述面向字元的"數據透明"容易實現。

SDLC/HDLC異常結束

若在傳送過程中出現錯誤,則SDLC/HDLC協定用異常結束(Abort)字元,或稱失效序列使本幀作廢。在HDLC規程中7個連續的"1"被作為失效字元,而在SDLC中失效字元是8個連續的"1"。當然在失效序列中不使用"0"位插入/刪除技術。
SDLC/HDLC協定規定,在一幀之內不允許出現數據間隔。在兩幀信息之間,傳送器可以連續輸出標誌字元序列,也可以輸出連續的高電平,它被稱為空閒(Idle)信號。
HDLC(高級數據鏈路控制)產生的背景
面向字元型數據鏈路層協定的缺點:
控制報文和數據報文格式不一樣;
採用停止等待方式,效率低;
只對數據部分進行差錯控制,可靠性較差;
系統每增加一種功能就需要設定一個新的控制字元
面向比特型協定的設計目標:
以比特作為傳輸控制信息的基本單元
數據幀控制幀格式相同;
傳輸透明性好;
連續傳送,傳輸效率高。

數據鏈路的配置和數據傳送方式

數據鏈路的配置
非平衡配置
平衡配置
非平衡配置方式
非平衡配置中的主站與從站
主站:控制數據鏈路的工作過程。主站發出命令
從站:接受命令,發出回響,配合主站工作
非平衡配置中的結構特點
點-點方式
多點方式
非平衡配置方式
正常回響模式(normal response mode,NRM)
主站可以隨時向從站傳輸數據幀
從站只有在主站向它傳送命令幀進行探詢(poll),從站回響後才可以向主站傳送數據幀。
異步回響模式(asynchronous response mode,ARM)
主站和從站可以隨時相互傳輸數據幀;
從站可以不需要等待主站發出探詢就可以傳送數據;
主站負責數據鏈路的初始化、鏈路的建立、釋放與差錯恢復等功能。
數據鏈路的非平衡配置方式
平衡配置方式
鏈路兩端的兩個站都是複合站(combined station);
複合站同時具有主站與從站的功能;
每個複合站都可以發出命令與回響;
平衡配置結構中只有異步平衡模式(asynchronous balanced mode,ABM);
異步平衡模式的每個複合站都可以平等地發起數據傳輸,而不需要得到對方複合站的許可。
數據鏈路的平衡配置方式

HDLC的幀結構

F(flag) :標誌欄位
01111110
幀同步
傳輸數據的透明性:當幀其它欄位的比特序列中出現和標誌欄位相同的比特序列時,就後出現判斷錯誤。解決辦法是零比特插入與刪除: 傳送端在兩個標誌欄位之間的比特序列中,如果檢查出連續的5個1,不管它後面的比特位是0或1,都增加1個0;在接收端,在2個標誌欄位之間的比特序列中檢查出連續的5個1之後就刪除1個0
A(address) :地址欄位
當地址欄位的首位為1時表示地址欄位為8位;當首位為0時表示地址欄位為16位。
當使用非平衡方式傳送數據時,地址欄位總是填入從站地址;當使用平衡方式傳送數據時,地址欄位填入應答站地址。
如果地址欄位全為1,表示是廣播地址
C(control) :控制欄位
根據其最前面兩個比特的取值,可以分為3大類:信息幀、監控幀和無編號幀,也就是I幀、S幀和U幀。
控制欄位中第1或第1、2位表示傳送幀的類型,第1位為“0”表示是信息幀,第1、2位為“10”是監控幀,“11”是無編號幀。
信息幀中,234位為存放傳送幀序號,5位為輪詢位,當為1時,要求被輪詢的從站給出回響,678位為下個預期要接收的幀的序號。
監控幀中,34位為S幀類型編碼。第5位為輪詢/終止位,當為1時,表示接收方確認結束。
無編號幀,提供對鏈路的建立、拆除以及多種控制功能,用34678這五個M位來定義,可以定義32種附加的命令或應答功能。
I(information) :信息欄位
只出現在信息幀和無編號幀中,它是網路層的用戶數據。
FCS:幀校驗欄位
HDLC採用的是CRC校驗,校驗A、C和I欄位的數據。
生成多項式採用CRC-CCITT,G(X)= X16+X12+X5+1
信息幀
如果控制欄位的b0為0,那么該幀為信息幀,即I幀
N(S):b1、b2和b3,表示當前傳送的信息幀的序號
N(R):b5、b6和b7,表示一個站所已正確接收序號N
(R)-1及以前的各幀,傳送站應發序號為N(R)的幀
由於是全雙工通信,所以通信雙方都有一個N(S)和 N(R)
P/F位:b4,探詢/終止位
0,表示沒有意義
P=1(詢問),如果從站有幀傳送,則可以向主站傳送
F=1(終止),傳送的最後一幀,表示從站已經傳送結束
P=1和F=1在幀交換過程中成對出現
信息幀
信息幀
目前傳送的序號為3幀
已經正確接收序號為3及以前的各幀,要求對方下一次傳送序號為4的幀
使用探詢位P=1去詢問對方
監控幀
如果控制欄位的b0=1,b1=0,那么該幀為監控幀,即S幀
無編號幀
如果控制欄位的b0=1,b1=1,那么該幀為無編號幀,即U幀
沒有N(S)和N(R)位,主要起控制作用,它可以在需要時發出,不影響帶序號的信息幀的交換順序

數據鏈路層的工作過程

簡化的信息幀結構的表示方法
一個信息幀的表示
無編號幀的表示方法
SNRM幀與UA幀結構的表示方法

相關詞條

熱門詞條

聯絡我們