HDLC與PPP(串行鏈路協議)


廣域網中經常會使用串行鏈路來提供遠距離的數據傳輸,串行鏈路普遍用於廣域網中。典型的串口封裝協議有以下兩種:

  高級數據鏈路控制HDLC( High-Level Data Link Control )

  點對點協議PPP( Point to Point Protocol)

串行鏈路的數據通信方式

  

 

 

 

 

串行鏈路中定義了兩種數據傳輸方式:異步同步
異步傳輸以字節為單位來傳輸數據,並且需要采用額外的起始位和停止位來標記每個字節的開始和結束。起始位為二進制值0,停止位為二進制值1。在這種傳輸方式下,開始和停止位占據發送數據的相當大的比例,每個字節的發送都需要額外的開銷
同步傳輸以幀為單位來傳輸數據,在通信時需要使用時鍾來同步本端和對端的設備通信。DCE數據通信設備,它提供了一個用於同步DCE設備和DTE設備之間數據傳輸的時鍾信號。DTE數據終端設備,它通常使用DCE產生的時鍾信號

時鍾同步具體描述:https://zhidao.baidu.com/question/214609545.html

DTE與DCE:https://zhidao.baidu.com/question/173232881.html

HDLC協議

  High-level Data Link Control,高級數據鏈路控制,簡稱HDLC,是一種面向比特的鏈路層協議。

 

 

 

  HDLC是一種面向比特的通信規則。HDLC傳送的信息單位為幀。作為面向比特的同步數據控制協議的典型,HDLC具有如下特點:

  1. 協議不依賴於任何一種字符編碼集;
  2. 數據報文可透明傳輸,用於透明傳輸的“0比特插入法”易於硬件實現;
  3. 全雙工通信,不必等待確認可連續發送數據,有較高的數據鏈路傳輸效率;
  4. 所有幀均采用CRC校驗,並對信息幀進行編號,可防止漏收或重收,傳輸可靠性高;
  5. 傳輸控制功能與處理功能分離,具有較大的靈活性和較完善的控制功能。

  0比特插入法:https://baike.so.com/doc/24788927-25712150.html

  CRC:https://baike.baidu.com/item/CRC/1453359?fr=aladdin

HDLC幀結構

  

 HDLC有三種類型的幀:信息幀 I、監控幀 S 、無編號幀 U 。

 

  • 信息幀(I幀)用於傳送有效信息或數據,通常簡稱為I幀。
  • 監控幀(S幀)用於差錯控制和流量控制,通常稱為S幀。S幀的標志是控制字段的前兩個比特位為“10”。S幀不帶信息字段,只有6個字節即48個比特。
  • 無編號幀(U幀)簡稱U幀。U幀用於提供對鏈路的建立、拆除以及多種控制功能。

 

完整的HDLC幀由標志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、幀校驗序列字段(FCS)等組成。

  • 標志字段為01111110,用以標志幀的開始與結束,也可以作為幀與幀之間的填充字符。
  • 地址字段攜帶的是地址信息。
  • 控制字段用於構成各種命令及響應,以便對鏈路進行監視與控制。發送方利用控制字段來通知接收方來執行約定的操作;相反,接收方用該字段作為對命令的響應,報告已經完成的操作或狀態的變化。
  • 信息字段可以包含任意長度的二進制數,其上限由FCS字段或通訊節點的緩存容量來決定,目前用得較多的是1000-2000比特,而下限可以是0,即無信息字段。監控幀中不能有信息字段。
  • 幀檢驗序列字段可以使用16位CRC對兩個標志字段之間的內容進行校驗。

HDLC配置

[RTA]interface Serial 1/0/0 
[RTA-Serial1/0/0]link-protocol hdlc                                 // 接口下使能HDLC協議
Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N]:y 
[RTA-Serial1/0/0]ip address 10.0.1.1 30
[RTA-Serial1/0/0]ip address unnumbered interface loopBack 0                   //  IP地址借用:從其它接口借用IP地址,一般建議借用loopback接口的IP地址    

 PPP協議

 

 

 

  • PPP協議是一種點到點鏈路層協議,主要用於在全雙工的同異步鏈路上進行點到點的數據傳輸。

