新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式單片機(jī)PPP協(xié)議的應(yīng)用

嵌入式單片機(jī)PPP協(xié)議的應(yīng)用

作者: 時間:2010-12-09 來源:網(wǎng)絡(luò) 收藏

(Point-to-Point Protocol)提供了在串行點(diǎn)對點(diǎn)鏈路上傳輸數(shù)據(jù)報(bào)的方法,支持異步8位數(shù)據(jù)及位導(dǎo)向的同步連接(如ISDN)。它提供了一種管理兩點(diǎn)間會話的有效方法,正在取代SLIP(Serial Line Interface Protocol)成為點(diǎn)對點(diǎn)網(wǎng)絡(luò)的標(biāo)準(zhǔn)。

是在中嵌入協(xié)議,以實(shí)現(xiàn)與計(jì)算機(jī)之間的PPP數(shù)據(jù)傳輸,使它既可以作為PPP連接的客戶端,也可以作為獨(dú)立的PPP服務(wù)器端來使用。它在家電控制和小型數(shù)據(jù)傳輸系統(tǒng)中具有非常廣闊的前景,并且具有成本低、傳輸穩(wěn)定等特點(diǎn),是當(dāng)前單片機(jī)研究的熱門話題之一。

1 PPP的工作原理

PPP采用高級數(shù)據(jù)鏈路控制(HDLC)協(xié)議作為在對點(diǎn)鏈路上分裝數(shù)據(jù)報(bào)的基本方法。使用可擴(kuò)展的鏈路控制協(xié)議(LCP)來建立、配置和測試數(shù)據(jù)鏈路。用網(wǎng)絡(luò)控制協(xié)議簇(NCP)來建立和配置不同的網(wǎng)絡(luò)層協(xié)議,PPP允許同時采用多種網(wǎng)絡(luò)層協(xié)議。

為了建立點(diǎn)對點(diǎn)鏈路上的通信連接,發(fā)送端PPP首先發(fā)送LCP幀,以配置和測試數(shù)據(jù)鏈路。在LCP建立好數(shù)據(jù)鏈路并協(xié)調(diào)好所選設(shè)備后,發(fā)送端PPP發(fā)送NCP幀,以選擇和配置一個或多個網(wǎng)絡(luò)層協(xié)議。當(dāng)所選的網(wǎng)絡(luò)層協(xié)議配置好后,便可以將各網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包發(fā)送到數(shù)據(jù)鏈路上。配置好的鏈路將一直處于通信狀態(tài),直到LCP幀或NCP幀明確提示關(guān)閉鏈路,或有其它的外部事件發(fā)生。PPP連接狀態(tài)圖如圖1所示。

本文引用地址:http://m.butianyuan.cn/article/173093.htm

1.1 連接死亡階段

一個連接的開始和結(jié)束都要經(jīng)歷這個階段。當(dāng)一個外部事件指示物理層已準(zhǔn)備好并可使用時,PPP進(jìn)入建立連接階段。此時,LCP自動機(jī)處于初始階段。當(dāng)它向鏈路建立階段轉(zhuǎn)換時將給LCP自動機(jī)發(fā)送一個UP事件信號。

1.2 連接建立階段

LCP用于交換配置信息包、建立連接。一旦一個配置成功的信息包發(fā)送且被接收,就完成了交換,進(jìn)入LCP開啟狀態(tài)。所有的配置選項(xiàng)都假定使用默認(rèn)值,除非在配置交換過程中被改變。只有那些與特定的網(wǎng)絡(luò)層協(xié)議無關(guān)的選項(xiàng)才會被LCP配置。收到LCP配置數(shù)據(jù)包將使鏈路從網(wǎng)絡(luò)層協(xié)議階段或者認(rèn)證階段返回到鏈路建立階段。

1.3 認(rèn)證階段

