掌桥专利:专业的专利平台
掌桥专利
首页

数据发送的方法和通信装置

文献发布时间:2024-04-18 20:01:55


数据发送的方法和通信装置

本申请涉及通信领域,并且更具体地,涉及一种数据发送的方法和通信装置。

终端极速网络定位可以提供极速的互联体验,是未来终端的底层基础性连接技术。终端极速网络基于移动终端、服务器的主动网络技术的组合技术创新来实现无丢包、超低时延的极致网络体验;未来终端的核心指标之一就是对网络时延的要求极高,低时延成为网络型交互业务的关键点。

目前,利用主动拥塞控制机制,能够保证逐包进行数据发送的调整,保证链路带宽占用上的公平性,不会产生丢包、保证低时延。但是,主动拥塞控制机制需要链路上的设备都支持承诺访问速率(committed access rate,CAR)机制,这在现网条件下难以满足,链路上的部分设备可能不支持CAR机制。网络中如果有无法进行CAR配置的设备,这些设备会出现拥塞,主动拥塞控制机制将失效;除此之外,主动拥塞控制机制无法对中间无CAR配置设备的拥塞产生响应,可能导致时延变大、甚至丢包。

发明内容

本申请实施例提供一种数据发送的方法和通信装置,能够降低数据传输的时延。

第一方面,提供了一种数据发送的方法和通信装置,该方法包括:基于多个往返时间(round-trip time,RTT),确定第一发送速率,该多个RTT包括采用不同发送速率发送的多个第一探测报文的RTT,该第一发送速率为该多个RTT中小于第一预设阈值的RTT对应的发送速率;基于多个丢包速率,确定第二发送速率,该多个丢包速率包括采用不同发送速率发送的多个第二探测报文的丢包速率,该第二发送速率为该丢包速率小于第二预设阈值的丢包速率对应的发送速率;采用第三发送速率发送第三探测报文,该第三探测报文用于确定数据报文的发送间隔,该第三发送速率为该第一发送速率和该第二发送速率中的较小值。

基于上述技术方案,根据多个第一探测报文的往返时间确定其中较小的往返时间对应的第一发送速率,往返时间越小,第一探测报文在传输链路上拥塞的情况就越少,使得传输时延越小;根据第二探测报文的丢包速率确定该第二探测报文的丢包速率较小时对应的第二发送速率,丢包率越小,第一探测报文在传输链路上拥塞的情况就越少,传输时延也会越小;取第一发送速率和第二发送速率的较小值作为发送用于确定数据报文的发送间隔的第三探测报文的发送速率。通过该方法确定探测报文的发送速率,以控制数据报文的发送间隔,能够有效减少传输链路上的拥塞,降低数据传输的时延。

结合第一方面,在第一方面的某些实现方式中,该第一探测报文中包括发送时间信息,该发送时间信息用于指示该第一探测报文的发送时刻;

该RTT是基于一个第一探测报文的该发送时刻和接收时刻确定的,该接收时刻为接 收到第一反馈报文的时刻,该第一反馈报文为该一个第一探测报文对应的反馈报文。

结合第一方面,在第一方面的某些实现方式中,发送该多个第一探测报文中的一个第一探测报文,该一个第一探测报文中包括时间信息,该时间信息用于指示该一个第一探测报文的发送时刻;接收第一反馈报文,该第一反馈报文为该一个第一探测报文的反馈报文,该反馈报文包括该时间信息;基于该发送时刻和该反馈报文的接收时刻,确定该RTT。

基于上述方案,采用第一探测报文可以携带指示其发送时刻的时间信息的方式,接收端接收到第一探测报文后,将发送第一反馈报文,该第一反馈报文中该时间信息,使得发送端接收到由接收端反馈第一反馈报文后,可以确定基于时间信息确定该第一探测报文的发送时刻,从而基于该发送时刻和该第一反馈报文的接收时刻,能够得到RTT。

结合第一方面,在第一方面的某些实现方式中,该方法还包括:接收第二反馈报文,该第二反馈报文为该第三探测报文对应的反馈报文;

其中,该第二反馈报文中包括到达确认(acknowledge,ACK)消息,该ACK消息用于确认在发送该第三探测报文前发送的数据报文是否被成功接收。

基于上述方案,在探测报文中携带数据报文的ACK消息,使得探测报文既可以具有探测路径、确定数据报文的发送间隔的功能又能够携带数据报文的ACK,能够避免接收端返回探测报文以外还需要发送反馈消息,减小了信令开销,提高了资源利用率。还可以实现快速重传,使得无论数据报文是稀疏的还是密集的,且无需等待较长的超时重传时间。

结合第一方面,在第一方面的某些实现方式中,该ACK消息中包括第一数据报文的标识信息和/或第二数据报文的标识信息,其中,该第一数据报文为该第二反馈报文被接收前成功被接收到的最后一个数据报文,该第二数据报文为下一个待被接收的数据报文。

结合第一方面,在第一方面的某些实现方式中,该ACK消息中包括该第二数据报文的标识信息,该方法还包括:

在第一时间间隔前已发送该第二数据报文,且该第一时间间隔小于k倍的第一RTT的情况下,发送下一个待发送的数据报文,其中,该第一RTT为该第三发送速率对应的RTT,0<k≤1;

或者,

在第二时间间隔前已发送该第二数据报文,且该第二时间间隔大于或等于k倍的该第一RTT的情况下,发送该第二数据报文;

或者,

在该第二数据报文未被发送的情况下,发送该第二数据报文。

基于上述方案,第二数据报文可以认为是接收端期待接收到的下一个数据报文,若接收端期望发送端发送的数据报文是已发的数据报文,且发送时间超过一定时间,发送端将再次发送该第二数据报文,可以实现快速重传。若第二数据报文的发送时间未超过一定时间,可以认为第二数据报文还在传输途中未发送至接收端,发送端可以发送下一个待发送的数据报文。若第二数据报文还未被发送,则发送端可以发送接收端期待接收到的该第二数据报文。能够实现快速重传,减小数据传输时延。

结合第一方面,在第一方面的某些实现方式中,该方法还包括:在发送第三数据报文后的一个第一RTT内未接收到第一ACK消息的条件下,发送该第三数据报文,该第一RTT为该第三发送速率对应的RTT,该第一ACK消息用于确认该第三数据报文已被成功 接收。

基于上述方案,若发送端在发送第三数据报文后的一个第三发送速率对应的RTT内未接收到该第三数据报文对应的ACK消息,则发送端再次发送该第三数据报文。能够实现快速重传,减小数据报文的传输时延。

第二方面,提供了一种通信装置,一种设计中,该装置可以包括执行第一方面中所描述的方法/操作/步骤/动作所对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该装置包括:处理单元,用于基于多个往返时间RTT,确定第一发送速率,该多个RTT包括采用不同发送速率发送的多个第一探测报文的RTT,该第一发送速率为该多个RTT中小于第一预设阈值的RTT对应的发送速率;

该处理单元还用于基于多个丢包速率,确定第二发送速率,该多个丢包速率包括采用不同发送速率发送的多个第二探测报文的丢包速率,该第二发送速率为该多个丢包速率中小于第二预设阈值的丢包速率对应的发送速率;

收发单元,用于采用第三发送速率发送第三探测报文,该第三探测报文用于确定数据报文的发送间隔,该第三发送速率为该第一发送速率和该第二发送速率中的较小值。

结合第二方面,在第二方面的某些实现方式中,该第一探测报文中包括发送时间信息,该发送时间信息用于指示该第一探测报文的发送时刻;该RTT是基于一个第一探测报文的该发送时刻和接收时刻确定的,该接收时刻为接收到第一反馈报文的时刻,该第一反馈报文为该一个第一探测报文对应的反馈报文。

结合第二方面,在第二方面的某些实现方式中,该收发单元还用于接收第二反馈报文,该第二反馈报文为该第三探测报文对应的反馈报文;其中,该第二反馈报文中包括到达确认ACK消息,该ACK消息用于确认在发送该第三探测报文前发送的数据报文是否被成功接收。

结合第二方面,在第二方面的某些实现方式中,该ACK消息中包括第一数据报文的标识信息和/或第二数据报文的标识信息,其中,该第一数据报文为该第二反馈报文被接收前成功被接收到的最后一个数据报文,该第二数据报文为下一个待被接收的数据报文。

结合第二方面,在第二方面的某些实现方式中,该ACK消息中包括该第二数据报文的标识信息,

该处理单元还用于在第一时间间隔前已发送该第二数据报文,且该第一时间间隔小于k倍的第一RTT的情况下,发送下一个待发送的数据报文,其中,该第一RTT为该第三发送速率对应的RTT,0<k≤1;或者,

该处理单元还用于在第二时间间隔前已发送该第二数据报文,且该第二时间间隔大于或等于k倍的该第一RTT的情况下,发送该第二数据报文;或者,

该处理单元还用于在该第二数据报文未被发送的情况下,发送该第二数据报文。

结合第二方面,在第二方面的某些实现方式中,该处理单元还用于确定在发送第三数据报文后的一个第一RTT内未接收到第一ACK消息,该第一ACK消息用于确认该第三数据报文已被成功接收,其中,该第一RTT为该第三发送速率对应的RTT;该收发单元还用于发送该第三数据报文。

第三方面,提供了一种通信装置,包括处理器。该处理器可以实现上述第一方面以及第一方面中任一种可能实现方式中的方法。可选地,该通信装置还包括存储器,该处理器 与该存储器耦合,可用于执行存储器中的指令,以实现上述第一方面以及第一方面中任一种可能实现方式中的方法。可选地,该通信装置还包括通信接口,处理器与通信接口耦合。本申请实施例中,通信接口可以是收发器、管脚、电路、总线、模块或其它类型的通信接口,不予限制。

在一种实现方式中,该通信装置为终端设备。当该通信装置为终端设备时,该通信接口可以是收发器,或,输入/输出接口。

在另一种实现方式中,该通信装置为配置于终端设备中的芯片。当该通信装置为配置于终端设备中的芯片时,该通信接口可以是输入/输出接口。

可选地,该收发器可以为收发电路。可选地,该输入/输出接口可以为输入/输出电路。

第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。该处理电路用于通过该输入电路接收信号,并通过该输出电路发射信号,使得该处理器执行第一方面以及第一方面中任一种可能实现方式中的方法。

在具体实现过程中,上述处理器可以为一个或多个芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。

第五方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被运行时,使得计算机执行上述第一方面以及第一方面中任一种可能实现方式中的方法。

第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面中任一种可能实现方式中的方法。

图1是适用于本申请实施例的无线通信系统的传输架构示意图;

图2是双通道主动拥塞控制过程的示意图;

图3是一种TCP重传机制的示意图;

图4是另一种TCP重传机制的示意图;

图5是CAR配置的网络设备传输报文的示意图;

图5A是无CAR配置的网络设备传输报文的示意图;

图6是本申请提出的数据发送的方法的示意性流程图;

图7是本申请实施例提供的数据发送的方法的示意性交互流程图;

图8是本申请实施例提供的通信装置的示意性框图;

图9是本申请实施例提供的通信设备的结构示意图。

下面将结合附图,对本申请中的技术方案进行描述。

本申请实施例的技术方案可以应用于各种通信系统,例如:长期演进(long term evolution,LTE)系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、第五代(5th generation,5G)通信系统、未来的通信系统(如第六代(6th generation,6G)通信系统)、或者多种通信系统融合的系统等,本申请实施例不做限定。其中,5G还可以称为新无线(new radio,NR)。

图1是适用于本申请实施例的无线通信系统100的传输架构示意图。

如图1所示,该无线通信系统100可以包括服务器(server)端110、客户端(client)120以及路由器130。

其中,server端为服务器;client端为移动设备端,可以为终端设备,也可以是个人计算机(personal computer,PC)端。client和server之间的链路通过广域网,中间的路由器为网络设备,网络设备可以是支持承诺访问速率(committed access rate,CAR)机制的设备,也可以是不支持CAR机制的普通设备。只需发送端和接收端的应用层能够按照本申请提出的数据发送的方法进行工作即可,不受网络规模的限制。

本申请实施例提供的技术方案可以应用于各种通信场景,例如可以应用于以下通信场景中的一种或多种:eMBB通信、URLLC、机器类型通信(machine type communication,MTC)、mMTC、设备到设备(device-to-device,D2D)通信、车辆外联(vehicle to everything,V2X)通信、车辆到车辆(vehicle to vehicle,V2V)通信、车到互联网(vehicle to network,V2N)、车到基础设施(vehicle to infrastructure,V2I)、车到行人(vehicle to pedestrian,V2P)、和物联网(internet of things,IoT)等。可选地,mMTC可以包括以下通信中的一种或多种:工业无线传感器网络(industrial wireless sens or network,IWSN)的通信、视频监控(video surveillance)场景中的通信、和可穿戴设备的通信等。

本申请实施例涉及到的终端设备还可以称为终端、UE。终端可以是一种具有无线收发功能的设备。终端可以被部署在陆地上,包括室内、室外、手持、和/或车载;也可以被部署在水面上(如轮船等);还可以被部署在空中(例如飞机、气球和卫星上等)。终端设备可以是用户设备(user equipment,UE)。UE包括具有无线通信功能的手持式设备、车载设备、可穿戴设备或计算设备。示例性地,UE可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑。终端设备还可以是虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city)中的无线终端、和/或智慧家庭(smart home)中的无线终端等等。

本申请实施例涉及到的网络设备包括路由器或基站,可以是一种部署在无线接入网中能够和终端设备进行无线通信的设备。基站可能有多种形式,比如宏基站、微基站、中继站或接入点等。本申请实施例涉及到的基站可以是5G系统中的基站、LTE系统中的基站或其它系统中的基站,不做限制。其中,5G系统中的基站还可以称为发送接收点(transmission reception point,TRP)或下一代节点B(generation Node B,gNB或gNodeB)。其中,基站可以是一体化的基站,也可以是分离成多个网元的基站,不予限制。例如,基站是集中式单元(centralized unit,CU)和分布式单元(distributed unit,DU)分离的基站,即基站包括CU和DU。

在本申请实施例中,“/”可以表示前后关联的对象是一种“或”的关系,例如,A/B 可以表示A或B;“和/或”可以用于描述关联对象存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。为了便于描述本申请实施例的技术方案,在本申请实施例中,可以采用“第一”、“第二”等字样对功能相同或相似的技术特征进行区分。该“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。在本申请实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明,被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

在本申请实施例中,至少一个(种)还可以描述为一个(种)或多个(种),多个(种)可以是两个(种)、三个(种)、四个(种)或者更多个(种),本申请不做限制。

终端极速网络定位可以提供极速的互联体验,是未来终端的底层基础性连接技术。终端极速网络基于移动终端、服务器的主动网络技术的组合技术创新来实现无丢包、超低时延的极致网络体验;未来终端的核心指标之一就是对网络时延的要求极高,低时延成为网络型交互业务的关键点,终端极速网络正是瞄定了这些有极低时延要求的应用场景,提供了一种可能的技术创新方案。

目前,利用主动拥塞控制机制,能够保证逐包进行数据发送的调整,保证链路带宽占用上的公平性,不会产生丢包、保证低时延。但是,主动拥塞控制机制需要链路上的设备都支持承诺访问速率(committed access rate,CAR)机制,这在现网条件下难以满足,链路上的部分设备可能不支持CAR机制。因此,需要一种新的技术方案,来解决现网条件下的双通道传输方式存在的弊端。

为了便于对本申请实施例的理解,对双通道主动拥塞控制机制进行简单介绍。

在双通道主动拥塞控制机制中,报文类型分为探测报文和数据报文两大类。在逻辑上,这两类报文分别占据控制通道和数据通道,用于做拥塞控制和数据发送,此为双通道的含义。物理上,两类报文传输时经过的路径一致。

对于探测报文,大小设置为64字节,数据报文大小假设为1518字节,则探测报文占探测报文和数据报文加总的比例大约为4%。为了简化起见,粗略按照5%的带宽来跑探测报文,95%的带宽来跑数据报文(此处占比为单向的带宽占比)。

如图2所示,出示了双通道主动拥塞控制过程的示意图。整个双通道主动拥塞机制的过程可以概括为逐包的探测及响应数据发送过程,具体步骤包括:

1、发送端探测。

发送端采用期望的目标发送速率发送探测报文,以请求带宽授权。探测报文逐跳经过链路中的网络设备,每个网络设备可以对所有流汇聚(或者称为所有接收端口汇聚)到该网络设备的探测报文进行CAR限速。具体地,发送端对于超出发送端口能力的探测报文进行丢弃,例如,发送端可以按照探测报文占用的带宽不超过发送端口链路总带宽的5%,对探测报文进行丢弃。换言之,探测报文的去程过程中网络设备会对探测报文进行限速。

2、接收端反弹探测。接收端会把收到的所有探测报文反弹(返回)给发送端,即接收端会向发送端发送接收到的探测报文。其中,探测报文的回程过程中网络设备不会对探测报文进行限速。发送端接收到返回的探测报文后,可以基于探测报文的丢包速率,确定 链路授权的带宽。其中,丢包速率用于表征单位时间内丢包的个数。

3、发送端发送数据。发送端根据收到的探测报文进行数据发送。每收到一个探测报文,发送端将立刻发出一个对应的数据报文。

通过上述双通道主动拥塞控制,发送端先发送一次探测报文,通过接收到的该探测报文,使得发送端可以得到较精确的网络设备分配给每个数据流的逐包发送间隔。

主动拥塞控制机制需要中间所有网络设备(网络节点)对去程探测报文做CAR的配置。网络中如果有无法进行CAR配置的设备,并且这些设备会出现拥塞,主动拥塞控制机制将失效;除此之外,主动拥塞控制机制无法对中间无CAR配置设备的拥塞产生响应,可能导致时延变大、甚至丢包。

在现有技术中,采用传输控制协议(transmission control protocol,TCP)重传技术进行数据报文的重传,为了便于对本申请实施例的理解,对该技术进行简单介绍。

如图3所示,出示了一种TCP重传机制的示意图。数据报文的到达确认(acknowledgement,ACK)是对收到的数据报文的最高序列号的确认,并且服务器端(接收端)向客户端(发送端)返回下一次期望接收的数据报文的序列号(number)。假设起始时刻客户端向服务器端发送数据报文的数量为零。当客户端向服务器端发送了长度为669字节的报文,服务器端收到后,会回复一个携带序列号为670的确认消息,表示服务器端已收到669及之前的字节序列。之后,当客户端收到该确认消息后,向服务器端发送序列号为670的数据报文,长度为1460字节,服务器端收到后会根据接收到的数据报文,向客户端回复一个携带序列号为2130的确认消息,表示服务器端已收到2129及之前的字节序列。之后,当客户端收到该确认消息后,向服务器端发送序列号为2130的数据报文,长度为1460字节,服务器端收到后会根据接收到的数据报文,向客户端回复一个携带序列号为3590的确认消息,表示服务器端已收到3589及之前的字节序列。整个过程以此往复,直到TCP断开连接。

应理解,在TCP提供的确认机制中,在通信过程中可以对每一个数据报文发送单独的确认消息,也可以不对每一个数据报文发送单独的确认消息,即可以一次确认多个数据报文。例如,若接收端依次收到了序列号分别为201、301和401的数据报文,则可以只需对序列号为401的数据报文进行确认即可,对401的数据报文的确认也意味着序列号为401之前的数据报文都已经确认收到,因此,可以提高网络的利用率和传输效率。

如图4所示,出示了另一种TCP重传机制的示意图。针对每一个数据报文发送单独的确认消息或针对多个数据报文发送确认消息。

在快速重传机制中,服务器端如果收到序列号乱序的数据报文,也给客户端回复ACK,只不过是重复的ACK。例如,当服务器端收到乱序的数据报文的序列号分别为4、6、7、8、9时,服务器端重复发送ACK=5。使得客户端能够基于ACK=5,确定序列号为5的数据报文发生了空缺,换言之,服务器端没有收到序列号为5的数据报文。一般来说,如果客户端连续三次收到重复的ACK,就会重传对应数据报文。

在TCP的快速重传机制中,客户端需要连续三次收到重复的ACK才会触发超时重传机制。而每一次的重复ACK触发都需要收到后续数据报文。这种情况下,当发送的是稀疏报文时,快速重传机制会失效。例如,客户端依次发送序列号为5和6的数据报文,序列号为5的数据报文发送后,可能隔很久才会发送序列号为6的数据报文,只有在服务器 端收到序列号为6的数据报文且没有收到序列号为5的数据报文时,服务器端才会重复发送ACK=5,导致客户端重传序列号为5的数据报文的时延太大。

在超时重传机制则中,每个数据包都有相应的计时器,一旦超过超时重传机制(retransmission timeout,RTO)而没有收到ACK,就重发该数据报文。没收到ACK的数据报文都会存在重传缓冲区里,等到收到ACK后,就从缓冲区里删除。RTO的最小值建议是1秒,最大值必须大于60秒。

在超时重传机制中,超时重传的时间太长,会对报文的时延产生非常大的影响,对于时延敏感型报文不利。

双通道主动拥塞控制机制需要中间所有网络设备对去程探测报文做CAR的配置。现网中目前无法做到所有的设备都支持CAR配置。在这种限制下,网络中无法支持主动拥塞控制机制的网络设备可能会产生拥塞,导致主动拥塞机制的失效。由于主动拥塞控制机制无法对中间无CAR配置的设备的拥塞产生响应,导致时延变大、甚至丢包。而当前的TCP重传技术也存在着拥塞控制的效果不够明显,对稀疏数据和时延敏感型数据不友好等问题。

为此,本申请实施例提出了一种数据发送的方法,能够降低数据传输的时延。

为了便于理解,对CAR配置的网络设备和无CAR配置的网络设备进行简单介绍。

图5为CAR配置的网络设备传输报文的示意图。如图5所示,CAR配置的网络设备可以区分探测报文和数据报文两种报文类型,对于探测报文,当其占链路的带宽超过链路最大带宽的5%时,网络设备会随机丢弃探测报文,使得探测报文经过CAR配置的网络设备时,其占用带宽不会超过链路最大带宽的5%;对于数据报文,发送端在接收到一个探测报文后发送一个数据报文,能够实现数据报文不占用网络设备的缓存区,一定可以直接被网络设备发送。图5A为CAR配置的网络设备传输报文的示意图。无CAR配置的网络设备可以称为普通网络设备,如图5A所示,无CAR配置的网络设备不会区分这两种报文,当普通设备接收报文的速率大于发送速率时,会将接收到的报文存储至该网络设备的缓冲区,导致探测报文的往返时间增大,严重时会产生拥塞。

当传输的链路上同时存在CAR配置的网络设备和无CAR配置的网络设备时,发送端仅根据基于CAR的主动拥塞控制机制,无法判断因无CAR配置的网络设备拥塞导致的报文丢包,不能对其做出响应,将会造成大量的丢包,使得数据传输时延增大。

因此,本申请引入主动与被动拥塞控制结合的机制,被动拥塞控制根据来回的探测报文的往返时间(round-trip time,RTT)进行作用,主动的拥塞控制机制根据CAR配置的网络设备限速丢包来进行。两者都会估算出一个发送速率,这时候,取两者中较小的发送速率作为实际的数据报文的发送速率,即可避免普通网络设备拥塞造成的影响,同时适应CAR配置的网络设备。

本申请实施例适用于发送端和接收端之间的网络设备都为CAR配置的网络设备,也适用于发送端和接收端之间的网络设备部分为CAR配置的网络设备、部分为无CAR配置的网络设备,还适用于发送端和接收端之间的网络设备都为无CAR配置的网络设备。

图6为本申请提出的数据发送的方法的示意性流程图。本申请实施例中的发送端为客户端,可以为终端设备;接收端为服务器端,可以为网络设备。

610,发送端可以基于多个往返时间(round-trip time,RTT),确定第一发送速率, 该多个RTT包括采用不同发送速率发送的多个第一探测报文的RTT,该第一发送速率为该多个RTT中小于第一预设阈值的RTT对应的发送速率。

具体而言,发送端可以根据RTT的变化,调整发送第一探测报文的发送速率。第一探测报文的往返时间越长,说明发送端和接收端之间用于传输第一探测报文的网络设备中的拥堵情况越严重,第一探测报文的往返时间越短,说明发送端和接收端之间用于传输第一探测报文的网络设备中的拥堵情况越少。

可选的,该第一探测报文中包括发送时间信息,该发送时间信息用于指示该第一探测报文的发送时刻,RTT是基于一个第一探测报文的发送时刻和接收时刻确定的,该接收时刻为接收到第一反馈报文的时刻,该第一反馈报文为该一个第一探测报文对应的反馈报文。

发送端发送的第一探测报文可以包括时间信息,该时间信息用于指示发送端发送该第一探测报文的发送时刻,第一探测报文经过链路传输被接收到后,可以由接收端向发送端发送第一反馈报文。该第一反馈报文可以是该第一探测报文,或者该第一反馈报文可以包括该第一探测报文中的信息,如第一探测报文的时间信息,以及该第一反馈报文还可以包括其他由接收端向发送端发送的信息,如下文中可选实施方式中的ACK消息。但本申请不限于此。

发送端接收到该第一反馈报文后,发送端可以根据接收到该第一反馈报文中的时间信息,确定该第一反馈报文对应的第一探测报文的发送时刻,再根据接收到第一反馈报文的接收时刻,可以确定该第一探测报文对应的往返时间RTT。该RTT为接收时刻与发送时刻之间的时间差。

其中,第一探测报文中的时间信息可以称为时间戳。

发送端也可以采用其他方式确定第一探测报文的RTT。例如,发送端在利用第三发送速率向接收端发送第一探测报文时,记录该第一探测报文的发送时间,发送端接收到接收端返回的该第一探测报文的第一反馈报文时,记录该第一反馈报文的接收时间,利用记录的该第一反馈报文的接收时间减去记录的该第一探测报文的发送时间,便可得到利用第三发送速率发送第一探测报文的RTT。本申请对此不做具体限定。

发送端可以基于该多个RTT,确定第一发送速率。例如,发送端可以基于该多个RTT,采用瓶颈带宽和往返传播时间(bottleneck bandwidth and round-trip propagation time,BBR)算法等基于时延的拥塞控制速率调整算法,确定第一发送速率。发送端基于该多个RTT确定探测报文的第一发送速率的方式可以称为被动拥塞控制,但本申请不限于此。

620,该发送端可以基于多个丢包速率,确定第二发送速率,该多个丢包速率包括采用不同发送速率发送的多个第二探测报文的丢包速率,该第二发送速率为该丢包速率小于第二预设阈值的丢包速率对应的发送速率。

应理解,发送端发送该多个第二探测报文的多个不同发送速率可以与发送第一探测报文的多个不同发送速率相同,发送第二探测报文的多个不同发送速率也可以与发送第一探测报文的多个不同发送速率不同,本申请对此不做限定。

具体而言,发送端可以根据第二探测报文的丢包速率对发送第二探测报文的发送速率进行调整,调整的目的是发送端使发送的第二探测报文维持一个较低的丢包速率。

其中,第二探测报文的丢包速率是指第二探测报文在单位时间内的丢包的个数。

例如,该发送端发送第二探测报文的发包速率(即发送速率)为400Mbps,该发送端 根据接收到的第二探测报文,可以确定第二探测报文的丢包速率为500Kbps。发送端还可以基于该方式确定采用其他发送速率发送的第二探测报文的丢包速率,从而获取到不同发送速率发送的多个第二探测报文的丢包速率,并在该多个丢包速率中确定小于第二预设阈值的丢包速率,基于该小于第二预设阈值的丢包速率,确定该丢包速率对应的第二探测报文的发送速率为第二发送速率。

需要说明的是,本申请对发送端执行上述步骤610与620的先后顺序不做限定,步骤610可以在步骤620之前执行,也可以在步骤620之后执行,或者可以同时执行。

630,发送端采用第三发送速率发送第三探测报文,该第三探测报文用于确定数据报文的发送间隔,该第三发送速率为该第一发送速率和该第二发送速率中的较小值。

发送端在步骤610中基于被动拥塞控制机制,确定第一发送速率,以及在步骤620中基于主动拥塞控制机制,确定第二发送速率后,发送端可以比较第一发送速率和第二发送速率的大小,将该第一发送速率和该第二发送速率中的较小值确定为第三发送速率,用于发送第三探测报文。

需要说明的是,本申请中的第一探测报文、第二探测报文和第三探测报文可以为相同的探测报文,也可以为不同的探测报文,本申请对此不做限定。但是,第一探测报文和第二探测报文用于确定发送第三探测报文的发送速率,而第三探测报文用于确定发送数据报文的发送间隔。

接收端接收到发送端发送的第三探测报文后,会向该发送端返回该第三探测报文对应的第二反馈报文;该发送端接收返回的该第二反馈报文,并立刻向该接收端发送一个待发送的数据报文,其中,该第二反馈报文可以是第三探测报文本身,或者,该第二反馈报文可以包括该第三探测报文中的信息,如第三探测报文的时间信息,以及该第二反馈报文还可以包括其他由接收端向发送端发送的信息,如下文中可选实施方式中的ACK消息。但本申请不限于此。

也就是说,返回的第二反馈报文用于触发发送端发送数据报文,发送端每接收到一个第二反馈报文,就会向接收端发送一个数据报文。从而实现由第三探测报文探测往返路径之后控制数据报文的发送间隔。

可选的,该第二反馈报文中包括确认(acknowledge,ACK)消息,该ACK消息用于确认在发送该第二反馈报文前发送的数据报文是否被成功接收。

发送端接收到该第二反馈报文,可以确定已被成功接收的数据报文。

在该第二反馈报文中携带数据报文的ACK消息,发送端可以快速确定未被成功接收的数据报文,可以实现数据报文的快速重传,无论数据报文是稀疏的还是密集的,且无需等待较长的超时重传时间,能够减小数据报文的传输时延。

可选地,该ACK消息中包括第一数据报文的标识信息和/或第二数据报文的标识信息,其中,该第一数据报文为所述第二反馈报文被接收前成功被接收到的最后一个数据报文,该第二数据报文为下一个待被接收的数据报文。

其中,第二数据报文可以称为接收端期待接收到的下一个数据报文。

作为示例非限定,数据报文的标识信息可以是数据报文的序列号。

例如,发送端依次向接收端发送了序列号分别为101、102和103的数据报文,若接收端接收到了序列号为101、102和103的数据报文,则接收端向发送端发送第二反馈报 文中可以包括序列号为101、102和103的数据报文的ACK消息。比如,若发送端发送的数据报文的序列号为递增的,接收端向发送端发送的第二反馈报文中可以仅包括序列号103,表示序列号为103以及序列号为103之前的数据报文都已接收到。

可选的,发送端发送第三数据报文,若发送端确定在发送第三数据报文后的一个第一RTT内未接收到第一ACK消息,该发送端发送所述第三数据报文。其中,所述第一ACK消息用于确认所述第三数据报文已被成功接收,所述第一RTT为所述第三发送速率对应的RTT。

也就是说,若发送端在第三发送速率对应的一个RTT内没有接收到已发送的数据报文的ACK消息,则该发送端重新发送该已发送的数据报文。

例如,发送端发送了序列号为105的数据报文,但是在发送序列号为105的数据报文之后的第一RTT内没有收到相应的ACK消息,发送端可以认为序列号为105的该数据报文发送失败,则发送端重新发送序列号为105的该数据报文。

可选的,第三数据报文为高优先级数据报文。

例如,可以基于数据报文的时延需求、可靠性需求等,将数据报文划分为多个优先级,第三数据报文可以是时延要求较高的高优先级数据报文,发送端在发送第三数据报文后,若在一个第一RTT内未接收到承载第一ACK消息的探测报文,则发送端再次发送该第三数据报文。能够减小第三数据报文传输的时延,以满足该第三数据报文的时延需求。

目前的超时重传机制中,发送端在发送一个数据报文后,若在预设的超时重传的时间内未接收到相应的ACK消息,则发送端再次发送该数据报文。该超时重传时间为预设的或者说预配置于发送端的,无法基于链路传输情况进行调整,因此一般会将该超时重传时间设置为一个普适的较大的时长。而本申请基于链路传输情况,具体地基于探测报文的RTT,确定重传时间,能够减小数据报文重传的时延。

在具体实施中,第二反馈报文中的ACK消息包括第二数据报文的标识信息时,发送端根据ACK消息中的第二数据报文的标识信息,可以确定接收到期待接收到的下一个数据报文为第二数据报文。本申请实施例提供的数据发送方法还可以包括以下可选实施方式。

可选的,发送端确定在第一时间间隔前已发送该第二数据报文,且该第一时间间隔小于或等于k倍的第一RTT,其中,该第一RTT为第三发送速率对应的RTT,0<k≤1。发送端发送下一个待发送的数据报文。

也就是说,发送端可以确定距离第二数据报文的时长为第一时间间隔,发送端比较第一时间间隔与k倍的第一RTT的大小,若该第一时间间隔小于或等于k倍的第一RTT,则可以认为第二数据报文处于正常数据传输过程中,可以发送下一个数据报文。

例如,该第一RTT为T,k可以为0.5,发送端可以确定第二数据报文已发送的时长为T1,则发送端比较T1与0.5T的大小,即发送端比较T1与第三探测报文的半程传输时间的大小,如T1小于或等于0.5T,则可以认为该第二数据报文还在链路中传输,未传输至接收端,一段时间后可以传输至接收端,因此,发送端可以发送下一个数据报文。

可选的,发送端确定在第二时间间隔前已发送该第二数据报文,且该第二时间间隔大于或等于k倍的第一RTT,0<k≤1,发送端发送该第二数据报文。

也就是说,发送端可以确定距离第二数据报文的时长为第二时间间隔,发送端比较第二时间间隔与k倍的第一RTT的大小,若该第一时间间隔大于或等于k倍的第一RTT, 则可以认为第二数据报文未被接收到成功接收,则发送端可以再次发送第二数据报文。能够实现快速重传,减小报文的传输时延。

可选的,发送端确定该第二数据报文未被发送,发送端发送该第二数据报文。

发送端确定接收端期待接收到的第二数据报文还未被发送,则发送端发送该第二数据报文。

图7为本申请实施例的数据发送的方法的示意性交互流程图。在图7所示的实施例中,以发送端为客户端,接收端为服务器端为例进行说明。

710,客户端以第三发送速率发送多个第三探测报文,并发送了序列号为105的数据报文;

720,该服务器端接收来自该客户端的一个第三探测报文(可以记作第三探测报文1),并向该客户端返回该第二反馈报文1,该第二反馈报文1为该第三探测报文1对应的反馈报文,返回的该第二反馈报文1中包括数据报文的序列号106;

其中,该序列号为106的数据报文为该服务器端期望接收到的下一个数据报文。

730,该客户端接收该服务器端返回的第二反馈报文1,并根据该第二反馈报文1中数据报文的序列号,确定服务器端期待接收到的下一个数据报文是序列号为106的数据报文;

客户端可以判断是否发送序列号为106的数据报文。客户端确定没有发送过序列号为106的数据报文,则该客户端发送序列号为106的数据报文。740,该服务器端接收到该客户端发送的另一个第三探测报文(可以记作第三探测报文2),并向该客户端返回该第三探测报文2对应的第二反馈报文2,该第二反馈报文2中包括报文的序列号106;

也就是说,服务器端期望接收到的下一个数据报文的序列号仍为106。

