基于GPRS的PPP協(xié)議的分析
第29卷 第5期 武漢理工大學(xué)學(xué)報(bào) 信息與管理工程版 文章編號(hào):1007-144X (2007) 05-0012-04V o. l 29N o . 5基于GPRS 的PPP 協(xié)
第29卷 第5期 武漢理工大學(xué)學(xué)報(bào) 信息與管理工程版 文章編號(hào):1007-144X (2007) 05-0012-04
V o. l 29N o . 5
基于GPRS 的PPP 協(xié)議的分析
曾 剛
(武漢理工大學(xué)信息工程學(xué)院, 湖北武漢430070)
摘 要:通過(guò)對(duì)PPP 進(jìn)行深入研究, 分析了基于GPRS 的PPP 協(xié)商過(guò)程, 敘述了PPP 組成、內(nèi)容、含義和連接的過(guò)程等; 并分析了PPP 協(xié)商過(guò)程的數(shù)據(jù)交換情況, 從而為進(jìn)一步利用PPP 協(xié)議實(shí)現(xiàn)無(wú)線傳輸終端提供了良好的基礎(chǔ)。
關(guān)鍵詞:GPRS ; PPP ; LCP
中圖法分類號(hào):TP393. 05 文獻(xiàn)標(biāo)識(shí)碼:A
GPRS 即 通用分組無(wú)線業(yè)務(wù)! (genera l pac k
[1]
et radio serv ice) , 是在現(xiàn)有GS M 網(wǎng)絡(luò)上開(kāi)通的一種新型的數(shù)據(jù)傳輸技術(shù)。GPRS 采用分組交換方式, 僅在實(shí)際傳送和接收數(shù)據(jù)時(shí)才占用無(wú)線資源。GPRS 理論上可提供高達(dá)171. 2kb /s的傳輸速率, 并有 永遠(yuǎn)在線! 的特點(diǎn), 即用戶可隨時(shí)與網(wǎng)絡(luò)保持聯(lián)系, 能提供快速及時(shí)的連接。GS M 網(wǎng)絡(luò)是目前國(guó)內(nèi)覆蓋范圍最廣、應(yīng)用最普遍的無(wú)線通信網(wǎng)絡(luò), 故構(gòu)建這種以GS M 網(wǎng)絡(luò)為基礎(chǔ)的數(shù)據(jù)傳輸系統(tǒng)具有廣泛的應(yīng)用環(huán)境, 能很好地應(yīng)用在各種遠(yuǎn)程數(shù)據(jù)的采集和控制系統(tǒng)。
構(gòu)成基于GPRS 的無(wú)線數(shù)據(jù)傳輸終端一般采用單片機(jī)或嵌入式CP U 對(duì)GPRS 模塊進(jìn)行控制。GPRS 模塊一般常用德國(guó)Sie m ens 公司、美國(guó)M o to r o la 公司和法國(guó)W aveco m 公司的產(chǎn)品。MC35i 是德國(guó)S ie m ens 公司一款GPRS 模塊產(chǎn)品, 其特點(diǎn)包括支持雙頻GSM 900MH z 和GS M l 800MH z ; 支持CS -1、CS -2、CS -3和CS -4編碼方式, GPRS 下行數(shù)據(jù)傳輸速率最高達(dá)到85. 6kb /s, 上行數(shù)據(jù)傳輸速率最高達(dá)到21. 4kb /s; 具備多速率的RS232接口; 支持語(yǔ)音、傳真、短消息; 具有較高的集成度
[2]
能首先要登錄GPRS 網(wǎng)絡(luò)中的GGSN, 這個(gè)工作可
以通過(guò)相關(guān)AT 命令完成。
1 登錄GPRS 網(wǎng)絡(luò)
登錄的基本過(guò)程如下:通過(guò)AT CGATT =? 命令檢查MC35i 是否附著GPRS , 返回0為未附著, 返回1為已附著。若沒(méi)有附著, 則發(fā)送AT CGATT=1命令進(jìn)行附著。"AT CGDCONT =1, I P , C MNET" 定義PDP(分組數(shù)據(jù)協(xié)議) 上下文, 其中1為PDP 上下文標(biāo)識(shí), I P 表明將要傳輸?shù)臄?shù)據(jù)包類型為I P 數(shù)據(jù)包, C MNET 為中國(guó)移動(dòng)的GPRS 網(wǎng)關(guān); ATD*99***1#命令進(jìn)行數(shù)據(jù)撥號(hào), 其中
[3]
1與上面的PDP 上下文標(biāo)識(shí)對(duì)應(yīng)。
在上述AT 命令正常執(zhí)行后, MC35i 就登錄到GPRS 網(wǎng)絡(luò)。但由于MC35i 沒(méi)有TCP /I P 協(xié)議棧, 控制器必須自行處理相關(guān)的協(xié)議解析工作才能進(jìn)行數(shù)據(jù)傳輸。為了能夠進(jìn)行I P 數(shù)據(jù)包的傳輸, 就必須首先實(shí)現(xiàn)數(shù)據(jù)鏈路層PPP 協(xié)議。
2 PPP 協(xié)議
PPP 是簡(jiǎn)單鏈路設(shè)計(jì)的鏈路層協(xié)議。設(shè)計(jì)目的主要是用來(lái)建立點(diǎn)對(duì)點(diǎn)連接進(jìn)行數(shù)據(jù)收發(fā)。PPP 協(xié)議中主要任務(wù)有鏈路建立、維護(hù)、拆除、上層協(xié)議協(xié)商和認(rèn)證等。在GPRS 網(wǎng)絡(luò)中一般用到的有LCP (鏈路控制協(xié)議) 、PAP (密碼驗(yàn)證協(xié)議) 、CHAP (挑戰(zhàn)握手驗(yàn)證協(xié)議) 和I PCP 協(xié)議(PPP I P 控制協(xié)議) 。
為了建立點(diǎn)到點(diǎn)連接, PPP 連接時(shí)的兩端開(kāi)始都必須發(fā)送LCP 數(shù)據(jù)包來(lái)配置和測(cè)試數(shù)據(jù)連
。
GPRS 模塊和控制器之間的連接是通過(guò)RS232實(shí)現(xiàn)的, 對(duì)于控制器而言, GPRS 模塊就相當(dāng)于一個(gè)調(diào)制解調(diào)器, 控制器通過(guò)串口發(fā)送AT 命令控制GPRS 模塊工作情況和得到GPRS 模塊相關(guān)信息。中國(guó)移動(dòng)在GPRS 網(wǎng)中建立了許多相當(dāng)于I SP 的GPRS 網(wǎng)關(guān)支持結(jié)點(diǎn)(GGSN ), 以連接GPRS 網(wǎng)與外部的I nter net 網(wǎng)絡(luò)。要使用GPRS 功
收稿日期:2006-12-02.
作者簡(jiǎn)介:曾 剛(1972-), 男, 湖南益陽(yáng)人, 武漢理工大學(xué)信息工程學(xué)院講師.
,第29卷 第5期 曾 剛:基于GPR S 的PPP 協(xié)議的分析
13
接; 在連接建立后, 對(duì)等實(shí)體還有可能需要認(rèn)證; 然后, PPP 必須發(fā)送NCP 數(shù)據(jù)包來(lái)選擇一種或多種網(wǎng)絡(luò)層協(xié)議來(lái)配置。一旦網(wǎng)絡(luò)層協(xié)議被配置好后, 該網(wǎng)絡(luò)層的數(shù)據(jù)報(bào)就可以被封裝在PPP 幀中在鏈路上傳送了。PPP 鏈路將保持可配置的狀態(tài)直到有LCP 數(shù)據(jù)包和NCP 數(shù)據(jù)包終止連接。PPP 協(xié)議狀態(tài)圖如圖1所示
[4]
表1為L(zhǎng)CP 包代碼字段含義的介紹。
表1 LCP 代碼字段含義
取值123456
含義Confi gure R equest Confi gure A ck Confi gure N ak Confi gure R e ject T er m i nate R equest T er m i nate A ck
說(shuō)明
配置選項(xiàng)請(qǐng)求包配置選項(xiàng)請(qǐng)求的確認(rèn)包配置選項(xiàng)請(qǐng)求的否認(rèn)包配置選項(xiàng)請(qǐng)求的拒絕包關(guān)閉連接請(qǐng)求包關(guān)閉連接確認(rèn)包
。
LCP 配置協(xié)商選項(xiàng)封裝在LCP 包的數(shù)據(jù)字段中, 包括類型(1字節(jié)) 、長(zhǎng)度(1字節(jié)) 和選項(xiàng)值(可變) 3個(gè)字段。其中類型表明該選項(xiàng)類型, 長(zhǎng)
圖1 PPP 協(xié)議狀態(tài)圖
度指明該選項(xiàng)長(zhǎng)度, 選項(xiàng)值為選項(xiàng)內(nèi)容。LCP 常
用協(xié)商選項(xiàng)如表2所示。
表2 LCP 常用協(xié)商選項(xiàng)
3 PPP 幀格式
PPP 協(xié)議基于HDLC , 其幀格式和H DLC 的幀格式類似, 如圖2所示。
標(biāo)志地址控制協(xié)議
信息
填充
校驗(yàn)標(biāo)志
取值字段含義說(shuō)明
最大接收單元異步控制字符影射認(rèn)證鑒權(quán)協(xié)議鏈路質(zhì)量協(xié)議魔術(shù)字協(xié)議域壓縮地址和控制域壓縮
1M ax i m u m R ece i ve U nit 2A synchronous Control Character M ap 3A ut henti cation Protoco l 4Q ua lity P ro t o co l 5M ag i c N u mber ?
7P rotoco l F ield Co m pressi on 8A ddress and Contro l F ie l d Compression
0x7E 0xFF 0x032By te 長(zhǎng)度可變長(zhǎng)度可變2Byte 0x7E
圖2 PPP 數(shù)據(jù)幀的格式
PPP 幀以標(biāo)志字符0x7E 作為一幀的開(kāi)始和結(jié)束, 地址字段和控制字段為固定值, 分別為0xFF 和0x03。幀檢驗(yàn)序列FCS 采用CRC -16作為整個(gè)PPP 幀的校驗(yàn)碼。協(xié)議字段代表信息字段所屬的協(xié)議。信息字段根據(jù)協(xié)議字段的不同裝載不同的數(shù)據(jù)包。填充字段在PPP 幀不夠長(zhǎng)時(shí)進(jìn)行填充。
在這里終端要求除認(rèn)證協(xié)議、ACC M (異步控制字符影射) 選項(xiàng)需要協(xié)商外, 其他協(xié)商選項(xiàng)一概采用初始值, 因此就需要拒絕除認(rèn)證協(xié)議協(xié)商項(xiàng)外所有的其他選項(xiàng)。進(jìn)行LCP 協(xié)商的基本思路如下:
(1) 等待服務(wù)器的LCP 的C onfigure -R e quest 包, 收到后進(jìn)行檢測(cè)。
(2) Configure-Request 包只有認(rèn)證選項(xiàng)配置請(qǐng)求。若為PAP 認(rèn)證選項(xiàng), 則接受并發(fā)送Con fi g ure-Request 包進(jìn)行ACC M 選項(xiàng)協(xié)商, 要求所有控制字符進(jìn)行轉(zhuǎn)換; 若為C HAP 認(rèn)證選項(xiàng), 則發(fā)送Confi g ure-N ak 包, 同時(shí)協(xié)商進(jìn)行PAP 認(rèn)證。
(3) 若Con fi g ure-R equest 包中包含多個(gè)選項(xiàng)配置請(qǐng)求, 則發(fā)Confi g ure-Re ject 包拒絕除認(rèn)證選項(xiàng)外的所有選項(xiàng)。
(4) 收到Con fi g ure-Ack 包。若為對(duì)ACC M 選項(xiàng)的確認(rèn), 則進(jìn)入PAP 認(rèn)證鑒權(quán)階段, LCP 協(xié)商結(jié)束。
4 PPP 協(xié)商過(guò)程分析
4. 1 LCP 配置協(xié)商
在GPRS 模塊撥號(hào)成功后, 就要進(jìn)行LCP 協(xié)商配置, LCP 數(shù)據(jù)包封裝在PPP 幀的信息字段中, 其協(xié)議字段為0xC021。LCP 數(shù)據(jù)包格式如圖3所示。
代碼1Byte
標(biāo)識(shí)1Byte
長(zhǎng)度
數(shù)據(jù)
2Byte 長(zhǎng)度可變
圖3 LCP 數(shù)據(jù)格式
代碼字段說(shuō)明數(shù)據(jù)包類型, 標(biāo)識(shí)字段指明數(shù)據(jù)包編號(hào), 長(zhǎng)度字段表明數(shù)據(jù)包的大小, 數(shù)據(jù)字段長(zhǎng)度可變, 其由一系列LCP 配置協(xié)商選項(xiàng)構(gòu)成。
,武漢理工大學(xué)學(xué)報(bào) 信息與管理工程版
14
2007年5月
(5) 若收到Ter m i n ate -Request 包, 則回應(yīng)Ter m i n ate-A ck 包, 關(guān)閉PPP 連接。
終端實(shí)際和網(wǎng)絡(luò)的交互過(guò)程如圖4

