gprs tcp 协议 汽车 服务器,基于GPRS的车队管理系统传输协议

0 引言

由于土地资源的限制,各级道路建设的速度远远赶不上机动车辆的增长速度,造成城市交通拥挤,加上人们对机动车安全措施的重视,使得车队管理系统越来越多地受到业界的关注。

典型的车队管理系统由监控中心,通信网络和车载终端3部分组成。

在通信网络部分,GPRS(通用分组无线电业务)由于其永远在线、流量计费、高速传输等特点已成为广大车队管理系统制造商的首选,GPRS是在现有的GSM(全球移动通信系统)网络上增加了3种新的逻辑网络实体并进行相应的软件升级而发展起来的,这3种逻辑网络是:SGSN(服务GPRS支持节点)、GGSN(网关GPRS支持节点)和PCU(分组控制单元)。应用中,用户在GPRS网络上可任意选择UDP(通用数据报协议)与TCP(传输控制协议),而没有明确的标准。

本文将两种协议进行对比,从可靠性、适用性、资费等方面深入讨论车队监控系统中适合采用哪种数据传输协议。

1 两种传输协议的定义与主要特征的比较

UDP是一个简单的面向数据报的运输层协议,进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报,UDP数据报封装成一份IP数据报的格式如图1所示。 xsj063053_1.jpg

UDP不提供可靠性连接,它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。

TCP和UDP都使用相同的网络层IP。TCP提供了一种可靠的面向连接的字节流运输层服务。

TCP向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节来服务,TCP将用户数据打包构成报文段;它发送数据后启动一个定时器。等待对端数据确认;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对摘机说"喂",然后才说明是谁。

TCP传输协议连接过程如下,首先建立连接,TCP用3个报文段完成连接的建立,这个过程也称为三次握手(three-way handshake),如图2所示。 xsj063053_2.jpg

终止一个连接采用的是修改的三次握手协议,即要经过4次握手,如图3所示。 xsj063053_3.jpg

数据发送必须经过接收方确认,并且有超时重传等保障机制,这是TCP传输有一定保障的根本原因,可以看到,完成一次数据传送,除了完成连接、终止连接外,至少还需要一个数据分组与一个ACK分组。

UDP与TCP提供不同的传输方式和传输质量,TCP以增加网络开销的方式提供传输保障。在GPRS网络实际测试,网络正常情况下,从GPRS DTU→GPRR网络→互联网→用户数据中心这个通路上,UDP传输有效性大于99%,TCP传输有性约为100%。

2 两种传输协议传输效率的比较

在只考虑UDP/TCP分组情况下,发送应用数据,数据包为IP头+UDP头/TCP头+应用数据。GPRS网络计费按照流量计费,数据传送效率就显得十分重要。由于目前分组数据机费按照网络协议2层以上数据计算(即IP包数据),传输效率按下式计算: xsj063053_4.jpg

表1列举了一些数据长度时UDP和TCP的传输效率。

xsj063053_5.jpg

通过上述分析,可看到单包传送的数据量比较小时,UDP传输效率明显高于TCP。以上只是数据分组的传输效率,TCP还需要连接、终止连接、ACK包等额外开销,UDP与TCP实际传送效率差别将远大于表1中的计算效率。

在车队管理系统中,传输频率最高的是车辆的定位信息。车载终端通过GPS(全球定位系统)接收机接收到的定位信息经过车载终端的微控制器处理后,形成关于车辆的UTC(协调世界时间)、日期、经纬度以及地面速度等信息,加上该车辆的标志,形成GPS报文段发送给监控中心,总的数据量为12字节(时间3字节,日期3字节,经纬度4字节,速度1字节,标志1字节),UDP效率为92.30%,TCP效率为82.75%,而且由于数据量小,发送间隔通常从几秒到几分,数据报文之间发送间隔通常超过TCP需要的最大确认间隔,导致几乎每个数据报文都需要在TCP中的ACK报文,因而实际传输中TCP的效率要更低一些。此外,传输保障是由应用协议与网络协议共同完成的,要充分选择发挥应用协议与网络协议的优势,达到总的效率最高、效果最好的目的,在应用协议中,大多具有基本的传输保障功能,通过应用层协议中超时重传等功能完全可以满足对UDP中少量丢包情况的处理,按照UDP丢包的概率,重传概率也在1左右,如果选用TCP ,将导致数据量大大增加。GPRS是按流量计费的,因此采用TCP则意味着更大的成本损耗。

3 两种传输协议适应性的比较

车队管理系统的实时性要求很高,超过时效的数据没有任何用途。TCP连接保证数据传输的可靠性,每个具体TCP实现必须选择一个报文段MSL(最大生存时间),它是任何报文段被丢弃前在网络内的最长时间,这个时间是有限的,RFC 793[Postel 1981c]指出MSL为2min。然而,实现中的常用值是30s、1min或2min。使用UDP连接,当网络拥塞时,部分数据包被丢弃,但可以改善接收数据严重滞后的情况,如果终端连接数量大,使用TCP连接可能带来更严重的问题,GPRS终端与服务器建立了TCP连接并发送数据后,或者服务器向正在请求连接的终端发出SYN ACK应答报文后可能无法收到对端的ACK报文,这种情况下发送端一般会重试并等待一段时间后终止这个连接,一般说来这个时间约为30s-2min。一个终端出现异常导致服务器的一个线程等待1min不是大问题,但如果网络拥塞导致大量这种情况,服务器端为了维护一个非常大的半连接列表将消耗非常多的资源,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行重试。如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃。即使服务器系统足够强大,也忙于处理TCP连接请求以及重传数据导致系统性能严重下降,大量重传数据进一步加剧GPRS网络的拥塞情况,严重时可以让GPRS网络及服务器系统崩溃,对应用于车队管理系统中几十、几百甚至上千个车载中断终端的情况,其后果是难以想象的。

4 结束语

本文对两种传输协议进行了比较,可见对于车队管理系统这种多点分散、数据量小、实时性要求高、终端数量多的应用,采用UDP会更好一些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值