WO2021238799A1 - Data packet transmission method and apparatus - Google Patents

Data packet transmission method and apparatus Download PDF

Info

Publication number
WO2021238799A1
WO2021238799A1 PCT/CN2021/095210 CN2021095210W WO2021238799A1 WO 2021238799 A1 WO2021238799 A1 WO 2021238799A1 CN 2021095210 W CN2021095210 W CN 2021095210W WO 2021238799 A1 WO2021238799 A1 WO 2021238799A1
Authority
WO
WIPO (PCT)
Prior art keywords
congestion
network device
data stream
identifier
data
Prior art date
Application number
PCT/CN2021/095210
Other languages
French (fr)
Chinese (zh)
Inventor
夏怒
周军
曲霄阳
何路友
朱夏
刘莉
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021238799A1 publication Critical patent/WO2021238799A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure discloses a data packet transmission method and apparatus. The method comprises: a first network device determining, according to a queue length within a preset time period, a congestion state of the first network device; if the first network device determines that the congestion state thereof is stable congestion, the first network device adding a first identifier to a received first data packet, wherein the first identifier is used to indicate that the first network device is in a stable congestion state; and if the first network device determines that the congestion state thereof is unstable congestion, the first network device adding a second identifier to a received second data packet, wherein the second identifier is used to indicate that the first network device is in an unstable congestion state, and the first identifier is different from the second identifier.

Description

