一种适用于高带宽延迟系统的传输协议方法与流程
1.本发明涉及数据传输技术领域,尤其涉及一种适用于高带宽延迟系统的传输协议方法。
背景技术:
2.目前,在网络中进行文件传输所使用的传输层协议,常用的有tcp(传输控制协议)和udp(用户数据报协议)。
3.tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议,旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间,依靠tcp提供可靠的通信服务。tcp可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,tcp应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
4.tcp协议目前已广泛应用于各种数据传输,但在某些情况下,如高带宽延迟环境,由于它使用的tcp拥塞控制算法(aimd)的特性,tcp需要很长时间才能适应可用带宽的变化。并且,它在网络拥塞比较严重的情况下的表现不尽人意。为了解决这个问题,出现了一些修正的tcp协议,如bic tcp,cubic tcp和fast tcp等。然而,这些协议只能部分的改善这个问题。
5.udp是osi(open system interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。udp报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为udp协议的控制选项较少,在数据传输过程中延迟小、数据传输效率高。
6.对比tcp协议来说,udp协议的传输代价更小,速度更快,但无法保证其可靠性也不可用于对可靠性要求高的传输系统,因其无连接特性,更不可能实时动态调整拥塞以适应可用带宽变化。
技术实现要素:
7.本发明的目的在于提供一种适用于高带宽延迟系统的传输协议方法,以解决上述背景技术中遇到的问题。
8.为实现上述目的,本发明的技术方案如下:
9.一种适用于高带宽延迟系统的传输协议方法,完整的数据传输过程包括建立连接、数据传输、拥塞控制和断开连接,其中:
10.建立连接的方法:通过一次消息往返即可完成握手建立连接,周期性的消息握手替代了传统可靠协议中的心跳机制;
11.数据传输的方法:通过设置发送缓冲区和接收缓冲区,发送缓冲区的数据按序号顺序发送数据包发送至接收端,接收端按照包序号放入接收缓冲区,发送缓冲区释放队前
空间允许发送端应用层放入数据;
12.拥塞控制的方法:通过一个较小的发送周期,并根据周期内的ack数量、nak数量和网络延迟rtt,综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化;
13.断开连接的方法:发送端向接收端发送断开指令,接收端收到指令后断开连接。
14.具体的,上述方案中,所述建立连接的方法,包括以下步骤:
15.s11、发送端向接收端发送syn包;
16.s12、接收端接收到syn包后根据发送端地址和自身密钥生成token返回给发送端,后续每次接收到包含token的syn都返回一个应答;
17.s13、发送端接收到syn应答后,定期向接收端发送包含token的syn包保持连接;
18.s14、发送端接收到第一个syn应答后立即开始传输数据,后续收到的syn应答都丢弃。
19.具体的,上述方案中,所述数据传输的方法,包括以下步骤:
20.s21、对于发送端和接收端,分别设有发送缓冲区和接收缓冲区,用来保存发送和接收的数据;
21.s22、发送端应用层向发送缓冲区中放入数据,当发送缓冲区满后暂停放入,待发送缓冲区有空闲空间时继续放入;
22.s23、发送端传输层从发送缓冲区按序号顺序提取数据包并发送,该数据包在缓冲区中处于等待应答态;
23.s24、接收端传输层接收到数据包后按照包序号放入接收缓冲区,并立即返回ack给发送端;
24.s25、发送端接收到ack后将发送缓冲区中对应的数据包置为完成态,并判断发送缓冲区窗口是否后移,发送缓冲区窗口后移可释放队前空间,以允许发送端应用层放入数据。
25.进一步的,在步骤s21中,所述接收缓冲区的空间大于发送缓冲区的空间。
26.再进一步的,在步骤s24中,因发送端按序号顺序发送数据包,接收端也是按顺序接收数据包,当发生丢包现象时,接收端能即时发现,并向发送端发送包含包序号的nak包;发送端接收到nak包后按序号重发数据包。
27.具体的,上述方案中,所述拥塞控制的方法,包括以下步骤:
28.s31、通过调节一个发送周期内的数据包数量来控制传输速率,其中的发送周期是一个固定长度的时间段;
29.s32、发送端按顺序将数据包发出,接收端收到数据包后检查是否有数据包丢失;
30.s33、接收端接收到一个数据包就向发送端发送一个ack包,接收端检测到丢失一个数据包就向发送端发送一个nak包;
31.s34、发送端在每个发送周期结束时统计接收到的nak包数量,并根据ack包中网络延迟rtt综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化。
32.具体的,上述方案中,所述断开连接的方法,包括以下步骤:
33.s41、发送端向接收端发送一个shutdown包,并不再发送syn包;
34.s42、接收端接收到shutdown包后,返回一个应答包并关闭连接;
35.s43、发送端接收到关闭应答包后也关闭连接。
36.进一步的,在s43中,如果发送端在发出shutdown包一定时间后未收到关闭应答包,按超时计并关闭连接。
37.再进一步的,在s43中,如果发送端在一定时间内未收到syn应答包,接收端在一定时间内未收到syn包,都按超时计并关闭连接。
38.与现有技术相比,本发明的有益效果是:本传输协议方法是基于udp协议提出的一种能够适用于高带宽延迟网络的可靠传输协议,摒弃了tcp协议中多次握手等待所产生的资源开销,也避免了tcp协议对高带宽延迟网络的不适应特性。应用全新提出的拥塞控制机制,可实时自动调节发包速率,充分使用可用带宽,能够完美适应可用带宽不确定、高带宽延迟的网络环境。
附图说明
39.参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
40.图1为本发明整体流程示意图;
41.图2为本发明中建立连接的方法示意图;
42.图3为本发明中数据传输的方法示意图;
43.图4为本发明中拥塞控制的方法示意图。
具体实施方式
44.为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示本发明有关的构成。
45.根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
46.下面结合附图和实施例对本发明的技术方案做进一步的详细说明。
47.如图1至图4所示,一种适用于高带宽延迟系统的传输协议方法,完整的数据传输过程包括建立连接、数据传输、拥塞控制和断开连接,其中:
48.1、建立连接的方法:通过一次消息往返即可完成握手建立连接,周期性的消息握手替代了传统可靠协议中的心跳机制。本方案通过一次消息往返即可完成握手建立连接,资源开销更少,利用周期性的消息握手替代了传统可靠协议中的心跳机制,更可通过握手消息中的token信息确保了连接的有效性。
49.具体的,请参阅图2,所述建立连接的方法,包括以下步骤:
50.s11、发送端向接收端发送syn包;
51.s12、接收端接收到syn包后根据发送端地址和自身密钥生成token返回给发送端,后续每次接收到包含token的syn都返回一个应答;
52.s13、发送端接收到syn应答后,定期向接收端发送包含token的syn包保持连接;
53.s14、发送端接收到第一个syn应答后立即开始传输数据,后续收到的syn应答都丢弃。
54.2、数据传输的方法:通过设置发送缓冲区和接收缓冲区,发送缓冲区的数据按序号顺序发送数据包发送至接收端,接收端按照包序号放入接收缓冲区,发送缓冲区释放队前空间允许发送端应用层放入数据。
55.具体的,请参阅图3,所述数据传输的方法,包括以下步骤:
56.s21、对于发送端和接收端,分别设有发送缓冲区和接收缓冲区,用来保存发送和接收的数据;进一步的,所述接收缓冲区的空间大于发送缓冲区的空间,一般接收缓冲区的空间大小为发送缓冲区的空间大小的两倍,使其具备足有的空间来运转数据。
57.s22、发送端应用层向发送缓冲区中放入数据,当发送缓冲区满后暂停放入,待发送缓冲区有空闲空间时继续放入;
58.s23、发送端传输层从发送缓冲区按序号顺序提取数据包并发送,该数据包在发送缓冲区中处于等待应答态;
59.s24、接收端传输层接收到数据包后按照包序号放入接收缓冲区,并立即返回ack给发送端;
60.s25、发送端接收到ack后将发送缓冲区中对应的数据包置为完成态,并判断发送缓冲区窗口是否后移,发送缓冲区窗口后移可释放队前空间,以允许发送端应用层放入数据。
61.再进一步的,在步骤s24中,因发送端按序号顺序发送数据包,接收端也是按顺序接收数据包,当发生丢包现象时,接收端能即时发现,并向发送端发送包含包序号的nak包;发送端接收到nak包后按序号重发数据包。
62.3、拥塞控制的方法:通过一个较小的发送周期,并根据周期内的ack数量、nak数量和网络延迟rtt,综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化。
63.具体的,请参阅图4,所述拥塞控制的方法,包括以下步骤:
64.s31、通过调节一个发送周期内的数据包数量来控制传输速率,其中的发送周期是一个固定长度的时间段;
65.s32、发送端按顺序将数据包发出,接收端收到数据包后检查是否有数据包丢失;
66.s33、接收端接收到一个数据包就向发送端发送一个ack包,接收端检测到丢失一个数据包就向发送端发送一个nak包;
67.s34、发送端在每个发送周期结束时统计接收到的nak包数量,并根据ack包中网络延迟rtt(round trip time)综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化。
68.因发送周期是一个固定的较小值,发送端就可通过调整发送周期内发送的数据包数量,实时适应可用带宽变化。
69.结合图4可知,在发送周期n内共发送数据包i+1个,其数据包个数是在上一个发送周期结束时确定,ack中包含数据包序号,所以最后一个ack序号也是i+1。下一个发送周期的数据包个数的计算方法简单来说:收到一个nak包减少1/16数据包数量,从而降低发送速率;全部发送成功增加1/8数据包数量,从而提高发送速率。
70.4、断开连接的方法:发送端向接收端发送断开指令,接收端收到指令后断开连接。
71.具体的,上述方案中,所述断开连接的方法,包括以下步骤:
72.s41、发送端向接收端发送一个shutdown包,并不再发送syn包;
73.s42、接收端接收到shutdown包后,返回一个应答包并关闭连接;
74.s43、发送端接收到关闭应答包后也关闭连接。
75.进一步的,在s43中,如果发送端在发出shutdown包一定时间后未收到关闭应答包,按超时计并关闭连接。
76.再进一步的,在s43中,如果发送端在一定时间内未收到syn应答包,接收端在一定时间内未收到syn包,都按超时计并关闭连接。
77.本传输协议方法,基于udp传输协议提出一种能够适用于高带宽延迟网络的可靠传输协议,该协议能够保证信息的完整性和有序性,保障数据的可靠发送与接收,能够根据网络可用带宽实时自适应调节拥塞控制。
78.本发明是基于udp协议提出的一种能够适用于高带宽延迟网络的可靠传输协议,摒弃了tcp协议中多次握手等待所产生的资源开销,也避免了tcp协议对高带宽延迟网络的不适应特性。使用全新的高效握手、应答机制、包排序机制,保证了数据传输的可靠性。应用全新提出的拥塞控制机制,可实时自动调节发包速率,充分使用可用带宽,能够完美适应可用带宽不确定、高带宽延迟的网络环境。
79.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式,并不用于限定本发明保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应含在本发明的保护范围之内。
技术特征:
1.一种适用于高带宽延迟系统的传输协议方法,其特征在于,完整的数据传输过程包括建立连接、数据传输、拥塞控制和断开连接,其中:建立连接的方法:通过一次消息往返即可完成握手建立连接,周期性的消息握手替代了传统可靠协议中的心跳机制;数据传输的方法:通过设置发送缓冲区和接收缓冲区,发送缓冲区的数据按序号顺序发送数据包发送至接收端,接收端按照包序号放入接收缓冲区,发送缓冲区释放队前空间允许发送端应用层放入数据;拥塞控制的方法:通过一个较小的发送周期,并根据周期内的ack数量、nak数量和网络延迟rtt,综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化;断开连接的方法:发送端向接收端发送断开指令,接收端收到指令后断开连接。2.根据权利要求1所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,所述建立连接的方法,包括以下步骤:s11、发送端向接收端发送syn包;s12、接收端接收到syn包后根据发送端地址和自身密钥生成token返回给发送端,后续每次接收到包含token的syn都返回一个应答;s13、发送端接收到syn应答后,定期向接收端发送包含token的syn包保持连接;s14、发送端接收到第一个syn应答后立即开始传输数据,后续收到的syn应答都丢弃。3.根据权利要求1所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,所述数据传输的方法,包括以下步骤:s21、对于发送端和接收端,分别设有发送缓冲区和接收缓冲区,用来保存发送和接收的数据;s22、发送端应用层向发送缓冲区中放入数据,当发送缓冲区满后暂停放入,待发送缓冲区有空闲空间时继续放入;s23、发送端传输层从发送缓冲区按序号顺序提取数据包并发送,该数据包在缓冲区中处于等待应答态;s24、接收端传输层接收到数据包后按照包序号放入接收缓冲区,并立即返回ack给发送端;s25、发送端接收到ack后将发送缓冲区中对应的数据包置为完成态,并判断发送缓冲区窗口是否后移,发送缓冲区窗口后移可释放队前空间,以允许发送端应用层放入数据。4.根据权利要求3所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于:在步骤s21中,所述接收缓冲区的空间大于发送缓冲区的空间。5.根据权利要求3所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于:在步骤s24中,因发送端按序号顺序发送数据包,接收端也是按顺序接收数据包,当发生丢包现象时,接收端能即时发现,并向发送端发送包含包序号的nak包;发送端接收到nak包后按序号重发数据包。6.根据权利要求1所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,所述拥塞控制的方法,包括以下步骤:s31、通过调节一个发送周期内的数据包数量来控制传输速率,其中的发送周期是一个固定长度的时间段;
s32、发送端按顺序将数据包发出,接收端收到数据包后检查是否有数据包丢失;s33、接收端接收到一个数据包就向发送端发送一个ack包,接收端检测到丢失一个数据包就向发送端发送一个nak包;s34、发送端在每个发送周期结束时统计接收到的nak包数量,并根据ack包中网络延迟rtt综合计算出下一个发送周期内应发数据包数量,以此适应当前可用带宽变化。7.根据权利要求1所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,所述断开连接的方法,包括以下步骤:s41、发送端向接收端发送一个shutdown包,并不再发送syn包;s42、接收端接收到shutdown包后,返回一个应答包并关闭连接;s43、发送端接收到关闭应答包后也关闭连接。8.根据权利要求7所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,在s43中,如果发送端在发出shutdown包一定时间后未收到关闭应答包,按超时计并关闭连接。9.根据权利要求7所述的一种适用于高带宽延迟系统的传输协议方法,其特征在于,在s43中,如果发送端在一定时间内未收到syn应答包,接收端在一定时间内未收到syn包,都按超时计并关闭连接。
技术总结
本发明涉及一种适用于高带宽延迟系统的传输协议方法,完整的数据传输过程包括建立连接、数据传输、拥塞控制和断开连接。本发明是基于UDP协议提出的一种能够适用于高带宽延迟网络的可靠传输协议,摒弃了TCP协议中多次握手等待所产生的资源开销,也避免了TCP协议对高带宽延迟网络的不适应特性。应用全新提出的拥塞控制机制,可实时自动调节发包速率,充分使用可用带宽,能够完美适应可用带宽不确定、高带宽延迟的网络环境。带宽延迟的网络环境。带宽延迟的网络环境。