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

所示。
節(jié)), TCP /I P 報頭壓縮選項。
(2) 選項3, 類型標(biāo)志0x03, 長度0x06(6字節(jié)), IP 地址配置選項。
(3) 選項129, 類型標(biāo)志0x81, 長度0x06(6字節(jié)), 主用DNS 服務(wù)器I P 地址配置選項。(4) 選項131, 類型標(biāo)志0x83, 長度0x06(6字節(jié)), 備用DNS 服務(wù)器I P 地址配置選項。
在PAP 認(rèn)證階段, 終端收到服務(wù)器的PAP 認(rèn)證確認(rèn)包后馬上發(fā)送一個I PCP 數(shù)據(jù)包進(jìn)行I P 地址配置。I PCP 數(shù)據(jù)包收發(fā)過程如下
[7]
:
(1) 終端主動發(fā)送I PCP 數(shù)據(jù)包請求服務(wù)器分配I P 地址。IP 地址字段4個字節(jié)全填入0, 表示要求服務(wù)器給終端分配I P 地址。
(2) 收到服務(wù)器發(fā)來的配置請求包, 數(shù)據(jù)包中的I P 地址為服務(wù)器的I P 地址。
(3) 終端發(fā)送對上述配置請求包的確認(rèn), 認(rèn)可服務(wù)器I P 地址。
(4) 然后終端再發(fā)送配置請求包請求分配I P 地址, I P 地址仍然全為0。
(5) 收到服務(wù)器發(fā)來的配置拒絕包, 數(shù)據(jù)包
圖4 LCP 數(shù)據(jù)交互過程
中的I P 地址為服務(wù)器建議終端采用的I P 地址。(6) 終端重新發(fā)送I P 地址配置請求包, 并將I P 地址填入服務(wù)器建議的I P 地址。
(7) 收到服務(wù)器對I P 地址配置的確認(rèn)包, I P 地址分配成功, 終端可利用該I P 地址進(jìn)行I P 數(shù)據(jù)的收發(fā)。
上面交互過程完成后, 終端將主動進(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)請求(Authenticate -R e quest), 為2表明鑒權(quán)確認(rèn)(Authenticate-Ack ), 為3表明鑒權(quán)否認(rèn)(Authenticate-Nak)
[5]
5 結(jié) 論
經(jīng)過上述PPP 協(xié)議數(shù)據(jù)交換過程, 數(shù)據(jù)鏈路已經(jīng)建立, 但是要進(jìn)行數(shù)據(jù)的傳輸, 還要進(jìn)行實現(xiàn)I P 協(xié)議和TCP /UDP協(xié)議。I P 協(xié)議的數(shù)據(jù)包同樣封裝在PPP 幀中, 此時的協(xié)議字段為0x0021。需要說明的一點是, 由于GPRS 網(wǎng)絡(luò)的特點, 終端分配的I P 地址屬于GPRS 網(wǎng)中的內(nèi)部地址。這樣, 在使用無連接UDP 進(jìn)行數(shù)據(jù)傳輸時, 終端數(shù)據(jù)是由GPRS 中的網(wǎng)絡(luò)節(jié)點進(jìn)行轉(zhuǎn)接, 其對于外網(wǎng)而言的I P 地址并不固定。因此, 在實際應(yīng)用中若需要由外網(wǎng)傳入數(shù)據(jù), 則應(yīng)該采用TCP 協(xié)議, 并由終端首先發(fā)起聯(lián)接。參考文獻(xiàn):
[1] 鐘章隊, 蔣文怡, 李紅君. GPR S 通用分組無線業(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)證階段終端主動發(fā)出Authentic ate-Request 數(shù)據(jù)包, 其中用戶名和密碼長度均
為0, 表示無用戶名和密碼。
由于中國移動用戶使用GPRS 無需用戶名和密碼, 因此服務(wù)器對終端發(fā)出Authenticate -Ack 包給予確認(rèn)。下一步就可以進(jìn)行I PCP 的協(xié)商了。4. 3 IPCP 配置
在I PCP 配置過程中, 可以設(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ù)包一致, 選項值字段可由多個選項構(gòu)成, 常見的選項類型包括
[6]
:
(1) 選項2, 類型標(biāo)志0x02, 長度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 .
[編輯:李道文]