广域网协议(HDLC协议和PPP协议)
2.1 HDLC(高級數據鏈路控制協議)
?
是一個在同步網上傳輸數據、面向比特的數據鏈路層協議,它是由國際標準化組織(ISO)根據IBM公司的SDLC(SynchronousData Link Control)協議擴展開發而成的,能夠實現可靠傳輸。
?
2.1.0 HDLC基本概念
1*主站?負責控制鏈路的操作與運行,主要功能是發送命令(包括數據信息)幀、接收響應幀,并負責對整個鏈路的控制系統的初啟、流程的控制、差錯檢測或恢復等。在多點鏈路中,主站負責管理與各個從站之間的鏈路。
?
2*從站?從站在主站的控制下進行工作,主要功能是接收由主站發來的命令幀,向主站發送響應幀,并且配合主站參與差錯恢復等鏈路控制。從站對鏈路無控制權,從站之間不能直接進行通信
?
3*復合站?同時具有主站和從站的功能,主要功能是既能發送,又能接收命令幀和響應幀,并且負責整個鏈路的控制。
?
根據上述三個類型的站,HDLC協議規定了兩種鏈路結構:不平衡鏈路結構和平衡鏈路結構。
? ? ?(1)不平衡型結構:不平衡型結構由一個主站和一個或多個從站被連在一條線路上。
?
? ? ?(2)平衡型結構:平衡型結構有兩個復合站的點對點連接構成。兩個復合站都具有數據傳送和鏈路控制能力。
?
?
2.1.1HDLC特點
(1)協議不依賴于任何一種字符編碼集。即任何字符都可以傳輸
(2)數據報文可以透明傳輸,用于實現透明傳輸的“0比特插入法”易于硬件實現。
(3)全雙工通信,不必等待確信便可連續發送數據(ARQ),具有較高的數據鏈路傳輸效率。
(4)所有幀均采用 CRC校驗,對信息幀進行編號,可防止漏收或者重份,傳輸可靠性高。
(5)傳輸控制功能與處理功能分離,具有較大靈活性和較完善的控制功能。
?
2.1.2HDLC工作過程
包括協商建立連接,傳輸報文和超時斷連三個階段。
(1)協商建立過程:HDLC每隔10秒鐘后互相發送鏈路探測的協商報文,報文的收發順序是由序號決定的,序號失序則造成鏈路斷連。這種用來探尋點到點鏈路是否激活狀態的報文稱為Keepalive報文。
(2)傳輸報文過程:將IP報文封裝在HDLC層上,數據傳輸過程中,仍然進行Keepalive的報文協商儀探測鏈路的合法有效。
(3)超時斷連階段:當封裝HDLC的接口連續10次無法收到對方對自己的遞增序號的確認時,HDLC協議 line protocol由UP變為DOWN轉變。此時鏈路處于癱瘓狀態無法通信。
2.1.3HDCL幀格式
?
?
標志字段F,固定為01111110,作為幀開始和結束的標記
?
地址字段A,表示鏈路上站的地址。在使用不平衡鏈路結構傳送數據時,地址字段總是寫入從站的地址;在使用平衡鏈路結構時,地址字段總是寫入應答站的地址。(即地址是接收方的地址)地址字段的長度一般為8bit,最多可以表示256個站的地址。在許多系統中規定,地址字段為“11111111”時,定義為全站地址,即通知所有的接收站接收有關的命令幀并按其動作;全“0”比特為無站地址,用于測試數據鏈路的狀態。因此實際有效地址共有254個之多,這對一般的多點鏈路是足夠的。但考慮在某些情況下,例如使用分組無線網,用戶可能很多,可使用擴充地址字段,以字節為單位擴充。在擴充時,每個地址字段的第1位用作擴充指示,即當第1位為“0”時,后續字節為擴充地址字段;當第1位為“1”時,后續字節不是擴充地址字段,地址字段到此為止。
?
控制字段C,控制字段用來表示幀類型、幀編號以及命令、響應等,以便對鏈路進行監視和控制。發送方主站或復合站利用控制字段來通知被尋址的從站或復合站執行約定的操作;相反,從站用該字段作對命令的響應,報告已完成的操作或狀態的變化。該字段是HDLC的關鍵。控制字段中的第一位或第一、第二位表示傳送幀的類型,HDLC中有信息幀(I幀)、監控幀(S幀)和無編號幀(U幀)三種不同類型的幀
?
信息字段I,信息字段內包含了用戶的數據信息和來自上層的各種控制信息,在I幀和某些U幀中,具有該字段,它可以是任意長度的比特序列,但必須是8比特的整數倍。監控幀(S幀)中規定不可有信息字段。
FCS,幀校驗序列用于對幀進行循環冗余校驗,其校驗范圍從地址字段的第1比特到信息字段的最后一比特的序列,并且規定為了透明傳輸而插入的“0”不在校驗范圍內。
?
?
2.1.4 HDLC幀類型
(1)信息幀(I幀)
信息幀用于傳送有效信息或數據,通常簡稱I幀。
信息幀的控制字段中的N(S)用于存放發送幀序號,以使發送方不必等待確認而連續發送多幀。
N(R)用于存放接收方下一個預期要接收的幀的序號,N(R)=5,即表示接收方下一幀要接收5號幀,換言之,5號幀前的各幀接收到。N(S)和N(R)均為3位二進制編碼,可取值0~7。
(2)監控幀(S幀)
監控幀用于差錯控制和流量控制,通常簡稱S幀。S幀的控制字段的第三、四位為S幀類型編碼,共有四種不同編碼,分別表示:
| ? 記憶符 | ? 名? 稱 | 比特 | ? 功??????? 能 | |
| B3 | B4 | |||
| RR | 接收就緒 | 0 | 0 | 確認,且準備接受下一幀,已收妥N(R)以前的各幀 |
| RNR | 接收未就緒 | 1 | 0 | 確認,已收到編號為N(R)之前的幀,暫停接收下一幀 |
| REJ | 拒絕接收 | 0 | 1 | 重發編號N(R)以后的幀,但N(R)以前的幀已正確接收 |
| SREJ | 選擇拒絕 | 1 | 1 | 編號為N(R)的幀未收到,重發此幀 |
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幀已全部確認。
(3)無編號幀(U幀)
無編號幀因其控制字段中不包含編號N(S)和N(R)而得名,簡稱U幀。U幀用于提供對鏈路的建立、拆除以及多種控制功能,但是當要求提供不可靠的無連接服務時,它有時也可以承載數據。這些控制功能5個M位(M1、M2、M3、M4、M5,也稱修正位)來定義。5個M位可以定義32種附加的命令功能或32種應答功能,但目前許多是空缺的。
?
2.1.5透明傳輸——零比特插入法(零比特填充)
在發送端,先掃描整個信息字段(通常用硬件實現,速度快),只要發現5個連續1,則立即填入一個0,因此經過0比特填充后的數據,就可以保證在信息字段中不會出現6個連續的1.這樣就避免接收方在接收時,錯將信息字段的數據認為是標志字段F.
在接收端,收到一個幀時,先找到標志字段F以確定一個幀的邊界,接著再用硬件對其中的比特流進行掃描。當發現5個連續的1時,就將其后跟著的0刪除掉,還原成原來的比特流。這樣就保證了透明傳輸:在所傳送的數據比特流中可以傳送任意組合的比特流,不會引起對幀邊界的錯誤判斷。
2.1.6 總結、應用場景
(1)應用場合
就系統結構而言,HDLC適用于點到點或點到多點式的結構;就工作方式而言,HDLC適用于半雙工或全雙工;就傳輸方式而言,HDLC只用于同步傳輸;在傳輸速率方面考慮,HDLC常用于中高速傳輸。
*(2)傳輸效率
HDLC開始發送一幀后,就要連續不斷地發完該幀;HDLC可以同時確認幾個幀;HDLC中的每個幀含有地址字段A,在多點結構中,每個從節點只接收含有本節點地址的幀,因此主節點在選中一個從節點并與之通訊的同時,不用拆鏈,便可以選擇其他的節點通訊,即可以同時與多個節點建立鏈路。
由于以上特點,HDLC具有較高的傳輸效率。
(3)傳輸可靠性
HDLC中所有的幀(包括響應幀)都有FCS,I幀按窗口序號順序編號,傳輸可靠性比異步通訊高。
(4)數據透明性
HDLC采用“0比特插入法”對數據進行透明傳輸,傳輸信息的比特組合模式無任何限制,處理簡單。
(5)信息傳輸格式
HDLC采用統一的幀格式來實現數據、命令、響應的傳輸,實現起來方便。
(6)鏈路控制
HDLC利用改變一幀中的控制字段的編碼格式來完成各種規定的鏈路操作功能,提供的是面向比特的傳輸功能。
?
2.2 PPP(點對點協議)
推薦三篇寫的不錯的PPP協議相關博客
https://blog.csdn.net/answer3lin/article/details/87395991
https://blog.csdn.net/u011857683/article/details/84703473
https://blog.csdn.net/lilonglong1100/article/details/52914021
?
?
使用戶計算機和ISP(網絡服務供應商)進行通信時所使用的的鏈路層協議
PPP協議不負責可靠傳輸,不使用序號和確認號,原因:
?
PPP協議只支持全雙工、點對點鏈路通信。不支持多點線路。PPP是面向字符的,而HDLC是面向比特流的。
與HDLC、以太網幀的區別:
幀格式與HDLC相似。PPP屬于廣域網范疇,MAC是局域網范疇,按實際情況和環境就選用不同的協議,PPP支持的網絡結構只能是點對點,MAC支持多點對多點,HDLC支持站對多站。 這類廣域網協議,其幀的結構與以太網的完全不同,當然,PPPOE除外,因為PPPOE是基于以太網上的,而其它的如PPP,FR,X.25等卻并不是。
?
PPP協議是目前廣域網上應用最廣泛的協議之一,它的優點在于簡單、具備用戶驗證能力(身份驗證)、可以解決IP分配(NCP協議在通過驗證后動態分配IP地址)等。
2.2.0 PPP協議的組成
(1)一個將IP數據報封裝到串行鏈路的方法。IP數據報在PPP幀中就是信息部分,長度受最大傳送單元MTU的限制。PPP支持異步鏈路(無奇偶校驗的8比特數據)和面向比特的同步鏈路。
(2)鏈路控制協議LCP。
一個用來建立、配置和測試數據鏈路連接的協議
當線路不再需要時,挑出這些線路,測試它們,商議選擇,并仔細地再次釋放鏈路控制協議。
(3)一套網絡控制協議NCP,
其中的每一個協議支持不同的網絡層協議,如IP、OSI的網絡層等。
(4)認證協議
最常用的包括口令驗證協議PAP(Password Authentication Protocol)和挑戰握手驗證協議CHAP(Challenge-Handshake Authentication Protocol)。
2.2.1 PPP協議幀結構
?
協議字段值與其對應的含義:
| 0x0021 | IP數據報 |
| 0x8021 | 網絡控制數據NCP |
| 0xC021 | 鏈路控制數據LCP |
| 0xC023 | 安全性認證PAP |
| 0xC223 | 安全性認證CHAP |
?
?
2.2.2透明傳輸
字節填充法
(a) 當信息字段中出現0x7E時,將每一個0x7E字節轉變成2字節序列(0x7D,0x5E)。
(b) 若信息字段中出現一個0x7D的字節,則將其轉變成2字節序列(0x7D,0x5D)。
(c) 若信息字段中出現ASCII碼的控制字符(即數值小于0X20的字符),則該字符前面需要加入一個0x7D字節,同時將該字符的編碼加以改變(+20)。例如,出現0x03,就要把它轉為2字節序列(0x7D,0x23)
0比特填充法
PPP協議用在SONET/SDH鏈路時,使用同步傳輸(一連串的比特連續傳送),此時使用0比特填充法。
具體內容同HDLC 的0比特填充法
?
2.2.3 PAP(口令驗證協議)和CHAP(挑戰握手驗證協議)
兩種認證方式,一種是PAP,一種是CHAP。
內容:
密碼鑒權協議(PAP)
PAP提供了一種通過雙向握手進行身份確認的簡單方法。在LCP 鏈路建立后,被鑒權者將身份和密碼發送給鑒權者,然后等待對方的確認信息。因為用戶的身份和密碼是通過鏈路以明碼的方式發送的,所以 PAP 不是一種絕對安全的鑒權方法
?
挑戰握手鑒權協議(CHAP)
CHAP 協議使用三方握手來周期性的確定對方的身份,它可以在鏈路建立后的任何時候進行。當鏈路建立后,鑒權者向對方發送一個“挑戰”信息,對方使用單向鏈表(one-way hash)函數計算后發送結果,鑒權者將接收到的信息與自己計算出來的結果進行比較,如果兩者相同,則鑒權成功;否則,鑒權失敗,連接被終止。同 PAP 相比,CHAP 更具有安全性。首先,鑒權過程中使用不斷變化的挑戰信息和身份標識,這使得攻擊者很難有機會進行破解;其次,鑒權由鑒權者控制,它可以隨時對對方進行身份確認。使用 CHAP 時,必須配合一種鏈表算法,目前與 CHAP 配合使用的算法是 MD5 算法。在 PPP 中使用CHAP必須在 LCP 協商時配置相應的鑒權算法為 CHAP。
?
區別
| 協議 | 安全性 | 傳輸報文 | 認證 |
| PAP | 稍低 | 明文 | 兩次握手,?被叫提出連接請求,主叫響應 |
| CAHP | 略高 | hash值,無密碼 | 三次握手,主叫發出請求,被叫回復數據包,主叫回應 |
?
相對來說PAP的認證方式安全性沒有CHAP高。
PAP在傳輸password是明文的,而CHAP在傳輸過程中不傳輸密碼,取代密碼的是hash(哈希值)。
PAP認證是通過兩次握手實現的,而CHAP則是通過3次握手實現的。
PAP認證是被叫提出連接請求,主叫響應。而CHAP則是主叫發出請求,被叫回復一個數據包,這個包里面有主叫發送的隨機的哈希值,主叫在數據庫中確認無誤后發送一個連接成功的數據包連接
?
2.2.4 PPP協議功能特點
(1) 簡單:在同一條物理鏈路上進行點對點的數據傳輸,對數據鏈路層的幀不進行糾錯,不需要序號,不需要流量控制。
(2) 封裝成幀:加入幀界定符。
(3) 透明性:字節填充法。
(4) 多種網絡層協議:在同一條物理鏈路上同時支持多種網絡層協議(如IP和IPX等)的運行。
(5) 多種鏈路類型:PPP必須能夠在多種類型的鏈路上運行,例如串行或并行鏈路。
(6) 差錯檢測:接收方收到一個幀后進行CRC檢驗,若正確就收下這個幀,反之則丟棄。
(7) 檢測連接狀態:自動檢測鏈路是否處于正常工作狀態。
?
2.2.5 PPP協議的工作狀態
?
PPP通訊是兩個端點之間的通訊,每一端必須首先發送LCP packets數據來設定和測試數據鏈路,當鏈路建立后,peer才可以被認證,認證完成后,再通過發送NCP packets來選定網絡層協議,這些后續的通訊就可以在網絡層進行了。
?
PPP協議的六個階段:
1. 鏈路不可用階段: 初始階段
2. 鏈路建立階段: LCP協商,(協商認證方式等)
3. 驗證階段: PAP/CHAP驗證
4. 網絡層協議階段:NCP協商
5. PPP會話維持階段: 維持PPP會話, 定時發送Echo Request報文,并等待Echo Reply報文
6. 網絡終止階段: 終止PPP會話,回到鏈路不可用階段。
?
工作流程
當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,并建立一條物理連接(底層up)。PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。
這些分組及其響應選擇一些 PPP 參數,和進行網絡層配置(此前如有PAP或CHAP驗證先要通過驗證),NCP 給新接入的 PC機分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。
通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接著,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。
?
PPP實驗
一、啟用PPP協議
R1: ?(服務器,開啟認證)
conf t
Int s2/0
Ip add 192.168.1.1 ?255.255.255.0
Clock rate 64000
No shut
Encapsulation ppp //封裝PPP
?
R2:
conf t
Int s2/0
Ip add 192.168.1.2 ?255.255.255.0
Clock rate 64000
No shut
Encapsulation ppp
?
二、啟用PAP認證(單向)
R1: ?(服務器,開啟認證)
conf t
Int s2/0
Ip add 192.168.1.1 ?255.255.255.0
Clock rate 64000
No shut
Encapsulation ppp //封裝PPP
quit
username ?R2 ?password 123(全局模式下配置)
ppp authentication pap //選擇認證方式(接口下)
?
R2:(發送用戶名密碼)
conf t
Int s2/0
Ip add 192.168.1.2 ?255.255.255.0
Clock rate 64000
No shut
Encapsulation ppp
?
ppp pap sent-username R2 password 123(接口下)
?
三、啟用CHAP認證
//接口配置
R1:conf t
Int s2/0
Ip add 192.168.1.1 255.255.255.0
No shut
Exit
Hostname R1//設置自己的主機名
Username R2 password 123 //設置對方賬號密碼,這里的賬號是對方的主機名,密碼與對方的保持一致
//進接口,對該接口啟用PPP,(默認使用的是HDLC)
Int s2/0
Encapsulation ppp //封裝PPP
ppp authentication chap //選擇認證方式
Exit
Show int s2/0 ????????//查看接口配置
?
R2:conf t
Hostname R2
username R1 password 123
Int s2/0
Ip add 192.168.1.2 ?255.255.255.0
Clock rate 9600
Encapsulation ppp
ppp authentication chap
No shut
測試:
R2:ping 192.168.1.1
不需要手動輸入用戶名密碼。
總結
以上是生活随笔為你收集整理的广域网协议(HDLC协议和PPP协议)的全部內容,希望文章能夠幫你解決所遇到的問題。