來源
20世紀70年代初,IBM公司率先提出了面向比特的同步數據鏈路控制規程SDLC(SynchronousDataLinkControl)。隨後,ANSI和ISO均採納並發展了SDLC,並分別提出了自己的標準:ANSI的高級通信控制過程ADCCP(AdvancedDataControlProcedure)、ISO的高級數據鏈路控制規程HDLC(High-levelDataLinkControl)。
特點
1.HDLC是面向比特的數據鏈路控制協定的典型代表,該協定不依賴於任何一種字元編碼集;
2.數據報文可透明傳輸,用於實現透明傳輸的“0比特插入法”易於硬體實現;
3.全雙工通信,有較高的數據鏈路傳輸效率;
4.所有幀採用CRC檢驗,對信息幀進行順序編號,可防止漏收或重發,傳輸可靠性高;
5.傳輸控制功能與處理功能分離,具有較大靈活性。
高級數據鏈路規程(HDLC),是位於數據鏈路層的協定之一,其工作方式可以支持半雙工、全雙工傳送,支持點到點、多點結構,支持交換型、非交換型信道,它的主要特點包括以下幾個方面:
1.透明性:為實現透明傳輸,HDLC定義了一個特殊標誌,這個標誌是一個8位的比特序列,(01111110),用它來指明幀的開始和結束。同時,為保證標誌的唯一性,在數據傳送時,除標誌位外,採取了0比特插入法,以區別標誌符,即傳送端監視比特流,每當傳送了連續5個1時,就插入一個附加的0,接收站同樣按此方法監視接收的比特流,當發現連續5個1時而第六位為0時,即刪除這位0。
2.幀格式:HDLC幀格式包括地址域、控制域、信息域和幀校驗序列。
3.規程種類:HDLC支持的規程種類包括異步回響方式下的不平衡操作、正常回響方式下的不平衡操作、異步回響方式下的平衡操作。
操作方式
HDLC是通用的數據鏈路控制協定,當開始建立數據鏈路時,允許選用特定的操作方式。所謂鏈路操作方式,通俗地講就是某站點以主站方式操作,還是以從站方式操作,或者是二者兼備。
在鏈路上用於控制目的站稱為主站,其它的受主站控制的站稱為從站。主站負責對數據流進行組織,並且對鏈路上的差錯實施恢復。由主站發往從站的幀稱為命令幀,而由從站返回主站的幀稱回響幀。
連有多個站點的鏈路通常使用輪詢技術,輪詢其它站的站稱為主站,而在點到點鏈路中每個站均可為主站。主站需要比從站有更多的邏輯功能,所以當終端與主機相連時,主機一般總是主站。
在一個站連線多條鏈路的情況下,該站對於一些鏈路而言可能是主站,而對另外一些鏈路而言又可能是從站。
有些可兼備主站和從站的功能,這站稱為組合站,用於組合站之間信息傳輸的協定是對稱的,即在鏈路上主、從站具有同樣的傳輸控制功能,這又稱作平衡操作,在計算機網路中這是一個非常重要的概念。相對的,那種操作時有主站、從站之分的,且各自功能不同的操作,稱非平衡操作。
HDLC中常用的操作方式有以下三種:
NRM
(NormalResponsesMode)是一種非平衡數據鏈路操作方式,有時也稱非平衡正常回響方式。該操作方式適用於面向終端的點到點或一點與多點的鏈路。在這種操作方式,傳輸過程由主站啟動,從站只有收到主站某個命令幀後,才能作為回響向主站傳輸信息。回響信息可以由一個或多個幀組成,若信息由多個幀組成,則應指出哪一個是最後一幀。主站負責管理整個鏈路,且具有輪詢、選擇從站及向從站傳送命令的權利,同時也負責對逾時、重發及各類恢復操作的控制。NRM操作方式見圖3.7(a)。
ARM
異步回響方式ARM(AsynchronousResponsesMode)也是一種非平衡數據鏈路操作方式,與NRM不同的是,ARM下的傳輸過程由從站啟動。從站主動傳送給主站的一個或一組幀中可包含有信息,也可以是僅以控制為目的而發的幀。在這種操作方式下,由從站來控制逾時和重發。該方式對採用輪詢方式的多站鏈路來說是必不可少的。ARM操作方式見圖3.7(b)。
ABM
異步平衡方式ABM(AsynchronousBalancedMode)是一種允許任何節點來啟動傳輸的操作方式。為了提高鏈路傳輸效率,節點之間在兩個方向上都需要的較高的信息傳輸量。在這種操作方式下任何時候任何站都能啟動傳輸操作,每個站既可作為主站又可作為從站,每個站都是組合站。各站都有相同的一組協定,任何站都可以傳送或接收命令,也可以給出應答,並且各站對差錯恢復過程都負有相同的責任。
格式介紹
在HDLC中,數據和控制報文均以幀的標準格式傳送。HDLC中的幀類似於BSC的字元塊,但BSC協定中的數據報文和控制報文是獨立傳輸的,而HDLC中的命令應以統一的格式按幀傳輸。HDLC的完整的幀由標誌欄位(F)、地址欄位(A)、控制欄位(C)、信息欄位(I)、幀校驗序列欄位(FCS)等組成.
(1)標誌欄位(F)
標誌欄位為01111110的比特模式,用以標誌幀的起始和前一幀的終止。標誌欄位也可以作為幀與幀之間的填充字元。通常,在不進行幀傳送的時刻,信道仍處於激活狀態,在這種狀態下,發方不斷地傳送標誌欄位,便可認為一個新的幀傳送已經開始。採用“0比特插入法”可以實現數據的透明傳輸。
(2)地址欄位(A)
地址欄位的內容取決於所採用的操作方式。在操作方式中,有主站、從站、組合站之分。每一個從站和組合站都被分配一個唯一的地址。命令幀中的地址欄位攜帶的是對方站的地址,而回響幀中的地址欄位所攜帶的地址是本站的地址。某一地址也可分配給不止一個站,這種地址稱為組地址,利用一個組地址傳輸的幀能被組內所有擁有該組的站一一接收。但當一個站或組合站傳送回響時,它仍應當用它唯一的地址。還可用全“1”地址來表示包含所有站的地址,稱為廣播地址,含有廣播地址的幀傳送給鏈路上所有的站。另外,還規定全“0”地址為無站地址,這種地址不分配給任何站,僅作作測試。
(3)控制欄位(C)
控制欄位用於構成各種命令和回響,以便對鏈路進行監視和控制。傳送方主站或組合站利用控制欄位來通知被定址的從站或組合站執行約定的操作;相反,從站用該欄位作對命令的回響,報告已完成的操作或狀態的變化。該欄位是HDLC的關鍵。控制欄位中的第一位或第一、第二位表示傳送幀的類型,HDLC中有信息幀(I幀)、監控幀(S幀)和無編號幀(U幀)三種不同類型的幀。控制欄位的第五位是P/F位,即輪詢/終止(Poll/Final)位。
控制欄位中第1或第1、2位表示傳送幀的類型,第1位為“0”表示是信息幀,第1、2位為“10”是監控幀,“11”是無編號幀。
信息幀中,234位為存放傳送幀序號,5位為輪詢位,當為1時,要求被輪詢的從站給出回響,678位為下個預期要接收的幀的序號。
監控幀中,34位為S幀類型編碼。第5位為輪詢/終止位,當為1時,表示接收方確認結束。
無編號幀,提供對鏈路的建立、拆除以及多種控制功能,,用34678這五個M位來定義,可以定義32種附加的命令或應答功能。
(4)信息欄位(C)
信息欄位可以是任意的二進制比特串。比特串長度未作限定,其上限由FCS欄位或通信站的緩衝器容量來決定,目前國際上用得較多的是1000~2000比特;而下限可以為0,即無信息欄位。但是,監控幀(S幀)中規定不可有信息欄位。
(5)幀校驗序列欄位(FCS)
幀校驗序列欄位可以使用16位CRC,對兩個標誌欄位之間的整個幀的內容進行校驗。FCS的生成多項式CCITT V4.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
高級數據鏈路控制(High-Level Data Link Control或簡稱HDLC),是一個在同步網上傳輸數據、面向比特的數據鏈路層協定。思科路由器上的默認WAN接口封裝協定,是思科私有協定,如果同不同廠商的設備連線需要改成其他的封裝協定進行通信。
什麼是DCE
Data Communications Equipment(數據通信設備)的首字母縮略詞。它在DTE和傳輸線路之間提供信號變換和編碼功能,並負責建立、保持和釋放鏈路的連線,如Modem。在思科路由器上作為DCE端的接口需要提供時鐘,才能使兩端協定協商成功。使用show controller 命令可以查看接口是否屬於DCE
clockrate命令
如果本連線埠連線的是DCE線纜,則要設同步時鐘,單位bps ,默認情況下接口上不配置 clock rate 。
eg. Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface serial 5/0
Router(config-if)# clock rate 1234567
%clock rate rounded to nearest value that your hardware can support.
%Use Exec Command 'more system:running-config' to see the value rounded to.
Router(config-if)# exit
Router(config)#
Router# more system:running-config
Building configuration...
...
!
interface Serial5/0
no ip address
clock rate 1151526
!
...