[发明专利]数据的可靠传输方法和装置有效
申请号: | 201110112310.9 | 申请日: | 2011-05-03 |
公开(公告)号: | CN102137027A | 公开(公告)日: | 2011-07-27 |
发明(设计)人: | 王超;吴鸿伟 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06;H04L1/16 |
代理公司: | 北京同辉知识产权代理事务所(普通合伙) 11357 | 代理人: | 刘洪勋 |
地址: | 361008 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 可靠 传输 方法 装置 | ||
技术领域
本发明涉及网络通讯技术领域,特别是涉及一种数据的可靠传输方法和装置。
背景技术
传输控制协议(TCP,Transmission Control Protocol)和用户数据报协议(UDP,User Datagram Protocol)是目前网络数据传输的常用通讯协议。TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,当数据成功发送到目标机器以后,TCP会要求发送一个确认,以保证数据的可靠传输;TCP协议的工作原理是在需要交换数据的主机间建立一个虚拟连接,以实现高可靠性的数据包交换。UDP协议是一种无连接的传输层协议,提供面向操作的简单不可靠信息传输服务;UDP适用于不需要TCP可靠机制的情形,与TCP相比,其传输数据的速度快、系统开销少。但由于UDP传输数据的不可靠性,使得利用其共享资源变得十分艰难。
作为可靠的数据传输方案,TCP是首选的的数据传输协议,可是由于目前很多网络环境中设置了网络防火墙和/或网络地址转换网关(NAT,Network Address Translation),需要传输数据的两台主机之间有时候不能够采用TCP协议进行数据交换;另外,TCP协议系统开销大,建立和释放都有一定的限制。相比之下,UDP协议不仅传输效率较高,还能够方便地穿越网络防火墙和NAT网关的限制,实现网络防火墙和NAT网关内外主机之间的数据交换。但是,使用UDP协议传输数据,也有其不可靠传输数据的弊端:一方面,容易产生丢包现象;另一方面,易发生数据包乱序到达的现象。现有技术为解决上述问题,一般需要模仿TCP协议建立握手、进行数据传输确认、协商关闭连接等操作,因此,该方法虽然有效的解决了UDP协议的一些弊端,可以实现可靠的数据传输,但由于每次传输数据都要三次握手操作,数据传输效率低下。
发明内容
本发明所要解决的技术问题是提供一种数据的可靠传输方法,可在保证高效传输数据的基础上,解决现有UDP协议不能可靠传输数据的问题。
本发明还提供了一种数据的可靠传输装置,以保证上述方法在实际中的应用。
为了解决上述问题,本发明公开了一种数据的可靠传输方法,包括:数据发送端将要发送的文件拆分成数据包,并为每个数据包设置序列号,作为数据接收端重新组包的依据;按预设的缓冲数据包格式将上述设置有序列号的数据包封装成待发送数据包,并添加至发送缓冲区;按顺序发送所述发送缓冲区中的待发送数据包;删除所述发送缓冲区中数据接收端已经确认的数据包;判断所述发送缓冲区中数据包的停留时间是否超过预设的时间阈值,若是,则将该数据包重置为待发送数据包,重复上述发送过程。
优选的,在发送所述发送缓冲区中的待发送数据包之前,还包括:按预设的协议头格式将待发送数据包封装成发送数据包。
优选的,还包括:当所述发送缓冲区的发送顺序为按序列号从小到大递增时,若所述数据接收端接收到的数据包为期望数据包,则将所述接收缓冲区中的数据包按序列号排序,并将期望数据包序列号改为序列号连续的数据包的最大序列号加1,以及,按预设的协议头格式将该最大序列号封装成响应数据包发送出去;否则,将该接收到的数据包放入接收缓冲区;其中,所有小于或等于所述响应数据包中序列号的数据包均为所述数据接收端确认收到的数据包;
当所述发送缓冲区的发送顺序为按序列号从大到小递减时,若所述数据接收端接收到的数据包为期望数据包,则将所述接收缓冲区中的数据包按序列号排序,并将期望数据包序列号改为序列号连续的数据包的最小序列号减1,以及,按预设的协议头格式将该最小序列号封装成响应数据包发送出去;否则,将该接收到的数据包放入接收缓冲区;其中,所有大于或等于所述响应数据包中序列号的数据包均为所述数据接收端确认收到的数据包。
优选的,还包括:在将需要重传的数据包重置为待发送数据包时,记录其重传次数;若所述发送缓冲区中重传数据包的重传次数均大于预设的重传次数上限值,则为所述预设的时间阈值增加一个固定值;若所述发送缓冲区中重传数据包的重传次数均小于预设的重传次数下限值,则为所述预设的时间阈值减少一个固定值。
优选的,所述预设的缓冲数据包的数据项包括:要传输的数据、数据长度、发送数据包的序列号、时间戳和重传次数。
优选的,所述预设的协议头的数据项包括:包标识、上层协议的命令字、发送数据包的序列号、应答数据包的序列号、数据长度和要传输的数据。
优选的,在将所述待发送数据包添加至所述发送缓冲区之前还包括:判断所述发送缓冲区是否已经填满,若是,则丢弃该待发送数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110112310.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:选择方法II
- 下一篇:基于SOA的服装企业协同管理系统开发方法及系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置