CN113746743A - 一种数据报文传输方法及装置 - Google Patents
一种数据报文传输方法及装置 Download PDFInfo
- Publication number
- CN113746743A CN113746743A CN202010478243.1A CN202010478243A CN113746743A CN 113746743 A CN113746743 A CN 113746743A CN 202010478243 A CN202010478243 A CN 202010478243A CN 113746743 A CN113746743 A CN 113746743A
- Authority
- CN
- China
- Prior art keywords
- congestion
- network device
- data
- data stream
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- 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
-
- 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
-
- 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
Abstract
本申请实施例公开了一种数据报文传输方法及装置,该方法包括第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态;当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识,第一标识用于标识第一网络设备处于稳定拥塞;或者,当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识,第二标识用于标识第二网络设备处于非稳定拥塞,其中,第一标识和第二标识不同。
Description
技术领域
本申请实施例涉及通信领域,尤其涉及一种数据报文传输方法及装置。
背景技术
传统的数据网络中以丢包作为网络拥塞信号进行拥塞控制,例如传输控制协议(transmission control protocol,TCP)拥塞控制算法的慢启动阶段和拥塞避免阶段会尽量快速的增加发送窗口,不断试探网络容量,直到发生丢包信号时,才进行窗口回退。但TCP拥塞控制机增长窗口数量(发送窗口数量CWND>网络带宽C*往返时延(round-trip time,RTT)的同时,也带来了一些问题,比如时延增加、尾丢弃带来的TCP全局同步等。
为此,使用显示拥塞通知(explicit congestion notification,ECN)作为网络拥塞信号的数据中心TCP(data center TCP,DCTCP)技术应运而生。DCTCP技术是在作为拥塞点的网络设备的队列长度超过阈值时,该网络设备按概率对之后进入队列的数据报文的IP头部的ECN字段进行ECN标记,指示该数据报文经历拥塞;接收端根据数据报文IP头部的ECN字段,将ACK报文中TCP头部的ECN也进行标记后通知发送端,发送端每个RTT统计收到的ACK报文中打了ECN标记的报文比例,根据该比例对发送窗口(RRT内发送数据报文的数量)进行调节,避免了盲目的根据丢包大比例降窗,导致吞吐率剧烈抖动。DCTCP使用ECN做为拥塞控制信号,可以缓解突发行为获得较小的缓存使用,时延低;另外,发送端通过ECN标记比例做拥塞控制,发送窗口的变化可伸缩,可以获得较高的吞吐率。但若在DCTCP中简单的给新流保护不进行拥塞控制,在队列真正拥塞时,新流会抢占带宽造成拥塞加剧。
因此,在拥塞控制时平衡新流性能以及网络性能成为亟待解决的问题。
发明内容
本申请实施例提供一种数据报文传输方法及装置,在拥塞控制时平衡新流性能以及网络性能。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种数据报文传输方法,该方法可以包括:第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态;当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识,第一标识用于标识第一网络设备处于稳定拥塞;或者,当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识,第二标识用于标识第二网络设备处于非稳定拥塞,其中,第一标识和第二标识不同。
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
其中,非稳定拥塞可以为预设时长内,网络设备的队列长度虽然出现了拥塞现象(队列长度处于拥塞区间),但拥塞情况持续时间短,网络设备的队列并未满载,网络设备的能力可以支持该队列长度,即使队列长度继续增加,并不会导致网络设备的性能急剧下降的一种拥塞状态。
稳定拥塞可以为预设时长内,网络设备的队列长度出现拥塞现象(队列长度处于拥塞区间)的时间长,网络设备的队列已满载,如果队列长度继续增加,网络设备的性能急剧下降的一种拥塞状态。
结合第一方面,在一种可能的实现方式中,第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态,具体可以包括:若该预设时长内,该队列的长度处于拥塞区间的时长小于第一时长,确定第一网络设备的拥塞状态为非稳定拥塞;或,若该预设时长内,队列的长度处于第一区间的时长大于第二时长,确定第一网络设备的拥塞状态为稳定拥塞。第二时长大于或等于第一时长。在该实现方式中,提供了不同拥塞状态的判断标准。
其中,拥塞区间是根据拥塞阈值确定的用于判断是否拥塞的队列长度区间,当队列长度处于(大于或等于区间下限,小于或等于区间上限)拥塞区间时,可以认为出现了拥塞现象。拥塞区间可以包含拥塞阈值,或者,拥塞区间的下限可以大于或等于拥塞阈值,或者,可以根据实际需求按照拥塞阈值确定拥塞区间的范围。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的方法还包括:第一网络设备向第二网络设备发送第一拥塞信息,该第一拥塞信息用于指示第一网络设备的拥塞状态;第二网络设备为数据报文的接收端设备的上一级网络设备。以实现指示该网络设备根据该第一拥塞信息确定新流的发送窗口数,以兼容源端设备不支持ECN的场景。
例如,该网络设备可以为接入点(access point,AP)设备。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识可以用于指示对接收的第一数据流增加发送窗口数;第二标识可以用于指示对第一数据流降低或保持发送窗口数。其中,第一数据流可以为满足预设条件的数据流。第一数据报文和第二数据报文可以属于第一数据流,也可以不属于第一数据流。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识还可以用于指示对第二数据流降低发送窗口数,第一数据流为满足预设条件的第二数据流之外的数据流,第二数据流为第一网络设备正在传输的数据流。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括第一数据报文或第二数据报文所属的数据流。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识可以添加在网络协议(internet protocol,IP)头。
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一网络设备可以可以为拥塞点设备。
第二方面,本申请提供另一种数据报文传输方法,该方法可以包括:第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态可以包括稳定拥塞和非稳定拥塞;若该拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数;若该拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。
通过本申请提供的数据报文传输方法,根据预设时长内拥塞点设备的拥塞状态,在不同的拥塞状态下采用不同的方案确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低或保持第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
结合第二方面,在一种可能的实现方式中,稳定拥塞可以为预设时长内,拥塞点设备的队列的长度存在处于拥塞区间的时长小于第一时长;或,稳定拥塞可以为预设时长内,拥塞点设备的队列的长度处于拥塞区间的时长大于第二时长。在该实现方式中,提供了不同拥塞状态的判断标准。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备为该数据报文的接收端设备的上一级网络设备。第二网络设备确定该数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备从拥塞点设备接收第一拥塞信息,该第一拥塞信息可以用于指示该拥塞点设备的拥塞状态。相应的,本申请提供的方法还可以包括:第二网络设备向该数据报文的发送端设备发送第一数据流的发送窗口数。在该实现方式中,由接收端设备的上一级网络设备根据第一拥塞信息确定拥塞点设备的拥塞状态,进而确定第一数据流的发送窗口数,将确定的第一数据流的发送窗口数提供给数据报文的发送端设备,以兼容源端设备不支持ECN的场景。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备从拥塞点设备接收的第一拥塞信息,可以为拥塞点设备向第二网络设备发送的专用信令。例如,该专用信令可以为采用私有协议的控制报文。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备可以为该数据报文的发送端设备,第二网络设备确定该数据报文传输路径上的拥塞点设备的拥塞状态,可以包括:第二网络设备接收该数据报文的确认字符(acknowledgement,ACK)报文,该ACK报文的报文头中携带用于指示该拥塞点设备的拥塞状态的第二拥塞信息。
其中,ACK报文由该数据报文的接收端设备在接收到数据报文后发送。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一数据流可以为满足预设条件的数据流。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,该预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,携带于ACK报文中的第二拥塞信息,可以为数据报文的接收端设备根据数据报文中的标识,在ACK报文中设置的标识。例如,携带于ACK报文中的第二拥塞信息,可以为用于标识拥塞点设备处于非稳定拥塞的第三标识,或,用于标识拥塞点设备处于稳定拥塞的第四标识。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,ACK报文的ECN报文头中可以携带第二拥塞信息。
其中,当数据报文传输路径中的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞,该数据报文中可以携带第一标识,第一标识用于标识拥塞点设备处于非稳定拥塞;当数据报文传输路径中的拥塞点设备在预设时长内的拥塞状态为稳定拥塞,该数据报文中可以携带第二标识,第二标识用于标识拥塞点设备处于稳定拥塞。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备降低第一数据流的发送窗口数,可以根据DCTCP机制的方案实现。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备增加或保持第一数据流的发送窗口数,可以根据爬窗机制的方案实现。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的数据报文传输方法还可以包括:第二网络设备在确定拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,第二网络设备还可以降低第二数据流的发送窗口数,第二数据流为第一网络设备正在传输的数据流。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备降低第二数据流的发送窗口数,可以根据DCTCP机制的方案实现。
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括上述所发送的数据报文所属的数据流。
第三方面,本申请提供再一种报文传输方法,该方法可以包括:第三网络设备接收数据报文;若该数据报文中标记了第一标识,第三网络设备在该数据报文的ACK报文中标记第三标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞;或者,若该数据报文中标记了第二标识,第三网络设备在该数据报文的ACK报文中标记第四标识;其中,第二标识及第四标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞;第三网络设备向该数据报文的发送端设备发送标记后的ACK报文。
通过本申请提供的数据报文传输方法,第三网络设备根据数据报文传输路径上拥塞点设备在预设时长内的拥塞状态,在不同的拥塞状态下对数据报文的ACK报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识及第三标识可以用于指示对第一数据流增加发送窗口数;第二标识及第四标识可以用于指示对第一数据流降低或保持发送窗口数。其中,第一数据流为满足预设条件的数据流。
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识或第三标识或第四标识还可以用于指示对第二数据流降低发送窗口数,第一数据流为满足预设条件的第二数据流之外的数据流,第二数据流为第一网络设备正在传输的数据流。
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括上述接收的数据报文所属的数据流。
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识可以添加在IP报文头中,第三标识或第四标识可以添加在TCP报文头中。
需要说明的是,上述第一方面、第二方面及第三方面提供的数据报文传输方法的具体实现,可以相互参考,不再一一赘述。
第四方面,本申请提供一种数据报文传输装置,该装置可以部署于第一网络设备,或与第一网络设备匹配。该装置可以包括确定单元及处理单元。其中:
确定单元用于根据预设时长内队列长度,确定第一网络设备的拥塞状态。
处理单元用于当确定单元确定第一网络设备的拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,该第一标识用于标识第一网络设备处于非稳定拥塞。
或者,处理单元用于当确定单元确定第一网络设备的拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,该第二标识用于标识第一网络设备处于稳定拥塞。其中,第一标识和第二标识不同。
需要说明的是,第四方面的各个单元具体实现同第一方面的方法描述,这里不再赘述。
第五方面,本申请提供另一种数据报文传输装置,该装置可以部署于第二网络设备,或与第二网络设备匹配。该装置可以包括确定单元及处理单元。其中:
确定单元用于确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态包括稳定拥塞和非稳定拥塞。
处理单元用于若确定单元确定的该拥塞状态为非稳定拥塞,对第一数据流增加发送窗口数。
或者,该处理单元还用于若确定单元确定的该拥塞状态为稳定拥塞,对第一数据流降低或保持发送窗口数。
需要说明的是,第五方面的各个单元具体实现同第二方面的方法描述,这里不再赘述。
第六方面,本申请提供再一种报文传输装置,该装置可以部署于第三网络设备,或与第三网络设备匹配。该装置可以包括:接收单元、处理单元及发送单元。其中,
接收单元用于接收数据报文。
处理单元用于若该数据报文中标记了第一标识,在该数据报文的ACK报文中标记第三标识;或者,若该数据报文中标记了第二标识,在该数据报文的ACK报文中标记第四标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。第二标识及第四标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。
发送单元用于向该数据报文的发送端设备发送标记后的ACK报文。
需要说明的是,第六方面的各个单元具体实现同第三方面的方法描述,这里不再赘述。
第七方面,本申请提供了一种网络设备,该网络设备可以实现上述所述第一方面至第三方面中任一方面描述的方法示例中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该网络设备可以以芯片的产品形态存在。
结合第七方面,在一种可能的实现方式中,该网络设备的结构中包括处理器和收发器,该处理器被配置为支持该网络设备执行上述方法中相应的功能。该收发器用于支持该网络设备与其他设备之间的通信。该网络设备还可以包括存储器,该存储器用于与处理器耦合,其保存该网络设备必要的程序指令和数据。
第八方面,提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面或其任一种可能的实现方式提供的数据报文传输方法。
第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面或其任一种可能的实现方式提供的数据报文传输方法。
第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中相应的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第十一方面,本申请提供一种数据报文传输系统,该系统包括第一方面的第一网络设备、第二方面的第二网络设备和第三方面的第三网络设备,分别具备上述各个方面以及任一可能的实现方式的功能。
其中,需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。
附图说明
图1为本申请实施例提供的一种数据网络的结构示意图;
图2为本申请实施例提供的一种网络设备的结构示意图;
图3为本申请实施例提供的一种数据报文传输方法的流程示意图;
图4为本申请实施例提供的一种队列长度与拥塞阈值、拥塞区间的对比示意图;
图5为本申请实施例提供的一种第一网络设备的结构示意图;
图6为本申请实施例提供的另一种数据报文传输方法的流程示意图;
图7为本申请实施例提供的再一种数据报文传输方法的流程示意图;
图8为本申请实施例提供的又一种数据报文传输方法的流程示意图;
图9为本申请实施例提供的一种数据报文传输装置的结构示意图;
图10为本申请实施例提供的另一种数据报文传输装置的结构示意图;
图11为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
在本申请实施例中,为了便于清楚描述本申请实施例的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。该“第一”、第二”描述的技术特征间无先后顺序或者大小顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。
在描述本申请的实施例之前,此处先对本申请涉及的名词统一进行解释说明,后续不再一一进行说明。
数据报文,是指网络通信中传输数据的最小单位,也可以称为数据包或者报文。一个数据报文包括报文头部分及载荷部分。其中,报文头部分可以包括控制信息,载荷部分可以包括有效数据信息。
数据流,可以为网络通信中进行一个业务的数据报文的集合。
拥塞点设备,数据的传输路径中预先配置的用于评估拥塞的中间节点设备。拥塞点设备可以为交换设备,例如交换机或者路由器或者其他。可以根据实际需求配置拥塞点设备在传输路径上的位置。
数据报文的发送端设备,是指发送数据报文的源端设备。
数据报文的接收端设备,是指数据报文的目的设备。
接收端设备的上一级网络设备,是指数据报文的传输路径上,距离接收端设备最近的网络设备。例如,接收端设备的上一级网络设备可以为接收端设备连接的AP设备。AP设备是指提供接入服务的网络设备,其形态可以为路由器、交换机、基站或其他,本申请不予限定。
拥塞阈值,预先配置的用于判断是否达到拥塞程度的队列长度门限。可以为静态值或者动态值。
拥塞区间,是根据拥塞阈值确定的用于判断是否拥塞的队列长度区间。当队列长度处于(大于或等于区间下限,小于或等于区间上限)拥塞区间时,可以认为出现了拥塞现象。拥塞区间可以包含拥塞阈值,或者,拥塞区间的下限可以大于或等于拥塞阈值,或者,可以根据实际需求按照拥塞阈值确定拥塞区间的范围。
非稳定拥塞(可以称为偶然拥塞、非满载拥塞或其他),可以为预设时长内,网络设备的队列长度虽然出现了拥塞现象(队列长度处于拥塞区间),但拥塞情况持续时间短,网络设备的队列并未满载,网络设备的能力可以支持该队列长度,即使队列长度继续增加,并不会导致网络设备的性能急剧下降的一种拥塞状态。
稳定拥塞(可以称为非偶然拥塞、满载拥塞或其他),可以为预设时长内,网络设备的队列长度出现拥塞现象(队列长度处于拥塞区间)的时间长,网络设备的队列已满载,如果队列长度继续增加,网络设备的性能急剧下降的一种拥塞状态。
为了解决TCP机制导致的时延增加、尾丢弃带来的TCP全局同步等问题,DCTCP技术在IP层和TCP层使用ECN作为网络拥塞信号进行拥塞控制。具体方案为:拥塞点设备根据队列长度与阈值比对,队列长度超过阈值,拥塞点设备在之后进入其队列的数据报文的IP头部的ECN字段中打上ECN的标记,使得接收端设备在接收的时候根据IP头的ECN标记,将ACK报文的ECN头也进行标记,将ECN标记通过ACK报文通知到发送端设备,发送端设备最终根据ECN标记的比例进行窗口调节。
具体的,在请求文档(request for comments,RFC)3168中,如果传输层也支持ECN功能,那么可以在数据报文的IP报文头中ECN field中设置一个传输层ECN能力(ECN-Capable Transport,ECT)指示,当中间路由器检测到某个数据报文应该用来指示拥塞的时候,如果这个数据包的ECT指示有效(ECT标记为0或者1),那么就可以把这个数据报文标记为CE有效(将CE标记为1),接着当接收端TCP收到这个数据报文时,如果发现CE有效,可以在随后的ACK报文的TCP头中设置ECN-Echo标志位(也可以称为ECE标记)为1来指示拥塞。发送端接收到ACK报文时,根据ECN-Echo标志位可以对网络拥塞作出对应的响应。
在RFC3168中,IP报文头中的ECT指示及CE指示可以看作IP报文头中的ECN标记,将TCP头中的ECN-Echo标志位看作TCP报文头中的ECN标记。
DCTCP机制中,发送端设备收到TCP头带有ECN-Echo=1或0的ACK报文时,在一个RTT内对数据流的发送窗口进行调节,具体为将发送窗口数cwnd调整为原cwnd*(1–a/2)。其中,a可以动态调整为(1-g)*a+g*F。
其中:F为接收到的上一个窗口中ECE标记为1的ACK报文比例。
g为可调参数,用于评估拥塞概率。例如,g的上限可以是1.386/(2(C*RTT+K))。
K为可调参数,是网络设备判断是否处于拥塞状态的阀值。例如,K的下限可以是(C*RTT)/7。可以根据实际需求配置K的取值,本申请不予限定。
C为链路的带宽。
但是,上述DCTCP机制中通过阈值简单判断是否拥塞,势必会将队列长度偶尔超过阈值但网络设备的队列并未满载,即使队列再进入数据报文,也不会导致网络设备性能急剧下降的特殊情况(这种特殊情况下,网络设备其实是可以按照原窗口处理数据报文的)判定为拥塞,进而进行拥塞控制。这样一来,虽然有效提高了网络性能,但却导致新的数据流(满足预设条件的数据流,例如待传输的数据流或者建链时间晚于预设时刻的数据流)需要花费较长时间与老流分享带宽以达到自身业务带宽需求。若从保证新数据流的性能角度出发,单纯的在系统拥塞控制时,对新数据流例外处理,而不进行拥塞控制,一旦网络出现严重拥塞,新数据流会造成拥塞加剧,严重影响网络性能,因此,拥塞控制时平衡新流性能以及网络性能尤为重要。
基于此,本申请实施例提供一种数据报文传输方法,拥塞点设备根据预设时长内的队列长度,判断其拥塞状态为稳定拥塞或非稳定拥塞,在不同的拥塞状态下对数据报文进行不同的标记,以使得进行拥塞控制的设备根据标记对不同的数据流采用不同的控窗方案,在非稳定拥塞下对新数据流增加发送窗口数,在稳定拥塞下对新数据流降低或保持发送窗口数,以实现拥塞控制时平衡新流性能以及网络性能。
本申请实施例提供的数据报文传输方法可以适用于图1示出的数据网络10。数据网络10可以为通信网络,也可以为计算机网络,本申请对数据网络的类型不进行具体限定。如图1所示,该数据网络10包括发送端设备101、至少一个转发设备102接收端设备103。其中,转发设备102还可以称之为节点设备、转发节点等。
其中,发送端设备101可以为数据报文的生成设备,至少一个转发设备102可以为数据报文从发送端设备101到接收端设备103的传输路径上的设备。转发设备102可以为交换机或路由器或其他具备数据报文转发能力的网络设备,本申请实施例中对于转发设备102的实际产品形态不予限定。接收端设备103接收到数据报文后,生成对应的ACK报文发送给发送端设备101。
数据报文从发送端设备101到接收端设备103的传输路径上的任一转发设备102,可以被配置为拥塞点设备,用于对网络拥塞进行监控。
被配置为拥塞点设备的转发设备102可以根据本申请提供的数据报文传输方法确定其拥塞状态,并对数据报文进行标记。
一种可能的实现方式中,接收端设备103可以根据拥塞点设备对数据报文的标记,对数据报文的ACK报文进行相应标记,以指示发送端设备101进行拥塞控制。
另一种可能的实现方式中,接收端设备103的上一级网络设备(图1中未示出)(例如AP设备)可以根据拥塞点设备提供的拥塞信息,进行拥塞控制,并拦截接收端设备103发送的ACK报文,在ACK报文中携带拥塞控制确定的发送窗口数,将ACK报文发送至发送端设备101。
需要说明的是,数据网络10包括的各个设备的数量以及具体架构,可以根据实际需求配置,本申请实施例对于数据网络10的规模及具体架构均不进行限定。
下面结合附图,对本申请的实施例进行具体阐述。
一方面,本申请实施例提供一种网络设备,用于执行本申请提供的数据报文传输方法,该网络设备可以为图1示意的数据网络10中的发送端设备101、被配置为拥塞点设备的转发设备102、接收端设备103中的至少一种。或者,该网络设备可以为图1示意的数据网络10中的接收端设备103的上一级AP设备。图2示出的是与本申请各实施例相关的一种网络设备20。如图2所示,网络设备20可以包括处理器201、存储器202以及收发器203。
下面结合图2对网络设备20的各个构成部件进行具体的介绍:
其中,存储器202可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、配置文件或其他内容。
处理器201是网络设备20的控制中心。例如,处理器201可以是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specificintegrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
收发器203用于与其他设备进行通信。收发器203可以为网络设备20的通信端口或者其他。
一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:
根据预设时长内队列长度,确定网络设备20的拥塞状态;当确定其拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,第一标识用于标识网络设备20处于非稳定拥塞;或者,当确定其拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,第二标识用于标识网络设备20处于稳定拥塞,其中,第一标识和第二标识不同
另一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:
确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态可以包括稳定拥塞和非稳定拥塞;若该拥塞状态为非稳定拥塞,对第一数据流增加发送窗口数;或者,若该拥塞状态为稳定拥塞,对第一数据流降低或保持发送窗口数。
另一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:
接收数据报文;若该数据报文的报文头中标记了第一标识,在该数据报文的ACK报文的报文头中标记第三标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞;或者,若该数据报文的报文头中标记了第二标识,在该数据报文的ACK报文的报文头中标记第四标识;其中,第二标识及第四标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞;向该数据报文的发送端设备发送标记后的ACK报文。
另一方面,本申请实施例提供一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案进行详细描述,其他不在一一赘述。
如图3所示,本申请提供的数据报文传输方法可以包括:
S301、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。
其中,第一网络设备可以为数据报文传输路径上的拥塞点设备。第一网络设备可以周期性的或者实时的或者在满足其他触发条件时,执行S301,本申请实施例对于执行S301的时机不予限定。
具体的,在S301中,第一网络设备先确定用于判断拥塞的拥塞阈值,然后可以根据该阈值、预设时长内队列长度,确定第一网络设备的拥塞状态。
一种可能的实现方式中,该拥塞阈值可以为静态的固定值。例如,第一网络设备可以根据经验值,或者其性能,或者队列的时延需求确定静态的拥塞阈值,本申请对于静态拥塞阈值的确定方式不予限定。
另一种可能的实现方式中,该拥塞阈值可以为动态值。
例如,可以配置该拥塞阈值为C*RTT*λ。其中,C可以为队列带宽,RTT是预估的在此队列中的流的RTT,λ可以为预设参数。例如,λ可以为1/7。
再一种可能的实现方式中,可以参照RFC3168配置该拥塞阈值,此处不再赘述。
一种可能的实现方式中,通过实验和理论分析,在队列没有满载的情况下,即非稳定拥塞的情况下,队列的长度不会呈现围绕拥塞阈值的现象,反之亦然。因此,可以采用判断是否围绕拥塞阈值来判断是否为稳定拥塞。
例如,可以在预设时长(例如k*RTT)内分析,判断第一网络设备的队列长度是否稳定在拥塞阈值附近,以判断第一网络设备的拥塞状态是否为稳定拥塞。其中,当预设时长内第一网络设备的队列长度稳定在拥塞阈值附近,则确定其拥塞状态为稳定拥塞,否则为非稳定拥塞。
例如,可以采用3sigma等方法判断队列长度是否稳定在拥塞阈值附近。
需要说明的是,预设时长可以根据实际需求配置其取值,本申请实施例对此不予限定。
另一种可能的实现方式中,S301中,第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态,具体可以实现为:第一网络设备根据拥塞阈值确定拥塞区间,若预设时长内,第一网络设备的队列的长度处于拥塞区间的时长小于第一时长,确定第一网络设备的拥塞状态为非稳定拥塞。或,若预设时长内,第一网络设备的队列的长度处于拥塞区间的时长大于第二时长,确定第一网络设备的拥塞状态为稳定拥塞。其中,第二时长大于或等于第一时长。
需要说明的是,对于第一时长、第二时长的取值,可以根据实际需求配置,本申请实施例对此不予限定。例如,第一时长可以为预设时长乘以某一比例,第二时长可以为预设时长乘以另一比例。
例如,第一时长可以等于第二时长。
其中,对于预设时长内,第一网络设备的队列的长度处于拥塞区间的时长等于第一时长或者第二时长的情况,可以根据实际应用需求确定第一网络设备的拥塞状态为稳定拥塞或者非稳定拥塞,本申请实施例对此也不进行限定。
可选的,若预设时长内,第一网络设备的队列的长度始终未处于拥塞区间,可以确定第一网络设备的拥塞状态为未拥塞。
示例性的,图4提供了一种队列长度与拥塞阈值、拥塞区间的对比示意。如图4所示,在第一预设时长内,第一网络设备的队列长度始终未处于拥塞区间,确定第一预设时长内第一网络设备的拥塞状态为未拥塞。在第二预设时长内,第一网络设备的队列长度出现了处于拥塞区间的时段t1,但该时段t1小于第一时长,确定第二预设时长内第一网络设备的拥塞状态为非稳定拥塞。在第三预设时长内,第一网络设备的队列长度出现了处于拥塞区间的时段t2,该时段t2大于第二时长,确定第三预设时长内第一网络设备的拥塞状态为稳定拥塞。
一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为非稳定拥塞,在S301后可以执行S302。
另一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为稳定拥塞,在S301后可以执行S303。
再一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为未拥塞,在S301后可以继续按照执行S301之前的方式传输数据报文,此处不再赘述。
S302、当第一网络设备确定拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。
其中,第一标识用于标识第一网络设备处于非稳定拥塞。
一种可能的实现方式中,第一数据报文可以为执行S301之后即将进入队列的数据报文中的部分或全部。
另一种可能的实现方式中,第一数据报文可以为执行S301之后即将进入队列的数据报文以及队列中等待的数据报文中的部分或全部。
需要说明的是,可以根据实际需求配置第一数据报文的内容,本申请实施例对此不与限定。
S303、当第一网络设备确定拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。
其中,第二标识用于标识第二网络设备处于稳定拥塞,其中,第一标识和第二标识不同。
一种可能的实现方式中,第二数据报文可以为执行S301之后即将进入队列的数据报文。
另一种可能的实现方式中,第二数据报文可以为执行S301之后即将进入队列的数据报文,以及队列中等待的数据报文。
需要说明的是,可以根据实际需求配置第二数据报文的内容,本申请实施例对此不与限定。第二数据报文可以与第一数据报文为相同的数据报文,当然,也可以为不同的数据报文。
一种可能的实现方式中,第一标识还可以用于指示对接收的第一数据流增加发送窗口数;第二标识还可以用于指示对第一数据流降低或保持发送窗口数。
其中,第一数据流可以为满足预设条件的数据流。
示例性的,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。
其中,待传输的数据流可以称之为新数据流,即建链成功还未开始传输数据报文的数据流。
进一步可选的,第一标识或第二标识还可以用于指示对第二数据流降低发送窗口数。其中,第二数据流为第一网络设备正在传输的数据流。相应的,第一数据流可以为满足预设条件的第二数据流之外的数据流。
一种可能的实现方式中,第二数据流可以包括第一数据报文或第二数据报文所属的数据流。当然,第二数据流还可以包括第一数据报文或第二数据报文所属的数据流之外的数据流。
可选的,第一标识或第二标识可以添加报文头中。例如,该报文头可以为IP头。
需要说明的是,本申请实施例对于第一标识或第二标识在报文头中的位置以及具体形式不进行具体限定,可以根据实际需求配置。
下面通过几种可能的实现方式,对第一标识或第二标识的添加位置以及内容进行说明。
实现方式1、新增第一拥塞标志位以添加第一标识或第二标识。
在实现方式1中,在数据报文的IP头中的预留字段中,选取N个比特作为第一拥塞标志位,通过将该第一拥塞标志位设置为不同的值(value)作为第一标识或者第二标识。N的取值可以根据实际需求确定,本申请实施例不予限定。
其中,对于第一拥塞标志位的不同的值,可以根据实际需求配置,本申请实施例对此不予限定。
例如,可以将第一拥塞标志位设置为0作为第一标识,将第一拥塞标志位设置为1作为第二标识。
实现方式2、复用RFC3168中的ECN标记以添加第一标识或第二标识。
在实现方式2中,IP首部的TOS字段中的第7和8比特的res字段可以被定义为ECN字段,其中有四个取值(00/01/10/11)。复用RFC3168中的定义,00代表该数据报文不支持ECN,01和10表明该数据报文支持ECN功能。ECN标记用于指示第一网络设备在确定拥塞时是否进行ECN标记,当其为00时,第一网络设备不进行ECN标记,当其为01或10时,第一网络设备进行ECN标记。
进一步的,第一网络设备在S301中若确定其拥塞状态为非稳定拥塞时,第一网络设备可以将数据报文的ECN field中的ECN标记改为10(若为01修改为10,若为10则保持)作为第一标识。第一网络设备在S301中若确定其拥塞状态为稳定拥塞时,第一网络设备可以将数据报文的ECN field中的ECN标记改为11作为第二标识。
而在RFC3168中,第一网络设备只要判断出现拥塞状态,即将ECN field中的ECN标记改为11,并不区分稳定拥塞或非稳定拥塞。
示例性的,图5示意了一种第一网络设备的结构。如图5所示,第一网络设备可以包括网络处理器(network processor,NP)、报文编辑器(packet editor,PE)、出端口缓存(output buffer,OB)、以及流量管理器(traffic manager,TM)。
例如,在图5示意的第一网络设备的结构基础上,数据报文进入第一网络设备的NP,NP驱动PE来使TM使能ECN功能,NP里的微码能够读取TM中相关的队列信息(通过寄存器),然后计算出拥塞阈值再写入TM中的寄存器中。TM可以使用动态变化的拥塞阈值来对数据报文进行标记。其中,TM可以按照S302或S303的方式进行ECN标记。
需要说明的是,如果数据报文的发送端设备不支持ECN,还可以通过NP来修改数据报文的ECN标记(例如NP可以将数据报文的IP头中的ECN字段00修改为01/10),使TM能够对报文进行ECN标记。
上述S301至S303的过程其目的是在第一网络设备拥塞时,调整数据流的发送窗口数,可以由第二网络设备调整数据流的发送窗口数。可选的,第二网络设备可以为数据报文的发送端设备,或者,第二网络设备可以为数据报文的接收端设备的上一级网络设备。
可选的,当第二网络设备为数据报文的接收端设备的上一级网络设备,在S302或S303之后,如图6所示,本申请提供的数据报文传输方法还可以包括S303a。
S303a、第一网络设备向第二网络设备发送第一拥塞信息。
该第一拥塞信息用于指示第一网络设备的拥塞状态。
其中,该第一拥塞信息,可以为作为拥塞点设备的第一网络设备向第二网络设备发送的专用信令。例如,该专有信令可以为采用私有协议的控制报文,本申请实施例对此不进行具体限定。
例如,该第一拥塞信息还可以包括第一网络设备的标识、队列的标识以及拥塞指示。其中,拥塞指示可以用于指示第一网络设备是否为稳定拥塞。例如,拥塞指示1表示稳定拥塞,拥塞指示0表示非稳定拥塞。
示例性的,第一拥塞信息可以如表1所示。当第一网络设备向第二网络设备发送如表1所示的第一拥塞信息,则用于指示第一网络设备中队列2导致出现稳定拥塞。
表1
设备标识 | 队列标识 | 拥塞指示 |
第一网络设备的标识 | 队列2的标识 | 1 |
需要说明的是,表1只是通过举例的形式,对第一拥塞信息的形式及内容进行示例说明,并不构成具体限定。
进一步的,上述S301至S303的过程之后,数据报文经过传输路径发送至接收端设备,可以由第二网络设备调整数据流的发送窗口数。可选的,第二网络设备可以为数据报文的发送端设备,或者,第二网络设备可以为数据报文的接收端设备的上一级网络设备。如图6所示,本申请实施例提供的数据报文传输方法还可以包括S304至S306。
S304、第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。
其中,该拥塞状态包括稳定拥塞和非稳定拥塞。
进一步的,该拥塞状态还可以包括未拥塞。
一种可能的实现方式中,第二网络设备为数据报文的接收端设备的上一级网络设备,S304中第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备从拥塞点设备接收第一拥塞信息。对于第一拥塞信息已经在前述内容进行了详细说明,此处不再赘述。
另一种可能的实现方式中,第二网络设备为数据报文的发送端设备,第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备接收数据报文的ACK报文,该ACK报文的报文头中携带用于指示该拥塞点设备的拥塞状态的第二拥塞信息,第二网络设备根据第二拥塞信息确定拥塞点设备的拥塞状态。
其中,ACK报文由该数据报文的接收端设备在接收到数据报文后发送。对于ACK报文中携带的第二拥塞信息,详见后续图7对应的方案的详细描述。
进一步的,若S304中第二网络设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S305。或者,若S304中第二网络设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S306。若S304中第二网络设备确定拥塞点设备的拥塞状态为未拥塞,第二网络设备可以对第一数据流增加发送窗口数。
S305、若拥塞点设备的拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数。
一种可能的实现方式中,第二网络设备增加第一数据流的发送窗口数,可以根据爬窗机制的方案实现。例如,第二网络设备根据RENO或CUBIC爬窗机制,增加或保持第一数据流增加发送窗口数。
例如,可以对原发送窗口数(对于待传输的数据流,原发送窗口数可以为正在传输的数据流的前一RRT的发送窗口数;对于已经开始传输的数据流,原发送窗口数可以为前一RRT自身的发送窗口数)翻倍或增加预设步进,以实现增加发送窗口数。
S306、若拥塞点设备的拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。
在一种可能的实现方式中,第二网络设备降低第一数据流的发送窗口数,可以根据DCTCP机制的方案实现,其具体实现已经在前述内容进行了详细描述,此处不再进行赘述。
通过本申请提供的数据报文传输方法,根据预设时长内拥塞点设备的拥塞状态,在不同的拥塞状态下采用不同的方案确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低或保持第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
进一步可选的,第二网络设备为数据报文的接收端设备的上一级网络设备,如图6所示,在S305或S306之后,本申请实施例提供的数据报文传输方法还可以包括S307及S308。
S307、第二网络设备向数据报文的发送端设备发送第一数据流的发送窗口数。
具体的,在S307中,第二网络设备可以拦截数据报文的接收端设备发送的该数据报文的ACK报文,将S305或S306中确定的第一数据流的发送窗口数携带该ACK报文中,发送给发送端设备。
需要说明的是,当第二网络设备为数据报文的接收端设备的上一级网络设备时,第二网络设备还需要根据拥塞信息确定拥塞点设备的拥塞状态,并确定第二数据流的发送窗口数。例如,当拥塞点设备的拥塞状态为未拥塞,则可以按照爬窗机制确定第二数据流的发送窗口数;或者,当拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,则可以按照DCTCP机制确定第二数据流的发送窗口数。因此,第二网络设备还可以向数据报文的发送端设备发送确定的第二数据流的发送窗口数,其具体方式可以与发送第一数据流的发送窗口数相同,此处不再赘述。
S308、发送端设备接收ACK报文,根据ACK报文确定第一数据流的发送窗口数。
具体的,在S308中,发送端设备可以比较ACK报文中携带的第一数据流的发送窗口数及自身执行的发送窗口数,取两者中的较小者作为第一数据流的发送窗口数,发送第一数据流的数据报文。
进一步的,发送端设备可以比较ACK报文中携带的第二数据流的发送窗口数及自身执行的发送窗口数,取两者中的较小者作为第二数据流的发送窗口数,继续发送第二数据流的数据报文。
另一方面,本申请实施例提供另一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。在该实施例中,数据报文的发送端设备需支持ECN功能。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案进行详细描述,其他不在一一赘述。
如图7所示,本申请提供的数据报文传输方法可以包括:
S701、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。
S702、当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。
S703、当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。
具体的,S701至S703的具体实现可以与S301至S303的实现相同,可以参照前述S301至S303的描述,此处不再赘述。
S702或S703中标记的数据报文将会传输至其接收端设备(第三网络设备)。
S704、第三网络设备接收数据报文。
具体的,第三网络设备可以根据接收的数据报文中的内容,以确定是否执行S705或S706。
示例性的,对应于前述实现方式1,第三网络设备在接收到数据报文后,在拥塞标志位查看是否标记了第一标识或第二标识,以确定是否执行S705或S706。
示例性的,对应于前述实现方式2,第三网络设备在接收到数据报文后,在RFC3168中的ECN标记位置查看是否标记了第一标识或第二标识,以确定是否执行S705或S706。
S705、若该数据报文标记了第一标识,第三网络设备在该数据报文的ACK报文中标记第三标识。
其中,第三标识与前述第一标识的作用相同,对于第一标识的作用已经在图3或图6所示的数据报文传输方法中进行了详细描述。
S706、若该数据报文的报文头中标记了第二标识,第三网络设备在该数据报文的ACK报文中标记第四标识。
其中,第四标识与前述第二标识的作用相同,对于第二标识的作用已经在图3或图6所示的数据报文传输方法中进行了详细描述。
一种可能的实现方式中,第三标识或第四标识可以添加报文头中。例如,该报文头可以为TCP头。
需要说明的是,本申请实施例对于第三标识或第四标识在报文头中的位置以及具体形式不进行具体限定,可以根据实际需求配置。
下面通过几种可能的实现方式,对第三标识或第四标识的添加位置以及内容进行说明。
实现方式A、新增第二拥塞标志位以添加第三标识或第四标识。
在实现方式A中,在数据报文的TCP头中的预留字段中或者RFC3168中的ECE位旁边,选取M个比特作为第二拥塞标志位,通过将该第二拥塞标志位设置为不同的值(value)作为第三标识或者第四标识。M的取值可以根据实际需求确定,本申请实施例不予限定。
其中,对于第二拥塞标志位的不同的值,可以根据实际需求配置,本申请实施例对此不予限定。
例如,可以将第二拥塞标志位设置为0作为第三标识,将第二拥塞标志位设置为1作为第四标识。
实现方式B、在实现方式A的基础上,通过新增第二拥塞标志位以及ECE位以添加第三标识或第四标识。
例如,可以将第二拥塞标志位设置为0,ECE位置1作为第三标识,将第二拥塞标志位设置为1、ECE位置1作为第四标识。
实现方式C、重新定义RFC3168的ECE位,作为添加第三标识或第四标识。
例如,可以将ECE位置1作为第三标识,将ECE位置1作为第四标识。
例如,接收端设备(第三网络设备)在接收到数据报文后,若在RFC3168中的ECN标记位置的ECN字段是00或01,则不会修改原ACK中的任何字段。
例如,接收端设备(第三网络设备)在接收到数据报文后,若在RFC3168中的ECN标记位置的ECN字段是10,则将数据报文对应的ACK报文的TCP头的ECE位置1。
例如,接收端设备(第三网络设备)在接收到数据报文后,若在在RFC3168中的ECN标记位置的ECN字段是11,则将数据报文对应的ACK报文的TCP头的ECE位置1,并且将拥塞字段置1。
S707、第三网络设备向该数据报文的发送端设备发送标记后的ACK报文。
S708、接收端设备接收标记后的ACK报文。
S709、接收端设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。
其中,接收端设备根据S708中接收的ACK报文,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。
具体的,S709中接收端设备可以根据ACK报文中标记的第三标识或第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。
一种可能的实现方式中,S709中接收端设备可以根据ACK报文中标记的第三标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。
另一种可能的实现方式中,S709中接收端设备可以根据ACK报文中标记的第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。
另一种可能的实现方式中,S709中接收端设备可以根据ACK报文中未标记第三标识或第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为未拥塞。
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为0,ECE位置0,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为未拥塞。
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为0,ECE位置1,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为1,ECE位置1,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。
进一步的,若S709中发送端设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S710。或者,若S709中发送端设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S711。若S709中发送端设备确定拥塞点设备的拥塞状态为未拥塞,则发送端设备可以对第一数据流增加发送窗口数。
S710、若拥塞点设备的拥塞状态为非稳定拥塞,发送端设备对第一数据流增加发送窗口数。
具体的,S710的具体实现可以与S305的实现相同,可以参照前述S305的描述,此处不再赘述。
S711、若拥塞点设备的拥塞状态为稳定拥塞,发送端设备对第一数据流降低或保持发送窗口数。
具体的,S711的具体实现可以与S306的实现相同,可以参照前述S306的描述,此处不再赘述。
在S710或S711之后,发送端设备则按照第一数据流的发送窗口数发送第一数据流的数据报文。
需要说明的是,发送端设备还可以根据确定的拥塞点设备的拥塞状态,确定第二数据流的发送窗口数。例如,当拥塞点设备的拥塞状态为未拥塞,则可以按照爬窗机制确定第二数据流的发送窗口数;或者,当拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,则可以按照DCTCP机制确定第二数据流的发送窗口数。因此,发送端设备则按照第二数据流的发送窗口数发送第二数据流的数据报文。
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
再一方面,本申请实施例提供另一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。在该实施例中,数据报文的发送端设备可以不支持ECN功能。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案进行详细描述,其他不在一一赘述。
如图8所示,本申请提供的数据报文传输方法可以包括:
S801、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。
S802、当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。
S803、当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。
具体的,S801至S803的具体实现可以与S301至S303的实现相同,可以参照前述S301至S303的描述,此处不再赘述。
S802或S803中标记的数据报文将会传输至其接收端设备(第三网络设备)。
S804、第一网络设备向第二网络设备发送第一拥塞信息。
其中,该第二网络设备为数据报文的接收端设备的上一级网络设备。
具体的,S804的具体实现可以与S303a的实现相同,可以参照前述S303a的描述,此处不再赘述。
S805、第二网络设备接收第一拥塞信息。
具体的,第二网络设备可以对经过其的流创建流表,维护生命周期,第一数据流放在流表表的最前面或最后,也可以用定时器来判断是否是第一数据流。流表用于根据拥塞信息,对第一数据流确定发送窗口。
示例性的,流表中存储的流信息可以如下所示:流ID|五元组|RWND|拥塞状态|RTT|ECN标记率|经历的交换机ID|经历的交换机队列。
其中,RWND用于指示第二网络设备确定的数据流的发送窗口数。
S806、第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。
具体的,S806的具体实现可以与S304的实现相同,可以参照前述S304的描述,此处不再赘述。
进一步的,若S806中第二网络设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S807。或者,若S806中第二网络设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S808。若S806中第二网络设备确定拥塞点设备的拥塞状态为未拥塞,则第二网络设备可以对第一数据流增加发送窗口数。
S807、若拥塞点设备的拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数。
具体的,S807的具体实现可以与S305的实现相同,可以参照前述S305的描述,此处不再赘述。
S808、若拥塞点设备的拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。
具体的,S808的具体实现可以与S306的实现相同,可以参照前述S306的描述,此处不再赘述。
S809、第二网络设备向数据报文的发送端设备发送第一数据流的发送窗口数。
具体的,S809的具体实现可以与S307的实现相同,可以参照前述S307的描述,此处不再赘述。
S810、发送端设备接收ACK报文,根据ACK报文确定第一数据流的发送窗口数。
具体的,S810的具体实现可以与S308的实现相同,可以参照前述S308的描述,此处不再赘述。
在S810之后,发送端设备则按照第一数据流的发送窗口数发送第一数据流的数据报文。
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。
需要说明的是,本申请实施例提供的数据报文传输方法包括的步骤的执行顺序,可以根据实际需求配置,本申请实施例的附图仅示意了可能的执行顺序,并不构成限定。
上述主要从各个网络设备的工作原理角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对执行本申请提供的数据报文传输方法的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的网络设备中部署的执行本申请提供的数据报文传输方法的数据报文传输装置90的一种可能的结构示意图。该数据报文传输装置90可以为功能模块或者芯片。如图9所示,数据报文传输装置90可以包括:确定单元901、处理单元902。
一种可能的实现方式中,当数据报文传输装置90部署于上述第一网络设备时,确定单元901用于执行图3或图6中的过程S301、或图7中的过程S701、或图8中的过程S801;处理单元902用于执行图3或图6中的过程S302、S303、或图7中的过程S702、S703、或图8中的过程S802、S803。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
另一种可能的实现方式中,当数据报文传输装置90部署于上述第二网络设备时,确定单元901用于执行图6中的过程S304、或图7中的过程S709、或图8中的过程S806;处理单元902用于执行图6中的过程S305、S306、或图7中的过程S710、S711、或图8中的过程S807、S808。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
再一种可能的实现方式中,当数据报文传输装置90部署于上述第三网络设备时,处理单元902用于执行图7中的过程S705、S706。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,如图10所示,数据报文传输装置90还可以包括发送单元903,用于执行图6中的过程S303a或S307、或图7中的过程S707、或图8中的过程S804、S809。
可选的,如图10所示,数据报文传输装置90还可以包括接收单元904,用于执行图6中的过程S308、或图7中的过程S704或S708、或图8中的过程S805或S810。
在采用集成的单元的情况下,图11示出了上述实施例中所涉及的网络设备110的一种可能的结构示意图。该网络设备110可以为上述方法实施例中描述的第一网络设备或者第二网络设备或者第三网络设备。网络设备110可以包括:处理模块1101、通信模块1102。处理模块1101用于对网络设备110的动作进行控制管理,通信模块1102用于与其他设备通信。例如,处理模块1101用于执行图3或图6中的过程S301至S306中任一过程、或图7中的过程S701至S703或S709至S711中任一过程、或图8中的过程S801至S803或S806至S808中任一过程。网络设备110还可以包括存储模块1103,用于存储网络设备110的程序代码和数据。
其中,处理模块1101可以为图2所示的网络设备20的实体结构中的处理器201,可以是处理器或控制器。例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理模块1101也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1102可以为图2所示的网络设备20的实体结构中的收发器203,通信模块1102可以是通信端口,或者可以是收发器、收发电路或通信接口等。或者,上述通信接口可以通过上述具有收发功能的元件,实现与其他设备的通信。上述具有收发功能的元件可以由天线和/或射频装置实现。存储模块1103可以是图2所示的网络设备20的实体结构中的存储器203。
当处理模块1101为处理器,通信模块1102为收发器,存储模块1103为存储器时,本申请实施例图11所涉及的网络设备110可以为图2所示的网络设备20。
如前述,本申请实施例提供的数据报文传输装置90或网络设备110可以用于实施上述本申请各实施例实现的方法中相应的功能,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的数据报文传输方法。
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的数据报文传输方法。
本申请实施例再提供一种芯片系统,该芯片系统包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本发明实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。或者,存储器可以与处理器耦合,例如存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。存储器可以用于存储执行本申请实施例提供的技术方案的应用程序代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,从而实现本申请实施例提供的技术方案。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (29)
1.一种数据报文传输方法,其特征在于,所述方法包括:
第一网络设备根据预设时长内队列长度,确定所述第一网络设备的拥塞状态;
当所述第一网络设备确定所述拥塞状态为非稳定拥塞时,所述第一网络设备对接收的第一数据报文添加第一标识,所述第一标识用于标识所述第一网络设备处于非稳定拥塞;或者,
当所述第一网络设备确定所述拥塞状态为稳定拥塞时,所述第一网络设备对接收的第二数据报文添加第二标识,所述第二标识用于标识所述第一网络设备处于稳定拥塞,其中,所述第一标识和所述第二标识不同。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备根据预设时长内队列长度,确定所述第一网络设备的拥塞状态,包括:
若所述预设时长内,所述队列的长度处于拥塞区间的时长小于第一时长,确定所述第一网络设备的拥塞状态为所述非稳定拥塞;或
若所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长,确定所述第一网络设备的拥塞状态为所述稳定拥塞;其中,所述第二时长大于或等于所述第一时长。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一网络设备向第二网络设备发送第一拥塞信息,所述第一拥塞信息用于指示所述第一网络设备的拥塞状态;所述第二网络设备为所述数据报文的接收端设备的上一级网络设备。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一标识用于指示对接收的第一数据流增加发送窗口数;所述第二标识用于指示对所述第一数据流降低或保持发送窗口数。
5.根据权利要求4所述的方法,其特征在于,所述第一标识或第二标识还用于指示对第二数据流降低发送窗口数,所述第一数据流为满足预设条件的第二数据流之外的数据流,所述第二数据流为所述第一网络设备正在传输的数据流。
6.根据权利要求5所述的方法,其特征在于,所述预设条件包括:
待传输的数据流;或者,建链时间晚于预设时刻的数据流。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一标识或所述第二标识添加在网络协议IP头。
8.一种数据报文传输方法,其特征在于,所述方法包括:
第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;所述拥塞状态包括稳定拥塞和非稳定拥塞;
若所述拥塞状态为所述非稳定拥塞,所述第二网络设备对第一数据流增加发送窗口数;或者,
若所述拥塞状态为所述稳定拥塞,所述第二网络设备对所述第一数据流降低或保持发送窗口数。
9.根据权利要求8所述的方法,其特征在于,
所述非稳定拥塞为所述预设时长内,所述拥塞点设备的队列的长度处于拥塞区间的时长小于第一时长;或
所述稳定拥塞为所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长;其中,所述第二时长大于或等于所述第一时长。
10.根据权利要求8或9所述的方法,其特征在于,所述第二网络设备为所述数据报文的接收端设备的上一级网络设备;
所述第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,包括:所述第二网络设备从所述拥塞点设备接收第一拥塞信息,所述第一拥塞信息用于指示所述拥塞点设备的拥塞状态;
所述方法还包括:所述第二网络设备向所述数据报文的发送端设备发送所述第一数据流的发送窗口数。
11.根据权利要求8或9所述的方法,其特征在于,所述第二网络设备为所述数据报文的发送端设备,所述第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,包括:
所述第二网络设备接收所述数据报文的确认字符ACK报文,所述ACK报文的报文头中携带用于指示所述拥塞点设备的拥塞状态的第二拥塞信息。
12.根据权利要求8-11任一项所述的方法,其特征在于,所述第一数据流为满足预设条件的数据流。
13.根据权利要求12所述的方法,其特征在于,所述预设条件包括:
待传输的数据流;或者,建链时间晚于预设时刻的数据流。
14.一种数据报文传输装置,其特征在于,所述装置包括:
确定单元,用于根据预设时长内队列长度,确定所述装置所在的第一网络设备的拥塞状态;
处理单元,用于当所述确定单元确定所述拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,所述第一标识用于标识所述第一网络设备处于非稳定拥塞;或者,
所述处理单元用于,当所述确定单元确定所述拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,所述第二标识用于标识所述第一网络设备处于稳定拥塞,其中,所述第一标识和所述第二标识不同。
15.根据权利要求14所述的装置,其特征在于,所述确定单元具体用于:
若所述预设时长内,所述队列的长度处于拥塞区间的时长小于第一时长,确定所述第一网络设备的拥塞状态为所述非稳定拥塞;或
若所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长,确定所述第一网络设备的拥塞状态为所述稳定拥塞;其中,所述第二时长大于或等于所述第一时长。
16.根据权利要求14或15所述的装置,其特征在于,所述装置还包括:
发送单元,用于向第二网络设备发送第一拥塞信息,所述第一拥塞信息用于指示所述第一网络设备的拥塞状态;所述第二网络设备为所述数据报文的接收端设备的上一级网络设备。
17.根据权利要求14-16任一项所述的装置,其特征在于,所述第一标识用于指示对接收的第一数据流增加发送窗口数;所述第二标识用于指示对所述第一数据流降低或保持发送窗口数。
18.根据权利要求17所述的装置,其特征在于,所述第一标识或第二标识还用于指示对第二数据流降低发送窗口数,所述第一数据流为满足预设条件的第二数据流之外的数据流,所述第二数据流为所述第一网络设备正在传输的数据流。
19.根据权利要求18所述的装置,其特征在于,所述预设条件包括:
待传输的数据流;或者,建链时间晚于预设时刻的数据流。
20.根据权利要求14-19任一项所述的装置,其特征在于,所述第一标识或所述第二标识添加在网络协议IP头。
21.一种数据报文传输装置,其特征在于,所述装置包括:
确定单元,用于确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;所述拥塞状态包括稳定拥塞和非稳定拥塞;
处理单元,用于若所述确定单元确定的所述拥塞状态为所述非稳定拥塞,对第一数据流增加发送窗口数;或者,
所述处理单元用于,若所述确定单元确定的所述拥塞状态为所述稳定拥塞,对所述第一数据流降低或保持发送窗口数。
22.根据权利要求21所述的装置,其特征在于,
所述非稳定拥塞为所述预设时长内,所述拥塞点设备的队列的长度处于拥塞区间的时长小于第一时长;或
所述稳定拥塞为所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长;其中,所述第二时长大于或等于所述第一时长。
23.根据权利要求21或22所述的装置,其特征在于,所述装置部署于所述数据报文的接收端设备的上一级网络设备;
所述确定单元具体用于:从所述拥塞点设备接收第一拥塞信息,所述第一拥塞信息用于指示所述拥塞点设备的拥塞状态;
所述装置还包括发送单元,用于向所述数据报文的发送端设备发送所述第一数据流的发送窗口数。
24.根据权利要求21或22所述的装置,其特征在于,所述装置部署于所述数据报文的发送端设备,所述确定单元具体用于:
接收所述数据报文的确认字符ACK报文,所述ACK报文的报文头中携带用于指示所述拥塞点设备的拥塞状态的第二拥塞信息。
25.根据权利要求21-24任一项所述的装置,其特征在于,所述第一数据流为满足预设条件的数据流。
26.根据权利要求25所述的装置,其特征在于,所述预设条件包括:
待传输的数据流;或者,建链时间晚于预设时刻的数据流。
27.一种网络设备,其特征在于,所述网络设备包括:处理器和存储器;
所述存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,所述网络设备执行如权利要求1至13中任一项所述的数据报文传输方法。
28.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行权利要求1至13中任一项所述的数据报文传输方法。
29.一种计算机程序产品,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至13中任一项所述的数据报文传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478243.1A CN113746743B (zh) | 2020-05-29 | 2020-05-29 | 一种数据报文传输方法及装置 |
PCT/CN2021/095210 WO2021238799A1 (zh) | 2020-05-29 | 2021-05-21 | 一种数据报文传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478243.1A CN113746743B (zh) | 2020-05-29 | 2020-05-29 | 一种数据报文传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113746743A true CN113746743A (zh) | 2021-12-03 |
CN113746743B CN113746743B (zh) | 2023-08-08 |
Family
ID=78724917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010478243.1A Active CN113746743B (zh) | 2020-05-29 | 2020-05-29 | 一种数据报文传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113746743B (zh) |
WO (1) | WO2021238799A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116489106A (zh) * | 2023-06-21 | 2023-07-25 | 新华三技术有限公司 | 一种拥塞控制方法、装置、转发芯片及客户端 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208827A (zh) * | 2022-07-11 | 2022-10-18 | 京东科技信息技术有限公司 | 一种流量分配的方法和装置 |
CN116545933B (zh) * | 2023-07-06 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075003A1 (en) * | 2006-09-21 | 2008-03-27 | Futurewei Technologies, Inc. | Method and system for admission and congestion control of network communication traffic |
US20090113069A1 (en) * | 2007-10-25 | 2009-04-30 | Balaji Prabhakar | Apparatus and method for providing a congestion measurement in a network |
WO2010142227A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种用于交换网流量控制的方法和装置 |
CN102025617A (zh) * | 2010-11-26 | 2011-04-20 | 中兴通讯股份有限公司 | 以太网拥塞控制方法及装置 |
US20110182181A1 (en) * | 2010-01-22 | 2011-07-28 | Samsung Electronics Co., Ltd. | Method and apparatus for adaptively managing buffer in communication system including a plurality of network nodes |
WO2011106288A2 (en) * | 2010-02-26 | 2011-09-01 | Microsoft Corporation | Communication transport optimized for data center environment |
CN102624723A (zh) * | 2012-03-06 | 2012-08-01 | 杭州华三通信技术有限公司 | 一种实现显式拥塞通告的方法及设备 |
WO2012127597A1 (ja) * | 2011-03-19 | 2012-09-27 | 富士通株式会社 | 輻輳制御方法および無線通信装置 |
US20140164640A1 (en) * | 2012-12-11 | 2014-06-12 | The Hong Kong University Of Science And Technology | Small packet priority congestion control for data center traffic |
CN104038438A (zh) * | 2013-12-03 | 2014-09-10 | 江苏达科信息科技有限公司 | 一种基于传统传输控制协议改进的显式拥塞控制方法 |
US20150188820A1 (en) * | 2013-12-31 | 2015-07-02 | International Business Machines Corporation | Quantized congestion notification (qcn) extension to explicit congestion notification (ecn) for transport-based end-to-end congestion notification |
CN104954279A (zh) * | 2014-03-28 | 2015-09-30 | 华为技术有限公司 | 一种传输控制方法、装置及系统 |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN106059951A (zh) * | 2016-06-08 | 2016-10-26 | 中南大学 | 一种用于dcn中基于多级拥塞反馈的传输控制方法 |
CN108718283A (zh) * | 2018-05-03 | 2018-10-30 | 电子科技大学 | 数据中心网络中集中式端网协调的tcp拥塞控制方法 |
US20190104132A1 (en) * | 2017-10-02 | 2019-04-04 | Higher Ground Llc | Forward path congestion mitigation for satellite communications |
CN109698797A (zh) * | 2017-10-24 | 2019-04-30 | 中国移动通信集团山东有限公司 | 一种tcp拥塞控制方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110299389A1 (en) * | 2009-12-04 | 2011-12-08 | Telcordia Technologies, Inc. | Real Time Monitoring, Onset Detection And Control Of Congestive Phase-Transitions in Communication Networks |
CN102104552B (zh) * | 2011-04-02 | 2014-02-12 | 杭州华三通信技术有限公司 | 基于明确拥塞通知机制的报文控制方法及设备 |
CN102594681B (zh) * | 2012-02-16 | 2014-07-30 | 清华大学 | 以太网中滑模变结构拥塞控制方法 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
CN107817944B (zh) * | 2016-09-12 | 2021-05-18 | 华为技术有限公司 | 一种数据处理方法及存储设备 |
-
2020
- 2020-05-29 CN CN202010478243.1A patent/CN113746743B/zh active Active
-
2021
- 2021-05-21 WO PCT/CN2021/095210 patent/WO2021238799A1/zh active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075003A1 (en) * | 2006-09-21 | 2008-03-27 | Futurewei Technologies, Inc. | Method and system for admission and congestion control of network communication traffic |
US20090113069A1 (en) * | 2007-10-25 | 2009-04-30 | Balaji Prabhakar | Apparatus and method for providing a congestion measurement in a network |
WO2010142227A1 (zh) * | 2009-06-12 | 2010-12-16 | 中兴通讯股份有限公司 | 一种用于交换网流量控制的方法和装置 |
US20110182181A1 (en) * | 2010-01-22 | 2011-07-28 | Samsung Electronics Co., Ltd. | Method and apparatus for adaptively managing buffer in communication system including a plurality of network nodes |
WO2011106288A2 (en) * | 2010-02-26 | 2011-09-01 | Microsoft Corporation | Communication transport optimized for data center environment |
CN102025617A (zh) * | 2010-11-26 | 2011-04-20 | 中兴通讯股份有限公司 | 以太网拥塞控制方法及装置 |
WO2012127597A1 (ja) * | 2011-03-19 | 2012-09-27 | 富士通株式会社 | 輻輳制御方法および無線通信装置 |
CN102624723A (zh) * | 2012-03-06 | 2012-08-01 | 杭州华三通信技术有限公司 | 一种实现显式拥塞通告的方法及设备 |
US20140164640A1 (en) * | 2012-12-11 | 2014-06-12 | The Hong Kong University Of Science And Technology | Small packet priority congestion control for data center traffic |
CN104038438A (zh) * | 2013-12-03 | 2014-09-10 | 江苏达科信息科技有限公司 | 一种基于传统传输控制协议改进的显式拥塞控制方法 |
US20150188820A1 (en) * | 2013-12-31 | 2015-07-02 | International Business Machines Corporation | Quantized congestion notification (qcn) extension to explicit congestion notification (ecn) for transport-based end-to-end congestion notification |
CN104954279A (zh) * | 2014-03-28 | 2015-09-30 | 华为技术有限公司 | 一种传输控制方法、装置及系统 |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN106059951A (zh) * | 2016-06-08 | 2016-10-26 | 中南大学 | 一种用于dcn中基于多级拥塞反馈的传输控制方法 |
US20190104132A1 (en) * | 2017-10-02 | 2019-04-04 | Higher Ground Llc | Forward path congestion mitigation for satellite communications |
CN109698797A (zh) * | 2017-10-24 | 2019-04-30 | 中国移动通信集团山东有限公司 | 一种tcp拥塞控制方法和装置 |
CN108718283A (zh) * | 2018-05-03 | 2018-10-30 | 电子科技大学 | 数据中心网络中集中式端网协调的tcp拥塞控制方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116489106A (zh) * | 2023-06-21 | 2023-07-25 | 新华三技术有限公司 | 一种拥塞控制方法、装置、转发芯片及客户端 |
CN116489106B (zh) * | 2023-06-21 | 2023-09-19 | 新华三技术有限公司 | 一种拥塞控制方法、装置、转发芯片及客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN113746743B (zh) | 2023-08-08 |
WO2021238799A1 (zh) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314666B (zh) | 用于执行拥塞感知负载均衡的方法和虚拟隧道端点 | |
US20220210081A1 (en) | System and method for facilitating data-driven intelligent network with flow control of individual applications and traffic flows | |
JP5538257B2 (ja) | 帯域監視装置、及びパケット中継装置 | |
CN113746743A (zh) | 一种数据报文传输方法及装置 | |
KR100875739B1 (ko) | Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법 | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
WO2017025021A1 (zh) | 一种处理流表的方法及装置 | |
US20080298397A1 (en) | Communication fabric bandwidth management | |
US20220329544A1 (en) | Packet Processing Method and Apparatus, Communications Device, and Switching Circuit | |
US20230059755A1 (en) | System and method for congestion control using a flow level transmit mechanism | |
CN111526095A (zh) | 一种流量控制方法和装置 | |
US10063481B1 (en) | Network endpoint congestion management | |
US10728156B2 (en) | Scalable, low latency, deep buffered switch architecture | |
JP2008118281A (ja) | 通信装置 | |
CN109995608B (zh) | 网络速率计算方法和装置 | |
WO2018157819A1 (zh) | 多子流网络传输方法及装置 | |
CN108306827B (zh) | 传输数据的方法和服务器 | |
CN115134302A (zh) | 一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法 | |
Poojary et al. | Theoretical analysis of high-speed multiple TCP connections through multiple routers | |
Barakat et al. | A markovian model for TCP analysis in a differentiated services network | |
Simaiya et al. | IRED algorithm for improvement in performance of mobile ad hoc networks | |
CN113542152A (zh) | 网络设备中处理报文的方法和相关设备 | |
US20050223056A1 (en) | Method and system for controlling dataflow to a central system from distributed systems | |
Lu et al. | EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks | |
CN114513440A (zh) | 一种报文传输的方法、发送端和网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |