[发明专利]一种GPRS断线自动重拨的方法有效
申请号: | 201310094120.8 | 申请日: | 2013-03-22 |
公开(公告)号: | CN103179536A | 公开(公告)日: | 2013-06-26 |
发明(设计)人: | 周海涛 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | H04W4/16 | 分类号: | H04W4/16;H04M3/424 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 徐宏 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gprs 断线 自动 方法 | ||
技术领域
本发明涉及无线通讯领域,尤其是涉及一种Linux嵌入式设备的GPRS断线自动重拨的方法。
背景技术
在Linux嵌入式下GPRS无线通信开发中,一般需要嵌入式设备长期在线;然而事与愿违,我们经常会遇到掉线的问题。究其原因,主要有以下几点:
1. 当同一个位置区LAC下不同小区的T3212(周期性位置更新定时器)值设置不一致时,在发生小区重选时会引发LAU(Location Area Update)、RAU(Routing Area Update)。目前现网将位置区LAC与路由区RAU设置为一致,当发生LAU时必然触发RAU。频繁的LAU、RAU会导致DTFTP下载延迟加大,严重时会导致掉线。
2. GPRS通信时需要对路由进行更新(RAU),一旦路由更新不成功就会掉线。
3. 登录服务器与开始下载数据之间发生小区重选导致掉线。
针对掉线问题,现有的一般处理方法如下:
1.判断/var/run/ppp0.pid文件是否存在。
如果pppd拨号成功,会在/var/run目录下添加ppp0.pid文件,这个文件记录当前pppd进程的pid。若它存在,则在线;若不存在,则断线,此时就需要重新拨号。
2.使用ping命令判断是否在线。
若以首选DNS服务器IP1和备用DNS服务器IP2作为两个外网IP。首先需探测嵌入式设备与DNS1的连通性,可通过“ping –s 1 –c 2 IP1”实现,如探测结果与首选DNS服务器连通,则认为GPRS在线,等待一段时间后进入下一轮判断;如探测结果嵌入式设备与首选DNS服务器不连通,则需探测嵌入式设备与备用DNS服务器的连通性。同理,如嵌入式设备与备用DNS服务器连通则进入下一轮判断,如嵌入式设备与备用DNS服务器也不连通,此时认为GPRS断线,需要重拨。一般采用先结束PPPD进程再运行PPP-ON脚本启用PPPD进程的方法实现重拨。
对于第一种方法,显然是不可取的。实践证明当pppd进程正常运行时,无线通信有可能是断开的。通过掉线原因分析也可得知掉线与pppd进程是否存在没有必然的联系。
对于第二种方法,不仅会造成流量的浪费而且重拨速度也很慢。
以一个字节去ping加上返回的值一共是9个字节,也就是一个小时用9*12*60=6480B≈6.33KB。嵌入式设备的实际应用中,通常会要求设备长期在线,这样将造成流量严重浪费。
采用先结束pppd进程,再运行ppp-on脚本启动pppd进程的重拨方法使得重拨速度很慢。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种Linux嵌入式设备的GPRS断线自动重拨的方法。通过监控虚拟接口ppp0时间间隔T的流量差以及通过ping命令探测与首选、备用DNS服务器是否通信正常,检测GPRS是否断线,由此判断是否进行重拨;并且通过直接对PPPD进程发送重播信号实现重拨。这样可解决流量消耗过高,并达到提高重拨速度的效果。
本发明采用的技术方案如下:
一种GPRS断线自动重拨的方法包括:
步骤1:含有GPRS模块的Linux嵌入式设备拨号成功后,生成虚拟接口ppp0,并监控虚拟接口ppp0时间间隔T后当前时刻与前一时刻流量差,若所述流量差值大于零,则GPRS模块没有掉线,无需重拨;若所述流量差值等于零,则执行步骤2;
步骤2:自动重播进程通过ping命令探测与首选DNS服务器是否通信正常,若能ping通,则无需重拨;若不能ping通,则需要进行步骤3;
步骤3:自动重播进程通过ping命令探测与备用DNS服务器是否通信正常,若能ping通,则无需重拨;若不能ping通,则认为掉线了,进行步骤4;
步骤4:重拨进程向pppd拨号进程发送重拨信号。
所述自动重播进程向pppd拨号进程发送重拨信号后,若有触发事件使得pppd拨号进程状态为死亡,则pppd拨号进程将断开LCP连接,并判断GPRS模块是否不需要再次连接、GPRS模块要求断开连接或GPRS模块连接不成功数大于最大值,当上述条件为真时,重播进程重新进行拨号请求。
所述自动重拨进程以虚拟接口ppp0在时间间隔T后当前时刻与前一时刻收到数据的字节数差值作为判断依据,具体过程:
步骤11:自动重播进程通过读取文件/proc/net/dev,直到发现ppp0开头的行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司,未经成都卫士通信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310094120.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种地暖分水器的堵头装置
- 下一篇:一种化妆品瓶