CN104683259B - Tcp拥塞控制方法及装置 - Google Patents

Tcp拥塞控制方法及装置 Download PDF

Info

Publication number
CN104683259B
CN104683259B CN201510082330.4A CN201510082330A CN104683259B CN 104683259 B CN104683259 B CN 104683259B CN 201510082330 A CN201510082330 A CN 201510082330A CN 104683259 B CN104683259 B CN 104683259B
Authority
CN
China
Prior art keywords
congestion
packet loss
loss event
tcp
current
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.)
Active
Application number
CN201510082330.4A
Other languages
English (en)
Other versions
CN104683259A (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.)
Shanghai Supreme Being Joins Information Technology Share Co Ltd
Original Assignee
Shanghai Supreme Being Joins Information Technology Share 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 Shanghai Supreme Being Joins Information Technology Share Co Ltd filed Critical Shanghai Supreme Being Joins Information Technology Share Co Ltd
Priority to CN201510082330.4A priority Critical patent/CN104683259B/zh
Publication of CN104683259A publication Critical patent/CN104683259A/zh
Application granted granted Critical
Publication of CN104683259B publication Critical patent/CN104683259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种TCP拥塞控制方法及装置,所述方法包括:当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息;根据网络的实际运行状况,计算得出拥塞窗口增长数值;采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。上述的方案可以提高带宽资源的利用率,提升用户的使用体验。

Description

TCP拥塞控制方法及装置
技术领域
本发明涉及网络通信技术领域,特别是涉及一种TCP拥塞控制方法及装置。
背景技术
网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后,若网络吞吐量反而下降,则表征网络中出现了拥塞现象。在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。当拥塞比较严重时,通信子网中相当多的传输资源和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全网处于死锁状态,最终导致网络有效吞吐量接近为零。
现有的英特网(Internet)中拥塞控制的大部分工作是由TCP完成的,目前标准TCP协议的实现都包含了一些避免和控制网络拥塞的TCP拥塞控制算法。采用TCP拥塞控制算法是一种防止网络拥塞、流量控制,网络拥塞恢复处理的算法,能够有效确保TCP网络畅通,网络稳定。当今网络的可靠性和稳定性与TCP拥塞控制机制密不可分,而TCP的成功也要归功于其稳固的拥塞控制机制。
但是,现有技术中的TCP拥塞控制方法,所有的TCP连接均采用相同的方法进行拥塞窗口的控制,存在着带宽资源利用率较低的问题。
发明内容
本发明实施例解决的问题是如何在TCP拥塞控制过程中提高带宽资源的利用率。
为解决上述问题,本发明实施例提供了一种TCP拥塞控制方法,所述方法包括:
当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息;
根据网络的实际运行状况,计算得出拥塞窗口增长数值;
采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
可选地,所述方法还包括:
当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;
当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
可选地,所述判断当前丢包事件是否由网络拥塞造成,包括:
在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
可选地,所述方法还包括:采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
可选地,所述根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息,包括:
获取TCP连接的往返时间和预设拥塞窗口的信息;
采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口。
可选地,所述采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口,包括:
cwnd=((5*rtt+3*α)/8)*β;
其中,cwnd表示初始拥塞窗口的数值,rtt表示TCP连接的往返时间,α为预设的TCP连接往返时间的平均值,β是预设的拥塞窗口数值。
可选地,所述方法还包括:
根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值;
在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
可选地,所述根据网络实际运行状况,计算得出拥塞窗口增长数值,包括:
根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间;
根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽的信息;
采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值。
可选地,所述采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值,包括:
cnt=(bw/min_rtt-bw/rtt)*α;
其中,cnt表示拥塞窗口增长数值,rtt表示TCP连接的平均往返时间,min_rtt是TCP连接的往返时间的最小值,bw表示当前网络带宽,α为预设的增长比例。
本发明实施例还提供了一种TCP拥塞控制方法,所述方法包括:
当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;
当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
可选地,所述判断当前丢包事件是否由网络拥塞造成,包括:
在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
可选地,所述方法还包括:采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
本发明实施例还提供了一种TCP拥塞控制装置,所述装置包括:
第一计算单元,适于当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息;
第二计算单元,适于根据网络的实际运行状况,计算得出拥塞窗口增长数值;
会话控制单元,适于采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
可选地,所述装置还包括:
第一判断单元,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
拥塞处理单元,适于当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
可选地,所述装置还包括:
第一判断单元,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
可选地,所述第一判断单元适于在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
可选地,所述装置还包括:第一存储单元,适于采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
可选地,所述第一计算单元适于获取TCP连接的往返时间和预设拥塞窗口的信息;采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口。
可选地,所述装置还包括:第二会话控制单元,适于根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值;在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
可选地,所述第二计算单元适于根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间;根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽的信息;采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值。
本发明实施例还提供了一种TCP拥塞控制装置,所述装置包括:
第二判断单元,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
第一拥塞控制单元,适于当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;
第二拥塞控制单元,适于当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
可选地,所述第二判断单元适于在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
可选地,所述装置还包括:第二存储单元,适于采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
与现有技术相比,本发明的技术方案具有以下的优点:
在当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,为不同的TCP连接设置不同的初始拥塞窗口的数值,可以根据不同TCP连接的需求和网络的实际运行状况,对TCP连接的初始拥塞窗口进行调整,可以满足数据的快速传输需求,因此,可以提高带宽资源的利用率,提升用户的使用体验。
由于当TCP会话过程中发生丢包事件时,通过将当前丢包事件与丢包事件记录表中的丢包事件进行匹配,可以快速识别出当前丢包事件是否由网络拥塞造成,并根据导致当前丢包事件的原因,对丢包事件发生以后的拥塞窗口进行相应的控制,而非一检测到丢包事件就减少拥塞窗口,因此,可以进一步提高带宽资源的利用率,提升用户的使用体验。
进一步地,由于在根据TCP连接的往返时间与拥塞窗口的信息,计算得出网络的最大吞吐量拥塞窗口,并在TCP会话过程中,控制拥塞窗口小于或等于所述最大吞吐量拥塞窗口,可以有效防止丢包事件的发生,提升用户的使用体验。
附图说明
图1是本发明实施例中一种的TCP拥塞控制方法的流程图;
图2是本发明实施例中另一种的TCP拥塞控制方法的流程图;
图3是本发明实施例中又一种的TCP拥塞控制方法的流程图;
图4是本发明实施例中的一种TCP拥塞控制装置的结构示意图;
图5是本发明实施例中的一种TCP拥塞控制装置的结构示意图。
具体实施方式
现有技术中的TCP拥塞控制方法,所有的TCP连接均采用相同的方法进行拥塞窗口的控制,没有考虑到TCP连接的实际需求和网络的实际运行状况,从而降低了文件的传输速率以及传输速率的提升。
为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过在当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,为不同的TCP连接设置不同的初始拥塞窗口的数值,可以根据不同TCP连接的需求和网络的实际运行状况,对TCP连接的初始拥塞窗口进行调整,以满足不同的数据的快速传输的需求,可以提高带宽资源的利用率,提升用户的使用体验。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例中的一种TCP拥塞控制方法的流程图。如图1所示的TCP拥塞控制方法,可以包括:
步骤S101:当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息。
在正常状况下,TCP连接的创建必须要经历三次握手过程:
第一次握手阶段:客户端发送位码为syn=1,随机产生seq的数据包到服务器,服务端由syn=1知道,客户端要求建立联机。
第二次握手阶段:服务器收到请求后要确认联机信息,向客户端发送ack number=seq+1,syn=1,ack=1,随机产生seq的数据包。
第三次握手阶段:客户端收到后检查ack number是否正确,即第一次发送的seqnumber+1,以及位码ack是否为1,若正确,客户端会再发送ack number=(服务器的seq+1),ack=1,服务器收到后确认seq值与ack=1则连接建立成功,完成上述的三次握手,客户端与服务器开始传送数据。
通过上述的三次握手阶段,一个TCP连接即可成功建立。当TCP连接建立成功时,即可进行相应的TCP会话。
在具体实施中,可以根据网络的实际运行状况和所获取的预设的拥塞窗口数值,为不同的TCP连接设置不同的初始拥塞窗口的数值,从而为各个TCP连接分配不同的初始拥塞窗口的数值,满足不同的文件传输的需求。
在具体实施中,在根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息时,可以首先获取TCP连接的往返时间和预设拥塞窗口的信息。其中,TCP连接的往返时间可以作为网络的实际运行状况的参数。TCP连接的往返时间越短,说明网络越畅通,反之,则说明网络处于繁忙状态。
在根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息之后,可以采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出当前TCP连接的初始拥塞窗口。
在本发明一实施例中,采用如下的公式根据所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口:
cwnd=((5*rtt+3*α)/8)*β (1)
其中,cwnd表示初始拥塞窗口,rtt表示TCP连接的往返时间,α为预设的TCP连接往返时间的平均值,β是预设的拥塞窗口数值。其中,5、3、8相应的权重系数,可以根据实际的需要进行相应的变化。
步骤S102:根据网络的实际运行状况,计算得出拥塞窗口增长数值。
在具体实施中,在根据网络的实际运行状况,计算得出拥塞窗口增长数值时,首先可以根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间,其中,TCP连接的往返时间也即是应答数据包的接收时间与请求数据包的发送时间之间的差值。接着,可以根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽(bw)的信息。当计算得出TCP连接的往返时间和当前网络带宽的信息时,可以采用TCP连接的往返时间和当前网络带宽,计算得出拥塞窗口增长数值。
在本发明一实施例中,采用如下的公式计算得出拥塞窗口增长数值:
cnt=(bw/min_rtt-bw/rtt)*α (2)
其中,cnt表示拥塞窗口增长数值,rtt表示TCP连接的平均往返时间,min_rtt是TCP连接的往返时间的最小值,bw表示当前网络带宽,α为预设的增长比例。
步骤S103:采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
在具体实施中,可以根据网络的实际运行状况和不同的文件传输需求,为不同的TCP连接分配不同的初始拥塞窗口和拥塞窗口增长数值,可以满足不同的客户的数据传输需求,提升用户的使用体验。
因此,本发明实施例中的TCP拥塞控制方法,可以在当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,为不同的TCP连接设置不同的初始拥塞窗口的数值,可以根据不同TCP连接的需求和网络的实际运行状况,对TCP连接的初始拥塞窗口进行调整,以满足数据的快速传输需求,因此,可以提高带宽资源的利用率,提升用户的使用体验。
图2是本发明实施例中的一种TCP拥塞控制方法的流程图。如图1所示的TCP拥塞控制方法,可以包括:
步骤S201:当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息。
在具体实施中,可以在TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口,以为不同的TCP连接分配不同的初始拥塞窗口的数值,可以满足不同的客户的数据传输的需求。
步骤S202:根据网络的实际运行状况,计算得出拥塞窗口增长数值。
在具体实施中,可以根据网络的实际运行状况,为不同的TCP连接计算得出不同的拥塞窗口增长数值,以满足不同客户的数据传输的速率提升的需求,因而可以提升用户的使用体验。
步骤S203:采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
在具体实施中,当计算得出当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值时,便可以采用计算得出的当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,为不同的TCP连接设置不同的初始化拥塞窗口和拥塞窗口增长数值,以满足不同客户的数据传输速率和数据传输速率提升的需求。因而可以提升用户的使用体验。
步骤S204:当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成。
在具体实施中,真正的网络拥塞会导致丢包事件的发生,而在无线网络中,典型的随机物理层伪迹,如多径、干扰等,也可能是造成丢包事件发生的原因。因此,为了防止TCP连接在检测到丢包事件时,将丢包事件的原因一律归为网络拥塞造成,而使得拥塞窗口攻击性地下降,导致网络带宽资源的浪费,可以对造成丢包事件的原因进行相应的判定。
在具体实施中,在判断当前丢包事件是否由网络拥塞造成时,首先可以获取丢包事件记录表。其中,所述丢包事件记录表中将以前曾经发生过的非网络拥塞造成的丢包事件进行了相应的记录。当检测到丢包事件时,可以将当前的丢包事件与丢包事件列表中的丢包事件进行匹配。在当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,可以确定所述当前丢包事件非为网络拥塞造成;反之,当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,便可以确定所述当前丢包事件为网络拥塞造成。
在具体实施中,当判断结果为是时,可以执行步骤S205,反之,则可以执行步骤S206。
步骤S205:减少拥塞窗口,并进行丢失数据的重传。
在具体实施中,当确定当前丢包事件为网络拥塞造成时,为了减轻路由器的负担,可以减少拥塞窗口,以减少数据传输的速率,并进行丢失数据的重传。
步骤S206:恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
在具体实施中,当确定当前丢包事件非为网络拥塞造成时,造成丢包事件的原因可能是信道衰减、无线噪声等,网络并未发生拥塞。此时,为了网络资源进行充分地利用,可以将拥塞窗口的数值恢复至当前丢包事件发生的时刻时的拥塞窗口的数值,并进行丢失数据的重传,以充分利用网络带宽资源,提升用户的使用体验。
在具体实施中,本发明实施例中的TCP拥塞控制方法还可以包括:
步骤S207:采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
在具体实施中,通过在丢包事件发生时,采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息,可以将当前丢包事件的关联情况进行相应的记录并保存,以对丢包事件记录表中的丢包事件进行完善,以提高丢包事件发生原因判断的准确性。
在具体实施中,为了更好地应对拥塞窗口的突发性增长,避免网络拥塞,本发明实施例中的TCP拥塞控制方法还可以包括:
步骤S208:根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值。
在具体实施例中,可以根据TCP连接的往返时间与TCP连接的最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值,以对网络最大吞吐量对应的拥塞窗口进行评估,以在后续的会话过程中,对TCP连接的拥塞窗口进行控制,避免网络拥塞。
步骤S209:在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
在具体实施中,所得出的网络最大吞吐量对应的拥塞窗口,是TCP连接的最大拥塞窗口,超出系最大拥塞窗口进行数据传输时,将会导致网络拥塞。为了避免,由于各个TCP会话的拥塞窗口过大所导致的网络拥塞,可以对TCP会话过程中的最大拥塞窗口进行控制。
上述实施例中的TCP拥塞控制方法,从为不同的TCP连接分配不同的初始拥塞窗口和拥塞窗口增长数值、TCP会话过程中造成丢包事件的真正原因,以及通过网路最大吞吐量三个方面来对TCP拥塞控制方法进行了介绍。本技术领域的技术人员可以理解的时,也可以仅仅从造成丢包事件的真正原因入手进行TCP拥塞控制,具体请参见图3。
图3是本发明实施例中的又一种TCP拥塞控制方法的流程图。如图4所示的TCP拥塞控制方法,可以包括:
步骤S301:当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成。
在具体实施中,当判断结果为是时,可以执行步骤S302,反之,则可以执行步骤S303。
步骤S302:减少拥塞窗口,并进行丢失数据的重传。
步骤S303:恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
在具体实施中,本发明实施例中的TCP拥塞控制方法还可以包括:
步骤S304:采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
图4示出了本发明实施例中的一种TCP拥塞控制装置的结构示意图。如图4所示的TCP拥塞控制装置400,可以包括第一计算单元401、第二计算单元402和会话控制单元403,其中:
第一计算单元401,适于当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息。
在具体实施中,所述第一计算单元401适于获取TCP连接的往返时间和预设拥塞窗口的信息;采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口。
第二计算单元402,适于根据网络的实际运行状况,计算得出拥塞窗口增长数值。
在具体实施中,所述第二计算单元402适于根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间;根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽的信息;采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值。
会话控制单元403,适于采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
在具体实施中,如图4所示的TCP拥塞控制装置400,还可以包括第一判断单元404和拥塞处理单元405,其中:
第一判断单元404,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
在具体实施中,第一判断单元404适于在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
拥塞处理单元405,适于当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
在具体实施中,如图4所示的TCP拥塞控制装置400,还可以包括第一存储单元406,其中:
第一存储单元406,适于采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
在具体实施中,如图4所示的TCP拥塞控制装置400,还可以包括第二会话控制单元407,其中:
第二会话控制单元407,适于根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值;在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
图5示出了本发明实施例中的另一种TCP拥塞控制装置的结构示意图。如图5所示的TCP拥塞控制装置500,可以包括第二判断单元501、第一拥塞控制单元502和第二拥塞控制单元503,其中:
第二判断单元501,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成。
在具体实施中,所述第二判断单元501适于在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
第一拥塞控制单元502,适于当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传。
第二拥塞控制单元503,适于当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
在具体实施中,如图5所示的TCP拥塞控制装置500,还可以包括第二存储单元504,其中:
第二存储单元504,适于采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
综上,本发明实施例中的TCP拥塞控制装置,可以在当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,为不同的TCP连接设置不同的初始拥塞窗口的数值,可以根据不同TCP连接的需求和网络的实际运行状况,对TCP连接的初始拥塞窗口进行调整,以满足数据的快速传输需求,因此,可以提高带宽资源的利用率,提升用户的使用体验。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (14)

1.一种TCP拥塞控制方法,其特征在于,包括:
当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息;
根据网络的实际运行状况,计算得出拥塞窗口增长数值;
采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话;
所述根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息,包括:
获取TCP连接的往返时间和预设拥塞窗口的信息;
采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口;
所述采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口,包括:
cwnd=((5*rtt+3*α)/8)*β;
其中,cwnd表示初始拥塞窗口的数值,rtt表示TCP连接的往返时间,α为预设的TCP连接往返时间的平均值,β是预设的拥塞窗口数值。
2.根据权利要求1所述的TCP拥塞控制方法,其特征在于,还包括:
当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;
当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
3.根据权利要求2所述的TCP拥塞控制方法,其特征在于,所述判断当前丢包事件是否由网络拥塞造成,包括:
在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;
当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
4.根据权利要求2所述的TCP拥塞控制方法,其特征在于,还包括:采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
5.根据权利要求1所述的TCP拥塞控制方法,其特征在于,还包括:
根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值;
在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
6.根据权利要求1所述的TCP拥塞控制方法,其特征在于,所述根据网络实际运行状况,计算得出拥塞窗口增长数值,包括:
根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间;
根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽的信息;
采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值。
7.根据权利要求6所述的TCP拥塞控制方法,其特征在于,所述采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值,包括:
cnt=(bw/min_rtt-bw/rtt)*α;
其中,cnt表示拥塞窗口增长数值,rtt表示TCP连接的平均往返时间,min_rtt是TCP连接的往返时间的最小值,bw表示当前网络带宽,α为预设的增长比例。
8.一种TCP拥塞控制装置,其特征在于,包括:
第一计算单元,适于当前TCP连接建立成功时,根据网络的实际运行状况和所获取的预设的拥塞窗口数值,计算得出当前TCP连接的初始拥塞窗口的信息;所述第一计算单元适于获取TCP连接的往返时间和预设拥塞窗口的信息;采用所获取的TCP连接的往返时间和预设拥塞窗口的信息,计算得出所述初始拥塞窗口;其中,采用下列公式计算得出所述初始拥塞窗口:
cwnd=((5*rtt+3*α)/8)*β;
cwnd表示初始拥塞窗口的数值,rtt表示TCP连接的往返时间,α为预设的TCP连接往返时间的平均值,β是预设的拥塞窗口数值;
第二计算单元,适于根据网络的实际运行状况,计算得出拥塞窗口增长数值;会话控制单元,适于采用计算得到的所述当前TCP连接的初始拥塞窗口和所述拥塞窗口增长数值,进行TCP会话。
9.根据权利要求8所述的TCP拥塞控制装置,其特征在于,还包括:
第一判断单元,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;
拥塞处理单元,适于当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
10.根据权利要求9所述的TCP拥塞控制装置,其特征在于,还包括:
第一判断单元,适于当TCP会话过程中发生丢包事件时,判断所述当前丢包事件是否由网络拥塞造成;当确定所述当前丢包事件为网络拥塞造成时,减少拥塞窗口,并进行丢失数据的重传;当确定所述当前丢包事件非网络拥塞造成时,恢复当前丢包事件发生时刻的拥塞窗口,并进行丢失数据的重传。
11.根据权利要求9或10所述的TCP拥塞控制装置,其特征在于,所述第一判断单元适于在当前丢包事件发生时,将所述当前丢包事件与丢包事件记录表中的丢包事件进行匹配,所述丢包事件记录表中的丢包事件由非网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配成功时,确定所述当前丢包事件非为网络拥塞造成;当所述当前丢包事件与所述丢包事件记录表中的丢包事件匹配失败时,确定所述当前丢包事件为网络拥塞造成。
12.根据权利要求9所述的TCP拥塞控制装置,其特征在于,还包括:第一存储单元,适于采集并存储所述当前丢包事件对应的拥塞原因、拥塞开始时间及相应的拥塞窗口,以及拥塞结束时间及相应的拥塞窗口的信息。
13.根据权利要求8所述的TCP拥塞控制装置,其特征在于,还包括:第二会话控制单元,适于根据TCP连接的往返时间与最大拥塞窗口的信息,计算得出网络最大吞吐量对应的拥塞窗口的数值;在TCP会话过程中,控制拥塞窗口小于或等于所述网络最大吞吐量对应的拥塞窗口。
14.根据权利要求8所述的TCP拥塞控制装置,其特征在于,所述第二计算单元适于根据请求数据包的发送时间和应答数据包的接收时间,计算得出TCP连接的往返时间;根据当前TCP连接已经发送未确认的数据包的数量,得出当前网络带宽的信息;采用计算得出TCP连接的往返时间和当前网络带宽的信息,计算得出拥塞窗口增长数值。
CN201510082330.4A 2015-02-15 2015-02-15 Tcp拥塞控制方法及装置 Active CN104683259B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510082330.4A CN104683259B (zh) 2015-02-15 2015-02-15 Tcp拥塞控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510082330.4A CN104683259B (zh) 2015-02-15 2015-02-15 Tcp拥塞控制方法及装置

Publications (2)

Publication Number Publication Date
CN104683259A CN104683259A (zh) 2015-06-03
CN104683259B true CN104683259B (zh) 2018-02-09

Family

ID=53317876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510082330.4A Active CN104683259B (zh) 2015-02-15 2015-02-15 Tcp拥塞控制方法及装置

Country Status (1)

Country Link
CN (1) CN104683259B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105471757B (zh) * 2015-12-11 2018-08-03 福建星网锐捷网络有限公司 一种tcp拥塞控制方法及装置
CN110192394B (zh) * 2016-12-21 2023-10-20 英国电讯有限公司 通过网络传送媒体内容的方法和服务器
US10284480B2 (en) * 2016-12-27 2019-05-07 Netflix, Inc. Packet loss tolerant transmission control protocol congestion control
CN106789702B (zh) * 2016-12-30 2020-05-12 广州华多网络科技有限公司 控制tcp传输性能的方法及装置
CN109104742A (zh) * 2017-06-20 2018-12-28 华为技术有限公司 拥塞窗口调整方法及发送设备
CN107426108A (zh) * 2017-10-09 2017-12-01 武汉斗鱼网络科技有限公司 Tcp拥塞控制方法、装置及服务端
CN112702236B (zh) * 2020-12-23 2022-11-11 锐捷网络股份有限公司 一种实现丢包检测的方法和处理器
CN115022247B (zh) * 2022-06-02 2023-10-20 成都卫士通信息产业股份有限公司 流控制传输方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094047A (zh) * 2007-07-06 2007-12-26 中国人民解放军国防科学技术大学 基于网络状态测量的分阶段慢启动传输控制方法
CN101938400A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 网络拥塞控制的方法和装置
CN102104908A (zh) * 2011-01-18 2011-06-22 华为技术有限公司 一种数据传输控制方法及设备
CN102388584A (zh) * 2011-09-22 2012-03-21 华为技术有限公司 拥塞控制方法及设备
CN103929370A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
CN104158760A (zh) * 2014-08-29 2014-11-19 中国科学技术大学 一种广域网tcp单边加速的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101094047A (zh) * 2007-07-06 2007-12-26 中国人民解放军国防科学技术大学 基于网络状态测量的分阶段慢启动传输控制方法
CN101938400A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 网络拥塞控制的方法和装置
CN102104908A (zh) * 2011-01-18 2011-06-22 华为技术有限公司 一种数据传输控制方法及设备
CN102388584A (zh) * 2011-09-22 2012-03-21 华为技术有限公司 拥塞控制方法及设备
CN103929370A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
CN104158760A (zh) * 2014-08-29 2014-11-19 中国科学技术大学 一种广域网tcp单边加速的方法及系统

