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