750,客户端接收该第二反馈报文2,并根据该第二反馈报文2中数据报文的序列号,确定服务器端期待接收到的下一个数据报文是序列号为106的数据报文;

客户端可以判断是否发送该序列号为106的数据报文。客户端确定已在时间间隔A前发送过该序列号为106的数据报文。则客户端比较该时间间隔A与0.5T的大小,其中,T为该第三探测报文的RRT。即本实施例中k=0.5,但本申请不限于此。

若该时间间隔A小于或等于0.5T,则客户端发送下一个待发送的数据报文;

若该时间间隔A大于0.5T,则客户端再次发送该序列号为106的数据报文。

在本申请实施例的技术方案中,发送端根据第一探测报文的往返时间确定往返时间较小的该第一探测报文的对应的第一发送速率,往返时间越小,第一探测报文在传输链路上拥塞的情况就越少,即传输时延越小。发送端还根据第二探测报文的丢包速率确定较小的丢包速率对应的第二发送速率,丢包率越小,第二探测报文在传输链路上拥塞的情况就越少,传输时延也会越小。发送端可以取第一发送速率和第二发送速率的最小值作为发送用于确定数据报文的发送间隔的第三探测报文的第三发送速率,能够有效减少传输链路上的拥塞,降低数据传输的时延。

以上,结合图6和图7详细说明了本申请实施例提供的方法。以下说明本申请实施例提供的装置。为了实现上述本申请实施例提供的方法中的各功能,各网元可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式 来执行,取决于技术方案的特定应用和设计约束条件。

图8是本申请实施例提供的通信装置的示意性框图。如图8所示,该通信装置800可以包括处理单元810和收发单元820。

该通信装置800可对应于上文方法实施例中的发送端,或者配置于(或用于)发送端中的芯片,或者其他能够实现发送端的方法的装置、模块、电路或单元等。

应理解,该通信装置800可对应于根据本申请实施例的方法600中的发送端,该通信装置800可以包括用于执行图6、图7中的方法中发送端执行的方法的单元。并且,该通信装置800中的各单元和上述其他操作和/或功能分别为了实现图6、图7中的方法的相应流程。

还应理解,该通信装置800为配置于(或用于)发送端中的芯片时,该通信装置800中的收发单元820可以为芯片的输入/输出接口或电路,该通信装置800中的处理单元810可以为芯片中的处理器。

应理解,该通信装置800中的收发单元820为可通过通信接口(如收发器或输入/输出接口)实现,例如可对应于图9中示出的通信设备800中的收发器910。该通信装置800中的处理单元810可通过至少一个处理器实现,例如可对应于图9中示出的通信设备900中的处理器920。该通信装置800中的处理单元810还可以通过至少一个逻辑电路实现。

还应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。

图9是本申请实施例提供的通信设备900的结构示意图。该通信设备900可应用于如图1所示的系统中,执行上述方法实施例中发送端的功能。如图所示,该通信设备900包括处理器920和收发器910。可选地,该通信设备900还包括存储器。其中,处理器920、收发器910和存储器之间可以通过内部连接通路互相通信,传递控制和/或数据信号。该存储器用于存储计算机程序,该处理器920用于执行该存储器中的该计算机程序,以控制该收发器910收发信号。

上述处理器920可以和存储器可以合成一个处理装置,处理器920用于执行存储器中存储的程序代码来实现上述功能。具体实现时,该存储器也可以集成在处理器920中,或者独立于处理器920。该处理器920可以与图8中的处理单元对应。

上述收发器910可以与图8中的收发单元对应。收发器910可以包括接收器(或称接收机、接收电路)和发射器(或称发射机、发射电路)。其中,接收器用于接收信号,发射器用于发射信号。

应理解,图9所示的通信设备900能够实现图6、图7所示方法实施例中涉及发送端的过程。通信设备900中的各个模块的操作和/或功能,分别为了实现上述方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。

上述处理器920可以用于执行前面方法实施例中描述的由发送端内部实现的动作,而收发器910可以用于执行前面方法实施例中描述的发送端向接收端发送或从接收端接收的动作。具体请见前面方法实施例中的描述,此处不再赘述。

可选地,上述通信设备900还可以包括电源,用于给发送端中的各种器件或电路提供电源。

除此之外,为了使得发送端的功能更加完善,该通信设备900还可以包括输入输出装 置,如包括输入单元、显示单元、音频电路、摄像头和传感器等中的一个或多个,所述音频电路还可以包括扬声器、麦克风等。

本申请实施例还提供了一种处理装置,包括处理器和(通信)接口;所述处理器用于执行上述任一方法实施例中的方法。

应理解,上述处理装置可以是一个或多个芯片。例如,该处理装置可以是现场可编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。

根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码由一个或多个处理器执行时,使得包括该处理器的装置执行图6、图7所示实施例中的方法。

本申请实施例提供的技术方案可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端设备、核心网设备、机器学习设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质等。

根据本申请实施例提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该程序代码由一个或多个处理器运行时,使得包括该处理器的装置执行图6、图7所示实施例中的方法。

根据本申请实施例提供的方法,本申请还提供一种系统,其包括前述的一个或多个发送端。还系统还可以进一步包括前述的一个或多个接收端。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116566202