CN108881056A - 一种拥塞控制方法、网络设备及其网络接口控制器 - Google Patents
一种拥塞控制方法、网络设备及其网络接口控制器 Download PDFInfo
- Publication number
- CN108881056A CN108881056A CN201710340116.3A CN201710340116A CN108881056A CN 108881056 A CN108881056 A CN 108881056A CN 201710340116 A CN201710340116 A CN 201710340116A CN 108881056 A CN108881056 A CN 108881056A
- Authority
- CN
- China
- Prior art keywords
- identifier
- data message
- address
- path
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种拥塞控制方法、网络设备及其网络接口控制器。在一种拥塞控制方法中,第一中间设备接收发送设备发送的第一数据报文,经第一路径向接收设备发送第一数据报文;第一中间设备接收接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度;第一中间设备根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给发送设备。本申请提供的方案,根据通信路径的拥塞程度和数据报文的字节数调整数据报文传输速度,有助于提供更为精确有效的拥塞控制,提高网络资源利用率。
Description
技术领域
本申请涉及通信领域,尤其涉及一种拥塞控制方法、网络设备及其网络接口控制器。
背景技术
目前的数据中心中使用数据中心传输控制协议(英文:Data CenterTransmission Control Protocol,DCTCP)和显示拥塞通知(英文:Explicit CongestionNotification,ECN)来进行拥塞控制。数据传输过程中,发送设备发送的数据报文包括拥塞字段。中间网络设备根据设备当前队列长度决定是否在拥塞字段中设置拥塞标记。接收设备将拥塞标记信息携带在确认(英文:acknowledgment,ACK)报文中返回给发送设备。发送设备可以根据确认报文中的拥塞标记信息确定数据报文发送中是否发生拥塞,以调整发送速率(例如发生拥塞时,降低发送窗口大小)。以上数据传输过程中使用的拥塞控制较为简单,不能提供更为精确有效的拥塞控制。
发明内容
本申请提供了一种拥塞控制方法、网络设备及其网络接口控制器,有助于提供更为精确有效的拥塞控制,提高网络资源利用率。
第一方面,提供了一种拥塞控制方法。该方法应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述方法包括:
所述至少一个中间设备中的第一中间设备接收所述发送设备发送的第一数据报文,经第一路径向所述接收设备发送第一数据报文;
所述第一中间设备接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度;
所述第一中间设备根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给所述发送设备。所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
以上方案中,第一中间设备修改返回给发送设备的确认报文中的窗口值,由此使得发送设备可以根据确认报文中的窗口值调整发送速率。该窗口值根据路径的拥塞程度和数据报文的字节数进行不同的修改,有助于实现更为精确有效的拥塞控制,提高网络资源利用率。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值(即具有第一标识的数据报文属于大象流),则所述第一中间设备降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。由此,在路径拥塞程度为轻度时,降低大象流速率,保障老鼠流的速率。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述第一中间设备到所述接收设备的拥塞程度为轻度或不拥塞的路径(即不存在从所述第一中间设备到所述接收设备的其他路径,或是从所述第一中间设备到所述接收设备的所有路径的拥塞程度均为重度),则所述第一中间设备降低所述第一确认报文中所有确认报文中的窗口值。由此当不存在可换路径时,发送设备降低第一路径上所有数据报文(包括大象流和老鼠流)的发送速率。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值(即具有第一标识的数据报文属于大象流),且存在从所述第一中间设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径(即存在可换路径),则所述第一中间设备设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述方法还包括:在所述定时器超时后,所述第一中间设备经所述第二路径向所述接收设备发送接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。通过设置确认报文的窗口值为0的方式,创造换路时机。通过设置定时器,使得路径上正在传输的报文有时间到达接收设备,降低换路导致报文乱序的可能。
可选地,在所述定时器超时前,如果所述第一中间设备收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则所述第一中间设备经所述第二路径向所述接收设备发送接收自所述发送设备的第三数据报文中具有所述第一标识的数据报文。如果在定时器超时前,发送设备向接收设备发送的所有数据报文均已到达接收设备(此时换路不会导致报文乱序),则第一中间设备直接执行换路处理,有助于减少等待时间。
第二方面,提供了一种拥塞控制方法。该方法应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述发送设备包括处理器和网络接口控制器(英文:network interface controller,NIC)。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述方法包括:
所述网络接口控制器NIC接收所述处理器发送的第一数据报文,经第一路径向所述接收设备发送第一数据报文;
所述NIC接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度;
所述NIC根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给所述处理器。所述窗口值用于通知所述处理器所述接收设备能够接收的字节数。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
以上方案中,所述NIC修改返回给处理器的确认报文中的窗口值,由此使得处理器可以根据确认报文中的窗口值调整发送速率。该窗口值根据路径的拥塞程度和数据报文的字节数进行不同的修改,有助于实现更为精确有效的拥塞控制。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述NIC降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址、目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址、源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述NIC降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述NIC设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述方法还包括:在所述定时器超时后,所述NIC经所述第二路径向所述接收设备发送接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
可选地,在所述定时器超时前,如果所述NIC收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则所述NIC经所述第二路径向所述接收设备发送接收自所述处理器的第三数据报文中具有所述第一标识的数据报文。
第三方面,提供了一种网络设备。该网络设备应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述网络设备为所述至少一个中间设备中的第一中间设备。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述网络设备包括接收单元、发送单元和处理单元。
接收单元,用于接收所述发送设备发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文。
发送单元,用于经第一路径向所述接收设备发送所述第一数据报文。
处理单元,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
所述发送单元,还用于将修改后的第一确认报文发送给所述发送设备。所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理单元降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述处理单元降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理单元设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述发送单元,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收单元接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。
可选地,所述发送单元还用于,在所述定时器超时前,如果所述接收单元收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收单元接收自所述发送设备的第三数据报文中具有所述第一标识的数据报文。
第四方面,提供了一种网络接口控制器NIC。该NIC应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述发送设备包括处理器和所述NIC。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述NIC包括接收单元、发送单元和处理单元。
接收单元,用于接收所述处理器发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文。
发送单元,用于经第一路径向所述接收设备发送所述第一数据报文。
处理单元,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
所述发送单元,还用于将修改后的第一确认报文发送给所述处理器。所述窗口值用于通知所述处理器所述接收设备能够接收的字节数。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理单元降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述处理单元降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理单元设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述发送单元,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收单元接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
可选地,所述发送单元,还用于在所述定时器超时前,如果所述接收单元收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收单元接收自所述处理器的第三数据报文中具有所述第一标识的数据报文。
第五方面,提供了一种网络设备。该网络设备应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述网络设备为所述至少一个中间设备中的第一中间设备。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述网络设备包括接收器、发送器和处理器。
接收器,用于接收所述发送设备发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文。
发送器,用于经第一路径向所述接收设备发送所述第一数据报文。
处理器,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
所述发送器,还用于将修改后的第一确认报文发送给所述发送设备。所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理器降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述处理器降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理器设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述发送器,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收单元接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。
可选地,所述发送器还用于,在所述定时器超时前,如果所述接收器收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收器接收自所述发送设备的第三数据报文中具有所述第一标识的数据报文。
第六方面,提供了一种网络接口控制器NIC。该NIC应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述发送设备包括第一处理器和所述NIC。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述NIC包括接收器、发送器和第二处理器。
接收器,用于接收所述第一处理器发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文。
发送器,用于经第一路径向所述接收设备发送所述第一数据报文;
第二处理器,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
所述发送器,还用于将修改后的第一确认报文发送给所述第一处理器。所述窗口值用于通知所述第一处理器所述接收设备能够接收的字节数。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述第二处理器降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述第二处理器降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述第二处理器设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述发送器,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收器接收自所述第一处理器的第二数据报文中具有所述第一标识的数据报文。
可选地,所述发送器,还用于在所述定时器超时前,如果所述接收器收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收器接收自所述第一处理器的第三数据报文中具有所述第一标识的数据报文。
第七方面,提供了一种网络设备。该网络设备应用于数据传输网络中。所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备。所述网络设备为所述发送设备。所述发送设备通过所述中间设备向所述接收设备发送数据报文。所述发送设备包括:处理器和网络接口控制器NIC。
所述处理器,用于向所述NIC发送第一数据报文。
所述NIC,用于接收所述处理器发送的第一数据报文,经第一路径向所述接收设备发送所述第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数修改所述第一确认报文中的窗口值,并将修改后的第一确认报文发送给所述处理器。所述窗口值用于通知所述处理器所述接收设备能够接收的字节数。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
所述处理器进一步用于接收所述NIC发送的所述修改后的第一确认报文,根据所述修改后的第一确认报文通过所述NIC向所述接收设备发送第二数据报文。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述NIC降低所述第一确认报文中具有第二标识的确认报文中的窗口值。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述NIC降低所述第一确认报文中所有确认报文中的窗口值。
可选地,以上修改所述第一确认报文中的窗口值包括:如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述NIC设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。所述第二标识包括源IP地址、源端口、目的IP地址和目的端口。所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。所述NIC,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述NIC接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
可选地,所述NIC,还用于在所述定时器超时前,如果所述NIC收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述NIC接收自所述处理器的第三数据报文中具有所述第一标识的数据报文。
第八方面,提供了一种计算机可读存储介质。所述计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述各方面所述的方法。
第九方面,提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1为本申请实施例提供的一种网络结构示意图;
图2为本申请实施例提供的一种拥塞控制方法的流程图;
图3为本申请实施例提供的一种网络设备300的结构图;
图4为本申请实施例提供的一种网络设备400的结构图;
图5为本申请实施例提供的一种网络结构示意图;
图6为本申请实施例提供的一种拥塞控制方法的流程图;
图7为本申请实施例提供的一种网络接口控制器700的结构图;
图8为本申请实施例提供的一种网络接口控制器800的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做出进一步地详细描述。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图1为本申请实施例提供的一种网络结构示意图。该网络包括发送设备101、至少一个中间设备(例如图1中的中间设备102、103、104、105、107和108)和接收设备106。发送设备101通过所述中间设备向接收设备106发送数据报文。发送设备101可以与接收设备106建立传输控制协议(英文:Transmission Control Protocol,TCP)连接。发送设备101发送的数据报文均到达中间设备102,随后可以经由第一路径到达接收设备106。中间设备102可以是发送设备101向接收设备106发送的数据报文到达的第一跳网络设备或是第N跳网络设备,N为大于1的整数。该第一路径可以包括0个、1个或多个中间设备(例如图1中的中间设备103、104和105)。接收设备106发送的用于对发送设备101发送的数据报文进行确认的确认报文(例如ACK报文)可以经由该第一路径到达中间设备102,再由中间设备102发送给发送设备101。或者该确认报文可以经由与第一路径不同的第二路径到达中间设备102,再由中间设备102发送给发送设备101。该第二路径可以包括0个、1个或多个中间设备(例如图1中的中间设备105、108和107)。用于对发送设备101发送的数据报文进行确认的确认报文均经过中间设备102到达发送设备101。以图1网络结构应用于数据中心为例,发送设备101可以是主机或服务器,接收设备106可以是主机或服务器,以上所述中间设备可以为交换机、路由器、虚拟交换机等。中间设备102还可以是柜顶(英文:top of rack,TOR)交换机,中间设备105也可以是TOR交换机。
图2为本申请实施例提供的一种拥塞控制方法的流程图。该方法可应用于图1所示网络结构。该方法包括如下步骤:
S201、中间设备102接收发送设备101发送的第一数据报文,经第一路径向接收设备106发送所述第一数据报文。
第一路径可以包括0个、1个或多个中间设备,例如图1所示中间设备103、104和105。
中间设备102接收到第一数据报文后,选择第一数据报文的传输路径,并采用源路由(英文:source routing)技术,在发送的数据报文中携带要经过的路径的信息。该路径的信息例如是第一数据报文要经过的第一路径包括的各个中间设备的IP地址。举例来说,中间设备102在第一数据报文的互联网协议(英文:Internet Protocol,IP)报文头部的选项(英文:options)字段中添加要经过的中间设备的IP地址(例如中间设备103、104和105的IP地址)。由此第一路径上的各中间设备可以根据IP报文头部的选项字段中的IP地址对数据报文进行转发。源路由技术具体实现可以参照国际互联网工程任务组(英文:The InternetEngineering Task Force,IETF)RFC 791(INTERNET PROTOCOL,DARPA INTERNET PROGRAMPROTOCOL SPECIFICATION),该文件的全部内容以引入的方式并入本文中。
第一数据报文中可以包括多个数据报文,该多个数据报文可以具有不同的标识。该多个数据报文可以通过标识进行区分。该标识例如包括源IP地址、源端口、目的IP地址和目的端口。该标识例如还可以包括传输层协议号(TCP的传输层协议号为6),由此该标识构成一个五元组。中间设备102在为第一数据报文选择第一路径后,可以记录第一数据报文中每个数据报文的标识和该第一路径之间的对应关系。例如记录第一数据报文中具有第一标识的数据报文的第一标识(例如包括发送设备101的源IP地址、发送设备101上的源端口、接收设备106的目的IP地址和接收设备106上的目的端口)以及对应的该第一路径的信息(例如包括中间设备103、104和105的IP地址)。例如还可以记录第一数据报文中具有其他标识的数据报文的该其他标识(例如发送设备101的源IP地址、发送设备101上的另一源端口、接收设备106的目的IP地址和接收设备106上的另一目的端口)以及对应的该第一路径的信息(例如包括中间设备103、104和105的IP地址)。中间设备102可以将所有经过第一路径发送的数据报文的标识与该第一路径的对应关系进行记录。该经过第一路径发送的数据报文还可以包括不是从发送设备101到接收设备106的数据报文(即发送端不是发送设备101或接收端不是接收设备106,但数据报文经该第一路径发送,图1未示出)。同样地,中间设备102还可以记录经其他路径向接收设备106发送的数据报文的标识及对应的路径的信息。中间设备102记录了数据报文的标识与路径的对应关系,由此可以根据数据报文的标识确定标识对应的路径(例如根据该第一标识确定该第一路径)。
S202、第一路径上的中间设备在所述第一数据报文中设置拥塞标记。
第一数据报文在经过第一路径上的各中间设备(例如中间设备103、104和105)时,第一路径上的各中间设备都可以根据当前设备上用于保存该第一数据报文的队列长度确定拥塞程度。该队列长度例如是各中间设备上发送缓存中缓存的待发送数据报文的长度。具体来说,中间设备上可以设置两个阈值(例如t1和t2,其中t1<t2),当所述队列长度小于阈值t1时,拥塞程度为不拥塞,当所述队列长度大于等于阈值t1且小于等于阈值t2时,拥塞程度为轻度,当所述队列长度大于阈值t2时,拥塞程度为重度。中间设备将拥塞程度与第一数据报文的拥塞标记所指示的拥塞程度进行比较。所述第一数据报文的拥塞标记可以包括多个拥塞标记,该多个拥塞标记中的每一个拥塞标记被包括在该第一数据报文中的一个数据报文中。当中间设备上拥塞程度大于第一数据报文的拥塞标记所指示的拥塞程度时,中间设备使用拥塞程度对应的拥塞标记来更新第一数据报文中的拥塞标记,否则不更新拥塞标记。
第一数据报文中使用IP报文头部的差分服务代码点(英文:DifferentiatedServices Code Point,DSCP)字段做为拥塞标记,IP报文头部的DSCP字段具体可以参照IETF RFC2474(Definition of the Differentiated Services Field(DS Field)in theIPv4and IPv6 Headers),该文件的全部内容以引入的方式并入到本文中。DSCP字段包括4个比特,从发送设备101发往接收设备106的数据报文中,例如可以使用该4个比特中的前2个比特做为所述拥塞标记。拥塞标记为00时表示不拥塞,为01时表示轻度拥塞,为10时表示重度拥塞。
以中间设备103为例,当中间设备103确定自身设备上的拥塞程度为重度拥塞时,如果第一数据报文中的拥塞标记为00或01,则将拥塞标记更新为10,如果第一数据报文中的拥塞标记为10,则不更新拥塞标记。当中间设备103确定自身设备上的拥塞程度为轻度拥塞时,如果第一数据报文中的拥塞标记为00,则将拥塞标记更新为01,如果第一数据报文中的拥塞标记为01或10,则不更新拥塞标记。当中间设备103确定自身设备上的拥塞程度为不拥塞时,不更新拥塞标记。通过以上拥塞标记更新机制,接收设备106接收的数据报文中的拥塞标记可以指示整条路径上最重的拥塞程度。
同样地,其他路径上的中间设备也可以用以上方式对经其他路径进行发送的数据报文设置拥塞标记。此外,中间设备102也可以根据当前中间设备102上用于保存第一数据报文的队列长度确定拥塞程度,并用该拥塞程度对应的拥塞标记来更新第一数据报文中的拥塞标记。
S203、接收设备106向中间设备102发送第一确认报文。
接收设备106接收到第一数据报文后,获取第一数据报文中的拥塞标记,例如DSCP字段的前两位,生成第一确认报文。第一确认报文用于对所述第一数据报文进行确认,例如是TCP协议中的ACK报文。第一确认报文可以包括多个确认报文,每个确认报文用于对第一数据报文中的一个数据报文进行确认,该多个确认报文可以通过标识进行区分。该标识例如包括源IP地址、源端口、目的IP地址、目的端口。该标识例如还可以包括传输层协议号(TCP的传输层协议号为6),由此该标识构成一个五元组。数据报文的标识与用于确认该数据报文的确认报文的标识的对应关系为:数据报文的标识的源IP地址、源端口、目的IP地址和目的端口分别与确认报文的标识的目的IP地址、目的端口、源IP地址和源端口相同。以上第一数据报文的标识与第一确认报文的标识即具有以上对应关系。由此,第一数据报文中具有第一标识的数据报文的第一标识可以对应到第一确认报文中具有第二标识的确认报文的第二标识。
第一确认报文中使用IP报文头部的DSCP字段的后2个比特做为拥塞标记,接收设备106发送的第一确认报文中的拥塞标记的值与接收设备106接收的第一数据报文中的拥塞标记的值相同。
第一确认报文可以通过第一数据报文发送时经过的同一路径(即第一路径)到达中间设备102。第一确认报文也可以通过不同于第一路径的第二路径到达中间设备102。第二路径可以包括0个、1个或多个中间设备,例如图1所示中间设备105、108和107。
同样地,中间设备102经其他路径向接收设备106发送的数据报文也具有对应的由接收设备106向中间设备102发送的确认报文。该经其他路径发送的数据报文的标识与对应的确认报文的标识也具有以上对应关系。同样地,对于该中间设备102经其他路径发送的数据报文,接收设备106发送的确认报文也可以采用以上在第一确认报文中使用拥塞标记的方式,并经与数据报文发送时经过的同一路径或不同路径返回该确认报文。
S204、中间设备102根据第一确认报文中的拥塞标记确定第一路径的拥塞程度。
中间设备102根据第一确认报文中的第二标识可以确定第一标识(参见S203中第一标识和第二标识的对应关系),并进一步根据第一标识确定第一路径的信息(参见S201,中间设备102可以记录第一标识以及第一路径之间的对应关系)。进而,中间设备102可以根据第一确认报文中拥塞标记指示各个拥塞程度的确认报文的数量或比例来计算拥塞程度。例如,中间设备102计算第一确认报文中的多个确认报文中拥塞标记指示重度的确认报文的比例,当比例大于阈值r2时,确定第一路径的拥塞程度为重度拥塞,当比例小于等于阈值r2大于阈值r1时(r1<r2),确定第一路径的拥塞程度为轻度拥塞,当比例小于阈值r1时,确定第一路径的拥塞程度为不拥塞。还例如,中间设备102还可以将第一确认报文中的多个确认报文中拥塞标记指示重度的确认报文和拥塞标记指示轻度的确认报文的数量之和在所述多个确认报文的总数中的占比与阈值r1和阈值r2(r1<r2)比较,当该占比大于阈值r2时,确定第一路径的拥塞程度为重度拥塞,当比例小于等于阈值r2大于阈值r1时(r1<r2),确定第一路径的拥塞程度为轻度拥塞,当比例小于阈值r1时,确定第一路径的拥塞程度为不拥塞。还例如,中间设备102将第一确认报文中的多个确认报文中拥塞标记指示重度的确认报文的数量,与阈值n1和阈值n2(n1<n2)进行比较,当该数量大于阈值n2时,确定第一路径的拥塞程度为重度拥塞,当比例小于等于阈值n2大于阈值n1时(n1<n2),确定第一路径的拥塞程度为轻度拥塞,当比例小于阈值n1时,确定第一路径的拥塞程度为不拥塞。
同样地,中间设备102接收到接收设备106发送的用于对各个路径发送的数据报文进行确认的确认报文后,可以采用以上过程,根据确认报文中的拥塞标记确定各个路径的拥塞程度并进行记录。由此,中间设备102上可以记录数据报文的标识、使用的路径的信息和路径拥塞程度。
S205、中间设备102根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给发送设备101。
TCP协议中在报文头部包括窗口值字段以便进行流量控制。接收设备向发送设备发送ACK报文,通过ACK报文中的窗口值来通知发送设备接收设备能够接收的字节数。发送设备根据ACK报文中的窗口值调整数据报文的发送速率。关于TCP协议流量控制可参照IETFRFC793(TRANSMISSION CONTROL PROTOCOL,DARPA INTERNET PROGRAM PROTOCOLSPECIFICATION),该文件的全部内容以引入的方式并入本文中。
中间设备102根据第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改第一确认报文中的窗口值。中间设备102在发送数据报文时,可以对数据报文中具有各个标识的数据报文分别进行字节数统计,以便根据路径的拥塞程度和具有各个标识的数据报文的字节数大小来确定不同的窗口值。举例来说,步骤S201中中间设备102发送第一数据报文时,可以对第一数据报文中具有第一标识的数据报文进行字节数统计。中间设备102将统计的字节数与设定的阈值f1相比较以区分具有第一标识的数据报文属于一个大象流(英文:elephant flow,即极大连续流)还是一个老鼠流(英文:miceflow,即短流)。当具有某一标识的数据报文统计的字节数大于阈值f1时,该具有某一标识的数据报文属于一个大象流,否则属于一个老鼠流。例如,中间设备102统计第一数据报文中具有所述第一标识的数据报文的字节数,当该字节数大于阈值f1时,该具有所述第一标识的数据报文属于大象流,当该字节数小于等于阈值f1时,该具有所述第一标识的数据报文属于老鼠流。中间设备102对具有各个标识的数据报文进行字节数统计采用累计的方式,根据每个标识都可以获得一个累计字节数。每个标识的字节数累计过程在中间设备102收到包括该标识以及FIN标志(参见IETF RFC793)的确认报文后结束。中间设备102根据包括FIN标志的确认报文中的标识,确定对应的数据报文的标识,将具有该对应标识的数据报文的累计字节数清零,或者将具有该对应标识的记录项删除。
中间设备102可以根据第一路径不同的拥塞程度,对大象流老鼠流的发送速率做不同调整,这有助于实现更为精确有效的拥塞控制。该调整通过修改用于对该大象流或老鼠流中的数据报文进行确认的确认报文的窗口值来实现。举例来说,可以按照如下方式修改窗口值:
如果第一路径的拥塞程度为轻度,且第一数据报文中具有第一标识的数据报文属于大象流(即字节数大于阈值f1),减小第一确认报文中具有第二标识的确认报文中的窗口值,其中第一标识与第二标识具有前述的对应关系。第一确认报文中具有第二标识的确认报文可以包括多个确认报文,每个确认报文包括一个窗口值,每个确认报文中的窗口值都被减小。具体窗口值的计算例如采用DCTCP的拥塞控制算法中对cwnd值的计算,该计算参照IETF发布的Datacenter TCP(DCTCP):TCP Congestion Control for Datacenters,draft-ietf-tcpm-dctcp-03,该文件的全部内容以引入的方式并入本文中。由于数据中心中老鼠流数量明显多于大象流,在路径轻度拥塞时,中间设备102优先降低大象流的发送速率,保障数量更多的老鼠流的发送速率,有助于降低平均流完成时间(英文:Flow CompletionTime,FCT)。
如果第一路径的拥塞程度为重度,则中间设备102查找是否存在拥塞程度不为重度(拥塞程度为不拥塞或轻度拥塞)的从中间设备102到接收设备106的第二路径。如果不存在该第二路径(即没有可切换的路径),则中间设备102降低所有用于对经第一路径发送的数据报文进行确认的确认报文中的窗口值。具体窗口值的计算例如采用DCTCP的拥塞控制算法中对cwnd值的计算。由此,第一路径上所有数据报文(包括大象流和老鼠流)的发送速率都被降低。
如果存在该第二路径,则中间设备102进入换路状态,为大象流选择该第二路径做为新的传输路径,对大象流进行换路处理。中间设备102设置用于对第一数据报文中属于大象流的数据报文进行确认的确认报文中的窗口值为0,并启动定时器。例如第一数据报文中具有第一标识的数据报文属于大象流,设置第一确认报文中具有第二标识的确认报文中的窗口值为0(第一确认报文中具有第二标识的确认报文可以包括多个确认报文,每个确认报文包括一个窗口值,每个确认报文中的窗口值被设置为0)。发送设备101在收到窗口值为0的确认报文后,确定接收设备106能够接收的字节数为0,将会暂时停止发送具有第一标识的数据报文,以便中间设备102进行换路处理。通过以上设置确认报文的窗口值为0,可以使得发送设备暂时停止发送数据报文,创造换路时机。通过以上设置定时器,使得第一路径上正在传输的数据报文有时间先到达接收设备106,随后中间设备102再经第二路径向接收设备106发送另一具有第一标识的数据报文(该另一具有第一标识的数据报文可以包括多个数据报文)。由此,换路导致接收设备106上出现数据报文乱序的可能性被降低。如果在定时器超时前,中间设备102收到接收设备106发送的第二确认报文,且第二确认报文指示所有第一数据报文中具有第一标识的数据报文(假设属于大象流)已被接收设备106接收,则中间设备102直接执行换路处理。这有助于减少等待时间。
以上所述换路处理包括向发送设备101发送具有第二标识的确认报文,该确认报文中的窗口值恢复为进入换路状态之前的窗口值(该具有第二标识的确认报文可以包括多个确认报文,每个确认报文包括一个窗口值,每个确认报文中的窗口值被恢复为进入换路状态之前的窗口值)。发送设备101收到具有第二标识的窗口值恢复的确认报文后,重新开始向中间设备102发送另一具有第一标识的数据报文(该另一具有第一标识的数据报文可以包括多个数据报文),中间设备102经该第二路径向接收设备106发送该另一具有第一标识的数据报文。由此,所述大象流被换到第二路径进行传输。
如果在定时器超时前,中间设备102没有收到指示第一数据报文中所有具有第一标识的数据报文(假设属于大象流)已被接收设备106接收的确认报文,则在定时器超时后,中间设备102执行换路处理,该换路处理与上述定时器超时前执行的换路处理相同。
S206、发送设备101向中间设备102发送第二数据报文。
发送设备101获取中间设备102发送的第一确认报文中的窗口值,根据该窗口值调整发送速率,向中间设备102发送第二数据报文。调整发送速率例如是根据第一确认报文中的窗口值,调整发送窗口值。具体实现可参照IETF RFC793,其中TCP协议中发送设备可以根据接收设备返回的ACK报文中的窗口值动态调整发送窗口大小。另外,当存在换路处理时,换路处理过程中发送设备101的执行操作可参照S205中的描述。在换路处理后,中间设备102将来自于发送设备101的数据报文中具有第一标识的数据报文(假设属于大象流)经第二路径向接收设备106发送。在换路处理后,中间设备102仍可以将来自于发送设备101的数据报文中具有其他标识的数据报文经第一路径向接收设备106发送。
以上方法中发送设备101只需向中间设备102发送数据报文,并根据中间设备102发送的确认报文中的窗口值调整发送速率(即调整发送窗口大小)。以上发送设备101上的处理遵循现有TCP协议,不需要做技术改动,由此本方法具有较好的兼容性和便利性。
图3为本申请实施例提供的一种网络设备300的结构图。网络设备300可以是图1中所示中间设备102,执行图2所示方法中中间设备102执行的操作。网络设备300包括接收单元301、发送单元302和处理单元303。
接收单元301,用于接收发送设备101发送的第一数据报文,还用于接收接收设备106发送的用于对所述第一数据报文进行确认的第一确认报文。
发送单元302,用于经第一路径(例如包括中间设备103、104和105)向接收设备106发送所述第一数据报文。
处理单元303,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口(例如发送设备101的IP地址、发送设备101上的端口、接收设备106的IP地址和接收设备106上的端口)。
发送单元302,还用于将修改后的第一确认报文发送给发送设备101。所述窗口值用于通知发送设备101接收设备106能够接收的字节数。
处理单元303修改第一确认报文中的窗口值可以包括以下几种方式:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则处理单元303降低第一确认报文中具有第二标识的确认报文中的窗口值。第二标识包括源IP地址、源端口、目的IP地址和目的端口。第一标识和第二标识具有前述对应关系。
如果所述第一路径的拥塞程度为重度,且不存在从网络设备300到接收设备106的拥塞程度为轻度或不拥塞的路径,则处理单元303降低所述第一确认报文中所有确认报文中的窗口值。
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从网络设备300到接收设备106的拥塞程度为轻度或不拥塞的第二路径,则处理单元303设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。
在所述定时器超时前,如果接收单元301收到接收设备106发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被接收设备106接收,则发送单元302经所述第二路径向接收设备106发送接收单元301接收自发送设备101的第三数据报文中具有所述第一标识的数据报文。
在所述定时器超时后,发送单元302经所述第二路径向接收设备106发送接收单元301接收自发送设备101的第二数据报文中具有所述第一标识的数据报文。
以上接收单元301和发送单元302可以集成到一个单元,由该单元完成以上接收单元301和发送单元302的功能。
图4为本申请实施例提供的一种网络设备400的结构图。网络设备400可以是图1中所示中间设备102,执行图2所示方法中中间设备102执行的操作。网络设备400包括接收器401、发送器402和处理器403。
接收器401,用于接收发送设备101发送的第一数据报文,还用于接收接收设备106发送的用于对所述第一数据报文进行确认的第一确认报文。
发送器402,用于经第一路径(例如包括中间设备103、104和105)向接收设备106发送所述第一数据报文。
处理器403,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口(例如发送设备101的IP地址、发送设备101上的端口、接收设备106的IP地址和接收设备106上的端口)。
发送器402,还用于将修改后的第一确认报文发送给发送设备101。所述窗口值用于通知发送设备101接收设备106能够接收的字节数。
处理器403修改第一确认报文中的窗口值可以包括以下几种方式:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则处理器403降低第一确认报文中具有第二标识的确认报文中的窗口值。第二标识包括源IP地址、源端口、目的IP地址和目的端口。第一标识和第二标识具有前述对应关系。
如果所述第一路径的拥塞程度为重度,且不存在从网络设备400到接收设备106的拥塞程度为轻度或不拥塞的路径,则处理器403降低所述第一确认报文中所有确认报文中的窗口值。
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从网络设备400到接收设备106的拥塞程度为轻度或不拥塞的第二路径,则处理器403设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。
在所述定时器超时前,如果接收器401收到接收设备106发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被接收设备106接收,则发送器402经所述第二路径向接收设备106发送接收器401接收自发送设备101的第三数据报文中具有所述第一标识的数据报文。
在所述定时器超时后,发送器402经所述第二路径向接收设备106发送接收器401接收自发送设备101的第二数据报文中具有所述第一标识的数据报文。
接收器401和发送器402可以和处理器403通过总线通信,也可以直连。接收器401和发送器402可以集成到一个部件上,由该部件完成以上接收器401和发送器402的功能,该部件例如是网络接口。该网络接口例如是以太网接口、异步传输模式(英文:AsynchronousTransfer Mode,ATM)接口或基于SDH/SONET的包封装(英文:Packet over SONET/SDH,POS)接口。
处理器403包括但不限于中央处理器(英文:Central Processing Unit,CPU),网络处理器(英文:Network Processor,NP),专用集成电路(英文:Application-SpecificIntegrated Circuit,ASIC)或者可编程逻辑器件(英文:Programmable Logic Device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(英文:Complex ProgrammableLogic Device,CPLD),现场可编程逻辑门阵列(英文:Field-Programmable Gate Array,FPGA),通用阵列逻辑(英文:Generic Array Logic,GAL)或其任意组合。
图5为本申请实施例提供的一种网络结构示意图。该网络包括发送设备501、至少一个中间设备(例如图5中的中间设备502、503、505和506)和接收设备504。发送设备501通过所述中间设备向接收设备504发送数据报文。发送设备501包括处理器5011和网络接口控制器NIC5012。网络接口控制器NIC5012也可以称作网络适配器(英文:network adapter),网络接口卡(英文:network interface card),或网卡(network card)等。发送设备501上处理器5011可以执行TCP进程,经过NIC5012与接收设备504建立TCP连接。
处理器5011发送的数据报文均先到达NIC5012,随后经由第一路径到达接收设备504。该第一路径可以包括0个、1个或多个中间设备(例如图5中的中间设备502和503)。接收设备504发送的用于对发送设备501发送的数据报文进行确认的确认报文(例如ACK报文)可以经由该第一路径到达NIC5012,再由NIC5012发送给处理器5011。或者该确认报文可以经由与第一路径不同的第二路径到达NIC5012,再由NIC5012发送给处理器5011。该第二路径可以包括0个、1个或多个中间设备(例如图5中的中间设备506和505)。用于对发送设备501发送的数据报文进行确认的确认报文均经过NIC5012到达处理器5011。以图5网络结构应用于数据中心为例,发送设备501可以是主机或服务器,接收设备504可以是主机或服务器,以上所述中间设备可以为交换机、路由器、虚拟交换机等。中间设备502和中间设备505还可以是柜顶(英文:top of rack,TOR)交换机,中间设备503和中间设备506也可以是TOR交换机。
图6为本申请实施例提供的一种拥塞控制方法的流程图。该方法可应用于图5所示网络结构。该方法包括如下步骤:
S601、网络接口控制器5012接收处理器5011发送的第一数据报文,经第一路径向接收设备504发送所述第一数据报文。
第一路径可以包括0个、1个或多个中间设备,例如图5所示中间设备502和503。
网络接口控制器NIC5012接收到第一数据报文后,选择第一数据报文的传输路径,并采用源路由(英文:source routing)技术,在发送的数据报文中携带要经过的路径的信息。该路径的信息例如是第一数据报文要经过的第一路径包括的各个中间设备的IP地址。举例来说,NIC5012在第一数据报文的IP报文头部的选项字段中添加要经过的中间设备的IP地址(例如中间设备502和503的IP地址)。由此第一路径上的各中间设备可以根据IP报文头部的选项字段中的IP地址对数据报文进行转发。
第一数据报文中可以包括多个数据报文,该多个数据报文可以具有不同的标识。该多个数据报文可以通过标识进行区分。该标识例如包括源IP地址、源端口、目的IP地址和目的端口。该标识例如还可以包括传输层协议号(TCP的传输层协议号为6),由此该标识构成一个五元组。NIC5012在为第一数据报文选择第一路径后,可以记录第一数据报文中每个数据报文的标识和该第一路径之间的对应关系。例如记录接收自处理器5011的第一数据报文中具有第一标识的数据报文的第一标识(例如包括发送设备501的源IP地址、发送设备501上的源端口、接收设备504的目的IP地址和接收设备504上的目的端口)以及对应的该第一路径的信息(例如包括中间设备502和503的IP地址)。例如还可以记录第一数据报文中具有其他标识的数据报文的该其他标识(例如包括发送设备501的源IP地址、发送设备501上的另一源端口、接收设备504的目的IP地址和接收设备504上的另一目的端口)以及对应的该第一路径的信息(例如包括中间设备502和503的IP地址)。NIC5012可以将所有经过第一路径发送的数据报文的标识与该第一路径的对应关系进行记录。该经过第一路径发送的数据报文还可以包括发送设备501发往接收设备504以外的其他接收设备的数据报文(即接收端不是接收设备504,但数据报文经该第一路径发送,图5未示出)。同样地,NIC5012还可以记录经其他路径向接收设备504发送的数据报文的标识及对应的路径的信息。NIC5012记录了数据报文的标识与路径的对应关系,由此可以根据数据报文的标识确定标识对应的路径(例如根据该第一标识确定该第一路径)。
S602、第一路径上的中间设备在所述第一数据报文中设置拥塞标记。
第一数据报文在经过第一路径上的各中间设备(例如中间设备502和503)时,第一路径上的各中间设备都可以根据当前设备上用于保存该第一数据报文的队列长度确定拥塞程度,并根据拥塞程度选择是否更新拥塞标记。该队列长度例如是各中间设备上发送缓存中缓存的待发送数据报文的长度。确定拥塞程度和更新拥塞标记的方式可参照S202中所述,在此不再赘述。
同样地,其他路径上的中间设备也可以用以上方式对经其他路径进行发送的数据报文设置拥塞标记。此外,NIC5012也可以根据当前NIC5012上用于保存第一数据报文的队列长度确定拥塞程度,并用该拥塞程度对应的拥塞标记来更新第一数据报文中的拥塞标记。
S603、接收设备504向网络接口控制器5012发送第一确认报文。
接收设备504接收到第一数据报文后,获取第一数据报文中的拥塞标记,生成第一确认报文。生成方式及第一确认报文的内容可参照S203中所述,在此不再赘述。
第一确认报文可以通过第一数据报文发送时经过的同一路径(即第一路径)到达NIC5012。第一确认报文也可以通过不同于第一路径的第二路径到达NIC5012。第二路径可以包括0个、1个或多个中间设备,例如图5所示中间设备506和505。
同样地,NIC5012经其他路径向接收设备504发送的数据报文也具有对应的由接收设备504向NIC5012发送的确认报文。该经其他路径发送的数据报文的标识与对应的确认报文的标识也具有以上S203中描述的对应关系。同样地,对于该NIC5012经其他路径发送的数据报文,接收设备504发送的确认报文也可以采用S203在第一确认报文中使用拥塞标记的方式,并经与数据报文发送时经过的同一路径或不同路径返回该确认报文。
S604、NIC5012根据第一确认报文中的拥塞标记确定第一路径的拥塞程度。
NIC5012根据第一确认报文中的第二标识可以确定第一标识,并进一步根据第一标识确定第一路径的信息。进而,NIC5012可以根据第一确认报文中拥塞标记指示各个拥塞程度的确认报文的数量或比例来计算拥塞程度。确定第一路径的拥塞程度的方式可参照S204中所述,在此不再赘述。
同样地,NIC5012接收到接收设备504发送的用于对各个路径发送的数据报文进行确认的确认报文后,可以采用以上过程,根据确认报文中的拥塞标记确定各个路径的拥塞程度并进行记录。由此,NIC5012可以记录数据报文的标识、使用的路径的信息和路径拥塞程度。
S605、NIC5012根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给处理器5011。
NIC5012根据第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改第一确认报文中的窗口值。NIC5012在发送数据报文时,可以对数据报文中具有各个标识的数据报文分别进行字节数统计,以便根据路径的拥塞程度和具有各个标识的数据报文的字节数大小来确定不同的窗口值。举例来说,步骤S601中NIC5012发送第一数据报文时,对第一数据报文中具有各个标识的数据报文进行字节数统计。NIC5012将统计的字节数与阈值f1相比较以区分具有各个标识的数据报文属于大象流还是老鼠流。NIC5012区分数据报文属于大象流还是老鼠流的方式可参照S205中所述,在此不再赘述。
NIC5012可以根据第一路径不同的拥塞程度,对大象流老鼠流的发送速率做不同调整。该调整通过修改用于对该大象流或老鼠流中的数据报文进行确认的确认报文的窗口值来实现。举例来说,可以按照如下方式修改窗口值:
如果第一路径的拥塞程度为轻度,减小第一确认报文中具有第二标识的确认报文中的窗口值。具体可参照S205中所述,在此不再赘述。
如果第一路径的拥塞程度为重度,则NIC5012查找是否存在拥塞程度不为重度(拥塞程度为不拥塞或轻度拥塞)的从NIC5012到接收设备504的第二路径。如果不存在该第二路径(即没有可切换的路径),则NIC5012降低所有用于对经第一路径发送的数据报文进行确认的确认报文中的窗口值。具体窗口值的计算例如采用DCTCP的拥塞控制算法中对cwnd值的计算。
如果存在该第二路径,则NIC5012进入换路状态,为大象流选择该第二路径做为新的传输路径,对大象流进行换路处理。NIC5012设置用于对第一数据报文中的大象流进行确认的确认报文中的窗口值为0,并启动定时器。例如第一数据报文中具有第一标识的数据报文属于大象流,设置第一确认报文中具有第二标识的确认报文中的窗口值为0(具体可参照S205中所述)。处理器5011在收到窗口值为0的确认报文后,确定接收设备504能够接收的字节数为0,将会暂时停止发送具有第一标识的数据报文,以便NIC5012进行换路处理。如果在定时器超时前,NIC5012收到接收设备504发送的第二确认报文,且第二确认报文指示所有第一数据报文中具有第一标识的数据报文(假设属于大象流)已被接收设备504接收,则NIC5012直接执行换路处理。
以上所述换路处理包括NIC5012向处理器5011发送具有第二标识的确认报文,该确认报文中的窗口值恢复为进入换路状态之前的窗口值(具体可参照S205中所述)。处理器5011收到具有第二标识的窗口值恢复的确认报文后,重新开始向NIC5012发送另一具有第一标识的数据报文(该另一具有第一标识的数据报文可以包括多个数据报文),NIC5012经该第二路径向接收设备504发送该具有第一标识的数据报文。由此,所述大象流被换到第二路径进行传输。
如果在定时器超时前,NIC5012没有收到指示第一数据报文中所有具有第一标识的数据报文(假设属于大象流)已被接收设备504接收的确认报文,则在定时器超时后,NIC5012执行换路处理,该换路处理与上述定时器超时前执行的换路处理相同。
S606、处理器5011向网络接口控制器5012发送第二数据报文。
处理器5011获取网络接口控制器NIC5012发送的第一确认报文中的窗口值,根据该窗口值调整发送速率,向NIC5012发送第二数据报文。调整发送速率例如是根据第一确认报文中的窗口值,调整发送窗口值。具体实现可参照IETF RFC793,其中TCP协议中发送设备可以根据接收设备返回的ACK报文中的窗口值动态调整发送窗口大小。另外,当存在换路处理时,换路处理过程中处理器5011的执行操作可参照S605中的描述。在换路处理后,NIC5012将来自于处理器5011的数据报文中具有第一标识的数据报文(假设属于大象流)经第二路径向接收设备504发送。在换路处理后,NIC5012仍可以将来自于处理器5011的数据报文中具有其他标识的数据报文经第一路径向接收设备504发送。
以上方法中处理器5011只需向NIC5012发送数据报文,并根据NIC5012发送的确认报文中的窗口值调整发送速率(即调整发送窗口大小)。以上处理器5011上的处理遵循现有TCP协议,不需要做技术改动,发送设备501上只需添加具有以上功能的网络接口控制器NIC5012即可实现本方法。由此本方法具有较好的兼容性和便利性。
图7为本申请实施例提供的一种网络接口控制器700的结构图。网络接口控制器700(即NIC700)可以是图5中所示网络接口控制器NIC5012,执行图6所示方法中网络接口控制器NIC5012执行的操作。网络接口控制器700包括接收单元701、发送单元702和处理单元703。
接收单元701,用于接收处理器5011发送的第一数据报文,还用于接收接收设备504发送的用于对所述第一数据报文进行确认的第一确认报文。
发送单元702,用于经第一路径(例如包括中间设备502和503)向接收设备504发送所述第一数据报文。
处理单元703,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口(例如发送设备501的IP地址、发送设备501上的端口、接收设备504的IP地址和接收设备504上的端口)。
发送单元702,还用于将修改后的第一确认报文发送给处理器5011。所述窗口值用于通知处理器5011接收设备504能够接收的字节数。
处理单元703修改第一确认报文中的窗口值可以包括以下几种方式:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则处理单元703降低第一确认报文中具有第二标识的确认报文中的窗口值。第二标识包括源IP地址、源端口、目的IP地址和目的端口。第一标识和第二标识具有前述对应关系。
如果所述第一路径的拥塞程度为重度,且不存在从NIC700到接收设备504的拥塞程度为轻度或不拥塞的路径,则处理单元703降低所述第一确认报文中所有确认报文中的窗口值。
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从NIC700到接收设备504的拥塞程度为轻度或不拥塞的第二路径,则处理单元703设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。
在所述定时器超时前,如果接收单元701收到接收设备504发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被接收设备504接收,则发送单元702经所述第二路径向接收设备504发送接收单元701接收自处理器5011的第三数据报文中具有所述第一标识的数据报文。
在所述定时器超时后,发送单元702经所述第二路径向接收设备504发送接收单元701接收自处理器5011的第二数据报文中具有所述第一标识的数据报文。
以上接收单元701和发送单元702可以集成到一个单元,由该单元完成以上接收单元701和发送单元702的功能。
图8为本申请实施例提供的一种网络接口控制器800的结构图。网络接口控制器800(即NIC800)可以是图5中所示网络接口控制器NIC5012,执行图6所示方法中网络接口控制器NIC5012执行的操作。网络接口控制器800包括接收器801、发送器802和处理器803。
接收器801,用于接收处理器5011发送的第一数据报文,还用于接收接收设备504发送的用于对所述第一数据报文进行确认的第一确认报文。
发送器802,用于经第一路径(例如包括中间设备502和503)向接收设备504发送所述第一数据报文。
处理器803,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值。所述第一标识包括源IP地址、源端口、目的IP地址和目的端口(例如发送设备501的IP地址、发送设备501上的端口、接收设备504的IP地址和接收设备504上的端口)。
发送器802,还用于将修改后的第一确认报文发送给处理器5011。所述窗口值用于通知处理器5011接收设备504能够接收的字节数。
处理器803修改第一确认报文中的窗口值可以包括以下几种方式:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则处理器803降低第一确认报文中具有第二标识的确认报文中的窗口值。第二标识包括源IP地址、源端口、目的IP地址和目的端口。第一标识和第二标识具有前述对应关系。
如果所述第一路径的拥塞程度为重度,且不存在从NIC800到接收设备504的拥塞程度为轻度或不拥塞的路径,则处理器803降低所述第一确认报文中所有确认报文中的窗口值。
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从NIC800到接收设备504的拥塞程度为轻度或不拥塞的第二路径,则处理器803设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器。
在所述定时器超时前,如果接收器801收到接收设备504发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被接收设备504接收,则发送器802经所述第二路径向接收设备504发送接收器801接收自处理器5011的第三数据报文中具有所述第一标识的数据报文。
在所述定时器超时后,发送器802经所述第二路径向接收设备504发送接收器801接收自处理器5011的第二数据报文中具有所述第一标识的数据报文。
接收器801和发送器802可以和处理器803通过总线通信,也可以直连。该总线例如是高速外设组件互联(英文:Peripheral Component Interconnect Express,PCI-E)总线。接收器801和发送器802可以集成到一个部件上,由该部件完成以上接收器801和发送器802的功能,该部件例如是网络接口。该网络接口例如是以太网接口、异步传输模式(英文:Asynchronous Transfer Mode,ATM)接口或基于SDH/SONET的包封装(英文:Packet overSONET/SDH,POS)接口。
处理器803包括但不限于中央处理器(英文:Central Processing Unit,CPU),网络处理器(英文:Network Processor,NP),专用集成电路(英文:Application-SpecificIntegrated Circuit,ASIC)或者可编程逻辑器件(英文:Programmable Logic Device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(英文:Complex ProgrammableLogic Device,CPLD),现场可编程逻辑门阵列(英文:Field-Programmable Gate Array,FPGA),通用阵列逻辑(英文:Generic Array Logic,GAL)或其任意组合。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
Claims (29)
1.一种拥塞控制方法,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述方法包括:
所述至少一个中间设备中的第一中间设备接收所述发送设备发送的第一数据报文,经第一路径向所述接收设备发送第一数据报文;
所述第一中间设备接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度;
所述第一中间设备根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给所述发送设备,所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述第一中间设备降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且不存在从所述第一中间设备到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述第一中间设备降低所述第一确认报文中所有确认报文中的窗口值。
4.如权利要求1至3任一所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述第一中间设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述第一中间设备设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述方法还包括:在所述定时器超时后,所述第一中间设备经所述第二路径向所述接收设备发送接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
在所述定时器超时前,如果所述第一中间设备收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则所述第一中间设备经所述第二路径向所述接收设备发送接收自所述发送设备的第三数据报文中具有所述第一标识的数据报文。
6.一种拥塞控制方法,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述发送设备包括处理器和网络接口控制器NIC,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述方法包括:
所述网络接口控制器NIC接收所述处理器发送的第一数据报文,经第一路径向所述接收设备发送第一数据报文;
所述NIC接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度;
所述NIC根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,将修改后的第一确认报文发送给所述处理器,所述窗口值用于通知所述处理器所述接收设备能够接收的字节数,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口。
7.如权利要求6所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述NIC降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址、目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址、源端口相同。
8.如权利要求6或7所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述NIC降低所述第一确认报文中所有确认报文中的窗口值。
9.如权利要求6至8任一所述的方法,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述NIC设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述方法还包括:在所述定时器超时后,所述NIC经所述第二路径向所述接收设备发送接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
在所述定时器超时前,如果所述NIC收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则所述NIC经所述第二路径向所述接收设备发送接收自所述处理器的第三数据报文中具有所述第一标识的数据报文。
11.一种网络设备,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述网络设备为所述至少一个中间设备中的第一中间设备,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述网络设备包括:
接收单元,用于接收所述发送设备发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文;
发送单元,用于经第一路径向所述接收设备发送所述第一数据报文;
处理单元,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口;
所述发送单元,还用于将修改后的第一确认报文发送给所述发送设备,所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数。
12.如权利要求11所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理单元降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
13.如权利要求11或12所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且不存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述处理单元降低所述第一确认报文中所有确认报文中的窗口值。
14.如权利要求11至13任一所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述网络设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理单元设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述发送单元,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收单元接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。
15.如权利要求14所述的网络设备,其特征在于,
所述发送单元,还用于在所述定时器超时前,如果所述接收单元收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收单元接收自所述发送设备的第三数据报文中具有所述第一标识的数据报文。
16.一种网络接口控制器NIC,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述发送设备包括处理器和所述网络接口控制器NIC,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述NIC包括:
接收单元,用于接收所述处理器发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文;
发送单元,用于经第一路径向所述接收设备发送所述第一数据报文;
处理单元,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口;
所述发送单元,还用于将修改后的第一确认报文发送给所述处理器,所述窗口值用于通知所述处理器所述接收设备能够接收的字节数。
17.如权利要求16所述的NIC,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理单元降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
18.如权利要求16或17所述的NIC,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且不存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的路径,则所述处理单元降低所述第一确认报文中所有确认报文中的窗口值。
19.如权利要求16至18任一所述的NIC,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理单元设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述发送单元,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收单元接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
20.如权利要求19所述的NIC,其特征在于,
所述发送单元,还用于在所述定时器超时前,如果所述接收单元收到所述接收设备发送的第二确认报文,且所述第二确认报文指示所述第一数据报文中所有具有所述第一标识的数据报文已被所述接收设备接收,则经所述第二路径向所述接收设备发送所述接收单元接收自所述处理器的第三数据报文中具有所述第一标识的数据报文。
21.一种网络设备,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述网络设备为所述至少一个中间设备中的第一中间设备,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述网络设备包括:
接收器,用于接收所述发送设备发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文;
发送器,经第一路径向所述接收设备发送所述第一数据报文,
处理器,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口;
所述发送器,还用于将修改后的第一确认报文发送给所述发送设备,所述窗口值用于通知所述发送设备所述接收设备能够接收的字节数。
22.如权利要求21所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述处理器降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
23.如权利要求21或22所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述第一中间设备到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述处理器设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述发送器,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收器接收自所述发送设备的第二数据报文中具有所述第一标识的数据报文。
24.一种网络接口控制器NIC,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述发送设备包括第一处理器和所述网络接口控制器NIC,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述NIC包括:
接收器,用于接收所述第一处理器发送的第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文;
发送器,用于经第一路径向所述接收设备发送所述第一数据报文;
第二处理器,用于根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,并根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口;
所述发送器,还用于将修改后的第一确认报文发送给所述第一处理器,所述窗口值用于通知所述第一处理器所述接收设备能够接收的字节数。
25.如权利要求24所述的NIC,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述第二处理器降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
26.如权利要求24或25所述的NIC,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述第二处理器设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述发送器,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述接收器接收自所述第一处理器的第二数据报文中具有所述第一标识的数据报文。
27.一种网络设备,应用于数据传输网络中,所述数据传输网络包括发送设备,至少一个中间设备,以及接收设备,所述网络设备为所述发送设备,所述发送设备通过所述中间设备向所述接收设备发送数据报文,其特征在于,所述发送设备包括:处理器和网络接口控制器NIC;
所述处理器,用于向所述NIC发送第一数据报文;
所述NIC,用于接收所述处理器发送的第一数据报文,经第一路径向所述接收设备发送所述第一数据报文,还用于接收所述接收设备发送的用于对所述第一数据报文进行确认的第一确认报文,根据所述第一确认报文中的拥塞标记确定所述第一路径的拥塞程度,根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数修改所述第一确认报文中的窗口值,并将修改后的第一确认报文发送给所述处理器,所述窗口值用于通知所述处理器所述接收设备能够接收的字节数,所述第一标识包括源IP地址、源端口、目的IP地址和目的端口;
所述处理器进一步用于接收所述NIC发送的所述修改后的第一确认报文,根据所述修改后的第一确认报文通过所述NIC向所述接收设备发送第二数据报文。
28.如权利要求27所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为轻度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,则所述NIC降低所述第一确认报文中具有第二标识的确认报文中的窗口值,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同。
29.如权利要求27或28所述的网络设备,其特征在于,所述根据所述第一路径的拥塞程度和所述第一数据报文中具有第一标识的数据报文的字节数,修改所述第一确认报文中的窗口值包括:
如果所述第一路径的拥塞程度为重度,且第一数据报文中具有所述第一标识的数据报文的字节数大于设定的阈值,且存在从所述NIC到所述接收设备的拥塞程度为轻度或不拥塞的第二路径,则所述NIC设置所述第一确认报文中具有第二标识的确认报文的窗口值为0,并启动定时器,所述第二标识包括源IP地址、源端口、目的IP地址和目的端口,所述第一标识中的源IP地址、源端口、目的IP地址和目的端口分别与所述第二标识中的目的IP地址、目的端口、源IP地址和源端口相同;
所述NIC,还用于在所述定时器超时后,经所述第二路径向所述接收设备发送所述NIC接收自所述处理器的第二数据报文中具有所述第一标识的数据报文。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710340116.3A CN108881056B (zh) | 2017-05-15 | 2017-05-15 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
EP18803065.4A EP3618372B1 (en) | 2017-05-15 | 2018-04-27 | Congestion control method and network device |
PCT/CN2018/084819 WO2018210117A1 (zh) | 2017-05-15 | 2018-04-27 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
US16/683,730 US11228534B2 (en) | 2017-05-15 | 2019-11-14 | Congestion control method, network device, and network interface controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710340116.3A CN108881056B (zh) | 2017-05-15 | 2017-05-15 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108881056A true CN108881056A (zh) | 2018-11-23 |
CN108881056B CN108881056B (zh) | 2022-02-25 |
Family
ID=64273383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710340116.3A Active CN108881056B (zh) | 2017-05-15 | 2017-05-15 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11228534B2 (zh) |
EP (1) | EP3618372B1 (zh) |
CN (1) | CN108881056B (zh) |
WO (1) | WO2018210117A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111328106A (zh) * | 2020-03-10 | 2020-06-23 | 中国联合网络通信集团有限公司 | 拥塞控制方法及装置 |
CN111343669A (zh) * | 2020-03-10 | 2020-06-26 | 中国联合网络通信集团有限公司 | 一种报文调度方法及装置 |
CN111372283A (zh) * | 2020-03-10 | 2020-07-03 | 中国联合网络通信集团有限公司 | 拥塞控制方法及基站、用户面功能实体 |
CN112073328A (zh) * | 2020-08-24 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种减低查询次数的方法 |
CN112104564A (zh) * | 2020-08-31 | 2020-12-18 | 新华三技术有限公司 | 一种负载分担方法及设备 |
CN112751776A (zh) * | 2019-10-30 | 2021-05-04 | 华为技术有限公司 | 拥塞控制方法和相关装置 |
CN112910789A (zh) * | 2019-12-03 | 2021-06-04 | 华为技术有限公司 | 拥塞控制方法以及相关设备 |
CN113949651A (zh) * | 2021-11-01 | 2022-01-18 | 北京百度网讯科技有限公司 | 网络传输方法、装置、设备、存储介质及程序产品 |
CN114726790A (zh) * | 2021-01-06 | 2022-07-08 | 郑州芯兰德网络科技有限公司 | 一种基于传输内容大小的拥塞控制选择方法及系统 |
CN114760252A (zh) * | 2022-03-24 | 2022-07-15 | 北京邮电大学 | 数据中心网络拥塞控制方法及系统 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
CN115484210A (zh) * | 2022-08-16 | 2022-12-16 | 北京百度网讯科技有限公司 | 拥塞窗口的确定方法、装置与系统 |
WO2023272532A1 (zh) * | 2021-06-29 | 2023-01-05 | 新华三技术有限公司 | 一种拥塞处理方法、装置、网络设备以及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210297351A1 (en) * | 2017-09-29 | 2021-09-23 | Fungible, Inc. | Fabric control protocol with congestion control for data center networks |
US20210297350A1 (en) * | 2017-09-29 | 2021-09-23 | Fungible, Inc. | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths |
US10785161B2 (en) * | 2018-07-10 | 2020-09-22 | Cisco Technology, Inc. | Automatic rate limiting based on explicit network congestion notification in smart network interface card |
WO2020046184A1 (en) * | 2018-08-31 | 2020-03-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Management of acknowledgement signalling in a multi-point communication system |
WO2023048925A1 (en) * | 2021-09-23 | 2023-03-30 | Intel Corporation | Network resource monitoring |
US11848868B2 (en) | 2021-09-29 | 2023-12-19 | Huawei Technologies Co., Ltd. | Methods, systems and devices for network management using control packets |
US11863451B2 (en) * | 2022-05-16 | 2024-01-02 | Huawei Technologies Co., Ltd. | Hardware accelerated temporal congestion signals |
CN114679408B (zh) * | 2022-05-27 | 2022-08-26 | 湖南工商大学 | 路径切换感知的数据中心拥塞控制方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7352700B2 (en) * | 2003-09-09 | 2008-04-01 | Lucent Technologies Inc. | Methods and devices for maximizing the throughput of TCP/IP data along wireless links |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
US20160323194A1 (en) * | 2015-05-01 | 2016-11-03 | Fujitsu Limited | System, method, and receiving device |
CN106533970A (zh) * | 2016-11-02 | 2017-03-22 | 重庆大学 | 面向云计算数据中心网络的差分流传输控制方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1186140A1 (en) * | 1999-06-04 | 2002-03-13 | Nokia Corporation | Packet data transmission control |
US6741555B1 (en) * | 2000-06-14 | 2004-05-25 | Nokia Internet Communictions Inc. | Enhancement of explicit congestion notification (ECN) for wireless network applications |
US7047312B1 (en) * | 2000-07-26 | 2006-05-16 | Nortel Networks Limited | TCP rate control with adaptive thresholds |
DE602006011125D1 (de) * | 2005-01-31 | 2010-01-28 | British Telecomm | Steuerung eines datenflusses in einem netzwerk |
KR100664947B1 (ko) * | 2005-09-23 | 2007-01-04 | 삼성전자주식회사 | 전송률 제어 방법 및 이를 이용한 통신 장치 |
CN101631065B (zh) * | 2008-07-16 | 2012-04-18 | 华为技术有限公司 | 一种无线多跳网络拥塞的控制方法和装置 |
US8948009B1 (en) * | 2012-05-15 | 2015-02-03 | Google Inc. | Deadline aware network protocol |
CN105897606B (zh) * | 2016-03-28 | 2019-02-12 | 深圳市双赢伟业科技股份有限公司 | 基于路由器的tcp优化方法及路由器 |
US20170310601A1 (en) * | 2016-04-21 | 2017-10-26 | Qualcomm Incorporated | Radio-aware transmission control protocol rate control |
-
2017
- 2017-05-15 CN CN201710340116.3A patent/CN108881056B/zh active Active
-
2018
- 2018-04-27 EP EP18803065.4A patent/EP3618372B1/en active Active
- 2018-04-27 WO PCT/CN2018/084819 patent/WO2018210117A1/zh unknown
-
2019
- 2019-11-14 US US16/683,730 patent/US11228534B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7352700B2 (en) * | 2003-09-09 | 2008-04-01 | Lucent Technologies Inc. | Methods and devices for maximizing the throughput of TCP/IP data along wireless links |
US20160323194A1 (en) * | 2015-05-01 | 2016-11-03 | Fujitsu Limited | System, method, and receiving device |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN106533970A (zh) * | 2016-11-02 | 2017-03-22 | 重庆大学 | 面向云计算数据中心网络的差分流传输控制方法及装置 |
Non-Patent Citations (1)
Title |
---|
ZIEGLER, T.等: "CONGESTION AVOIDANCE WITH BUC (BUFFER UTILIZATION CONTROL) GATEWAYS AND RFCN (REVERSE FEEDBACK CONGESTION NOTIFICATION)", 《IEEE》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751776A (zh) * | 2019-10-30 | 2021-05-04 | 华为技术有限公司 | 拥塞控制方法和相关装置 |
CN112910789A (zh) * | 2019-12-03 | 2021-06-04 | 华为技术有限公司 | 拥塞控制方法以及相关设备 |
CN111372283B (zh) * | 2020-03-10 | 2023-04-14 | 中国联合网络通信集团有限公司 | 拥塞控制方法及基站、用户面功能实体 |
CN111343669A (zh) * | 2020-03-10 | 2020-06-26 | 中国联合网络通信集团有限公司 | 一种报文调度方法及装置 |
CN111372283A (zh) * | 2020-03-10 | 2020-07-03 | 中国联合网络通信集团有限公司 | 拥塞控制方法及基站、用户面功能实体 |
CN111328106B (zh) * | 2020-03-10 | 2023-04-18 | 中国联合网络通信集团有限公司 | 拥塞控制方法及装置 |
CN111328106A (zh) * | 2020-03-10 | 2020-06-23 | 中国联合网络通信集团有限公司 | 拥塞控制方法及装置 |
CN112073328A (zh) * | 2020-08-24 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种减低查询次数的方法 |
CN112104564A (zh) * | 2020-08-31 | 2020-12-18 | 新华三技术有限公司 | 一种负载分担方法及设备 |
CN114726790A (zh) * | 2021-01-06 | 2022-07-08 | 郑州芯兰德网络科技有限公司 | 一种基于传输内容大小的拥塞控制选择方法及系统 |
CN114726790B (zh) * | 2021-01-06 | 2024-04-16 | 北京中科海网科技有限公司 | 一种基于传输内容大小的拥塞控制选择方法及系统 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
CN115442306B (zh) * | 2021-06-01 | 2024-05-28 | 迈络思科技有限公司 | 基于基数的流量控制 |
WO2023272532A1 (zh) * | 2021-06-29 | 2023-01-05 | 新华三技术有限公司 | 一种拥塞处理方法、装置、网络设备以及存储介质 |
CN113949651A (zh) * | 2021-11-01 | 2022-01-18 | 北京百度网讯科技有限公司 | 网络传输方法、装置、设备、存储介质及程序产品 |
CN114760252A (zh) * | 2022-03-24 | 2022-07-15 | 北京邮电大学 | 数据中心网络拥塞控制方法及系统 |
CN114760252B (zh) * | 2022-03-24 | 2024-06-07 | 北京邮电大学 | 数据中心网络拥塞控制方法及系统 |
CN115484210A (zh) * | 2022-08-16 | 2022-12-16 | 北京百度网讯科技有限公司 | 拥塞窗口的确定方法、装置与系统 |
CN115484210B (zh) * | 2022-08-16 | 2023-07-25 | 北京百度网讯科技有限公司 | 拥塞窗口的确定方法、装置与系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200084155A1 (en) | 2020-03-12 |
EP3618372A1 (en) | 2020-03-04 |
WO2018210117A1 (zh) | 2018-11-22 |
EP3618372B1 (en) | 2024-04-24 |
EP3618372A4 (en) | 2020-04-15 |
US11228534B2 (en) | 2022-01-18 |
CN108881056B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881056A (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
US11968116B2 (en) | Method and system for facilitating lossy dropping and ECN marking | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US10791054B2 (en) | Flow control and congestion management for acceleration components configured to accelerate a service | |
US10033644B2 (en) | Controlling congestion controlled flows | |
CN109691039A (zh) | 一种报文传输的方法及装置 | |
CN105556916B (zh) | 网络流的信息统计方法和装置 | |
CN105099938B (zh) | 网络中拥塞窗口的确定方法和装置 | |
CN108429701A (zh) | 网络加速系统 | |
US11240157B1 (en) | Adaptive quality of service marking | |
CN106059951A (zh) | 一种用于dcn中基于多级拥塞反馈的传输控制方法 | |
CN111800351A (zh) | 由交换机进行的拥塞通知分组生成 | |
CN106161275A (zh) | 针对服务质量的预测出口分组分类 | |
WO2020063299A1 (zh) | 统计活跃流数目的方法、网络设备和系统 | |
US8111700B2 (en) | Computer-readable recording medium storing packet identification program, packet identification method, and packet identification device | |
CN113315722A (zh) | 通过被配置为加速服务的加速组件的消息传输 | |
CN112600684A (zh) | 云业务的带宽管理及配置方法及相关装置 | |
CN111026324A (zh) | 转发表项的更新方法及装置 | |
CN104283741B (zh) | 精确检测大流老化的方法及装置 | |
US20230216805A1 (en) | Method of Managing Data Transmission for Ensuring Per-Flow Fair Bandwidth Sharing | |
CN103636157B (zh) | 一种ack信息的发送方法及装置 | |
CN117014967A (zh) | 移动通信系统、方法和用户面节点 | |
WO2021052382A1 (zh) | 云业务的带宽管理及配置方法及相关装置 | |
JPWO2017199913A1 (ja) | 送信装置、方法およびプログラム | |
Liu et al. | Accurate-ECN: An ECN enhancement with inband network telemetry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |