众山GPRS DTU数传终端流量控制策略
1) 移动对GPRS流量的收费方式
目前移动公司对GPRS是按照流量计费方式计算的,但是实际上也实行了一些限制,主要有两个方面,一个方面是对空闲时间做了一定的限制,
当长时间没有数据通信时,移动网关会自动断开通信连接(对于TCP协议,是直接断开链路,对于UDP协议,则是收回分配的NAT端口号).
对于这个断开时间,TCP协议比UDP协议大得多。一般很多地方,TCP协议允许空闲几分钟,而UDP协议仅允许空闲几十秒。
另外,移动公司在计算流量的时候,不一定按照真实的字节计算,而是规定一个最小流量,当一个时间段内,如果只发了一个包,那么不管这个
包实际大小是多少,都按最小流量计算,比如1K字节。
即便按照这种方式计算下来,实际上每个月心跳方面的流量需要占用10M字节左右.
移动目前有20元、50元包月的小流量套餐,允许用户每月使用20M字节-50M字节流量,按道理,在很多GPRS行业应用中也应该是够用了.
但是实际情况中, 经常存在流量失控, 超过预期的现象!
2) GPRS DTU流量失控原因分析
实际GPRS应用系统中,用户可能经常发现移动公司统计出的GPRS流量经常超过自己的预期,甚至出现"费用爆炸"的现象.
这个情况主要是由于用户使用的GPRS DTU终端产品没有进行彻底的流量控制, 产生大量无效流量所导致的.
总体看来, GPRS DTU流量组成主要包括四个部分:
[建立网络连接包], [用户应用层数据], [心跳包], [垃圾数据]
我们分两类来说明:
A.流量稳定型: [用户应用层数据],[心跳包]
当用户系统设计合理,参数设置合理,那么[用户应用层数据]和[心跳包]基本上不会导致流量超过预期的情况.
B.流量不确定型: [建立网络连接],[垃圾数据]
[建立网络连接] 不稳定的原因是,当数据中心关闭或者因为某种原因导致GPRS DTU无法与中心建立连接时,DTU会反复重试建立连接,这样会导
致很大的流量.
[垃圾数据] 是当GPRS DTU处于GPRS网络内时,会受到相当一部分都不明内容的垃圾信息,这都是要计算流量的,而且可能会占流量中的较大比
例( 目前GPRS网络内垃圾数据的现象广泛存在,一种解释是可能是其他接入GPRS网络内的电脑病毒发来的攻击数据或探测包)
3) GPRS DTU数传终端流量控制策略
在分析了导致流量超过预期的原因后,我们再来看看众山科技在GPRS DTU数传终端流量控制方面采取的策略:
A.对于 [用户应用层数据],[心跳包]部分的控制策略:
众山GPRS DTU可以分为保持在线方式和唤醒上线方式,当用户应用数据通信频繁, 需要经常双向通信时,GPRS DTU一般使用保持在线方式.
当用户应用数据量极少时,也可以考虑采用唤醒上线方式,唤醒上线方式又细分为 本地控制命令唤醒, 用户数据包唤醒, 定时自动唤醒, 中心
拨号唤醒, 中心短信唤醒几种方式.采用唤醒方式可以大幅减少GPRS流量.
B.对[建立网络连接]的流量控制策略:
众山GPRS DTU对[建立网络连接]的部分实行了智能判断的方法,当中心无法连接的时候, 避免大量无效连接包的产生, GPRS DTU支持
重新尝试连接的时间间隔设置, 比如按每隔5分钟才重新尝试连接1次,而不是连续重新尝试连接, 或者按照时间递增的方式重新尝试连接.(比
如按照10秒, 20 秒,40 秒, ...递增),从而有效避免[建立网络连接]部分出现大流量.
C. 对[垃圾数据]的流量控制策略:
在许多GPRS DTU厂家对垃圾数据的现象束手无策的情况下, 众山科技独家实现了自动避让垃圾数据的技术. 垃圾数据的一个特点是:它并不
是对所有IP都会出现,当GPRS设备在某个时间收到垃圾数据包时, 如果更换一个IP地址, 那么就可以有效避免继续收到更多的垃圾数据. 其核
心思路实际上是简单的,很容易理解. 更换IP地址的方法也容易实现,也就是重新快速进行一次GPRS拨号,从而分配到一个新的IP地址,并且重新
与中心建立握手即可.
但是,判断GPRS设备收到垃圾数据需要一个必备的条件,就是必须在GPRS DTU内部自行实现完整的PPP协议及TCP/IP协议.也就是GPRS DTU具备IP
层数据包处理能力,由于GPRS设备知道合法数据中心的IP地址以及DNS服务器IP地址, 因此可以在IP层对收到的数据包进行判断,如果该IP包的
来源IP地址即不是来自合法数据中心的IP地址,也不是合法DNS服务器IP地址,即可认定为垃圾数据.
顺便提一下,目前有的厂家的GPRS DTU设备使用了GPRS无线模块内置协议栈, 这种情况下,由于GPRS无线模块内置协议栈已经把IP层封装了, 对
外开放的只是TCP和UDP通道的数据, 因此无法判断垃圾数据包存在, 更谈不上自动避让了.
众山使用自行实现的PPP及TCP/IP协议栈,可以有效识别垃圾数据包, 在保持用户数据不丢失的情况下,自动快速切换IP地址, 避让垃圾数据的
攻击,从而可以有效避免垃圾流量的产生,并且保证了GPRS的有效带宽和处理器资源不被垃圾流量所消耗,进一步增强了GPRS通信的可靠性.
节选自 <众山GPRS DTU数传应用基础知识> http://www.zstel.com