CN111713056B - 一种数据包发送方法及相关设备 - Google Patents
一种数据包发送方法及相关设备 Download PDFInfo
- Publication number
- CN111713056B CN111713056B CN201980013117.4A CN201980013117A CN111713056B CN 111713056 B CN111713056 B CN 111713056B CN 201980013117 A CN201980013117 A CN 201980013117A CN 111713056 B CN111713056 B CN 111713056B
- Authority
- CN
- China
- Prior art keywords
- small data
- data packet
- packet
- sending
- small
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1825—Adaptation of specific ARQ protocol parameters according to transmission conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- 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/20—Traffic policing
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请实施例公开了一种数据包发送方法及相关设备,包括:所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;所述发送端解除所述小包发送控制策略;以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包,采用本申请实施例,提高了数据传输的效率。
Description
技术领域
本申请涉及通信领域,尤其涉及一种数据包发送方法及相关设备。
背景技术
目前,多路径传输技术是通过多条路径并行传输来实现吞吐量的提升,或者通过多路径来实现业务的连续性及可靠性。例如,常见的有多路径传输控制协议(MultiplePath Transmission Control Protocol,MPTCP)。多路径传输技术可以支持一个连接多路径传输,也就是将单路径上的数据分流,分别在不同的子流上传输,这样连接中的两个地址间有多条路径,从而降低地址不可达的风险,也使得在增加或者变化传输路径的过程中,连接不中断。另外,多路径传输引入了冗余调度策略,将TCP数据发送队列中未确认的数据包,在多条子流上重复发送,从而提高应用层面数据传输的可靠性,降低业务层面数据传输的时延和抖动,降低业务层面数据的丢包率。例如,多条子流可以包括WiFi网络和蜂窝网络,该蜂窝网络可以是5G网络,4G网络,如长期演进网络(LTE,Long Term Evolution)、或者3G网络,如码分多址(CDMA,Code Division MultipleAccess)网络,或者2G网络等。
但是,为了提高发送的数据包中的载荷,会启用小包发送控制策略。在小包发送控制策略下,当发送端有一个小数据包处于已发送但未确认状态时,发送端不允许继续发送小数据包。当使用冗余调度策略尝试在多路径连接的多条子流上重复发送小数据包时,小包发送控制策略会导致无法及时在多条路径上发送多个携带相同数据的小数据包,需要等待小数据包对应的ACK包传回后再继续发送小数据包,影响数据传输的效率。
发明内容
本申请实施例提供了一种数据包发送方法及相关设备,提高了数据传输的效率。
第一方面,本申请实施例提供了一种数据包发送方法,包括:发送端首先确定多路径连接满足第一条件,第一条件用于解除多路径连接所使用小包发送控制策略,该小包发送控制策略用于控制发送端通过多路径连接发送小数据包的时间间隔,小数据包中包括的数据的长度小于最大数据包长度MSS;然后解除小包发送控制策略;以及在解除小包发送控制策略后,发送端通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包,多个小数据包中包括携带相同数据的小数据包。这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
其中,第一条件包括发送端已配置冗余调度策略、多路径连接的调度策略为冗余调度策略、多路径连接的接收端已配置冗余调度策略、小数据包为使用冗余调度策略发送的数据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及发送端当前在多路径连接的多条路径上发送数据包中的至少一项,冗余调度策略用于指示发送端通过冗余传输模式传输数据。
应理解,发送端在多路径连接的一条路径上发送小数据包之后,如果小数据包在传输过程中丢失或发送失败,需要通过冗余传输模式在多路径连接的另一条路径上再次发送携带相同数据的小数据包。这种情况下,也需要解除小包发送控制策略,在解除小包发送控制策略之后通过冗余传输模式在另一条路径重新发送小数据包。
在一种可能的设计中,确定小数据包在传输过程中丢失或发送失败的方法至少包括:发送端在多路径连接的一条路径上发送小数据包之后,超过预设的时长未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。或者,发送端在多路径连接的一条路径上发送小数据包之后,然后在多路径连接的未发送过小数据包的至少一条路径上发送大数据包,发送端在接收到该大数据包对应的确认包之前、未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。
应理解,小数据包中数据包括TCP协议以上的协议的报头,例如远程过程调用协议(Remote Procedure Call Protocol,RPC)的报头、超文本传输协议(HyperText TransferProtocol,HTTP)的报头,而不包括TCP报头以及更底层的报头,例如控制报文协议(Internet Control Message Protocol,ICMP),因此小数据包中包括的数据的长度为有效数据的长度与TCP协议以上的协议的报头的长度之和。当有效数据的长度与TCP协议以上的协议的报头的长度之和小于最大数据包长度MSS时,小包发送控制策略生效,进而需要确定是否解除多路径连接所使用的小包发送控制策略。
在一种可能的设计中,发送端向接收端发送小数据包之后,未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。
在另一种可能的设计中,发送端可以预先设定定时时间,发送端向接收端发送小数据包之后,未到达该预先设定的定时时间不允许发送与小数据包携带相同数据的小数据包。
在另一种可能的设计中,发送端可以启动阻塞发送条件,该阻塞发送条件用于发送端在发送小数据包之后、且未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。若在等待一段时间后,小数据包拼接成一个大数据包,才允许向接收端发送该拼接成的大数据包。
通过以上三种方式,可以控制发送端通过多路径连接发送小数据包的时间间隔,从而实现小包发送控制策略,提高发送的数据包中的载荷。
在一种可能的设计中,发送端停止执行小包发送控制策略,例如在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者直接在确定满足条件后,关闭小包发送控制策略对应的控制逻辑。
在另一种可能的设计中,发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号,以使得发送端中第一小数据包对应的序号小于等于第一ACK包的序号,第一小数据包为发送端在当前时刻前发送的最后一个小数据包、且发送端未接收到第一小数据包对应的ACK包,第一ACK包为发送端在当前时刻前接收到的序号最大的ACK包。
在另一种可能的设计中,发送端将发送端保存的未确认小数据包个数修改为0,其中,未确认小数据包个数用于表示发送端已经发送但未收到对应的ACK包的小数据包的个数。
在另一种可能的设计中,发送端通过定时器控制发送端通过多路径连接发送小数据包的时间间隔,发送端在通过多路径连接发送第一小数据包后,修改定时器以使得定时器提前到达预定时间,第一小数据包为发送端在当前时刻前发送的最后一个小数据包。
通过以上四种方式,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,可以实现解除小包发送控制策略,无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,提高了数据传输的效率。
在一种可能的设计中,由于发送端在执行到小包发送控制策略对应的控制逻辑时跳过对应的控制逻辑,或者确定满足条件后关闭了小包发送控制策略对应的控制逻辑。发送端可以通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包。
在另一种可能的设计中,在发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号之后,发送端中第一小数据包对应的序号小于等于第一ACK包的序号,这可以表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。进而允许在多路径连接的多条路径中未发送过第一小数据包的至少一条路径上,发送与第一小数据包携带相同数据的小数据包。在发送与第一小数据包携带相同数据的小数据包之后,可以再次修改发送端中第一小数据包对应的序号或修改发送端接收到的第一ACK包的序号,这可以再次表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待该小数据包对应的ACK包传回后再继续发送小数据包,解除小包发送控制策略,通过冗余传输模式,在多路径连接的多条路径上发送第二小数据包。
在另一种可能的设计中,由于发送端将发送端保存的未确认小数据包个数修改为0,这样发送端就可以无需等待该未确认小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。然后可以在多路径连接的多条路径中未发送过第一小数据包的另一条路径上,发送与第一小数据包携带相同数据的小数据包。然后再将未确认小数据包个数修改为0,发送端可以在多路径连接的多条路径中未发送过第一小数据包的又一条路径上,发送与第一小数据包携带相同数据的小数据包。如此循环往复,在每次发送小数据包之后,保持未确认小数据包个数为0,或者将未确认小数据包个数修改为0,以便发送端能及时发送其他小数据包。
在另一种可能的设计中,发送端在通过多路径连接发送第一小数据包后,由于已经修改定时器以使得定时器提前到达预定时间,在接收到第一小数据包对应的ACK包之前,定时器提前到达预定时间时,不需要等待接收第一小数据包对应的ACK包,就可以通过冗余传输模式在多路径连接的多条路径中未发送过第一小数据包的路径上,发送与第一小数据包携带相同数据的小数据包;并且,发送端在发送与第一小数据包携带相同数据的小数据包后,可以再次修改定时器以使得定时器提前到达预设时间;在定时器再次提前到达预定时间时,在多路径连接的路径上发送第二小数据包。
在以上四种情况下,由于解除了小包发送控制策略,发送端可以通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
应理解,在定时器提前到达预定时间时,可以立即在多路径连接的多条路径中未发送过第一小数据包的路径上发送与第一小数据包携带相同数据的小数据包。或者,由于在执行代码过程中存在延迟或需要执行一些现有的发送报文的流程中,与发送相关的准备步骤(例如报文封装,将报文传递给网卡等硬件处理等等),当定时器提前到达预定时间时,可以延迟一段时间,然后在多路径连接的多条路径中未发送过第一小数据包的路径上发送与第一小数据包携带相同数据的小数据包。
第二方面,本申请实施例提供了一种数据包发送装置,装置为一多路径连接的发送端,包括:确定模块,用于确定多路径连接满足第一条件,第一条件用于解除多路径连接所使用小包发送控制策略,小包发送控制策略用于控制发送端通过多路径连接发送小数据包的时间间隔,小数据包中包括的数据的长度小于最大数据包长度MSS;处理模块,用于解除小包发送控制策略;发送模块,用于在解除小包发送控制策略后,通过冗余传输模式,在多路径连接的多条路径上发送多个小数据包,多个小数据包中包括携带相同数据的小数据包。这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
应理解,第二方面是第一方面对应的装置,也就是上述的发送端,即发送小数据包的一端,其各种具体的实现方式、说明以及技术效果不再赘述。
第三方面,本申请实施例提供了一种数据包发送设备,包括处理电路、通信接口和存储介质,存储介质中存储有协议栈程序,通信接口用于通过执行协议栈程序与其他设备收发数据包,处理器用于通过运行存储介质中的指令通过通信接口,以实现第一方面及第一方面各种实现方式的数据包发送方法。
在一个可能的设计中,本申请提供的数据包发送设备,可以包含用于执行上述方法设计中数据包发送装置行为相对应的模块。模块可以是软件和/或是硬件。
应理解,第三方面是第一方面或者第二方面对应的装置,也就是上述的发送端,其各种具体的实现方式、说明以及技术效果不再赘述。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种多路径系统的结构示意图;
图2是本申请实施例提供的一种支持MPTCP技术的设备的总体架构图。
图3是本申请实施例提供的一种小数据发送示意图
图4是本申请实施例提供的一种传输时延测试的示意图;
图5是本申请实施例提供的一种传输时延统计的示意图;
图6是本申请实施例提供的一种数据包发送方法的流程示意图;
图7是本申请实施例提供的一种数据包发送装置的结构示意图;
图8是本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
下面解释本申请出现的一些名词。
主机(host):用于发起或者接收一多路径连接的端节点,即一个多路径连接的发送端或者接收端。例如,该主机可以运行在终端或者服务器上。
路径(path):路径是发送端(sender)与接收端(reciever)之间的链路(link)。路径可以用四元组来标识,该四元组用于表示源地址(和/或端口)和目的地址(和/或端口)对。应理解,支持MPTCP技术的接收端和发送端,都可以在其主机(host)中准备多个地址,以便标识多条路径。以及,一对接收端和发送端之间的多条路径可以共享一个或者多个路由器(router)。子流(subflow):在单个路径(path)上运行的TCP段(segment)的流。子流是一多路径连接的一部分。子流的启动(start)和终止(terminate)与常规(regular)的TCP连接相似。
多路径连接:通过(over)一个应用,在两个主机(host)间可以通信的一组子流,该组子流包括多个子流。其中,连接和应用的接口(socket)之间有一一映射。
包(packet):带有头部(header)的一包(package)数据,该头部可以是逻辑上完整或者不完整的。通常,是一物理上打包(physical packaging of data)的数据,当然,也可以是一逻辑上打包的数据(logical packaging of data)。包这个概念用于描述数据在一主机(host)以及与该主机相连的网络之间的交互。
ACK包:也称为确认包、确认报文、ACK(Acknowledgement)、ACK包,反馈报文、通知,该本申请中,确认包可用于接收端向发送端反馈接收到或者未接收到的数据包的信息,确认包中包括反馈信息,也称为ACK信息,例如某一数据包的序号。一个数据包的反馈信息在现有技术中通常指接收端通知发送端已接收到该数据包。
本申请应用到多路径传输技术,多路径传输技术使用多条路径传输数据,该多条路径可以是两条或者两条以上的路径。通常该多条路径传输的数据是不同的,多路径传输协议会将连接的数据分流到多个子流上,该多个子流都传输该连接的一部分数据,为了便于描述,本申请中称这种传输模式为多路径传输模式(multiple path transmissionmode),也简称为多路径模式(MP mode)。但是,某些特殊场景下,例如对数据的可靠性要求很高的场景,或者对时延要求较为苛刻的场景,也可以使用另一种传输模式,即冗余传输模式(redundant transmission mode),也简称为冗余模式(redundant mode)。冗余传输模式是指在将一个连接中的数据包,重复地在该连接的多个子流上传输。即一个连接的数据被多个子流重复传输。例如冗余传输模式中,一多路径传输连接的所有子流都要将相同的数据发送一次。这种传输模式显然不能发挥多路径传输技术的优势,而且需要数据的发送端和接收端的设备提供更高的硬件配置以供处理至少一份多出的冗余的数据,这也就意味着更高的设备配置成本。还有,需要指明的是,例如对一个多路径传输连接,支持n条路径传输数据,其中n大于1,默认的多路径传输模式就是使用这n条路径传输数据,但是可以使用该n条路径中的一条或者多条路径传输数据。
其中,多路径传输技术可以用于多种协议,例如MPTCP、用户数据报协议(UserDatagram Protocol,UDP)和QUIC协议(Quick UDP Internet Connection),本申请以MPTCP为例进行说明。
目前常见的多路径传输场景,往往是两条子流,也就是蜂窝网络和WIFI网络,但是,可以预见,多于两条子流的传输场景会越来越普及。例如,可以是在广域网中,某个区域有多个运营商,导致该区域支持多于两条子流进行TCP数据传输,再例如,一个数据中心中,也可以通过等价多路径(Equal-Cost Multi Path routing,ECMP)路由技术实现支持三条及以上子流进行多路径的TCP数据传输。
MPTCP技术可以用在多种组网系统中,通常,若要通过MPTCP技术传递信息,信息的发送端和接收端之间应至少有一段链路支持MPTCP技术。图1简单列举了三种可使用该技术的组网系统,为了描述方便,图1中示意性画出了该多路径系统中的两条路径,分别使用WiFi技术(以路由器表示)和蜂窝网络(以基站表示),其中,云端示意性地画出了几个云端服务器,应理解,图中只示意性表示云端与其他设备的连接,不明确表示云端的哪个服务器与其他设备连接。图1中的系统一是终端与云端之间进行通信,云端中与终端通信的设备不支持MPTCP技术,而终端支持该技术,或者则云端的设备支持MPTCP技术,而终端不支持,则要使用该技术,不支持该技术的一侧就需要通过支持MPTCP技术的代理设备(proxy,例如网关),与另一侧交互。图1中的系统二中,云端与终端均支持MPTCP技术。图1中的系统三中,描述的是两个云端之间进行通信的场景,这两个云端中,可以均支持该多径传输技术,也可以有至少有一端不支持该技术,不支持该技术的一端借助支持MPTCP技术的代理设备(例如网关)即可,如图1中,示意的就是两个云端都借助支持MPTCP技术的代理设备,使得两侧网关之间使用该技术进行通信。
其中,云端可以包括多种设备,例如服务器等,通常,对一个涉及云端的TCP连接,是该云端的某一设备与对端进行通信。
图2描述一种本申请实施例所涉及的支持MPTCP技术的设备的总体架构图,其中按照逻辑架构的层次关系示意性地包括应用层、MPTCP模块、子流管理模块和下层收发包模块。MPTCP模块和子流管理模块可以属于网络传输层,下层收发包模块可以属于硬件层和硬件驱动层。其中,子流管理模块包括子流建立、子流关闭、状态管理、数据接收、数据发送等等,MPTCP模块包括路径管理和连接管理,路径管理包括接口状态监控、接口属性管理、接口地址管理和子流事件处理等等,连接管理包括连接建立、连接关闭、连接状态、拥塞算法、调度算法、数据发送和数据接收等等。本申请实施例主要改进的是MPTCP模块中调度算法的控制参数(例如序号、个数和预定时间等等)和数据发送的判断条件。应理解,图2所示的架构,尤其是对所涉及的MPTCP模块的描述,对云端设备以及MPTCP代理设备同样适用。其中,对于本申请所描述的方法和设备,图7中所示的确定模块701和处理模块702的功能在一种实现方式下,可以由图2所示的MPTCP模块实现,即MPTCP模块可以执行确定模块701和处理模块702对应的方法步骤;以及图7中所示的发送模块703的功能可以由图2所示的下层收发包模块实现,即下层收发包模块可以执行发送模块703对应的方法步骤。
本申请中发送的小数据包,就是从发送端的应用层下发到MPTCP模块,然后将小数据包分配到各个TCP子流上,通过发送端的下层收发包模块将小数据包发送到网络,再经过网络的传输,由支持MPTCP技术的对端硬件接收后上报传输层,在传输层解析和整合后上报给对端应用层,从而完成数据的传输。
如图3所示,图3中的左图是一种不启用小包发送控制策略的小数据发送示意图。发送端可以连续向接收端发送多个小数据包(小数据包a、小数据包b和小数据包c),接收端接收到每个小数据包之后,向发送端返回该小数据对应的ACK包。图2中的右图是一种启用小包发送控制策略的小数据发送示意图。发送端在向接收端发送小数据包a之后,等待接收端返回该小数据包a对应的ACK包,此时小数据包b和小数据包c已经缓存,并组合成中/大数据包,发送端在接收到接收端返回的ACK之后,才允许向接收端发送该中/大数据包。
为了测试小包发送控制策略对使用冗余调度策略发送小数据包的传输时延的影响,发送端与接收端使用冗余调度策略进行数据交互传输过程中,断开LTE或者WIFI中某一接口,测试业务层数据传输时延。如图4所示,图4是本申请实施例提供的一种传输时延测试的示意图。包括:首先,发送端向接收端发送小数据包,并且记录发送小数据包的时间戳信息,例如T1。其中,每个小数据包携带有该小数据包的序号。其次,接收端接收到发送端发送的小数据包后,向发送端返回一个ACK包,其中,该ACK携带有与小数据包的序号相同的序号。然后,当发送端接收到接收端发送的ACK包时,记录接收到ACK包的时间戳信息,例如T2,并且根据ACK包中所携带的序号,获取小数据的时间戳信息T1。最后,将时间戳信息T2减去时间戳信息T1,计算得到小数据包的传输时延(T2-T1)。
如图5所示,图5是本申请实施例提供的一种传输时延统计的示意图。其中,横坐标表示小数据包的序号,纵坐标表示测试过程中记录的每个小数据包的传输时延。小数据包通过WIFI接口传输的时延在40ms左右,通过LTE接口传输的时延在20ms左右。如果小数据包通过冗余调度策略在两条子流上重复发送,则记录到的每个小数据包的传输时延应该在20ms左右。从图5可知,在从WIFI接口切换到LTE接口进行传输的过程中,在两条子流上重复发送小数据包,小数据包的传输时延出现了明显的波动。其中,主要原因包括:当发送端在其中一条子流上发送小数据包时,允许在空中飞行一个小数据包,所以第一个小数据包可以发送成功。当发送端将携带相同数据的小数据包调度在另一条子流上重复发送时,小包发送控制策略生效,由于此时空中有一个飞行的小数据包,因此不允许再次发送小数据包,导致小数据包的传输时延出现了明显的波动。
综上所述,当使用冗余调度策略尝试在MPTCP连接的多条子流上重复发送小数据包时,当使用冗余调度策略尝试在多条路径上发送多个携带相同数据的小数据包时,小包发送控制策略会导致小数据包无法及时在多条子流上重复发送,需要等待小数据包对应的ACK包传回后再继续发送小数据包,影响数据传输的效率。为了解决上述技术问题,本申请实施例提供了如下解决方案。
请参见图6,图6是本申请实施例提供的一种数据包发送方法的流程示意图。该方法包括但不限于如下步骤:
S601,所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS。
具体的,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
应理解,发送端在多路径连接的一条路径上发送小数据包之后,如果小数据包在传输过程中丢失或发送失败,需要通过冗余传输模式在多路径连接的另一条路径上再次发送该小数据包。这种情况下,也需要解除小包发送控制策略,在解除小包发送控制策略之后通过冗余传输模式在另一条路径重新发送小数据包。
其中,确定小数据包在传输过程中丢失或发送失败的方法至少包括:发送端在多路径连接的一条路径上发送小数据包之后,超过预设的时长未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。或者,发送端在多路径连接的一条路径上发送小数据包之后,然后在多路径连接的未发送过小数据包的至少一条路径上发送大数据包,发送端在接收到该大数据包对应的确认包之前、未接收到该小数据包对应的确认包,发送端可以确定该小数据包丢失或发送失败。其中,所述大数据包中包括的数据的长度不小于最大数据包长度MSS。
在本申请实施例中,控制所述发送端通过所述多路径连接发送小数据包的时间间隔可以至少包括如下几种可选方式:
第一种可选方式,发送端向接收端发送小数据包之后,未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。具体的,发送端将第一个小数据先发送出去,将后面到达的第二个小数据包缓存起来。当发送端接收对第一个小数据包对应的ACK包之后,再发送缓存中的第二个小数据包,同时继续对随后到达第三个小数据包进行缓存,只有在接收到对前一个小数据包的ACK包后才继续发送下一个小数据包。例如,当启用Nagle机制时,当发送端有一个小数据包处于已发送但未确认状态下时,发送端不允许继续发送小数据包。
第二种可选方式,预先设定定时时间,发送端向接收端发送小数据包之后,未到达该预先设定的定时时间不允许发送与小数据包携带相同数据的小数据包。具体的,发送端将第一个小数据先发送出去,开始计时,并将后面到达的第二小数据包缓存起来。当计时时长超过该定时时间时,发送缓存中的第二个小数据包,然后再开始计时,同时继续对随后到达第三个小数据包进行缓存,只有在每次等待超过该定时时间时才继续发送下一个小数据包。
第三种可选方式,启动阻塞发送条件,该阻塞发送条件用于发送端在发送小数据包之后、且未接收到返回的小数据包对应的ACK包之前不允许发送与该小数据包携带相同数据的小数据包。若在等待一段时间后,小数据包拼接成一个大数据包,就可以向接收端发送该拼接成的大数据包。
需要说明的是,本申请实施例中的所述小数据包中数据包括TCP协议以上的协议的报头,例如远程过程调用协议(Remote Procedure Call Protocol,RPC)的报头、超文本传输协议(HyperText Transfer Protocol,HTTP)的报头,而不包括TCP报头以及更底层的报头,例如控制报文协议(Internet Control Message Protocol,ICMP),因此小数据包中包括的数据的长度为有效数据的长度与TCP协议以上的协议的报头的长度之和。当有效数据的长度与TCP协议以上的协议的报头的长度之和小于最大数据包长度MSS时,小包发送控制策略生效,进而需要确定是否解除多路径连接所使用小包发送控制策略。
需要说明的是,当所述发送端确定所述多路径连接不满足第一条件时,例如发送端和接收端的多路径连接都没有配置冗余调度策略,发送端可以使用小包发送控制策略对小数据包进行调度,并在各条路径上发送小数据包。
S602,所述发送端解除所述小包发送控制策略,至少包括如下几种可选方式:
第一种可选方式,所述发送端停止执行所述小包发送控制策略,例如在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者在确定满足条件后,关闭小包发送控制策略对应的控制逻辑。
第二种可选方式,所述发送端修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包。其中,当前时刻可以为发送端当前的系统时间、或者为修改序号的时刻。
第三种可选方式,所述发送端将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。具体的,在发送端发送第一个小数据包之后,可以立即将未确认小数据包个数修改为0,再发送第二个小数据包,并立即再将未确认小数据包个数修改为0,再发送第三个小数据包。每次发送前一个小数据包之后,立即将未确认小数据包个数修改为0,以便发送下一个小数据包。
第四种可选方式,所述发送端通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述发送端在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包。其中,预定时间的时长可以小于传输时延,传输时延可以为发送端接收到小数据包对应的ACK包的时刻与发送端发送小数据包的时刻的差值。另外,当前时刻可以为发送端当前的系统时间、或者为修改序号的时刻。
S603,以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
第一种可选方式,由于发送端在执行到小包发送控制策略对应的控制逻辑时,跳过该控制逻辑,或者在确定满足条件后关闭小包发送控制策略对应的控制逻辑。发送端可以通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包。
第二种可选方式,在发送端修改发送端中第一小数据包对应的序号,或修改发送端接收到的第一ACK包的序号之后,发送端中第一小数据包对应的序号小于等于第一ACK包的序号,这可以表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待第一小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。进而允许在多路径连接的多条路径中未发送过第一小数据包的至少一条路径上,发送与第一小数据包携带相同数据的小数据包。在发送与第一小数据包携带相同数据的小数据包之后,可以再次修改发送端中第一小数据包对应的序号或修改发送端接收到的第一ACK包的序号,这可以再次表示发送端已经接收到全部小数据包对应的ACK包,这样发送端就可以无需等待该小数据包对应的ACK包传回后再继续发送小数据包,解除小包发送控制策略,通过冗余传输模式,在多路径连接的多条路径上发送第二小数据包。
第三种可选方式,由于发送端将发送端保存的未确认小数据包个数修改为0,这样发送端就可以无需等待该未确认小数据包对应的ACK包传回后再继续发送小数据包,从而达到了解除小包发送控制策略的目的。然后可以在多路径连接的多条路径中未发送过第一小数据包的另一条路径上,发送与第一小数据包携带相同数据的小数据包。然后再将未确认小数据包个数修改为0,发送端可以在多路径连接的多条路径中未发送过第一小数据包的又一条路径上,发送与第一小数据包携带相同数据的小数据包。如此循环往复,在每次发送小数据包之后,保持未确认小数据包个数为0或者将未确认小数据包个数修改为0,直到发送完毕全部的小数据包。
第四种可选方式,发送端在通过所述多路径连接发送第一小数据包后,由于已经修改所述定时器以使得所述定时器提前到达预定时间,在接收到第一小数据包对应的ACK包之前,定时器提前到达预定时间时,不需要等待接收第一小数据包对应的ACK包,就可以通过所述冗余传输模式在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;并且,所述发送端在发送与所述第一小数据包携带相同数据的小数据包后,可以再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
应理解,在定时器提前到达预定时间时,可以立即在多路径连接的多条路径中未发送过第一小数据包的路径上发送与所述第一小数据包携带相同数据的小数据包。或者,由于在执行代码过程中存在延迟或需要执行一些现有的发送报文的流程中,与发送相关的准备步骤(例如报文封装,将报文传递给网卡等硬件处理等等),当定时器提前到达预定时间时,可以延迟一段时间,然后在多路径连接的多条路径中未发送过第一小数据包的路径上发送与所述第一小数据包携带相同数据的小数据包。
这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
需要说明的是,本申请描述的基于多路径连接的数据包发送方法中,发送端和接收端中的至少一个都可以是终端,或者支持MPTCP协议的网关,或者支持MPTCP协议的服务器。应理解,在执行本申请实施例中所述的方法前,发送端和接收端应安装了支持MPTCP协议的操作系统以及微型端口的驱动。
需要说明的是,本申请实施例中,发送端和接收端通过接入节点接入网络。其中,接入节点专指无线网络的接入节点,具体的,可以是无线WI-FI网络的接入点(AccessPoint,AP)、路由器、或者Winmax网络的接入点或者无线蜂窝移动网络的基站等等,本申请不限定无线网络的种类以及无线网络的接入节点具体的形式。并且,同一类型的无线网络是指同属于无线WI-FI网络的接入节点,或者同属于Winmax网络,或者同属于无线蜂窝网络的接入节点如2G网络、3G网络或者4G网络或者5G网络等等。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图7,图7是本申请实施例提供的一种数据包发送装置的结构示意图,该数据包发送装置可以包括确定模块701,处理模块702和发送模块703,其中,确定模块701,用于确定多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
处理模块702,用于解除所述小包发送控制策略;发送模块703,用于在解除所述小包发送控制策略后,通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包。
其中,所述第一条件包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、所述小数据包为使用冗余调度策略发送的数据包、以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
可选的,处理模块702具体用于:
修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
相应的,发送模块703具体用于:
在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
可选的,处理模块702具体用于:
将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
可选的,通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,处理模块702具体用于:
在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
相应的,发送模块703具体用于:
在所述定时器提前到达预定时间时,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
需要说明的是,各个单元的实现还可以对应参照图6所示的方法实施例的相应描述。
这样,当协议栈开启小包发送控制策略,以及需要通过冗余传输模式传输数据时,通过增加的判断机制可以自适应的在满足条件的情况下解除小包发送控制策略,而无需更改协议栈中开启小包发送控制策略的默认配置,在无需进行冗余传输的模式下。在解除小包发送控制策略之后,通过冗余传输模式,在多条路径上发送多个携带相同数据的小数据包,从而提高数据传输的效率。
图8描述了本申请实施例提供的设备的结构示意图,本申请实施例所述的方法适用于终设备800。该设备800包括:至少一个处理电路801,通信接口804,通信接口804包括至少一个物理网卡。一种实现方式下,这个物理网卡对应多个虚拟网卡,所述多个虚拟网卡与多个端口一一对应,图中未标出,存储介质805,至少一个通信总线802。通信总线802用于实现这些组件之间的连接通信。
一种实现方式下,该设备800可以是终端设备,在是终端设备的情况下,可选的包含用户接口803,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。存储介质805可以包括只读存储器和随机存取存储器,并向处理电路801提供指令和数据。存储介质805的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,例如该设备为终端或服务器的情况下,存储介质805存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8051,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序模块8052,包含各种应用程序,例如桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。而在该设备为网关的情况下,该存储介质805可以只存储用于执行上文所述的方法(例如包括接收或发送数据包,以及接收或发送确认包,以及接收到的数据包或分析接收到的确认包等)所需要的程序代码。
该设备可以是终端,网关或者服务器,具体的可以参见图1到图4中的信息,例如,该设备为终端的情况下,可以参见图2对应的终端架构图和相关说明。该设备可以通过处理电路801调用存储介质805中的程序,使得处理电路801通过通信接口804,执行上述图中的方法及实施例,例如可以是多路径连接的发送端或者接收端。具体的实现方式、相关说明和有益效果,请参见上文,此处不再赘述。例如,处理电路801通过通信接口804,可以实现图7所示的装置中的确定模块701、处理模块702和发送模块703的功能。例如,发送模块703可以是由不同的进程或者线程调用的通信接口。
本申请的另一个实施例还记载一种芯片。这种芯片可以放置在上文所述的发送端,用于执行本申请中描述的方法,以解析和处理本申请上述方法中所述的小数据包。这种芯片还可以放置在上文所述的接收端,用于执行本申请中描述的方法。例如是接收小数据包后,生成本申请上述方法中所述的确认包。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件(例如处理器)来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上为本申请实施例所提供的一种数据包发送方法和装置,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (12)
1.一种数据包发送方法,其特征在于,所述方法用于一多路径连接的发送端,所述方法包括:
所述发送端确定所述多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
所述发送端解除所述小包发送控制策略;
以及在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包,其中,所述第一条件包括所述小数据包为使用冗余调度策略发送的数据包和所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
2.如权利要求1所述的方法,其特征在于,所述第一条件还包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项。
3.如权利要求1或2所述的方法,其特征在于,所述发送端解除所述小包发送控制策略,包括:
所述发送端修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
相应的,在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,包括:
所述发送端在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
4.如权利要求1或2所述的方法,其特征在于,所述发送端解除所述小包发送控制策略,包括:
所述发送端将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
5.如权利要求1或2所述的方法,其特征在于,所述发送端通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述发送端解除所述小包发送控制策略,包括:
所述发送端在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
相应的,在解除所述小包发送控制策略后,所述发送端通过冗余传输模式,在所述多路径连接的多条路径上发送多个所述小数据包,包括:
所述发送端在所述定时器提前到达预定时间时,通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,所述发送端在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
6.一种数据包发送装置,其特征在于,所述装置为一多路径连接的发送端,所述装置包括:
确定模块,用于确定多路径连接满足第一条件,所述第一条件用于解除所述多路径连接所使用小包发送控制策略,所述小包发送控制策略用于控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述小数据包中包括的数据的长度小于最大数据包长度MSS;
处理模块,用于解除所述小包发送控制策略;
发送模块,用于在解除所述小包发送控制策略后,通过冗余传输模式,在所述多路径连接的多条路径上发送多个小数据包,所述多个小数据包中包括携带相同数据的小数据包,其中,所述第一条件包括所述小数据包为使用冗余调度策略发送的数据包和所述小数据包在所述多路径连接的一条路径上发送后需要在另一条路径上重复发送中的至少一项,所述冗余调度策略用于指示所述发送端通过所述冗余传输模式传输数据。
7.如权利要求6所述的装置,其特征在于,所述第一条件还包括所述发送端已配置冗余调度策略、所述多路径连接的调度策略为冗余调度策略、所述多路径连接的接收端已配置冗余调度策略、以及所述发送端当前在所述多路径连接的所述多条路径上发送数据包中的至少一项。
8.如权利要求6或7所述的装置,其特征在于,所述处理模块具体用于:
修改所述发送端中第一小数据包对应的序号,或修改所述发送端接收到的第一ACK包的序号,以使得所述发送端中所述第一小数据包对应的序号小于等于所述第一ACK包的序号,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包、且所述发送端未接收到所述第一小数据包对应的ACK包,所述第一ACK包为所述发送端在当前时刻前接收到的序号最大的ACK包;
相应的,所述发送模块具体用于:
在所述多路径连接的多条路径中未发送过所述第一小数据包的至少一条路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,通过所述冗余传输模式,在所述多路径连接的多条路径上发送第二小数据包。
9.如权利要求6或7所述的装置,其特征在于,所述处理模块具体用于:
将所述发送端保存的未确认小数据包个数修改为0,其中,所述未确认小数据包个数用于表示所述发送端已经发送但未收到对应的ACK包的小数据包的个数。
10.如权利要求6或7所述的装置,其特征在于,通过定时器控制所述发送端通过所述多路径连接发送小数据包的时间间隔,所述处理模块具体用于:
在通过所述多路径连接发送第一小数据包后,修改所述定时器以使得所述定时器提前到达预定时间,所述第一小数据包为所述发送端在当前时刻前发送的最后一个所述小数据包;
相应的,所述发送模块具体用于:
在所述定时器提前到达预定时间时,所述发送端通过所述冗余传输模式,在所述多路径连接的多条路径中未发送过所述第一小数据包的路径上,发送与所述第一小数据包携带相同数据的小数据包;
以及,在发送与所述第一小数据包携带相同数据的小数据包后,再次修改所述定时器以使得所述定时器提前到达预设时间;在所述定时器再次提前到达预定时间时,在所述多路径连接的路径上发送第二小数据包。
11.一种数据包发送设备,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有协议栈程序,所述通信接口用于通过执行所述协议栈程序与其他设备收发数据包,所述处理器用于通过运行所述存储介质中的指令通过所述通信接口,以实现权利要求1至5所述的数据包发送方法。
12.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至5中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018101482315 | 2018-02-12 | ||
CN201810148231.5A CN109951260B (zh) | 2018-02-12 | 2018-02-12 | 一种数据包发送方法及相关设备 |
PCT/CN2019/073261 WO2019154134A1 (zh) | 2018-02-12 | 2019-01-25 | 一种数据包发送方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111713056A CN111713056A (zh) | 2020-09-25 |
CN111713056B true CN111713056B (zh) | 2022-01-14 |
Family
ID=67006026
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810148231.5A Active CN109951260B (zh) | 2018-02-12 | 2018-02-12 | 一种数据包发送方法及相关设备 |
CN201980013117.4A Active CN111713056B (zh) | 2018-02-12 | 2019-01-25 | 一种数据包发送方法及相关设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810148231.5A Active CN109951260B (zh) | 2018-02-12 | 2018-02-12 | 一种数据包发送方法及相关设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11444867B2 (zh) |
EP (1) | EP3739784B1 (zh) |
KR (1) | KR102476192B1 (zh) |
CN (2) | CN109951260B (zh) |
CA (1) | CA3090903C (zh) |
ES (1) | ES2955714T3 (zh) |
WO (1) | WO2019154134A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11336683B2 (en) * | 2019-10-16 | 2022-05-17 | Citrix Systems, Inc. | Systems and methods for preventing replay attacks |
CN111147573A (zh) * | 2019-12-24 | 2020-05-12 | 网宿科技股份有限公司 | 一种数据传输的方法和装置 |
CN113067741B (zh) * | 2020-01-02 | 2022-11-29 | 中国移动通信有限公司研究院 | 一种信息处理方法、装置、终端及存储介质 |
CN111885022B (zh) * | 2020-07-09 | 2023-06-20 | 河南信大网御科技有限公司 | 基于通信接口的拟态通信方法、通信系统及终端设备 |
CN111901075B (zh) * | 2020-07-16 | 2021-11-23 | 华中科技大学 | 多网络融合传输方法、传输系统及计算机可读存储介质 |
CN111970340B (zh) * | 2020-07-30 | 2023-06-16 | 北京大米科技有限公司 | 信息传输方法、可读存储介质和电子设备 |
CN112383472A (zh) * | 2020-11-13 | 2021-02-19 | Oppo广东移动通信有限公司 | 网络传输方法、装置、存储介质及电子设备 |
CN116684036B (zh) * | 2022-11-03 | 2024-03-22 | 荣耀终端有限公司 | 数据处理方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326831A (zh) * | 2013-06-04 | 2013-09-25 | 华为终端有限公司 | 在多路传输控制协议中的链路处理方法和移动终端 |
CN103503357A (zh) * | 2011-03-04 | 2014-01-08 | 黑莓有限公司 | 控制网络设备的行为 |
CN103840917A (zh) * | 2014-03-28 | 2014-06-04 | 北京邮电大学 | 一种基于网络编码的多路并行传输方案 |
CN103905463A (zh) * | 2014-04-21 | 2014-07-02 | 北京邮电大学 | 一种适用于多路径传输的连接管理与控制方法 |
CN105099620A (zh) * | 2015-06-03 | 2015-11-25 | 香港中文大学深圳研究院 | 代数交换系统及其组装和解码算法、数据包的解码算法 |
CN106656856A (zh) * | 2016-12-16 | 2017-05-10 | 浙江大学 | 一种抵抗mptcp接收缓冲区阻塞的数据包调度方法 |
WO2017194172A1 (en) * | 2016-05-13 | 2017-11-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Improved resource usage in a multipath network |
WO2017222259A1 (ko) * | 2016-06-19 | 2017-12-28 | 엘지전자 주식회사 | 데이터 전송 방법 및 송신기 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101231357B1 (ko) * | 2006-04-06 | 2013-02-07 | 엘지전자 주식회사 | 다중 안테나 시스템에서 채널 상태 정보 귀환 방법 및데이터 송신 방법 |
JP5672238B2 (ja) * | 2009-10-13 | 2015-02-18 | 日本電気株式会社 | ゲートウェイ装置、移動通信システム、移動端末、パケット転送制御方法、移動端末の制御方法、及びプログラム |
CN102546106B (zh) * | 2011-12-28 | 2014-03-26 | 南京邮电大学 | 面向卫星网络的多路径并行传输方法 |
US9787575B2 (en) * | 2015-05-28 | 2017-10-10 | Arista Networks, Inc. | Method and system for programming equal-cost multi-path routes on network devices |
WO2017198285A1 (en) * | 2016-05-16 | 2017-11-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Transporting udp packets over an mptcp connection |
KR102111029B1 (ko) * | 2016-06-17 | 2020-05-14 | 주식회사 케이티 | 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법 |
WO2017220149A1 (en) | 2016-06-23 | 2017-12-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Scheduling packets for transport over an mptcp connection |
WO2017222256A1 (ko) * | 2016-06-23 | 2017-12-28 | 엘지전자 주식회사 | 다중 전송 기법이 적용된 무선통신시스템에서 신호를 수신하는 방법 및 장치 |
EP3276891B1 (en) * | 2016-07-29 | 2019-02-27 | Deutsche Telekom AG | Techniques for establishing a communication connection between two network entities via different network flows |
CN106254202B (zh) * | 2016-08-29 | 2019-08-02 | 北京邮电大学 | 一种基于喷泉码的多路并行传输方法以及装置 |
WO2019166697A1 (en) * | 2018-03-01 | 2019-09-06 | Nokia Technologies Oy | Conversion between transmission control protocols |
-
2018
- 2018-02-12 CN CN201810148231.5A patent/CN109951260B/zh active Active
-
2019
- 2019-01-25 CA CA3090903A patent/CA3090903C/en active Active
- 2019-01-25 CN CN201980013117.4A patent/CN111713056B/zh active Active
- 2019-01-25 WO PCT/CN2019/073261 patent/WO2019154134A1/zh unknown
- 2019-01-25 KR KR1020207025498A patent/KR102476192B1/ko active IP Right Grant
- 2019-01-25 ES ES19751709T patent/ES2955714T3/es active Active
- 2019-01-25 EP EP19751709.7A patent/EP3739784B1/en active Active
-
2020
- 2020-08-12 US US16/991,493 patent/US11444867B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103503357A (zh) * | 2011-03-04 | 2014-01-08 | 黑莓有限公司 | 控制网络设备的行为 |
CN103326831A (zh) * | 2013-06-04 | 2013-09-25 | 华为终端有限公司 | 在多路传输控制协议中的链路处理方法和移动终端 |
CN103840917A (zh) * | 2014-03-28 | 2014-06-04 | 北京邮电大学 | 一种基于网络编码的多路并行传输方案 |
CN103905463A (zh) * | 2014-04-21 | 2014-07-02 | 北京邮电大学 | 一种适用于多路径传输的连接管理与控制方法 |
CN105099620A (zh) * | 2015-06-03 | 2015-11-25 | 香港中文大学深圳研究院 | 代数交换系统及其组装和解码算法、数据包的解码算法 |
WO2017194172A1 (en) * | 2016-05-13 | 2017-11-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Improved resource usage in a multipath network |
WO2017222259A1 (ko) * | 2016-06-19 | 2017-12-28 | 엘지전자 주식회사 | 데이터 전송 방법 및 송신기 |
CN106656856A (zh) * | 2016-12-16 | 2017-05-10 | 浙江大学 | 一种抵抗mptcp接收缓冲区阻塞的数据包调度方法 |
Non-Patent Citations (4)
Title |
---|
"MPTCP Application Interface Considerations;draft-scharf-mptcp-api-00.txt";M. Scharf;《Internet Engineering Task Force》;20100318;摘要,第5页第2段,第7页第2、3段 * |
"Receive Buffer based Path Management for MPTCP in heterogeneous networks";Jinhwan Kim等;《2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM)》;20171230;全文 * |
"Streaming High-Quality Mobile Video with Multipath TCP in Heterogeneous Wireless Networks";Jiyan Wu等;《IEEE Transactions on Mobile Computing》;20161230;全文 * |
"基于QoS的多播路由算法研究";孙琳;《中国硕士学位论文全文数据库信息科技辑》;20070515;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20200374217A1 (en) | 2020-11-26 |
ES2955714T3 (es) | 2023-12-05 |
CA3090903C (en) | 2023-04-25 |
EP3739784A4 (en) | 2021-03-17 |
CN111713056A (zh) | 2020-09-25 |
EP3739784A1 (en) | 2020-11-18 |
KR20200116985A (ko) | 2020-10-13 |
CA3090903A1 (en) | 2019-08-15 |
CN109951260B (zh) | 2020-04-03 |
KR102476192B1 (ko) | 2022-12-08 |
CN109951260A (zh) | 2019-06-28 |
US11444867B2 (en) | 2022-09-13 |
WO2019154134A1 (zh) | 2019-08-15 |
EP3739784B1 (en) | 2023-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111713056B (zh) | 一种数据包发送方法及相关设备 | |
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
US11271848B2 (en) | Data transmission method, apparatus, and device | |
Yedugundla et al. | Is multi-path transport suitable for latency sensitive traffic? | |
US9655003B2 (en) | Systems and methods for improved wireless interface aggregation | |
EP3533162B1 (en) | Handling of data packet transfer via a proxy | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
EP2938025A2 (en) | Method of data retransmission in coordination service transmission and access network gateway thereof | |
Arslan et al. | Bolt:{Sub-RTT} Congestion Control for {Ultra-Low} Latency | |
US20070226347A1 (en) | Method and apparatus for dynamically changing the TCP behavior of a network connection | |
WO2022143468A1 (zh) | 数据传输方法、装置、系统及存储介质 | |
Wang et al. | Predictable vFabric on informative data plane | |
JP5065269B2 (ja) | ローカル・エリア・ネットワーク管理 | |
JP2017143336A (ja) | 通信装置及びその制御方法並びにプログラム、並びに通信システム | |
EP3607708B1 (en) | Congestion control in a dual-link arrangement | |
Halepoto et al. | Management of buffer space for the concurrent multipath transfer over dissimilar paths | |
CN111147386B (zh) | 用于处理数据传输拥塞的方法、电子设备和计算机可读介质 | |
JP6973511B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
Kumar et al. | Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol | |
Yedugundla et al. | Probe or Wait: Handling tail losses using Multipath TCP | |
Liu et al. | Experimental comparison of high-speed transmission control protocols on a traffic-driven labeled optical burst switching network test bed for grid applications | |
EP3389206B1 (en) | Multipath error correction | |
Pyk | Multipath TCP: Performance in a LTE Environment | |
Kodama et al. | Dependable communication using multiple network paths on fast long‐distance networks |
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 |