一种数据报文传输方法及装置Method and device for transmitting data message
本申请要求于2020年05月29日提交国家知识产权局、申请号为202010478243.1、发明名称为“一种数据报文传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application filed with the State Intellectual Property Office on May 29, 2020, the application number is 202010478243.1, and the invention title is "a data message transmission method and device", the entire content of which is incorporated by reference In this application.
技术领域Technical field
本申请实施例涉及通信领域,尤其涉及一种数据报文传输方法及装置。The embodiments of the present application relate to the field of communications, and in particular, to a data packet transmission method and device.
背景技术Background technique
传统的数据网络中以丢包作为网络拥塞信号进行拥塞控制,例如传输控制协议(transmission control protocol,TCP)拥塞控制算法的慢启动阶段和拥塞避免阶段会尽量快速的增加发送窗口,不断试探网络容量,直到发生丢包信号时,才进行窗口回退。但TCP拥塞控制机增长窗口数量(发送窗口数量CWND>网络带宽C*往返时延(round-trip time,RTT)的同时,也带来了一些问题,比如时延增加、尾丢弃带来的TCP全局同步等。In traditional data networks, packet loss is used as a network congestion signal for congestion control. For example, the slow start phase and congestion avoidance phase of the transmission control protocol (TCP) congestion control algorithm will increase the sending window as quickly as possible, and constantly test the network capacity. , The window rollback is not performed until the packet loss signal occurs. However, while the TCP congestion control machine increases the number of windows (the number of sending windows CWND> network bandwidth C*round-trip time, RTT), it also brings some problems, such as increased delay and TCP caused by tail drop Global synchronization, etc.
为此,使用显示拥塞通知(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中简单的给新流保护不进行拥塞控制,在队列真正拥塞时,新流会抢占带宽造成拥塞加剧。For this reason, the data center TCP (DCTCP) technology that uses explicit congestion notification (ECN) as a network congestion signal came into being. In DCTCP technology, when the queue length of the network device as the congestion point exceeds the threshold, the network device will mark the ECN field of the IP header of the data message that enters the queue later according to the probability, indicating that the data message is experiencing congestion; According to the ECN field in the IP header of the data message, the end will also mark the ECN in the TCP header of the ACK message and notify the sender, and the sender will count each RTT of the received ACK message with ECN marked messages According to the ratio, the sending window (the number of data packets sent in the RRT) is adjusted to avoid blindly lowering the window according to the large ratio of packet loss, resulting in severe throughput jitter. DCTCP uses ECN as a congestion control signal, which can alleviate burst behavior and obtain smaller buffer usage with low latency; in addition, the sender uses the ECN mark ratio for congestion control, and the change of the sending window is scalable, and higher throughput can be obtained. Rate. However, if you simply protect the new flow without performing congestion control in DCTCP, when the queue is truly congested, the new flow will preempt bandwidth and cause congestion to increase.
因此,在拥塞控制时平衡新流性能以及网络性能成为亟待解决的问题。Therefore, balancing new flow performance and network performance during congestion control has become an urgent problem to be solved.
发明内容Summary of the invention
本申请提供一种数据报文传输方法及装置,在拥塞控制时平衡新流性能以及网络性能。The present application provides a data message transmission method and device to balance new flow performance and network performance during congestion control.
为达到上述目的,本申请采用如下技术方案:In order to achieve the above objectives, this application adopts the following technical solutions:
第一方面,提供一种数据报文传输方法,该方法可以包括:第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态;当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识,第一标识用于标识第一网络设备处于稳定拥塞;或者,当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识,第二标识用于标识第二网络设备处于非稳定拥塞,其中,第一标识和第二标识不同。In a first aspect, a data packet transmission method is provided. The method may include: a first network device determines a congestion state of the first network device according to a queue length within a preset time; when the first network device determines that its congestion state is stable When congested, the first network device adds a first identifier to the received first data message, and the first identifier is used to identify that the first network device is in stable congestion; or, when the first network device determines that its congestion state is unstable congestion , The first network device adds a second identifier to the received second data message, the second identifier is used to identify that the second network device is in unstable congestion, where the first identifier and the second identifier are different.
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备 的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。Through the data message transmission method provided in this application, the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference. The identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
其中,非稳定拥塞可以为预设时长内,网络设备的队列长度虽然出现了拥塞现象(队列长度处于拥塞区间),但拥塞情况持续时间短,网络设备的队列并未满载,网络设备的能力可以支持该队列长度,即使队列长度继续增加,并不会导致网络设备的性能急剧下降的一种拥塞状态。Among them, the unsteady congestion can be within a preset time. Although the queue length of the network device is congested (the queue length is in the congestion interval), the congestion situation lasts for a short time, the queue of the network device is not full, and the capacity of the network device can be The queue length is supported. Even if the queue length continues to increase, it will not cause a congestion state in which the performance of the network device drops sharply.
稳定拥塞可以为预设时长内,网络设备的队列长度出现拥塞现象(队列长度处于拥塞区间)的时间长,网络设备的队列已满载,如果队列长度继续增加,网络设备的性能急剧下降的一种拥塞状态。Stable congestion can be a pre-determined period of time. The queue length of the network device is congested (the queue length is in the congestion interval) for a long time, and the queue of the network device is full. If the queue length continues to increase, the performance of the network device will drop sharply. Congestion state.
结合第一方面,在一种可能的实现方式中,第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态,具体可以包括:若该预设时长内,该队列的长度处于拥塞区间的时长小于第一时长,确定第一网络设备的拥塞状态为非稳定拥塞;或,若该预设时长内,队列的长度处于第一区间的时长大于第二时长,确定第一网络设备的拥塞状态为稳定拥塞。第二时长大于或等于第一时长。在该实现方式中,提供了不同拥塞状态的判断标准。With reference to the first aspect, in a possible implementation manner, the first network device determines the congestion state of the first network device according to the queue length within a preset time period, which may specifically include: if the queue length is within the preset time period, If the duration of the congestion interval is less than the first duration, it is determined that the congestion status of the first network device is unstable congestion; or, if the queue length is within the preset duration and the duration of the queue in the first interval is greater than the second duration, the first network is determined The congestion status of the device is stable congestion. The second duration is greater than or equal to the first duration. In this implementation, the criteria for judging different congestion states are provided.
其中,拥塞区间是根据拥塞阈值确定的用于判断是否拥塞的队列长度区间,当队列长度处于(大于或等于区间下限,小于或等于区间上限)拥塞区间时,可以认为出现了拥塞现象。拥塞区间可以包含拥塞阈值,或者,拥塞区间的下限可以大于或等于拥塞阈值,或者,可以根据实际需求按照拥塞阈值确定拥塞区间的范围。The congestion interval is a queue length interval determined according to the congestion threshold for judging whether it is congested. When the queue length is within (greater than or equal to the lower limit of the interval, less than or equal to the upper limit of the interval) congestion interval, it can be considered that congestion has occurred. The congestion interval may include the congestion threshold, or the lower limit of the congestion interval may be greater than or equal to the congestion threshold, or the range of the congestion interval may be determined according to the congestion threshold according to actual needs.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的方法还包括:第一网络设备向第二网络设备发送第一拥塞信息,该第一拥塞信息用于指示第一网络设备的拥塞状态;第二网络设备为数据报文的接收端设备的上一级网络设备。以实现指示该网络设备根据该第一拥塞信息确定新流的发送窗口数,以兼容源端设备不支持ECN的场景。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the method provided in this application further includes: the first network device sends first congestion information to the second network device, and the first network device sends first congestion information to the second network device. The congestion information is used to indicate the congestion state of the first network device; the second network device is the upper-level network device of the receiving end device of the data message. In order to instruct the network device to determine the number of sending windows of the new stream according to the first congestion information, so as to be compatible with the scenario where the source device does not support ECN.
例如,该网络设备可以为接入点(access point,AP)设备。For example, the network device may be an access point (access point, AP) device.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识可以用于指示对接收的第一数据流增加发送窗口数;第二标识可以用于指示对第一数据流降低或保持发送窗口数。其中,第一数据流可以为满足预设条件的数据流。第一数据报文和第二数据报文可以属于第一数据流,也可以不属于第一数据流。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identifier may be used to indicate that the number of sending windows is added to the received first data stream; the second identifier may be used to indicate Reduce or maintain the number of sending windows for the first data stream. Wherein, the first data stream may be a data stream meeting a preset condition. The first data message and the second data message may belong to the first data flow, or may not belong to the first data flow.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识还可以用于指示对第二数据流降低发送窗口数,第一数据流为满足预设条件的第二数据流之外的数据流,第二数据流为第一网络设备正在传输的数据流。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identifier or the second identifier may also be used to indicate that the number of sending windows for the second data stream is reduced, and the first data stream The second data stream is a data stream other than the second data stream that meets the preset condition, and the second data stream is a data stream being transmitted by the first network device.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括第一数据报文或第二数据报文所属的数据流。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second data flow may include the first data packet or the data flow to which the second data packet belongs.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一 标识或第二标识可以添加在网际协议(Internet Protocol,IP)头。In combination with the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identifier or the second identifier may be added to the Internet Protocol (IP) header.
结合第一方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一网络设备可以可以为拥塞点设备。With reference to the first aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first network device may be a congestion point device.
第二方面,本申请提供另一种数据报文传输方法,该方法可以包括:第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态可以包括稳定拥塞和非稳定拥塞;若该拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数;若该拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。In a second aspect, the present application provides another data message transmission method, which may include: a second network device determines the congestion status of a congestion point device on the transmission path of the sent data message within a preset period of time; the congestion The state can include stable congestion and unstable congestion; if the congestion state is unstable congestion, the second network device increases the number of sending windows for the first data flow; if the congestion state is stable congestion, the second network device responds to the first data flow Reduce or maintain the number of sending windows.
通过本申请提供的数据报文传输方法,根据预设时长内拥塞点设备的拥塞状态,在不同的拥塞状态下采用不同的方案确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低或保持第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。According to the data packet transmission method provided in the present application, according to the congestion state of the congestion point device within a preset time period, different schemes are adopted to determine the number of transmission windows of the first data stream in different congestion states. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced or maintained, achieving a balance between data stream performance and network performance during congestion control.
结合第二方面,在一种可能的实现方式中,稳定拥塞可以为预设时长内,拥塞点设备的队列的长度存在处于拥塞区间的时长小于第一时长;或,稳定拥塞可以为预设时长内,拥塞点设备的队列的长度处于拥塞区间的时长大于第二时长。在该实现方式中,提供了不同拥塞状态的判断标准。With reference to the second aspect, in a possible implementation manner, stable congestion may be within a preset duration, and the length of the queue of the congestion point device in the congestion interval is less than the first duration; or, stable congestion may be a preset duration Inside, the length of the queue of the congested point device is in the congestion interval for a period of time greater than the second period of time. In this implementation, the criteria for judging different congestion states are provided.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备为该数据报文的接收端设备的上一级网络设备。第二网络设备确定该数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备从拥塞点设备接收第一拥塞信息,该第一拥塞信息可以用于指示该拥塞点设备的拥塞状态。相应的,本申请提供的方法还可以包括:第二网络设备向该数据报文的发送端设备发送第一数据流的发送窗口数。在该实现方式中,由接收端设备的上一级网络设备根据第一拥塞信息确定拥塞点设备的拥塞状态,进而确定第一数据流的发送窗口数,将确定的第一数据流的发送窗口数提供给数据报文的发送端设备,以兼容源端设备不支持ECN的场景。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second network device is an upper-level network device of the receiving end device of the data packet. The second network device determining the congestion status of the congestion point device on the data packet transmission path may specifically include: the second network device receives first congestion information from the congestion point device, and the first congestion information may be used to indicate the congestion point The congestion status of the device. Correspondingly, the method provided in this application may further include: the second network device sends the number of sending windows of the first data stream to the sending end device of the data packet. In this implementation, the upper-level network device of the receiving end device determines the congestion status of the congestion point device according to the first congestion information, and then determines the number of sending windows of the first data stream, and determines the sending window of the first data stream. The data is provided to the sender device of the data message to be compatible with scenarios where the source device does not support ECN.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备从拥塞点设备接收的第一拥塞信息,可以为拥塞点设备向第二网络设备发送的专用信令。例如,该专用信令可以为采用私有协议的控制报文。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first congestion information received by the second network device from the congestion point device may be sent by the congestion point device to the second network device Dedicated signaling. For example, the dedicated signaling may be a control message using a private protocol.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备可以为该数据报文的发送端设备,第二网络设备确定该数据报文传输路径上的拥塞点设备的拥塞状态,可以包括:第二网络设备接收该数据报文的确认字符(acknowledgement,ACK)报文,该ACK报文的报文头中携带用于指示该拥塞点设备的拥塞状态的第二拥塞信息。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second network device may be the sender device of the data packet, and the second network device determines the data packet transmission path The congestion status of the device at the congestion point may include: the second network device receives an acknowledgement (ACK) message of the data message, and the header of the ACK message carries a message indicating the congestion point device The second congestion information of the congestion state.
其中,ACK报文由该数据报文的接收端设备在接收到数据报文后发送。Among them, the ACK message is sent by the receiving end device of the data message after receiving the data message.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一数据流可以为满足预设条件的数据流。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first data stream may be a data stream that meets a preset condition.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,该预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。In combination with the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time .
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,携带 于ACK报文中的第二拥塞信息,可以为数据报文的接收端设备根据数据报文中的标识,在ACK报文中设置的标识。例如,携带于ACK报文中的第二拥塞信息,可以为用于标识拥塞点设备处于非稳定拥塞的第三标识,或,用于标识拥塞点设备处于稳定拥塞的第四标识。In combination with the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second congestion information carried in the ACK message may be the receiving end device of the data message according to the data message The identifier, which is set in the ACK packet. For example, the second congestion information carried in the ACK message may be a third identifier used to identify that the congestion point device is in unstable congestion, or a fourth identifier used to identify that the congestion point device is in stable congestion.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,ACK报文的ECN报文头中可以携带第二拥塞信息。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the ECN header of the ACK message may carry the second congestion information.
其中,当数据报文传输路径中的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞,该数据报文中可以携带第一标识,第一标识用于标识拥塞点设备处于非稳定拥塞;当数据报文传输路径中的拥塞点设备在预设时长内的拥塞状态为稳定拥塞,该数据报文中可以携带第二标识,第二标识用于标识拥塞点设备处于稳定拥塞。Among them, when the congestion state of the congestion point device in the data message transmission path is unstable congestion within the preset time period, the data message can carry a first identifier, and the first identifier is used to identify that the congestion point device is in unstable congestion. ; When the congestion state of the congestion point device in the data message transmission path is stable congestion within a preset time period, the data message may carry a second identifier, and the second identifier is used to identify the congestion point device in stable congestion.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备降低第一数据流的发送窗口数,可以根据DCTCP机制的方案实现。In combination with the second aspect or any one of the foregoing possible implementation manners, in another possible implementation manner, the second network device reduces the number of sending windows of the first data stream, which can be implemented according to the scheme of the DCTCP mechanism.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备增加或保持第一数据流的发送窗口数,可以根据爬窗机制的方案实现。In combination with the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second network device increases or maintains the number of sending windows of the first data stream, which can be implemented according to a window-climbing mechanism solution.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,本申请提供的数据报文传输方法还可以包括:第二网络设备在确定拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,第二网络设备还可以降低第二数据流的发送窗口数,第二数据流为第一网络设备正在传输的数据流。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the data packet transmission method provided in this application may further include: the second network device determines that the congestion status of the congestion point device is In stable congestion or unstable congestion, the second network device can also reduce the number of sending windows of the second data stream, which is the data stream being transmitted by the first network device.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二网络设备降低第二数据流的发送窗口数,可以根据DCTCP机制的方案实现。In combination with the second aspect or any one of the foregoing possible implementation manners, in another possible implementation manner, the second network device reduces the number of sending windows of the second data stream, which can be implemented according to the scheme of the DCTCP mechanism.
结合第二方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括上述所发送的数据报文所属的数据流。With reference to the second aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second data stream may include the data stream to which the foregoing sent data packet belongs.
第三方面,本申请提供再一种报文传输方法,该方法可以包括:第三网络设备接收数据报文;若该数据报文中标记了第一标识,第三网络设备在该数据报文的ACK报文中标记第三标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞;或者,若该数据报文中标记了第二标识,第三网络设备在该数据报文的ACK报文中标记第四标识;其中,第二标识及第四标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞;第三网络设备向该数据报文的发送端设备发送标记后的ACK报文。In a third aspect, this application provides yet another message transmission method. The method may include: a third network device receives a data message; if the data message is marked with a first identifier, the third network device may The third identifier is marked in the ACK message; where the first identifier and the third identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path is unstable congestion within a preset period of time; or, if this The second identifier is marked in the data message, and the third network device marks the fourth identifier in the ACK message of the data message; the second identifier and the fourth identifier are used to indicate congestion on the transmission path of the data message The congestion state of the point device within the preset time period is stable congestion; the third network device sends a marked ACK message to the sender device of the data message.
通过本申请提供的数据报文传输方法,第三网络设备根据数据报文传输路径上拥塞点设备在预设时长内的拥塞状态,在不同的拥塞状态下对数据报文的ACK报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。According to the data message transmission method provided in this application, the third network device adds different values to the ACK message of the data message in different congestion states according to the congestion state of the congestion point device on the data message transmission path within a preset time period. So that other devices can determine the number of sending windows for the first data stream according to the different identifiers. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识及第三标识可以用于指示对第一数据流增加发送窗口数;第二标识及第四标识可以用于指示对第一数据流降低或保持发送窗口数。其中,第一数据流为满足预设条件的数据流。With reference to the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identifier and the third identifier can be used to indicate that the number of sending windows is added to the first data stream; the second identifier and the first The four flags can be used to indicate to reduce or maintain the number of sending windows for the first data stream. Among them, the first data stream is a data stream that meets a preset condition.
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一 标识或第二标识或第三标识或第四标识还可以用于指示对第二数据流降低发送窗口数,第一数据流为满足预设条件的第二数据流之外的数据流,第二数据流为第一网络设备正在传输的数据流。In combination with the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identification or the second identification or the third identification or the fourth identification can also be used to indicate that the second data stream is reduced The number of sending windows, the first data stream is a data stream other than the second data stream that meets the preset condition, and the second data stream is a data stream being transmitted by the first network device.
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第二数据流可以包括上述接收的数据报文所属的数据流。With reference to the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the second data stream may include the data stream to which the received data packet belongs.
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。With reference to the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
结合第三方面或上述任一种可能的实现方式,在另一种可能的实现方式中,第一标识或第二标识可以添加在IP报文头中,第三标识或第四标识可以添加在TCP报文头中。In combination with the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the first identification or the second identification can be added to the IP packet header, and the third or fourth identification can be added to In the TCP header.
需要说明的是,上述第一方面、第二方面及第三方面提供的数据报文传输方法的具体实现,可以相互参考,不再一一赘述。It should be noted that the specific implementations of the data packet transmission methods provided in the first, second, and third aspects can be referred to each other, and will not be repeated one by one.
第四方面,本申请提供一种数据报文传输装置,该装置可以部署于第一网络设备,或与第一网络设备匹配。该装置可以包括确定单元及处理单元。其中:In a fourth aspect, the present application provides a data message transmission device, which can be deployed in a first network device or matched with the first network device. The device may include a determining unit and a processing unit. in:
确定单元用于根据预设时长内队列长度,确定第一网络设备的拥塞状态。The determining unit is configured to determine the congestion state of the first network device according to the queue length within the preset time period.
处理单元用于当确定单元确定第一网络设备的拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,该第一标识用于标识第一网络设备处于非稳定拥塞。The processing unit is configured to add a first identifier to the received first data message when the determining unit determines that the congestion state of the first network device is unstable congestion, where the first identifier is used to identify that the first network device is in unstable congestion.
或者,处理单元用于当确定单元确定第一网络设备的拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,该第二标识用于标识第一网络设备处于稳定拥塞。其中,第一标识和第二标识不同。Alternatively, the processing unit is configured to, when the determining unit determines that the congestion state of the first network device is stable congestion, add a second identifier to the received second data message, and the second identifier is used to identify that the first network device is in stable congestion. Among them, the first identifier and the second identifier are different.
需要说明的是,第四方面的各个单元具体实现同第一方面的方法描述,这里不再赘述。It should be noted that the specific implementation of each unit of the fourth aspect is the same as the method description of the first aspect, and will not be repeated here.
第五方面,本申请提供另一种数据报文传输装置,该装置可以部署于第二网络设备,或与第二网络设备匹配。该装置可以包括确定单元及处理单元。其中:In the fifth aspect, the present application provides another data packet transmission device, which can be deployed in a second network device or matched with the second network device. The device may include a determining unit and a processing unit. in:
确定单元用于确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态包括稳定拥塞和非稳定拥塞。The determining unit is used to determine the congestion state of the congestion point device on the transmission path of the sent data message within a preset period of time; the congestion state includes stable congestion and unstable congestion.
处理单元用于若确定单元确定的该拥塞状态为非稳定拥塞,对第一数据流增加发送窗口数。The processing unit is configured to increase the number of sending windows to the first data stream if the congestion state determined by the determining unit is unstable congestion.
或者,该处理单元还用于若确定单元确定的该拥塞状态为稳定拥塞,对第一数据流降低或保持发送窗口数。Alternatively, the processing unit is further configured to reduce or maintain the number of sending windows for the first data stream if the congestion state determined by the determining unit is stable congestion.
需要说明的是,第五方面的各个单元具体实现同第二方面的方法描述,这里不再赘述。It should be noted that the specific implementation of each unit of the fifth aspect is the same as the method description of the second aspect, and details are not repeated here.
第六方面,本申请提供再一种报文传输装置,该装置可以部署于第三网络设备,或与第三网络设备匹配。该装置可以包括:接收单元、处理单元及发送单元。其中,In a sixth aspect, this application provides yet another message transmission device, which can be deployed in a third network device or matched with the third network device. The device may include: a receiving unit, a processing unit, and a sending unit. in,
接收单元用于接收数据报文。The receiving unit is used to receive data messages.
处理单元用于若该数据报文中标记了第一标识,在该数据报文的ACK报文中标记第三标识;或者,若该数据报文中标记了第二标识,在该数据报文的ACK报文中标记第四标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。第二标识及第四标识用于指示该数据报文传 输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。The processing unit is configured to, if the first identifier is marked in the data message, mark the third identifier in the ACK message of the data message; or, if the second identifier is marked in the data message, in the data message The fourth identifier is marked in the ACK message; where the first identifier and the third identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path within a preset period of time is unstable congestion. The second identifier and the fourth identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path is stable congestion within the preset time period.
发送单元用于向该数据报文的发送端设备发送标记后的ACK报文。The sending unit is used to send a marked ACK message to the sender device of the data message.
需要说明的是,第六方面的各个单元具体实现同第三方面的方法描述,这里不再赘述。It should be noted that the specific implementation of each unit of the sixth aspect is the same as the method description of the third aspect, and will not be repeated here.
第七方面,本申请提供了一种网络设备,该网络设备可以实现上述所述第一方面至第三方面中任一方面描述的方法示例中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该网络设备可以以芯片的产品形态存在。In a seventh aspect, the present application provides a network device that can implement the function in the method example described in any one of the first to third aspects. The function can be implemented by hardware or Implementation of the corresponding software through hardware. The hardware or software includes one or more modules corresponding to the above-mentioned functions. The network device can exist in the form of a chip product.
结合第七方面,在一种可能的实现方式中,该网络设备的结构中包括处理器和收发器,该处理器被配置为支持该网络设备执行上述方法中相应的功能。该收发器用于支持该网络设备与其他设备之间的通信。该网络设备还可以包括存储器,该存储器用于与处理器耦合,其保存该网络设备必要的程序指令和数据。With reference to the seventh aspect, in a possible implementation manner, the structure of the network device includes a processor and a transceiver, and the processor is configured to support the network device to perform corresponding functions in the foregoing method. The transceiver is used to support communication between the network device and other devices. The network device may also include a memory, which is used for coupling with the processor, and stores the necessary program instructions and data of the network device.
第八方面,提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面或其任一种可能的实现方式提供的数据报文传输方法。In an eighth aspect, a computer-readable storage medium is provided, including instructions, which when run on a computer, cause the computer to execute the data packet provided by the first to third aspects or any one of the possible implementations thereof Transmission method.
第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面或其任一种可能的实现方式提供的数据报文传输方法。In a ninth aspect, a computer program product containing instructions is provided, which when it runs on a computer, causes the computer to execute the data packet transmission method provided in the first to third aspects or any one of its possible implementation manners. .
第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中相应的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。In a tenth aspect, the present application provides a chip system that includes a processor and may also include a memory for implementing corresponding functions in the foregoing method. The chip system can be composed of chips, or it can include chips and other discrete devices.
第十一方面,本申请提供一种数据报文传输系统,该系统包括第一方面的第一网络设备、第二方面的第二网络设备和第三方面的第三网络设备,分别具备上述各个方面以及任一可能的实现方式的功能。In an eleventh aspect, the present application provides a data message transmission system. The system includes the first network device of the first aspect, the second network device of the second aspect, and the third network device of the third aspect, each of which is provided with each of the foregoing Aspects and functions of any possible implementation.
其中,需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。Among them, it should be noted that various possible implementation manners of any one of the above aspects can be combined on the premise that the solutions are not contradictory.
附图说明Description of the drawings
图1为本申请实施例提供的一种数据网络的结构示意图;FIG. 1 is a schematic structural diagram of a data network provided by an embodiment of this application;
图2为本申请实施例提供的一种网络设备的结构示意图;FIG. 2 is a schematic structural diagram of a network device provided by an embodiment of this application;
图3为本申请实施例提供的一种数据报文传输方法的流程示意图;FIG. 3 is a schematic flowchart of a data packet transmission method provided by an embodiment of the application;
图4为本申请实施例提供的一种队列长度与拥塞阈值、拥塞区间的对比示意图;FIG. 4 is a schematic diagram of a comparison between queue length, congestion threshold, and congestion interval according to an embodiment of the application;
图5为本申请实施例提供的一种第一网络设备的结构示意图;FIG. 5 is a schematic structural diagram of a first network device provided by an embodiment of this application;
图6为本申请实施例提供的另一种数据报文传输方法的流程示意图;FIG. 6 is a schematic flowchart of another data packet transmission method provided by an embodiment of the application;
图7为本申请实施例提供的再一种数据报文传输方法的流程示意图;FIG. 7 is a schematic flowchart of yet another data packet transmission method provided by an embodiment of this application;
图8为本申请实施例提供的又一种数据报文传输方法的流程示意图;FIG. 8 is a schematic flowchart of another data packet transmission method provided by an embodiment of this application;
图9为本申请实施例提供的一种数据报文传输装置的结构示意图;FIG. 9 is a schematic structural diagram of a data packet transmission device provided by an embodiment of the application;
图10为本申请实施例提供的另一种数据报文传输装置的结构示意图;FIG. 10 is a schematic structural diagram of another data message transmission apparatus provided by an embodiment of the application;
图11为本申请实施例提供的另一种网络设备的结构示意图。FIG. 11 is a schematic structural diagram of another network device provided by an embodiment of this application.
具体实施方式Detailed ways
在本申请实施例中,为了便于清楚描述本申请实施例的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。该“第一”、第二”描述的技术特征间无先后顺序或者大小顺序。In the embodiments of the present application, in order to facilitate a clear description of the technical solutions of the embodiments of the present application, words such as "first" and "second" are used to distinguish the same or similar items with basically the same function and effect. Those skilled in the art can understand that the words "first", "second" and the like do not limit the quantity and order of execution, and the words "first" and "second" do not limit the difference. The “first” and second descriptions of technical features have no order or size order.
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。In the embodiments of the present application, words such as "exemplary" or "for example" are used as examples, illustrations, or illustrations. Any embodiment or design solution described as "exemplary" or "for example" in the embodiments of the present application should not be construed as being more preferable or advantageous than other embodiments or design solutions. To be precise, words such as "exemplary" or "for example" are used to present related concepts in a specific manner to facilitate understanding.
在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,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可以是单个,也可以是多个。In the description of this application, unless otherwise specified, "/" indicates that the related objects are in an "or" relationship. For example, A/B can mean A or B; the "and/or" in this application is only It is a kind of association relationship that describes the associated objects, which means that there can be three kinds of relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, and B exists alone. Among them, A, B It can be singular or plural. Also, in the description of this application, unless otherwise specified, "plurality" means two or more than two. "The following at least one item (a)" or similar expressions refers to any combination of these items, including any combination of a single item (a) or a plurality of items (a). For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple .
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。In the embodiments of the present application, at least one may also be described as one or more, and the multiple may be two, three, four or more, which is not limited in the present application.
在描述本申请的实施例之前,此处先对本申请涉及的名词统一进行解释说明,后续不再一一进行说明。Before describing the embodiments of the present application, the terms involved in the present application will be explained and explained in a unified manner here, and will not be explained one by one in the following.
数据报文,是指网络通信中传输数据的最小单位,也可以称为数据包或者报文。一个数据报文包括报文头部分及载荷部分。其中,报文头部分可以包括控制信息,载荷部分可以包括有效数据信息。Data message refers to the smallest unit of data transmission in network communication, and can also be called a data packet or message. A data message includes a header part and a payload part. Among them, the header part of the message may include control information, and the payload part may include valid data information.
数据流,可以为网络通信中进行一个业务的数据报文的集合。A data stream can be a collection of data packets that perform a business in network communication.
拥塞点设备,数据的传输路径中预先配置的用于评估拥塞的中间节点设备。拥塞点设备可以为交换设备,例如交换机或者路由器或者其他。可以根据实际需求配置拥塞点设备在传输路径上的位置。Congestion point device, an intermediate node device pre-configured in the data transmission path for congestion assessment. The congestion point device may be a switching device, such as a switch or router or others. The position of the congestion point device on the transmission path can be configured according to actual needs.
数据报文的发送端设备,是指发送数据报文的源端设备。The sender device of the data message refers to the source device that sends the data message.
数据报文的接收端设备,是指数据报文的目的设备。The receiving end device of the data message refers to the destination device of the data message.
接收端设备的上一级网络设备,是指数据报文的传输路径上,距离接收端设备最近的网络设备。例如,接收端设备的上一级网络设备可以为接收端设备连接的AP设备。AP设备是指提供接入服务的网络设备,其形态可以为路由器、交换机、基站或其他,本申请不予限定。The upper-level network device of the receiving end device refers to the network device closest to the receiving end device on the transmission path of the data message. For example, the upper level network device of the receiving end device may be an AP device connected to the receiving end device. AP equipment refers to network equipment that provides access services, and its form can be routers, switches, base stations, or others, which is not limited by this application.
拥塞阈值,预先配置的用于判断是否达到拥塞程度的队列长度门限。可以为静态值或者动态值。Congestion threshold, a pre-configured queue length threshold used to determine whether the congestion level is reached. It can be a static value or a dynamic value.
拥塞区间,是根据拥塞阈值确定的用于判断是否拥塞的队列长度区间。当队列长度处于(大于或等于区间下限,小于或等于区间上限)拥塞区间时,可以认为出现了拥塞现象。拥塞区间可以包含拥塞阈值,或者,拥塞区间的下限可以大于或等于拥塞 阈值,或者,可以根据实际需求按照拥塞阈值确定拥塞区间的范围。The congestion interval is a queue length interval determined according to the congestion threshold for judging whether it is congested. When the queue length is in the congestion interval (greater than or equal to the lower limit of the interval, less than or equal to the upper limit of the interval), it can be considered that congestion has occurred. The congestion interval may include the congestion threshold, or the lower limit of the congestion interval may be greater than or equal to the congestion threshold, or the range of the congestion interval may be determined according to the actual demand according to the congestion threshold.
非稳定拥塞(可以称为偶然拥塞、非满载拥塞或其他),可以为预设时长内,网络设备的队列长度虽然出现了拥塞现象(队列长度处于拥塞区间),但拥塞情况持续时间短,网络设备的队列并未满载,网络设备的能力可以支持该队列长度,即使队列长度继续增加,并不会导致网络设备的性能急剧下降的一种拥塞状态。Unsteady congestion (can be called accidental congestion, non-full-load congestion, or other). It can be within a preset time period. Although the queue length of the network device is congested (the queue length is in the congestion interval), the congestion situation lasts for a short time. The queue of the device is not full, and the capacity of the network device can support the queue length. Even if the queue length continues to increase, a congestion state in which the performance of the network device will not drop sharply.
稳定拥塞(可以称为非偶然拥塞、满载拥塞或其他),可以为预设时长内,网络设备的队列长度出现拥塞现象(队列长度处于拥塞区间)的时间长,网络设备的队列已满载,如果队列长度继续增加,网络设备的性能急剧下降的一种拥塞状态。Stable congestion (can be called non-incidental congestion, full-load congestion, or other). It can be that the queue length of the network device is congested for a long time (the queue length is in the congestion interval) within the preset time period, and the queue of the network device is full. The queue length continues to increase, and the performance of the network equipment drops sharply in a congested state.
为了解决TCP机制导致的时延增加、尾丢弃带来的TCP全局同步等问题,DCTCP技术在IP层和TCP层使用ECN作为网络拥塞信号进行拥塞控制。具体方案为:拥塞点设备根据队列长度与阈值比对,队列长度超过阈值,拥塞点设备在之后进入其队列的数据报文的IP头部的ECN字段中打上ECN的标记,使得接收端设备在接收的时候根据IP头的ECN标记,将ACK报文的ECN头也进行标记,将ECN标记通过ACK报文通知到发送端设备,发送端设备最终根据ECN标记的比例进行窗口调节。In order to solve the problems of increased delay caused by TCP mechanism and TCP global synchronization caused by tail drop, DCTCP technology uses ECN as a network congestion signal for congestion control at the IP and TCP layers. The specific solution is: the congestion point device compares the queue length with the threshold, and the queue length exceeds the threshold. The congestion point device will mark the ECN in the ECN field of the IP header of the data packet that enters its queue later, so that the receiving device is in When receiving, according to the ECN mark in the IP header, the ECN header of the ACK message is also marked, and the ECN mark is notified to the sending end device through the ACK message, and the sending end device finally adjusts the window according to the ratio of the ECN mark.
具体的,在请求文档(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标志位可以对网络拥塞作出对应的响应。Specifically, in the request for comments (RFC) 3168, if the transport layer also supports the ECN function, then a transport layer ECN capability (ECN-Capable Transport) can be set in the ECN field in the IP header of the data message. , ECT) indication, when the intermediate router detects that a certain data message should be used to indicate congestion, if the ECT indication of this data packet is valid (ECT is marked as 0 or 1), then this data message can be marked as CE is valid (mark the CE as 1), and then when the receiving end TCP receives this data message, if it finds that the CE is valid, you can set the ECN-Echo flag bit (also known as the TCP header) in the subsequent ACK message ECE mark) is 1 to indicate congestion. When the sender receives an ACK message, it can respond to network congestion according to the ECN-Echo flag.
在RFC3168中,IP报文头中的ECT指示及CE指示可以看作IP报文头中的ECN标记,将TCP头中的ECN-Echo标志位看作TCP报文头中的ECN标记。In RFC3168, the ECT indication and CE indication in the IP header can be regarded as the ECN marking in the IP header, and the ECN-Echo flag in the TCP header is regarded as the ECN marking in the TCP header.
DCTCP机制中,发送端设备收到TCP头带有ECN-Echo=1或0的ACK报文时,在一个RTT内对数据流的发送窗口进行调节,具体为将发送窗口数cwnd调整为原cwnd*(1–a/2)。其中,a可以动态调整为(1-g)*a+g*F。In the DCTCP mechanism, when the sender device receives an ACK message with ECN-Echo=1 or 0 in the TCP header, it adjusts the sending window of the data stream within an RTT, specifically adjusting the number of sending windows cwnd to the original cwnd *(1–a/2). Among them, a can be dynamically adjusted to (1-g)*a+g*F.
其中:F为接收到的上一个窗口中ECE标记为1的ACK报文比例。Among them: F is the proportion of received ACK packets with ECE marked as 1 in the previous window.
g为可调参数,用于评估拥塞概率。例如,g的上限可以是1.386/(2(C*RTT+K))。g is an adjustable parameter used to evaluate the probability of congestion. For example, the upper limit of g may be 1.386/(2(C*RTT+K)).
K为可调参数,是网络设备判断是否处于拥塞状态的阀值。例如,K的下限可以是(C*RTT)/7。可以根据实际需求配置K的取值,本申请不予限定。K is an adjustable parameter, which is a threshold for network equipment to judge whether it is in a congested state. For example, the lower limit of K can be (C*RTT)/7. The value of K can be configured according to actual needs, which is not limited in this application.
C为链路的带宽。C is the bandwidth of the link.
但是,上述DCTCP机制中通过阈值简单判断是否拥塞,势必会将队列长度偶尔超过阈值但网络设备的队列并未满载,即使队列再进入数据报文,也不会导致网络设备性能急剧下降的特殊情况(这种特殊情况下,网络设备其实是可以按照原窗口处理数据报文的)判定为拥塞,进而进行拥塞控制。这样一来,虽然有效提高了网络性能,但却导致新的数据流(满足预设条件的数据流,例如待传输的数据流或者建链时间晚于预设时刻的数据流)需要花费较长时间与老流分享带宽以达到自身业务带宽需求。若从保证新数据流的性能角度出发,单纯的在系统拥塞控制时,对新数据流例外处理, 而不进行拥塞控制,一旦网络出现严重拥塞,新数据流会造成拥塞加剧,严重影响网络性能,因此,拥塞控制时平衡新流性能以及网络性能尤为重要。However, in the above DCTCP mechanism, the threshold is simply used to determine whether congestion is caused. The queue length will inevitably exceed the threshold occasionally but the queue of the network device is not full. Even if the queue enters data packets again, it will not cause a special situation in which the performance of the network device will drop sharply. (In this special case, the network device can actually process the data message according to the original window). It is determined to be congested, and congestion control is performed. In this way, although the network performance is effectively improved, new data streams (data streams that meet preset conditions, such as data streams to be transmitted or data streams whose link establishment time is later than the preset time) need to be spent longer Time to share bandwidth with old streams to meet their own business bandwidth requirements. From the perspective of ensuring the performance of the new data stream, the new data stream will be treated exclusively during system congestion control without congestion control. Once the network is severely congested, the new data stream will increase the congestion and seriously affect the network performance. Therefore, it is particularly important to balance new flow performance and network performance during congestion control.
基于此,本申请实施例提供一种数据报文传输方法,拥塞点设备根据预设时长内的队列长度,判断其拥塞状态为稳定拥塞或非稳定拥塞,在不同的拥塞状态下对数据报文进行不同的标记,以使得进行拥塞控制的设备根据标记对不同的数据流采用不同的控窗方案,在非稳定拥塞下对新数据流增加发送窗口数,在稳定拥塞下对新数据流降低或保持发送窗口数,以实现拥塞控制时平衡新流性能以及网络性能。Based on this, the embodiment of the present application provides a data message transmission method. The congestion point device determines whether its congestion state is stable congestion or non-steady congestion according to the queue length within a preset time period, and responds to data messages in different congestion states. Perform different markings so that the congestion control device adopts different window control schemes for different data streams according to the markings. Under unstable congestion, new data streams are increased in the number of sending windows, and new data streams are reduced or reduced under stable congestion. Keep the number of sending windows to balance new flow performance and network performance during congestion control.
本申请实施例提供的数据报文传输方法可以适用于图1示出的数据网络10。数据网络10可以为通信网络,也可以为计算机网络,本申请对数据网络的类型不进行具体限定。如图1所示,该数据网络10包括发送端设备101、至少一个转发设备102接收端设备103。其中,转发设备102还可以称之为节点设备、转发节点等。The data packet transmission method provided by the embodiment of the present application may be applicable to the data network 10 shown in FIG. 1. The data network 10 may be a communication network or a computer network, and the type of the data network is not specifically limited in this application. As shown in FIG. 1, the data network 10 includes a sending end device 101 and at least one forwarding device 102 and a receiving end device 103. Among them, the forwarding device 102 may also be referred to as a node device, a forwarding node, and so on.
其中,发送端设备101可以为数据报文的生成设备,至少一个转发设备102可以为数据报文从发送端设备101到接收端设备103的传输路径上的设备。转发设备102可以为交换机或路由器或其他具备数据报文转发能力的网络设备,本申请实施例中对于转发设备102的实际产品形态不予限定。接收端设备103接收到数据报文后,生成对应的ACK报文发送给发送端设备101。The sending end device 101 may be a data message generating device, and the at least one forwarding device 102 may be a device on the transmission path of the data message from the sending end device 101 to the receiving end device 103. The forwarding device 102 may be a switch or router or other network device capable of forwarding data packets. In the embodiment of the present application, the actual product form of the forwarding device 102 is not limited. After receiving the data message, the receiving end device 103 generates a corresponding ACK message and sends it to the sending end device 101.
数据报文从发送端设备101到接收端设备103的传输路径上的任一转发设备102,可以被配置为拥塞点设备,用于对网络拥塞进行监控。Any forwarding device 102 on the transmission path of the data message from the sending end device 101 to the receiving end device 103 can be configured as a congestion point device for monitoring network congestion.
被配置为拥塞点设备的转发设备102可以根据本申请提供的数据报文传输方法确定其拥塞状态,并对数据报文进行标记。The forwarding device 102 configured as a congestion point device can determine its congestion state according to the data message transmission method provided in this application, and mark the data message.
一种可能的实现方式中,接收端设备103可以根据拥塞点设备对数据报文的标记,对数据报文的ACK报文进行相应标记,以指示发送端设备101进行拥塞控制。In a possible implementation manner, the receiving end device 103 may mark the ACK packet of the data packet according to the marking of the data packet by the congestion point device, so as to instruct the transmitting end device 101 to perform congestion control.
另一种可能的实现方式中,接收端设备103的上一级网络设备(图1中未示出)(例如AP设备)可以根据拥塞点设备提供的拥塞信息,进行拥塞控制,并拦截接收端设备103发送的ACK报文,在ACK报文中携带拥塞控制确定的发送窗口数,将ACK报文发送至发送端设备101。In another possible implementation manner, the upper-level network device (not shown in Figure 1) of the receiving end device 103 (such as an AP device) can perform congestion control based on the congestion information provided by the congestion point device, and intercept the receiving end The ACK message sent by the device 103 carries the number of sending windows determined by the congestion control in the ACK message, and sends the ACK message to the sending end device 101.
需要说明的是,数据网络10包括的各个设备的数量以及具体架构,可以根据实际需求配置,本申请实施例对于数据网络10的规模及具体架构均不进行限定。It should be noted that the number and specific architecture of each device included in the data network 10 can be configured according to actual requirements, and the embodiment of the present application does not limit the scale and specific architecture of the data network 10.
下面结合附图,对本申请的实施例进行具体阐述。The embodiments of the present application will be described in detail below in conjunction with the drawings.
一方面,本申请实施例提供一种网络设备,用于执行本申请提供的数据报文传输方法,该网络设备可以为图1示意的数据网络10中的发送端设备101、被配置为拥塞点设备的转发设备102、接收端设备103中的至少一种。或者,该网络设备可以为图1示意的数据网络10中的接收端设备103的上一级AP设备。图2示出的是与本申请各实施例相关的一种网络设备20。如图2所示,网络设备20可以包括处理器201、存储器202以及收发器203。On the one hand, an embodiment of the present application provides a network device for executing the data packet transmission method provided by the present application. The network device may be the sender device 101 in the data network 10 shown in FIG. 1, and is configured as a congestion point. At least one of the forwarding device 102 and the receiving end device 103 of the device. Alternatively, the network device may be an upper-level AP device of the receiving end device 103 in the data network 10 shown in FIG. 1. FIG. 2 shows a network device 20 related to various embodiments of the present application. As shown in FIG. 2, the network device 20 may include a processor 201, a memory 202, and a transceiver 203.
下面结合图2对网络设备20的各个构成部件进行具体的介绍:In the following, each component of the network device 20 will be specifically introduced with reference to FIG. 2:
其中,存储器202可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard  disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、配置文件或其他内容。Among them, the memory 202 may be a volatile memory (volatile memory), such as a random-access memory (random-access memory, RAM); or a non-volatile memory (non-volatile memory), such as a read-only memory (read-only memory). memory, ROM), flash memory (flash memory), hard disk (hard disk drive, HDD) or solid-state drive (solid-state drive, SSD); or a combination of the above-mentioned types of memory, used to store materials that can implement the method of this application Program code, configuration files or other content.
处理器201是网络设备20的控制中心。例如,处理器201可以是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。The processor 201 is the control center of the network device 20. For example, the processor 201 may be a central processing unit (CPU), an application specific integrated circuit (ASIC), or it may be configured to implement one or more integrated circuits of the embodiments of the present application. Circuits, for example: one or more microprocessors (digital singnal processors, DSP), or one or more field programmable gate arrays (FPGA).
收发器203用于与其他设备进行通信。收发器203可以为网络设备20的通信端口或者其他。The transceiver 203 is used to communicate with other devices. The transceiver 203 may be a communication port of the network device 20 or others.
一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:In a possible implementation manner, the processor 201 executes the following functions by running or executing software programs and/or modules stored in the memory 202, and calling data stored in the memory 202:
根据预设时长内队列长度,确定网络设备20的拥塞状态;当确定其拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,第一标识用于标识网络设备20处于非稳定拥塞;或者,当确定其拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,第二标识用于标识网络设备20处于稳定拥塞,其中,第一标识和第二标识不同Determine the congestion state of the network device 20 according to the queue length within the preset time; when it is determined that the congestion state is unstable congestion, a first identifier is added to the received first data message, and the first identifier is used to identify that the network device 20 is in Unsteady congestion; or, when it is determined that the congestion state is stable congestion, a second identifier is added to the received second data message. The second identifier is used to identify that the network device 20 is in stable congestion, where the first identifier and the second Different logo
另一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:In another possible implementation manner, the processor 201 executes the following functions by running or executing software programs and/or modules stored in the memory 202, and calling data stored in the memory 202:
确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;该拥塞状态可以包括稳定拥塞和非稳定拥塞;若该拥塞状态为非稳定拥塞,对第一数据流增加发送窗口数;或者,若该拥塞状态为稳定拥塞,对第一数据流降低或保持发送窗口数。Determine the congestion state of the device at the congestion point on the transmission path of the sent data message within a preset period of time; the congestion state can include stable congestion and non-steady congestion; if the congestion state is non-steady congestion, add to the first data stream The number of sending windows; or, if the congestion state is stable congestion, reduce or keep the number of sending windows for the first data stream.
另一种可能的实现方式中,处理器201通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行如下功能:In another possible implementation manner, the processor 201 executes the following functions by running or executing software programs and/or modules stored in the memory 202, and calling data stored in the memory 202:
接收数据报文;若该数据报文的报文头中标记了第一标识,在该数据报文的ACK报文的报文头中标记第三标识;其中,第一标识及第三标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞;或者,若该数据报文的报文头中标记了第二标识,在该数据报文的ACK报文的报文头中标记第四标识;其中,第二标识及第四标识用于指示该数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞;向该数据报文的发送端设备发送标记后的ACK报文。Receive a data message; if the first identifier is marked in the header of the data message, mark the third identifier in the header of the ACK message of the data message; where the first identifier and the third identifier are used To indicate that the congestion state of the device at the congestion point on the transmission path of the data message is unstable congestion within the preset time period; or, if the second identifier is marked in the header of the data message, in the data message The fourth identifier is marked in the header of the ACK message; the second identifier and the fourth identifier are used to indicate that the congestion state of the congestion point device on the data message transmission path within the preset time period is stable congestion; The sender device of the data message sends the marked ACK message.
另一方面,本申请实施例提供一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案进行详细描述,其他不在一一赘述。On the other hand, an embodiment of the present application provides a data message transmission method, which is applied to congestion control in the process of data message transmission on a data network. It should be noted that the solution provided in this application has a similar transmission process for each data message. In the embodiment of this application, only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
如图3所示,本申请提供的数据报文传输方法可以包括:As shown in Figure 3, the data message transmission method provided by this application may include:
S301、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。S301. The first network device determines the congestion state of the first network device according to the queue length within the preset time period.
其中,第一网络设备可以为数据报文传输路径上的拥塞点设备。第一网络设备可以周期性的或者实时的或者在满足其他触发条件时,执行S301,本申请实施例对于执行S301的时机不予限定。Wherein, the first network device may be a congestion point device on the data packet transmission path. The first network device may execute S301 periodically or in real time or when other trigger conditions are met. The embodiment of the present application does not limit the timing of executing S301.
具体的,在S301中,第一网络设备先确定用于判断拥塞的拥塞阈值,然后可以根据该阈值、预设时长内队列长度,确定第一网络设备的拥塞状态。Specifically, in S301, the first network device first determines a congestion threshold for judging congestion, and then can determine the congestion state of the first network device according to the threshold and the queue length within a preset time period.
一种可能的实现方式中,该拥塞阈值可以为静态的固定值。例如,第一网络设备可以根据经验值,或者其性能,或者队列的时延需求确定静态的拥塞阈值,本申请对于静态拥塞阈值的确定方式不予限定。In a possible implementation manner, the congestion threshold may be a static fixed value. For example, the first network device may determine the static congestion threshold based on empirical values, or its performance, or the delay requirements of the queue. The method for determining the static congestion threshold is not limited in this application.
另一种可能的实现方式中,该拥塞阈值可以为动态值。In another possible implementation manner, the congestion threshold may be a dynamic value.
例如,可以配置该拥塞阈值为C*RTT*λ。其中,C可以为队列带宽,RTT是预估的在此队列中的流的RTT,λ可以为预设参数。例如,λ可以为1/7。For example, the congestion threshold can be configured as C*RTT*λ. Among them, C can be the queue bandwidth, RTT is the estimated RTT of the flow in the queue, and λ can be a preset parameter. For example, λ can be 1/7.
再一种可能的实现方式中,可以参照RFC3168配置该拥塞阈值,此处不再赘述。In another possible implementation manner, the congestion threshold can be configured with reference to RFC3168, which will not be repeated here.
一种可能的实现方式中,通过实验和理论分析,在队列没有满载的情况下,即非稳定拥塞的情况下,队列的长度不会呈现围绕拥塞阈值的现象,反之亦然。因此,可以采用判断是否围绕拥塞阈值来判断是否为稳定拥塞。In a possible implementation, through experiments and theoretical analysis, when the queue is not full, that is, in the case of unstable congestion, the length of the queue will not show a phenomenon around the congestion threshold, and vice versa. Therefore, it is possible to determine whether it is stable congestion by judging whether it is around the congestion threshold.
例如,可以在预设时长(例如k*RTT)内分析,判断第一网络设备的队列长度是否稳定在拥塞阈值附近,以判断第一网络设备的拥塞状态是否为稳定拥塞。其中,当预设时长内第一网络设备的队列长度稳定在拥塞阈值附近,则确定其拥塞状态为稳定拥塞,否则为非稳定拥塞。For example, it can be analyzed within a preset time length (for example, k*RTT) to determine whether the queue length of the first network device is stable near the congestion threshold, so as to determine whether the congestion state of the first network device is stable congestion. Wherein, when the queue length of the first network device is stable near the congestion threshold within the preset time period, it is determined that its congestion state is stable congestion, otherwise it is unstable congestion.
例如,可以采用3sigma等方法判断队列长度是否稳定在拥塞阈值附近。For example, methods such as 3sigma can be used to determine whether the queue length is stable near the congestion threshold.
需要说明的是,预设时长可以根据实际需求配置其取值,本申请实施例对此不予限定。It should be noted that the preset duration can be configured according to actual needs, which is not limited in the embodiment of the present application.
另一种可能的实现方式中,S301中,第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态,具体可以实现为:第一网络设备根据拥塞阈值确定拥塞区间,若预设时长内,第一网络设备的队列的长度处于拥塞区间的时长小于第一时长,确定第一网络设备的拥塞状态为非稳定拥塞。或,若预设时长内,第一网络设备的队列的长度处于拥塞区间的时长大于第二时长,确定第一网络设备的拥塞状态为稳定拥塞。其中,第二时长大于或等于第一时长。In another possible implementation manner, in S301, the first network device determines the congestion state of the first network device according to the queue length within a preset time period, which can be specifically implemented as follows: the first network device determines the congestion interval according to the congestion threshold, if In the preset period of time, the length of the queue of the first network device in the congestion interval is less than the first period of time, and it is determined that the congestion state of the first network device is unstable congestion. Or, if the length of the queue of the first network device in the congestion interval is longer than the second duration within the preset time period, it is determined that the congestion state of the first network device is stable congestion. Wherein, the second duration is greater than or equal to the first duration.
需要说明的是,对于第一时长、第二时长的取值,可以根据实际需求配置,本申请实施例对此不予限定。例如,第一时长可以为预设时长乘以某一比例,第二时长可以为预设时长乘以另一比例。It should be noted that the values of the first duration and the second duration can be configured according to actual requirements, which are not limited in the embodiment of the present application. For example, the first duration may be the preset duration multiplied by a certain ratio, and the second duration may be the preset duration multiplied by another ratio.
例如,第一时长可以等于第二时长。For example, the first duration may be equal to the second duration.
其中,对于预设时长内,第一网络设备的队列的长度处于拥塞区间的时长等于第一时长或者第二时长的情况,可以根据实际应用需求确定第一网络设备的拥塞状态为稳定拥塞或者非稳定拥塞,本申请实施例对此也不进行限定。Among them, for the case where the length of the queue of the first network device is in the congestion interval within the preset time period is equal to the first time period or the second time period, the congestion state of the first network device can be determined as stable congestion or non-congestion according to actual application requirements. Stable congestion is not limited in this embodiment of the application.
可选的,若预设时长内,第一网络设备的队列的长度始终未处于拥塞区间,可以确定第一网络设备的拥塞状态为未拥塞。Optionally, if the length of the queue of the first network device is not always in the congestion interval within the preset time period, it may be determined that the congestion state of the first network device is not congested.
示例性的,图4提供了一种队列长度与拥塞阈值、拥塞区间的对比示意。如图4所示,在第一预设时长内,第一网络设备的队列长度始终未处于拥塞区间,确定第一预设时长内第一网络设备的拥塞状态为未拥塞。在第二预设时长内,第一网络设备的队列长度出现了处于拥塞区间的时段t1,但该时段t1小于第一时长,确定第二预设时长内第一网络设备的拥塞状态为非稳定拥塞。在第三预设时长内,第一网络设备的队 列长度出现了处于拥塞区间的时段t2,该时段t2大于第二时长,确定第三预设时长内第一网络设备的拥塞状态为稳定拥塞。Exemplarily, FIG. 4 provides a comparison diagram of queue length, congestion threshold, and congestion interval. As shown in FIG. 4, within the first preset time period, the queue length of the first network device is not always in the congestion interval, and it is determined that the congestion state of the first network device within the first preset time period is not congested. In the second preset time period, the queue length of the first network device has a period t1 in the congestion interval, but the period t1 is less than the first period. It is determined that the congestion state of the first network device in the second preset period is unstable congestion. In the third preset time period, the queue length of the first network device has a time period t2 in the congestion interval, and the time period t2 is greater than the second time period. It is determined that the congestion state of the first network device in the third preset time period is stable congestion.
一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为非稳定拥塞,在S301后可以执行S302。In a possible implementation manner, in S301, the first network device determines that its congestion state is unstable congestion, and S302 may be executed after S301.
另一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为稳定拥塞,在S301后可以执行S303。In another possible implementation manner, in S301, the first network device determines that its congestion state is stable congestion, and S303 may be executed after S301.
再一种可能的实现方式中,在S301中第一网络设备确定其拥塞状态为未拥塞,在S301后可以继续按照执行S301之前的方式传输数据报文,此处不再赘述。In another possible implementation manner, in S301, the first network device determines that its congestion state is uncongested, and after S301, it can continue to transmit data packets in the same manner as before S301, which will not be repeated here.
S302、当第一网络设备确定拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。S302: When the first network device determines that the congestion state is unstable congestion, the first network device adds a first identifier to the received first data message.
其中,第一标识用于标识第一网络设备处于非稳定拥塞。The first identifier is used to identify that the first network device is in unstable congestion.
一种可能的实现方式中,第一数据报文可以为执行S301之后即将进入队列的数据报文中的部分或全部。In a possible implementation manner, the first data message may be part or all of the data messages that will enter the queue after S301 is executed.
另一种可能的实现方式中,第一数据报文可以为执行S301之后即将进入队列的数据报文以及队列中等待的数据报文中的部分或全部。In another possible implementation manner, the first data message may be a part or all of the data message that will enter the queue and the data message waiting in the queue after the execution of S301.
需要说明的是,可以根据实际需求配置第一数据报文的内容,本申请实施例对此不与限定。It should be noted that the content of the first data message can be configured according to actual requirements, which is not limited in the embodiment of the present application.
S303、当第一网络设备确定拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。S303: When the first network device determines that the congestion state is stable congestion, the first network device adds a second identifier to the received second data message.
其中,第二标识用于标识第二网络设备处于稳定拥塞,其中,第一标识和第二标识不同。The second identifier is used to identify that the second network device is in stable congestion, and the first identifier and the second identifier are different.
一种可能的实现方式中,第二数据报文可以为执行S301之后即将进入队列的数据报文。In a possible implementation manner, the second data message may be a data message that will enter the queue after S301 is executed.
另一种可能的实现方式中,第二数据报文可以为执行S301之后即将进入队列的数据报文,以及队列中等待的数据报文。In another possible implementation manner, the second data message may be a data message that will enter the queue after the execution of S301, and a data message waiting in the queue.
需要说明的是,可以根据实际需求配置第二数据报文的内容,本申请实施例对此不与限定。第二数据报文可以与第一数据报文为相同的数据报文,当然,也可以为不同的数据报文。It should be noted that the content of the second data packet can be configured according to actual requirements, which is not limited in the embodiment of the present application. The second data message may be the same data message as the first data message, and of course, it may also be a different data message.
一种可能的实现方式中,第一标识还可以用于指示对接收的第一数据流增加发送窗口数;第二标识还可以用于指示对第一数据流降低或保持发送窗口数。In a possible implementation manner, the first identifier may also be used to indicate to increase the number of sending windows for the received first data stream; the second identifier may also be used to indicate to reduce or maintain the number of sending windows for the first data stream.
其中,第一数据流可以为满足预设条件的数据流。Wherein, the first data stream may be a data stream meeting a preset condition.
示例性的,预设条件可以包括:待传输的数据流;或者,建链时间晚于预设时刻的数据流。Exemplarily, the preset condition may include: a data stream to be transmitted; or, a data stream whose link establishment time is later than the preset time.
其中,待传输的数据流可以称之为新数据流,即建链成功还未开始传输数据报文的数据流。Among them, the data stream to be transmitted can be referred to as a new data stream, that is, a data stream that has not yet started to transmit data packets after a successful link establishment.
进一步可选的,第一标识或第二标识还可以用于指示对第二数据流降低发送窗口数。其中,第二数据流为第一网络设备正在传输的数据流。相应的,第一数据流可以为满足预设条件的第二数据流之外的数据流。Further optionally, the first identifier or the second identifier may also be used to indicate to reduce the number of sending windows for the second data stream. Wherein, the second data stream is the data stream being transmitted by the first network device. Correspondingly, the first data stream may be a data stream other than the second data stream that meets the preset condition.
一种可能的实现方式中,第二数据流可以包括第一数据报文或第二数据报文所属 的数据流。当然,第二数据流还可以包括第一数据报文或第二数据报文所属的数据流之外的数据流。In a possible implementation manner, the second data stream may include the first data packet or the data stream to which the second data packet belongs. Of course, the second data stream may also include a data stream other than the data stream to which the first data packet or the second data packet belongs.
可选的,第一标识或第二标识可以添加报文头中。例如,该报文头可以为IP头。Optionally, the first identifier or the second identifier can be added to the message header. For example, the message header may be an IP header.
需要说明的是,本申请实施例对于第一标识或第二标识在报文头中的位置以及具体形式不进行具体限定,可以根据实际需求配置。It should be noted that the embodiment of the present application does not specifically limit the position and specific form of the first identifier or the second identifier in the message header, and can be configured according to actual requirements.
下面通过几种可能的实现方式,对第一标识或第二标识的添加位置以及内容进行说明。The following describes the adding location and content of the first identifier or the second identifier through several possible implementation manners.
实现方式1、新增第一拥塞标志位以添加第一标识或第二标识。Implementation method 1. A first congestion flag bit is added to add the first identification or the second identification.
在实现方式1中,在数据报文的IP头中的预留字段中,选取N个比特作为第一拥塞标志位,通过将该第一拥塞标志位设置为不同的值(value)作为第一标识或者第二标识。N的取值可以根据实际需求确定,本申请实施例不予限定。In implementation 1, in the reserved field in the IP header of the data message, N bits are selected as the first congestion flag, and the first congestion flag is set to a different value as the first Logo or second logo. The value of N can be determined according to actual needs, and is not limited in the embodiment of the present application.
其中,对于第一拥塞标志位的不同的值,可以根据实际需求配置,本申请实施例对此不予限定。Among them, the different values of the first congestion flag bit can be configured according to actual requirements, which are not limited in the embodiment of the present application.
例如,可以将第一拥塞标志位设置为0作为第一标识,将第一拥塞标志位设置为1作为第二标识。For example, the first congestion flag bit can be set to 0 as the first indicator, and the first congestion flag bit can be set to 1 as the second indicator.
实现方式2、复用RFC3168中的ECN标记以添加第一标识或第二标识。Implementation mode 2. Multiplexing the ECN mark in RFC3168 to add the first identification or the second identification.
在实现方式2中,IP首部的TOS字段中的第7和8比特的res字段可以被定义为ECN字段,其中有四个取值(00/01/10/11)。复用RFC3168中的定义,00代表该数据报文不支持ECN,01和10表明该数据报文支持ECN功能。ECN标记用于指示第一网络设备在确定拥塞时是否进行ECN标记,当其为00时,第一网络设备不进行ECN标记,当其为01或10时,第一网络设备进行ECN标记。In implementation 2, the 7th and 8th bits of the res field in the TOS field of the IP header can be defined as the ECN field, which has four values (00/01/10/11). To reuse the definition in RFC3168, 00 means that the data message does not support ECN, and 01 and 10 indicate that the data message supports the ECN function. The ECN mark is used to indicate whether the first network device performs ECN mark when determining congestion. When it is 00, the first network device does not perform ECN mark. When it is 01 or 10, the first network device performs ECN mark.
进一步的,第一网络设备在S301中若确定其拥塞状态为非稳定拥塞时,第一网络设备可以将数据报文的ECN field中的ECN标记改为10(若为01修改为10,若为10则保持)作为第一标识。第一网络设备在S301中若确定其拥塞状态为稳定拥塞时,第一网络设备可以将数据报文的ECN field中的ECN标记改为11作为第二标识。Further, if the first network device determines in S301 that its congestion state is unstable congestion, the first network device may change the ECN flag in the ECN field of the data message to 10 (if 01 is changed to 10, if it is 10 remains) as the first identification. If the first network device determines that its congestion state is stable congestion in S301, the first network device may change the ECN flag in the ECN field of the data message to 11 as the second identifier.
而在RFC3168中,第一网络设备只要判断出现拥塞状态,即将ECN field中的ECN标记改为11,并不区分稳定拥塞或非稳定拥塞。In RFC3168, as long as the first network device determines that there is a congestion state, that is, the ECN flag in the ECN field is changed to 11, it does not distinguish between stable congestion and unstable congestion.
示例性的,图5示意了一种第一网络设备的结构。如图5所示,第一网络设备可以包括网络处理器(network processor,NP)、报文编辑器(packet editor,PE)、出端口缓存(output buffer,OB)、以及流量管理器(traffic manager,TM)。Exemplarily, FIG. 5 illustrates a structure of a first network device. As shown in Figure 5, the first network device may include a network processor (NP), a packet editor (PE), an output buffer (OB), and a traffic manager (traffic manager). , TM).
例如,在图5示意的第一网络设备的结构基础上,数据报文进入第一网络设备的NP,NP驱动PE来使TM使能ECN功能,NP里的微码能够读取TM中相关的队列信息(通过寄存器),然后计算出拥塞阈值再写入TM中的寄存器中。TM可以使用动态变化的拥塞阈值来对数据报文进行标记。其中,TM可以按照S302或S303的方式进行ECN标记。For example, based on the structure of the first network device shown in Figure 5, a data message enters the NP of the first network device, and the NP drives the PE to enable the TM to enable the ECN function, and the microcode in the NP can read the relevant information in the TM Queue information (via registers), then calculate the congestion threshold and write it into the register in the TM. TM can use dynamically changing congestion thresholds to mark data messages. Among them, TM can perform ECN marking in the manner of S302 or S303.
需要说明的是,如果数据报文的发送端设备不支持ECN,还可以通过NP来修改数据报文的ECN标记(例如NP可以将数据报文的IP头中的ECN字段00修改为01/10),使TM能够对报文进行ECN标记。It should be noted that if the sending end device of the data message does not support ECN, the ECN mark of the data message can also be modified through NP (for example, NP can modify the ECN field 00 in the IP header of the data message to 01/10 ) To enable TM to mark the message with ECN.
上述S301至S303的过程其目的是在第一网络设备拥塞时,调整数据流的发送窗 口数,可以由第二网络设备调整数据流的发送窗口数。可选的,第二网络设备可以为数据报文的发送端设备,或者,第二网络设备可以为数据报文的接收端设备的上一级网络设备。The purpose of the above procedures from S301 to S303 is to adjust the number of sending windows of the data stream when the first network device is congested, and the number of sending windows of the data stream can be adjusted by the second network device. Optionally, the second network device may be the sender device of the data packet, or the second network device may be the upper-level network device of the receiver device of the data packet.
可选的,当第二网络设备为数据报文的接收端设备的上一级网络设备,在S302或S303之后,如图6所示,本申请提供的数据报文传输方法还可以包括S303a。Optionally, when the second network device is the upper-level network device of the receiving end device of the data packet, after S302 or S303, as shown in FIG. 6, the data packet transmission method provided in this application may further include S303a.
S303a、第一网络设备向第二网络设备发送第一拥塞信息。S303a. The first network device sends the first congestion information to the second network device.
该第一拥塞信息用于指示第一网络设备的拥塞状态。The first congestion information is used to indicate the congestion state of the first network device.
其中,该第一拥塞信息,可以为作为拥塞点设备的第一网络设备向第二网络设备发送的专用信令。例如,该专有信令可以为采用私有协议的控制报文,本申请实施例对此不进行具体限定。Wherein, the first congestion information may be dedicated signaling sent by the first network device as the congestion point device to the second network device. For example, the dedicated signaling may be a control message using a private protocol, which is not specifically limited in the embodiment of the present application.
例如,该第一拥塞信息还可以包括第一网络设备的标识、队列的标识以及拥塞指示。其中,拥塞指示可以用于指示第一网络设备是否为稳定拥塞。例如,拥塞指示1表示稳定拥塞,拥塞指示0表示非稳定拥塞。For example, the first congestion information may also include the identification of the first network device, the identification of the queue, and the congestion indication. The congestion indication may be used to indicate whether the first network device is in stable congestion. For example, congestion indicator 1 indicates stable congestion, and congestion indicator 0 indicates unstable congestion.
示例性的,第一拥塞信息可以如表1所示。当第一网络设备向第二网络设备发送如表1所示的第一拥塞信息,则用于指示第一网络设备中队列2导致出现稳定拥塞。Exemplarily, the first congestion information may be as shown in Table 1. When the first network device sends the first congestion information shown in Table 1 to the second network device, it is used to indicate that the queue 2 in the first network device causes stable congestion.
表1Table 1
Figure PCTCN2021095210-appb-000001
Figure PCTCN2021095210-appb-000001
需要说明的是,表1只是通过举例的形式,对第一拥塞信息的形式及内容进行示例说明,并不构成具体限定。It should be noted that Table 1 is only an example to illustrate the form and content of the first congestion information, and does not constitute a specific limitation.
进一步的,上述S301至S303的过程之后,数据报文经过传输路径发送至接收端设备,可以由第二网络设备调整数据流的发送窗口数。可选的,第二网络设备可以为数据报文的发送端设备,或者,第二网络设备可以为数据报文的接收端设备的上一级网络设备。如图6所示,本申请实施例提供的数据报文传输方法还可以包括S304至S306。Further, after the above processes from S301 to S303, the data message is sent to the receiving end device through the transmission path, and the second network device can adjust the number of sending windows of the data stream. Optionally, the second network device may be the sender device of the data packet, or the second network device may be the upper-level network device of the receiver device of the data packet. As shown in FIG. 6, the data packet transmission method provided in the embodiment of the present application may further include S304 to S306.
S304、第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。S304. The second network device determines the congestion state of the congestion point device on the transmission path of the sent data packet within a preset period of time.
其中,该拥塞状态包括稳定拥塞和非稳定拥塞。Among them, the congestion state includes stable congestion and unstable congestion.
进一步的,该拥塞状态还可以包括未拥塞。Further, the congested state may also include uncongested.
一种可能的实现方式中,第二网络设备为数据报文的接收端设备的上一级网络设备,S304中第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备从拥塞点设备接收第一拥塞信息。对于第一拥塞信息已经在前述内容进行了详细说明,此处不再赘述。In a possible implementation manner, the second network device is the upper-level network device of the receiving end device of the data message. In S304, the second network device determines the congestion status of the congestion point device on the data message transmission path. It includes: the second network device receives the first congestion information from the congestion point device. The first congestion information has been described in detail in the foregoing content, and will not be repeated here.
另一种可能的实现方式中,第二网络设备为数据报文的发送端设备,第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,具体可以包括:第二网络设备接收数据报文的ACK报文,该ACK报文的报文头中携带用于指示该拥塞点设备的拥塞状态的第二拥塞信息,第二网络设备根据第二拥塞信息确定拥塞点设备的拥塞状态。In another possible implementation manner, the second network device is the sender device of the data packet, and the second network device determines the congestion status of the congestion point device on the data packet transmission path, which may specifically include: the second network device receives The ACK message of the data message, the header of the ACK message carries second congestion information for indicating the congestion status of the congestion point device, and the second network device determines the congestion status of the congestion point device according to the second congestion information .
其中,ACK报文由该数据报文的接收端设备在接收到数据报文后发送。对于ACK 报文中携带的第二拥塞信息,详见后续图7对应的方案的详细描述。Among them, the ACK message is sent by the receiving end device of the data message after receiving the data message. For the second congestion information carried in the ACK message, refer to the detailed description of the solution corresponding to FIG. 7 below for details.
进一步的,若S304中第二网络设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S305。或者,若S304中第二网络设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S306。若S304中第二网络设备确定拥塞点设备的拥塞状态为未拥塞,第二网络设备可以对第一数据流增加发送窗口数。Further, if the second network device determines in S304 that the congestion state of the congestion point device is unstable congestion, S305 is executed. Or, if the second network device determines that the congestion state of the congestion point device is stable congestion in S304, S306 is executed. If the second network device determines in S304 that the congestion status of the congestion point device is not congested, the second network device may increase the number of sending windows for the first data stream.
S305、若拥塞点设备的拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数。S305: If the congestion state of the congestion point device is unstable congestion, the second network device increases the number of sending windows for the first data stream.
一种可能的实现方式中,第二网络设备增加第一数据流的发送窗口数,可以根据爬窗机制的方案实现。例如,第二网络设备根据RENO或CUBIC爬窗机制,增加或保持第一数据流增加发送窗口数。In a possible implementation manner, the second network device increases the number of sending windows of the first data stream, which can be implemented according to the scheme of the window crawling mechanism. For example, the second network device increases or maintains the first data stream to increase the number of sending windows according to the RENO or CUBIC window crawling mechanism.
例如,可以对原发送窗口数(对于待传输的数据流,原发送窗口数可以为正在传输的数据流的前一RRT的发送窗口数;对于已经开始传输的数据流,原发送窗口数可以为前一RRT自身的发送窗口数)翻倍或增加预设步进,以实现增加发送窗口数。For example, the number of original sending windows can be calculated (for a data stream to be transmitted, the original sending window number can be the number of sending windows of the previous RRT of the data stream being transmitted; for a data stream that has already started transmission, the original sending window number can be The number of sending windows of the previous RRT itself) is doubled or the preset step is increased, so as to increase the number of sending windows.
S306、若拥塞点设备的拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。S306: If the congestion state of the congestion point device is stable congestion, the second network device reduces or maintains the number of sending windows for the first data stream.
在一种可能的实现方式中,第二网络设备降低第一数据流的发送窗口数,可以根据DCTCP机制的方案实现,其具体实现已经在前述内容进行了详细描述,此处不再进行赘述。In a possible implementation manner, the second network device reduces the number of sending windows of the first data stream, which can be implemented according to the scheme of the DCTCP mechanism. The specific implementation has been described in detail in the foregoing content and will not be repeated here.
通过本申请提供的数据报文传输方法,根据预设时长内拥塞点设备的拥塞状态,在不同的拥塞状态下采用不同的方案确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低或保持第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。According to the data packet transmission method provided in the present application, according to the congestion state of the congestion point device within a preset time period, different schemes are adopted to determine the number of transmission windows of the first data stream in different congestion states. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced or maintained, achieving a balance between data stream performance and network performance during congestion control.
进一步可选的,第二网络设备为数据报文的接收端设备的上一级网络设备,如图6所示,在S305或S306之后,本申请实施例提供的数据报文传输方法还可以包括S307及S308。Further optionally, the second network device is the upper-level network device of the receiving end device of the data packet. As shown in FIG. 6, after S305 or S306, the data packet transmission method provided in the embodiment of the present application may further include S307 and S308.
S307、第二网络设备向数据报文的发送端设备发送第一数据流的发送窗口数。S307. The second network device sends the sending window number of the first data stream to the sending end device of the data packet.
具体的,在S307中,第二网络设备可以拦截数据报文的接收端设备发送的该数据报文的ACK报文,将S305或S306中确定的第一数据流的发送窗口数携带该ACK报文中,发送给发送端设备。Specifically, in S307, the second network device may intercept the ACK message of the data message sent by the receiving end device of the data message, and carry the ACK message in the transmission window number of the first data stream determined in S305 or S306. In the text, sent to the sending end device.
需要说明的是,当第二网络设备为数据报文的接收端设备的上一级网络设备时,第二网络设备还需要根据拥塞信息确定拥塞点设备的拥塞状态,并确定第二数据流的发送窗口数。例如,当拥塞点设备的拥塞状态为未拥塞,则可以按照爬窗机制确定第二数据流的发送窗口数;或者,当拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,则可以按照DCTCP机制确定第二数据流的发送窗口数。因此,第二网络设备还可以向数据报文的发送端设备发送确定的第二数据流的发送窗口数,其具体方式可以与发送第一数据流的发送窗口数相同,此处不再赘述。It should be noted that when the second network device is the upper-level network device of the receiving end device of the data message, the second network device also needs to determine the congestion status of the congestion point device according to the congestion information, and determine the congestion status of the second data stream The number of sending windows. For example, when the congestion status of the congestion point device is uncongested, the number of sending windows of the second data stream can be determined according to the window climbing mechanism; or, when the congestion status of the congestion point device is stable congestion or non-steady congestion, it can be based on DCTCP The mechanism determines the number of sending windows for the second data stream. Therefore, the second network device may also send the determined number of sending windows of the second data stream to the sending end device of the data message, and the specific method may be the same as the number of sending windows for sending the first data stream, which will not be repeated here.
S308、发送端设备接收ACK报文,根据ACK报文确定第一数据流的发送窗口数。S308. The sending end device receives the ACK packet, and determines the number of sending windows for the first data stream according to the ACK packet.
具体的,在S308中,发送端设备可以比较ACK报文中携带的第一数据流的发送窗口数及自身执行的发送窗口数,取两者中的较小者作为第一数据流的发送窗口数, 发送第一数据流的数据报文。Specifically, in S308, the sending end device may compare the number of sending windows of the first data stream carried in the ACK message with the number of sending windows executed by itself, and take the smaller of the two as the sending window of the first data stream. Count, send the data packet of the first data stream.
进一步的,发送端设备可以比较ACK报文中携带的第二数据流的发送窗口数及自身执行的发送窗口数,取两者中的较小者作为第二数据流的发送窗口数,继续发送第二数据流的数据报文。Further, the sending end device may compare the number of sending windows of the second data stream carried in the ACK message with the number of sending windows executed by itself, and take the smaller of the two as the number of sending windows of the second data stream, and continue sending Data packet of the second data stream.
另一方面,本申请实施例提供另一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。在该实施例中,数据报文的发送端设备需支持ECN功能。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案进行详细描述,其他不在一一赘述。On the other hand, the embodiment of the present application provides another data message transmission method, which is applied to congestion control during the process of data message transmission on a data network. In this embodiment, the sender device of the data message needs to support the ECN function. It should be noted that the solution provided in this application has a similar transmission process for each data message. In the embodiment of this application, only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
如图7所示,本申请提供的数据报文传输方法可以包括:As shown in Figure 7, the data message transmission method provided by this application may include:
S701、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。S701. The first network device determines the congestion state of the first network device according to the queue length within the preset time period.
S702、当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。S702: When the first network device determines that its congestion state is unstable congestion, the first network device adds a first identifier to the received first data packet.
S703、当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。S703: When the first network device determines that its congestion state is stable congestion, the first network device adds a second identifier to the received second data message.
具体的,S701至S703的具体实现可以与S301至S303的实现相同,可以参照前述S301至S303的描述,此处不再赘述。Specifically, the specific implementation of S701 to S703 may be the same as the implementation of S301 to S303, and reference may be made to the description of S301 to S303, which will not be repeated here.
S702或S703中标记的数据报文将会传输至其接收端设备(第三网络设备)。The data message marked in S702 or S703 will be transmitted to its receiving end device (third network device).
S704、第三网络设备接收数据报文。S704. The third network device receives the data packet.
具体的,第三网络设备可以根据接收的数据报文中的内容,以确定是否执行S705或S706。Specifically, the third network device may determine whether to perform S705 or S706 according to the content in the received data message.
示例性的,对应于前述实现方式1,第三网络设备在接收到数据报文后,在拥塞标志位查看是否标记了第一标识或第二标识,以确定是否执行S705或S706。Exemplarily, corresponding to the foregoing implementation manner 1, after receiving the data message, the third network device checks whether the first identifier or the second identifier is marked in the congestion flag bit to determine whether to perform S705 or S706.
示例性的,对应于前述实现方式2,第三网络设备在接收到数据报文后,在RFC3168中的ECN标记位置查看是否标记了第一标识或第二标识,以确定是否执行S705或S706。Exemplarily, corresponding to the foregoing implementation manner 2, after receiving the data message, the third network device checks whether the first identifier or the second identifier is marked at the ECN mark position in RFC3168 to determine whether to perform S705 or S706.
S705、若该数据报文标记了第一标识,第三网络设备在该数据报文的ACK报文中标记第三标识。S705: If the data message is marked with the first identifier, the third network device marks the third identifier in the ACK message of the data message.
其中,第三标识与前述第一标识的作用相同,对于第一标识的作用已经在图3或图6所示的数据报文传输方法中进行了详细描述。The third identifier has the same function as the aforementioned first identifier, and the function of the first identifier has been described in detail in the data packet transmission method shown in FIG. 3 or FIG. 6.
S706、若该数据报文的报文头中标记了第二标识,第三网络设备在该数据报文的ACK报文中标记第四标识。S706: If the second identifier is marked in the header of the data message, the third network device marks the fourth identifier in the ACK message of the data message.
其中,第四标识与前述第二标识的作用相同,对于第二标识的作用已经在图3或图6所示的数据报文传输方法中进行了详细描述。Among them, the fourth identifier has the same function as the aforementioned second identifier, and the function of the second identifier has been described in detail in the data packet transmission method shown in FIG. 3 or FIG. 6.
一种可能的实现方式中,第三标识或第四标识可以添加报文头中。例如,该报文头可以为TCP头。In a possible implementation manner, the third identifier or the fourth identifier may be added to the message header. For example, the message header may be a TCP header.
需要说明的是,本申请实施例对于第三标识或第四标识在报文头中的位置以及具体形式不进行具体限定,可以根据实际需求配置。It should be noted that the embodiment of the present application does not specifically limit the position and specific form of the third identifier or the fourth identifier in the message header, and can be configured according to actual requirements.
下面通过几种可能的实现方式,对第三标识或第四标识的添加位置以及内容进行 说明。The following describes the location and content of adding the third or fourth identifier through several possible implementations.
实现方式A、新增第二拥塞标志位以添加第三标识或第四标识。Implementation method A: Add a second congestion flag bit to add a third identifier or a fourth identifier.
在实现方式A中,在数据报文的TCP头中的预留字段中或者RFC3168中的ECE位旁边,选取M个比特作为第二拥塞标志位,通过将该第二拥塞标志位设置为不同的值(value)作为第三标识或者第四标识。M的取值可以根据实际需求确定,本申请实施例不予限定。In implementation A, in the reserved field in the TCP header of the data message or next to the ECE bit in RFC3168, M bits are selected as the second congestion flag, and the second congestion flag is set to a different The value (value) is used as the third identifier or the fourth identifier. The value of M can be determined according to actual needs, and is not limited in the embodiment of the present application.
其中,对于第二拥塞标志位的不同的值,可以根据实际需求配置,本申请实施例对此不予限定。Among them, the different values of the second congestion flag can be configured according to actual requirements, which are not limited in the embodiment of the present application.
例如,可以将第二拥塞标志位设置为0作为第三标识,将第二拥塞标志位设置为1作为第四标识。For example, the second congestion flag bit can be set to 0 as the third indicator, and the second congestion flag bit can be set to 1 as the fourth indicator.
实现方式B、在实现方式A的基础上,通过新增第二拥塞标志位以及ECE位以添加第三标识或第四标识。Implementation manner B, on the basis of implementation manner A, add a third or fourth identification by adding a second congestion flag bit and an ECE bit.
例如,可以将第二拥塞标志位设置为0,ECE位置1作为第三标识,将第二拥塞标志位设置为1、ECE位置1作为第四标识。For example, the second congestion flag bit can be set to 0, the ECE position 1 is used as the third indicator, and the second congestion flag bit is set to 1, and the ECE position 1 is used as the fourth indicator.
实现方式C、重新定义RFC3168的ECE位,作为添加第三标识或第四标识。Implementation C: Redefine the ECE bit of RFC3168 as adding the third or fourth identifier.
例如,可以将ECE位置1作为第三标识,将ECE位置1作为第四标识。For example, ECE position 1 may be used as the third identifier, and ECE position 1 may be used as the fourth identifier.
例如,接收端设备(第三网络设备)在接收到数据报文后,若在RFC3168中的ECN标记位置的ECN字段是00或01,则不会修改原ACK中的任何字段。For example, after the receiving end device (third network device) receives the data message, if the ECN field in the ECN mark position in RFC3168 is 00 or 01, it will not modify any field in the original ACK.
例如,接收端设备(第三网络设备)在接收到数据报文后,若在RFC3168中的ECN标记位置的ECN字段是10,则将数据报文对应的ACK报文的TCP头的ECE位置1。For example, after the receiving end device (the third network device) receives the data message, if the ECN field in the ECN mark position in RFC3168 is 10, it will set the ECE position of the TCP header of the ACK message corresponding to the data message to 1. .
例如,接收端设备(第三网络设备)在接收到数据报文后,若在在RFC3168中的ECN标记位置的ECN字段是11,则将数据报文对应的ACK报文的TCP头的ECE位置1,并且将拥塞字段置1。For example, after the receiving end device (third network device) receives the data message, if the ECN field in the ECN mark position in RFC3168 is 11, it will set the ECE position of the TCP header of the ACK message corresponding to the data message 1, and set the congestion field to 1.
S707、第三网络设备向该数据报文的发送端设备发送标记后的ACK报文。S707. The third network device sends a marked ACK packet to the sender device of the data packet.
S708、接收端设备接收标记后的ACK报文。S708. The receiving end device receives the marked ACK message.
S709、接收端设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。S709. The receiving end device determines the congestion state of the congestion point device on the transmission path of the sent data message within a preset time period.
其中,接收端设备根据S708中接收的ACK报文,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。Among them, the receiving end device determines the congestion state of the congestion point device on the transmission path of the sent data message within a preset time period according to the ACK message received in S708.
具体的,S709中接收端设备可以根据ACK报文中标记的第三标识或第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。Specifically, in S709, the receiving end device may determine the congestion state of the congestion point device on the transmission path of the sent data packet within a preset period of time according to the third identifier or the fourth identifier marked in the ACK packet.
一种可能的实现方式中,S709中接收端设备可以根据ACK报文中标记的第三标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。In a possible implementation manner, the receiving end device in S709 can determine that the congestion point device on the transmission path of the sent data packet is unstable within a preset period of time according to the third identifier marked in the ACK packet. congestion.
另一种可能的实现方式中,S709中接收端设备可以根据ACK报文中标记的第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。In another possible implementation manner, the receiving end device in S709 can determine that the congestion state of the congestion point device on the transmission path of the sent data packet is stable within a preset period of time according to the fourth identifier marked in the ACK packet. congestion.
另一种可能的实现方式中,S709中接收端设备可以根据ACK报文中未标记第三 标识或第四标识,确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为未拥塞。In another possible implementation manner, the receiving end device in S709 may determine whether the congestion point device on the transmission path of the sent data packet is within a preset time period according to the third or fourth identity not marked in the ACK packet. The congestion state is not congested.
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为0,ECE位置0,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为未拥塞。For example, after the sender device receives an ACK message, if the second congestion flag bit in the TCP header of the ACK message is set to 0 and the ECE bit is 0, it is determined that the congestion point device on the transmission path of the sent data message is The congestion state within the preset time period is not congested.
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为0,ECE位置1,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为非稳定拥塞。For example, after the sender device receives an ACK message, if the second congestion flag bit in the TCP header of the ACK message is set to 0 and the ECE bit is set to 1, it is determined that the congestion point device on the transmission path of the sent data message is The congestion state within the preset time period is unstable congestion.
例如,发送端设备在接收到ACK报文后,若ACK报文的TCP头中第二拥塞标志位设置为1,ECE位置1,则确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态为稳定拥塞。For example, after the sender device receives an ACK message, if the second congestion flag bit in the TCP header of the ACK message is set to 1, and the ECE bit is set to 1, it is determined that the congestion point device on the transmission path of the sent data message is The congestion state within the preset time period is stable congestion.
进一步的,若S709中发送端设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S710。或者,若S709中发送端设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S711。若S709中发送端设备确定拥塞点设备的拥塞状态为未拥塞,则发送端设备可以对第一数据流增加发送窗口数。Further, if the sending end device determines that the congestion state of the congestion point device is unstable congestion in S709, S710 is executed. Or, if the sending end device determines in S709 that the congestion state of the congestion point device is stable congestion, S711 is executed. If the sending end device determines in S709 that the congestion status of the congested point device is not congested, the sending end device may increase the number of sending windows for the first data stream.
S710、若拥塞点设备的拥塞状态为非稳定拥塞,发送端设备对第一数据流增加发送窗口数。S710: If the congestion state of the congestion point device is unstable congestion, the sending end device increases the number of sending windows for the first data stream.
具体的,S710的具体实现可以与S305的实现相同,可以参照前述S305的描述,此处不再赘述。Specifically, the specific implementation of S710 may be the same as that of S305, and reference may be made to the description of S305, which will not be repeated here.
S711、若拥塞点设备的拥塞状态为稳定拥塞,发送端设备对第一数据流降低或保持发送窗口数。S711: If the congestion state of the congestion point device is stable congestion, the sending end device reduces or maintains the number of sending windows for the first data stream.
具体的,S711的具体实现可以与S306的实现相同,可以参照前述S306的描述,此处不再赘述。Specifically, the specific implementation of S711 may be the same as that of S306, and reference may be made to the foregoing description of S306, which will not be repeated here.
在S710或S711之后,发送端设备则按照第一数据流的发送窗口数发送第一数据流的数据报文。After S710 or S711, the sending end device sends the data packet of the first data stream according to the number of sending windows of the first data stream.
需要说明的是,发送端设备还可以根据确定的拥塞点设备的拥塞状态,确定第二数据流的发送窗口数。例如,当拥塞点设备的拥塞状态为未拥塞,则可以按照爬窗机制确定第二数据流的发送窗口数;或者,当拥塞点设备的拥塞状态为稳定拥塞或者非稳定拥塞,则可以按照DCTCP机制确定第二数据流的发送窗口数。因此,发送端设备则按照第二数据流的发送窗口数发送第二数据流的数据报文。It should be noted that the sending end device may also determine the number of sending windows for the second data stream according to the determined congestion state of the congestion point device. For example, when the congestion status of the congestion point device is uncongested, the number of sending windows of the second data stream can be determined according to the window climbing mechanism; or, when the congestion status of the congestion point device is stable congestion or non-steady congestion, it can be based on DCTCP The mechanism determines the number of sending windows for the second data stream. Therefore, the sending end device sends the data packets of the second data stream according to the number of sending windows of the second data stream.
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。Through the data message transmission method provided in this application, the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference. The identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
再一方面,本申请实施例提供另一种数据报文传输方法,应用于数据网络传输数据报文的过程中进行拥塞控制。在该实施例中,数据报文的发送端设备可以不支持ECN功能。需要说明的是,本申请提供的方案对于每一个数据报文的传输过程相似,本申请实施例中仅以传输一个数据报文的过程中进行拥塞控制为例,对本申请提供的方案 进行详细描述,其他不在一一赘述。On the other hand, an embodiment of the present application provides another data message transmission method, which is applied to congestion control in the process of data message transmission on a data network. In this embodiment, the sender device of the data message may not support the ECN function. It should be noted that the solution provided in this application has a similar transmission process for each data message. In the embodiment of this application, only congestion control during the transmission of one data message is taken as an example to describe the solution provided in this application in detail. , The others will not be repeated one by one.
如图8所示,本申请提供的数据报文传输方法可以包括:As shown in Figure 8, the data message transmission method provided by this application may include:
S801、第一网络设备根据预设时长内队列长度,确定第一网络设备的拥塞状态。S801. The first network device determines the congestion state of the first network device according to the queue length within the preset time period.
S802、当第一网络设备确定其拥塞状态为非稳定拥塞时,第一网络设备对接收的第一数据报文添加第一标识。S802: When the first network device determines that its congestion state is unstable congestion, the first network device adds a first identifier to the received first data packet.
S803、当第一网络设备确定其拥塞状态为稳定拥塞时,第一网络设备对接收的第二数据报文添加第二标识。S803: When the first network device determines that its congestion state is stable congestion, the first network device adds a second identifier to the received second data message.
具体的,S801至S803的具体实现可以与S301至S303的实现相同,可以参照前述S301至S303的描述,此处不再赘述。Specifically, the specific implementation of S801 to S803 may be the same as that of S301 to S303, and reference may be made to the description of S301 to S303, which will not be repeated here.
S802或S803中标记的数据报文将会传输至其接收端设备(第三网络设备)。The data message marked in S802 or S803 will be transmitted to its receiving end device (third network device).
S804、第一网络设备向第二网络设备发送第一拥塞信息。S804: The first network device sends the first congestion information to the second network device.
其中,该第二网络设备为数据报文的接收端设备的上一级网络设备。Wherein, the second network device is the upper-level network device of the receiving end device of the data message.
具体的,S804的具体实现可以与S303a的实现相同,可以参照前述S303a的描述,此处不再赘述。Specifically, the specific implementation of S804 may be the same as that of S303a, and reference may be made to the description of S303a, which will not be repeated here.
S805、第二网络设备接收第一拥塞信息。S805. The second network device receives the first congestion information.
具体的,第二网络设备可以对经过其的流创建流表,维护生命周期,第一数据流放在流表表的最前面或最后,也可以用定时器来判断是否是第一数据流。流表用于根据拥塞信息,对第一数据流确定发送窗口。Specifically, the second network device may create a flow table for flows passing through it to maintain a life cycle. The first data flow is placed at the top or the end of the flow table table, and a timer may also be used to determine whether it is the first data flow. The flow table is used to determine the sending window for the first data flow according to the congestion information.
示例性的,流表中存储的流信息可以如下所示:流ID|五元组|RWND|拥塞状态|RTT|ECN标记率|经历的交换机ID|经历的交换机队列。Exemplarily, the flow information stored in the flow table may be as follows: flow ID|quintuple|RWND|congestion state|RTT|ECN marking rate|experienced switch ID|experienced switch queue.
其中,RWND用于指示第二网络设备确定的数据流的发送窗口数。Wherein, RWND is used to indicate the number of sending windows of the data stream determined by the second network device.
S806、第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态。S806. The second network device determines the congestion state of the congestion point device on the transmission path of the sent data packet within a preset time period.
具体的,S806的具体实现可以与S304的实现相同,可以参照前述S304的描述,此处不再赘述。Specifically, the specific implementation of S806 may be the same as that of S304, and reference may be made to the foregoing description of S304, which will not be repeated here.
进一步的,若S806中第二网络设备确定拥塞点设备的拥塞状态为非稳定拥塞,则执行S807。或者,若S806中第二网络设备确定拥塞点设备的拥塞状态为稳定拥塞,则执行S808。若S806中第二网络设备确定拥塞点设备的拥塞状态为未拥塞,则第二网络设备可以对第一数据流增加发送窗口数。Further, if the second network device determines that the congestion state of the congestion point device is unstable congestion in S806, S807 is executed. Or, if the second network device determines that the congestion state of the congestion point device is stable congestion in S806, S808 is executed. If the second network device determines in S806 that the congestion status of the congestion point device is not congested, the second network device may increase the number of sending windows for the first data stream.
S807、若拥塞点设备的拥塞状态为非稳定拥塞,第二网络设备对第一数据流增加发送窗口数。S807: If the congestion state of the congestion point device is unstable congestion, the second network device increases the number of sending windows for the first data stream.
具体的,S807的具体实现可以与S305的实现相同,可以参照前述S305的描述,此处不再赘述。Specifically, the specific implementation of S807 may be the same as that of S305, and reference may be made to the description of S305, which will not be repeated here.
S808、若拥塞点设备的拥塞状态为稳定拥塞,第二网络设备对第一数据流降低或保持发送窗口数。S808: If the congestion state of the congestion point device is stable congestion, the second network device reduces or maintains the number of sending windows for the first data stream.
具体的,S808的具体实现可以与S306的实现相同,可以参照前述S306的描述,此处不再赘述。Specifically, the specific implementation of S808 may be the same as that of S306, and reference may be made to the foregoing description of S306, which will not be repeated here.
S809、第二网络设备向数据报文的发送端设备发送第一数据流的发送窗口数。S809. The second network device sends the number of sending windows of the first data stream to the sender device of the data packet.
具体的,S809的具体实现可以与S307的实现相同,可以参照前述S307的描述, 此处不再赘述。Specifically, the specific implementation of S809 may be the same as that of S307, and reference may be made to the description of S307, which will not be repeated here.
S810、发送端设备接收ACK报文,根据ACK报文确定第一数据流的发送窗口数。S810. The sending end device receives the ACK packet, and determines the number of sending windows for the first data stream according to the ACK packet.
具体的,S810的具体实现可以与S308的实现相同,可以参照前述S308的描述,此处不再赘述。Specifically, the specific implementation of S810 may be the same as that of S308, and reference may be made to the foregoing description of S308, which will not be repeated here.
在S810之后,发送端设备则按照第一数据流的发送窗口数发送第一数据流的数据报文。After S810, the sending end device sends the data packet of the first data stream according to the number of sending windows of the first data stream.
通过本申请提供的数据报文传输方法,在预设时长内根据队列长度确定网络设备的拥塞状态,在不同的拥塞状态下对进入队列的报文添加不同的标识,以便于其他设备根据该不同的标识确定第一数据流的发送窗口数。例如,对于非稳定拥塞状态,可以增加第一数据流的发送窗口数,对于稳定拥塞状态可以降低第一数据流的发送窗口数,实现了拥塞控制时平衡数据流性能以及网络性能。Through the data message transmission method provided in this application, the congestion state of the network device is determined according to the queue length within a preset time period, and different identifiers are added to the messages entering the queue under different congestion states, so that other devices can respond to the difference. The identifier of determines the number of sending windows for the first data stream. For example, for an unstable congestion state, the number of sending windows for the first data stream can be increased, and for a stable congestion state, the number of sending windows for the first data stream can be reduced, so as to balance data stream performance and network performance during congestion control.
需要说明的是,本申请实施例提供的数据报文传输方法包括的步骤的执行顺序,可以根据实际需求配置,本申请实施例的附图仅示意了可能的执行顺序,并不构成限定。It should be noted that the execution sequence of the steps included in the data message transmission method provided in the embodiment of the present application can be configured according to actual requirements. The drawings in the embodiment of the present application only illustrate possible execution sequences and do not constitute a limitation.
上述主要从各个网络设备的工作原理角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。The foregoing mainly introduces the solution provided by the embodiment of the present application from the perspective of the working principle of each network device. It can be understood that, in order to realize the above-mentioned functions, the above-mentioned network device includes hardware structures and/or software modules corresponding to each function. Those skilled in the art should easily realize that in combination with the units and algorithm steps of the examples described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software-driven hardware depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered as going beyond the scope of this application.
本申请实施例可以根据上述方法示例对执行本申请提供的数据报文传输方法的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。The embodiment of the application can divide the function modules of the device that executes the data message transmission method provided by the application according to the foregoing method examples. For example, each function module may be divided corresponding to each function, or two or more functions may be divided Integrated in a processing module. The above-mentioned integrated modules can be implemented in the form of hardware or software function modules. It should be noted that the division of modules in the embodiments of the present application is illustrative, and is only a logical function division, and there may be other division methods in actual implementation.
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的网络设备中部署的执行本申请提供的数据报文传输方法的数据报文传输装置90的一种可能的结构示意图。该数据报文传输装置90可以为功能模块或者芯片。如图9所示,数据报文传输装置90可以包括:确定单元901、处理单元902。In the case of dividing each functional module corresponding to each function, FIG. 9 shows a data message transmission device 90 deployed in the network equipment involved in the foregoing embodiment to perform the data message transmission method provided by this application. Possible structure diagram. The data message transmission device 90 may be a functional module or a chip. As shown in FIG. 9, the data packet transmission device 90 may include: a determining unit 901 and a processing unit 902.
一种可能的实现方式中,当数据报文传输装置90部署于上述第一网络设备时,确定单元901用于执行图3或图6中的过程S301、或图7中的过程S701、或图8中的过程S801;处理单元902用于执行图3或图6中的过程S302、S303、或图7中的过程S702、S703、或图8中的过程S802、S803。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。In a possible implementation manner, when the data message transmission apparatus 90 is deployed in the above-mentioned first network device, the determining unit 901 is configured to execute the process S301 in FIG. 3 or FIG. 6, or the process S701 in FIG. 7, or the process S701 in FIG. Process S801 in Fig. 8; the processing unit 902 is configured to execute processes S302 and S303 in Fig. 3 or Fig. 6, or processes S702 and S703 in Fig. 7, or processes S802 and S803 in Fig. 8. Among them, all relevant content of the steps involved in the foregoing method embodiments can be cited in the functional description of the corresponding functional module, and will not be repeated here.
另一种可能的实现方式中,当数据报文传输装置90部署于上述第二网络设备时,确定单元901用于执行图6中的过程S304、或图7中的过程S709、或图8中的过程S806;处理单元902用于执行图6中的过程S305、S306、或图7中的过程S710、S711、或图8中的过程S807、S808。其中,上述方法实施例涉及的各步骤的所有相关内容均 可以援引到对应功能模块的功能描述,在此不再赘述。In another possible implementation manner, when the data message transmission apparatus 90 is deployed in the above-mentioned second network device, the determining unit 901 is configured to execute the process S304 in FIG. 6, or the process S709 in FIG. 7, or the process S709 in FIG. The process S806; the processing unit 902 is configured to execute the processes S305 and S306 in FIG. 6, or the processes S710 and S711 in FIG. 7, or the processes S807 and S808 in FIG. 8. Among them, all the relevant content of the steps involved in the above method embodiments can be cited in the functional description of the corresponding functional module, which will not be repeated here.
再一种可能的实现方式中,当数据报文传输装置90部署于上述第三网络设备时,处理单元902用于执行图7中的过程S705、S706。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。In another possible implementation manner, when the data message transmission apparatus 90 is deployed in the foregoing third network device, the processing unit 902 is configured to execute the processes S705 and S706 in FIG. 7. Among them, all relevant content of the steps involved in the foregoing method embodiments can be cited in the functional description of the corresponding functional module, and will not be repeated here.
可选的,如图10所示,数据报文传输装置90还可以包括发送单元903,用于执行图6中的过程S303a或S307、或图7中的过程S707、或图8中的过程S804、S809。Optionally, as shown in FIG. 10, the data message transmission device 90 may further include a sending unit 903, configured to execute the process S303a or S307 in FIG. 6, or the process S707 in FIG. 7, or the process S804 in FIG. , S809.
可选的,如图10所示,数据报文传输装置90还可以包括接收单元904,用于执行图6中的过程S308、或图7中的过程S704或S708、或图8中的过程S805或S810。Optionally, as shown in FIG. 10, the data message transmission device 90 may further include a receiving unit 904, configured to execute the process S308 in FIG. 6, or the process S704 or S708 in FIG. 7, or the process S805 in FIG. Or 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的程序代码和数据。In the case of using an integrated unit, FIG. 11 shows a schematic diagram of a possible structure of the network device 110 involved in the foregoing embodiment. The network device 110 may be the first network device or the second network device or the third network device described in the foregoing method embodiment. The network device 110 may include: a processing module 1101 and a communication module 1102. The processing module 1101 is used to control and manage the actions of the network device 110, and the communication module 1102 is used to communicate with other devices. For example, the processing module 1101 is configured to execute any one of the processes S301 to S306 in FIG. 3 or FIG. 6, or any one of the processes S701 to S703 or S709 to S711 in FIG. 7, or the processes S801 to S801 in FIG. S803 or any process from S806 to S808. The network device 110 may also include a storage module 1103 for storing program codes and data of the network device 110.
其中,处理模块1101可以为图2所示的网络设备20的实体结构中的处理器201,可以是处理器或控制器。例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理模块1101也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1102可以为图2所示的网络设备20的实体结构中的收发器203,通信模块1102可以是通信端口,或者可以是收发器、收发电路或通信接口等。或者,上述通信接口可以通过上述具有收发功能的元件,实现与其他设备的通信。上述具有收发功能的元件可以由天线和/或射频装置实现。存储模块1103可以是图2所示的网络设备20的实体结构中的存储器203。The processing module 1101 may be the processor 201 in the physical structure of the network device 20 shown in FIG. 2, and may be a processor or a controller. For example, it may be a CPU, a general-purpose processor, DSP, ASIC, FPGA or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logical blocks, modules, and circuits described in conjunction with the disclosure of this application. The processing module 1101 may also be a combination of computing functions, for example, a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on. The communication module 1102 may be the transceiver 203 in the physical structure of the network device 20 shown in FIG. 2. The communication module 1102 may be a communication port, or may be a transceiver, a transceiver circuit, or a communication interface. Alternatively, the above-mentioned communication interface may realize communication with other devices through the above-mentioned element having a transceiver function. The above-mentioned elements with transceiving functions can be implemented by antennas and/or radio frequency devices. The storage module 1103 may be the memory 203 in the physical structure of the network device 20 shown in FIG. 2.
当处理模块1101为处理器,通信模块1102为收发器,存储模块1103为存储器时,本申请实施例图11所涉及的网络设备110可以为图2所示的网络设备20。When the processing module 1101 is a processor, the communication module 1102 is a transceiver, and the storage module 1103 is a memory, the network device 110 involved in FIG. 11 in the embodiment of the present application may be the network device 20 shown in FIG. 2.
如前述,本申请实施例提供的数据报文传输装置90或网络设备110可以用于实施上述本申请各实施例实现的方法中相应的功能,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。As mentioned above, the data packet transmission device 90 or the network device 110 provided in the embodiments of the present application can be used to implement the corresponding functions in the methods implemented by the various embodiments of the present application. For related parts and specific technical details that are not disclosed, please refer to the various embodiments of this application.
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的数据报文传输方法。As another form of this embodiment, a computer-readable storage medium is provided, and an instruction is stored thereon. When the instruction is executed, the data packet transmission method in the foregoing method embodiment is executed.
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的数据报文传输方法。As another form of this embodiment, a computer program product containing instructions is provided. When the computer program product runs on a computer, the computer executes the data packet transmission method in the foregoing method embodiment.
本申请实施例再提供一种芯片系统,该芯片系统包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片系统还包括存储器,用于保存本发明实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片系统还包括存储器, 用于处理器调用存储器中存储的应用程序代码。该芯片系统,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。The embodiment of the present application further provides a chip system. The chip system includes a processor for implementing the technical method of the embodiment of the present invention. In a possible design, the chip system further includes a memory for storing necessary program instructions and/or data in the embodiment of the present invention. In a possible design, the chip system further includes a memory for the processor to call application program codes stored in the memory. The chip system may be composed of one or more chips, and may also include chips and other discrete devices, which are not specifically limited in the embodiment of the present application.
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。或者,存储器可以与处理器耦合,例如存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。存储器可以用于存储执行本申请实施例提供的技术方案的应用程序代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,从而实现本申请实施例提供的技术方案。The steps of the method or algorithm described in conjunction with the disclosure of the present application can be implemented in a hardware manner, or can be implemented in a manner in which a processor executes software instructions. Software instructions can be composed of corresponding software modules. The software modules can be stored in RAM, flash memory, ROM, erasable programmable read-only memory (erasable programmable ROM, EPROM), electrically erasable programmable read-only memory (electrically erasable programmable read-only memory, EPROM, EEPROM), registers, hard disk, mobile hard disk, CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, so that the processor can read information from the storage medium and can write information to the storage medium. Of course, the storage medium may also be an integral part of the processor. The processor and the storage medium may be located in the ASIC. In addition, the ASIC may be located in the core network interface device. Of course, the processor and the storage medium may also exist as discrete components in the core network interface device. Alternatively, the memory may be coupled with the processor. For example, the memory may exist independently and be connected to the processor through a bus. The memory can also be integrated with the processor. The memory may be used to store application program codes that execute the technical solutions provided in the embodiments of the present application, and the processor controls the execution. The processor is used to execute application program codes stored in the memory, so as to implement the technical solutions provided in the embodiments of the present application.
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。Through the description of the above embodiments, those skilled in the art can clearly understand that for the convenience and brevity of the description, only the division of the above-mentioned functional modules is used for illustration. In practical applications, the above-mentioned functions can be allocated according to needs. It is completed by different functional modules, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed device and method can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the modules or units is only a logical function division. In actual implementation, there may be other division methods, for example, multiple units or components may be It can be combined or integrated into another device, or some features can be omitted or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate parts may or may not be physically separate. The parts displayed as units may be one physical unit or multiple physical units, that is, they may be located in one place, or they may be distributed to multiple different places. . Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光 盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application are essentially or the part that contributes to the prior art, or all or part of the technical solutions can be embodied in the form of a software product, and the software product is stored in a storage medium. It includes several instructions to make a device (may be a single-chip microcomputer, a chip, etc.) or a processor (processor) execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific implementations of this application, but the protection scope of this application is not limited to this. Any changes or substitutions within the technical scope disclosed in this application shall be covered by the protection scope of this application. . Therefore, the protection scope of this application should be subject to the protection scope of the claims.

Claims (29)

  1. 一种数据报文传输方法,其特征在于,所述方法包括:A data message transmission method, characterized in that the method includes:
    第一网络设备根据预设时长内队列长度,确定所述第一网络设备的拥塞状态;The first network device determines the congestion state of the first network device according to the queue length within the preset time period;
    当所述第一网络设备确定所述拥塞状态为非稳定拥塞时,所述第一网络设备对接收的第一数据报文添加第一标识,所述第一标识用于标识所述第一网络设备处于非稳定拥塞;或者,When the first network device determines that the congestion state is unstable congestion, the first network device adds a first identifier to the received first data message, and the first identifier is used to identify the first network The device is in unstable congestion; or,
    当所述第一网络设备确定所述拥塞状态为稳定拥塞时,所述第一网络设备对接收的第二数据报文添加第二标识,所述第二标识用于标识所述第一网络设备处于稳定拥塞,其中,所述第一标识和所述第二标识不同。When the first network device determines that the congestion state is stable congestion, the first network device adds a second identifier to the received second data message, and the second identifier is used to identify the first network device It is in stable congestion, wherein the first identifier and the second identifier are different.
  2. 根据权利要求1所述的方法,其特征在于,所述第一网络设备根据预设时长内队列长度,确定所述第一网络设备的拥塞状态,包括:The method according to claim 1, wherein the first network device determines the congestion state of the first network device according to the queue length within a preset time period, comprising:
    若所述预设时长内,所述队列的长度处于拥塞区间的时长小于第一时长,确定所述第一网络设备的拥塞状态为所述非稳定拥塞;或If the length of the queue is in the congestion interval for a period of time less than the first period of time within the preset period of time, determining that the congestion state of the first network device is the unstable congestion; or
    若所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长,确定所述第一网络设备的拥塞状态为所述稳定拥塞;其中,所述第二时长大于或等于所述第一时长。If the length of the queue is in the congested interval for a period of time greater than the second period of time within the preset period of time, it is determined that the congestion state of the first network device is the stable congestion; wherein, the second period of time is greater than or Equal to the first duration.
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:The method according to claim 1 or 2, wherein the method further comprises:
    所述第一网络设备向第二网络设备发送第一拥塞信息,所述第一拥塞信息用于指示所述第一网络设备的拥塞状态;所述第二网络设备为所述数据报文的接收端设备的上一级网络设备。The first network device sends first congestion information to a second network device, where the first congestion information is used to indicate the congestion status of the first network device; the second network device is the reception of the data packet The upper-level network device of the end device.
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述第一标识用于指示对接收的第一数据流增加发送窗口数;所述第二标识用于指示对所述第一数据流降低或保持发送窗口数。The method according to any one of claims 1 to 3, wherein the first identifier is used to indicate an increase in the number of sending windows for the received first data stream; the second identifier is used to indicate that the first data stream is A data stream reduces or maintains the number of sending windows.
  5. 根据权利要求4所述的方法,其特征在于,所述第一标识或第二标识还用于指示对第二数据流降低发送窗口数,所述第一数据流为满足预设条件的第二数据流之外的数据流,所述第二数据流为所述第一网络设备正在传输的数据流。The method according to claim 4, wherein the first identifier or the second identifier is also used to indicate to reduce the number of sending windows for a second data stream, and the first data stream is a second data stream that satisfies a preset condition. A data stream other than a data stream, where the second data stream is a data stream being transmitted by the first network device.
  6. 根据权利要求5所述的方法,其特征在于,所述预设条件包括:The method according to claim 5, wherein the preset condition comprises:
    待传输的数据流;或者,建链时间晚于预设时刻的数据流。The data stream to be transmitted; or, the data stream whose link establishment time is later than the preset time.
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述第一标识或所述第二标识添加在网际协议头。The method according to any one of claims 1-6, wherein the first identifier or the second identifier is added to an Internet protocol header.
  8. 一种数据报文传输方法,其特征在于,所述方法包括:A data message transmission method, characterized in that the method includes:
    第二网络设备确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;所述拥塞状态包括稳定拥塞和非稳定拥塞;The second network device determines the congestion state of the congestion point device on the transmission path of the sent data message within a preset period of time; the congestion state includes stable congestion and unstable congestion;
    若所述拥塞状态为所述非稳定拥塞,所述第二网络设备对第一数据流增加发送窗口数;或者,If the congestion state is the unstable congestion, the second network device increases the number of sending windows for the first data stream; or,
    若所述拥塞状态为所述稳定拥塞,所述第二网络设备对所述第一数据流降低或保持发送窗口数。If the congestion state is the stable congestion, the second network device reduces or maintains the number of sending windows for the first data flow.
  9. 根据权利要求8所述的方法,其特征在于,The method of claim 8, wherein:
    所述非稳定拥塞为所述预设时长内,所述拥塞点设备的队列的长度处于拥塞区间 的时长小于第一时长;或The unsteady congestion is within the preset time period, and the length of the queue of the congestion point device is in the congestion interval for a time period that is less than the first time period; or
    所述稳定拥塞为所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长;其中,所述第二时长大于或等于所述第一时长。The stable congestion means that the length of the queue in the congestion interval is longer than a second period of time within the preset period of time; wherein, the second period of time is greater than or equal to the first period of time.
  10. 根据权利要求8或9所述的方法,其特征在于,所述第二网络设备为所述数据报文的接收端设备的上一级网络设备;The method according to claim 8 or 9, wherein the second network device is an upper-level network device of the receiving end device of the data packet;
    所述第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,包括:所述第二网络设备从所述拥塞点设备接收第一拥塞信息,所述第一拥塞信息用于指示所述拥塞点设备的拥塞状态;The second network device determining the congestion status of the congestion point device on the data packet transmission path includes: the second network device receives first congestion information from the congestion point device, and the first congestion information is used to indicate The congestion state of the congestion point device;
    所述方法还包括:所述第二网络设备向所述数据报文的发送端设备发送所述第一数据流的发送窗口数。The method further includes: the second network device sends the number of sending windows of the first data stream to the sender device of the data message.
  11. 根据权利要求8或9所述的方法,其特征在于,所述第二网络设备为所述数据报文的发送端设备,所述第二网络设备确定数据报文传输路径上的拥塞点设备的拥塞状态,包括:The method according to claim 8 or 9, wherein the second network device is the sender device of the data packet, and the second network device determines the congestion point device on the data packet transmission path. Congestion status, including:
    所述第二网络设备接收所述数据报文的确认字符(ACK)报文,所述ACK报文的报文头中携带用于指示所述拥塞点设备的拥塞状态的第二拥塞信息。The second network device receives an acknowledgment character (ACK) message of the data message, and a header of the ACK message carries second congestion information used to indicate the congestion state of the congestion point device.
  12. 根据权利要求8-11任一项所述的方法,其特征在于,所述第一数据流为满足预设条件的数据流。The method according to any one of claims 8-11, wherein the first data stream is a data stream that meets a preset condition.
  13. 根据权利要求12所述的方法,其特征在于,所述预设条件包括:The method according to claim 12, wherein the preset condition comprises:
    待传输的数据流;或者,建链时间晚于预设时刻的数据流。The data stream to be transmitted; or, the data stream whose link establishment time is later than the preset time.
  14. 一种数据报文传输装置,其特征在于,所述装置包括:A data message transmission device, characterized in that the device includes:
    确定单元,用于根据预设时长内队列长度,确定所述装置所在的第一网络设备的拥塞状态;The determining unit is configured to determine the congestion state of the first network device where the apparatus is located according to the queue length within the preset time period;
    处理单元,用于当所述确定单元确定所述拥塞状态为非稳定拥塞时,对接收的第一数据报文添加第一标识,所述第一标识用于标识所述第一网络设备处于非稳定拥塞;或者,The processing unit is configured to, when the determining unit determines that the congestion state is unstable congestion, add a first identifier to the received first data message, where the first identifier is used to identify that the first network device is in a non-stationary state. Stable congestion; or,
    所述处理单元用于,当所述确定单元确定所述拥塞状态为稳定拥塞时,对接收的第二数据报文添加第二标识,所述第二标识用于标识所述第一网络设备处于稳定拥塞,其中,所述第一标识和所述第二标识不同。The processing unit is configured to, when the determining unit determines that the congestion state is stable congestion, add a second identifier to the received second data message, and the second identifier is used to identify that the first network device is in Stable congestion, wherein the first identifier and the second identifier are different.
  15. 根据权利要求14所述的装置,其特征在于,所述确定单元具体用于:The device according to claim 14, wherein the determining unit is specifically configured to:
    若所述预设时长内,所述队列的长度处于拥塞区间的时长小于第一时长,确定所述第一网络设备的拥塞状态为所述非稳定拥塞;或If the length of the queue is in the congestion interval for a period of time less than the first period of time within the preset period of time, determining that the congestion state of the first network device is the unstable congestion; or
    若所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长,确定所述第一网络设备的拥塞状态为所述稳定拥塞;其中,所述第二时长大于或等于所述第一时长。If the length of the queue is in the congested interval for a period of time greater than the second period of time within the preset period of time, it is determined that the congestion state of the first network device is the stable congestion; wherein, the second period of time is greater than or Equal to the first duration.
  16. 根据权利要求14或15所述的装置,其特征在于,所述装置还包括:The device according to claim 14 or 15, wherein the device further comprises:
    发送单元,用于向第二网络设备发送第一拥塞信息,所述第一拥塞信息用于指示所述第一网络设备的拥塞状态;所述第二网络设备为所述数据报文的接收端设备的上一级网络设备。The sending unit is configured to send first congestion information to a second network device, where the first congestion information is used to indicate the congestion state of the first network device; the second network device is the receiving end of the data packet The upper-level network device of the device.
  17. 根据权利要求14-16任一项所述的装置,其特征在于,所述第一标识用于指 示对接收的第一数据流增加发送窗口数;所述第二标识用于指示对所述第一数据流降低或保持发送窗口数。The device according to any one of claims 14-16, wherein the first identifier is used to indicate an increase in the number of sending windows for the received first data stream; the second identifier is used to indicate that the first data stream is A data stream reduces or maintains the number of sending windows.
  18. 根据权利要求17所述的装置,其特征在于,所述第一标识或第二标识还用于指示对第二数据流降低发送窗口数,所述第一数据流为满足预设条件的第二数据流之外的数据流,所述第二数据流为所述第一网络设备正在传输的数据流。The device according to claim 17, wherein the first identifier or the second identifier is further used to indicate to reduce the number of sending windows for a second data stream, and the first data stream is a second data stream that meets a preset condition. A data stream other than a data stream, where the second data stream is a data stream being transmitted by the first network device.
  19. 根据权利要求18所述的装置,其特征在于,所述预设条件包括:The device according to claim 18, wherein the preset condition comprises:
    待传输的数据流;或者,建链时间晚于预设时刻的数据流。The data stream to be transmitted; or, the data stream whose link establishment time is later than the preset time.
  20. 根据权利要求14-19任一项所述的装置,其特征在于,所述第一标识或所述第二标识添加在网际协议头。The device according to any one of claims 14-19, wherein the first identifier or the second identifier is added to an Internet protocol header.
  21. 一种数据报文传输装置,其特征在于,所述装置包括:A data message transmission device, characterized in that the device includes:
    确定单元,用于确定所发送的数据报文传输路径上的拥塞点设备在预设时长内的拥塞状态;所述拥塞状态包括稳定拥塞和非稳定拥塞;The determining unit is configured to determine the congestion state of the congestion point device on the transmission path of the sent data message within a preset period of time; the congestion state includes stable congestion and unstable congestion;
    处理单元,用于若所述确定单元确定的所述拥塞状态为所述非稳定拥塞,对第一数据流增加发送窗口数;或者,A processing unit, configured to increase the number of sending windows for the first data stream if the congestion state determined by the determining unit is the unstable congestion; or,
    所述处理单元用于,若所述确定单元确定的所述拥塞状态为所述稳定拥塞,对所述第一数据流降低或保持发送窗口数。The processing unit is configured to, if the congestion state determined by the determining unit is the stable congestion, reduce or maintain the number of sending windows for the first data stream.
  22. 根据权利要求21所述的装置,其特征在于,The device according to claim 21, wherein:
    所述非稳定拥塞为所述预设时长内,所述拥塞点设备的队列的长度处于拥塞区间的时长小于第一时长;或The unsteady congestion is within the preset time period, and the length of the queue of the congestion point device in the congestion interval is less than the first time period; or
    所述稳定拥塞为所述预设时长内,所述队列的长度处于所述拥塞区间的时长大于第二时长;其中,所述第二时长大于或等于所述第一时长。The stable congestion means that the length of the queue in the congestion interval is longer than a second period of time within the preset period of time; wherein, the second period of time is greater than or equal to the first period of time.
  23. 根据权利要求21或22所述的装置,其特征在于,所述装置部署于所述数据报文的接收端设备的上一级网络设备;The device according to claim 21 or 22, wherein the device is deployed on a higher-level network device of the receiving end device of the data message;
    所述确定单元具体用于:从所述拥塞点设备接收第一拥塞信息,所述第一拥塞信息用于指示所述拥塞点设备的拥塞状态;The determining unit is specifically configured to: receive first congestion information from the congestion point device, where the first congestion information is used to indicate the congestion state of the congestion point device;
    所述装置还包括发送单元,用于向所述数据报文的发送端设备发送所述第一数据流的发送窗口数。The device further includes a sending unit, configured to send the number of sending windows of the first data stream to the sending end device of the data message.
  24. 根据权利要求21或22所述的装置,其特征在于,所述装置部署于所述数据报文的发送端设备,所述确定单元具体用于:The device according to claim 21 or 22, wherein the device is deployed on a sender device of the data message, and the determining unit is specifically configured to:
    接收所述数据报文的确认字符(ACK)报文,所述ACK报文的报文头中携带用于指示所述拥塞点设备的拥塞状态的第二拥塞信息。An acknowledgement character (ACK) message of the data message is received, and the message header of the ACK message carries second congestion information used to indicate the congestion state of the congestion point device.
  25. 根据权利要求21-24任一项所述的装置,其特征在于,所述第一数据流为满足预设条件的数据流。The device according to any one of claims 21-24, wherein the first data stream is a data stream that meets a preset condition.
  26. 根据权利要求25所述的装置,其特征在于,所述预设条件包括:The device according to claim 25, wherein the preset condition comprises:
    待传输的数据流;或者,建链时间晚于预设时刻的数据流。The data stream to be transmitted; or, the data stream whose link establishment time is later than the preset time.
  27. 一种网络设备,其特征在于,所述网络设备包括:处理器和存储器;A network device, characterized in that, the network device includes: a processor and a memory;
    所述存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,所述网络设备执行如权利要求1至13中任一项所述的数据报文传输方法。The memory is connected to the processor; the memory is used to store computer instructions, and when the processor executes the computer instructions, the network device executes the data according to any one of claims 1 to 13 Message transmission method.
  28. 一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行权利要求1至13中任一项所述的数据报文传输方法。A computer-readable storage medium, comprising instructions, which when run on a computer, causes the computer to execute the data message transmission method according to any one of claims 1 to 13.
  29. 一种计算机程序产品,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至13中任一项所述的数据报文传输方法。A computer program product, characterized by comprising instructions, which when run on a computer, causes the computer to execute the data message transmission method according to any one of claims 1 to 13.
