一种基于UDP协议以提高数据传输可靠性的方法技术

技术编号:14026229 阅读:57 留言:0更新日期:2016-11-19 03:02
本发明专利技术公开了一种基于UDP协议以提高数据传输可靠性的方法,其包括:在第一通信端、第二通信端进行数据传输之前,两端各自确认当前待发送的数据,并分别对所确认的数据进行数据处理;所述第一通信端或者第二通信端在向对端发送数据包时,实时记录并存储当前所发送的数据包以及该数据包对应的协议头信息;在接收到对端所发送的数据包后,均基于该数据包对应的后向序号验证是否已经接收到与所述后向序号相对应的数据包,是则确认该数据包为已证实的数据包,清除该数据包以及所证实的数据包之前的各数据包等。本发明专利技术兼顾有TCP的可靠性与UDP的高效性,在保留UDP协议的处理速度快、数据传输效率高等优点的基础上,实现了UDP数据的可靠传输。

【技术实现步骤摘要】

本专利技术设计数据传输技术,具体的说是涉及一种基于UDP协议以提高数据传输可靠性的方法
技术介绍
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,能够提供面向事务的简单不可靠信息传送服务。由于UDP协议的控制选项较少,因而在数据传输过程中具有处理速度快、延迟小、数据传输效率高的优点;但是UDP报文同样存在诸如不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达,由于UDP协议没有可靠性保证、顺序保证和流量控制字段等,因此可靠性较差,在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。
技术实现思路
鉴于已有技术存在的缺陷,本专利技术的目的是要提供一种基于UDP协议以提高数据传输可靠性的方法及系统,本专利技术在UDP协议的基础上实现了一种新的可靠传输技术,其兼顾有TCP协议的可靠性与UDP协议的高效性,在保留UDP协议的处理速度快、数据传输效率高等优点的基础上,有效保证了现UDP数据的可靠传输。为了实现上述目的,本专利技术的技术方案:一种基于UDP协议以提高数据传输可靠性的方法,其特征在于:S1、在第一通信端以及作为第一通信端对端的第二通信端进行数据传输之前,所述第一通信端、第二通信端各自确认当前待发送的数据,并分别对所确认的数据进行数据处理;所述数据处理包括将待发送的数据分为多个数据包,对各所述数据包进行排序并在每个数据包中加入对应的协议头信息;所述协议头信息包括被设置于报文头以及基本数据之间的前向序号以及被设置于所述前向序号之后的后向序号;其中所述前向序号包含本端当前所发送数据包对应的发送序号;所述后向序号包含用于证实数据包是否已经成功发送至对端的证实序号;S2、所述第一通信端或者第二通信端在向对端发送数据包时,实时记录并存储当前所发送的数据包以及该数据包对应的协议头信息;同时第一通信端或者第二通信端接收到对端所发送的数据包后,基于该数据包对应的后向序号验证是否已经接收到与所述后向序号相对应的数据包,是则确认该数据包为已证实的数据包,清除该数据包以及所证实的数据包之前的各数据包;所证实的数据包之前的各数据包是指其所对应的后向序号小于当前所接收到数据包相对应的后向序号;S3、所述第一通信端与第二通信端按照上述步骤S2持续进行数据包传输直至完成全部的数据包传输工作。进一步的,作为本专利技术的优选实施方案所述第一通信端或者第二通信端在与对端进行数据包传输时,通过计数器记录当前所接收到对端所发送的数据包的个数;当计数器所记录的个数为1时,则记录该数据包到达时间,并实时判断本端是否在该数据包到达时间的时间间隔未超过所设定的证实时间阈值的条件下,向对端发送包含有协议头信息的数据包;是则清除所记录的到达时间同时计数器清零;否则向对端发送一条插入证实消息同时计数器清零,该插入证实消息中包含有在所述时间间隔内,最后一次所接收到的数据包所对应的前向序号。进一步的,作为本专利技术的优选实施方案所述第一通信端或者第二通信端在与对端进行数据包传输时,通过计数器记录当前所接收到对端所发送的数据包的个数;并判断本端是否在计数器所记录的个数未超过所设定的证实个数阈值的条件下,向对端发送包含有协议头信息的数据包;是则计数器清零;否则向对端发送一条插入证实消息同时计数器清零,该插入证实消息中包含有本端当前所接收的数据包中,最后一次所接收到的数据包所对应的前向序号。进一步的,作为本专利技术的优选实施方案所述第一通信端及第二通信端均设置有能够存放已向对端发送,但尚未得到对端证实的数据包所对应的前向序号以及后向序号的待证实队列;同时所述第一通信端及第二通信端均通过预设的发送缓冲区缓存与所述待证实队列中证实序号一一对应的数据包以及各缓冲数据包,各所述缓冲数据包是指在待证实队列已满时,缓存在发送缓冲区中的仅在待证实队列未满条件下才继续向对端发送的数据包。进一步的,作为本专利技术的优选实施方案所述第一通信端或者第二通信端在向对端发送数据包时,实时判断本端是否符合数据包重发条件,是则向对端发送相应的数据包;所述数据包重发条件包括自动重发条件和或请求重发条件。优选的,所述自动重发条件是指第一通信端或者第二通信端在向对端发送数据包时,同时记录当前所发送的数据包的发送时间并检查待证实队列中的证实序号个数,当满足证实序号个数为1时,即通过重发计时器进行计时,并判断本端是否在未超过所设定的重发阈值时间内,收到对端所发送的数据包,是则按照与当前所收到的数据包所对应的证实序号将该证实序号之前的各证实序号自待证实队列中清除并清除各证实序号对应的数据包;同时进一步检查待证实队列中的待证实序号个数,若当前待证实序号个数不为0,则根据待证实队列中的第一条待证实序号所对应的数据包的发送时间,重新设置并启动重发计时器进行计时,并重新判断本端是否在未超过所设定的重发阈值时间内,收到对端所发送的数据包,否则确认符合数据包重发条件,并记录当前待证实队列中的待证实序号个数并将当前待证实队列中各证实序号对应的数据包重新向对端发送且将各重新发送的数据包的状态标记为重发状态。进一步优选的,在重新向对端发送相应的数据包时,重新设置并启动重发计时器进行计时,若超过所设定的重发阈值时间内,仍未收到对端所发送的数据包,则从待证实队列起始位置上的证实序号所对应的数据包进行丢包,即丢弃被标记为重发状态的数据包。优选的,所述请求重发条件是指第一通信端或者第二通信端在向对端发送数据包时,若当前所发送的数据包所对应的前向序号不是对端所设定的期望序号,则对端缓存该数据包并将该数据包标记为请求重发状态后发送包含有其当前所设定的期望序号的数据包,同时对端通过相应的请求重发计时器进行计时,若本端接收到对端所发送的所述数据包则判断符合数据包重发条件,并向对端发送相应的数据包。进一步优选的,本端接收到对端所发送的所述数据包时,首先判断当前所收到的期望序号是否在待证实队列的序号区间内,是则将与该期望序号对应的书包发送至对端;否则启动序号强制对齐机制。所述启动序号强制对齐机制是指本端将当前待发送的数据包所对应的前向序号修改为所述期望序号后,向对端发送包含有所述期望序号的请求重发响应消息并在设定的时间间隔内向对端发送包含有前向序号修改为所述期望序号的数据包;同时对端接收到请求重发响应消息后将发送缓冲区中的数据包发送至应用层的数据接收缓冲区并取消请求重发计时器的计时,以完成一次序号的强制对齐过程。与现有技术相比,本专利技术的有益效果:本专利技术兼顾有TCP的可靠性与UDP的高效性,在保留UDP协议的处理速度快、数据传输效率高等优点的基础上,使用一个简单的协议头,并采用多种证实机制、重发机制和强制序号对齐机制实现UDP数据的可靠传输,可广泛应用于在CMT系统及相关产品中。附图说明图1为本专利技术所述的EUDP数据包对应协议头格式示意例图;图2为本专利技术所述方法基础步骤流程图;图3为本专利技术所述待证实队列格式示意例图;图4为本专利技术所述方法中的捎带序号形式的证实机制示意例图;图5为本专利技术所述方法中的定时插入形式的证实机制示意例图;图6为本专利技术所述方本文档来自技高网...
一种基于UDP协议以提高数据传输可靠性的方法

【技术保护点】
一种基于UDP协议以提高数据传输可靠性的方法,其特征在于:S1、在第一通信端以及作为第一通信端对端的第二通信端进行数据传输之前,所述第一通信端、第二通信端各自确认当前待发送的数据,并分别对所确认的数据进行数据处理;所述数据处理包括将待发送的数据分为多个数据包,对各所述数据包进行排序并在每个数据包中加入对应的协议头信息;所述协议头信息包括被设置于报文头以及基本数据之间的前向序号以及被设置于所述前向序号之后的后向序号;其中所述前向序号包含本端当前所发送数据包对应的发送序号;所述后向序号包含用于证实数据包是否已经成功发送至对端的证实序号;S2、所述第一通信端或者第二通信端在向对端发送数据包时,实时记录并存储当前所发送的数据包以及该数据包对应的协议头信息;同时第一通信端或者第二通信端接收到对端所发送的数据包后,基于该数据包对应的后向序号验证是否已经接收到与所述后向序号相对应的数据包,是则确认该数据包为已证实的数据包,清除该数据包以及所证实的数据包之前的各数据包;所证实的数据包之前的各数据包是指其所对应的后向序号小于当前所接收到数据包相对应的后向序号;S3、所述第一通信端与第二通信端按照上述步骤S2持续进行数据包传输直至完成全部的数据包传输工作。...

【技术特征摘要】
1.一种基于UDP协议以提高数据传输可靠性的方法,其特征在于:S1、在第一通信端以及作为第一通信端对端的第二通信端进行数据传输之前,所述第一通信端、第二通信端各自确认当前待发送的数据,并分别对所确认的数据进行数据处理;所述数据处理包括将待发送的数据分为多个数据包,对各所述数据包进行排序并在每个数据包中加入对应的协议头信息;所述协议头信息包括被设置于报文头以及基本数据之间的前向序号以及被设置于所述前向序号之后的后向序号;其中所述前向序号包含本端当前所发送数据包对应的发送序号;所述后向序号包含用于证实数据包是否已经成功发送至对端的证实序号;S2、所述第一通信端或者第二通信端在向对端发送数据包时,实时记录并存储当前所发送的数据包以及该数据包对应的协议头信息;同时第一通信端或者第二通信端接收到对端所发送的数据包后,基于该数据包对应的后向序号验证是否已经接收到与所述后向序号相对应的数据包,是则确认该数据包为已证实的数据包,清除该数据包以及所证实的数据包之前的各数据包;所证实的数据包之前的各数据包是指其所对应的后向序号小于当前所接收到数据包相对应的后向序号;S3、所述第一通信端与第二通信端按照上述步骤S2持续进行数据包传输直至完成全部的数据包传输工作。2.根据权利要求1所述的方法,其特征在于:所述第一通信端或者第二通信端在与对端进行数据包传输时,通过计数器记录当前所接收到对端所发送的数据包的个数;当计数器所记录的个数为1时,则记录该数据包到达时间,并实时判断本端是否在该数据包到达时间的时间间隔未超过所设定的证实时间阈值的条件下,向对端发送包含有协议头信息的数据包;是则清除所记录的到达时间同时计数器清零;否则向对端发送一条插入证实消息同时计数器清零,该插入证实消息中包含有在所述时间间隔内,最后一次所接收到的数据包所对应的前向序号。3.根据权利要求1或2所述的方法,其特征在于:所述第一通信端或者第二通信端在与对端进行数据包传输时,通过计数器记录当前所接收到对端所发送的数据包的个数;并判断本端是否在计数器所记录的个数未超过所设定的证实个数阈值的条件下,向对端发送包含有协议头信息的数据包;是则计数器清零;否则向对端发送一条插入证实消息同时计数器清零,该插入证实消息中包含有本端当前所接收的数据包中,最后一次所接收到的数据包所对应的前向序号。4.根据权利要求1所述的方法,其特征在于:所述第一通信端及第二通信端均设置有能够存放已向对端发送,但尚未得到对端证实的数据包所对应的前向序号以及后向序号的待证实队列;同时所述第一通信端及第二通信端均通过预设的发送缓冲区缓存与所述待证实队列中证实序号一一对应的数据包以及各缓冲数据包,各所述缓冲数据包是指在待证实队列已满时,缓存在发送缓冲区中的仅在待证实队列未...

【专利技术属性】
技术研发人员:邸学锋袁林马洪彬张醒
申请(专利权)人:大连环宇移动科技有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1