PPP協定

PPP協定

點對點協定(PPP)為在點對點連線上傳輸多協定數據包提供了一個標準方法。PPP 最初設計是為兩個對等節點之間的IP流量傳輸提供一種封裝協定。在 TCP-IP 協定集中它是一種用來同步調製連線的數據鏈路層協定(OSI模式中的第二層),替代了原來非標準的第二層協定,即 SLIP。除了 IP 以外 PPP 還可以攜帶其它協定,包括 DECnet 和 Novell 的 Internet 網包交換(IPX)。

基本信息

簡介

PPP協定PPP協定
PPP:點對點協定(PPP:PointtoPointProtocol)

PPP(點到點協定)是為在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協定。這種鏈路提供全雙工操作,並按照順序傳遞數據包。設計目的主要是用來通過撥號或專線方式建立點對點連線傳送數據,使其成為各種主機、網橋和路由器之間簡單連線的一種共通的解決方案。

點對點協定(PPP)為在點對點連線上傳輸多協定數據包提供了一個標準方法。PPP最初設計是為兩個對等節點之間的IP流量傳輸提供一種封裝協定。在TCP-IP協定集中它是一種用來同步調製連線的數據鏈路層協定(OSI模式中的第二層),替代了原來非標準的第二層協定,即SLIP。除了IP以外PPP還可以攜帶其它協定,包括DECnet和Novell的Internet網包交換(IPX)。

功能

1、PPP具有動態分配IP位址的能力,允許在連線時刻協商IP位址;

2、PPP支持多種網路協定,比如TCP/IP、NetBEUI、NWLINK等;

3、PPP具有錯誤檢測以及糾錯能力,支持數據壓縮;

4、PPP具有身份驗證功能。

5、PPP可以用於多種類型的物理介質上,包括串口線、電話線、行動電話和光纖(例如SDH),PPP也用於Internet接入。

幀格式

PPP的幀格式

7E
FF 03 協定 信息 FCS 7E
位元組 1 1 1 2 <=1500 2 1

PPP採用7EH作為一幀的開始和結束標誌(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H);協定域(兩個位元組)取0021H表示IP分組,取8021H表示網路控制數據,取C021H表示鏈路控制數據;幀校驗域(FCS)也為兩個位元組,它用於對信息域的校驗。若信息域中出現7EH,則轉換為(7DH,5EH)兩個字元。當信息域出現7DH時,則轉換為(7DH,5DH)。當信息流中出現ASCII碼的控制字元(即小於20H),即在該字元前加入一個7DH字元。

部分組成

封裝:一種封裝多協定數據報的方法。PPP封裝提供了不同網路層協定同時在同一鏈路傳輸的多路復用技術。PPP封裝精心設計,能保持對大多數常用硬體的兼容性,克服了SLIP不足之處的一種多用途、點到點協定,它提供的WAN數據連結封裝服務類似於LAN所提供的封閉服務。所以,PPP不僅僅提供幀定界,而且提供協定標識和位級完整性檢查服務。

鏈路控制協定:一種擴展鏈路控制協定,用於建立、配置、測試和管理數據鏈路連線。

網路控制協定:協商該鏈路上所傳輸的數據包格式與類型,建立、配置不同的網路層協定;

配置:使用鏈路控制協定的簡單和自製機制。該機制也套用於其它控制協定,例如:網路控制協定(NCP)。

為了建立點對點鏈路通信,PPP鏈路的每一端,必須首先傳送LCP包以便設定和測試數據鏈路。在鏈路建立,LCP所需的可選功能被選定之後,PPP必須傳送NCP包以便選擇和設定一個或更多的網路層協定。一旦每個被選擇的網路層協定都被設定好了,來自每個網路層協定的數據報就能在鏈路上傳送了。

鏈路將保持通信設定不變,直到有LCP和NCP數據包關閉鏈路,或者是發生一些外部事件的時候(如,休止狀態的定時器期滿或者網路管理員干涉)。
套用:假設同樣是在Windows98,並且已經創建好“撥號連線”。那么可以通過下面的方法來設定PPP協定:首先,打開“撥號連線”屬性,同樣選擇“伺服器類型”選項卡;然後,選擇默認的“PPP:Internet,WindowsNTServer,Windows98”,在高級選項中可以設定該協定其它功能選項;最後,單擊“確定”按鈕即可。

工作流程

當用戶撥號接入ISP時,路由器的數據機對撥號做出確認,並建立一條物理連線(底層up)。

PC機向路由器傳送一系列的LCP分組(封裝成多個PPP幀)。

這些分組及其回響選擇一些PPP參數,和進行網路層配置(此前如有PAP或CHAP驗證先要通過驗證),NCP給新接入的PC機分配一個臨時的IP位址,使PC機成為網際網路上的一個主機。

通信完畢時,NCP釋放網路層連線,收回原來分配出去的IP位址。接著,LCP釋放數據鏈路層連線。最後釋放的是物理層的連線。

和HDLC的區別

最主要的區別

PPP是面向字元的,HDLC是面向位的。

特點

PPP協定是一種點——點串列通信協定。PPP具有處理錯誤檢測、支持多個協定、允許在連線時刻協商IP位址、允許身份認證等功能,還有其他。PPP提供了3類功能:成幀;鏈路控制協定LCP;網路控制協定NCP。PPP是面向字元類型的協定。

套用範圍

PPP是一種多協定成幀機制,它適合於數據機、HDLC位序列線路、SONET和其它的物理層上使用。它支持錯誤檢測、選項協商、頭部壓縮以及使用HDLC類型幀格式(可選)的可靠傳輸。

PPP提供了三類功能:

1成幀:他可以毫無歧義的分割出一幀的起始和結束。

2鏈路控制:有一個稱為LCP的鏈路控制協定,支持同步和異步線路,也支持面向位元組的和面向位的編碼方式,可用於啟動路線、測試線路、協商參數、以及關閉線路。

3網路控制:具有協商網路層選項的方法,並且協商方法與使用的網路層協定獨立。

認證方式

一種是PAP,一種是CHAP。相對來說PAP的認證方式安全性沒有CHAP高。PAP在傳輸password是明文的,而CHAP在傳輸過程中不傳輸密碼,取代密碼的是hash(哈希值)。PAP認證是通過兩次握手實現的,而CHAP則是通過3次握手實現的。PAP認證是被叫提出連線請求,主叫回響。而CHAP則是主叫發出請求,被叫回復一個數據包,這個包裡面有主叫傳送的隨機的哈希值,主叫在資料庫中確認無誤後傳送一個連線成功的數據包連線

常見問題

1)什麼是LCP?

鏈路控制協定(LCP)LCP建立點對點鏈路,是PPP中實際工作的部分。LCP位於物理層的上方,負責建立、配置和測試數據鏈路連線。LCP還負責協商和設定WAN數據鏈路上的控制選項,這些選項由NCP處理。

2)NCP是什麼?

PPP允許多個網路協定共用一個鏈路,網路控制協定(NCP)負責連線PPP(第二層)和網路協定(第三層)。對於所使用的每個網路層協定,PPP都分別使用獨立的NCP來連線。例如,IP使用IP控制協定(IPCP),IPX使用NovellIPX控制協定(IPXCP)。

配置方法

基本配置

1,啟用pppRouterTest#configterminal

Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

RouterTest(config)#interfaceserial0/0

RouterTest(config-if)#encapsulationppp

RouterTest(config-if)#

2,地址配置命令

RouterTest(config-if)#ipaddress10.1.1.1255.255.255.0

PAP配置實例

Router(config)#hostnameRouterA

RouterA(config)#RouterBpassworditsasecret

RouterA(config)#interfaceAsync0

RouterA(config-if)#encapsulationppp

RouterA(config-if)#ipaddress10.0.0.1255.255.255.0

RouterA(config-if)#dialer-mapip10.0.0.2nameRouterB5551234

RouterA(config-if)#usernameRouterApassworditsasecret2

Router(config)#hostnameRouterB

RouterB(config)#RouterApassworditsasecret

RouterB(config)#interfaceAsync0

RouterB(config-if)#encapsulationppp

RouterB(config-if)#ipaddress10.0.0.2255.255.255.0

RouterB(config-if)#dialer-mapip10.0.0.1nameRouterA5551234

RouterB(config-if)#usernameRouterBpassworditsasecret2

CHAP配置實例

Router(config)#hostnameRouterA

RouterA(config)#RouterBpassworditsasecret

RouterA(config)#interfaceAsync0

RouterA(config-if)dialerin-band

RouterA(config-if)#encapsulationppp

RouterA(config-if)#pppauthenticationchap

RouterA(config-if)#ipaddress10.0.0.1255.255.255.0

RouterA(config-if)#dialer-mapip10.0.0.2nameRouterB5551234

RouterA(config-if)#usernameRouterApassworditsasecret2

Router(config)#hostnameRouterB

RouterB(config)#RouterApassworditsasecret

RouterB(config)#interfaceAsync0

RouterB(config-if)dialerin-band

RouterB(config-if)#encapsulationppp

RouterB(config-if)#pppauthenticationchap

RouterB(config-if)#ipaddress10.0.0.2255.255.255.0

RouterB(config-if)#dialer-mapip10.0.0.1nameRouterA5551234

RouterB(config-if)#usernameRouterBpassworditsasecret2

CHAP和PAP

Router(config-if)#pppauthenticationchappap

配置PPP回撥

使用壓縮

cisco支持的壓縮方法:

Predictor:先判斷數據是否已經被壓縮過。如果數據被壓縮過,則立即將其傳送出去,而不浪費時間對已經壓縮過的數據進行壓縮。

Stacker:一種基於Lempel-Ziv(LZ)的壓縮算法,對每種數據類型,只傳送一次有關其在數據流中的位置。接收方根據這些信息重新組織數據流。

MPPC:MPPC協定(RFC2118)讓cisco路由器器能夠與microsoft客戶端交換壓縮後的數據,它使用一種基於LZ的壓縮算法

TCP報頭壓縮:也叫VanJacobson壓縮,只用於壓縮tcp報頭。

配置壓縮

Router(config)#interfaceserial2

Router(config-if)#compress{predictor|stac|mppc}

Or

Router(config)#interfaceasync

Router(config-if)#iptcpheader-compression

Or

Router(config)#interfaceasync

Router(config-if)#iptcpheader-compressionpassive

該命令告訴路由器,僅當從對方那裡收到壓縮後的報頭後,才使用tcp報頭壓縮。

多鏈路PPP

通過使用多鏈路PPP,可以將多條連線捆綁成一條虛擬連線。

Router(config-if)#pppmultilink

Router(config-if)#dialerload-thresholdload[outbound|inbound|either]

命令dialerload-thresholload指定在什麼情況下將更多的B信道加入到MLP鏈路束中。當所有B信道的總負載超過指定的閥值後,撥號接口(BRI或PRI)將信道加入到多鏈路束中。

同樣,如果總負載低於閥值,將拆除B信道。

參數load是接口的平均負載,其取值為1(沒有負載)到255(滿載)。

參數outbound(默認值)指定計算負載時只考慮出站數據流;參數inbound指定只考慮入站數據流;either指定計算負載時,選擇出站負載和入站負載中較大的那個。

故障排查命令

debugpppnegotiation-確定客戶端是否可以通過PPP協商;這是您檢查地址協商的時候。

debugpppauthentication-確定客戶端是否可以通過驗證。如果您在使用CiscoIOS軟體版本11.2之前的一個版本,請發出debugpppchap命令。

debugppperror-顯示和PPP連線協商與操作相關的協定錯誤以及統計錯誤。

debugaaaauthentication-要確定在使用哪個方法進行驗證(應該是RADIUS,除非RADIUS伺服器發生故障),以及用戶是否通過驗證。

debugaaaauthorization-要確定在使用哪個方法進行驗證,並且用戶是否通過驗證。

debugaaaaccounting-查看傳送的記錄。

debugradius-查看用戶和伺服器交換的屬性。

相關搜尋

熱門詞條

聯絡我們