PPP協議有如下優點:

  • PPP既支持同步傳輸又支持異步傳輸,而X.25、FR(Frame Relay)等數據鏈路層協議僅支持同步傳輸,SLIP僅支持異步傳輸。
  • PPP協議具有很好的擴展性,例如,當需要在以太網鏈路上承載PPP協議時,PPP可以擴展為PPPoE。
  • PPP提供了LCP(Link Control Protocol)協議,用於各種鏈路層參數的協商。
  • PPP提供了各種NCP(Network Control Protocol)協議(如IPCP、IPXCP),用於各網絡層參數的協商,更好地支持了網絡層協議。
  • PPP提供了認證協議CHAP(Challenge-Handshake Authentication Protocol)PAP(Password Authentication Protocol),更好的保證了網絡的安全性。
  • 無重傳機制,網絡開銷小,速度快

PPP組件

  

 

 

 

  • 鏈路控制協議LCP:LCP可以自動檢測鏈路環境,如是否存在環路;協商鏈路參數,如最大數據包長度,使用何種認證協議等等。與其他數據鏈路層協議相比,PPP協議的一個重要特點是可以提供認證功能,鏈路兩端可以協商使用何種認證協議來實施認證過程,只有認證成功之后才會建立連接
  • 網絡層控制協議NCP:每一個NCP對應了一種網絡層協議,用於協商網絡層地址等參數,例如 IPCP用於協商控制IP協議,IPXCP用於協商控制IPX協議等。

  IPCP:https://wenku.baidu.com/view/545316f4700abb68a982fb5c.html

  IPX:https://baike.baidu.com/item/IPX/609379?fr=aladdin

PPP建立過程

  

  • 協商內容包括最大接收單元MRU、認證方式、魔術字(Magic Number)等選項。
  • LCP參數協商成功后會進入Opened狀態,表示底層鏈路已經建立。
  • Authenticate階段 和 Network階段 再次收到了Configure-Request報文,則又會返回到鏈路Establish階段。
  • 協商成功后(Network階段),如果物理鏈路斷開、認證失敗、超時定時器時間、管理員通過配置關閉連接等動作都可能導致鏈路進入Terminate階段。
  • 在Terminate階段,如果所有的資源都被釋放,通信雙方將回到Dead階段。

PPP幀格式

  

 

 

 

  • PPP采用了與HDLC協議類似的幀格式:
  • Flag域標識一個物理幀的起始和結束,該字節為二進制序列01111110(0X7E)。
  • PPP幀的地址域跟HDLC幀的地址域有差異,PPP幀的地址域字節固定為11111111 (0XFF),是一個廣播地址
  • PPP數據幀的控制域默認為00000011(0X03),表明為無序號幀
  • 幀校驗序列(FCS)是個16位的校驗和,用於檢查PPP幀的完整性。
  • 協議字段用來說明PPP所封裝的協議報文類型,典型的字段值有:0XC021代表LCP報文,0XC023代表PAP報文,0XC223代表CHAP報文
  • 信息字段包含協議字段中指定協議的數據包。數據字段的默認最大長度(不包括協議字段)稱為最大接收單元MRU(Maximum Receive Unit),MRU的缺省值為1500字節
  • 如果協議字段被設為0XC021,則說明通信雙方正通過LCP報文進行PPP鏈路的協商和建立:
    • Code字段,主要是用來標識LCP數據報文的類型。典型的報文類型有:配置信息報文(Configure Packets: 0x01),配置成功信息報文(Configure-Ack: 0X02),終止請求報文(Terminate-Request:0X05)
    • Identifier域為1個字節,用來匹配請求和響應
    • Length域的值就是該LCP報文的總字節數據。
    • 數據字段則承載各種TLV(Type/Length/Value)參數用於協商配置選項,包括最大接收單元,認證協議等等。