在某些連接情況下,希望在允許網(wǎng)絡(luò)層協(xié)議交換數(shù)據(jù)前對等實(shí)行認(rèn)證。默認(rèn)情況下,是不要求認(rèn)證的。認(rèn)證要求必須在建立連接階段提出,然后進(jìn)入認(rèn)證階段。如果認(rèn)證失敗,將進(jìn)入連接終止階段。在此階段只對連接協(xié)議、認(rèn)證協(xié)議、連接質(zhì)量測試數(shù)據(jù)包進(jìn)行處理。

1.4 網(wǎng)絡(luò)層協(xié)議階段

一旦PPP完成上述階段,便進(jìn)入網(wǎng)絡(luò)協(xié)議階段。每一個網(wǎng)絡(luò)層協(xié)議 (例如IP、IPX、AppleTalk等)必須有相應(yīng)的網(wǎng)絡(luò)控制協(xié)議(NCP)單獨(dú)配置,每個網(wǎng)絡(luò)控制協(xié)議都可以隨時打開或關(guān)閉。此階段,LCP協(xié)議自動狀態(tài)機(jī)處于打開狀態(tài),接收到的任何不支持的協(xié)議數(shù)據(jù)包都會被返回一個協(xié)議拒絕包,而接收到的所有支持的數(shù)據(jù)包都將被丟棄。此時,鏈路上流通的是LCP數(shù)據(jù)包、NCP數(shù)據(jù)包以及網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包。

1.5 終止連接階段

PPP連接可以隨時被終止。LCP通過交換連接終止包來終止連接。當(dāng)連接被終止時,PPP會通知物理層采取相應(yīng)的動作。只有當(dāng)物理層斷開,連接才會真正被終止。此階段,接收到的所有非LCP數(shù)據(jù)包都將被丟棄。

2 PPP數(shù)據(jù)結(jié)構(gòu)

PPP數(shù)據(jù)幀的結(jié)構(gòu)如表1所示,PPP協(xié)議標(biāo)志如表2所示。



每個PPP數(shù)據(jù)包的開始和結(jié)束都有一個0x7E的數(shù)據(jù)標(biāo)志。在開始標(biāo)志后,緊跟2個HDLC常量:地址常量0xFF和控制常量0x03。協(xié)議域長度通常為2字節(jié),表示信息域里包含的是哪種協(xié)議以及它的處理信息。隨后是代碼(Code)、標(biāo)識符(ID)和長度域(Length)。事實(shí)上它們都是信息域(Payload)的一部分。信息域長度最多為1500字節(jié)。代碼部分用來指示LCP、PAP、IPCP或者CHAP協(xié)議數(shù)據(jù)包中的某種類型。通常情況下,用來表示IP自尋址信息數(shù)據(jù)包的標(biāo)識是0x45。ID對于每一幀來說都是唯一的,所有協(xié)議間的商談和響應(yīng)都通過ID聯(lián)系在一起。只有當(dāng)PPP協(xié)議幀被壓縮成IP尋址信息包時例外。這個時候ID表示的是一種服務(wù)類型。有效載荷部分是可變的,并能隨著請求和響應(yīng)的變化作相應(yīng)的改變。在IP自尋址情況下,IP數(shù)據(jù)包的大小與PPP協(xié)議幀的大小是兼容的,有效載荷包含有關(guān)協(xié)議的商談和數(shù)據(jù)包的保持。然后是一個長度為2字節(jié)循環(huán)冗余檢驗(yàn)碼,以檢測數(shù)據(jù)幀中的錯誤。由于標(biāo)志字符的值是0x7E,因此當(dāng)該字符出現(xiàn)在信息字段中時, PPP需要對它進(jìn)行轉(zhuǎn)義。具體實(shí)現(xiàn)過程如下:

(1)當(dāng)遇到字符0x7E時,需連續(xù)傳送2個字符:0x7D和0x5E,以實(shí)現(xiàn)標(biāo)志字符的轉(zhuǎn)義。

(2)當(dāng)遇到轉(zhuǎn)義字符0x7D時,需連續(xù)傳送2個字符:0x7D和0x5D,以實(shí)現(xiàn)轉(zhuǎn)義字符的轉(zhuǎn)義。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