数据传输系统及方法技术方案

技术编号:13178705 阅读:62 留言:0更新日期:2016-05-11 10:10
本发明专利技术提供了一种数据包、数据传输系统及方法,其中数据传输系统,包括第一数据端和第二数据端,二者均基于UDP进行NAT穿越。第一数据端将需要发送的应用数据分割成多个数据单元,并将每个数据单元作为负载以形成一第一数据包;所述第一数据端将所述第一数据包发送至第二数据端;所述第二数据端接收到所述第一数据包,并根据所述第一数据包中的顺序号和确认号对其进行处理。从而实现了端到端的可靠传输,而中间的路由节点自动为通信的流量选取最佳的路由,进而实现全网效率的最优化。

【技术实现步骤摘要】

本专利技术涉及互联网通信
,尤其是一种数据包、数据传输系统及方法
技术介绍
随着Internet的普及,越来越多的设备被接入互联网,开始具有远程访问能力。IP地址因此变成了一种稀缺资源。为解决IP地址耗尽问题,NAT(NetworkAddressTranslation,网络地址转换)被广泛地使用。NAT虽然是解决IP地址紧缺的有效办法,但也给通过网络进行通信带来一些麻烦,尤其是当通信的双方都位于NAT之后的时候。目前实现端到端可靠传输的方法依赖TCP(TransmissionControlProtocol传输控制协议)。然而TCP在通信的双方都位于NAT之后而需要穿越NAT时,穿越的难度很大,而且成功率低。为此,位于NAT之后的通信双方通常要借助服务器转发的方式进行通信。使用服务器转发,虽然能够达成通信的目的,但会对服务器产生较高的要求,尤其是高带宽的应用,更可能会在服务器上产生处理瓶颈。通过服务器转发还会增加端到端的通信延迟。另外,从网络的整体来看,经过服务器转发相比端到端的直接通信也必然消耗更多的网络资源。
技术实现思路
本专利技术的目的在于提供一种数据包、数据传输系统及方法,以实现端到端的可靠传输,中间的路由节点自动为通信的流量选取最佳的路由,从而实现全网效率的最优化。为了达到上述目的,本专利技术提供了一种数据包,包括包头和负载,所述包头包括类型、顺序号以及确认号,其中,所述类型包括数据类型、确认类型以及否定确认类型;当所述包头的类型为数据类型时,所述负载为应用数据,所述顺序号为该数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包的顺序号;当所述包头的类型为确认类型时,所述确认号为期望收到的下一个数据包的顺序号,所述顺序号和负载为空;当所述包头的类型为否定确认类型时,所述顺序号为期望收到而未收到的数据包的顺序号,所述确认号和负载为空。优选的,在上述的数据包中,所述包头还包括标识,以标记所述数据包的结构。本专利技术还提供了一种数据传输系统,包括第一数据端和第二数据端;所述第一数据端和第二数据端均基于UDP进行NAT穿越;所述第一数据端和第二数据端传输的数据均以上述的数据包进行传输。优选的,在上述的数据传输系统中,所述第一数据端设置一第一发送窗口,其容量决定所述第一数据端未收到确认信息的数据包的数量的最大值;所述第二数据端设置一第一接收窗口,使得所述第二数据端在未接收到期望接收的数据包时接收多个数据包。优选的,在上述的数据传输系统中,所述第二数据端设置一第二发送窗口,其容量觉得所述第二数据端未收到确认信息的数据包的数量的最大值;所述第一数据端设置一第二接收窗口,使得所述第一数据端在未接收到期望接收的数据包时接收多个数据包。本专利技术更提供了一种数据传输方法,包括以下步骤:第一数据端将需要发送的应用数据分割成多个数据单元,并将每个数据单元作为负载以各自形成一第一数据包;所述第一数据端将所述第一数据包发送至所述第二数据端;所述第二数据端接收到所述第一数据包,并根据所述第一数据包中的顺序号和确认号对其进行处理。优选的,在上述的数据传输方法中,所述第二数据端对所接收到的所述第一数据包进行处理的步骤包括:当所述第一数据包的顺序号落入所述第一接收窗口中时,对所述第一数据包进行缓存;当所述第一数据包的顺序号为所述第一接收窗口中最小的顺序号时,所述第二数据端向第一数据端发送确认类型的第二数据包,同时将所述第一数据包中的负载发送至应用程序;否则,向所述第一数据端发送否定确认类型的第三数据包;当所述第二数据端需要向所述第一数据端发送数据时,根据所述第一数据包中的确认号发送数据包,否则,不发送数据包。优选的,在上述的数据传输方法中,当所述第一数据端接收到所述第二数据包时,根据所述第二数据包中的确认号滑动所述第一发送窗口。优选的,在上述的数据传输方法中,当所述第一数据端接收到所述第三数据包时,立即重发所述第三数据包中的顺序号对应的数据包。优选的,在上述的数据传输方法中,所述第二数据端对所接收到的所述第一数据包进行处理的步骤还包括:当所述第一数据包的顺序号落入所述第一接收窗口外时,丢弃所述第一数据包。优选的,在上述的数据传输方法中,所述第一数据端在发送第一数据包的同时设置一超时定时器,当所述第一数据端在超出所述超时定时器设定的时间仍未收到确认信息时,则重发所述第一数据包。在本专利技术提供的数据包、数据传输系统及方法,第一数据端和第二数据端均基于UDP进行NAT穿越,所述第一数据端在发送应用数据之前,先将所述应用数据划分为多个数据单元,并根据每个数据单元作为负载以形成第一数据包,然后再将这些第一数据包逐个发送至第二数据端,所述第二数据端在接收到所述第一数据包后,根据所述第一数据包中的顺序号和确认号对其进行处理。从而实现了端到端的可靠传输,而中间的路由节点自动为通信的流量选取最佳的路由,进而实现全网效率的最优化。附图说明图1为本专利技术实施例中数据包的示意图;图2为本专利技术实施例中数据传输系统的结构示意图;图3为本专利技术实施例中数据传输方法的流程图;图4为图3中步骤S4的流程图。具体实施方式下面将结合示意图对本专利技术的具体实施方式进行更详细的描述。根据下列描述和权利要求书,本专利技术的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本专利技术实施例的目的。本专利技术实施例提供了一种数据包,如图1所示,数据包包括包头和负载,所述包头包括类型、顺序号、确认号以及标识,所述类型包括数据类型、确认类型以及否定确认类型。具体的,当所述类型为数据类型时,所述负载为应用数据,所述顺序号为该数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包的顺序号;当所述类型为确认类型时,所述确认号为期望收到的下一个数据包的顺序号,所述顺序号和负载为空;当所述类型为否定确认类型时,所述顺序号为期望收到而未收到的数据包的顺序号,所述确认号和负载为空。所述标识用于标记所述数据包的结构。所述标识的作用与现有技术中的TCP/IP协议中数据包的标识的作用相同。本专利技术实施例还提供了一种数据传输系统,如图2所示,包括第一数据端101和第二数据端102,所述第一数据端101和第二数据端102均基于UDP(UserDatagramProtoc本文档来自技高网...
数据传输系统及方法

【技术保护点】
一种数据包,其特征在于,包括包头和负载,所述包头包括类型、顺序号以及确认号,其中,所述类型包括数据类型、确认类型以及否定确认类型;当所述包头的类型为数据类型时,所述负载为应用数据,所述顺序号为该数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包的顺序号;当所述包头的类型为确认类型时,所述确认号为期望收到的下一个数据包的顺序号,所述顺序号和负载为空;当所述包头的类型为否定确认类型时,所述顺序号为期望收到而未收到的数据包的顺序号,所述确认号和负载为空。

【技术特征摘要】
1.一种数据包,其特征在于,包括包头和负载,所述包头包括类型、顺序
号以及确认号,其中,所述类型包括数据类型、确认类型以及否定确认类型;
当所述包头的类型为数据类型时,所述负载为应用数据,所述顺序号为该
数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包
的顺序号;
当所述包头的类型为确认类型时,所述确认号为期望收到的下一个数据包
的顺序号,所述顺序号和负载为空;
当所述包头的类型为否定确认类型时,所述顺序号为期望收到而未收到的
数据包的顺序号,所述确认号和负载为空。
2.如权利要求1所述的数据包,其特征在于,所述包头还包括标识,以标
记所述数据包的结构。
3.一种数据传输系统,其特征在于,包括第一数据端和第二数据端;所述
第一数据端和第二数据端均基于UDP进行NAT穿越;所述第一数据端和第二
数据端传输的数据均以权利要求1-2中任意一项所述的数据包进行传输。
4.如权利要求3所述的数据传输系统,其特征在于,所述第一数据端设置
一第一发送窗口,其容量决定所述第一数据端未收到确认信息的数据包的数量
的最大值;所述第二数据端设置一第一接收窗口,使得所述第二数据端在未接
收到期望接收的数据包时接收多个数据包。
5.如权利要求3所述的数据传输系统,其特征在于,所述第二数据端设置
一第二发送窗口,其容量决定所述第二数据端未收到确认信息的数据包的数量
的最大值;所述第一数据端设置一第二接收窗口,使得所述第一数据端在未接
收到期望接收的数据包时接收多个数据包。
6.一种如权利要求3-5中任意一项所述的数据传输系统进行数据传输的方
法,其特征在于,包括以下步骤:
第一数据端将需要发送的应用数据分割成...

【专利技术属性】
技术研发人员:杨松岸曾少勇方亮于胜强余逸凡
申请(专利权)人:豪威科技上海有限公司
类型:发明
国别省市:上海;31

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

1