LCP報文格式

  

  • Configure-Request(配置請求):鏈路層協商過程中發送的第一個報文,該報文表明點對點雙方開始進行鏈路層參數的協商。
  • Configure-Ack(配置響應):收到對端發來的Configure-Request報文,如果參數取值完全接受,則以此報文響應。
  • Configure-Nak(配置不響應):收到對端發來的Configure-Request報文,如果參數取值不被本端認可,則發送此報文並且攜帶本端可接受的配置參數。
  • Configure-Reject(配置拒絕):收到對端發來的Configure-Request報文,如果本端不能識別對端發送的Configure-Request中的某些參數,則發送此報文並且攜帶那些本端不能認別的配置參數。

LCP鏈路協商參數

  

Configure-Nak報文中,只包含不能接受的鏈路層參數,並且此報文所包含的鏈路層參數均被修改為RTB上可以接受的取值(或取值范圍)。
Configure-Reject報文中,只包含不能被識別的鏈路層參數。RTA需要重新發送一個Configure-Request報文,不再包含不被對端(RTB)識別的參數,也就是所有都要被識別

PPP認證模式

  PAP認證

  

  •  PAP認證的工作原理較為簡單。PAP認證協議為兩次握手認證協議,密碼以明文方式在鏈路上發送。

  CHAP認證

  

CHAP認證 過程需要三次報文的交互。為了匹配請求報文和回應報文,報文中含有Identifier字段一次認證過程所使用的報文均使用相同的Identifier信息

  • LCP協商完成后,認證方發送一個Challenge報文給被認證方,報文中含有Identifier信息和一個隨機產生的Challenge字符串,此Identifier即為后續報文所使用的Identifier
  • 被認證方收到此Challenge報文之后,進行一次加密運算,運算公式為MD5{ Identifier+密碼+Challenge },意思是將Identifier、密碼和Challenge三部分連成一個字符串,然后對此字符串做MD5運算,得到一個16字節長的摘要信息,然后將此摘要信息和端口上配置的CHAP用戶名一起封裝在Response報文中發回認證方。
  • 認證方接收到被認證方發送的Response報文之后,按照其中的用戶名在本地查找相應的密碼信息,得到密碼信息之后,進行一次加密運算,運算方式和被認證方的加密運算方式相同,然后將加密運算得到的摘要信息Response報文中封裝的摘要信息比較相同認證成功,不相同則認證失敗。
  • 使用CHAP認證方式時,被認證方的密碼是被加密后才進行傳輸的,這樣就極大的提高了安全性。

IPCP地址協商

  IP地址協商包括兩種方式:靜態配置協商和動態配置協商

  靜態配置協商

  

 

 

  1. 每一端都要發送Configure-Request報文,在此報文中包含本地配置的IP地址
  2. 每一端接收到此Configure-Request報文之后,檢查其中的IP地址,如果IP地址是一個合法的單播IP地址,而且和本地配置的IP地址不同(沒有IP沖突),則認為對端可以使用該地址,回應一個Configure-Ack報文

  動態配置協商

  

 

  •  動態IP協商是雙向都要確認的,也就是雙方都要收到Configure-Ack報文才算成功。

 PPP認證配置實現

 

  

 

 

 

[RTA]aaa 
[RTA-aaa]local-user huawei password cipher huawei123
[RTA-aaa]local-user huawei service-type ppp               
[RTA]interface Serial 1/0/0  
[RTA-Serial1/0/0]link-protocol ppp
[RTA-Serial1/0/0]ppp authentication-mode pap
[RTA-Serial1/0/0]ip address 10.1.1.1 30
[RTB]interface Serial 1/0/0  
[RTB-Serial1/0/0]link-protocol ppp
[RTB-Serial1/0/0]ppp pap local-user huawei password cipher huawei123 
[RTB-Serial1/0/0]ip address 10.1.1.2 30

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM