[发明专利]一种避免因丢包而连续损失两组报文的报文处理方法有效
申请号: | 201510048181.X | 申请日: | 2015-01-29 |
公开(公告)号: | CN104660499B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 张小国;王庆;姚荣亮;徐美娇 | 申请(专利权)人: | 东南大学 |
主分类号: | H04L12/70 | 分类号: | H04L12/70 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙)32249 | 代理人: | 杨晓玲 |
地址: | 211189 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 避免 连续 损失 报文 处理 方法 | ||
技术领域
本发明涉及一种避免因丢包而连续损失两组报文的报文处理方法,属于信息技术领域。
背景技术
电子设备(如GPS接收机)常常通过RS232,USB等端口或者借助无线网络输出本设备测量或者感知到的位置等信息。由于工作场景、报文传输路径等客观原因导致报文在发送、传输、接收的过程中可能发生无码、丢包等情况。
报文的读取的技术主要分为两大块,分别是报文头识别和报文内容的读取这两大块技术。以往处理报文的较常用方法是,在获取的报文中检测是否包含可识别的报文头,一旦检测到系统可识别的报文头后,就开始读取报文头后面的报文内容,一直读到当报文内容长度达到所设计报文长度的是时候,就停止本次报文内容的读取,说明这一次报文内容读取完成。在读取内容完成后再重新检测报文头,从而进行下一个报文的读取工作。上面的方法主要缺点是。首先,上述方法没有检测报文内容的工作,所以不能确定所读取的报文内容是否发生丢包现象。其次,如果上一个报文内容有丢包现象,而没有被及时的检测出来,就有可能把下一个报文的报文头也读取到报文内容中去,造成下一个报文没有完整的报文头,在下一个报文头检测处就无法检测到。就造成下一个报文内容因没有报文头儿无法读取。上面的方法在应用中就有可能在上一个报文发生丢包现象的时候,把下一个报文的报文头给吸收,造成两组报文信息都丢失了。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种避免因丢包而连续损失两组报文的报文处理方法,能及时的发现在报文内容中的丢包现象,并且避免因一个报文丢包而导致连续两组或多组报文。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种避免因丢包现象而造成连续损失两组报文的报文处理方法,对具有报文头和固定长度报文内容的报文或具有报文头、报文尾以及报文内容的报文的处理方法:
1)当每个报文是由一个报文头和一个固定长的报文内容组成,假设获取到的总报文的总长度为A*(m+n),由A个报文组成,其中每个报文头长度为m,每个报文内容长度为n:
11)对获取到的报文进行报文头检测,令首先检测得到的可识别报文头为第i=1个报文头;
12)读取第i个报文头后面长度为(n+m-t),t=1~m-1的报文内容,并同时对长度为(n+m-t)的报文内容进行第i+1个报文头检测:若未在长度为(n+m-t)的报文内容中检测到可识别的第i+1个报文头,则进行步骤13);若在长度为(n+m-t)的报文内容中检测到可识别的第i+1个报文头,则进行步骤14);
13)令i=i+1,检测得到可识别的第i+1个报文头,重复步骤12),直至读取完整个总报文;
14)令i=i+1,重复步骤12),直至读取完整个总报文;
2)当报文是由报文头、报文内容(固定长的报文或非固定长的报文)以及报文尾组成的:
21)对获取到的报文进行报文头检测,令首先检测得到的可识别报文头为第i=1个报文头;
22)读取第i个报文头后面的报文内容,并且同时对该报文内容进行报文尾检测,检测到报文尾则进入步骤23);
23)令i=i+1,检测得到可识别的第i+1个报文头,重复步骤22),直至读取完整个总报文。
进一步的,所述报文头检测采用KMP算法。
有益效果:本发明提供的一种避免因丢包而连续损失两组报文的报文处理方法:在报文内容读取的过程中可以很快的辨别该报文是否发生丢包现象,一旦发生丢包现象就终止对本报文内容的读取,这样即使该报文发生丢包现象对下一个报文的读取也没有产生影响,从而避免因报文内容丢失而对下一个报文产生污染,即在处理电子设备或者无线网络的输出报文时可以避免因丢包现象而连续损失两组或多组报文。
附图说明
图1为本发明一种避免因丢包而连续损失两组报文的报文处理方法的流程图;
图2为固定长的报文内容的接收的流程图;
图3为有报文尾的报文接收的流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
本发明中报文的报文头检测方法是采用的是KMP算法(克努特——莫里斯——普拉特算法),是一种自动检测接收到的报文头方法。KMP算法中,对于每一个模式串我们实现计算出模式串的内部匹配信息,在匹配失败后,在已经匹配的模式串子串中,找出最长的相同的前缀和后缀,然后移动使它们重叠。
下面一个例子进一步解释KMP算法。
主串:abacaabacabacabaabb,下文中我们称作T;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510048181.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可远程调控的路由器
- 下一篇:一种信息处理方法、客户端及服务器