Also Published As

Publication number Publication date
CN104683259A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN104683259B (zh) Tcp拥塞控制方法及装置
US9231829B2 (en) Communication device
US10645016B2 (en) Data packet network
JP2001268130A (ja) フロー制御されたネットワーク上におけるtcp接続のフローを制御するための方法および装置、相互接続機器
Casetti et al. Westwood SCTP: load balancing over multipaths using bandwidth-aware source scheduling
JP5832335B2 (ja) 通信装置および通信システム
JP5506591B2 (ja) 通信システム及び通信品質制御方法
US10469393B1 (en) Data packet network
CN109088828A (zh) 服务器过载控制方法及系统
Verma et al. An adaptive congestion control algorithm
Psaras et al. The TCP minimum RTO revisited
JP2006148727A (ja) アプリケーションモニタ装置
WO2003041345A1 (en) Improving communication efficiency and performance in an unreliable communication environment
Khurshid et al. Modified TCP newreno for wireless networks
Geva et al. QoSoDoS: If you can't beat them, join them!
Hurtig et al. SCTP: designed for timely message delivery?
Kim et al. Concurrent Multipath Transfer using SCTP multihoming over heterogeneous network paths
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
WO2018135938A1 (en) A method for controlling congestion in communication system
CN116073959A (zh) 基于双单向光闸系统的数据传输方法、装置、设备及介质
Reddy et al. A New Transmission Control Protocol for Satellite Networks
Chitre et al. TCP in the IPSEC environment
Zhou et al. HTTP streaming over an improved TCP congestion control algorithm
Kumar Modified TCP for time critical applications
Lee et al. Mean waiting delay for web object transfer in wireless SCTP environment

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