所示。
節(jié)), TCP /I P 報(bào)頭壓縮選項(xiàng)。
(2) 選項(xiàng)3, 類型標(biāo)志0x03, 長(zhǎng)度0x06(6字節(jié)), IP 地址配置選項(xiàng)。
(3) 選項(xiàng)129, 類型標(biāo)志0x81, 長(zhǎng)度0x06(6字節(jié)), 主用DNS 服務(wù)器I P 地址配置選項(xiàng)。(4) 選項(xiàng)131, 類型標(biāo)志0x83, 長(zhǎng)度0x06(6字節(jié)), 備用DNS 服務(wù)器I P 地址配置選項(xiàng)。
在PAP 認(rèn)證階段, 終端收到服務(wù)器的PAP 認(rèn)證確認(rèn)包后馬上發(fā)送一個(gè)I PCP 數(shù)據(jù)包進(jìn)行I P 地址配置。I PCP 數(shù)據(jù)包收發(fā)過(guò)程如下
[7]
:
(1) 終端主動(dòng)發(fā)送I PCP 數(shù)據(jù)包請(qǐng)求服務(wù)器分配I P 地址。IP 地址字段4個(gè)字節(jié)全填入0, 表示要求服務(wù)器給終端分配I P 地址。
(2) 收到服務(wù)器發(fā)來(lái)的配置請(qǐng)求包, 數(shù)據(jù)包中的I P 地址為服務(wù)器的I P 地址。
(3) 終端發(fā)送對(duì)上述配置請(qǐng)求包的確認(rèn), 認(rèn)可服務(wù)器I P 地址。
(4) 然后終端再發(fā)送配置請(qǐng)求包請(qǐng)求分配I P 地址, I P 地址仍然全為0。
(5) 收到服務(wù)器發(fā)來(lái)的配置拒絕包, 數(shù)據(jù)包
圖4 LCP 數(shù)據(jù)交互過(guò)程
中的I P 地址為服務(wù)器建議終端采用的I P 地址。(6) 終端重新發(fā)送I P 地址配置請(qǐng)求包, 并將I P 地址填入服務(wù)器建議的I P 地址。
(7) 收到服務(wù)器對(duì)I P 地址配置的確認(rèn)包, I P 地址分配成功, 終端可利用該I P 地址進(jìn)行I P 數(shù)據(jù)的收發(fā)。
上面交互過(guò)程完成后, 終端將主動(dòng)進(jìn)行PAP 認(rèn)證, 發(fā)出PAP 數(shù)據(jù)包, 進(jìn)入認(rèn)證鑒權(quán)階段。4. 2 PAP 認(rèn)證
PAP 認(rèn)證主要進(jìn)行用戶名和密碼認(rèn)證, 其數(shù)據(jù)包仍然封裝在PPP 幀內(nèi), 格式和LCP 一致。代碼字段為1表明鑒權(quán)請(qǐng)求(Authenticate -R e quest), 為2表明鑒權(quán)確認(rèn)(Authenticate-Ack ), 為3表明鑒權(quán)否認(rèn)(Authenticate-Nak)
[5]
5 結(jié) 論
經(jīng)過(guò)上述PPP 協(xié)議數(shù)據(jù)交換過(guò)程, 數(shù)據(jù)鏈路已經(jīng)建立, 但是要進(jìn)行數(shù)據(jù)的傳輸, 還要進(jìn)行實(shí)現(xiàn)I P 協(xié)議和TCP /UDP協(xié)議。I P 協(xié)議的數(shù)據(jù)包同樣封裝在PPP 幀中, 此時(shí)的協(xié)議字段為0x0021。需要說(shuō)明的一點(diǎn)是, 由于GPRS 網(wǎng)絡(luò)的特點(diǎn), 終端分配的I P 地址屬于GPRS 網(wǎng)中的內(nèi)部地址。這樣, 在使用無(wú)連接UDP 進(jìn)行數(shù)據(jù)傳輸時(shí), 終端數(shù)據(jù)是由GPRS 中的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行轉(zhuǎn)接, 其對(duì)于外網(wǎng)而言的I P 地址并不固定。因此, 在實(shí)際應(yīng)用中若需要由外網(wǎng)傳入數(shù)據(jù), 則應(yīng)該采用TCP 協(xié)議, 并由終端首先發(fā)起聯(lián)接。參考文獻(xiàn):
[1] 鐘章隊(duì), 蔣文怡, 李紅君. GPR S 通用分組無(wú)線業(yè)務(wù)
[M].北京:人民郵電出版社, 2001.
[2] S i emens M ob il e . M C35iH ard w are Interface D escr i pti on
。
進(jìn)入P AP 認(rèn)證階段終端主動(dòng)發(fā)出Authentic ate-Request 數(shù)據(jù)包, 其中用戶名和密碼長(zhǎng)度均
為0, 表示無(wú)用戶名和密碼。
由于中國(guó)移動(dòng)用戶使用GPRS 無(wú)需用戶名和密碼, 因此服務(wù)器對(duì)終端發(fā)出Authenticate -Ack 包給予確認(rèn)。下一步就可以進(jìn)行I PCP 的協(xié)商了。4. 3 IPCP 配置
在I PCP 配置過(guò)程中, 可以設(shè)置網(wǎng)絡(luò)連接中的網(wǎng)絡(luò)環(huán)境, 主要包括協(xié)商分配I P 地址、I P 壓縮協(xié)議和DNS 服務(wù)器地址等。由于不需要進(jìn)行域名的解析和I P 壓縮, 因而只進(jìn)行I P 地址的配置。I PCP 協(xié)議數(shù)據(jù)包封裝在PPP 幀內(nèi), 協(xié)議字段值為0x8021, 其格式和LCP 數(shù)據(jù)包一致, 選項(xiàng)值字段可由多個(gè)選項(xiàng)構(gòu)成, 常見(jiàn)的選項(xiàng)類型包括
[6]
:
(1) 選項(xiàng)2, 類型標(biāo)志0x02, 長(zhǎng)度0x06(6字
,第29卷 第5期 曾 剛:基于GPR S 的PPP 協(xié)議的分析
[EB /OL].[2006-12-02].www . si emens . co m /wm.
[3] ETS I G S M 07. 07:D i g ita l ce ll u l a r te lecomm un i cations
syste m (phase 2 ); a t comm and se t for G S M mob ile
equ i p m ent(ME) [EB /OL].[2006-12-02].http ://
porta l etsi org //acti on /pu/19991214/19991214. ht m.
[4] N et wo rk W o rk i ng G roup . RFC 1661:the po i nt-t o -
po i nt pro t o co l (PPP ) [EB /OL].[2006-12-02].ht
tp ://www.rfc :net/rfc1661. tx t .
[5] N et wo rk W o rk i ng G roup . R FC 1334:PPP authentica 15ti on pro toco ls [EB /OL].[2006-12-02].htt p ://www. rfc :net/rfc1334. tx t . [6] N et wo rk W o rk i ng G roup . RFC1332:the PPP i nternet protoco l control pro t o co l(I PCP) [EB /OL].[2006-12-02].http ://www. rfc :ne t/rfc1332. txt . [7] N et wo rk W o rk i ng G roup . RFC 1172:the po i nt-t o -po i nt pro t o co l (PPP ) i nitial con figu ration opti ons[EB /O L ].[2006-12-02].h ttp ://www.rfc :net/rfc1172. tx t .
Anal ysis of PPP Based on GPRS
ZENG Gang
Abst ract :On the basis o f researching the PPP , the co mm un icating process o f PPP based on GPRS is ana l y zed , and co m ponent of PPP , content of PPP , connecti n g process of PPP , etc are depicted . The process o f data inter change based on PPP negotiation is analyzed . A good foundati o n for f u rther m ak i n g a w ire less trans m ission ter m ina l using PPP is prov i d ed .
K ey w ords :GPRS; PPP ; LCP
ZENG G ang :Lec. t ; School of I nfor m ation Eng i n eeri n g , WUT, W uhan 430070, China .
[編輯:李道文]