行業通信實用方面的DLC協議知識
閱讀:1893發布時間:2014-7-7
HDLC協議,有時又稱SDLC協議,是行業通信普遍采用的一種鏈路層協議。
HDLC協議規范參見ISO/IEC13239標準文檔,該規范取代了HDLC協議早期的三個標準:ISO/IEC7809(HDLC的規約類別匯編)、ISO/IEC3309(HDLC的幀結構)和ISO/IEC4335(HDLC的規約要素匯編)。
本文只描述HDLC協議的關鍵技術點,詳細的介紹和說明請參考http://baike.baidu.com/view/89174.htm。
HDLC幀界定
SDLC/HDLC協議的標志符是一個8bit位組合,其格式為01111110(十六進制7E),即兩個0中間夾著6個連續的1。一幀信息以標志符為起始,并以標志符作為結束,所以標志符也稱為幀定界符。
HDLC協議的目標是能傳輸任意位組合的數據(即所謂的數據透明傳輸),同時標志符具有*性,即在數據序列中不能再出現01111110的序列。
為了達到透明傳輸的目的,發送方采用“0比特插入技術”,在發送信息幀時,對于除標志符以外的所有信息,只要遇到5個連續的1,就在其后自動插入1個0。接收方為恢復信息的原來格式,在接收時采用“0比特刪除技術”,即除標志符外,當連續接收到5個1時,就自動刪除1個0。
幀格式
HDLC完整的幀由標志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、幀校驗序列字段(FCS)等組成:
●標志字段(F):為標志符01111110,標志幀的起止。
●地址字段(A):標識通信站點的地址,其中全1表示廣播地址。
●控制字段(C):確定幀類型。
●信息字段(I):可變長字節的信息內容,必須是8位的整數倍,也可以為0長度。
●幀校驗序列(FCS):采用16位的CRC,對兩個標志字段之間的整個幀的內容進行校驗。
開始標志
Openingflag地址字段
AddressField控制字段
ControlField信息字段
InformationField幀校驗序列
FrameCheckSequenceField結束標志
ClosingFlag
011111101字節1字節可變長,N字節2字節01111110
幀類型與操作方式
HDLC協議根據控制字段把幀劃分為信息幀I(Information)、監控幀S(Supervisory)和無編號幀U(Unnumbered)三大類。并定義了NRM、ARM、ABM三種鏈路操作方式,約定通信端點之間如何主從,如何進行握手。
在實際應用中,我們只是利用HDLC的幀機制,透明傳輸用戶自定義的數據包,一般不實現協議規定的幀類型和操作模式。用戶根據行業通信的需要,采用自定義幀類型及地址字段。FCS字段一般是必須的,為了保證數據的可靠性,CRC校驗往往*。
針對不同的應用,用戶一般自定義鏈路操作方式,并不實現HDLC規范定義的操作方式。
實際應用的幀格式
實際應用的幀格式往往如下圖所示:
開始標志
Openingflag用戶自定義數據字段
DataField幀校驗序列
FrameCheckSequenceField結束標志
ClosingFlag
01111110可變長,N字節2字節01111110
由于HDLC很多情況下工作在低速線路上,為了避免包的延遲過長,要求數據字段盡可能的短,一般zui長不超過256字節。
原來出自:南京亞測