CN108111430A - 一种tcp初始窗口优化方法和系统 - Google Patents

一种tcp初始窗口优化方法和系统 Download PDF

Info

Publication number
CN108111430A
CN108111430A CN201711404837.2A CN201711404837A CN108111430A CN 108111430 A CN108111430 A CN 108111430A CN 201711404837 A CN201711404837 A CN 201711404837A CN 108111430 A CN108111430 A CN 108111430A
Authority
CN
China
Prior art keywords
window
home window
home
user
tcp
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
CN201711404837.2A
Other languages
English (en)
Other versions
CN108111430B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201711404837.2A priority Critical patent/CN108111430B/zh
Publication of CN108111430A publication Critical patent/CN108111430A/zh
Application granted granted Critical
Publication of CN108111430B publication Critical patent/CN108111430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种TCP初始窗口优化方法和系统,所述方法包括,根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;其中,所述拥塞窗口表根据用户TCP连接中TCP流的信息进行更新。可以通过优化不同用户的TCP初始窗口以提高网络传输性能。

Description

一种TCP初始窗口优化方法和系统
【技术领域】
本申请涉及通信技术领域,尤其涉及一种TCP初始窗口优化方法和系统。
【背景技术】
在过去几年中,Web服务已成为数十亿用户访问互联网丰富资源的主要途径。随着带宽越来越大和便宜,网络延迟已成为Web服务的关键性能指标。网络延迟的增加将导致收入明显下降,并影响用户体验。
目前大部分的Web服务都是基于TCP传输。因为TCP在连接建立时没有网络带宽等信息,所以TCP在每次传输时通过以一个保守的初始窗口来开始慢启动过程,主动探测合适的窗口大小。这样会经历多个RTT(Round Trip Time,往返时间)后才能找到合适的TCP窗口来充分利用带宽。但这样方法对传输数据都比较小(几KB到几百KB)的Web服务,网络传输效率很低。这个问题在高带宽、长RTT的网络(4G无线网络)更加明显。
现有技术中通过提升TCP初始窗口来解决这个问题,但初始窗口为人工凭经验或者按协议标准设置,主要的问题在于:
(1)网络环境随时间变化,人工经验配置TCP初始窗口往往不一定准确;
(2)协议标准值是综合各种情况所选择的一个保守值,存在优化空间;
(3)访问服务器的用户网络环境多样化,统一使用一个初始窗口不合理。
最终造成网络传输效率较低。
【发明内容】
本申请的多个方面提供一种TCP初始窗口方法和系统,用于提高网络传输性能。
本申请的一方面,提供一种TCP窗口初始化方法,包括:
根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
其中,所述拥塞窗口表根据用户TCP连接中TCP流的信息进行更新。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,接收到包含用户访问信息的Web服务请求后,执行所述根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接的步骤。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口包括:
根据用户IP,从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值包括:
随机选择一个初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对拥塞窗口表进行更新的过程包括:
汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述TCP流的信息包括:
往返时间、流完成时间、丢包率。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,各网段对应的初始窗口集合包括:第一初始窗口值和第二初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述运行学习算法,分别得到优化后的各网段对应的初始窗口集合包括:
如果第一初始窗口值的网络传输性能优于第二初始窗口值的网络传输性能,则按预设步长增加第一初始窗口值和第二初始窗口值;
否则,按预设步长减小第一初始窗口值和第二初始窗口值。
本申请的另一方面,提供一种TCP窗口初始化系统,包括:
连接管理模块,用于根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
其中,所述拥塞窗口表由窗口学习模块根据用户TCP连接中TCP流的信息进行更新。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述连接管理模块,具体用于:
接收到包含用户访问信息的Web服务请求后,执行所述根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接的步骤。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述连接管理模块,具体用于:
根据用户IP,从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述连接管理模块,具体用于:
所述从拥塞窗口表中该IP所在网段对应的初始窗口集合随机选择一个初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述窗口学习模块,具体用于:
汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述TCP流的信息包括:
往返时间、流完成时间、丢包率。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,各网段对应的初始窗口集合包括:第一初始窗口值和第二初始窗口值。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述运行学习算法,分别得到优化后的各网段对应的初始窗口集合包括:
如果第一初始窗口值的网络传输性能优于第二初始窗口值的网络传输性能,则按预设步长增加第一初始窗口值和第二初始窗口值;
否则,按预设步长减小第一初始窗口值和第二初始窗口值。
本发明的另一方面,提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
本发明的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
由所述技术方案可知,本申请实施例可以优化不同用户的TCP初始窗口,以提高网络传输性能。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的TCP初始窗口优化方法的流程示意图;
图2为本申请另一实施例提供的TCP初始窗口优化系统的结构示意图;
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
图1为本申请一实施例提供的TCP初始窗口优化方法的示意图,如图1所示,包括以下步骤:
步骤S11、接收包含用户访问信息的Web服务请求;根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
步骤S12、根据用户TCP连接中TCP流的信息更新所述拥塞窗口表。
在步骤S11的一种优选实现方式中,
所述用户访问信息包括:用户设备IP地址、用户发起Web服务请求的时间等。
负责与用户建立TCP连接的业务服务器根据用户设备的IP地址,从拥塞窗口表Cwnd Table中该IP地址所在网段对应的初始窗口集合以相等概率选择一个初始窗口值,利用所选择的初始窗口值与业务服务器建立用户TCP连接。
例如,不同用户可能处于2/3/4G无线网络、WI-FI无线网络或有线网络环境下,运营商会根据用户设备所处网络环境不同而为期分配不同网段的IP地址。
优选地,在本实施例中,根据用户所在的C类网段进行区分,查询用户设备的IP地址所在的C类网段,根据网段信息查询拥塞窗口表Cwnd Table。
建立用户TCP连接之后,业务服务器记录用户TCP连接中各TCP流的Http请求和Http响应的发起和结束时间到日志中,直到TCP连接断开。
优选地,搜集各网段对应的用户TCP连接中TCP流的信息;所述TCP流的信息包括:RTT往返时间、flow complete time流完成时间、loss rate丢包率。其中,所述往返时间、流完成时间是根据用户TCP连接中各TCP流的Http请求和Http响应的发起和结束时间计算得到的。
优选地,由于一般是一个集群的业务服务器服务一个业务,通过负载均衡将所用的TCP连接分布在所有业务服务器上。因此,在每台业务服务器上实现了agent,实时读取每台业务服务器产生的TCP数据,把每台业务服务器的数据汇聚起来,并通过HTTP POST的形式发送到进行拥塞窗口表更新的服务器上。
优选地,所述日志利用PB格式输出,以减少存储开销。
优选地,所述拥塞窗口表Cwnd Table是一个map,其key为网段,value为初始窗口的集合,比如[10,15],其中存储了各网段对应的初始窗口集合,即所述拥塞窗口表CwndTable中存储了所有用户对应的初始窗口集合。不同的用户可能属于不同的网段,各网段对应不同的初始窗口集合。
在步骤S12的一种优选实现方式中,包括以下子步骤:
子步骤S121、汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
优选地,进行拥塞窗口表Cwnd Table更新的NGINX服务器接收所有业务服务器通过HTTP POST的形式发送的TCP流的信息。定时汇聚统计出不同网段不同初始窗口的RTT往返时间、flow complete time流完成时间、loss rate丢包率。
优选地,以一分钟为时间间隔定时汇聚统计并学习。
子步骤S122、运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
在本申请的一种优选实施例中,为了减小运算量,所述学习算法仅考虑了flowcomplete time流完成时间,具体如下:
-输入:初始窗口的集合[A,B],窗口变化步长C=B-A,学习周期T,最小采样数S
-输出:拥塞窗口表Cwnd Table(各个C类网段的初始窗口集合)
-流程:
1.初始化各个C类网段的初始窗口=[A,B],在同一个C类网段为一个用户组,同一个组的使用同样的初始窗口。
2.针对每个用户组,在T时间端内随机使用初始窗口的[A,B]
3.结束测试后为每个用户组运行DecisionMaking([A,B])函数,输出每个用户组下一轮的初始窗口集合。
函数DecisionMaing([A,B])流程:
1.如果数据采样个数小于S,返回窗口集合[A,B]
2.执行A/Btesting,对比窗口A的平均Flow Complete Time:FCTA和窗口B的平均Flow Complete Time:FCTB。如果FCTA<FCTB,A=A+C,B=B+C;否则A=A-C,B=B–C.
3.如果A<=0;A=1,B=A+C
4.返回[A,B]
优选地,所述DecisionMaking([A,B])函数流程可以综合考虑RTT往返时间、flowcomplete time流完成时间、loss rate丢包率,流程如下:
1.如果数据采样个数小于S,返回窗口集合[A,B]
2.执行A/B testing,对比窗口A的平均性能得分scoreA和窗口B的平均性能得分scoreB。如果scoreA>scoreB,A=A+C,B=B+C;否则A=A-C,B=B–C.
3.如果A<=0;A=1,B=A+C
4.返回[A,B]
其中,所述窗口的平均性能得分是根据其RTT往返时间、flow complete time流完成时间、loss rate丢包率分别赋予不同权重计算得到的,RTT往返时间越短、flowcomplete time流完成时间越短、loss rate丢包率越低,则性能得分越高。
子步骤S123、利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
进行拥塞窗口表Cwnd Table更新的NGINX服务器能够同时处理大量的并发请求,可以同时得到优化后的各网段对应的初始窗口集合。更新拥塞窗口表Cwnd Table的value。
在本实施例的一种优选实现方式中,
若某网段的最优初始窗口的值为20,运行学习算法,得到优化后的对应的初始窗口集合的过程就是一个将初始窗口集合的值逼近20的过程,当然,事先是不知道其最优初始窗口的值的。
首先,将初始窗口的集合设置为[10,15];对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,即总体上,一半用户的初始窗口值为10,一半用户的初始窗口值为15。
搜集用户TCP连接中TCP流的信息;汇聚出用户TCP连接中各初始窗口对应的TCP流的信息;
计算初始窗口值为10的平均性能得分和初始窗口值为15的平均性能得分,由于最优初始窗口的值为20,因此,初始窗口值为15的平均性能得分较高,以步长5对初始窗口值进行增加,得到更新后的初始窗口的集合设置为[15,20]。
根据更新后的初始窗口的集合[15,20]对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,计算其平均性能得分,得到更新后的初始窗口的集合设置为[20,25]。
根据更新后的初始窗口的集合[20,25]对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,计算其平均性能得分,由于最优初始窗口的值为20,因此,初始窗口值为20的平均性能得分较高,初始窗口值为25的平均性能得分较低,以步长5对初始窗口值进行减少,得到更新后的初始窗口的集合设置为[15,20]。
可见,所述学习算法就是一个逼近最优窗口值并不断震荡的过程。
根据本实施例,可以通过优化不同用户的TCP初始窗口以提高网络传输效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。
在所述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本申请一实施例提供的TCP初始窗口优化系统的结构图,如图2所示,包括:
连接管理模块21,用于接收包含用户访问信息的Web服务请求;根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
窗口学习模块22,用于根据用户TCP连接中TCP流的信息进行更新所述拥塞窗口表。
在连接管理模块21的一种优选实现方式中,
所述用户访问信息包括:用户设备IP地址、用户发起Web服务请求的时间等。
负责与用户建立TCP连接的业务服务器根据用户设备的IP地址,从拥塞窗口表Cwnd Table中该IP地址所在网段对应的初始窗口集合以相等概率选择一个初始窗口值,利用所选择的初始窗口值与业务服务器建立用户TCP连接。
例如,不同用户可能处于2/3/4G无线网络、WI-FI无线网络或有线网络环境下,运营商会根据用户设备所处网络环境不同而为期分配不同网段的IP地址。
优选地,在本实施例中,根据用户所在的C类网段进行区分,查询用户设备的IP地址所在的C类网段,根据网段信息查询拥塞窗口表Cwnd Table。
连接管理模块21还包括数据搜集子模块,用于在建立用户TCP连接之后,记录用户TCP连接中各TCP流的Http请求和Http响应的发起和结束时间到日志中,直到TCP连接断开。
优选地,数据搜集子模块,用于当用户TCP连接断开后,搜集各网段对应的用户TCP连接中TCP流的信息;所述TCP流的信息包括:RTT往返时间、flow complete time流完成时间、loss rate丢包率。其中,所述往返时间、流完成时间是根据用户TCP连接中各TCP流的Http请求和Http响应的发起和结束时间计算得到的。
优选地,由于一般是一个集群的业务服务器服务一个业务,通过负载均衡将所用的TCP连接分布在所有业务服务器上。因此,在每台业务服务器上实现了agent,实时读取每台业务服务器产生的TCP数据,把每台业务服务器的数据汇聚起来,并通过HTTP POST的形式发送到进行拥塞窗口表更新的服务器上。
优选地,所述日志利用PB格式输出,以减少存储开销。
优选地,所述拥塞窗口表Cwnd Table是一个map,其key为网段,value为初始窗口的集合,比如[10,15],其中存储了各网段对应的初始窗口集合,即所述拥塞窗口表CwndTable中存储了所有用户对应的初始窗口集合。不同的用户可能属于不同的网段,各网段对应不同的初始窗口集合。
在窗口学习模块22的一种优选实现方式中,包括以下子模块:
汇聚子模块221,用于汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
优选地,进行拥塞窗口表Cwnd Table更新的NGINX服务器接收所有业务服务器通过HTTP POST的形式发送的TCP流的信息。定时汇聚统计出不同网段不同初始窗口的RTT往返时间、flow complete time流完成时间、loss rate丢包率。
优选地,以一分钟为时间间隔定时汇聚统计并学习。
学习子模块222,用于运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
在本申请的一种优选实施例中,为了减小运算量,所述学习算法仅考虑了flowcomplete time流完成时间,具体如下:
-输入:初始窗口的集合[A,B],窗口变化步长C=B-A,学习周期T,最小采样数S
-输出:拥塞窗口表Cwnd Table(各个C类网段的初始窗口集合)
-流程:
4.初始化各个C类网段的初始窗口=[A,B],在同一个C类网段为一个用户组,同一个组的使用同样的初始窗口。
5.针对每个用户组,在T时间端内随机使用初始窗口的[A,B]
6.结束测试后为每个用户组运行DecisionMaking([A,B])函数,输出每个用户组下一轮的初始窗口集合。
函数DecisionMaing([A,B])流程:
5.如果数据采样个数小于S,返回窗口集合[A,B]
6.执行A/B testing,对比窗口A的平均Flow Complete Time:FCTA和窗口B的平均Flow Complete Time:FCTB。如果FCTA<FCTB,A=A+C,B=B+C;否则A=A-C,B=B–C.
7.如果A<=0;A=1,B=A+C
8.返回[A,B]
优选地,所述DecisionMaking([A,B])函数流程可以综合考虑RTT往返时间、flowcomplete time流完成时间、loss rate丢包率,流程如下:
5.如果数据采样个数小于S,返回窗口集合[A,B]
6.执行A/B testing,对比窗口A的平均性能得分scoreA和窗口B的平均性能得分scoreB。如果scoreA>scoreB,A=A+C,B=B+C;否则A=A-C,B=B–C.
7.如果A<=0;A=1,B=A+C
8.返回[A,B]
其中,所述窗口的平均性能得分是根据其RTT往返时间、flow complete time流完成时间、loss rate丢包率分别赋予不同权重计算得到的,RTT往返时间越短、flowcomplete time流完成时间越短、loss rate丢包率越低,则性能得分越高。
更新子模块223,用于利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
进行拥塞窗口表Cwnd Table更新的NGINX服务器能够同时处理大量的并发请求,可以同时得到优化后的各网段对应的初始窗口集合。更新拥塞窗口表Cwnd Table的value。
在本实施例的一种优选实现方式中,
若某网段的最优初始窗口的值为20,运行学习算法,得到优化后的对应的初始窗口集合的过程就是一个将初始窗口集合的值逼近20的过程,当然,事先是不知道其最优初始窗口的值的。
首先,将初始窗口的集合设置为[10,15];对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,即总体上,一半用户的初始窗口值为10,一半用户的初始窗口值为15。
搜集用户TCP连接中TCP流的信息;汇聚出用户TCP连接中各初始窗口对应的TCP流的信息;
计算初始窗口值为10的平均性能得分和初始窗口值为15的平均性能得分,由于最优初始窗口的值为20,因此,初始窗口值为15的平均性能得分较高,以步长5对初始窗口值进行增加,得到更新后的初始窗口的集合设置为[15,20]。
根据更新后的初始窗口的集合[15,20]对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,计算其平均性能得分,得到更新后的初始窗口的集合设置为[20,25]。
根据更新后的初始窗口的集合[20,25]对该网段下的用户以相同概率分别随机赋予不同的初始窗口值,计算其平均性能得分,由于最优初始窗口的值为20,因此,初始窗口值为20的平均性能得分较高,初始窗口值为25的平均性能得分较低,以步长5对初始窗口值进行减少,得到更新后的初始窗口的集合设置为[15,20]。
可见,所述学习算法就是一个逼近最优窗口值并不断震荡的过程。
根据本实施例,可以通过优化不同用户的TCP初始窗口以提高网络传输效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图3显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图3所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行本发明所描述的实施例中的功能和/或方法。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更优选地例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (18)

1.一种TCP窗口初始化方法,其特征在于,包括:
根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
其中,所述拥塞窗口表根据用户TCP连接中TCP流的信息进行更新。
2.根据权利要求1所述的方法,其特征在于,接收到包含用户访问信息的Web服务请求后,执行所述根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接的步骤。
3.根据权利要求1所述的方法,其特征在于,根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口包括:
根据用户IP,从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值。
4.根据权利要求3所述的方法,其特征在于,
所述从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值包括:
随机选择一个初始窗口值。
5.根据权利要求3所述的方法,其特征在于,对拥塞窗口表进行更新的过程包括:
汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
6.根据权利要求1所述的方法,其特征在于,所述TCP流的信息包括:
往返时间、流完成时间、丢包率。
7.根据权利要求5所述的方法,其特征在于,各网段对应的初始窗口集合包括:第一初始窗口值和第二初始窗口值。
8.根据权利要求7所述的方法,其特征在于,所述运行学习算法,分别得到优化后的各网段对应的初始窗口集合包括:
如果第一初始窗口值的网络传输性能优于第二初始窗口值的网络传输性能,则按预设步长增加第一初始窗口值和第二初始窗口值;
否则,按预设步长减小第一初始窗口值和第二初始窗口值。
9.一种TCP窗口初始化系统,其特征在于,包括:
连接管理模块,用于根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接;
其中,所述拥塞窗口表由窗口学习模块根据用户TCP连接中TCP流的信息进行更新。
10.根据权利要求9所述的系统,其特征在于,所述连接管理模块,具体用于:
接收到包含用户访问信息的Web服务请求后,执行所述根据用户访问信息从拥塞窗口表中选择TCP连接的初始窗口,利用选择的初始窗口建立用户TCP连接的步骤。
11.根据权利要求9所述的系统,其特征在于,所述连接管理模块,具体用于:
根据用户IP,从拥塞窗口表中该IP所在网段对应的初始窗口集合选择一个初始窗口值。
12.根据权利要求11所述的系统,其特征在于,所述连接管理模块,具体用于:
所述从拥塞窗口表中该IP所在网段对应的初始窗口集合随机选择一个初始窗口值。
13.根据权利要求11所述的系统,其特征在于,所述窗口学习模块,具体用于:
汇聚出各网段对应的用户TCP连接中各初始窗口对应的TCP流的信息;
运行学习算法,分别得到优化后的各网段对应的初始窗口集合;
利用优化后的各网段对应的初始窗口集合,更新拥塞窗口表。
14.根据权利要求9所述的系统,其特征在于,所述TCP流的信息包括:
往返时间、流完成时间、丢包率。
15.根据权利要求13所述的系统,其特征在于,各网段对应的初始窗口集合包括:第一初始窗口值和第二初始窗口值。
16.根据权利要求15所述的系统,其特征在于,所述运行学习算法,分别得到优化后的各网段对应的初始窗口集合包括:
如果第一初始窗口值的网络传输性能优于第二初始窗口值的网络传输性能,则按预设步长增加第一初始窗口值和第二初始窗口值;
否则,按预设步长减小第一初始窗口值和第二初始窗口值。
17.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~8中任一项所述的方法。
CN201711404837.2A 2017-12-22 2017-12-22 一种tcp初始窗口优化方法和系统 Active CN108111430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711404837.2A CN108111430B (zh) 2017-12-22 2017-12-22 一种tcp初始窗口优化方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711404837.2A CN108111430B (zh) 2017-12-22 2017-12-22 一种tcp初始窗口优化方法和系统

