CN105933242A - 一种提高数据中心tcp响应速度的方法及系统 - Google Patents

一种提高数据中心tcp响应速度的方法及系统 Download PDF

Info

Publication number
CN105933242A
CN105933242A CN201610225780.9A CN201610225780A CN105933242A CN 105933242 A CN105933242 A CN 105933242A CN 201610225780 A CN201610225780 A CN 201610225780A CN 105933242 A CN105933242 A CN 105933242A
Authority
CN
China
Prior art keywords
syn
value
rtt
data
rto
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610225780.9A
Other languages
English (en)
Other versions
CN105933242B (zh
Inventor
李大刚
王家祥
李树
李树一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN201610225780.9A priority Critical patent/CN105933242B/zh
Publication of CN105933242A publication Critical patent/CN105933242A/zh
Application granted granted Critical
Publication of CN105933242B publication Critical patent/CN105933242B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • H04L1/1851Time-out mechanisms using multiple timers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种提高数据中心TCP响应速度的方法及系统,属于计算机之间通讯优化领域。本发明方法包括如下步骤:搜索SRTTold;判断SRTTold是否存在,如果是,根据SRTTold计算建立连接时RTO,如果否,将RTO设为一定值;发送建立连接时的握手信号SYN,收到应答信号SYN‑ACK;设置发送数据包时的重传定时器的值RTOdata;发送第一个数据包;判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成。本发明通过优化RTO初始值的计算和设置,使得数据中心网络中的TCP流能够对网络丢包等情形做出快速响应,大大提高TCP响应速度。

Description

一种提高数据中心TCP响应速度的方法及系统
技术领域
本发明涉及计算机之间通讯优化领域,尤其涉及一种提高数据中心TCP响应速度的方法及系统。
背景技术
TCP是目前使用最为广泛的传输协议,它提供端到端的可靠传输服务。TCP采用流量控制机制以避免“拥塞崩溃”,Jacobson V针对TCP的流量控制机制导致的“拥塞崩溃”问题并提出了一系列改进措施。简单的说就是,网络空闲时,TCP增加其数据发送速率,而当网络变得拥塞时降低其数据发送速率。TCP用包丢失作为网络拥塞的指示器并以此调整其数据发送速率。由于缺少显示拥塞通知ECN,TCP采用重复确认和重传机制两种方式推断包丢失和网络拥塞。重传计时器是TCP重传机制的核心。TCP通过确认从对端接收的数据以保证可靠传输,而数据和确认都有可能丢失。TCP通过设定重传计时器来解决这个问题。重传计时器在TCP连接发送端发送数据时设定,如果定时器已超时而对端的确认还未到达,TCP将重传数据,重传定时器的值称为RTO。为了适应不断变化的网络环境,RTO是动态计算的。RTO的计算取决于TCP为该连接报文段测量的往返时间RTT和该报文段已被重传的次数。TCP每测量一次RTT即更新一次RTO(重传的包其RTT不用来计算RTO)。IETF(互联网工程任务组)最新建议标准建议将RTO初始值从3秒减少到1秒。
通过重传计时器推断包丢失虽然可以保证TCP的可靠传输,但也带来了TCP性能的严重退化。当包丢失而没有触发dupack时TCP发送者除了等待RTO超时重发数据包之外什么都不能做,因此,RTO值的选取尤为重要。偏大的RTO值会造成过多的等待时间,而偏小的RTO值则会导致不必要的重传。表1给出了常用操作系统典型的RTT和RTOmin值。
表1典型的RTT和RTOmin
然而,随着TCP的广泛应用,TCP重传机制带来的性能退化在一些应用TCP的特定场景中表现的特别明显,其中的典型例子就是数据中心网络环境。数据中心支持大量的服务和应用。现代数据中心网络与广义网具有很大的差别,具有高带宽、低时延等特点。大部分数据中心网络采用TCP协议进行节点间的通信,但TCP重传机制带来的性能退化严重降低了数据中心网络的性能。数据中心的TCP连接RTT一般小于250微秒(不计排队时间),而在目前数据中心网络中的大部分TCP实现中,RTO的初始值设为1秒,RTOmin被设置为200毫秒。数据中心网络中的很多服务和应用是短数据流,考虑如下场景:一个客户端通过1Gbit/s的链路向服务器发送1KB的数据包(也可能是SYN和SYN-ACK包)时,相关文献指出,在某一瓶颈链路较为拥堵的情况下,该传输有1%的可能会发生TCP超时重传。若SYN包丢失,客户端至少需要再等待1秒才能重传SYN包,仅仅连接建立阶段将花费1秒以上的时间,而整个通信正常情况下的传输时间仅仅几十毫秒甚至几毫秒;若传输的过程中数据包丢失,该客户端至少需要再等待200毫秒才能再次发送数据请求包,相对于微秒级的RTT,过多的等待时间严重降低了数据中心网络应用的通信效率。
在广域网中,通过减少RTO的初始值以减少重传机制带来的性能退化有诸多限制条件。首先,在两个通信实体第一次数据交换之前,TCP发送者没有任何信息可以用来估算RTT,目前的TCP只能保守的设置一个较大的RTO初始值来避免不必要的重传;其次,广域网中TCP连接的RTT值波动范围非常大,RTO初始值过小会引起TCP连接建立阶段不必要的重传。最后,广域网中的通信任务持续时间可达几秒甚至数分钟,其RTO初始值偏大所带来的空闲等待时间影响并不大,但是在以短流居多且RTT为微妙级的数据中心网络中这些等待时间带来的影响是巨大的。由于以上限制,在广域网环境下对RTO初始值以及RTOmin进行改进的相关技术几乎一片空白。
在数据中心网络中,由于数据中心网络RTT波动范围相对较小,上述第二条限制可以取消,这使得减小RTO初始值及RTOmin变得可能。在关于数据中心网络RTO的相关技术研究中,Vasudevan和Phanishaye等人实现了高精度时钟并用来解决数据中心的TCPincast问题。
以上的现有技术研究工作均没有针对性的提出通过改进RTO初始值及RTOmin的设置进而提高数据中心网络环境下的TCP响应速度的方法。
发明内容
为解决现有技术中的问题,本发明提供一种提高数据中心TCP响应速度的方法,还提供了一种实现上述方法的系统。
本发明的方法包括如下步骤:
S1:开始,搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
S2:判断SRTTold值是否存在,如果是,根据SRTTold值计算建立连接时重传定时器的值RTO,如果否,将重传定时器的值RTO设定为一定值;
S3:发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
S4:设置发送数据包时的重传定时器的值RTOdata
S5:发送第一个数据包;
S6:判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成,结束。
本发明做如下改进,所述步骤S4包括如下步骤:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值。
或者,本发明做如下改进:所述步骤S4包括如下步骤:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata;然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
本发明作进一步改进,所述步骤S42中,如果握手信号SYN重传,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata
本发明还可以做如下改进,在步骤S6执行之前,还包括记录DIFsyn步骤B,所述DIFsyn为最近一次通讯双方通讯时,若SYN未发生重传时,RTTsyn与第一个数据包往返时延RTTdata_first之间的差值。
本发明作进一步改进,所述记录DIFsyn步骤B包括如下:
B1:记录收到第一个有效数据包的RTT值;
B2:判断SYN是否重传,如果是,执行步骤S6,如果否,根据步骤B1中记录的RTT值计算DIFsyn值,并更新SRTTold值,然后执行步骤S6,其中,DIFsyn=RTT-RTTsyn
本发明作进一步改进,在步骤S1中,除了搜索通讯双方上次通讯的SRTTold值之外,还搜索DIFsyn值。
本发明作进一步改进,所述步骤S4包括如下步骤:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:判断SYN是否重传,如果是,根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata,然后执行步骤S5,如果否,利用修正后的建立连接时间RTTopt_syn计算发送数据包时的重传定时器的值RTOdata,其中,RTTopt_syn=RTTsyn+DIFsyn,然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
本发明作进一步改进,在步骤S42中,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata
本发明还提供了一种实现上述提高数据中心TCP响应速度的方法的系统,包括:搜索模块:用于搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
第一判断模块:用于判断SRTTold值是否存在,如果是,根据SRTTold值计算建立连接时重传定时器的值RTO,如果否,将重传定时器的值RTO设定为一定值;
建立连接模块:用于发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
设置模块:用于设置发送数据包时的重传定时器的值RTOdata
发送模块:用于发送第一个数据包;
第二判断模块:用于判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成。
与现有技术相比,本发明的有益效果是:本发明利用数据中心网络环境流量及拓扑相对稳定的特性,利用节点间最近通信的SRTT记录在保证安全性的前提下,通过优化RTO初始值的计算和设置使得数据中心网络中的TCP流能够对网络丢包等情形做出快速响应,大大提高数据中心网络环境下的TCP响应速度,尤其对于短数据流本发明取得的有益效果更为突出;利用修正后的RTTopt_syn建立连接时间计算得出的RTOdata既不会太大又能减小因第一个数据包伪到重传导致第二个数据包RTO太大的问题;解决了当SYN重传时第一个数据包重传等待时间过长的问题,大大缩短了数据包传输响应时间。
附图说明
图1为本发明实施例一方法流程图;
图2为本发明实施例二方法流程图;
图3为本发明实施例三方法流程图;
图4为TCP/IP协议栈模块间数据流图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如图1所示,为了适应通信时延不断减小的现代网络,RFC 6298(IETF(互联网工程任务组)订立的关于TCP网络协议标准)提出,在TCP连接建立时,将RTO的初始值由的3秒降低至1秒。如果在三次握手阶段没有发生重传则在数据包开始传输时RTO等于1秒,否则,将RTO的值重新置为较为保守的3秒。但是,1秒的初始值相对于数据中心网络仅几百微秒的时延还是太大。如果三次握手阶段发生SYN超时重传,整个传输过程将会超过1秒,这是不能接受的。在数据中心网络中,网络拓扑和路由相对稳定,节点间通信时延变化较小,因此利用现有技术在数据中心网络环境下所实现的高精度时钟,我们就具备了在数据中心网络中减小RTO初始值的条件,就可以解决SYN包超时重传等待时间过长的问题。
作为本发明的第一个实施例,两个主机第一次通讯时,包括如下步骤:
S1:开始,搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
S2:判断SRTTold值是否存在,因双方是第一次通讯,因此SRTTold值不存在,那么将重传定时器的值RTO设定为1秒;
S3:发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
S4:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,本例的计算公式为:RTOdata=RTTsyn+max(G,4*(RTTsyn/2)),其中,RTTsyn代表SYN包没有重传情况下的RTT,G代表时钟粒度,这里为1微秒;
S5:发送第一个数据包;
S6:判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成,结束。
当两个主机第二次及以上进行通讯时,具体步骤如下:
S1:开始,搜索通讯双方上次通讯的SRTTold值;
S2:判断SRTTold值是否存在,因双方是第二次或更多次通讯,因此SRTTold值存在,那么就根据SRTTold值计算建立连接时重传定时器的值RTO,本例的计算公式为:RTO=SRTTold+max(G,4*(SRTTold/2)),RTOmin=G;
S3:发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
S4:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,本例的计算公式为:RTOdata=RTTsyn+max(G,4*(RTTsyn/2)),其中,RTTsyn代表SYN包没有重传情况下的RTT,G代表时钟粒度,这里为1微秒;
S5:发送第一个数据包;
S6:判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成,结束。
本实施例重点解决建立连接时,SYN包超时重传等待时间过长的问题,以下举例具体说明。
假设主机A向主机B发送大小为2KB的数据(比如,一个网页),包大小为1KB,链路带宽为1Gbit/s,链路时延为30微秒。理想情况下,该传输会在200微秒内结束。但是,如果连接建立阶段发生SYN包或者SYN-ACK包丢失,按照RFC 6298的建议,则整个传输过程需要耗费1s以上。因此,为了减少SYN超时重传等待的时间,本发明做出如下技术改进:
主机A会在步骤S6中记录过去一段时间内与其通信的主机之间通信时的SRTT(也就是平滑后的RTT值)。假如主机A记录了上一次与B通信时的SRTTold值,在这次连接建立时,也就是步骤S2中,SRTTold值存在,本发明将所记录的SRTTold值作为本次通信的RTT的一个样本。RFC 6298中得到第一个数据包传输的RTT样本R之后计算RTO的方法如下:
SRTT=R
RTTVAR=R/2
RTO=SRTT+max(G,K*RTTVAR)
其中:K=4,G代表时钟粒度,Linux 3.13内核中的值为200毫秒。
参照上述做法,我们将SRTTold作为一个RTT样本值来计算TCP连接建立时的RTO初始值。
RTO=SRTTold+max(G,4*(SRTTold/2))
RTOmin=G
由于部署了高精度时钟,G为1微秒而不是200毫秒,因此,RTOmin的值从200毫秒降至1微秒。值得注意的是,这里并没有初始化本次传输的SRTT以及RTTVAR的值,只是用SRTTold计算RTO的初始值。因为SRTTold只是对本次通信RTT的一个估计,并不能完全代表这次通信的某一RTT样本值。这样做的好处是既合理地缩小了RTO的初始值,又不影响本次通信SRTT及RTTVAR计算的准确性,并且,随着通讯次数的增多,SRTTold的值也更加精准。
如图2所示,作为本发明的第二个实施例,主要是为了优化SYN重传时第一个数据包的RTO设置,大大缩短了数据包的重传等待时间。
RFC6298中,当SYN发生重传时,第一个数据包重传时的RTO值此时会被重新设置为3秒。这样做的依据在于,连接建立阶段的丢包可以被视为网络拥塞的标志,因此当连接建立的握手阶段发生SYN包重传时应当把第一个数据包发送之前的RTO值设置德更加保守。但是,由于数据中心网络的高带宽和低时延特性,其丢包更可能是由于瞬时的流量激增而造成的,一般不会持续太长时间,显然3秒的等待时间还是太长了。
因此,为了解决当SYN包重传时第一个数据包重传等待时间过长的问题,本发明对实施例一中的步骤S4做了如下改进,所述步骤S4包括如下步骤:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata;然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
本实施例还沿用第一个实施例的例子进一步说明:
如果主机A和主机B为第一次通讯,在步骤S3执行后,先执行判断步骤S41,判定不会有历史连接记录,那么就还是按照第一个实施例的顺序执行,也就是执行本实施例的步骤S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
当主机A和主机B为第二次以上通讯时,在步骤S3执行完后,执行判断步骤S41,判断是否存在历史连接记录,本次存在历史连接记录,那么接下来执行步骤S42;
S42:根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata;然后执行步骤S5。
在所述步骤S42中,如果握手信号SYN重传,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata
因此,本例的计算公式如下:
RTTsyn=Tsyn_ack–Tfirst_syn,其中,Tsyn_ack代表连接建立请求方收到SYN-ACK的时间,Tfirst_syn代表连接建立请求方发送第一个SYN包的时间。也就是说,当SYN没有发生重传时,这里计算出的RTTsyn与实际的SYN包的RTT相同;当SYN发生重传时,这里计算的RTTsyn则大于实际的SYN包的RTT值。
然后第一个数据包的RTO按如下方式计算:RTOdata=RTTsyn+max(G,4*(RTTsyn/2)),
其中,RTTsyn代表SYN包没有重传情况下的RTT,G代表时钟粒度,这里为1微秒。
利用修改后的技术方案得到的RTTsyn对SYN发生重传时第一个数据包的RT0进行计算,当SYN发生重传时利用此时偏大的RTTsyn计算得出的RTO已经相对保守,但是相对于3秒的设置显然还是大大缩短了重传等待时间。
如图3所示,作为本发明的第三个实施例,主要是为了解决SYN包RTT偏小导致的伪到重传问题。
依据RFC 6298的建议,当TCP连接建立阶段没有发生重传时,第一个数据包的RTO按如下方式计算:
RTOdata=RTTsyn+max(G,4*(RTTsyn/2))
其中,RTTsyn代表SYN包没有重传情况下的RTT,G代表时钟粒度,这里为1微秒。此外,当SYN发生重传时,RTO的值此时会被重新设置为3秒。
由于SYN包比正常的数据包要小,因此RTTsyn要比正常的数据包RTT要小,甚至RTTsyn不到正常数据包RTT的一半。显然,采用这种方式估算出的第一个数据包的RTO偏小。若主机A发送的第一个数据包由于RTO估值过小而发生超时重传(伪到重传),则此时RTO计算中使用的退避指数由1变为2,若此时第二个数据包也经历超时,由于此时此次传输还没有获得有效的RTT样本,退避指数不会重置,则第二个数据包的RTO=2*initialRTO=2s,显然,这样造成的等待时间是巨大的。
为了减小这种情况发生的概率,本发明做出如下技术改进:
在步骤S6执行之前,还包括记录DIFsyn步骤B,所述DIFsyn为最近一次通讯双方通讯时,若SYN未发生重传时,RTTsyn与第一个数据包往返时延RTTdata_first之间的差值。
本例所述记录DIFsyn步骤B包括如下:
B1:记录收到第一个有效数据包的RTT值;
B2:判断SYN是否重传,如果是,执行步骤S6,如果否,根据步骤B1中记录的RTT值计算DIFsyn值,并更新SRTTold值,然后执行步骤S6,其中,DIFsyn=RTT-RTTsyn
本例还沿用实施例一的例子说明:主机A除了记录过去一段时间内与其通信的主机之间通信时的SRTT之外,还记录下最近一次双方通信时若SYN未发生重传RTTsyn与第一个数据包的往返时延RTTdata_first之间的差值DIFsyn,DIFsyn=RTT-RTTsyn
在本次通信时,在步骤S1中,除了搜索通讯双方上次通讯的SRTTold值之外,还搜索DIFsyn值;此外,在步骤S3执行完毕,还先执行判断步骤S41:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:判断SYN是否重传,如果是,根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata,然后执行步骤S5,如果否,利用修正后的建立连接时间RTTopt_syn计算发送数据包时的重传定时器的值RTOdata,其中,RTTopt_syn=RTTsyn+DIFsyn,然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
如果主机A和主机B为第一次通讯,那么就不会有历史连接记录,那么接下来就还是按照实施例一的顺序执行,也就是执行S43,然后,执行完步骤S5,在步骤S6执行前,执行记录DIFsyn步骤B,计算DIFsyn值,并更新SRTTold值。
当主机A和主机B为第二次以上通讯时,在步骤S1中,搜索通讯双方上次通讯的SRTTold值和DIFsyn值,在步骤S3执行完后,执行判断步骤S41:判断是否存在历史连接记录,本次存在历史连接记录,那么接下来执行步骤S42;
S42:判断SYN是否重传,如果是,根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata,然后执行步骤S5,如果否,利用修正后的建立连接时间RTTopt_syn计算发送数据包时的重传定时器的值RTOdata,其中,RTTopt_syn=RTTsyn+DIFsyn,然后执行步骤S5。
所述步骤S42中,如果握手信号SYN重传,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata。计算公式为:RTTsyn=Tsyn_ack–Tfirst_syn,RTOdata=RTTsyn+max(G,4*(RTTsyn/2))。
其中,Tsyn_ack代表连接建立请求方收到SYN-ACK的时间,Tfirst_syn代表连接建立请求方发送第一个SYN包的时间。也就是说,当SYN没有发生重传时,这里计算出的RTTsyn与实际的SYN包的RTT相同;当SYN发生重传时,这里计算的RTTsyn则大于实际的SYN包的RTT值。利用修改后的技术方案得到的RTTsyn对SYN发生重传时第一个数据包的RT0进行计算,当SYN发生重传时利用此时偏大的RTTsyn计算得出的RTO已经相对保守,但是相对于3秒的设置显然还是大大缩短了重传等待时间。
在所述步骤S42中,如果握手信号SYN没有重传,那么对RTTsyn进行如下修正:
RTTopt_syn=RTTsyn+DIFsyn
RTOdata=RTTopt_syn+max(G,4*(RTTopt_syn/2))
利用修正后的RTTopt_syn计算计算得出的RTOdata既不会太大又能减小因第一个数据包伪到重传导致第二个数据包RTO太大的问题。
本发明所采用的技术方案在实施过程中只要求节点在本地存储历史传输记录,且在没有改变现行网络中TCP协议的传输行为的前提下,对TCP初始参数的设置进行了优化,因此具有很强的可实施性。节点保存历史传输信息所使用的基本数据结构如表2所示。
目标节点 SRTT记录 DIFsyn记录
节点1 …… ……
节点2 …… ……
…… …… ……
表2历史传输信息数据结构
在对TCP/IP协议栈的具体修改实现中,协议栈相关的主要模块间的数据流如图4中的箭头所示,其中,各模块的主要功能如下:
历史信息存储模块:主要负责利用表2中的数据结构对节点间历史传输信息的存储;
查询接口:主要负责在连接建立时对历史信息进行查询并返回结果;
更新接口:主要负责在数据传输过程中动态更新历史传输信息;
算法处理:主要负责对TCP/IP协议栈的初始化部分进行修改。
本发明利用数据中心网络环境流量及拓扑相对稳定的特性,利用节点间最近通信的SRTT记录在保证安全性的前提下,通过优化RTO初始值的计算和设置使得数据中心网络中的TCP流能够对网络丢包等情形做出快速响应,大大提高数据中心网络环境下的TCP响应速度,尤其对于短数据流本发明取得的有益效果更为突出。
此外,本发明还提供了一种实现上述方法的系统,包括搜索模块:用于搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
第一判断模块:用于判断SRTTold值是否存在,如果是,根据SRTTold值计算建立连接时重传定时器的值RTO,如果否,将重传定时器的值RTO设定为一定值;
建立连接模块:用于发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
设置模块:用于设置发送数据包时的重传定时器的值RTOdata
发送模块:用于发送第一个数据包;
第二判断模块:用于判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成。
为了解决在数据包传输时,RTOdata既不会太大又能减小因第一个数据包伪到重传导致第二个数据包RTO太大的问题,本发明还包括记录DIFsyn模块:设置在发送模块和第二判断模块之间,用于记录DIFsyn值,所述DIFsyn为最近一次通讯双方通讯时,若SYN未发生重传时,RTTsyn与第一个数据包往返时延RTTdata_first之间的差值。当通讯双方建立连接后,发送第一个数据包之前,如果握手信号SYN没有重传,则利用DIFsyn值修正RTTsyn值。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

Claims (10)

1.一种提高数据中心TCP响应速度的方法,其特征在于包括如下步骤:
S1:开始,搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
S2:判断SRTTold值是否存在,如果是,根据SRTTold值计算建立连接时重传定时器的值RTO,如果否,将重传定时器的值RTO设定为一定值;
S3:发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
S4:设置发送数据包时的重传定时器的值RTOdata
S5:发送第一个数据包;
S6:判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成,结束。
2.根据权利要求1所述的提高数据中心TCP响应速度的方法,其特征在于:所述步骤S4包括如下步骤:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值。
3.根据权利要求1所述的提高数据中心TCP响应速度的方法,其特征在于:所述步骤S4包括如下步骤:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata;然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
4.根据权利要求3所述的提高数据中心TCP响应速度的方法,其特征在于:所述步骤S42中,如果握手信号SYN重传,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata
5.根据权利要求1所述的提高数据中心TCP响应速度的方法,其特征在于:在步骤S6执行之前,还包括记录DIFsyn步骤B,所述DIFsyn为最近一次通讯双方通讯时,若SYN未发生重传时,RTTsyn与第一个数据包往返时延RTTdata_first之间的差值。
6.根据权利要求5所述的提高数据中心TCP响应速度的方法,其特征在于:所述记录DIFsyn步骤B包括如下:
B1:记录收到第一个有效数据包的RTT值;
B2:判断握手信号SYN是否重传,如果是,执行步骤S6,如果否,根据步骤B1中记录的RTT值计算DIFsyn值,并更新SRTTold值,然后执行步骤S6,其中,DIFsyn=RTT-RTTsyn
7.根据权利要求6所述的提高数据中心TCP响应速度的方法,其特征在于:在步骤S1中,除了搜索通讯双方上次通讯的SRTTold值之外,还搜索DIFsyn值。
8.根据权利要求7所述的提高数据中心TCP响应速度的方法,其特征在于:所述步骤S4包括如下步骤:
S41:判断是否存在历史连接记录,如果否,执行步骤S43,如果是,执行步骤S42;
S42:判断SYN是否重传,如果是,根据实际建立连接的时间计算发送数据包时的重传定时器的值RTOdata,然后执行步骤S5,如果否,利用修正后的建立连接时间RTTopt_syn计算发送数据包时的重传定时器的值RTOdata,其中,RTTopt_syn=RTTsyn+DIFsyn,然后执行步骤S5;
S43:判断握手信号SYN是否重传,如果是,将发送数据包时的重传定时器的值RTOdata设为3秒,如果否,根据RTTsyn的值计算RTOdata,其中,RTTsyn为握手信号SYN没有重传情况下的RTT值,然后执行步骤S5。
9.根据权利要求8所述的提高数据中心TCP响应速度的方法,其特征在于:在步骤S42中,实际建立连接的时间RTTsyn为收到应答信号SYN-ACK的时间Tsyn_ack与发送握手信号的时间Tfirst_syn的差值,然后根据RTTsyn值计算发送数据包时的重传定时器的值RTOdata
10.一种实现权利要求1-9任一项所述提高数据中心TCP响应速度的方法的系统,其特征在于包括:
搜索模块:用于搜索通讯双方上次通讯的SRTTold值,其中,SRTT为平滑后的RTT值;
第一判断模块:用于判断SRTTold值是否存在,如果是,根据SRTTold值计算建立连接时重传定时器的值RTO,如果否,将重传定时器的值RTO设定为一定值;
建立连接模块:用于发送建立连接时的握手信号SYN,收到应答信号SYN-ACK;
设置模块:用于设置发送数据包时的重传定时器的值RTOdata
发送模块:用于发送第一个数据包;
第二判断模块:用于判断是否还有数据要发送,如果是,发送数据并动态更新SRTTold记录,直至所有数据发送完成。
CN201610225780.9A 2016-04-12 2016-04-12 一种提高数据中心tcp响应速度的方法及系统 Expired - Fee Related CN105933242B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610225780.9A CN105933242B (zh) 2016-04-12 2016-04-12 一种提高数据中心tcp响应速度的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610225780.9A CN105933242B (zh) 2016-04-12 2016-04-12 一种提高数据中心tcp响应速度的方法及系统

Publications (2)

Publication Number Publication Date
CN105933242A true CN105933242A (zh) 2016-09-07
CN105933242B CN105933242B (zh) 2019-04-02

Family

ID=56838913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610225780.9A Expired - Fee Related CN105933242B (zh) 2016-04-12 2016-04-12 一种提高数据中心tcp响应速度的方法及系统

Country Status (1)

Country Link
CN (1) CN105933242B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790634A (zh) * 2017-01-04 2017-05-31 北京百度网讯科技有限公司 一种用于确定是否发起备份请求的方法与设备
CN108833063A (zh) * 2018-08-29 2018-11-16 新华三技术有限公司 一种报文重传方法及装置
CN110677221A (zh) * 2018-07-02 2020-01-10 华为技术有限公司 重传控制方法、通信接口和电子设备
CN112887063A (zh) * 2021-01-19 2021-06-01 网易(杭州)网络有限公司 数据包传输方法和装置、存储介质、电子设备
CN113596068A (zh) * 2020-04-30 2021-11-02 北京金山云网络技术有限公司 建立tcp连接的方法、装置和服务器
CN115208521A (zh) * 2022-08-22 2022-10-18 北京钢铁侠科技有限公司 一种会话层客户端与服务端通讯保障及工作流管控方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1370361A (zh) * 1999-08-17 2002-09-18 艾利森电话股份有限公司 用于确定时间参量的方法和设备
US20020167948A1 (en) * 2001-05-09 2002-11-14 Dayong Chen Communications methods, apparatus, computer program products and data structures using segment sequence numbers
CN101047485A (zh) * 2006-03-30 2007-10-03 株式会社Ntt都科摩 通信终端以及重发控制方法
US20080291911A1 (en) * 2007-05-21 2008-11-27 Ist International, Inc. Method and apparatus for setting a TCP retransmission timer
CN103095434A (zh) * 2011-10-27 2013-05-08 中兴通讯股份有限公司 一种数据重传控制方法及装置、终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1370361A (zh) * 1999-08-17 2002-09-18 艾利森电话股份有限公司 用于确定时间参量的方法和设备
US20020167948A1 (en) * 2001-05-09 2002-11-14 Dayong Chen Communications methods, apparatus, computer program products and data structures using segment sequence numbers
CN101047485A (zh) * 2006-03-30 2007-10-03 株式会社Ntt都科摩 通信终端以及重发控制方法
US20080291911A1 (en) * 2007-05-21 2008-11-27 Ist International, Inc. Method and apparatus for setting a TCP retransmission timer
CN103095434A (zh) * 2011-10-27 2013-05-08 中兴通讯股份有限公司 一种数据重传控制方法及装置、终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
V.PAXSON,ET AL: "Computing TCP"s Retransmission Timer", 《IETF RFC 6298》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790634A (zh) * 2017-01-04 2017-05-31 北京百度网讯科技有限公司 一种用于确定是否发起备份请求的方法与设备
CN106790634B (zh) * 2017-01-04 2019-10-11 北京百度网讯科技有限公司 一种用于确定是否发起备份请求的方法与设备
CN110677221A (zh) * 2018-07-02 2020-01-10 华为技术有限公司 重传控制方法、通信接口和电子设备
US11671210B2 (en) 2018-07-02 2023-06-06 Huawei Technologies Co., Ltd. Retransmission control method, communications interface, and electronic device
CN108833063A (zh) * 2018-08-29 2018-11-16 新华三技术有限公司 一种报文重传方法及装置
CN108833063B (zh) * 2018-08-29 2021-04-27 新华三技术有限公司 一种报文重传方法及装置
CN113596068A (zh) * 2020-04-30 2021-11-02 北京金山云网络技术有限公司 建立tcp连接的方法、装置和服务器
WO2021218520A1 (zh) * 2020-04-30 2021-11-04 北京金山云网络技术有限公司 建立tcp连接的方法、装置和服务器
CN112887063A (zh) * 2021-01-19 2021-06-01 网易(杭州)网络有限公司 数据包传输方法和装置、存储介质、电子设备
CN115208521A (zh) * 2022-08-22 2022-10-18 北京钢铁侠科技有限公司 一种会话层客户端与服务端通讯保障及工作流管控方法
CN115208521B (zh) * 2022-08-22 2023-07-04 北京钢铁侠科技有限公司 一种会话层客户端与服务端通讯保障及工作流管控方法

Also Published As

Publication number Publication date
CN105933242B (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN105933242A (zh) 一种提高数据中心tcp响应速度的方法及系统
US10715282B2 (en) Method and related device for improving TCP transmission efficiency using delayed ACK
Chen et al. Mp-rdma: enabling rdma with multi-path transport in datacenters
CN105635058B (zh) 一种无协议栈模式下针对tcp的中间人处理方法
Oljira et al. Mdtcp: Towards a practical multipath transport protocol for telco cloud datacenters
CN104580171A (zh) Tcp协议的传输方法、装置和系统
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Tian et al. Stability of distributed congestion control with diverse communication delays
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands
Cisco Novell IPX Commands

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190402