某主机收到的传输层以上的数据单元数据单元的首部为OX 2A 00 15 00 00 00 00 ……他的原端口

GPRS技术以其低廉的价格和较

种各樣的场合中,通过操作系统自带的网络协议来控制GPRS的拨号过程已经很成熟但是,并非所有的数据传输系统都拥有操作系统或网络协议楿对干昂贵的嵌入式芯片,8051系列单片机更经济更具有实用性且如果仅仅为了实现GPRS数据传输而采用嵌入操作系统也显得过于复杂这就要求能够有一种简洁有效的新方法来实现整个拨号过程及数据传输过程。因此有必要研究一种简单经济的新办法来解决这种矛盾本文正是基於上述原因而提出了相应的解决办法.

文中研究UDP/IP协议而不是TCP/IP协议,这主要根据本研究背景课题的实际情况而定UDP相对于TCP的优点在干:简洁、方便迅速、经济。缺点在于:传输过程中可能出现“丢包”现象但对于本研究所涉及的工程项目则影响不大具体硬件结构如图1所示。主偠是通过GPRS模块实现远程传输从传感器采样的数据同时能够通过GPRS网络实现远程管理外围电路还包括了看门狗、时钟、闪存、AD转换器等上位機软件再通过具体算法实现对数据的分析,是实现农业现代化的必不可少的基础工作有很重要的实际意义。

研究基干GPRS的无线通讯必须首先明了通讯过程的网络系统结构才能在实际解决问题的过程中不致误入歧途。

GPRS无线数据传输的最低层即物理层是通过RS232串口及GPRS模块组成嘚,然后是数据链路层该层是分析的重点和难点,其中涉及到PPP协议实现过程数据链路层上面是网络层其后是传输层以上的数据单元,僦是我们通常所说的UDP/IPTCP/IP其中IP协议属于网络层协议,而UDP.TCP都属于传输层以上的数据单元协议传输层以上的数据单元上方的是包括会话层、表示層、应用层等均不属本文讨论范围内,这里不再详述

另一方面,每层协议都是基于下方协议而实现的即如果使用数据链路层则必须有粅理层的支持如果没有物理层,实施软件的物理介质也就不存在同理,IP则是基于PPP协议实现的数据链路层而UDP是基于IP协议实现的网络层,这也就是UDP/IP包要通过PPP协议封装起来的原因.

GPRS登陆网络过程属干数据链路层的建立要通过PPP协议实现PPP协议(Point-to-Point Protocol)提供了在串行点对点链路上传输數据报的方法,支持异步8位数据及位导向的同步连接(如ISDN)它提供了一种管理两点间会话的有效方法正在取代SLIP(Serial Line Interface Protocol)协议成为点对点网络嘚标准.

1.通过PPP实现GPRS的上网认证过程

Protocol)协议LCP部分主要协商下一步的密码认证协议,可选择PAP方式或CHAP方式我们根据ISP要求选择PAP方式。PAP部分主要是姠ISP发送密码进行认证密码认证通过以后进入IPCP,完成客户端请求IP及ISP端分发IP的过程其实现过程图如图2所示

在认证过程中,MCU、GPRS模块及ISP都需要發送PPP格式的数据包来完成协商过程该数据包为16进制多数情况下其对应ASCII码并无实际意义PPP数据帧的结构如表1所示。

对于表1所示的协议部分有洳下凡种形式的描述:

对于表1所示的信息位包括了链路配置包标志描述如下:

以上3个表所示的内容是分析PPP协议各种类型数据包的基本概念。在解析PPP数据包中需要注意的另外一个事项是如果字符中包括了Ox7D,则表示该字符后面的字符需要转义转义方式是后一个字符与0x20进行异戓运算得出的16进制数据作为真是数据比如一个数据包包括了......Ox7D0x23......,则真实表示的为Ox03a(为方便表示下文所示数据均为转义后的数据)

首先设置模塊的初始化参数及工作参数向模块发送如下AT指令:

然后发送指令"ATD*99***1#"建立拨号过程模块会返回16进制的一些数据。我们要据此与模块进行协商首先返回数据包(16进制):7EFF03CO26B47E

数据包含义:7E(PPP包头)FF03CO21(LCP协议)01(代码)01(标识符)0016(长度)01(类型)04(长度)05DC(协商内容Maximum-Receive-Unit)02(类型)06(长度)(协商内容)07C类型协议压缩协商)02(长度)08(类型,地址控制域压缩协商)02C长度)03〔类型)04(长度)CO23(内容表示请求PAP认证)26B4(FCS校验和)7E(PPP包尾)。

此模块在进行LCP协商阶段是比较友好的主动提出了PAP认证方式,可直接返回对它请求的同意也可以提出些新的申请实际操作中發送同意请求为:7EFF03CODO477E。

至此LCP认证阶段已经结束

因为协商同意PAP密码认证方式故进入PAP过程需要发送用户名和密码至ISP.请求格式为7ECO003B3F7E

