数据包、数据传输系统及方法

文档序号:9814120阅读:727来源:国知局
数据包、数据传输系统及方法
【技术领域】
[0001]本发明涉及互联网通信技术领域,尤其是一种数据包、数据传输系统及方法。
【背景技术】
[0002]随着Internet的普及,越来越多的设备被接入互联网,开始具有远程访问能力。IP地址因此变成了一种稀缺资源。为解决IP地址耗尽问题,NAT(Network AddressTranslat1n,网络地址转换)被广泛地使用。NAT虽然是解决IP地址紧缺的有效办法,但也给通过网络进行通信带来一些麻烦,尤其是当通信的双方都位于NAT之后的时候。
[0003]目前实现端到端可靠传输的方法依赖TCP(Transmiss1n Control Protocol传输控制协议)。然而TCP在通信的双方都位于NAT之后而需要穿越NAT时,穿越的难度很大,而且成功率低。为此,位于NAT之后的通信双方通常要借助服务器转发的方式进行通信。使用服务器转发,虽然能够达成通信的目的,但会对服务器产生较高的要求,尤其是高带宽的应用,更可能会在服务器上产生处理瓶颈。通过服务器转发还会增加端到端的通信延迟。另夕卜,从网络的整体来看,经过服务器转发相比端到端的直接通信也必然消耗更多的网络资源。

【发明内容】

[0004]本发明的目的在于提供一种数据包、数据传输系统及方法,以实现端到端的可靠传输,中间的路由节点自动为通信的流量选取最佳的路由,从而实现全网效率的最优化。
[0005]为了达到上述目的,本发明提供了一种数据包,包括包头和负载,所述包头包括类型、顺序号以及确认号,其中,所述类型包括数据类型、确认类型以及否定确认类型;
[0006]当所述包头的类型为数据类型时,所述负载为应用数据,所述顺序号为该数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包的顺序号;
[0007]当所述包头的类型为确认类型时,所述确认号为期望收到的下一个数据包的顺序号,所述顺序号和负载为空;
[0008]当所述包头的类型为否定确认类型时,所述顺序号为期望收到而未收到的数据包的顺序号,所述确认号和负载为空。
[0009]优选的,在上述的数据包中,所述包头还包括标识,以标记所述数据包的结构。
[0010]本发明还提供了一种数据传输系统,包括第一数据端和第二数据端;所述第一数据端和第二数据端均基于UDP进行NAT穿越;所述第一数据端和第二数据端传输的数据均以上述的数据包进行传输。
[0011]优选的,在上述的数据传输系统中,所述第一数据端设置一第一发送窗口,其容量决定所述第一数据端未收到确认信息的数据包的数量的最大值;所述第二数据端设置一第一接收窗口,使得所述第二数据端在未接收到期望接收的数据包时接收多个数据包。
[0012]优选的,在上述的数据传输系统中,所述第二数据端设置一第二发送窗口,其容量觉得所述第二数据端未收到确认信息的数据包的数量的最大值;所述第一数据端设置一第二接收窗口,使得所述第一数据端在未接收到期望接收的数据包时接收多个数据包。
[0013]本发明更提供了一种数据传输方法,包括以下步骤:
[0014]第一数据端将需要发送的应用数据分割成多个数据单元,并将每个数据单元作为负载以各自形成一第一数据包;
[0015]所述第一数据端将所述第一数据包发送至所述第二数据端;
[0016]所述第二数据端接收到所述第一数据包,并根据所述第一数据包中的顺序号和确认号对其进行处理。
[0017]优选的,在上述的数据传输方法中,所述第二数据端对所接收到的所述第一数据包进行处理的步骤包括:
[0018]当所述第一数据包的顺序号落入所述第一接收窗口中时,对所述第一数据包进行缓存;
[0019]当所述第一数据包的顺序号为所述第一接收窗口中最小的顺序号时,所述第二数据端向第一数据端发送确认类型的第二数据包,同时将所述第一数据包中的负载发送至应用程序;否则,向所述第一数据端发送否定确认类型的第三数据包;
[0020]当所述第二数据端需要向所述第一数据端发送数据时,根据所述第一数据包中的确认号发送数据包,否则,不发送数据包。
[0021 ]优选的,在上述的数据传输方法中,当所述第一数据端接收到所述第二数据包时,根据所述第二数据包中的确认号滑动所述第一发送窗口。
[0022]优选的,在上述的数据传输方法中,当所述第一数据端接收到所述第三数据包时,立即重发所述第三数据包中的顺序号对应的数据包。
[0023]优选的,在上述的数据传输方法中,所述第二数据端对所接收到的所述第一数据包进行处理的步骤还包括:当所述第一数据包的顺序号落入所述第一接收窗口外时,丢弃所述第一数据包。
[0024]优选的,在上述的数据传输方法中,所述第一数据端在发送第一数据包的同时设置一超时定时器,当所述第一数据端在超出所述超时定时器设定的时间仍未收到确认信息时,则重发所述第一数据包。
[0025]在本发明提供的数据包、数据传输系统及方法,第一数据端和第二数据端均基于UDP进行NAT穿越,所述第一数据端在发送应用数据之前,先将所述应用数据划分为多个数据单元,并根据每个数据单元作为负载以形成第一数据包,然后再将这些第一数据包逐个发送至第二数据端,所述第二数据端在接收到所述第一数据包后,根据所述第一数据包中的顺序号和确认号对其进行处理。从而实现了端到端的可靠传输,而中间的路由节点自动为通信的流量选取最佳的路由,进而实现全网效率的最优化。
【附图说明】
[0026]图1为本发明实施例中数据包的示意图;
[0027]图2为本发明实施例中数据传输系统的结构示意图;
[0028]图3为本发明实施例中数据传输方法的流程图;
[0029]图4为图3中步骤S4的流程图。
【具体实施方式】
[0030]下面将结合示意图对本发明的【具体实施方式】进行更详细的描述。根据下列描述和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0031]本发明实施例提供了一种数据包,如图1所示,数据包包括包头和负载,所述包头包括类型、顺序号、确认号以及标识,所述类型包括数据类型、确认类型以及否定确认类型。具体的,当所述类型为数据类型时,所述负载为应用数据,所述顺序号为该数据包在传输的数据中的顺序位置,所述确认号为期望接收到的下一个数据包的顺序号;当所述类型为确认类型时,所述确认号为期望收到的下一个数据包的顺序号,所述顺序号和负载为空;当所述类型为否定确认类型时,所述顺序号为期望收到而未收到的数据包的顺序号,所述确认号和负载为空。所述标识用于标记所述数据包的结构。所述标识的作用与现有技术中的TCP/IP协议中数据包的标识的作用相同。
[0032]本发明实施例还提供了一种数据传输系统,如图2所示,包括第一数据端101和第二数据端102,所述第一数据端101和第二数据端102均基于
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1