Publications (2)

Publication Number Publication Date
CN108111430A true CN108111430A (zh) 2018-06-01
CN108111430B CN108111430B (zh) 2022-02-25

Family

ID=62212283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711404837.2A Active CN108111430B (zh) 2017-12-22 2017-12-22 一种tcp初始窗口优化方法和系统

Country Status (1)

Country Link
CN (1) CN108111430B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010349A (zh) * 2018-10-08 2020-04-14 阿里巴巴集团控股有限公司 针对首屏的传输加速方法及装置
CN112367264A (zh) * 2020-10-27 2021-02-12 百果园技术(新加坡)有限公司 初始拥塞窗口值确定方法、装置、电子设备和存储介质
CN112787942A (zh) * 2019-11-05 2021-05-11 中兴通讯股份有限公司 一种tcp拥塞控制方法、装置、终端及可读存储介质
CN112822230A (zh) * 2020-12-28 2021-05-18 南京大学 一种基于概率的发送端初始速率设置方法和系统
CN113454958A (zh) * 2019-02-18 2021-09-28 上海诺基亚贝尔股份有限公司 用于确定tcp拥塞窗口的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428240A (zh) * 2012-05-18 2013-12-04 深圳市腾讯计算机系统有限公司 数据传输方法和数据传输终端
CN104065464A (zh) * 2013-03-18 2014-09-24 中国移动通信集团公司 一种调整tcp连接的初始窗口大小的方法和装置
US20160255005A1 (en) * 2015-02-26 2016-09-01 Citrix Systems, Inc. System for bandwidth optimization with initial congestion window determination
CN106789718A (zh) * 2016-12-05 2017-05-31 广东神马搜索科技有限公司 数据传输的拥塞控制方法、设备、服务器及可编程设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428240A (zh) * 2012-05-18 2013-12-04 深圳市腾讯计算机系统有限公司 数据传输方法和数据传输终端
CN104065464A (zh) * 2013-03-18 2014-09-24 中国移动通信集团公司 一种调整tcp连接的初始窗口大小的方法和装置
US20160255005A1 (en) * 2015-02-26 2016-09-01 Citrix Systems, Inc. System for bandwidth optimization with initial congestion window determination
CN106789718A (zh) * 2016-12-05 2017-05-31 广东神马搜索科技有限公司 数据传输的拥塞控制方法、设备、服务器及可编程设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010349A (zh) * 2018-10-08 2020-04-14 阿里巴巴集团控股有限公司 针对首屏的传输加速方法及装置
CN111010349B (zh) * 2018-10-08 2023-06-02 阿里巴巴集团控股有限公司 针对首屏的传输加速方法及装置
CN113454958A (zh) * 2019-02-18 2021-09-28 上海诺基亚贝尔股份有限公司 用于确定tcp拥塞窗口的方法和装置
CN112787942A (zh) * 2019-11-05 2021-05-11 中兴通讯股份有限公司 一种tcp拥塞控制方法、装置、终端及可读存储介质
WO2021088893A1 (zh) * 2019-11-05 2021-05-14 中兴通讯股份有限公司 一种tcp拥塞控制方法、装置、终端及可读存储介质
EP3952233A4 (en) * 2019-11-05 2022-06-29 ZTE Corporation Tcp congestion control method, apparatus, terminal, and readable storage medium
CN112367264A (zh) * 2020-10-27 2021-02-12 百果园技术(新加坡)有限公司 初始拥塞窗口值确定方法、装置、电子设备和存储介质
CN112822230A (zh) * 2020-12-28 2021-05-18 南京大学 一种基于概率的发送端初始速率设置方法和系统
CN112822230B (zh) * 2020-12-28 2022-03-25 南京大学 一种基于概率的发送端初始速率设置方法和系统