该包在0006后的0000分别玳表用户名和密码,都为空此时由于需要与ISP进行认证需要等一段时间经过判断,服务器通过密码认证返回:7ECO237D227D217D207D2D7DF6D65214EBC7E

(3)IPCP协商过程

客户端部分此时需要请求ISP分发IP请求为:7EOACF7E

"""8306"后的四个00分别代表客户端IP,第一DNS主机地址第二DNS主机地址,这3个部分全部为00表示内容为空是请求ISP分发IP到客户端。

OA4AOC14表示为十进制的10.7412.20,由于中国移动通信规定GPRS拨号上网的用户分发的IP均为内部IP非外部IP,所以IP都是以10.***开头的8106后面的D38812AB表示211.136.18171,是第┅DNS主机的IP地址8306后面的D38814CB表示211.136.20.203,是第二DNS主机的IP地址此后我们需要对分发下的几个IP辨认识别然后再次请求请求中包含这3个分发IP,代表接受分發结果数据包为7ECABe3o6D38e14CBF2C17E

此后清求得到ISP认可,链路层PPP握手过程全部结束进入网络阶段此后所有发往GGSN网绍的包含IP的数据包都会透明的传给所对应嘚IP地址。以上既是对PPP协商过程的分析只要注意上面所提及的每步的注意事项及含义,即可迅速快捷的建立数据链路层.

三、网络层及传输層以上的数据单元的实现

网络层和传输层以上的数据单元虽然属于IP及UDP协议实现的功能但此两者都是建立在数据链路层基础上的因此在发送PDP/IP包的时候仍然不能摆脱对PPP协议的依赖。由PPP封装的UDP/IP数据包组成如下表所示:

IP包的组成形式如表5所示其中8位协议处可选择TCP方式或UDP方式,8位TTL為TimeToLive只数据包在网络中的存活时间。

相对于旧数据包UDP数据包的组成比较简草主要包含所要发送的数据信息即数据段。结构如表6所示其中朂后的UDP校验与IP数据包中的IP校验方式一样但与PPP协议中的FSC校验方式不同。FSC校验属于CRC16位校验方式的一种而旧校验和UDP校验是相对简单的反码求和嘚校验机制并且对于IP及UDP校验而言需要将数据包需要校验部分的16位转换为32位进行校验校验好之后再转换为16位.

IP校验和所要校验的数据段包括叻前面所提的IP数据包内的所有位段,而UDP校验相对IP校验复杂的地方在于UDP校验不仅仅要将UDP数据包内的内容包括进来,而且还要包括IP部分的一些信息UDP校验位组成如下:

对于最后一位的数据段而言由于校验是32位所以如果数据段出现奇数个数据需要加零补位。

4.由PPP封装形式封装的UDP/IP數据包

7E21为PPP包头4表示旧版本号5表示首部长度,00表示服务类型001D表示包的All长度47F3表示16位的标识,00表示3位的标志+13位的片偏移80表示TTL,11表示协议(11表示UDP协议TCP为06),B0F6是IP首部校验和接下来的"0A4A30E0"表示本地IP地址即刚才通过PPP协议获得的动态IP而"D350336C"表示对方IP,即要发送的目的IP"03E8"表示本地端口(这个鈳以随便设定只要不与系统已用端口冲突即可,对于UDP而言这个没有实际意义因为GPRS分配到的是内部IP即使对方知道你的IP及端口也可能通过UDP方式传输数据,而如果是TCP协议则用GPRS作为Client清求Server建立通道后Server端可根据端口发送数据)"03F2"表示目的端口"0009"表示UDP包的长度(本地端口2字节+目的端口2字節+数据长度2字节+数据端n字节十UDP校验2字节),“55”表示数据转换为ASCII码应为"a","1B61"为UDP校验和"A5DE"为PPP包的FSC校验和此段代码的含义是“向IP为211.80.51.108,端口為1010的目的地发送字符a".

GPRS的应用不仅仅局限于嵌入式或PC机领域更能扩大到简单的8051微控制器,从而更深入地扩大GPRS技术的使用同时针对GPRS上网方式裁减PPP和UDP/IP协议,软件部分用C语言编写可压缩至4K不仅简化认证过程更节省程序运行时间,正常情况下从拨号到登陆网络只需要3秒钟而且该程序可方便的移植到各种硬件系统中目前该系统已稳定运行于南京试验田农田墒情检测系统。

}


您的计算机未允许或尚未安装Flash


若仍然无法显示建议更换360极速浏览器或查看:

阅读已结束,如需下载到电脑请使用积分( )

}

     时间戳服务非常重要添加时间戳后,即使您的代码签名证书已经过期但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信最终用户仍然鈳以放心下载,使得即使代码签名证书已经过期您也无需重签和重新发布已经签名的代码。

     时间戳服务非常重要添加时间戳后,即使您的代码签名证书已经过期但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信最终用户仍然可以放心下載,使得即使代码签名证书已经过期您也无需重签和重新发布已经签名的代码。

(10) 点击“下一步”后如下图 10 所示,会提示已经完成数字簽名向导点击“完成”后还会提示您输入私钥密码,就完成代码签名证书的代码签名

如果希望控件还 能在Netscape中运行,除了Netscape需加装插件外HTML也要加一些附加标记,下面的例子中EMBED段就是为Netscape加上的 如果使用MFC开发OCX控件,则少数用户第一次访问时除了下载OCX文件外还要下载相应的MFC DLL,下载量变大这时可将相关文件在服务器端打包成可以在客户端自解压安装的CAB文件。经过修改后的HTML代码段如下:

实时动态页面的实现方案

对实时动态页面的要求多产生于一些要求自动更新实时数据的应用中如电网监控、股市监测等。具体要求是:用户只需选取希望浏览嘚图表但无需介入操作,该图表就能根据实时数据不断更新用户总能观察到最新情况。

要实现上述功 能结构上有两种方案:一种是設置一个中介服务器,该服务器作为控件和后台系统信息交流的中介;另一种是不设中介服务器但在提供实时数据的后台服务器上 留出供控件通信用的数据接口,控件可以直接从后台服务器上定时获得当前实时数据按数据提供方式分也有两种:一种是由客户端定时向服務器发出请求,指明需 要的实时数据服务器收到请求后将满足请求的动态数据发送至相应客户;另一种是客户端只请求一次,服务器端便定时将满足请求的实时数据传到客户端直到客 户更换要显示的图表或停止刷新。上述各方案都有其优点和局限在应用中可考虑实际凊况采用相应方案。

工作流程为:用户先从Web服务器上下载包含ActiveX 控件的网页控件随即在客户机上注册运行,并通过Winsock同中介服务器或直接同提供实时信息的网如股票信息网相连接,定时取得动态实时数据并刷 新显示。在这个体系中客户有两条线路获得信息,一条是和Web Server的連接从这条线上用户访问主页;另一条就是控件和后台信息网的连接,从这条线路上用户可以访问实时数据后一条线路用Winsock建立, 传输速度远大于前一条线路且控制灵活、效率高,不和主页下载争资源通过这条线路,用户甚至可以传送远程控制信息实现遥控操作

利鼡VC5.0 开发的这种控件,功能可扩展性强理论上独立的VC5.0程序具有的功能,该控件都能实现例如控件直接绘制浏览器,可以使用OpenGL等图库图形图 像功能强大。实时数据刷新频率理论上可达毫秒级用户通过鼠标可以实现各类交互操作,如旋转、缩放图2就是一幅GL图形,并有一個缩放工具条进行缩放操 作如果是在计算机上观看,可以看到这几个三维图在不断旋转

应该说,较好的开发工具可直接用API编程或使用ATL模板库利用MFC开发ActiveX控件不是一个好的选择,因为控件运行需要MFC DLL的支持假如客户机器上没有这些类库(这种情况很少,但确实存在)第┅次下载就要花费些工夫。不过对于熟悉MFC的开发员来说这些问题相对MFC提供的便利来说都是可以忽略的。

由于VC5.0对ActiveX控件的开发提供了许多便利所以开发一个ActiveX控 件并不像许多人想象中的那么困难复杂,通过VC 5.0的AppWizard实现控件的主类从ColeControl类派生出来,该类则是CWnd的一个子类所以你可以潒对窗口类编程一样对这个主类 编程。为了实现上面提及的功能首先必要重载它的OnDraw函数加入需要绘制的对象,加入Winsock类(CSocket或 CAsyncSocket)以实现与後端数据服务器的通信。如果需要用OpenGL绘制丰富多彩的立体图则要初始化GL环境。其他的工作就在于用户如 何控制程序的调度使得各功能嘟能正常工作且与其他部分正常通信。此外后端服务器程序也要增加对应于该控件的接口。

这样的一个程序编译通过后就成为一个可鼡于Web的控件,后缀名是OCX按照前面叙述的方法将该OCX置入主页,基本的工作就算完成

综上所述,利用VC5.0开发ActiveX控件用于Web浏览主要有以下几个特点:

1.采用Winsock的通信机制,速度快、控制灵活、效率高;

2.控件采用VC5.0编制功能可扩展性很强;

4.控件第一次下载虽然稍费时间,但下载後即在用户机上注册以后可直接调用,速度效率均好;

5.ActiveX技术是微软发展的重中之重且已成为当前软件发展的潮流所向,发展空间广闊;

6.系统采用VC开发可以利用已有的采用C语言编制的系统,开发工作量大大减少

Web页面的开发主要分为三类:静态Web页面、半动态Web页面以忣Client端动态页面。本文重点论述基于ActiveX Control(控件)动态实时页面的开发

}

我要回帖

更多关于 传输层以上的数据单元 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信