生活随笔
收集整理的這篇文章主要介紹了
MMS发送的无线网络连接协议分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| MMS 在進行發(fā)送前,要對無線模塊進行無線網(wǎng)絡(luò)連接,實現(xiàn)GPRS的撥號上網(wǎng),無線網(wǎng)絡(luò)連接成功后,才能利用無線模塊基于WAP的方式對MMS進行發(fā)送,通過移動交換網(wǎng)絡(luò),最終發(fā)送到終端用戶手機上。本節(jié)將對無線模塊的撥號上網(wǎng)以及建立PPP連接鏈路的流程圖和所用到的協(xié)議,如AT指令集、PPP連接協(xié)議以及本 課題中捕獲的無線網(wǎng)絡(luò)連接的數(shù)據(jù)進行分析。 ???? 無線網(wǎng)絡(luò)連接的流程圖分析 ??? 本課題中,無線網(wǎng)絡(luò)采用的是中國移動GPRS網(wǎng)絡(luò),無線模塊選用的BENQ M22的GSM/GPRS模塊。無線網(wǎng)絡(luò)連接的步驟為:控制模塊通過串口利用AT指令集向無線模塊發(fā)送連接命令,無線模塊進行撥號連接到中國移動GPRS 的WAP網(wǎng)關(guān),獲得臨時分配的IP地址、DNS地址和臨時端口號,撥號成功,完成無線網(wǎng)絡(luò)的連接。利用AT命令無線模塊撥號上網(wǎng)以及建立PPP連接的流程 圖如圖4.3所示。 ??? 無線模塊的無線網(wǎng)絡(luò)連接可分為比較明顯的兩階段: ??? 第一階段,配置無線模塊參數(shù),進行一系列初始化,然后發(fā)送AT指令撥上中國移 動GPRS的WAP網(wǎng)關(guān); ??? 第二階段,同GPRS的WAP網(wǎng)關(guān)通過三階段協(xié)商(即LCP連接協(xié)商、CHAP密碼 認證、NCP網(wǎng)絡(luò)層協(xié)議配置)建立PPP連接鏈路。 ??? 連接成功后,無線模塊就會從GPRS的WAP網(wǎng)關(guān)上獲得一個動態(tài)IP地址,該動態(tài) IP地址一般是10.188.xxx.xxx。接下來,無線模塊就可以進行TCP/IP數(shù)據(jù)包傳輸,訪問 GPRS網(wǎng)內(nèi)的主機,完成無線網(wǎng)絡(luò)的連接,發(fā)送封裝好的MMS信息。 AT命令分析 ??? AT命令集是調(diào)制解調(diào)器可以識別并執(zhí)行的命令,專門用于控制GSM Modem,它是由美國Hayes公司所發(fā)展的數(shù)據(jù)傳輸通信接口。計算機和單片機通過串行端口對Modem發(fā)出相應(yīng)的AT命令,可以調(diào)整Modem各種工 作方式。AT命令簡單、容易掌握,GSM07.07協(xié)議對AT指令做了詳細的介紹。GSM07.07中定義的AT Command接口,提供了一種移動平臺與數(shù)據(jù)終端設(shè)備之間的通用接口。GSM模塊提供的命令接口符合GSM07.07規(guī)范,在短消息模塊收到網(wǎng)絡(luò)發(fā)來的 短消息時,能夠通過串口發(fā)送指示消息,數(shù)據(jù)終端設(shè)備可以向GSM模塊發(fā)送各種命令。AT指令在當代手機通訊中起著重要的作用,用戶能夠通過AT指令控制手 機的許多行為,包括進行呼叫、撥叫號碼、按鍵控制、短信、電話本、數(shù)據(jù)業(yè)務(wù)、補充業(yè)務(wù)、傳真、GPRS等方面的控制。本課題中是控制模塊利用AT命令來控 制無線模塊撥號連接無線網(wǎng)絡(luò)。 ??? AT命令的語法是[[351:在每行命令的開頭都必須有“AT”或者“at”作前綴,用輸入<CR>來結(jié)束這個命令。"ATXX”及少量 “AT+XXX”為V.25標準命令集;"AT+CXXX "為GSM標準所擴展的AT命令;"AT+SXXX”為SIEMENS定義擴展的AT命令。 ????發(fā)送AT指令時,應(yīng)注意以下幾點: ??? (1)每個AT命令字符串的最后面必須加上CR(也就是鍵盤上的Enter鍵)字符,否則無線模塊將不識別此命令。這個字符就是結(jié)束符。 ??? (2)除了“A/”及“+++”命令外,其它的命令必須加上AT兩個字符。 ??? (3)命令字符串可以合成一個字符串后再一次送給調(diào)制解調(diào)器,但總的字符串長度 不得超過40個字符,而且所有的字符必須一律大寫或小寫。 ??? 本課題中,無線模塊采用的是BENQ M22的GSM/GPRS模塊,因為選用的是專業(yè)廠家生產(chǎn)的GPRS模塊,設(shè)計中可以不再考慮GPRS附著和PDP上下文激活等復(fù)雜過程,只需用AT指令 操作專用的GPRS模塊上網(wǎng)即可。用AT命令設(shè)置無線模塊的參數(shù)時,必須先要將命令寫入串口,讀取串口的應(yīng)答數(shù)據(jù)來判斷是否成功。一般命令發(fā)送成功時,模 塊會返回數(shù)據(jù)“OK",表示命令執(zhí)行成功。如果沒有成功,要繼續(xù)發(fā)送命令, 發(fā)送3次后還是沒有成功,就重新初始化串口。 ??? 對無線模塊GPRS撥號上網(wǎng),需要用到AT+CGDCONT和ATD這兩條指令 ??? 1) AT+CGDCONT=l,"IP”,“CMWAP” ??? 此命令用于設(shè)置GPRS接入網(wǎng)關(guān),其中第二個數(shù)表示PDP (Packet Data Protocol) 類型為:IP或PPP,第三個數(shù)表示接入網(wǎng)關(guān)為移動夢網(wǎng),APN是CMWAP,表示中國移動網(wǎng)應(yīng)用接口。目前只有中國移動全球通卡才可以使用CMNET功能,而動感地帶只能使用CMWAP功能。 ??? 2) ATD *99***1# ??? ATD用于設(shè)置撥號方式,進行撥號,并設(shè)法進入在線(on-line)狀態(tài)。與傳統(tǒng)的電話線Modem相比較,ATD指令在GPRS中有些變化,采用如下兩種格式: ???格式一:ATD*99[*[<called address>][*[<L2P>][*[<cid>]]]]# ??? 其中99是個服務(wù)碼,也可用98的(見格式二),國內(nèi)一般用99: <called address>是w.x.y.z格式的IP V4地址;<L2P>是用于TE和ME連接的Layer2協(xié)議或用于PPP協(xié)議的Layer2協(xié)議;<cid>是表明PDP上下 文的一個數(shù)字編號,用AT +CGDCONT命令創(chuàng)建,一般為1, 20 ????格式二:ATD*98[*<cid>]# ??? 含義同上。 ??? 舉例如下: ??? ATD*99# //用服務(wù)碼99建立一個連接 ??? ATD*99* 123.124.125.126*PPP* 1#//用服務(wù)碼99建立一個連接 ????????????????????????????????? HIP地址123.124.125.124, L2P=PPP ??????????????????????????????????? //用CID 1, CID的值由AT十CGDCONT事先 ????????????????????????????????????? 指定 ??? ATD*99***1# //用服務(wù)碼99建立連接,CID =1,其它用事先指定的值 ??? ATD*98*1#//用服務(wù)碼98建立一個IP連接,CID =1 ??? 國內(nèi)最常用的是:ATD *99***1#,本設(shè)計中就采用了此種格式。 ??? 用ATD指令若能撥號上線則返回“CONNECT",否則返回“NO CARRIER"。 這樣,就完成了撥號上GPRS網(wǎng)絡(luò)的功能,即接收到無線模塊返回的“CONNECT",說明無線模塊已經(jīng)連上了移動GPRS的WAP網(wǎng)關(guān),之后即為通過三階段協(xié)商建立PPP鏈路的過程。 ?PPP協(xié)議格式分析 ??? 利用AT指令無線模塊連接上了中國移動的GPRS的WAP網(wǎng)關(guān)之后,接著是進行PPP連接。GPRS撥號采用的是點對點協(xié)議(Point to Point Protocol, PPP),該協(xié)議是是TCP/IP網(wǎng)絡(luò)協(xié)議包的一個成員。其主要作用是無線模塊通過撥號連接上終端服務(wù)器后,由PPP取得一個臨時的IP地址,使該設(shè)備成 為網(wǎng)絡(luò)上的一個節(jié)點。只要PPP鏈路順利建立成功,獲得臨時的IP地址,則即可在其上嵌入IP等數(shù)據(jù)包進行數(shù)據(jù)傳送,完成無線模塊的無線網(wǎng)絡(luò)連接。 ??? PPP協(xié)議(Point-to-Point Protocol點到點協(xié)議)是為在同等單元之間傳輸數(shù)據(jù)包這樣的簡單鏈路設(shè)計的鏈路層協(xié)議。這種鏈路提供全雙工操作,并按照順序傳遞數(shù)據(jù)包。其目的主要 是用來通過撥號或?qū)>€方式建立點對點連接發(fā)送數(shù)據(jù),使其成為各種主機、網(wǎng)橋和路由器之間簡單連接的一種共通的解決方案。 PPP協(xié)議中提供了一整套方案來解決鏈路建立、維護、拆除、上層協(xié)議協(xié)商、認證等問題。PPP協(xié)議包含了以下幾個部分: ??? .鏈路控制協(xié)議LCP (Link Control Protocol):LCP負責(zé)創(chuàng)建,維護或終止一次物理連接; ??? .網(wǎng)絡(luò)控制協(xié)議NCP (Network Control Protocol):NCP是一族協(xié)議,負責(zé)解決物理連接上運行什么網(wǎng)絡(luò)協(xié)議,以及解決上層網(wǎng)絡(luò)協(xié)議發(fā)生的問題; ??? .認證協(xié)議,PPP協(xié)議支持兩種驗證協(xié)議:口令驗證協(xié)議PAP (PasswordAuthentication Protocol)和挑戰(zhàn)握手驗證協(xié)議CHAP (Challenge-Handshake AuthenticationProtocol)。驗證過程在PPP協(xié)議中為可選項,在連接建立后進行連接者身份驗證的目的是為了防止有人在未經(jīng)授權(quán)的情 況下成功連接,從而導(dǎo)致泄密。PAP是一種簡單的明文驗證方式,安全性較差。而CHAP是對PAP的改進,是一種加密的驗證方式,使用挑戰(zhàn)口令以哈希算法 對口令進行加密,用三次握手的方法周期性地檢驗對端的節(jié)點,優(yōu)點在于密鑰不在網(wǎng)絡(luò)中傳送,不會被竊聽。本課題中采用的是挑戰(zhàn)握手驗證協(xié)議CHAP. ??? PPP連接的建立主要經(jīng)過三個階段,分別是LCP連接協(xié)商、CHAP密碼認證以及 NCP網(wǎng)絡(luò)層協(xié)議配置。 ????第一階段:LCP連接協(xié)商 ??? 在這個階段,將對基本的通訊方式進行選擇。鏈路兩端設(shè)備通過LCP向?qū)Ψ桨l(fā)送LCP數(shù)據(jù)報配置請求(Configure-Request),對方同意接收 后雙方互發(fā)LCP數(shù)據(jù)報配置應(yīng)答(Configure-Ack )。一旦一個配置成功信息包(Configure-Ack packet)被發(fā)送且被接收,就完成了交換,進入LCP開啟狀態(tài)。 ????第二階段:CHAP密碼認證 ??? 在這個階段,客戶端會將自己的身份發(fā)送給遠端的接入服務(wù)器。服務(wù)器向用戶發(fā)PPP CHAP安全性認證挑戰(zhàn),接著用戶給服務(wù)器送PPP CHAP安全性認證響應(yīng),服務(wù)器再向用戶發(fā)送 PPP CHAP安全性認證成功。 ??? 該階段使用一種安全驗證方式避免第三方竊取數(shù)據(jù)或冒充遠程客戶接管與客戶端的連接。在認證完成之前,禁止從認證階段前進到網(wǎng)絡(luò)層協(xié)議階段。如果認證失敗,認證者應(yīng)該躍遷到鏈路終止階段。 ????第三階段:NCP網(wǎng)絡(luò)層協(xié)議配置 ??? 認證階段完成之后,PPP將調(diào)用在鏈路創(chuàng)建階段(階段一)選定的各種網(wǎng)絡(luò)控制協(xié)議(NCP )。選定的NCP解決PPP鏈路之上的高層協(xié)議問題,例如,在該階段IP控制協(xié)議(IPCP)可以向撥入用戶分配動態(tài)IP地址。在這個階段,先是用戶向服 務(wù)器發(fā)送PPP NCP網(wǎng)絡(luò)控制數(shù)據(jù)包(網(wǎng)絡(luò)協(xié)議配置,要求服務(wù)器提供IP地址和DNS,NBNS信息),接著服務(wù)器向用戶發(fā)送配置請求PPP NCP網(wǎng)絡(luò)控制數(shù)據(jù)包(為用戶分配IP地址),用戶向服務(wù)器發(fā)送配置應(yīng)答PPP NCP網(wǎng)絡(luò)控制數(shù)據(jù)包(接受所分配的IP地址),最后服務(wù)器向用戶發(fā)送配置應(yīng)答PPP NCP網(wǎng)絡(luò)控制數(shù)據(jù)包(同意用戶的IP地址和DNS地址)。 ??? 這樣,經(jīng)過三個階段以后,一條完整的PPP鏈路就建立起來了,用戶即可向服務(wù)器發(fā)送IP數(shù)據(jù)包。 |
| ? |
http://www.myfavor.org/network/2010-10-22/333.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的MMS发送的无线网络连接协议分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。