PCT/CN2021/095210 2020-05-29 2021-05-21 Data packet transmission method and apparatus WO2021238799A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010478243.1A CN113746743B (en) 2020-05-29 2020-05-29 Data message transmission method and device
CN202010478243.1 2020-05-29

Publications (1)

Publication Number Publication Date
WO2021238799A1 true WO2021238799A1 (en) 2021-12-02

Family

ID=78724917

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/095210 WO2021238799A1 (en) 2020-05-29 2021-05-21 Data packet transmission method and apparatus

Country Status (2)

Country Link
CN (1) CN113746743B (en)
WO (1) WO2021238799A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208827A (en) * 2022-07-11 2022-10-18 京东科技信息技术有限公司 Flow distribution method and device
CN116545933A (en) * 2023-07-06 2023-08-04 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Network congestion control method, device, equipment and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116489106B (en) * 2023-06-21 2023-09-19 新华三技术有限公司 Congestion control method, device, forwarding chip and client

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104552A (en) * 2011-04-02 2011-06-22 杭州华三通信技术有限公司 Message control method and device based on ECN (Explicit Congestion Notification) mechanism
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
CN102594681A (en) * 2012-02-16 2012-07-18 清华大学 Sliding mode variable structure congestion control method for Ethernet
CN104038438A (en) * 2013-12-03 2014-09-10 江苏达科信息科技有限公司 Explicit congestion control method improved on the basis of conventional transmission control protocol
CN105024946A (en) * 2015-06-16 2015-11-04 清华大学 Bandwidth allocation method based on sliding window, device and system
CN107817944A (en) * 2016-09-12 2018-03-20 华为技术有限公司 A kind of data processing method and storage device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
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
US8407364B2 (en) * 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
CN101924687B (en) * 2009-06-12 2012-11-28 中兴通讯股份有限公司 Method and device for controlling switching communicated network flow
US9106535B2 (en) * 2010-01-22 2015-08-11 Samsung Electronics Co., Ltd. Method and apparatus for adaptively managing buffer in communication system including a plurality of network nodes
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
CN102025617B (en) * 2010-11-26 2015-04-01 中兴通讯股份有限公司 Method and device for controlling congestion of Ethernet
WO2012127597A1 (en) * 2011-03-19 2012-09-27 富士通株式会社 Congestion control method and wireless communication apparatus
CN102624723B (en) * 2012-03-06 2015-05-27 杭州华三通信技术有限公司 Method and device for achieving explicit congestion notification
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
US9419900B2 (en) * 2013-12-31 2016-08-16 International Business Machines Corporation Multi-bit indicator set according to feedback based on an equilibrium length of a queue
CN104954279B (en) * 2014-03-28 2018-04-10 华为技术有限公司 A kind of transfer control method, apparatus and system
CN106027412B (en) * 2016-05-30 2019-07-12 南京理工大学 A kind of TCP jamming control method based on congestion queue length
CN106059951B (en) * 2016-06-08 2019-03-01 中南大学 A kind of transfer control method for based on multilevel congestion feedback in DCN
US10523684B2 (en) * 2017-10-02 2019-12-31 Higher Ground Llc Forward path congestion mitigation for satellite communications
CN109698797B (en) * 2017-10-24 2022-06-14 中国移动通信集团山东有限公司 TCP congestion control method and device
CN108718283B (en) * 2018-05-03 2020-12-08 电子科技大学 TCP congestion control method for centralized end network coordination in data center network

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
CN102104552A (en) * 2011-04-02 2011-06-22 杭州华三通信技术有限公司 Message control method and device based on ECN (Explicit Congestion Notification) mechanism
CN102594681A (en) * 2012-02-16 2012-07-18 清华大学 Sliding mode variable structure congestion control method for Ethernet
CN104038438A (en) * 2013-12-03 2014-09-10 江苏达科信息科技有限公司 Explicit congestion control method improved on the basis of conventional transmission control protocol
CN105024946A (en) * 2015-06-16 2015-11-04 清华大学 Bandwidth allocation method based on sliding window, device and system
CN107817944A (en) * 2016-09-12 2018-03-20 华为技术有限公司 A kind of data processing method and storage device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208827A (en) * 2022-07-11 2022-10-18 京东科技信息技术有限公司 Flow distribution method and device
CN116545933A (en) * 2023-07-06 2023-08-04 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Network congestion control method, device, equipment and storage medium
CN116545933B (en) * 2023-07-06 2023-10-20 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) Network congestion control method, device, equipment and storage medium