Also Published As

Publication number Publication date
CN108111430B (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN108111430A (zh) 一种tcp初始窗口优化方法和系统
CN105531970B (zh) 用于在网络中部署工作负荷的方法和系统
CN108009028A (zh) 消息处理方法、装置、设备及计算机可读存储介质
CN106020926B (zh) 一种用于虚拟交换机技术中数据传输的方法及装置
US7464156B2 (en) Load balancing method for exchanging data between multiple hosts and storage entities, in IP based storage area network
CN114500633B (zh) 数据转发方法、相关装置、程序产品及数据传输系统
CN107707628A (zh) 用于传输数据处理请求的方法和装置
CN111800501B (zh) 处理业务请求的方法及装置、存储介质、电子设备
CN108837505B (zh) 一种网络游戏数据传输方法及系统
US10469352B2 (en) Method and apparatus for available bandwidth measurement
CN109981751A (zh) 一种文件传输方法及系统、计算机设备及存储介质
CN107729570A (zh) 用于服务器的数据迁移方法和装置
CN107171955A (zh) 网络中数据链路的选择方法及系统
CN106302230B (zh) 一种数据传输方法及装置
CN113315716A (zh) 拥塞控制模型的训练方法和设备及拥塞控制方法和设备
CN113568860A (zh) 基于深度学习的拓扑映射方法、装置、介质及程序产品
CN108683722A (zh) 一种数据传输的方法、esb平台及客户端
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN104303471A (zh) 用于通过选择数据加速算法提供内容的方法和装置
CN118041937A (zh) 存储设备的数据访问方法及装置
CN108141902A (zh) 使用帧聚集的无线数据确收通信
US7783784B1 (en) Method and apparatus for adaptive selection of algorithms to load and spread traffic on an aggregation of network interface cards
CN104065490B (zh) 基于在线计费环境实现模拟收发设备信令的系统及方法
CN108494700A (zh) 跨链路数据传输方法、装置、计算机设备及存储介质
CN108183926A (zh) 一种数据包处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant