高級(jí)數(shù)據(jù)鏈路控制協(xié)議,HDLC(High-Level Data Link Control,高級(jí)數(shù)據(jù)鏈路控制)協(xié)議是一種快速高效的WAN協(xié)議。
現(xiàn)在使用的HDLC協(xié)議主要有兩種版本,一種是ISO HDLC,另一種是Cisco HDLC。它們是從不同的協(xié)議發(fā)展而來(lái)的。ISO HDLC源自IBM的同步數(shù)據(jù)鏈路控制(SDLC)封裝協(xié)議的數(shù)據(jù)鏈路層協(xié)議,而Cisco HDLC是從ISO 3309協(xié)議框架發(fā)展來(lái)的。各種版本的HDLC雖然很相似,但它們之間并不兼容。Cisco HDLC是思科設(shè)備的專屬協(xié)議。
HDLC是一個(gè)ISO標(biāo)準(zhǔn)的面向位的數(shù)據(jù)鏈路協(xié)議,其在同步串行數(shù)據(jù)鏈路上封裝數(shù)據(jù)。HDLC內(nèi)定不支持在單一鏈路上存在多重協(xié)議,因?yàn)樗鼪](méi)有一個(gè)標(biāo)準(zhǔn)的方法指明協(xié)議間的傳遞。HDLC定義了在同步串行鏈路上使用幀符號(hào)和校驗(yàn)和的數(shù)據(jù)封裝模式。
思科提供的專用的HDLC版本是思科在串行線路方面的默認(rèn)封裝模式。此協(xié)議的工作效率極高,不需滑動(dòng)窗口技術(shù)或數(shù)據(jù)流控制,并且只允許點(diǎn)對(duì)點(diǎn)連接,地址位永遠(yuǎn)全部設(shè)定為1。此外,Cisco HDLC的幀控制位后面有兩字節(jié)的專屬類型編碼,表示HDLC的幀格式不能和其他廠商的設(shè)備兼容,并可以支持多重網(wǎng)絡(luò)層協(xié)議共享同一個(gè)串行鏈路,如圖1所示。
圖1 ISO與Cisco的HDLC幀格式比較Cisco
HDLC可以進(jìn)行負(fù)載壓縮,這是通過(guò)STAC壓縮算法實(shí)現(xiàn)的。但設(shè)置了這項(xiàng)功能會(huì)過(guò)多地占用路由器CPU的處理時(shí)間以提供合理有效的壓縮率,所以通常情況下不使用這項(xiàng)功能。
HDLC常常用于同步專線連接的數(shù)據(jù)封裝,如果專用線路連接的兩端皆為執(zhí)行思科互聯(lián)網(wǎng)絡(luò)操作系統(tǒng)(IOS)的路由器或接入服務(wù)器,通常就會(huì)使用HDLC封裝。由于HDLC封裝方法可能各有不同,用戶應(yīng)該在非運(yùn)行Cisco IOS的設(shè)備上使用PPP封裝協(xié)議。
HDLC是一種面向連接協(xié)議,因此在進(jìn)行封裝時(shí)需要一些控制信息,但控制開銷很小,除去幀中的數(shù)據(jù)部分,其他字段僅僅需要7~12字節(jié)。HDLC的這種封裝形式就是其高效的根本原因。如圖1所示,圖中Cisco HDLC封裝的幀格式中的專屬位顯示了該HDLC版本的提供商。加入專屬位的目的是為了支持多協(xié)議環(huán)境。單協(xié)議環(huán)境中的HDLC幀格式中不含有專屬位。ISO HDLC幀格式中也不含有該位。
HDLC協(xié)議使用keep-alive機(jī)制驗(yàn)證連接的完整性。一條連接,一方是DCE端,一方是DTE端。DCE端的路由器隔一小段時(shí)間就會(huì)發(fā)送一個(gè)序列號(hào)到DTE端,DTE端收到后會(huì)將其傳回DCE端。DCE端路由器檢查傳回的序列號(hào)和原先發(fā)送的是否相同,若相同,則繼續(xù)發(fā)送下一個(gè)序列號(hào)。如果該序列號(hào)連續(xù)三次都沒(méi)有被DCE端收到,那么DCE端的路由器就會(huì)關(guān)閉這條連接。