Also Published As

Publication number Publication date
CN113746743A (en) 2021-12-03
CN113746743B (en) 2023-08-08

Similar Documents

Publication Publication Date Title
US20220217090A1 (en) System and method for facilitating data-driven intelligent network with endpoint congestion detection and control
US10771389B2 (en) Virtual tunnel endpoints for congestion-aware load balancing
WO2021238799A1 (en) Data packet transmission method and apparatus
US9497125B2 (en) Congestion control enforcement in a virtualized environment
WO2018210117A1 (en) Congestion control method, network device, and network interface controller thereof
EP3763094B1 (en) Flow management in networks
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
Taheri et al. RoCC: robust congestion control for RDMA
CN111386683A (en) System and method for accelerating or decelerating a data transport network protocol based on real-time transport network congestion conditions
CN111224888A (en) Method for sending message and message forwarding equipment
JP2008118281A (en) Communication device
WO2018133784A1 (en) Packet processing method, device and system
US11805071B2 (en) Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus
Sreekumari et al. A simple and efficient approach for reducing TCP timeouts due to lack of duplicate acknowledgments in data center networks
US20230403233A1 (en) Congestion notification in a multi-queue environment
Xu et al. Enhancing TCP incast congestion control over large-scale datacenter networks
Chen et al. On meeting deadlines in datacenter networks
CN113630337A (en) Data stream receiving method, device and system and computer readable storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21811960

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21811960

Country of ref document: EP

Kind code of ref document: A1