HDLC
高級數據鏈路控制(High-Level Data Link Control或簡稱HDLC),是一個在同步網上傳輸 數據、面向比特的數據鏈路層協議,它是由國際標準化組織(ISO)根據IBM公司的SDLC(Synchronous Data Link Control)協議擴展開發而成的。
特點與格式
面向比特的協議中最有代表性的是IBM的同步數據鏈路控制規程SDLC(Synchronous Data Link Control),國際標準化組織ISO (International Standards Organization)的高級數據鏈路控制規程HDLC(High Level Data Link Control),美國國家標準協會(American National Standar ds Institute )的先進數據通信規程ADCCP ( Advanced Data Communications Control Procedure)。這些協議的特點是所傳輸的一幀數據可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字符來標志幀的開始和結束,故稱"面向比特"的協議。
幀信息的分段
SDLC/HDLC的一幀信息包括以下幾個場(Field),所有場都是從最低有效位開始傳送。
1. SDLC/HDLC標志字符
SDLC/HDLC協議規定,所有信息傳輸必須以一個標志字符開始,且以同一個字符結束。這個標志字符是01111110,稱標志場(F)。從開始標志到結束標志之間構成一個完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形式傳輸的,而標志字符提供了每一幀的邊界。接收端可以通過搜索"01111110"來探知幀的開頭和結束,以此建立幀同步。
2.地址場和控制場
在標志場之后,可以有一個地址場A(Address)和一個控制場C(Contro1)。地址場用來規定與之通信的次站的地址。控制場可規定若干個命令。SDLC規定A場和C場的寬度為8位。HDLC則允許A場可為任意長度,C場為8位或16位。接收方必須檢查每個地址字節的第一位,如果為"0",則后邊跟著另一個地址字節;若為"1",則該字節就是最后一個地址字節。同理,如果控制場第一個字節的第一位為"0",則還有第二個控制場字節,否則就只有一個字節。
3.信息場
跟在控制場之后的是信息場I(Information)。I場包含有要傳送的數據,亦成為數據場。并不是每一幀都必須有信息場。即信息場可以為0,當它為0時,則這一幀主要是控制命令。
4.幀校驗場
緊跟在信息場之后的是兩字節的幀校驗場,幀校驗場稱為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的編碼器在發送碼組時為每一碼組加入冗余的監督碼位。接收時譯碼器可對在糾錯范圍內的錯碼進行糾正,對在校錯范圍內的錯碼進行校驗,但不能糾正。超出校、糾錯范圍之外的多位錯誤將不可能被校驗發現 。
實際應用時的兩個技術問題
1."0"位插入/刪除技術
如上所述,SDLC/HDLC協議規定以01111110為標志字節,但在信息場中也完全有可能有同一種模式的字符,為了把它與標志區分開來,所以采取了"0"位插入和刪除技術。具體作法是發送端在發送所有信息(除標志字節外)時,只要遇到連續5個"1",就自動插入一個"0"當接收端在接收數據時(除標志字節)如果連續接收到5個"1",就自動將其后的一個"0"刪除,以恢復信息的原有形式。這種"0"位的插入和刪除過程是由硬件自動完成的,比上述面向字符的"數據透明"容易實現。
2. SDLC/HDLC異常結束
若在發送過程中出現錯誤,則SDLC/HDLC協議用異常結束(Abort)字符,或稱失效序列使本幀作廢。在HDLC規程中7個連續的"1"被作為失效字符,而在SDLC中失效字符是8個連續的"1"。當然在失效序列中不使用"0"位插入/刪除技術。
SDLC/HDLC協議規定,在一幀之內不允許出現數據間隔。在兩幀信息之間,發送器可以連續輸出標志字符序列,也可以輸出連續的高電平,它被稱為空閑(Idle)信號。
HDLC中常用的操作方式
(1)正常響應方式NRM
正常響應方式NRM(Normal Responses Mode)是一種非平衡數據鏈路操作方式,有時也稱非平衡正常響應方式。該操作方式適用于面向終端的點到點或一點與多點的鏈路。在這種操作方式,傳輸過程由主站啟動,從站只有收到主站某個命令幀后,才能作為響應向主站傳輸信息。響應信息可以由一個或多個幀組成,若信息 由多個幀組成,則應指出哪一個是最后一幀。主站負責管理整個鏈路,且具有輪詢、選擇從站及向從站發送命令的權利,同時也負責對超時、重發及各類恢復 操作的控制。
(2)異步平衡方式ABM
異步平衡方式ABM(Asynchronous Balanced Mode)是一種允許任何節點來啟動傳輸的操作方式。為了提高鏈路傳輸效率,節點之間在兩個方向上都需要的較高的信息傳輸量。在這種操作方式下任何時候任何站都能啟動傳輸操作,每個站既可作為主站又可作為從站,每個站都是組合站。各站都有相同的一組協議,任何站都可以發送或接收命令,也可以給出應答,并且各站對差錯恢復過程都負有相同的責任。
(3)異步響應方式
異步響應方式ARM(Asynchronous Responses Mode)也是一種非平衡數據鏈路操作方式,與NRM不同的是,ARM下的傳輸過程由從站啟動。從站主動發送給主站的一個或一組幀中可包含有信息,也可以是僅以控制為目的而發的幀。在這種操作方式下,由從站來控制超時和重發。該方式對采用輪詢方式的多站蓮路來說是必不可少的。
幀格式
在HDLC中,數據和控制報文均以幀的標準格式傳送。HDLC中的幀類似于BSC的字符塊,但BSC協議中的數據報文和控制報文是獨立傳輸的,而HDLC中的命令應以統一的格式按幀傳輸。HDLC的完整的幀由標志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、幀校驗序列字段(FCS)等組成.
(1)標志字段(F)
標志字段為01111110的比特模式,用以標志幀的起始和前一幀的終止。標志字段也可以作為幀與幀之間的填充字符。通常,在不進行幀傳送的時刻,信道仍處于激活狀態,在這種狀態下,發方不斷地發送標志字段,便可認為一個新的幀傳送已經開始。采用“0比特插入法”可以實現0數據的透明傳輸。
(2)地址字段(A)
地址字段的內容取決于所彩了的操作方式。在操作方式中,有主站、從站、組合站之分。每一個從站和組合站都被分配一個唯一的地址。命令幀中的地址字段攜帶的是對方站的地址,而響應幀中的地址字段所攜帶的地址是本站的地址。某一地址也可分配給不止一個站,這種地址稱為組地址,利用一個組地址傳輸的幀能被組內所有擁有該組一焉的站接收。但當一個站或組合站發送響應時,它仍應當用它唯一的地址。還可用全“1”地址來表示包含所有站的地址,稱為廣播地址,含有廣播地址的幀傳送給鏈路上所有的站。另外,還規定全“0”地址為無站地址,這種地址不分配給任何站,僅作作測試。
(3)控制字段(C)
控制字段用于構成各種命令和響應,以便對鏈路進行監視和控制。發送方主站或組合站利用控制字段來通知被尋址的從站或組合站執行約定的操作;相反,從站用該字段作對命令的響應,報告已完成的操作或狀態的變化。該字段是HDLC的關鍵。控制字段中的第一位或第一、第二位表示傳送幀的類型,HDLC中有信息幀(I幀)、監控幀(S幀)和無編號幀(U幀)三種不同類型的幀。控制字段的第五位是P/F位,即輪詢/終止(Poll/Final)位。
(4)信息字段(I)
信息字段可以是任意的二進制比特串。比特串長度未作限定,其上限由FCS字段或通信站的緩沖器容量來決定,國際上用得較多的是1000~2000比特;而下限可以為0,即無信息字段。但是,監控幀(S幀)中規定不可有信息字段。
(5)幀校驗序列字段(FCS)
幀校驗序列字段可以使用16位CRC,對兩個標志字段之間的整個幀的內容進行校驗。FCS的生成多項式CCITV4.1建議規定的X16+X12+X5+1。
幀類型
(1)信息幀(I幀)
信息幀用于傳送有效信息或數據,通常簡稱I幀。I幀以控制字第一位為“0”來標志。
信息幀的控制字段中的N(S)用于存放發送幀序號,以使發送方不必等待確認而連續發送多幀。N(R)用于存放接收方下一個預期要接收的幀的序號,N(R)=5,即表示接收方下一幀要接收5號幀,換言之,5號幀前的各幀接收到。N(S)和N(R)均為3位二進制編碼,可取值0~7。
(2)監控幀(S幀)
監控幀用于差錯控制和流量控制,通常簡稱S幀。S幀以控制字段第一、二位為“10”來標志。S幀帶信息字段,只有6個字節即48個比特。S幀的控制字段的第三、四位為S幀類型編碼,共有四種不同編碼,分別表示:
00——接收就緒(RR),由主站或從站發送。主站可以使用RR型S幀來輪詢從站,即希望從站傳輸編號為N(R)的I幀,若存在這樣的幀,便進行傳輸;從站也可用RR型S幀來作響應,表示從站希望從主站那里接收的下一個I幀的編號是N(R)。
01——拒絕(REJ),由主站或從站發送,用以要求發送方對從編號為N(R)開始的幀及其以后所有的幀進行重發,這也暗示N(R)以前的I幀已被正確接收。
10——接收未就緒(RNR),表示編號小于N(R)的I幀已被收到,但目前正處于忙狀態,尚未準備好接收編號為N(R)的I幀,這可用來對鏈路流量進行控制。
11——選擇拒絕(SREJ),它要求發送方發送編號為N(R)單個I幀,并暗示它編號的I幀已全部確認。
可以看出,接收就緒RR型S幀和接收未就緒RNR型S幀有兩個主要功能:首先,這兩種類型的S幀用來表示從站已準備好或未準備好接收信息;其次,確認編號小于N(R)的所有接收到的I幀。拒絕REJ和選擇拒絕SREJ型S幀,用于向對方站指出發生了差錯。REJ幀用于GO-back-N策略,用以請求重發N(R)以前的幀已被確認,當收到一個N(S)等于REJ型S幀的N(R)的I幀后,REJ狀態即可清除。SREJ幀用于選擇重發策略,當收到一個N(S)等SREJ幀的N(R)的I幀時,SREJ狀態即應消除。
(3)無編號幀(U幀)
無編號幀因其控制字段中不包含編號N(S)和N(R)而得名,簡稱U幀。U幀用于提供對鏈路的建立、拆除以及多種控制功能,這些控制功能5個M位(M1、M2、M3、M4、M5,也稱修正位)來定義。5個M位可以定義32種附加的命令功能或32種應答功能,但目前許多是空缺的。
以上就是高級數據鏈路控制HDLC幀格式的全部內容,謝謝閱讀,希望能幫到大家,請繼續關注武林網,我們會努力分享更多優秀的文章。
新聞熱點
疑難解答