CN108418767A - 数据传输方法、设备及计算机存储介质 - Google Patents
数据传输方法、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN108418767A CN108418767A CN201810140533.8A CN201810140533A CN108418767A CN 108418767 A CN108418767 A CN 108418767A CN 201810140533 A CN201810140533 A CN 201810140533A CN 108418767 A CN108418767 A CN 108418767A
- Authority
- CN
- China
- Prior art keywords
- congestion
- source node
- cnp
- node
- destination node
- 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/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/11—Identifying congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了数据传输方法、设备及计算机存储介质,其中所述方法包括:目的节点接收源节点发送的第一数据报文,所述第一数据报文携带第一指示信息,用于指示所述目的节点与所述源节点之间发生了数据拥塞;确定向所述源节点发送拥塞通知报文CNP的周期,所述CNP的周期的大小与拥塞节点的总数量的多少呈正相关;以所述CNP的周期,向所述源节点发送所述CNP;所述CNP用于通知所述源节点调整所述源节点发送数据报文的发送速率。采用本申请实施例,能够自适应调整CNP的周期,以在硬件设备产生CNP能力一定的情况下,也能支持向更多发生数据拥塞的源节点反馈CNP,以减轻网络拥塞,提高数据传输效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及数据传输方法、设备及计算机存储介质。
背景技术
在数据中心(data center,DC)内部,各节点之间通过部署在网络中的交换机进行通信。如图1所示,多个源节点与一个目的节点通过交换机进行通信,如果交换机的出口资源不足(例如带宽不足),交换机向目的节点发送若干数据报文时会出现数据拥塞现象。如果不对数据拥塞现象加以控制,将造成数据丢包。为解决上述问题,现有技术采用显示拥塞通知(explicit congestion notification,ECN)机制避免网络发生数据拥塞(以下简称网络拥塞)。如果交换机的出端口检测到数据拥塞,将源节点发送给目的节点的数据报文中的ECN标志的值进行修改,修改后的ECN标志的值用于指示所述源节点和所述目的节点之间的通信链路发生拥塞。交换机将携带修改后的ECN标志的值的数据报文发送给目的节点。目的节点根据数据报文中ECN标志的值,确定所述源节点和所述目的节点之间发生了数据拥塞,则按照固定的周期向所述源节点发送拥塞通知报文(congestion notification packet,CNP),以向所述源节点通知在所述源节点与所述目的节点之间发生了数据拥塞。如此,所述源节点通过降低向所述目的节点发送数据报文的发送速率,减轻网络负载,减缓网络拥塞。
由于目的节点发送报文的能力受限于目的节点侧的硬件设备,如果与所述目的节点之间发生数据拥塞的源节点的数据量较多,对于与所述目的节点之间发生数据拥塞的部分源节点,目的节点不能及时的向该部分源节点发送CNP报文。目的节点则无法及时通知到该部分源节点其与所述目的节点之间发生了数据拥塞。如此,该部分源节点不能及时降低向所述目的节点发送数据报文的发送速率,不能有效缓减网络拥塞的现象。如果此时该部分源节点上与所述目的节点之间进行通信的业务需求增多,则加重了网络拥塞的现象。
发明内容
本申请实施例公开了数据传输方法、设备及计算机存储介质,能够自适应调整CNP的周期,以在硬件设备产生CNP能力一定的情况下,也能支持向更多发生了数据拥塞的源节点反馈CNP,以减轻网络拥塞,提高数据传输效率。
第一方面,本申请实施例公开提供了一种数据传输方法,所述方法包括:
目的节点接收源节点发送的第一数据报文,所述第一数据报文包括第一指示信息,所述第一指示信息用于指示所述目的节点与所述源节点之间发生了数据拥塞;
确定向所述源节点发送拥塞通知报文CNP的周期,所述周期的大小与拥塞节点的总数量的多少呈正相关,所述拥塞节点是指当前与所述目的节点通信,且与所述目的节点之间发生了数据拥塞的节点;
以所述周期向所述源节点发送所述CNP;所述CNP用于通知所述源节点调整所述源节点发送所述数据报文的发送速率。
具体的,所述源节点接收到所述CNP后,可先根据预设的降速影响因子降低所述源节点发送数据报文的发送速率,以减轻网络拥塞。然后,如果在预设时段内未接收到CNP时,可按照预设规则提高所述源节点发送数据报文的发送速率,以提高数据传输的效率。
通过实施本申请实施例,能够自适应调整CNP的周期,以在硬件设备能力一定的情况下,支持向更多发生了数据拥塞的源节点反馈CNP,以缓减网络拥塞,提高数据传输的效率。
在一些可能的实施例中,所述周期的大小与所述拥塞节点的总数量的多少呈正比关系。即,在所述拥塞节点的总数量越多的情况下,所述CNP的周期越大;在所述拥塞节点的总数量越少的情况下,所述CNP的周期越小。
在一些可能的实施例中,所述第一数据报文还包括所述源节点的标识,所述以所述周期向所述源节点发送CNP,包括:
以所述周期,查询所述源节点的标识对应的拥塞流信息;其中,所述目的节点中保存有所述源节点的标识与所述拥塞流信息之间的映射关系;
每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件后,向所述源节点发送所述CNP。
具体的,所述目的节点以所述CNP的周期为时间间隔,周期性地从预存数据库中查询与该源节点对应的拥塞流信息,并判断查询的所述拥塞流信息是否满足预设CNP发送条件,如果满足则向所述源节点发送CNP。如果不满足,则结束流程或按照常规处理方式对所述第一数据数据报文进行处理,例如缓存/丢弃该第一数据报文等。所述预设CNP发送条件为用户侧或设备侧自定义设置的条件,该条件用于判定目的节点是否向源节点发送CNP。
通过执行上述步骤,能够智能、准确地为发生了数据拥塞的源节点发送CNP,以减缓网络拥塞,提高数据传输效率。
在一些可能的实施例中,所述每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件后,向所述源节点发送所述CNP,包括:
每次查询到所述拥塞流信息后,通过第一拥塞信息确定在接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间是否发生数据拥塞,所述第二数据报文为所述源节点与所述目的节点之间发生数据拥塞时发送的数据报文,所述第二数据报文为所述目的节点接收所述第一数据报文之前最后一次接收的从所述源节点发送的数据报文,所述第二数据报文包括所述第一指示信息,所述拥塞流信息包括所述第一拥塞信息;
如果通过第一拥塞信息确定接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间发生数据拥塞,向所述源节点发送所述CNP。
具体的,所述目的节点每次查询到所述拥塞流信息后,可利用该拥塞流信息中的第一拥塞信息确定从所述源节点接收的第二数据报文时,所述源节点与所述目的节点之间是否发生了数据拥塞。如果发生了数据拥塞,则确定该拥塞流信息满足预设CNP发送条件,向所述源节点发送CNP。也即是,所述源节点利用第一拥塞信息确定所述第二数据报文包括的指示信息为第一指示信息还是第二指示信息,如果为第一指示信息,则向源节点发送CNP。如果为第二指示信息,则确定该拥塞流信息不满足预设CNP发送条件,可结束流程或按照常规处理方式处理第一数据报文。其中,所述第一指示信息用于指示所述目的节点与所述源节点之间发生了数据拥塞,所述第二指示信息用于指示所述目的节点与所述源节点之间没有发生数据拥塞。所述第二数据报文为在所述目的节点接收所述第一数据报文之前,所述源节点发送的数据报文。
可理解的,在本申请实施例中,所述预设CNP发送条件包括:所述第一拥塞信息指示接收所述源节点发送的第二数据报文时,所述目的节点与所述源节点发生了数据拥塞。即,所述第一拥塞信息指示接收到所述源节点发送的包括第一指示信息的第二数据报文。
在一些可能的实施例中,所述如果通过第一拥塞信息确定接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,还包括:
确定***当前时间与所述目的节点接收所述第一数据报文之前最后一次向所述源节点发送CNP的时间之间的时长间隔是否大于或等于所述周期,如果大于或等于所述周期,向所述源节点发送所述CNP。
可选的,本申请所述拥塞流信息还包括第四拥塞信息,所述第四拥塞信息用于指示所述目的节点接收所述第一数据报文之前最后一次向所述源节点发送CNP的时间。相应地即是,所述预设CNP发送条件包括:所述第一拥塞信息指示所述目的节点接收到所述源节点发送的包括第一指示信息的第二数据报文,且目标时长大于或等于所述CNP的周期。所述目标时长为***当前时间与所述第四拥塞信息所指示的发送CNP的时间之间的时间间隔。
在一些可能的实施例中,所述每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件后,向所述源节点发送所述CNP,包括:
每次查询到所述拥塞流信息后,通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间是否发生数据拥塞,所述第三数据报文为所述源节点与所述目的节点之间发生数据拥塞时发送的数据报文,所述第三数据报文为所述目的节点在查询到所述拥塞流信息之前的所述周期内接收到的数据报文,所述第三数据报文包括所述第一指示信息,所述拥塞流信息包括所述第二拥塞信息;
如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,向所述源节点发送所述CNP。
同理可理解的,在本申请实施例中,所述预设CNP条件包括:第二拥塞信息指示接收所述源节点的第三数据报文时,所述源节点与所述目的节点之间发生了数据拥塞;即指示所述目的节点接收到所述源节点发送的包括第一指示信息的第三数据报文。该第三数据报文为所述目的节点在查询到所述拥塞流信息之间的一个CNP的周期内所接收的所述源节点发送的数据报文。
在一些可能的实施例中,如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,所述方法还包括:
通过第三拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点没有向所述源节点发送所述CNP,所述拥塞流信息还包括所述第三拥塞信息。
即本申请实施例中,所述预设CNP条件包括:第二拥塞信息指示所述目的节点接收到所述源节点发送的包括第一指示信息的第三数据报文,且第三拥塞信息指示在查询到所述拥塞流信息之前的所述CNP的周期内,所述目的节点没有向所述源节点发送CNP。
在一些可能的实施例中,如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,所述方法还包括:
通过第三拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点向所述源节点发送了所述CNP,所述拥塞流信息还包括所述第三拥塞信息;
如果通过第三拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点向所述源节点发送了所述CNP,所述向所述源节点发送所述CNP,包括:
在查询到所述拥塞流信息后的所述周期在结束时,向所述源节点发送所述CNP。
即本申请实施例中,所述预设CNP条件包括:第二拥塞信息指示所述目的节点接收到所述源节点发送的包括第一指示信息的第三数据报文,且第三拥塞信息指示在查询到所述拥塞流信息之前的所述CNP的周期内,所述目的节点向所述源节点发送CNP。在所述目的节点通过第二拥塞信息和第三拥塞信息确定到满足上述预设CNP发送条件时,在查询到所述拥塞流信息的所述CNP的周期(即当前周期)结束时,也可向所述源节点发送CNP。
在一些可能的实施例中,所述目的节点还可对所述拥塞流信息进行管理,例如更新、删除等管理操作。具体的:
在一些可能的实施例中,所述方法还包括:确定所述拥塞流信息的存储时长大于或等于预设老化时长时,删除所述拥塞流信息,所述存储时长为***当前时间与所述拥塞流信息的创建时间之间的时间差,或者所述存储时长为***当前时间与接收时间之间的时间差,所述接收时间为所述目的节点最后一次接收到从所述源节点发送的包括所述第一指示信息的第四数据报文的时间。所述预设老化时长定义了拥塞流信息的有效作用周期/时长,其具体可为用户侧或设备侧自定义设置的时长,例如1天等。
通过实施上述步骤,可自动删除老化的拥塞流信息,以释放和节省空间内存。
在一些可能的实施例中,所述方法还包括:所述向所述源节点发送所述CNP后,所述方法还包括:
将所述第三拥塞信息的第一值更新为所述第三拥塞信息的第二值,所述第三拥塞信息的第一值用于指示所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点没有向所述源节点发送所述CNP,所述第三拥塞信息的第二值用于指示所述目的节点在查询到所述拥塞流信息之后的所述周期内,所述目的节点向所述源节点发送了所述CNP。
具体的本申请实施例中,所述第三拥塞信息可用预设字符或预设数值等形式表示。例如利用第一值(如“0”)表示所述目的节点没有向所述源节点发送CNP。用第二值(如“1”)表示所述目的节点向所述源节点发送了CNP。
在一些可能的实施例中,所述向所述源节点发送所述CNP后,还包括:接收所述源节点发送的第五数据报文,所述第五数据报文包括第二指示信息,所述第二指示信息用于指示所述目的节点和所述源节点之间没有发生数据拥塞;将所述第一拥塞信息的第一值更新为所述第一拥塞信息的第二值,所述第一拥塞信息的第一值用于指示接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述第一拥塞信息的第二值用于指示发送所述第五数据报文时,所述目的节点和所述源节点之间没有发生数据拥塞。
本申请实施例中,所述第一拥塞信息至第二拥塞信息均可用预设字符或预设数值等形式表示。例如利用第一值(如“1”)表示所述目的节点与所述源节点发生了数据拥塞。用第二值(如“0”)表示所述目的节点与所述源节点没有发生数据拥塞等等。
在一些可能的实施例中,所述向所述源节点发送所述CNP后,还包括:在向所述源节点发送所述CNP后的所述周期内接收到所述源节点发送的第六数据报文后,将所述第二拥塞信息的第一值更新为所述第二拥塞信息的第二值,所述第二拥塞信息的第一值用于指示在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述第二拥塞信息的第二值用于指示在向所述源节点发送所述CNP后,截止接收到所述第六数据报文之前,所述目的节点和所述源节点之间没有发生数据拥塞,其中,所述第六数据报文包括第二指示信息,所述第二指示信息用于指示所述目的节点和所述源节点之间没有发生数据拥塞。
在一些可能的实施例中,所述向所述源节点发送所述CNP后,还包括:将所述第四拥塞信息对应指示的最后一次发送所述CNP的发送时间更新为***当前时间。
在一些可能的实施例中,,所述CNP携带有所述CNP的周期,以用于所述源节点根据所述CNP的发送周期调整所述源节点发送数据报文的发送速率。
在一些可能的实施例中,由于接收数据报文和查询拥塞流信息之间存在一定的时延,为提升源节点侧速率调整的精确度,本申请中在所述CNP中传输的所述CNP的周期具体可为***当前时间与查询时间之间的时间差值,其中,所述查询时间为接收所述第一数据报文之前,最后一次查询所述源节点的标识对应的拥塞流信息的时间。
在一些可能的实施例中,所述CNP的周期承载于所述CNP的基本传输报头BTH中,以发送给所述源节点。
第二方面,本申请实施例提供了又一种数据传输方法,所述方法包括:
源节点接收目的节点发送的CNP,所述CNP包括发送所述CNP的周期,所述周期的大小与拥塞节点的总数量的多少正相关,所述拥塞节点为当前与所述目的节点通信,且与所述目的节点之间发生了数据拥塞的节点;
根据预设的降速影响因子,降低所述源节点发送数据报文的发送速率;
在预设时段内未接收到所述CNP的情况下,按照预设规则提高所述源节点发送数据报文的发送速率,所述预设时段大于所述CNP的周期,所述预设时段的开始时间为所述源节点最后一次接收到所述CNP的时间。
通过实施本申请实施例,在接收CNP后,为减轻网络拥塞,可先根据降速影响因子降低所述源节点发送数据报文的发送速率;如果在预设时段内未接收到目的节点发送的CNP时,为提高源节点侧数据传输的效率,可按照预设规则提高所述源节点发送数据报文的发送速率。采用本申请实施例,能够自适应调整源节点发送数据报文的发送速率,以避免网络拥塞、提高数据传输效率。
在一些可能的实施例中,所述预设时段与所述CNP的周期关联,即是根据所述CNP的周期确定的。具体的,所述在预设时段内未接收到所述CNP的情况下,按照预设规则提高所述数据报文的发送速率之前,还包括:
确定预设时段,所述预设时段为所述周期和预设时长两者中的最大值的预设倍数,所述周期最大时,所述预设倍数的值为k1,所述预设时长最大时,所述预设倍数的值为k2,其中所述k1和所述k2分别为大于1的常数。
上述可能的实施方式中,具体存在以下两种确定方式:
可选的,所述在预设时段内未接收到所述CNP的情况下,按照预设规则提高所述数据报文的发送速率之前,还包括:
如果所述CNP的周期大于或等于预设时长,确定在预设时段内是否接收到所述CNP,所述预设时段为所述CNP的周期的k1倍,k1为大于1的常数。
可选的,所述在预设时段内未接收到所述CNP的情况下,按照所述预设规则提高所述数据报文的发送速率之前,还包括:
如果所述CNP的周期小于预设时长,确定在预设时段内是否接收到所述CNP,所述预设时段为所述预设时长的k2倍,k2为大于1的常数。
在一些可能的实施例中,所述根据预设的降速影响因子,降低所述源节点发送数据报文的发送速率,包括:在所述源节点接收到所述CNP后,在所述预设时段内多次降低所述源节点发送数据报文的发送速率,每一次降速时,所述发送速率的降速幅度ΔR与降速影响因子An和降速前最后一次降速时的发送速率RCn-1关联,所述降速影响因子与降速影响因子的降速幅度关联,随着降速次数增多,所述降速影响因子的值成收敛趋势。即是,随着降速次数n的增多,An越来越小。
在一些可能的实施例中,所述降低所述源节点发送数据报文的发送速率之前,还包括:
记录目标速率,其中,所述目标速率为降速前所述源节点发送所述数据报文的发送速率,以用于后续提高所述数据报文的发送速率。
在一些可能的实施例中,所述按照预设规则提高所述源节点发送数据报文的发送速率,包括:
提高所述源节点发送数据报文的发送速率至第一速率,所述第一速率接近所述目标速率;
多次提高所述源节点发送数据报文的发送速率,每一次提速时,所述发送速率的提速幅度Rtn与提速影响因子Rai和提速前最后一次提速时的提速幅度Rtn-1关联,所述提速影响因子Rai与提速次数n关联,随着提速次数n增多,所述提速影响因子Rai的值成收敛趋势。
即是,随着提速次数n变多,如果提速效果接近预期的效果比较明显,则对提速进行收敛,提速影响因子Rai的值较小。进一步地依据物理端口的链路传输速率Rl进行收敛,如果提速还未接近预期的效果,则不对提速进行收敛。
在具体实施中,提速影响因子Rai是提速中间因子gn确定的,该提速中间因子gn和提速次数n关联。具体的,在所述提速中间因子小于或等于第一阈值的情况下,所述提速影响因子或所述提速幅度对应分别为第一影响因子和第一提速幅度;相应地,当所述提速中间因子大于第一阈值的情况下,所述提速影响因子或所述提速幅度对应分别为第二影响因子和第二提速幅度;其中,所述第一影响因子小于所述第二影响因子,所述第一提速幅度小于所述第二提速幅度。
在一些可能的实施例中,所述第一提速幅度和第二提速幅度为用户侧或设备侧自定义设置。可选的,所述第一增幅为所述目的节点根据所述目标速率和物理端口的链路传输速率确定的,所述链路传输速率为所述源节点传输数据报文时使用的物理端口(如网口)的传输速率。
第三方面,本申请实施例公开提供了一种网络设备,包括用于执行上述第一方面的方法的功能单元。
第四方面,本申请实施例公开提供了又一种网络设备,包括用于执行上述第二方面的方法的功能单元。
第五方面,本申请实施例提供了又一种网络设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他网络设备进行通信;其中,所述处理器执行所述指令时执行上述第一方面描述的方法。
第六方面,本申请实施例提供了又一种网络设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他网络设备进行通信;其中,所述处理器执行所述指令时执行上述第二方面描述的方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于数据传输的程序代码。所述程序代码包括用于执行上述第一方面描述的方法的指令。
第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于数据传输的程序代码。所述程序代码包括用于执行上述第二方面描述的方法的指令。
第九方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面描述的方法。
第十方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面描述的方法。
通过实施本申请实施例,能够解决现有技术中受限于硬件产生CNP的能力,数据中心DC仍然存在网络拥塞导致数据传输效率低、业务传输性能差等问题,从而提升了数据传输的效率以及可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术提供的一种场景示意图。
图2A-2C是本申请实施例提供的几种数据报文的格式示意图。
图3是本申请实施例提供的一种数据传输方法的流程示意图。
图4是本申请实施例提供的一种网络框架示意图。
图5是本申请实施例提供的又一种数据传输方法的流程示意图。
图6A是本申请实施例提供的一种网络设备的结构示意图。
图6B是本申请实施例提供的又一种网络设备的结构示意图。
具体实施方式
下面将结合本申请的附图,对本申请实施例中的技术方案进行详细描述。
多个源节点经过中间节点(如交换机等网络设备)向同一个目的节点发送数据报文时,由于中间节点资源不足将出现数据拥塞,即网络拥塞。例如,当中间节点为交换机时,由于交换机出端口的带宽不足可能会出现数据拥塞。如果不加以处理,会导致网络丢包。在业务数据传输过程中,例如RDMA业务或者通过以太网实现RDMA(RDMA over convergedethernet,RoCEv2)业务,会出现多打一现象(即多个源节点向一个目的节点发送数据报文),容易出现数据丢包。在数据丢包后,网络需再次对丢包数据以及后续的所有数据进行重传,导致业务传输性能急速下降。例如,源节点A向目的节点B发送包序列为0至9的数据包(或数据报文)。如果目的节点接收到数据包的序列为:0,1,2,3,5,6,7,8,9,10。由于包序列为4的数据包发生了丢包,导致目的节点接收的数据包发生了乱序,即接收的数据包的包序列5,6,7,8,9,10不正确,会被丢弃,此时要求重传包序列从4开始的数据包,即重传包序列为4,5,6,7,8,9,10的数据包。
如图1,为解决上述网络拥塞的问题,源节点A发送携带ECN标志的数据报文,经由交换机发送给目的节点B。如果交换机在出方向端口处检测到发生了拥塞,则修改数据报文中的ECN标志,使其用于指示所述源节点与所述目的节点之间的通信链路发生了拥塞,即是传输所述数据报文发生了拥塞。相应地,所述目的节点接收所述交换机转发的所述数据报文后,解析所述数据报文中的ECN标志,获知所述数据报文是否发生了拥塞。如果发生了拥塞,则所述目的节点可根据固定设置的发送周期,向所述源节点发送拥塞通知报文(congestion notification packet,CNP),用于通知所述源节点向所述目的节点发送的数据报文发生了拥塞,即所述源节点与所述目的节点之间的通信链路发生了数据拥塞。相应地,所述源节点在接收到所述目的节点发送的所述CNP后,可降低向所述目的节点发送数据报文的发送速率。具体的,直接降低所述数据报文的发送速率低于或等于预设速率,以减轻网络拥塞。关于所述CNP具体在下文进行阐述,这里不做详述。可选的,所述ECN标志可为用户侧或设备侧自定义设置的,其可用预设字符串、预设数值等形式表示,例如用0b01或0b00表示数据报文或传输所述数据报文的通信链路并未发生拥塞,用0b11表示数据报文或传输所述数据报文的通信链路发生了拥塞。
在可选实施例中,所述源节点在等待固定时长后还未接收到所述目的节点发送的CNP报文时,所述源节点可启动升速算法,恢复/提高所述源节点向所述目的节点发送数据报文的发送速率。所述固定时长T为用户侧或设备侧自定义设置的等待时长。可选的,为提高数据传输的效率,所述固定时长T与所述CNP的发送周期T0呈正比,即T=k0*T0。其中,T0为所述目的节点向所述源节点发送CNP的发送周期,该发送周期是用户侧或目的节点侧设备自定义设置的,例如50us微妙等。k0为大于1的常数,例如1.1等等。
下面阐述升速算法涉及的具体实施例。具体的,所述升速算法可分为以下两个阶段,用以提高所述数据报文的发送速率。
第一阶段:快增加速阶段(rapidly increase)。具体的,本阶段可采用如下公式(1)迭代a次,使得所述数据报文的发送速率Rc'基本接近目标速率Rt,例如使得Rc'与Rt之间的速率差值小于或等于预设阈值等。
其中,a为正整数,如5等。所述目标速率可为用户侧或设备侧自定义设置的,也可为所述源节点在降速前向所述目的节点发送数据报文时的发送速率等,本申请不做限定。
第二阶段:慢增加速阶段(additive increase)。本阶段在所述数据报文的发送速率Rc'提高至基本接近目标速率Rt后,可再将所述目标速率Rt按照固定提速幅度(即固定提速步长)Rai增长,然后利用增长后的Rt来提高所述数据报文的发送速率。具体的,每次可按照如下公式(2)来计算/提高所述数据报文的发送速率Rc。
其中,Rai为用户侧或设备侧自定义设置的,例如40Mbps兆比特每秒。
但是上述升速算法实现的实施例存在以下问题:
第一、受限于硬件设备产生CNP的能力,目的节点支持产生和发送的CNP数量有限,例如每微妙支持发送一个CNP。相应地,在数据中心内部如果存在多个源节点同时与同一目的节点进行数据传输时,此时若发生数据拥塞,由于目的节点产生CNP能力有限(即CNP数量有限),目的节点无法向所有发生了拥塞的源节点反馈CNP,以进行相应的网络拥塞控制。网络中仍存在多打一数据拥塞的现象,影响业务(如RoCEv2业务)传输性能。
第二、在慢增加速阶段中,不论源节点当前端口的实际链路速率如何,均按照固定提速幅度Rai来提高数据报文的发送速率,这样将导致升速效果不理想、升速效率以及可靠性较低。例如,当目标速率Rt本身较小时,如100Mbps,再按照固定提速幅度Rai 40Mbps提高数据报文的发送速率Rc时,由于Rc增幅较大,极易可能再次造成网络拥塞。当Rt本身较大,如100Gbps,再按照固定提速幅度40Mbps提高数据报文的发送速率Rc时,Rc增幅较小,再次发生网络拥塞的可能性较小。
为解决上述由于目的节点发送报文的能力受限于目的节点侧的硬件设备,与所述目的节点之间发生数据拥塞的源节点的数据量较多时,对于与所述目的节点之间发生数据拥塞的部分源节点,目的节点不能及时的向该部分源节点发送CNP报文的问题,本申请下文将提出一种数据传输方法以及该方法应用的网络框架。下面首先介绍本申请所需了解的一些技术知识。
请参见图2A,是本申请实施例提供的一种数据报文的格式示意图。该数据报文可为RDMA业务(具体可为RoCEv2业务)对应的数据报文。如图2A,所述数据报文包括:以太网二层报文头(ethernet linker header,ETH L2)、网际协议报文头(internet protocolheader,IP HDR)、用户数据协议报文头(user datagram protocol header,UDP HDR)、IB基础传输层协议报文头(Inifiniband base transport protocol header,IB BTH)、IB扩展传输层协议报文头(IB extended transport protocol header,IB xETH)、负载(Payload)、不变循环冗余校验(invariant cyclic redundancy check,ICRC)、侦校验(Frame Check Sequence,FCS)等报文头。其中:
ETH L2包括开放式通信***互联参考模型(open system interconnection,OSI)中链路层协议的相关字段,例如源节点的媒体访问控制(media access control,MAC)地址、目的节点的MAC地址等字段信息。
IP HDR包括OSI模型中网络层协议的相关字段,例如源节点的IP地址、目的节点的IP地址等字段信息。IP HDR(即IP报文头)包括但不限于IPv4和IPv6报文头等,该IP报文头中包含有ECN标志字段,用于指示传输数据报文的通信链路是否发生了拥塞,即本申请下文所述的指示信息。关于IP报文头的具体结构,本申请不做过多详述。
UDP HDR包括OSI模型中无线传输层协议UDP的相关字段,例如源端口、目的端口、数据报文的长度等字段信息。
IB BTH(以下简称BTH),每个数据报文均包含该BTH报文头,其可包括包序列号(packet sequence number,PSN)等字段信息。其中,PSN字段可用于承载PSN的发送周期,关于BTH的具体结构将在下文进行阐述,这里不做详述。
IB xETH为在BTH报文头基础上拓展的报文头,其可包括但不限于原子操作拓展头、数据报拓展头等等,本申请不做限定。
负载payload用于承载待传输的业务数据,如RoCEv2业务数据。
ICRC是通过CRC对数据报文的完整性提供的保护机制,如果接收端(如目的节点)发现CRC错误,则可丢弃该数据报文。
FCS提供了用于判定是否重传数据报文的一种方法机制,如果接收端(如目的节点)发现FCS错误,则可丢弃该数据报文。
其中,本申请实施例中数据报文涉及的各种报文头,例如IP/UDP HDR等,本申请不做过多详述。
应理解的,由于拥塞通知报文CNP属于控制类报文,其本身不需携带业务数据,即payload缺省,且包序列号PSN默认为0。也即是,如图2B示出一种拥塞通知报文CNP的格式示意图,关于CNP中包含的各个报文头可参见图2A实施例中的相关阐述,且本申请涉及的PSN将在下文进行阐述。
请参见图2C,是本申请实施例提供的一种基本传输报头(base transportheader,BTH)的结构示意图。如图2C,BTH包括:操作码OpCode、请求事件标识(solicitedevent,SE)、交换连接迁移状态(migration state,M)、负载计算(payload count,PadCount)、传输协议头的版本(transport header version,Tver)、分区标识(parititionkey,P_Key)、目的队列标识(destionation queue pair number,DestQP)、第一保留字段(Resv8)、确认标识(ack request,Ack)、第二保留字段(Resv7)以及包序列号(packetsequence number,PSN)。其中,
OpCode操作码,用于表示业务数据报文(即RDMA业务)的连接类型以及操作类型。所述连接类型包括但不限于可靠连接(reliable connection,RC)、不可靠连接(unreliable connection,UC)等,所述操作类型包括但不限于RDMA业务的读、写以及发送等动作操作,本申请不做限定。
M,用于表示交换连接迁移状态,具体可以预设字符、预设数字等形式来表示。例如,用“1”表示连接发生了迁移,“0”表示连接没发生迁移。
Pad Count,由于协议中规定RDMA数据报文中的负载payload需存在4字节byte对齐,如果不对齐需补充对齐,该字段表示负载的对齐字节数。具体的,协议中规定0-3均为合法数值。
Tver,用于标识IB传输协议的版本信息,例如当前版本信息可为0等,本申请不做限定。
P_Key,用于标识目的队列QP(即目的节点接收的各个数据流/队列)的分区。其中,不同的QP可同属于一个分区PK,也可属于不同的分区PK。即P_Key,用于标识传输该数据报文对应的发送侧(如源节点)所在的分区(或租户)等。
Resv8第一保留字段,其所占用的字节数为协议中规定的,例如图示规定占用8比特。可选的,在默认情况下,该字段默认为0。
Ack确认标识,用于确定数据报文中是否携带ACK确认信息。具体的,可用“1”表示该数据报文中携带有ACK确认信息,“0”表示该数据报文中没携带ACK确认信息,即该数据报文为纯业务的数据报文。
Resv7第二保留字段,其所占用的字节数为协议中规定的,例如图示规定占用7比特。可选的,在默认情况下,该字段默认为0。
PSN包序列号,用于标识该数据报文的编号。在控制报文中,需将该字段默认设置为0,即该字段无意义,无需携带任何参数信息。
关于本申请实施例BTH涉及的各个字段可以是协议中预先规定好的,且各个字节所占用的存储空间(即比特/字节数)也是协议中预先规定好的,这里本申请不做过多详述。
基于前述实施例,下面介绍本申请涉及的一种数据传输方法的流程示意图,请参考图3。如图3所示的方法,具体包括如下实施步骤:
步骤S102、源节点向目的节点发送第一数据报文,该第一数据报文携带有指示信息,所述指示信息用于指示传输所述第一数据报文是否发生了拥塞。相应地,所述目的节点接收所述第一数据报文。
具体的,源节点经由中间节点(如交换机)向目的节点发送第一数据报文,该第一数据报文可携带指示信息(如ECN标志),用于指示传输所述数据报文的通信链路是否发生了拥塞,即指示所述目的节点与所述源节点之间是否发生了数据拥塞。交换机的出端口在检测到发生拥塞时,将转发的第一数据报文中的指示信息修改为用于指示发生数据拥塞的指示信息,例如将原第一数据报文中的ECN标志0b00修改为0b11,用以指示所述第一数据报文发生了拥塞,即所述目的节点与所述源节点之间发生了数据拥塞。具体可参见前述实施例中的相关阐述,这里不再赘述。
本申请实施例中,所述指示信息具体可为第一指示信息或第二指示信息。其中,所述第一指示信息用于指示所述目的节点与所述源节点之间发生了数据拥塞;相应地,所述第二指示信息用于指示所述目的节点与所述源节点之间没有发生数据拥塞。
可选的,所述指示信息(具体可为第一指示信息或第二指示信息)可用预设字符、预设数值等形式表示,例如前文所述的指示信息可用ECN标志0b11表示所述目的节点与所述源节点之间发生了数据拥塞,用ECN标志0b00/0b01表示所述目的节点与所述源节点之间并未发生数据拥塞。
步骤S104、在所述指示信息用于指示所述目的节点与所述源节点之间发生了数据拥塞的情况下,所述目的节点确定拥塞通知报文CNP的周期,所述CNP的周期与拥塞节点的总数量关联。所述拥塞节点是指当前与所述目的节点通信,且与所述目的节点发生/存在了数据拥塞的节点。
所述CNP的周期为所述目的节点向所述源节点发送CNP的时间间隔。所述CNP的发送周期是所述拥塞节点的总数量确定的。关于所述CNP的发送周期具体可参见下文所述,这里不做详述。
步骤S106、所述目的节点根据所述CNP的周期,向所述源节点发送CNP,所述CNP用于通知所述源节点与所述目的节点之间发生了数据拥塞,需调整所述源节点发送数据报文的发送速率。相应地,所述源节点接收所述CNP。
步骤S108、所述源节点根据所述CNP的指示,调整向所述目的节点发送数据报文的发送速率。
下面介绍本申请实施例涉及的一些具体实施例以及可选实施例。
步骤S104中,所述目的节点接收所述第一数据报文后,通过解析所述第一数据报文,获知所述第一数据报文中的指示信息是否指示该第一数据报文发生了拥塞,即所述目的节点与所述源节点之间发生了数据拥塞。例如,所述第一数据报文中的指示信息为第一指示信息,如ECN标志为预设标志(如0b11),则可确定到所述第一指示信息对应指示的所述目的节点与所述源节点之间发生了数据拥塞。
相应地,所述目的节点在获知所述指示信息为第一指示信息,用于指示所述目的节点与所述源节点之间发生了数据拥塞的情况下,可获取CNP的周期。具体的,所述CNP的周期CNP_Interval是根据拥塞节点的总数量M确定的,其中,所述拥塞节点是指当前与所述目的节点通信,且与所述目的节点之间发生了数据拥塞的节点。
可选的,所述CNP_Interval的大小于所述拥塞节点的总数量M的多少呈正相关。即,随着M的增大,CNP_Interval也增大;随着M的减小,CNP_Interval也减小。
可选的,CNP_Interval的大小与所述拥塞节点的总数量M的多少呈正比。即,CNP_Interval=m*M,其中m为自定义的常数。
在可选实施例中,所述CNP的周期CNP_Interval具体可根据所述拥塞节点的总数量M以及所述目的节点产生/发送CNP的能力M0决定的。其中,所述目的节点产生/发送CNP的能力M0是指单位时间内所述目的节点支持产生/发送CNP的数量,其取决于所述目的节点对应的硬件设备。即,M0可以是固定配置的,例如每微妙支持传输50个CNP。如果所述目的节点当前支持通信,且发生了数据拥塞的源节点的总数量M’大于50时,则目的节点无法兼顾每个发生了拥塞的源节点,对其进行网络拥塞管理,网络中仍然存在数据拥塞、丢包现象。然而本申请实施例提出CNP的周期CNP_Interval可以动态调整,即在目的节点发送CNP的能力一定的情况下,动态调整拥塞节点的总数量M,以更好的兼顾每个发生了数据拥塞的源节点,从而实现对每个拥塞源节点的网络拥塞管理,避免/减轻网络拥塞。
具体的,可采用如下公式(3)计算所述CNP的周期CNP_Interval:
其中,K为自定义的常数,例如1000等等。
在可选实施例中,所述指示信息可承载于数据报文的网络协议IP报文头中。例如具体可承载于IP报文头的ECN标志字段中。关于所述IP报文头本申请实施例不做限定和详述,例如IPv4报文头、IPv6报文头等等。
步骤S106中,所述目的节点可按照所述CNP的周期,周期性地向所述源节点发送拥塞通知报文CNP。所述拥塞通知报文CNP用于通知所述源节点传输所述数据报文的通信链路发生了拥塞,即所述源节点与所述目的节点之间发生了数据拥塞。
具体实施中,所述目的节点接收所述源节点发送的第一数据报文,且所述第一数据报文携带有所述源节点的标识。相应地步骤S106中,所述目的节点根据所述CNP的周期以及所述源节点的标识,周期性地从预设数据库中查询所述源节点的标识所对应的拥塞流信息。即是,所述目的节点以所述CNP的周期,周期性地查询所述源节点的标识所对应的拥塞流信息。接着,判断所述拥塞流信息是否满足预设CNP发送条件,如果满足,才向所述源节点发送所述CNP。如果不满足,则结束流程或者按照常规处理方式对数据报文进行处理,例如缓存该数据报文等。关于所述预设CNP发送条件以及所述拥塞流信息将在下文进行详细阐述。
其中,所述预设数据库中预先创建并存储有多个节点(即节点的标识)与多个拥塞流信息之间的映射关系,其中一个节点对应一个拥塞流信息,所述多个节点至少包括所述源节点。所述拥塞流信息用于判定目的节点是否需要向源节点发送CNP,其具体可包括以下信息中的任一项或多项的组合:
第一拥塞信息Last_pck_ecn用于指示上一个接收的数据报文是否发生了数据拥塞。即,指示所述目的节点接收所述源节点发送的第二数据报文时,所述目的节点与所述源节点之间是否发生了数据拥塞。其中,所述第二数据报文是指所述目的节点接收所述第一数据报文之前最后一次接收所述源节点发送的数据报文,所述第二数据报文也携带有指示信息,用于指示传输所述第二数据报文时所述目的节点与所述源节点之间是否发生了数据拥塞。
第二拥塞信息Rx_ecn_in_polling_period用于指示上一个CNP的周期内是否收到过发生了数据拥塞的数据报文。即,指示所述目的节点接收所述源节点发送的第三数据报文时,所述目的节点与所述源节点之间是否发生了数据拥塞。其中,所述第三数据报文是指所述目的节点在查询所述源节点对应的拥塞流信息之前的所述CNP的周期内(即上一个CNP的周期内)接收到所述源节点发送的数据报文,所述第三数据报文同样也携带有指示信息,用于指示传输所述第三数据报文时所述目的节点与所述源节点之间是否发生了数据拥塞。
第三拥塞信息Last_tx_cnp用于指示上一个CNP的周期内是否向所述源节点发送CNP。即,指示所述目的节点在查询所述源节点对应的拥塞流信息之前的所述CNP的周期内(即上一个CNP的周期),所述目的节点是否向所述源节点发送了CNP。
在可选实施例中,所述第一拥塞信息、所述第二拥塞信息以及第三拥塞信息均可用预设字符、预设数值等形式来表示其各自所指示的含义。例如,可用第一值(如1)表示是,用第二值(如0)表示否;或者用第一值(如1)表示否,用第二值(如0)表示是等。
具体的,例如所述第一拥塞信息用第一值(如“1”,本申请实施例也可称为第一拥塞信息的第一值)表示所述目的节点接收所述第二数据报文时,所述目的节点与所述源节点之间发生了数据拥塞。所述第一拥塞信息用第二值(如“0”,本申请实施例也可称为第一拥塞信息的第二值)表示所述目的节点接收所述第二数据报文时,所述目的节点与所述源节点之间并未发生数据拥塞。
相应地,所述第二拥塞信息可用第一值(本申请实施例可称为第二拥塞信息的第一值)表示所述目的节点接收到所述第三数据报文时,所述目的节点与所述源节点之间发生了数据拥塞。所述第二拥塞信息的第二值可表示所述目的节点接收到所述第三数据报文时,所述目的节点与所述源节点之间并未发生数据拥塞。
相应地,所述第三拥塞信息可用第一值(本申请实施例可称为第三拥塞信息的第一值)表示所述目的节点在查询所述源节点对应的拥塞流信息之前的所述CNP的周期内,所述目的节点没有向所述源节点发送CNP。所述第三拥塞信息的第二值表示所述目的节点在查询所述源节点对应的拥塞流信息之前的所述CNP的周期内,所述目的节点向所述源节点发送了CNP。
在可选实施例中,所述拥塞流信息还可包括以下信息:
第四拥塞信息Last_tx_cnp_time_stamp用于指示上一次发送CNP的发送时间。即,指示所述目的节点接收所述第一数据报文之前最后一次发送CNP的发送时间。
第五拥塞信息Last_polling_time_stamp,用于指示上一次查询所述源节点对应的拥塞流信息的查询时间。即,指示接收所述第一数据报文之前最后一次查询该拥塞流信息的时间。由于接收数据报文的接收线程和查询拥塞流信息的查询线程可以异步执行,且本申请实施例中在接收到第一数据报文后,才唤醒查询线程查询所述源节点对应的拥塞流信息,中间存在一定的时延。因此后续为CNP的周期计算准确,提高源节点侧速率调整的精准度和可靠度,可利用所述第五拥塞信息重新计算该CNP的周期,具体在下文进行详细阐述。
所述第六拥塞信息Last_rx_ecn_time_stamp,用于指示上一次接收发生了数据拥塞的数据报文的接收时间。即,指示所述目的节点接收所述第一数据报文之前最后一次接收到第四数据报文的时间,其中所述第四数据报文是指所述目的节点接收所述第一数据报文之前最后一次接收所述源节点发送的数据报文,所述第四数据报文携带有第一指示信息,用于指示传输所述第四数据报文时所述目的节点与所述源节点之间发生了数据拥塞。可选的,该第六拥塞信息可用于判定拥塞流信息是否老化,以删除该拥塞流信息,具体在下文进行详细阐述。
保留信息Reserved,用于表示用户侧或设备侧自定义的信息,这里不做限定。
在可选实施例中,所述拥塞流信息以及所述拥塞流信息中的各个拥塞信息各自所占用的存储空间的大小可为用户侧或设备侧自定义配置的,本申请实施例并不做限定。例如,所述拥塞流信息被配置占用20个字节Bytes,所述拥塞流信息中的第一拥塞信息、第二拥塞信息以及第三拥塞信息各自被配置占用1个字节等。
所述预设CNP发送条件为用户侧或设备侧自定义设置的条件,用于判定所述目的节点是否向所述源节点发送拥塞通知报文CNP。其中,所述预设CNP发送条件与所述源节点对应的拥塞流信息关联。示例性的,所述预设CNP条件可包括如下条件中的任一项:
1)所述第一拥塞信息用于指示接收所述第二数据报文时所述目的节点与所述源节点之间发生了数据拥塞;即,所述第二数据报文中携带有第一指示信息,用于指示所述目的节点与所述源节点之间发生了数据拥塞;
2)所述第一拥塞信息用于指示接收所述第二数据报文时所述目的节点与所述源节点之间发生了数据拥塞,且目标时长大于或等于所述CNP的周期;其中,所述目标时长为***当前时间与所述第四拥塞信息所指示的发送时间之间的时间间隔;
3)所述第二拥塞信息用于指示接收所述第三数据报文时所述目的节点与所述源节点之间发生了数据拥塞;
4)所述第二拥塞信息用于指示接收所述第三数据报文时所述目的节点与所述源节点之间发生了数据拥塞,且所述第三拥塞信息用于指示所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点没有向所述源节点发送所述CNP;
5)所述第二拥塞信息用于指示接收所述第三数据报文时所述目的节点与所述源节点之间发生了数据拥塞,且在查询到所述源节点对应的拥塞流信息后的所述CNP的周期结束。
即是,步骤S106存在以下几种具体实施方式:
第一种实施方式中,所述目的节点可根据所述CNP的周期,周期性地查询所述源节点对应的拥塞流信息。相应地,在所述目的节点每次查询到所述拥塞流信息后,可通过第一拥塞信息确定所述目的节点在接收所述第二数据报文时,所述目的节点与所述源节点之间是否发生了数据拥塞,也即是确定所述第二数据报文携带的指示信息为第一指示信息还是第二指示信息。所述第二数据报文为所述目的节点接收所述第一数据报文之前最后一次接收的所述源节点发送的数据报文,即接收所述第一数据报文之前的上一个数据报文。
如果所述第二数据报文携带有第一指示信息,即指示接收所述第二数据报文时所述目的节点与所述源节点之间发生了数据拥塞,则确定所述拥塞流信息满足预设CNP发送条件,进一步可向所述源节点发送CNP。
相应地,如果所述第二数据报文携带第二指示信息,即指示接收所述第二数据报文时所述目的节点与所述源节点之间并未发生数据拥塞,则确定所述拥塞流信息不满足预设CNP发送条件,可结束流程或者按照常规处理方式处理接收的第一数据报文,例如缓存该第一数据报文等等。
第二种实施方式中,在所述目的节点每次查询到所述拥塞流信息后,可通过第一拥塞信息和第四拥塞信息判断是否同时满足以下条件:1)所述目的节点接收所述第二数据报文时所述目的节点与所述源节点发生了数据拥塞(即所述第二数据报文携带的指示信息为第一指示信息);2)目标时长大于或等于所述CNP的周期;其中,所述目标时长为***当前时间与发送时间之间的时间间隔,所述发送时间为所述第四拥塞信息指示的接收所述第一数据报文之前最后一次向所述源节点发送CNP的发送时间。其中关于上述条件1)和2)的判断先后顺序,本申请实施例不做限定。具体的,可先判断条件1),在满足条件1)后再判断条件2;或者,可先判断条件2),在满足条件2)后再判断条件1)。
如果同时满足上述条件,则确定所述拥塞流信息满足预设CNP发送条件,进一步可向所述源节点发送CNP。相应地,如果不满足上述条件(具体可为不满足上述条件1)和/或条件2),则确定所述拥塞流信息不满足预设CNP发送条件,可结束流程或者按照常规处理方式处理接收的第一数据报文,例如缓存该第一数据报文等等。
第三种实施方式中,在所述目的节点每次查询到所述拥塞流信息后,可通过第二拥塞信息确定所述目的节点在接收所述第三数据报文时,所述目的节点与所述源节点之间是否发生了数据拥塞,也即是确定所述第三数据报文携带的指示信息为第一指示信息还是第二指示信息。所述第三数据报文为所述目的节点查询所述拥塞流信息之前的所述CNP的周期内接收到所述源节点发送的数据报文,即上一个所述CNP的周期内接收的数据报文。
如果所述第三数据报文携带有第一指示信息,即指示接收所述第三数据报文时所述目的节点与所述源节点之间发生了数据拥塞,则确定所述拥塞流信息满足预设CNP发送条件,进一步可向所述源节点发送CNP。
相应地,如果所述第三数据报文携带第二指示信息,即指示接收所述第二数据报文时所述目的节点与所述源节点之间并未发生数据拥塞,则确定所述拥塞流信息不满足预设CNP发送条件,可结束流程或者按照常规处理方式处理接收的第一数据报文,例如缓存该第一数据报文等等。
第四种实施方式中,在所述目的节点每次查询到所述拥塞流信息后,可通过第二拥塞信息和第三拥塞信息判断是否同时满足以下条件:1)所述目的节点在接收所述第三数据报文时,所述目的节点与所述源节点之间发生了数据拥塞(即所述第三数据报文携带的指示信息为第一指示信息);2)所述目的节点在查询到所述拥塞流信息之前的所述CNP的周期内,所述目的节点没有向所述源节点发送所述CNP。其中关于上述条件1)和条件2)的判断先后顺序,本申请实施例不做限定。具体的,可先判断条件1),在满足条件1)后再判断条件2);或者,可先判断条件2),在满足条件2)后再判断条件1)。
如果同时满足上述条件,则确定所述拥塞流信息满足预设CNP发送条件,进一步可向所述源节点发送CNP。相应地,如果不满足上述条件(具体可为不满足上述条件1)和/或条件2),则确定所述拥塞流信息不满足预设CNP发送条件,可结束流程或者按照常规处理方式处理接收的第一数据报文,例如缓存该第一数据报文等等。
第五种实施方式中,在所述目的节点每次查询到所述拥塞流信息后,可通过第二拥塞信息和第三拥塞信息判断是否同时满足以下条件:1)所述目的节点在接收所述第三数据报文时,所述目的节点与所述源节点之间发生了数据拥塞(即所述第三数据报文携带的指示信息为第一指示信息);2)所述目的节点在查询到所述拥塞流信息之前的所述CNP的周期内,所述目的节点向所述源节点发送了所述CNP。其中关于上述条件1)和2)的判断先后顺序,本申请实施例不做限定。具体的,可先判断条件1),在满足条件1)后再判断条件2;或者,可先判断条件2),在满足条件2)后再判断条件1)。
相应地,如果同时满足上述条件,则允许所述目的节点在查询到所述拥塞流信息后的所述CNP的周期结束时,向所述源节点发送CNP。
即是,所述目的节点在查询到所述拥塞流信息之前的所述CNP的周期内向所述源节点发送CNP后,还可在当前CNP的周期(即所述目的节点查询到所述拥塞流信息后的所述CNP的周期)结束时,向所述源节点再次发送CNP。
下面介绍步骤S106涉及的一些可选实施例。
首先,介绍查找所述源节点对应的拥塞流信息涉及的相关实施例。具体的,在所述目的节点接收到源节点发送的第一数据报文后,若所述第一数据报文还携带有所述源节点的标识,则相应地所述目的节点可按照所述CNP的周期,周期性地从预设数据库中查找所述源节点的标识所对应的拥塞流信息。具体存在以下几种情况:
第一种情况:如果所述第一数据报文中携带的指示信息为第一指示信息,即指示所述目的节点与所述源节点之间发生了数据拥塞,同时所述目的节点在预设数据库中没有查询到所述源节点的标识(即所述源节点)所对应的拥塞流信息,则相应地所述目的节点可为所述源节点创建对应的拥塞流信息。可选的,将创建的所述源节点对应的拥塞流信息缓存至所述预设数据库中。如下表1示出一种可能的初始创建的拥塞流信息,该拥塞流信息占用20字节Bytes(即160比特bite)。
表1
如上表1所示,上述Last_pck_ecn即是本申请实施例的第一拥塞信息,上述Rx_ecn_in_polling_period即是本申请实施例的第二拥塞信息,上述Last_tx_cnp即是本申请实施例的第三拥塞信息,上述Last_tx_cnp_time_stamp即是本申请实施例的第四拥塞信息,上述Reserved即是本申请实施例的保留信息,上述Last_polling_time_stamp即是本申请实施例的第五拥塞信息,上述Last_rx_ecn_time_stamp即是本申请实施例的第六拥塞信息。其中,上表1中第一拥塞信息Last_pck_ecn、Last_tx_cnp_time_stamp以及第二拥塞信息Rx_ecn_in_polling_period均可用预设数值表示,如表1中用“0”或“1”表示。
在初建上述拥塞流信息时,将第一拥塞信息Last_pck_ecn的值设置为1,用于指示源节点和目的节点之间发生了数据拥塞。为支持当前CNP的周期内目的节点向源节点发送CNP,可将上述Last_tx_cnp_time_stamp的值设置为1,用于指示上一个CNP的周期内接收过包括第一指示信息的数据报文。可选的,还可将第五拥塞信息的值设置为该拥塞流信息的创建时间减去一个CNP的周期,以便后续利用该信息准确获知/确定出CNP的周期,并将其承载于CNP发送给源节点侧,具体将在下文进行详述,这里不做详述。可选的,还可将拥塞流信息中的其他信息(如第二拥塞信息、保留信息等)设置为0或者其他用户侧或设备侧自定义的信息,本申请实施例不做限定。
第二种情况:如果所述第一数据报文中携带的指示信息为第二指示信息,即指示所述目的节点与所述源节点之间没有发生数据拥塞,同时所述目的节点在预设数据库中没有查询到所述源节点的标识(即所述源节点)所对应的拥塞流信息,则相应地所述目的节点可按照常规的处理方式对所述第一数据报文进行处理,例如所述第一数据报文为视频数据报文,则所述目的节点可将接收的第一数据报文进行缓存等,后续不再做其他处理。
第三种情况:如果所述第一数据报文中携带的指示信息为第一指示信息,即指示所述目的节点与所述源节点之间发生了数据拥塞,同时所述目的节点在预设数据库中查询到了所述源节点的标识(即所述源节点)所对应的拥塞流信息之后,可选的所述目的节点还可对该拥塞流信息进行更新。如下表2示出一种更新后的拥塞流信息。
表2
由上表2可知,所述目的节点接收包括第一指示信息的所述第一数据报文,如果在预设数据库中查询到所述源节点对应的拥塞流信息之后,还可对所述拥塞流信息中的相关信息进行更新。具体的,例如将所述第一拥塞信息Last_pck_ecn的值更新为所述第一拥塞信息的第一值(如“1”),用于指示上一个数据报文携带的指示信息为第一指示信息,指示所述目的节点与所述源节点之间发生了数据拥塞。可选的,还可将第二拥塞信息Rx_ecn_in_polling_period的值更新为所述第二拥塞信息的第一值,用于指示上一个CNP的周期内接收过包括第一指示信息的数据报文,即上一个CNP的周期内所述目的节点与所述源节点之间发生了数据拥塞。可选的,还可将第六拥塞信息Last_rx_ecn_time_stamp更新为***当前时间,即上一次接收包括第一指示信息的数据报文的时间。关于所述拥塞流信息以及所述拥塞流信息中包含的各个信息可具体参见前述实施例所述,这里不再赘述。
第四种情况:如果所述第一数据报文中携带的指示信息为第二指示信息,即指示所述目的节点与所述源节点之间没有发生数据拥塞,同时所述目的节点在预设数据库中查询到了所述源节点的标识(即所述源节点)所对应的拥塞流信息之后,可选的所述目的节点还可对该拥塞流信息进行更新。具体如下表3示出一种更新后的拥塞流信息。
表3
由上表3可知,所述目的节点接收包括第二指示信息的所述第一数据报文,如果在预设数据库中查询到所述源节点对应的拥塞流信息之后,还可对所述拥塞流信息中的相关信息进行更新。具体的,例如将所述第一拥塞信息Last_pck_ecn的值更新为所述第一拥塞信息的第二值(如“0”),该第二值用于指示上一个数据报文携带的指示信息为第二指示信息,指示所述目的节点与所述源节点之间没有发生数据拥塞。关于所述拥塞流信息以及所述拥塞流信息中包含的各个信息可具体参见前述实施例所述,这里不再赘述。
其次,介绍所述拥塞流信息涉及的一些可选实施例。
在可选实施例中,所述目的节点还可对所述拥塞流信息进行管理,例如更新、删除等管理操作。具体如下:
在所述目的节点接收所述源节点发送的第一数据报文后,可对所述预存数据库中所述源节点对应的拥塞流信息进行更新。具体可参见前述四种情况中的相关阐述,这里不再赘述。
在所述目的节点向所述源节点发送CNP后,还可对所述拥塞流信息进行更新。示例性地,可对所述拥塞流信息中的第一拥塞信息、第二拥塞信息、第三拥塞信息以及第四拥塞信息进行更新。具体存在以下几种可选实施例:
第一种可选实施例中,所述目的节点可将第三拥塞信息Last_tx_cnp的第一值更新为该第三拥塞信息的第二值,该第三拥塞信息的第二值用于指示所述目的节点在查询到所述拥塞流信息之后的所述周期内(即上一个CNP的周期),所述目的节点向所述源节点发送了CNP。
第二种可选实施例中,所述目的节点可将第四拥塞信息Last_tx_cnp_time_stamp所指示的发送时间更新为***当前时间,即上一个CNP的发送时间更新为***当前时间。
第三种可选实施例中,所述目的节点接收所述源节点发送的第五数据报文时,所述第五数据报文携带的指示信息为第二指示信息,用于指示所述目的节点与所述源节点之间没有发生数据拥塞。相应地,所述目的节点可将所述第一拥塞信息Last_pck_ecn的第一值更新为该第一拥塞信息的第二值,该第一拥塞信息的第二值用于指示发送所述第五数据报文时所述目的节点与所述源节点之间没有发生数据拥塞。如果所述第五数据报文携带的指示信息为第一指示信息,用于指示所述目的节点与所述源节点之间发生了数据报文,则可不予对所述第一拥塞信息进行更新处理。
第四种可选实施例中,在所述目的节点向所述源节点发送CNP后的所述CNP的周期内接收到所述源节点发送的第六数据报文,该第六数据报文携带的指示信息为第二指示信息,用于指示发送所述第六数据报文时所述目的节点与所述源节点之间没有发生数据拥塞。则相应地,所述目的节点可将所述第二拥塞信息Rx_ecn_in_polling_period的第一值更新为该第二拥塞信息的第二值,该第二拥塞信息的第二值用于指示向所述源节点发送CNP后,截止接收所述第六数据报文之前,所述目的节点与所述源节点之间没有发生数据拥塞。如果所述第六数据报文携带的指示信为第一指示信息,用于指示发送第六数据报文时所述目的节点与所述源节点之间发生了数据拥塞,则可不予对所述第二拥塞信息进行更新处理。
可选的,每次在所述目的节点判断到所述拥塞流信息不满足预设CNP条件时,所述目的节点也可对该拥塞流信息进行更新。示例性的,可对所述拥塞流信息中的以及第二拥塞信息进行更新。例如,将第二拥塞信息Rx_ecn_in_polling_period的值更新为第二值(如0),用于指示上一个CNP的周期内所述目的节点与所述源节点之间没有发生数据拥塞;将第三拥塞信息Last_tx_cnp的值更新为第二值0,用于指示上一次没有向源节点发送CNP。
可选的,所述目的节点还可检测所述拥塞流信息在所述预设数据库中的存储时长,如果该存储时长大于或等于预设老化时长,则可删除所述拥塞流信息。其中,所述预设老化时长用于表示拥塞流信息的有效作用时长/周期,其可为用户侧或设备侧自定义设置的,例如n个所述CNP的周期等等。所述拥塞流信息的存储时长可被定义为以下两种中的任一种:1)最开始创建所述拥塞流信息至***当前时间之间的时间差值;2)***当前时间与接收时间之间的时间差,所述接收时间为所述目的节点最后一次接收到从所述源节点发送的包括所述第一指示信息的第四数据报文的时间,即上述第六拥塞信息Last_rx_ecn_time_stamp所指示的上一次接收包括第一指示信息的数据报文的接收时间。关于所述第六拥塞信息的相关阐述,具体可参见前述实施例,这里不再详述。
最后,介绍所述目的节点发送CNP涉及的一些可选实施例。具体的,所述目的节点向所述源节点发送CNP,所述CNP中可携带有所述CNP的周期CNP_Interval,以用于后续所述源节点侧提高向所述目的节点发送数据报文的发送速率,具体将在下文进行阐述,这里不做详述。
在可选实施例中,所述CNP的周期可承载于所述CNP的基本传输报头BTH中。具体可承载于BTH中的包序列号PSN字段中。关于所述CNP、BTH以及PSN可参见前述实施例中的相关阐述,这里不再赘述。
在可选实施例中,所述CNP中携带的所述CNP的周期具体可通过以下两种方式获得。第一种,所述CNP的周期为所述目的节点根据拥塞节点的总数量M计算获得的,具体可参见前述实施例所述这里不再赘述。第二种,由于接收数据报文的接收线程和查询拥塞流信息的查询线程可以是异步执行,也可理解为在接收数据数据后,才唤醒查询线程以计算的所述CNP的周期查询所述拥塞流信息,中间存在一定的时延,为提升源节点侧速率调整的准确性和可靠性,所述CNP中携带的所述CNP的周期可以是根据所述拥塞流信息计算获得。具体的,所述CNP的发送周期可为***当前时间与所述第五拥塞信息Last_polling_time_stamp所指示的查询时间之间的时间差值,该查询时间为接收所述第一数据报文之前最后一次查询该拥塞流信息的时间,即上一次查询该拥塞流信息的时间。
下面介绍步骤S108涉及的一些具体实施例。具体的,S108中所述源节点可接收所述目的节点发送的CNP,所述CNP用于通知所述源节点和所述目的节点之间发生了数据拥塞,为减轻拥塞需调整所述源节点向所述目的节点发送数据报文的发送速率。相应地,所述源节点可根据所述CNP的指示调整向所述目的节点发送数据报文的发送速率。下面阐述调整所述数据报文的发送速率涉及的一些具体实施例。
首先,为减轻/避免网络拥塞,可先降低所述源节点向所述目的节点发送数据报文的发送速率。示例性地,在所述源节点每次接收到所述目的节点发送的CNP后,可根据降速影响因子An来降低所述数据报文的发送速率。例如,所述目的节点先根据降速影响因子An确定到降速幅度ΔR,然后利用该降速幅度ΔR来降低所述源节点发送数据报文的发送速率RCn。其中,所述降速影响因子An为用户侧或设备侧预先自定义设置的常数,也可为设备侧按照设定运算规则计算获得的,具体在下文以例子进行说明。
可选的,所述降速幅度还可以是根据降速影响因子An和降速前最后一次降速时的发送速率RCn-1确定的。其中,随着降速次数n的增加,所述降速影响因子An呈收敛趋势,即是随着n的增加,An越小。
示例性地,所述源节点每次接收到CNP后,可采用如下公式(4)计算所述数据报文的发送速率RCn。
其中,RCn表示第n次(或当前一次)向所述目的节点发送数据报文的发送速率。RCn-1表示第n-1次(或上一次)向所述目的节点发送数据报文的发送速率。ΔR表示第n次降速时的降速幅度。k为自定义的常数,例如0.5、1等等。An表示第n次(或当前一次)计算RCn所使用的降速影响因子,An-1表示第n-1次(或上一次)计算RCn-1所使用的降速影响因子。g0可为自定义设置的常数,例如0.5等等。可选的,n为正整数。当n=1时,A0为设定值,例如1、0.5等等。
可选的,在所述源节点首次接收CNP降低所述数据报文的发送速率之前,可记录降速前所述源节点发送数据报文的发送速率,并作为目标速率Rt,以用于后续对所述数据报文的发送速率的提高。关于如何利用Rt提高数据报文的发送速率具体将在下文进行阐述,这里不再详述。
其次,如果所述源节点在预设时段T1内未接收到所述目的节点发送的CNP后,为提高数据传输效率,所述源节点可恢复/提高向所述目的节点发送数据报文的发送速率。具体的,在所述源节点每次接收到CNP后,可启动计时器,如果在预设时段内所述源节点未接收到所述目的节点发送的CNP,则允许所述源节点提高向目的节点发送数据报文的发送速率。即是,所述预设时段的开始时间为所述源节点上一次接收所述CNP的时间。
所述预设时段T1可用于判定是否提高所述源节点侧发送数据报文的发送速率,其可为用户侧或设备侧自定义设置的固定时段,例如50微妙us等等。
在可选实施例中,所述CNP中携带有所述CNP的周期CNP_Interval。所述预设时段T1与所述CNP的周期CNP_Interval关联,即所述预设时段T1可以是根据CNP_Interval确定的,其中,所述预设时段大于所述CNP的周期。
具体的,所述源节点每次接收到CNP后,可通过解析该CNP获得所述CNP的周期CNP_Interval。所述预设时段可为所述CNP的周期和预设时长两者中的最大值的预设倍数,当所述CNP的周期最大时,所述预设倍数的值为k1;所述预设时长最大时,所述预设倍数的值为k2,其中所述k1和所述k2分别为大于1的常数。当CNP_Interval大于或等于预设时长cnp_interval_rp0,则所述预设时段是根据CNP_Interval确定的。具体的,所述预设时段T1可为k1*CNP_Interval,其中k1为大于1的常数,例如1.1、2等等。当CNP_Interval小于预设时长cnp_interval_rp0,则所述预设时段是根据所述预设时长确定的。具体的,所述预设时段T1可为k2*cnp_interval_rp0,其中k2为大于1的常数。可选的,k1和k2可为自定义的相同或不同的常数。所述预设时长cnp_interval_rp0为用户侧或设备侧自定义设置的,本申请实施例不做限定。
下面阐述提高所述数据报文的发送速率涉及的相关实施例。具体的,所述源节点在***当前时间距离上一次接收到CNP的预设时段内并未接收到CNP后,可启动升速算法提高所述源节点发送数据报文的发送速率。所述升速算法具体涉及以下两个阶段。
第一阶段:快增加速阶段。具体的,所述源节点可利用记录的目标速率Rt,迭代多次将所述数据报文的发送速率提高至第一速率,所述第一速率基本接近目标速率Rt。关于所述快增加速阶段可参见前述实施例中的相关阐述,这里不再赘述。
第二阶段:慢增加速阶段。具体的,所述源节点可先确定提速幅度Rtn,然后根据该提速幅度Rtn在所述第一速率的基础上来提高所述源节点发送数据报文的发送速率RCn。其中,所述提速幅度Rtn与提速影响因子Rai和提速前最后一次提速时的提速幅度Rtn-1关联。即是,Rtn是根据Rai和Rtn-1确定的。
其中,所述提速影响因子Rai与提速次数n关联,随着n的增加,Rai的值呈收敛趋势。即是,随着n的增加,Rai的值变小。所述提速次数n是指第二阶段中提高所述发送速率的次数,即从所述第一速率开始时,提高所述数据报文的发送速率的次数。
应理解的,为提高速率增加的可靠性(即避免提速过程中由于提速后的发送速率较大,导致出现网络拥塞),在第二阶段中随着提速次数n的增多,当针对源节点侧的发送速率的提速效果到达预期效果(例如提速后的发送速率超过预设速率阈值,或者根据每次提速后的发送速率计算出的平均增加幅度大于预设幅度等)或者接近预期效果比较明显时,可对后续针对所述发送速率的提速幅度Rtn或提速影响因子Rai进行收敛/减小处理。反之,当针对所述发送速率的提速效果没有达到预期效果时,不对所述发送速率的提速幅度Rtn或提速影响因子Rai进行收敛/减小处理。
在收敛处理过程中,所述源节点可根据物理端口的链路传输速率Rl进行收敛。具体的,所述提速影响因子Rai是根据所述物理端口的链路传输速率Rl计算获得的,具体在下文进行阐述。所述物理端口的链路传输速率Rl在一定程度上可理解为该物理端口的最大限制传输速率,例10Gbps。通常情况下,Rl是固定配置的。所述物理端口是指所述源节点向所述目的节点发送数据报文时所使用的端口,例如网卡端口。
可选的,所述提速影响因子Rai是根据提速中间因子gn确定的,gn与n有关。具体的,当gn小于或等于第一阈值的情况下,所述提速影响因子Rai为第一影响因子,相应地与所述第一影响因子对应的提速幅度Rtn为第一提速幅度。当gn小于第一阈值的情况下,所述提速影响因子Rai为第二影响因子,相应地与所述第二影响因子对应的提速幅度Rtn为第二提速幅度。其中,第一影响因子小于第二影响因子,第一提速幅度小于第二提速幅度。可选的,所述第一影响因子和所述第二影响因子可为用户侧或设备侧自定义设置的,也可为通过上述Rl计算获得的。
示例性地如,在慢增加速阶段所述源节点可按照如下公式(5)来提高所述源节点发送数据报文的发送速率RCn。
其中,其中,gn=(1-g)n×gn-1。
其中,RCn表示第n次(或当前一次)向所述目的节点发送数据报文的发送速率。RCn-1表示第n-1次(或上一次)向所述目的节点发送数据报文的发送速率。Rtn表示第n次计算发送速率RCn时的提速幅度。Rtn-1表示第n-1次计算发送速率RCn-1时的提速幅度。Rai表示第n次提速时使用的提速影响因子。gn表示第n次(或当前一次)计算RCn时所使用到的增幅中间因子。gn-1表示第n-1次(或上一次)计算RCn-1时所使用到的增幅中间因子。g为自定义设置的常数,例如0.1等等。gt为用户侧或设备侧自定义设置的第一阈值,用于确定提速影响因子Rai。Rl表示物理端口的链路传输速率,具体可参见前文所述这里不再赘述。为用户侧或设备侧自定义设置的初始发送速率,例如40Mbps等,不做限定。可选的,n为正整数。当n=1时,Rt0为所述源节点记录的降速前发送数据报文的发送速率,即前文所述的目标速率Rt。
上述公式(5)可知,如果gn小于或等于第一阈值gt,则所述提速影响因子Rai是根据Rtn和Rl计算获得的,并非固定的相应地,由于增速幅度与Rai有关,此时的增速幅度也并非固定的增速幅度,有利于提高网络拥塞控制的效果。如果gn大于第一阈值gt,则所述提速影响因子Rai是固定设置的数值
通过实施本申请实施例,能够自适应调整拥塞通知报文CNP的周期,以在硬件设备产生CNP能力一定的情况下,支持向更多拥塞的源节点反馈CNP,进而更好地实现网络拥塞控制,减轻/避免网络拥塞。此外,源节点侧还可根据降速前源节点发送数据报文的发送速率Rt自适应地确定提速幅度,避免提速幅度过大再次造成网络拥塞,从而提高了速率增加的准确度以及可靠度。
下面阐述本申请实施例适用的网络框架。如图4,是本申请实施例提供的一种网络框架示意图。该网络框架示意图具体可为数据中心DC中部署在各个节点的网络设备100的结构示意图。所述节点包括但不限于源节点、目的节点等。所述网络设备100包括但不限于服务器、交换机以及安装在设备上的网卡等等,本申请实施例不做限定。
如图4所示的网络框架示意图包括:发包模块102、收包模块104以及处理模块106。可选的,还可包括存储模块108、引擎模块110以及通信端口112。其中:
所述发包模块102用于向网络侧发送数据报文。具体的,若图4示出的网络框架为源节点侧的网络设备的框架示意图,则所述发包模块102具体用于向目的节点发送业务报文,例如RoCEv2业务对应的数据报文。相应地,若图4示出的网络框架为目的节点侧的网络设备的框架示意图,则所述发包模块102具体用于向源节点发送通知报文,例如拥塞通知报文CNP。
所述收包模块104用于接收网络侧发送的数据报文。具体的,若图4示出的网络框架为源节点侧的网络设备的框架示意图,则所述收包模块104具体用于接收目的节点发送的通知报文,例如上述CNP。相应地,若图4示出的网络框架为目的节点侧的网络设备的框架示意图,则所述收包模块104具体用于接收源节点或源节点经由中间节点(如交换机)转发的业务报文,例如上述RoCEv2业务对应的数据报文等。
可选的,在所述收包模块104接收到源节点发送的数据报文后,还可更新预设数据库中与所述源节点对应的拥塞流信息。可选的,所述预设数据库(即预设数据库中的拥塞流信息)可存储在存储模块108中。关于所述拥塞流信息以及所述拥塞流信息的更新具体可参见前述实施例中的相关阐述,这里不再赘述。
所述处理模块106用于根据实际业务需求进行相应地的操作处理。例如,若图4示出的网络框架为源节点侧的网络设备的框架示意图,则所述处理模块106具体用于在接收CNP后,可根据所述CNP的指示调整所述源节点向目的节点发送数据报文的发送速率。关于所述数据报文的发送速率如何调整可参见前述实施例中的相关阐述,这里不再赘述。
相应地,若图4示出的网络框架为目的节点侧的网络设备的框架示意图,则所述处理模块106具体用于在接收的源节点发送的数据报文中指示信息(如ECN标志)用于指示传输该数据报文的通信链路发生了拥塞,可根据CNP的周期向所述源节点发送CNP,以降低源节点发送数据报文的发送速率,减轻/避免网络拥塞。具体可参见前述实施例中的相关阐述,这里不再赘述。
在可选实施例中,所述处理模块106也可对预设数据库中的拥塞流信息进行管理,例如更新、删除等。具体的,在所述处理模块106向源节点发送CNP后,可更新预设数据库中所述源节点对应的拥塞流信息。可选的,所述处理模块还可根据拥塞流信息的存储时长对其进行删除管理,例如当拥塞流信息的存储时长大于或等于预设老化时长时,可删除该拥塞流信息。关于所述拥塞流信息的更新、删除等管理操作具体可参见前述实施例中的相关阐述,这里不再赘述。
在可选实施例中,所述网络框架示意图还可包括存储模块108。该存储模块108用于存储数据,例如存储接收的数据报文等。
在可选实施例中,所述网络框架示意图还可包括引擎模块110。该引擎模块110用于实现业务数据报文的处理,例如加速或降速处理等。该引擎模块具体可为查询引擎、计算引擎等等,关于所述引擎模块本申请实施例不做详述。
在可选实施例中,所述网络框架示意图还可包括通信端口112。该通信端口可以包括但不限于高速串行计算机扩展总线标准端口(peripheral component interconnectexpress port,PCIe Port)、以太网端口(ETH Port)等等。其中,PCIe端口为网络设备(如网卡)在网络侧通信时的端口,以太网ETH端口为网络设备(如网卡)在主机侧(如服务器)通信时所使用的端口。所述通信端口的数量本申请实施例并不限定,例如图示示出3个以太网端口和1个PCIe端口。
基于图4所示网络框架示意图,下面以图3实施例为例,详细说明源节点(具体为源节点对应的网络设备)中各个部件和目的节点(具体为目的节点对应的网络设备)中各个部件在本申请实施例中的协作关系,请参考图5。
1、源节点的发包模块202向目的节点发送第一数据报文,该第一数据报文携带有指示信息,用于指示传输该第一数据报文时所述源节点与所述目的节点之间是否发生了数据拥塞。相应地,目的节点的收包模块304接收该第一数据报文。
2-3、目的节点的收包模块304接收该第一数据报文后,可唤醒处理模块306。相应地,处理模块306确定拥塞通知报文CNP的周期,然后根据该CNP的周期,周期性地查询预设数据库中所述源节点的标识所对应的拥塞流信息。
4-7、处理模块306进一步可判断所述拥塞流信息是否满足预设CNP发送条件,如果满足,处理模块306可调用发包模块302向源节点发送CNP。相应地,如果不满足,处理模块306可更新预设数据库中所述源节点对应的拥塞流信息。
8-9、可选的,处理模块306还可对该拥塞流信息进行管理处理,例如更新、删除等。具体的,处理模块306在发送CNP后,可更新预设数据库中所述源节点对应的拥塞流信息。进一步地,处理模块306还可对所述拥塞流信息进行删除管理,例如将存储时长大于或等于预设老化时长的拥塞流信息进行删除。
其中,关于所述CNP的发送、所述拥塞流信息以及所述拥塞流信息的管理操作(例如更新、删除等)具体可参见前述实施例中的相关阐述,这里不再赘述。
10-11、源节点的收包模块204在接收到目的节点发送的CNP后,可唤醒源节点的处理模块206。相应地,所述处理模块206可根据所述CNP的指示调整向所述目的节点发送数据报文的发送速率。具体的,所述处理模块206先根据所述CNP的指示降低所述数据报文的发送速率,以减轻网络拥塞。然后,在预设时段内未接收到所述目的节点发送的CNP后,可恢复/提高所述数据报文的发送速率。关于所述数据报文的发送速率如何调整具体可参见前述实施例中的相关阐述,这里不再赘述。
12、可选的,所述目的节点的收包模块304接收到该第一数据报文后,还可对预存数据库中所述源节点对应的拥塞流信息进行更新。具体可参见前述实施例中的相关阐述,这里不再赘述。
需要说明的是,图4仅为本申请实施例的一种可能的实施方式,实际应用中,源节点和目的节点还可包括更多或更少的部件,这里不作限制。关于本申请实施例未示出或未阐述的部分,可参见前述图1-图4所述实施例中的相关介绍,这里不再赘述。
上述主要从部署在各节点处的网络设备相互的角度出发对本申请实施例提供的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请实施例中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。
本申请实施例可以根据上述方法示例对网络设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图6A示出了上述实施例中所涉及的网络设备的一种可能的结构示意图。网络设备700包括:处理单元702和通信单元703。处理单元702用于对网络设备700的动作进行控制管理。例如,在一种可能的实施例中,处理单元702用于支持网络设备700执行图3中步骤S108,和/或用于执行本文所描述的技术的其它步骤。通信单元703用于支持网络设备700与其它设备的通信,例如,通信单元703用于支持网络设备700执行图3中步骤S102,和/或用于执行本文所描述的技术的其它步骤。
在又一种可能的实施例中,处理单元702用于支持网络设备700执行图3中步骤S104,和/或用于执行本文所描述的技术的其它步骤。通信单元703用于支持网络设备700与其它设备的通信,例如,通信单元703用于支持网络设备700执行图3中步骤S106,和/或用于执行本文所描述的技术的其它步骤。
其中,网络设备700还可以包括存储单元701,用于存储网络设备700的程序代码和数据。
处理单元702可以是处理器或控制器,例如可以是中央处理器(英文:CentralProcessing Unit,CPU),通用处理器,数字信号处理器(英文:Digital Signal Processor,DSP),专用集成电路(英文:Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(英文:Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元703可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如网络设备与其他设备之间的接口。存储单元701可以是存储器。
当处理单元702为处理器,通信单元703为通信接口,存储单元701为存储器时,本申请实施例所涉及的网络设备可以为图6B所示的网络设备。
参阅图6B所示,该网络设备710包括:处理器712、通信接口713、存储器77。可选地,网络设备710还可以包括总线714。其中,通信接口713、处理器712以及存储器77可以通过总线714相互连接;总线714可以是外设部件互连标准(英文:Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(英文:Extended Industry StandardArchitecture,简称EISA)总线等。所述总线714可以分为地址总线、数据总线、控制总线等。为便于表示,图7B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图6A或图6B所示的网络设备的具体实现还可以对应参照前述方法实施例的相应描述,此处不再赘述。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:Random Access Memory,RAM)、闪存、只读存储器(英文:Read Only Memory,ROM)、可擦除可编程只读存储器(英文:ErasableProgrammable ROM,EPROM)、电可擦可编程只读存储器(英文:Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种数据传输方法,其特征在于,所述方法包括:
目的节点接收源节点发送的第一数据报文,所述第一数据报文包括第一指示信息,所述第一指示信息用于指示所述目的节点与所述源节点之间发生了数据拥塞;
确定向所述源节点发送拥塞通知报文CNP的周期,所述周期的大小与拥塞节点的总数量的多少正相关,所述拥塞节点为当前与所述目的节点通信,且与所述目的节点之间发生了数据拥塞的节点;
以所述周期向所述源节点发送所述CNP,所述CNP用于通知所述源节点调整所述源节点发送数据报文的发送速率。
2.根据权利要求1所述的方法,其特征在于,所述周期的大小与所述拥塞节点的总数量呈正比关系。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据报文还包括所述源节点的标识,所述以所述周期,向所述源节点发送所述CNP,包括:
以所述周期,查询与所述源节点的标识对应的拥塞流信息;其中,所述目的节点保存有所述源节点的标识与所述拥塞流信息之间的映射关系;
每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件,向所述源节点发送所述CNP。
4.根据权利要求3所述的方法,其特征在于,所述每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件,向所述源节点发送所述CNP,包括:
每次查询到所述拥塞流信息后,通过第一拥塞信息确定在接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间是否发生数据拥塞,所述第二数据报文为所述源节点与所述目的节点之间发生数据拥塞时发送的数据报文,所述第二数据报文为所述目的节点接收所述第一数据报文之前最后一次接收的从所述源节点发送的数据报文,所述拥塞流信息包括所述第一拥塞信息;
如果通过第一拥塞信息确定接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间发生数据拥塞,向所述源节点发送所述CNP。
5.根据权利要求4所述的方法,其特征在于,所述如果通过第一拥塞信息确定接收从所述源节点发送的第二数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,还包括:
确定***当前时间与所述目的节点接收所述第一数据报文之前最后一次向所述源节点发送CNP的时间之间的时间间隔是否大于或等于所述周期,如果大于或等于所述周期,向所述源节点发送所述CNP。
6.根据权利要求3所述的方法,其特征在于,所述每次查询到所述拥塞流信息后,确定所述拥塞流信息满足预设CNP发送条件后,向所述源节点发送所述CNP,包括:
每次查询到所述拥塞流信息后,通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间是否发生数据拥塞,所述第三数据报文为所述源节点与所述目的节点之间发生数据拥塞时发送的数据报文,所述第三数据报文为所述目的节点在查询到所述拥塞流信息之前的所述周期内接收到的数据报文,所述拥塞流信息包括所述第二拥塞信息;
如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,向所述源节点发送所述CNP。
7.根据权利要求6所述的方法,其特征在于,如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,所述方法还包括:
通过第二拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点没有向所述源节点发送所述CNP,所述拥塞流信息还包括所述第二拥塞信息。
8.根据权利要求6所述的方法,其特征在于,如果通过第二拥塞信息确定在接收从所述源节点发送的第三数据报文时,所述源节点与所述目的节点之间发生数据拥塞,所述向所述源节点发送所述CNP之前,所述方法还包括:
通过第三拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点向所述源节点发送了所述CNP,所述拥塞流信息还包括所述第三拥塞信息;
如果通过第三拥塞信息确定所述目的节点在查询到所述拥塞流信息之前的所述周期内,所述目的节点向所述源节点发送了所述CNP,所述向所述源节点发送所述CNP,包括:
在查询到所述拥塞流信息后的所述周期在结束时,向所述源节点发送所述CNP。
9.一种数据传输方法,其特征在于,所述方法包括:
源节点接收目的节点发送的CNP,所述CNP包括所述目的节点向所述源节点发送所述CNP的周期,所述周期的大小与拥塞节点的总数量的多少正相关,所述拥塞节点为当前与所述目的节点通信,且与所述目的节点之间发生了数据拥塞的节点;
根据预设的降速影响因子,降低所述源节点发送数据报文的发送速率;
在预设时段内未接收到所述CNP的情况下,按照预设规则提高所述源节点发送数据报文的发送速率,所述预设时段大于所述周期,所述预设时段的开始时间为所述源节点最后一次接收到所述CNP的时间。
10.根据权利要求9所述的方法,其特征在于,所述在预设时段内未接收到所述CNP的情况下,按照预设规则提高所述数据报文的发送速率之前,还包括:
确定预设时段,所述预设时段为所述周期和预设时长两者中的最大值的预设倍数,所述周期最大时,所述预设倍数的值为k1,所述预设时长最大时,所述预设倍数的值为k2,其中所述k1和所述k2分别为大于1的常数。
11.根据权利要求9或10所述的方法,其特征在于,所述根据预设的降速影响因子,降低所述源节点发送数据报文的发送速率,包括:
在所述源节点接收到所述CNP后,在所述预设时段内多次降低所述源节点发送数据报文的发送速率,每一次降速时,所述发送速率的降速幅度与降速影响因子和降速前最后一次降速时的发送速率关联,所述降速影响因子与降速影响因子的降速幅度关联,随着降速次数增多,所述降速影响因子的值成收敛趋势。
12.根据权利要求9-11中任一项所述的方法,其特征在于,所述根据预设的降速影响因子,降低所述源节点发送数据报文的发送速率之前,还包括:
记录目标速率,其中,所述目标速率为降速前所述源节点发送所述数据报文的发送速率;
所述按照预设规则提高所述源节点发送数据报文的发送速率,包括:
提高所述源节点发送数据报文的发送速率至第一速率,所述第一速率接近所述目标速率;
多次提高所述源节点发送数据报文的发送速率,每一次提速时,所述发送速率的提速幅度与提速影响因子和提速前最后一次提速时的提速幅度关联,所述提速影响因子与提速次数关联,随着提速次数增多,所述提速影响因子的值成收敛趋势。
13.一种网络设备,其特征在于,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他网络设备进行通信;其中,所述处理器执行所述指令时执行如上权利要求1-8中任一项所述的方法。
14.一种网络设备,其特征在于,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他网络设备进行通信;其中,所述处理器执行所述指令时执行如上权利要求9-12中任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述方法。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求9至12任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810140533.8A CN108418767B (zh) | 2018-02-09 | 2018-02-09 | 数据传输方法、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810140533.8A CN108418767B (zh) | 2018-02-09 | 2018-02-09 | 数据传输方法、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108418767A true CN108418767A (zh) | 2018-08-17 |
CN108418767B CN108418767B (zh) | 2021-12-21 |
Family
ID=63128436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810140533.8A Active CN108418767B (zh) | 2018-02-09 | 2018-02-09 | 数据传输方法、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108418767B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039936A (zh) * | 2018-08-30 | 2018-12-18 | 华为技术有限公司 | 传输速率控制方法、装置、发送设备和接收设备 |
CN109379163A (zh) * | 2018-09-05 | 2019-02-22 | 新华三技术有限公司 | 一种报文转发速率控制方法及装置 |
CN110505156A (zh) * | 2019-08-23 | 2019-11-26 | 中国人民解放军国防科技大学 | 一种高速互连网络中低开销的拥塞控制方法 |
CN111194060A (zh) * | 2019-12-19 | 2020-05-22 | 京信通信技术(广州)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111614471A (zh) * | 2020-04-29 | 2020-09-01 | 网络通信与安全紫金山实验室 | 一种基于sdn的dcqcn数据传输***及传输方法 |
CN111756641A (zh) * | 2019-03-28 | 2020-10-09 | 华为技术有限公司 | 一种发送设备的调整方法和通信装置 |
CN112134809A (zh) * | 2020-09-16 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112242956A (zh) * | 2019-07-18 | 2021-01-19 | 华为技术有限公司 | 流速控制方法和装置 |
WO2021042831A1 (zh) * | 2019-09-05 | 2021-03-11 | 华为技术有限公司 | 一种控制数据传输的方法、装置及存储介质 |
WO2021120764A1 (zh) * | 2019-12-19 | 2021-06-24 | 华为技术有限公司 | 一种收发数据的方法及装置 |
WO2021147704A1 (zh) * | 2020-01-23 | 2021-07-29 | 华为技术有限公司 | 拥塞控制方法及装置 |
CN113411264A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
WO2022089175A1 (zh) * | 2020-10-29 | 2022-05-05 | 华为技术有限公司 | 网络拥塞控制方法及装置 |
US11405415B2 (en) * | 2019-12-06 | 2022-08-02 | Tata Consultancy Services Limited | System and method for selection of cloud service providers in a multi-cloud |
CN116545933A (zh) * | 2023-07-06 | 2023-08-04 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
CN116915721A (zh) * | 2023-09-12 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种拥塞控制方法、装置、计算设备及可读存储介质 |
WO2024099443A1 (en) * | 2022-11-10 | 2024-05-16 | Huawei Technologies Co., Ltd. | Methods and apparatus for improved congestion signaling |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030926A (zh) * | 2006-02-28 | 2007-09-05 | 华为技术有限公司 | 全球微波接入互操作性网络数据流量控制方法 |
CN101141406A (zh) * | 2007-10-17 | 2008-03-12 | 杭州华三通信技术有限公司 | 分布式流量控制方法、***及装置 |
CN102792647A (zh) * | 2010-01-11 | 2012-11-21 | 捷讯研究有限公司 | 通信***中使用二进制标记的基于显式拥塞通知的速率适配 |
US20160359758A1 (en) * | 2015-06-04 | 2016-12-08 | Mellanox Technologies Ltd. | Management of data transmission limits for congestion control |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及*** |
-
2018
- 2018-02-09 CN CN201810140533.8A patent/CN108418767B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030926A (zh) * | 2006-02-28 | 2007-09-05 | 华为技术有限公司 | 全球微波接入互操作性网络数据流量控制方法 |
CN101141406A (zh) * | 2007-10-17 | 2008-03-12 | 杭州华三通信技术有限公司 | 分布式流量控制方法、***及装置 |
CN102792647A (zh) * | 2010-01-11 | 2012-11-21 | 捷讯研究有限公司 | 通信***中使用二进制标记的基于显式拥塞通知的速率适配 |
US20160359758A1 (en) * | 2015-06-04 | 2016-12-08 | Mellanox Technologies Ltd. | Management of data transmission limits for congestion control |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及*** |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020042624A1 (zh) * | 2018-08-30 | 2020-03-05 | 华为技术有限公司 | 传输速率控制方法、装置、发送设备和接收设备 |
CN109039936B (zh) * | 2018-08-30 | 2021-12-28 | 华为技术有限公司 | 传输速率控制方法、装置、发送设备和接收设备 |
CN109039936A (zh) * | 2018-08-30 | 2018-12-18 | 华为技术有限公司 | 传输速率控制方法、装置、发送设备和接收设备 |
CN109379163A (zh) * | 2018-09-05 | 2019-02-22 | 新华三技术有限公司 | 一种报文转发速率控制方法及装置 |
CN109379163B (zh) * | 2018-09-05 | 2021-11-23 | 新华三技术有限公司 | 一种报文转发速率控制方法及装置 |
CN111756641B (zh) * | 2019-03-28 | 2024-07-09 | 华为技术有限公司 | 一种发送设备的调整方法和通信装置 |
CN111756641A (zh) * | 2019-03-28 | 2020-10-09 | 华为技术有限公司 | 一种发送设备的调整方法和通信装置 |
CN112242956A (zh) * | 2019-07-18 | 2021-01-19 | 华为技术有限公司 | 流速控制方法和装置 |
CN112242956B (zh) * | 2019-07-18 | 2024-04-26 | 华为技术有限公司 | 流速控制方法和装置 |
CN110505156B (zh) * | 2019-08-23 | 2020-10-30 | 中国人民解放军国防科技大学 | 一种高速互连网络中低开销的拥塞控制方法 |
CN110505156A (zh) * | 2019-08-23 | 2019-11-26 | 中国人民解放军国防科技大学 | 一种高速互连网络中低开销的拥塞控制方法 |
WO2021042831A1 (zh) * | 2019-09-05 | 2021-03-11 | 华为技术有限公司 | 一种控制数据传输的方法、装置及存储介质 |
US11405415B2 (en) * | 2019-12-06 | 2022-08-02 | Tata Consultancy Services Limited | System and method for selection of cloud service providers in a multi-cloud |
WO2021120764A1 (zh) * | 2019-12-19 | 2021-06-24 | 华为技术有限公司 | 一种收发数据的方法及装置 |
CN111194060A (zh) * | 2019-12-19 | 2020-05-22 | 京信通信技术(广州)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021147704A1 (zh) * | 2020-01-23 | 2021-07-29 | 华为技术有限公司 | 拥塞控制方法及装置 |
CN111614471A (zh) * | 2020-04-29 | 2020-09-01 | 网络通信与安全紫金山实验室 | 一种基于sdn的dcqcn数据传输***及传输方法 |
CN111614471B (zh) * | 2020-04-29 | 2022-06-07 | 网络通信与安全紫金山实验室 | 一种基于sdn的dcqcn数据传输***及传输方法 |
CN112134809A (zh) * | 2020-09-16 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN112134809B (zh) * | 2020-09-16 | 2024-04-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
WO2022089175A1 (zh) * | 2020-10-29 | 2022-05-05 | 华为技术有限公司 | 网络拥塞控制方法及装置 |
CN113411264B (zh) * | 2021-06-30 | 2023-03-14 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
CN113411264A (zh) * | 2021-06-30 | 2021-09-17 | 中国工商银行股份有限公司 | 一种网络队列的监控方法、装置、计算机设备和存储介质 |
WO2024099443A1 (en) * | 2022-11-10 | 2024-05-16 | Huawei Technologies Co., Ltd. | Methods and apparatus for improved congestion signaling |
CN116545933A (zh) * | 2023-07-06 | 2023-08-04 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
CN116545933B (zh) * | 2023-07-06 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 网络拥塞控制方法、装置、设备及存储介质 |
CN116915721A (zh) * | 2023-09-12 | 2023-10-20 | 珠海星云智联科技有限公司 | 一种拥塞控制方法、装置、计算设备及可读存储介质 |
CN116915721B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种拥塞控制方法、装置、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108418767B (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108418767A (zh) | 数据传输方法、设备及计算机存储介质 | |
JP5038425B2 (ja) | パケット遠隔通信ネットワークにおけるトラフィックの制御の最適化プロセス | |
JP2004297742A (ja) | 通信装置、通信制御方法及びプログラム | |
EP1251661B1 (en) | Data flow control method | |
US9385835B2 (en) | System and method for adaptive frame size management in a wireless multihop network | |
EP1228595B1 (en) | Method and system for discarding and regenerating acknowledgment packets in adsl communications | |
US8072886B2 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
US20090287844A1 (en) | Data Transfer Method, System and Protocol | |
US10439940B2 (en) | Latency correction between transport layer host and deterministic interface circuit | |
WO2019210725A1 (zh) | 拥塞控制方法、装置、设备及存储介质 | |
CN104093170A (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
US20230246973A1 (en) | System and method for reducing bandwidth usage of a network | |
US20070291782A1 (en) | Acknowledgement filtering | |
JP5832335B2 (ja) | 通信装置および通信システム | |
Bai et al. | Interactions of TCP and radio link ARQ protocol | |
CN101162968A (zh) | 前向通用路由封装包的乱序调整方法 | |
CN100417156C (zh) | 一种流控传输协议中数据传输实现方法及*** | |
CN104580171B (zh) | Tcp协议的传输方法、装置和*** | |
JP2002217963A (ja) | データ配信管理装置 | |
WO2013091373A1 (zh) | 鲁棒性头压缩反馈管理方法、装置及解压器 | |
JP2008113327A (ja) | ネットワークインターフェース装置 | |
EP3809748A1 (en) | Data transmitting method and device, and data receiving method and device | |
Hu et al. | A block based encoding approach for improving sliding window network coding in wireless networks | |
JP2008160621A (ja) | トラヒック情報集約装置 | |
JP2002111728A (ja) | 無線ネットワークにおけるデータ転送方法 |
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 |