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数据包。

 

http://www.myfavor.org/network/2010-10-22/333.html

MMS发送的无线网络连接协议分析相关推荐

  1. 禁用计算机的网络连接无线网络连接,电脑设置了禁用网络,连接不上WIFI.怎么解除...

    电脑设置了禁用网络,连接不上WIFI.怎么解除 电脑禁用网络连接不上WIFI的解决方法如下: 1. 确认FN快捷键已经打开,确认FN快捷键驱动,电源管理软件和无线网卡驱动正常安装; 2. 确认是否开启 ...

  2. 笔记本电脑无线网络连接不上的五大原因和解决办法

    笔记本电脑无线网络连接不上的五大原因和解决办法:无线網絡的发展和普及尤其是无线局域网丰富了我们的生活,让我们的生活变得越来越便利了.同时提供随时即用.高速优质的網絡服务.但是.由于无线信道特有的性质. ...

  3. 无线宝服务器连接不上,无线网络连接不上怎么办 为什么无线网络连接不上

    1.第一步:点击刷新网络列表时出现"Windows无法配置此连接"的提示,则打开金山卫士的"系统优化"功能,点击"开机加速"选项卡,点击&q ...

  4. 无线网络连接无法停用

    0. 现象描述 此时无法停用连接.这个连接可能在用一个或多个不支持即插即用的协议,或者它是由其他用户或系统帐户初始化的. 1. 解决方案 开始--网络连接--(右击)无线网络连接--属性--常规--配 ...

  5. 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...

    电脑上不了网的原因很多,比如是网络设置问题.路由器问题.运营商问题.最近一个Win7用户,网络连接一直显示,正在获取网络地址但是连不上网,但是其它电脑可以上网,那么说明是电脑设置问题,那么该如何解决呢 ...

  6. orcal 工具能连接上 程序连接不上_电脑无线网络连接不上怎么办

    无线网络是帮助我们摆脱网线的束缚,它的出现带来了巨大的方便,笔记本也在用户中越来越普及.然而却时常会遇到笔记本电脑无线网络连接不上的问题,这种问题该怎样解决呢? 电脑无线网络连接不上怎么办 第一步:右 ...

  7. 计算机和网络之间有个感叹号,网络有个感叹号!电脑无线网络连接不上的几种常见问题...

    第一步:应检查无线网卡的驱动是否安装正确.右键点击"我的电脑"-属性-硬件-设备管理器,查看是否存在标有问号或叹号的网络设备,如果有,则说明无线网卡驱动安装不正确.使用金山卫士的& ...

  8. 小米机顶盒显示网络无法连接服务器,小米盒子无线网络连接不上怎么回事 - 卡饭网...

    无线网络连接不上怎么回事,如何解决 无线网络连接不上怎么回事,如何解决 无线网络连接不上怎么回事,如何解决,很多电脑用户可能会遇到这个问题. 一:先检查下你的无线网络开关是否打开,没打开请打开 二:检 ...

  9. 台式计算机没办法连接wifi吗,台式机没有无线网络连接该怎么办

    台式机一开机就显示不了网络连接,该怎么办呢?下面由小编给你做出详细的台式机没有无线网络连接解决方法介绍!希望对你有帮助! 台式机没有无线网络连接解决方法一: 原因: 台式机不会自带无线网卡. 台式机连 ...

最新文章

  1. 版本控制8(译文) -(完)
  2. Bitdefender Internet Security 2013 – 免费3个月
  3. 前缀和?or差分序列?
  4. 图文具体解释 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
  5. boost::core模块实现fn地址
  6. excel 多列匹配相等后 引用值
  7. Linux的软件包封装格式有,linux软件安装包详解---全
  8. 多元线性回归matlab代码_医学统计|多元线性回归分析
  9. VMware安装kali linux 和中文汉化方法
  10. okhttp配置缓存策略_一网打尽OkHttp中的缓存问题
  11. QT 6.3和Visual Studio 2022详细安装及配置教程
  12. python存钱挑战_52周拯救挑战赛(python),存钱,Python
  13. Xilinx SDx 2018.3安装
  14. 使用vlc串流http视频链接
  15. 棋牌游戏需要什么服务器
  16. [Java 基础]-- java提供的访问数据库的接口(jdbc)
  17. 【玩转物联网】(1)仅需18元,ESP8266开发板实现WIFI信号桥接和放大 一劳永逸解决wifi信号弱问题
  18. 基于python的用户画像系统设计与实现
  19. scrapy pipelines(MySQL )
  20. 数学分析-第1.1节-数列极限习题

热门文章

  1. python mount回调函数_让Python脚本暂停执行的几种方法(小结)
  2. Intel MKL FATAL ERROR Cannot load mkl_intel_thread.dll
  3. java主要开发哪几类程序,开发与运行Java程序需要经过的主要步骤为:(多选)
  4. php 将一个字符串转换成数组,PHP将一个字符串转换成数组
  5. .sql文件_面试题:mybatis 中的 DAO 接口和 XML 文件里的 SQL 是如何建立关系的?
  6. abap alv新增行数据_ALV DMEO 09:REUSE_ALV_GRID_DISPLAY 使用HTML 居中 颜色大小 加粗 斜体 超链接 控制...
  7. 深入理解javascript原型和闭包(10)——this
  8. 老师吴恩达,身家又增20亿!
  9. 《互联网公司工程师图鉴》
  10. 大小仅1MB,超轻量级通用人脸检测模型登上GitHub趋势榜