天天看點

PPP協定介紹

PPP協定介紹

使用者接入Internet,在傳送資料時都需要有資料鍊路層協定,其中最為廣泛的是串行 線路網際協定(SLIP)和點對點協定(PPP)。由于SLIP具有僅支援IP等缺點,主要用于低速(不超過19.2kbit/s)的互動性業務,它并未成為Internet的标準協定。為了改進SLIP,人們制訂了點對點PPP(Point-to-Point Protocol)。RFC1661、RFC1662、RFC1663。

       PPP三大成就:

1.明确地劃分出一幀的尾部和下一幀的頭部的成幀方式。這種幀格式也處理錯誤檢測工作。

2.當線路不再需要時,挑出這些線路,測試它們,商議選擇,并仔細地再次釋放鍊路控制協定。這個協定被稱為鍊路控制協定LCP(link control protocol)。

3.用獨立于所使用的網絡層協定的方法來商議使用網絡層的哪些選項。對于每個所支援的網絡層來說,所選擇的方法有不同的網絡控制協定NCP(network control protocol)。

PPP幀不僅能通過撥号電話線發送出去,而且還能通過SONET或真正面向位的HDLC線路(即路由器與路由器相連)發送出去。

PPP協定有三個組成部分:

(1)一個将IP資料報封到串行鍊路的方法。PPP既支援異步鍊路(無奇偶校驗的8比特資料),也支援面向比特的同步鍊路。

(2)一個用來建立、配置和測試資料鍊路的鍊路控制協定LCP(Link Control Protocol)。通信的雙方可協商一些選項。在[RFC 1661]中定義了11種類型的LCP分組。

(3)一套網絡控制協定NCP(Network Control Protocol),支援不同的網絡層協定,如IP、OSI的網絡層、DECnet、AppleTalk等。

PPP幀格式和HDLC幀格式相似,如圖1所示。二者主要差別:PPP是面向字元的,而HDLC是面向位的。

圖1 PPP幀格式

    可以看出,PPP幀的前3個字段和最後兩個字段與HDLC的格式是一樣的。标志字段F為0x7E(0x表示7E),但位址字段A和控制字段C都是固定不變的,分别為0xFF、0x03。PPP協定不是面向比特的,因而所有的PPP幀長度都是整數個位元組。

    與HDLC不同的是多了2個位元組的協定字段。協定字段不同,後面的資訊字段類型就不同。如:

0x0021——資訊字段是IP資料報

0xC021——資訊字段是鍊路控制資料LCP

0x8021——資訊字段是網絡控制資料NCP

0xC023——資訊字段是安全性認證PAP

0xC025——資訊字段是LQR

0xC223——資訊字段是安全性認證CHAP

    當資訊字段中出現和标志字段一樣的比特0x7E時,就必須采取一些措施。因PPP協定是面向字元型的,是以它不能采用HDLC所使用的零比特插入法,而是使用一種特殊的字元填充。具體的做法是将資訊字段中出現的每一個0x7E位元組轉變成2位元組序列(0x7D,0x5E)。若資訊字段中出現一個0x7D的位元組,則将其轉變成2位元組序列(0x7D,0x5D)。若資訊字段中出現ASCII碼的控制字元,則在該字元前面要加入一個0x7D位元組。這樣做的目的是防止這些表面上的ASCII碼控制字元被錯誤地解釋為控制字元。

當使用者撥号接入ISP時,路由器的數據機對撥号做出應答,并建立一條實體連接配接。這時PC機向路由器發送一系列的LCP分組(封裝成多個PPP幀)。這些分組及其響應選擇了将要使用的一些PPP參數,接着就進行網絡層培植,NCP給新接入的PC機配置設定一個臨時的IP位址,這樣PC機就成為Internet上一個主機了。

當使用者通信完畢時,NCP釋放網絡層連接配接,收回原來配置設定出去的IP位址。接着LCP釋放資料鍊路層連接配接,最後釋放的是實體層的連接配接。

上述過程可用圖2來描述。

圖2 PPP協定過程狀态圖

當線路處于靜止狀态時,并不存在實體層的連接配接。當檢測到數據機的載波信号,并建立實體層連接配接後,線路就進入建立狀态,這時LCP開始協商一些選項。協商結束後就進入鑒别狀态。若通信的雙方鑒别身份成功,則進入網絡狀态。NCP配置網絡蹭,配置設定IP位址,然後就進入可進行資料通信的打開狀态。資料傳輸結束後就轉到終止狀态。載波停止後則回到靜止狀态。

路由器Router1和Router2的S0口均封裝PPP協定,采用CHAP做認證,在Router1中應建立一個使用者,以對端路由器主機名作為使用者名,即使用者名應為router2。同時在Router2中應建立一個使用者,以對端路由器主機名作為使用者名,即使用者名應為router1。所建的這兩使用者的password必須相同。

設定如下:

<b>Router1:</b><b></b>

<b></b>

hostname router1

username router2 password xxx

interface Serial0

ip address 192.200.10.1 255.255.255.0

clockrate 1000000

ppp authentication chap

<b>Router2:</b><b></b>

hostname router2

username router1 password xxx

ip address 192.200.10.2 255.255.255.0

本文轉自 linuxtro 51CTO部落格,原文連結:http://blog.51cto.com/linuxtro/307241,如需轉載請自行聯系原作者

繼續閱讀