CN111314961A - Tcp传输方法、装置和系统 - Google Patents
Tcp传输方法、装置和系统 Download PDFInfo
- Publication number
- CN111314961A CN111314961A CN202010103297.XA CN202010103297A CN111314961A CN 111314961 A CN111314961 A CN 111314961A CN 202010103297 A CN202010103297 A CN 202010103297A CN 111314961 A CN111314961 A CN 111314961A
- Authority
- CN
- China
- Prior art keywords
- tcp
- checksum
- data
- network
- congestion
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000001133 acceleration Effects 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 9
- 101150050673 CHK1 gene Proteins 0.000 claims description 8
- 101100220616 Caenorhabditis elegans chk-2 gene Proteins 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 10
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明适用于卫星通信技术领域,提供了一种TCP传输方法、装置和系统,包括:在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞,若当前网络为链路堵塞则降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络;加速服务器在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,根据目标数据的TCP包校验和计算第一TCP头校验和,并确定目标数据的数据校验和发送给小站,使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端。本发明可以减少丢包导致的拥塞窗口的减少,提高发送端效率,同时减少小站CPU消耗,提高卫星通信的效率。
Description
技术领域
本发明属于卫星通信技术领域,尤其涉及一种TCP传输方法、装置和系统。
背景技术
近年来,随着卫星通信的不断发展,卫星带宽越来越大,充分利用卫星带宽资源已成为卫星应用领域的热门话题,此时TCP(Transmission Control Protocol,传输控制协议)加速应运而生。TCP加速能解决卫星带宽资源过剩,提升用户上网体验的问题。
TCP加速的原理是把一段连接拆分成三段连接,PC(Personal Computer,个人计算机)和小站、小站和加速服务器、加速服务器和server(服务器)。但是在卫星链路不稳定时,丢包率高,即使使用TCP加速,网络速率也很难上去,导致了卫星资源浪费,而且受小站CPU(Central Processing Unit,中央处理器)性能的限制,TCP包校验和计算很耗费CPU资源,导致小站处理数据包性能上不去,影响用户上网体验度。
发明内容
有鉴于此,本发明实施例提供了一种TCP传输方法、装置和系统,以解决现有的TCP加速方法在大延迟、大丢包率的场景下速率上不去,以及小站处理数据包性能较低的问题。
本发明实施例的第一方面提供了一种TCP传输方法,包括:
在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞;
若所述当前网络为链路堵塞,则降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络;
在所述具有第一拥塞窗口的网络中进行TCP传输。
进一步地,判断当前网络是否为链路堵塞,包括:
获取已传输数据的第一往返时间;
判断所述第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件;
若满足预设链路堵塞条件,则确定当前网络为链路堵塞;
若不满足预设链路堵塞条件,则确定当前网络不是链路堵塞。
进一步地,降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,包括:
根据CUBIC算法降低所述当前网络的拥塞窗口尺寸,得到具有第一拥塞窗口的网络。
本发明实施例的第二方面提供了另一种TCP传输方法,包括:
在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和;
计算第一TCP头校验和;
根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和;
将所述数据校验和发送给小站,以使小站根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
进一步地,根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和,包括:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和。
进一步地,根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,包括:通过
sum=data_chksum+tcp_chk2
得到所述目标数据的TCP包校验和sum,其中data_chksum为所述数据校验和,tcp_chk2为所述第二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头校验和。
进一步地,所述加速服务器具体用于:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和;
将所述数据校验和发送给小站。
本发明实施例的TCP传输方法、装置和系统与现有技术相比存在的有益效果是:在发生丢包情况下,先判断当前网络是否为链路堵塞,若当前网络为链路堵塞再降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,若不是链路堵塞则无需改变拥塞窗口尺寸,这样减少了因丢包导致的拥塞窗口减小的情况,提高传输速率,提高发送端效率;另外,加速服务器在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,然后计算第一TCP头校验和,然后根据TCP包校验和及第一TCP头校验和确定目标数据的数据校验和并发送给小站,使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端,即开启轻量级校验和,减少小站CPU消耗,提高了TCP传输的可靠性、扩展性,能够有效适应卫星链路,极大地提高了卫星通信的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种TCP传输方法的实现流程示意图;
图2是本发明实施例提供的另一种TCP传输方法的实现流程示意图;
图3是本发明实施例提供的又一种TCP传输方法的实现流程示意图;
图4是本发明实施例提供的丢包快速重传的基本原理图;
图5是本发明实施例提供的轻量级校验和的基本原理图;
图6是图3的TCP传输方法的测试结构图;
图7是本发明实施例提供的一种TCP传输装置的结构示意图;
图8是本发明实施例提供的另一种TCP传输装置的结构示意图;
图9是本发明实施例提供的一种TCP传输系统的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,为本实施例提供的TCP传输方法的一个实施例实现流程示意图,本方法适用于卫星通信,详述如下:
步骤S101,在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞。
步骤S102,若所述当前网络为链路堵塞,则降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络。
步骤S103,在所述具有第一拥塞窗口的网络中进行TCP传输。
TCP传输通常是通过维护一个拥塞窗口来进行拥塞控制,传统的拥塞控制原则是,只要网络中没有出现拥塞,拥塞窗口的尺寸就可以再增大一些,以便把更多的数据包发送出去,但只要网络出现拥塞,拥塞窗口的尺寸就应该减小一些,以减少注入到网络中的数据包数。
现有技术中,TCP拥塞控制算法一般是基于丢包的拥塞控制,即将丢包视为出现拥塞,采取缓慢探测的方式,逐渐增大拥塞窗口,当出现丢包时,将拥塞窗口的尺寸减小,如Reno算法和Cubic算法等。但是在卫星链路不稳定时,丢包率高的情况下,拥塞窗口的尺寸会逐渐减小,但此时可能并非是因为链路堵塞丢包,这样即使使用了TCP加速,网络速率也很难上去,导致了卫星资源浪费。基于此,本实施例提供一种改进的TCP加速方法,在判断丢包的同时再判断当前网络是否为链路堵塞,如果不是链路堵塞,则无需减小拥塞窗口的尺寸,如果当前网络是链路堵塞,则降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,然后数据在具有第一拥塞窗口的网络中进行TCP传输,这样减少了因丢包导致的拥塞窗口减小的情况,提高传输速率,提高发送端效率。
可选的,步骤S101中所述的判断当前网络是否为链路堵塞,包括:
获取已传输数据的第一往返时间;
判断所述第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件;
若满足预设链路堵塞条件,则确定当前网络为链路堵塞;
若不满足预设链路堵塞条件,则确定当前网络不是链路堵塞。
往返时间(Round Trip Time,RTT)由三部分组成:链路的传播时间、末端系统的处理时间、路由器缓存中的排队和处理时间。其中,前两个部分的值相对固定,路由器缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化,所以RTT的变化在一定程度上反应了网络的拥塞程度。
本实施例利用RTT判断当前网络是不是链路拥塞,如果是链路拥塞,TCP包会在链路排队,导致RTT变长。所以在判断出是链路拥塞导致的丢包时,则需要降低拥塞窗口的尺寸,往链路少发包,避免网络拥塞进一步加重,若不是链路拥塞导致的丢包,则不用降低拥塞窗口,这样网络可以发更多的数据包,充分利用网络资源。
具体的,判断第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件,若满足预设链路堵塞条件,则确定当前网络为链路堵塞。例如RTT-RTTmin是否大于100ms,RTT为第一往返时间,RTTmin为最小往返时间,若RTT-RTTmin大于100ms则确定当前网络为链路堵塞,若RTT-RTTmin不大于100ms,则确定当前网络不是链路堵塞。
可选的,本实施例可以通过TCP时间戳来获取第一往返时间,即第一往返时间=当前时间-已传输数据中时间戳选项的回显时间,该回显时间是数据发出去的时间,即获取到了数据的接收时间(当前时间)和发送时间(回显时间),则可以得到已传输数据的第一往返时间。
可选的,本实施例还可以通过TCP控制块来获取第一往返时间,即在TCP重传队列中保存着发送而未被确认的数据包,该数据包的缓冲区域中的TCP控制块记录了该数据包的第一次发送时间,第一往返时间=当前时间-第一次发送时间。
可选的,本实施例还可以在丢包情况下加入判断链路容量来进行拥塞控制。具体的,实时获取当前网络带宽和时延,在网络上报文总量大于带宽时延乘积时则确定为出现了链路拥塞。
可选的,步骤S102中所述的降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络的具体实现流程可以包括:
根据CUBIC算法降低所述当前网络的拥塞窗口尺寸,得到具有第一拥塞窗口的网络。
传统CUBIC算法在于只要不丢包,就不会主动降低发送速度,这样可以最大程度利用网络剩余带宽,提高吞吐量,但缺点是无法区分链路拥塞丢包和传输错误丢包,即只要丢包即判断为拥塞,则减小拥塞窗口,把ssthresh(慢启动阈值)设置为cwnd(当前网络的拥塞窗口)的0.75,cwnd为ssthread+mss(最大报文段长度),降低了发送速率,网络重新进入拥塞避免阶段,如果链路频繁丢包,导致拥塞窗口降得比较低,传输效率就会很低,浪费资源。基于此,本实施例将RTT估算和CUBIC算法结合,设定RTT阈值(预设链路堵塞条件),若第一往返时间与最小往返时间之间的差值超过阈值,根据CUBIC算法调整拥塞窗口的尺寸,否则不调整拥塞窗口的尺寸,尤其在卫星链路频繁丢包的情况下,本实施例改进的CUBIC算法实现的效果比传统CUBIC算法实现的效果好。
示例性的,参见图4,为丢包快速重传原理图,接收方收到A1和A2后,都分别发出了确认,假如A3丢了,接收方收到A4、A5和A6后,发出了三个dup_ack(重复应答信息),发送端收到三个dup ack后,立即重传A3,并且判断当前网络是否为链路堵塞。在收到三个dup ack的情况下,若RTT-RTTmin大于100ms,则确定当前网络为链路堵塞,降低拥塞窗口的尺寸,若RTT-RTTmin不大于100ms,则确定当前网络不是链路堵塞,不降拥塞窗口,实现了充分利用网络资源,提高发送端效率。
上述TCP传输方法,在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞,若当前网络为链路堵塞则降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,减少了丢包导致的拥塞窗口减小,提高发送端效率。
参见图2,为本实施例提供的TCP传输方法的另一个实施例实现流程示意图,详述如下:
步骤S201,在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和。
步骤S202,计算第一TCP头校验和。
步骤S203,根据TCP包校验和及所述第一TCP头校验和,确定目标数据的数据校验和。
步骤S204,将所述数据校验和发送给小站,以使小站根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
TCP传输中,目标数据中包括TCP包校验和。TCP包校验和是一个端到端的校验和,由发送端计算,然后由接收端验证,其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动,如果接收方检测到校验和有差错,则TCP段的目标数据会被直接丢弃。TCP包校验和包括TCP头校验和及数据校验和。传统计算TCP包校验和时,每个TCP包的校验和都需要计算一次,比较消耗小站CPU资源,降低了小站传输性能,因此本实施例提出只计算TCP头校验和的方法。
本实施例先计算目标数据中的第一TCP头校验和,并根据TCP包校验和及第一TCP头校验和确定目标数据的数据校验和,然后将数据校验和发送给小站,以使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和,并发送给第一终端,减少了小站CPU对数据的处理过程,提高小站处理数据包的性能。应理解,本实施例对第一终端的不进行限定,可以是客户端,也可以是一个环境下的服务器。
可选的,根据TCP包校验和及所述第一TCP头校验和,确定目标数据的数据校验和的具体实现流程可以包括:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和。
可选的,根据第二TCP头校验和及所述数据校验和,向所述第一终端发送目标数据的TCP包校验和的具体实现流程可以包括:通过
sum=data_chksum+tcp_chk2
得到所述目标数据的TCP包校验和sum,其中data_chksum为所述数据校验和,tcp_chk2为所述第二TCP头校验和;然后将所述目标数据的TCP包校验和发送给所述第一终端。
参见图5,为本实施例提供的TCP传输方法中数据流的流程示意图,本实施例的目的是通过轻量级校验和实现减少TCP头校验和的计算量,减小小站CPU的资源消耗。
假设客户端或者服务器发出的TCP头校验和是正确的,参见图5,比如PC通过小站和加速服务器从server下载目标数据,server端发送TCP包校验和sum,加速服务器收到TCP包校验和sum后,先计算第一TCP头校验和,数据校验和data_chksum即为TCP包校验和sum减去第一TCP头校验和,然后加速服务器把数据校验和data_chksum发送给小站端。
小站收到数据校验和data_chksum后,在小站TCP侧计算TCP包校验和total_sum,即TCP包校验和total_sum为第二TCP头校验和加上数据校验和data_chksum,其中第二TCP头校验和为小站计算的TCP头校验和。上述只计算TCP头校验和的轻量级校验和方法,大大节省了小站CPU资源,提升下载性能,并且优化了小站加速的TCP包校验和,减少了小站CPU的消耗,提升小站处理性能。
上述TCP传输方法,在接收到第一终端发送的下载请求信息时,获取在网络中进行TCP传输的目标数据,计算第一TCP头校验和,根据第一TCP头校验和及TCP包校验和将数据校验和发送给小站,使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端,即开启轻量级校验和,减少小站CPU消耗,提高了TCP传输的可靠性、扩展性,能够有效适应卫星链路,极大地提高了卫星通信的效率。
参见图3,为本实施例提供的TCP传输方法的另一个实施例实现流程示意图,详述如下:
步骤S301,在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞。
步骤S302,若所述当前网络为链路堵塞,则降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络。
步骤S303,在所述具有第一拥塞窗口的网络中进行TCP传输。
步骤S304,在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和。
步骤S305,计算第一TCP头校验和。
步骤S306,根据TCP包校验和及所述第一TCP头校验和,确定目标数据的数据校验和。
步骤S307,将所述数据校验和发送给小站,以使小站根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
进一步地,步骤S301中判断当前网络是否为链路堵塞的具体实现流程可以包括:
获取已传输数据的第一往返时间;判断所述第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件。
若满足预设链路堵塞条件,则确定当前网络为链路堵塞。
若不满足预设链路堵塞条件,则确定当前网络不是链路堵塞。
进一步地,步骤S302中降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络的具体实现流程可以包括:根据CUBIC算法降低所述当前网络的拥塞窗口尺寸,得到具有第一拥塞窗口的网络。
进一步地,步骤S306中根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和的具体实现流程包括:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和。
进一步地,步骤S307中根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,包括:通过
sum=data_chksum+tcp_chk2
得到所述目标数据的TCP包校验和sum,其中data_chksum为所述数据校验和,tcp_chk2为所述第二TCP头校验和;将目标数据的TCP包校验和发送给所述第一终端。
示例性的,如图6,在client(客户端)上用wget工具测试下载场景,client通过小站和加速服务器从server下载目标数据,em2网卡用tc工具加600ms时延,然后分别加不同的丢包率,利用本实施例改进的CUBIC算法(CUBIC_IM)和原始CUBIC算法进行对比下载速率,测试结果对比如表1:
表1CUBIC_IM算法和原始CUBIC算法对比的下载速率
丢包率 | 速率(KBps)/原始CUBIC算法 | 速率(KBps)/CUBIC_IM |
1% | 55.8 | 1000 |
0.1% | 268 | 1770 |
0.5% | 350 | 1890 |
从表1可以看出,丢包率越大,基于本实施例改进的CUBIC算法的TCP加速效果越明显,在1%丢包率情况下,基于本实施例改进的CUBIC算法的TCP加速是基于原始CUBIC算法的TCP加速的17.9倍。
另外在TI AM335X(Cotex A8)环境下用gprof测试工具对小站CPU消耗进行测试,发现TCP包校验和比较消耗小站CPU,基于本实施例只计算TCP头校验和的TCP传输方法,性能由原来的4MBps提升到5MBps,测试结果比较理想,在减少小站CPU消耗的同时,提升传输速率。
上述TCP传输方法,在确定发生丢包状况时判断当前网络是否为链路堵塞,若当前网络为链路堵塞则降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,减少因丢包导致的拥塞窗口减小的情况,提高发送端效率;另外在接收到第一终端发送的下载请求信息时,获取目标数据的TCP包校验和,并计算第一TCP头校验和,根据第一TCP头校验和及TCP包校验和,将数据校验和发送给小站,使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端,即开启轻量级校验和,减少小站CPU消耗,提高了TCP传输的可靠性、扩展性,能够有效适应卫星链路,极大地提高了卫星通信的效率。
本领域技术人员可以理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例的TCP传输方法,本实施例提供了一种TCP传输装置。具体参见图7,为本实施例中一种TCP传输装置的结构示意图。为了便于说明,仅示出了与本实施例相关的部分。
TCP传输装置主要包括:判断模块710、网络转换模块720和网络传输模块730。
判断模块710用于在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞。
网络转换模块720用于若当前网络为链路堵塞,则降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络。
网络传输模块730用于在具有第一拥塞窗口的网络中进行TCP传输。
可选的,判断模块710具体用于:获取已传输数据的第一往返时间;判断第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件;若满足预设链路堵塞条件,则确定当前网络为链路堵塞;若不满足预设链路堵塞条件,则确定当前网络不是链路堵塞。
可选的,网络转换模块720具体用于:根据CUBIC算法降低当前网络的拥塞窗口尺寸,得到具有第一拥塞窗口的网络。
上述TCP传输装置,判断模块710在确定发生丢包状况时判断当前网络是否为链路堵塞,网络转换模块720在当前网络为链路堵塞时降低当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,减少了因丢包导致的拥塞窗口减小的情况,提高发送端效率。
对应于上文实施例的TCP传输方法,本实施例提供了另一种TCP传输装置。具体参见图8,为本实施例中另一种TCP传输装置的结构示意图。为了便于说明,仅示出了与本实施例相关的部分。
TCP传输装置主要包括:数据获取模块810、TCP头校验和计算模块820、数据校验和确定模块830和发送模块840。
数据获取模块810用于在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,目标数据包括TCP包校验和。
TCP头校验和计算模块820用于计算第一TCP头校验和。
数据校验和确定模块830用于根据TCP包校验和及第一TCP头校验和,确定目标数据的数据校验和。
发送模块840用于将数据校验和发送给小站,以使小站根据第二TCP头校验和及数据校验和向第一终端发送目标数据的TCP包校验和,第二TCP头校验和为小站计算的TCP头校验和。
可选的,数据校验和确定模块830具体用于:通过
data_chksum=sum-tcp_chk1
得到数据校验和data_chksum,其中sum为TCP包校验和,tcp_chk1为第一TCP头校验和。
可选的,通过
sum=data_chksum+tcp_chk2
得到目标数据的TCP包校验和sum,其中data_chksum为数据校验和,tcp_chk2为第二TCP头校验和。
上述TCP传输装置,数据获取模块810在接收到第一终端发送的下载请求信息时获取目标数据的TCP包校验和,TCP头校验和计算模块820计算第一TCP头校验和,数据校验和确定模块830根据第一TCP头校验和及TCP包校验和确定目标数据的数据校验和,发送模块840将数据校验和发送给小站,使小站根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端,即开启轻量级校验和,减少小站CPU消耗,提高了TCP传输的可靠性、扩展性,能够有效适应卫星链路,极大地提高了卫星通信的效率。
本实施例还提供了一种TCP传输系统。参见图9,为本实施例提供的TCP传输系统的一种结构示意图。为了便于说明,仅示出了与本实施例相关的部分。
所述TCP传输系统主要包括:加速服务器910和小站920。加速服务器910与接收服务器sever连接,加速服务器910与小站920连接,小站920与第一终端client连接。
加速服务器910用于在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和,并计算第一TCP头校验和,根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和,将所述数据校验和发送给小站920。
小站920用于根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
可选的,加速服务器910具体用于:通过
data_chksum=sum-tcp_chk1
得到数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和;然后将所述数据校验和发送给小站。
可选的,小站920具体用于:通过
sum=data_chksum+tcp_chk2
得到所述目标数据的TCP包校验和sum,其中data_chksum为所述数据校验和,tcp_chk2为所述第二TCP头校验和;然后将目标数据的TCP包校验和发送给第一终端。
上述TCP传输系统,加速服务器910先计算第一TCP头校验和,根据第一TCP头校验和及TCP包校验和确定目标数据的数据校验和并发送给小站920,小站920根据第二TCP头校验和及数据校验和得到目标数据的TCP包校验和并发送给第一终端,即该系统开启轻量级校验和功能,减少了小站CPU消耗,提高了TCP传输的可靠性、扩展性,能够有效适应卫星链路,极大地提高了卫星通信的效率。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种TCP传输方法,其特征在于,包括:
在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞;
若所述当前网络为链路堵塞,则降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络;
在所述具有第一拥塞窗口的网络中进行TCP传输。
2.如权利要求1所述的TCP传输方法,其特征在于,判断当前网络是否为链路堵塞,包括:
获取已传输数据的第一往返时间;
判断所述第一往返时间与最小往返时间之间的差值是否满足预设链路堵塞条件;
若满足预设链路堵塞条件,则确定当前网络为链路堵塞;
若不满足预设链路堵塞条件,则确定当前网络不是链路堵塞。
3.如权利要求1所述的TCP传输方法,其特征在于,降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络,包括:
根据CUBIC算法降低所述当前网络的拥塞窗口尺寸,得到具有第一拥塞窗口的网络。
4.一种TCP传输方法,其特征在于,包括:
在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和;
计算第一TCP头校验和;
根据TCP包校验和及所述第一TCP头校验和,确定目标数据的数据校验和;
将所述数据校验和发送给小站,以使小站根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
5.如权利要求4所述的TCP传输方法,其特征在于,根据TCP包校验和及所述第一TCP头校验和,确定目标数据的数据校验和,包括:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和。
6.如权利要求4所述的TCP传输方法,其特征在于,根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,包括:
通过
sum=data_chksum+tcp_chk2
得到所述目标数据的TCP包校验和sum,其中data_chksum为所述数据校验和,tcp_chk2为所述第二TCP头校验和;
将所述目标数据的TCP包校验和发送给所述第一终端。
7.一种TCP传输装置,其特征在于,包括:
判断模块,用于在获取到接收端的至少三个重复应答信息时重新传输丢包数据,并判断当前网络是否为链路堵塞;
网络转换模块,用于若所述当前网络为链路堵塞,则降低所述当前网络的拥塞窗口尺寸得到具有第一拥塞窗口的网络;
网络传输模块,用于在所述具有第一拥塞窗口的网络中进行TCP传输。
8.一种TCP传输装置,其特征在于,包括:
数据获取模块,用于在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和;
TCP头校验和计算模块,用于计算第一TCP头校验和;
数据校验和确定模块,用于根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和;
发送模块,用于将所述数据校验和发送给小站,以使小站根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
9.一种TCP传输系统,其特征在于,包括:
加速服务器,用于在接收到第一终端发送的下载请求信息时,获取在具有第一拥塞窗口的网络进行TCP传输的目标数据,所述目标数据包括TCP包校验和,并计算第一TCP头校验和,根据TCP包校验和及所述第一TCP头校验和确定目标数据的数据校验和,将所述数据校验和发送给小站;
小站,用于根据第二TCP头校验和及所述数据校验和向所述第一终端发送目标数据的TCP包校验和,所述第二TCP头校验和为所述小站计算的TCP头校验和。
10.如权利要求9所述的TCP传输系统,其特征在于,所述加速服务器具体用于:通过
data_chksum=sum-tcp_chk1
得到所述数据校验和data_chksum,其中sum为所述TCP包校验和,tcp_chk1为所述第一TCP头校验和;
将所述数据校验和发送给小站。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451513.XA CN117676695A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
CN202010103297.XA CN111314961A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010103297.XA CN111314961A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311451513.XA Division CN117676695A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111314961A true CN111314961A (zh) | 2020-06-19 |
Family
ID=71147718
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010103297.XA Pending CN111314961A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
CN202311451513.XA Pending CN117676695A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311451513.XA Pending CN117676695A (zh) | 2020-02-19 | 2020-02-19 | Tcp传输方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111314961A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822072A (zh) * | 2020-12-31 | 2021-05-18 | 鲸灵科技股份有限公司 | 一种轻量化计算任务的基于tcp的双向通信协议 |
CN114745273A (zh) * | 2022-06-10 | 2022-07-12 | 成都星联芯通科技有限公司 | Tcp加速代理方法、装置、卫星地面站及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917342A (zh) * | 2010-08-25 | 2010-12-15 | 天津理工大学 | 一种面向普适服务的自适应网络拥塞控制方法 |
US20170366650A1 (en) * | 2015-03-02 | 2017-12-21 | Huawei Technologies Co., Ltd. | Method and apparatus for sending transmission control protocol tcp data packet and system |
CN107800638A (zh) * | 2016-09-05 | 2018-03-13 | 北京金山云网络技术有限公司 | 一种拥塞控制方法及装置 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
-
2020
- 2020-02-19 CN CN202010103297.XA patent/CN111314961A/zh active Pending
- 2020-02-19 CN CN202311451513.XA patent/CN117676695A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917342A (zh) * | 2010-08-25 | 2010-12-15 | 天津理工大学 | 一种面向普适服务的自适应网络拥塞控制方法 |
US20170366650A1 (en) * | 2015-03-02 | 2017-12-21 | Huawei Technologies Co., Ltd. | Method and apparatus for sending transmission control protocol tcp data packet and system |
CN107800638A (zh) * | 2016-09-05 | 2018-03-13 | 北京金山云网络技术有限公司 | 一种拥塞控制方法及装置 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822072A (zh) * | 2020-12-31 | 2021-05-18 | 鲸灵科技股份有限公司 | 一种轻量化计算任务的基于tcp的双向通信协议 |
CN114745273A (zh) * | 2022-06-10 | 2022-07-12 | 成都星联芯通科技有限公司 | Tcp加速代理方法、装置、卫星地面站及可读存储介质 |
CN114745273B (zh) * | 2022-06-10 | 2022-09-02 | 成都星联芯通科技有限公司 | Tcp加速代理方法、装置、卫星地面站及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117676695A (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6622172B1 (en) | Dynamically delayed acknowledgement transmission system | |
US11558302B2 (en) | Data transmission method and apparatus | |
US7564792B2 (en) | Transparent optimization for transmission control protocol flow control | |
US20040192312A1 (en) | Communication system for voice and data with wireless TCP server | |
US20040015591A1 (en) | Collective TCP control for improved wireless network performance | |
US7489637B2 (en) | Method of enhancing the efficiency of data flow in communication systems | |
JP2003521155A (ja) | 無線ネットワーク・システムおよび方法 | |
JP2008508817A (ja) | 低頻度ackのシステムに適した高性能tcp | |
Liu et al. | Improving explicit congestion notification with the mark-front strategy | |
WO2012126424A2 (zh) | 一种数据包的转发方法和设备 | |
CN113014505B (zh) | 一种高动态拓扑卫星网络中时延区分的传输控制方法 | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
CN111314961A (zh) | Tcp传输方法、装置和系统 | |
US8279756B2 (en) | Communication terminal, communication control method, and communication control program | |
CN113300817B (zh) | 数据传输方法以及装置 | |
CA2940077C (en) | Buffer bloat control | |
Preveze | A novel method for performance improvement of slow start congestion control method in packet switched networks | |
KR101365182B1 (ko) | 전송 제어 프로토콜 기반의 패킷 전송 제어 방법 및 시스템 | |
Guduru et al. | Reliable Session Initiation Protocol (RSIP) signaling with UDP transport using piggybacking method | |
Liqing et al. | TCP optimization implementation of a small embedded system | |
CN116886616A (zh) | 基于tcp的拥塞控制方法、装置、电子设备和存储介质 | |
CN116471239A (zh) | 一种面向长时延高误码通信环境的端到端传输方法、系统、设备及介质 | |
Zhang et al. | SNOOP-based TCP Enhancements with FDA in wireless cellular networks: A comparative study | |
Wang et al. | TCP enhancement for transmission in a variable bandwidth wireless environment | |
CN117692392A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |