CN117914792A - 通信方法及装置 - Google Patents
通信方法及装置 Download PDFInfo
- Publication number
- CN117914792A CN117914792A CN202211239735.0A CN202211239735A CN117914792A CN 117914792 A CN117914792 A CN 117914792A CN 202211239735 A CN202211239735 A CN 202211239735A CN 117914792 A CN117914792 A CN 117914792A
- Authority
- CN
- China
- Prior art keywords
- flow
- message
- congestion
- flowlet
- output port
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000004891 communication Methods 0.000 title claims abstract description 71
- 230000005540 biological transmission Effects 0.000 claims abstract description 147
- 230000000875 corresponding effect Effects 0.000 claims description 60
- 238000012545 processing Methods 0.000 claims description 21
- 230000002596 correlated effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000238633 Odonata Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种通信方法及装置,涉及通信领域。本申请能够在缓解网络拥塞的前提下充分利用网络中的带宽资源。该方法包括:接收设备接收来自发送设备的第一数据流flow;接收设备在确定第一flow的传输过程存在拥塞并且第一flow的拥塞情况满足第一预设条件后,向发送设备发送第一拥塞通知报文CNP。第一CNP中包括用于指示对第一flow切换流片flowlet的第一标识。本申请用于数据传输。
Description
技术领域
本申请涉及通信领域,尤其涉及一种通信方法及装置。
背景技术
随着传输网络的规模越来越多,现有技术中常采用负载均衡的方式,将数据分担到传输网络中的多条路径上进行传输,以充分利用传输网络中的传输资源。目前,在数据传输过程中,可以以数据流(flow)、流片(flowlet)或数据包(packet)为粒度进行负载均衡。
其中,在采用以flowlet为粒度进行负载均衡的场景下,如何更加高效的实现数据传输,这是目前需要解决的技术问题。
发明内容
本申请提供一种通信方法及装置,用于在缓解网络拥塞的前提下充分利用网络中的带宽资源。
第一方面,提供一种通信方法,该方法包括:接收设备接收来自发送设备的第一数据流flow。接收设备在确定第一flow的传输过程存在拥塞并且第一flow的拥塞情况满足第一预设条件后,向发送设备发送第一拥塞通知报文CNP;第一CNP中包括用于指示对第一flow切换流片flowlet的第一标识。
本申请实施例中在第一flow的传输过程出现拥塞后,可以通过接收设备向发送设备发送第一CNP的这种方式,触发切换flowlet。这样一来,后续的报文可以按照新建立的flowlet对应的传输路径进行传输,避免一直使用存在拥塞的传输路径传输整个flowlet中的报文,从而在缓解网络拥塞的前提下充分利用网络中的带宽资源。
在一种实现方式中,该方法还包括:接收设备在确定第一flow的拥塞情况满足第二预设条件后,向发送设备发送第二CNP;第二CNP中包括第二标识,第二标识用于指示降低第一flow的发送速率。
本实现方式中,一方面,当第一flow的拥塞情况满足第一预设条件后,接收设备向发送设备发送携带第一标识的第一CNP,以便发送设备在接收到第一CNP后,触发对第一flow切换flowlet的过程;另一方面,当第一flow的拥塞情况满足第二预设条件后,接收设备向发送设备发送携带第二标识的第二CNP,以便发送设备在接收到第二CNP后,降低第一flow的发送速率。这样一来,可以达到根据当前网络的实际情况,选择合适的方式(切换flowlet或降低发送速率)来应对拥塞的效果。
在一种实现方式中,第一预设条件包括:接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数小于阈值。第二预设条件包括:接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数大于等于阈值。
上述实现方式中,考虑到当检测到第一flow的传输路径上存在拥塞时,此时其他的传输路径上可能存在空闲带宽,因此可以先采用切换flowlet的方式,来改变第一flow的传输路径。在切换flowlet后,如果拥塞情况得到缓解,则可以继续正常传输第一flow;如果在切换flowlet后,依然存在拥塞,则说明第一flow对应的多条传输路径都可能存在拥塞,那么,此时可以通过在发送端降低第一flow的发送速率的方式,来缓解拥塞。
第二方面,提供一种通信方法,包括:发送设备接收来自接收设备的拥塞通知报文CNP;接收设备为接收发送设备发送的第一数据流flow的设备。发送设备在确定CNP中包括第一标识后,发送携带切换标识的第一报文;第一报文为第一flow中的报文,切换标识用于指示对第一flow切换流片flowlet。
本申请实施例中,在发送设备接收到携带第一标识的CNP后,可以发送携带切换标识的第一报文,以便接收到第一报文的网络设备触发切换flowlet。这样一来,后续的报文可以按照新建立的flowlet对应的传输路径进行传输,避免一直使用存在拥塞的传输路径传输整个flowlet中的报文,从而在缓解网络拥塞的前提下充分利用网络中的带宽资源。
在一种实现方式中,该方法还包括:发送设备在确定CNP中包括第二标识后,降低第一flow中的报文的发送速率。
本实现方式中,一方面,当发送设备在接收到携带第一标识的CNP(即上文中的第一CNP)后,可以通过向网络设备发送携带切换标识的报文的方式,触发对第一flow切换flowlet的过程;另一方面,当发送设备在接收到携带第二标识的CNP(即上文中的第二CNP)后,还可以通过降低第一flow的报文的发送速率,从而缓解拥塞。
在一种实现方式中,切换标识位于第一报文的IP报文头;或者,切换标识位于第一报文的以太网报文头和IP报文头之间。
第三方面,提供一种通信方法,包括:网络设备接收来自发送设备的第一报文;第一报文为第一数据流flow中的报文。网络设备在确定第一报文中携带切换标识后,为第一flow重新建立第一流片flowlet。网络设备根据第一flowlet对应的第一出端口,转发第一报文。
本方法中,网络设备在接收到携带切换标识的第一报文后,会为第一flow重新建立第一流片flowlet,并根据第一flowlet对应的第一出端口转发第一报文。这样一来,在数据流原本的传输路径存在拥塞的情况下,后续的报文可以按照新建立的flowlet对应的传输路径进行传输,避免一直使用存在拥塞的传输路径传输整个flowlet中的报文,从而在缓解网络拥塞的前提下充分利用网络中的带宽资源。
在一种实现方式中,该方法还包括:网络设备确定网络设备上第一flow可用的n个出端口;n个出端口中包括第二出端口,第二出端口为在建立第一flowlet之前第一flow对应的出端口。网络设备根据n个出端口中各出端口对应的拥塞分数,从n个出端口中选择第一出端口;其中,第二出端口的拥塞分数小于n个出端口中的其他出端口的拥塞分数,拥塞分数与被选中的概率正相关;或者,第二出端口的拥塞分数大于n个出端口中的其他出端口,拥塞分数与被选中的概率负相关。
本实现方式中,考虑到网络设备在确定第一flowlet对应的第一出端口时,可能确定出的第一出端口与在建立第一flowlet之前第一flow对应的出端口(即第二出端口)相同。这样一来,就会导致第一flowlet中的报文可能依然按照之前已经确定存在拥塞的传输路径进行传输。因此,通过本实现方式可以降低第二出端口被选中的概率。
在一种实现方式中,网络设备根据第一flowlet对应的第一出端口,转发第一报文,包括:网络设备在确定第一出端口与第二出端口相同后,通过第一出端口转发携带切换标识的第一报文;第二出端口为在建立第一flowlet之前第一flow对应的出端口。网络设备在确定第一出端口与第二出端口不同后,通过第一出端口转发不携带切换标识的第一报文。
本实施方式中,一方面,考虑到如果新建立的flowlet的出端口与原来的flowlet的出端口不相同,则说明第一flowlet中的报文将通过新的传输路径进行传输,从而避开了原本拥塞的传输路径。因此,网络设备可以向下一跳设备发送不携带切换标识的报文。另一方面,如果新建立的flowlet的出端口与原来的flowlet的出端口相同时,则网络设备203就将携带切换标识的第一报文通过第一出端口转发至下一跳设备。这样一来,下一跳设备在接收到第一报文后,就可以根据切换标识建立新的flowlet,从而通过为新的flowlet重新分配出端口,从而使得后续转发的报文避开原来的传输路径。同理,如果下一跳设备新建立的flowlet的出端口与原来的出端口相同,则也可以向它的下一跳设备发送携带切换标识的第一报文。
第四方面,提供一种通信装置,应用于接收设备,包括:接收单元,用于接收来自发送设备的第一数据流flow。发送单元,用于在确定第一flow的传输过程存在拥塞并且第一flow的拥塞情况满足第一预设条件后,向发送设备发送第一拥塞通知报文CNP;第一CNP中包括用于指示对第一flow切换流片flowlet的第一标识。
在一种实现方式中,发送单元,还用于在确定第一flow的拥塞情况满足第二预设条件后,向发送设备发送第二CNP;第二CNP中包括第二标识,第二标识用于指示降低第一flow的发送速率。
在一种实现方式中,第一预设条件包括:接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数小于阈值。第二预设条件包括:接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数大于等于阈值。
第五方面,提供一种通信装置,应用于发送设备,包括:接收单元,用于接收来自接收设备的拥塞通知报文CNP;接收设备为接收发送设备发送的第一数据流flow的设备。发送单元,用于在确定CNP中包括第一标识后,发送携带切换标识的第一报文;第一报文为第一flow中的报文,切换标识用于指示对第一flow切换流片flowlet。
在一种实现方式中,该通信装置还包括:处理单元,用于在确定CNP中包括第二标识后,降低第一flow中的报文的发送速率。
在一种实现方式中,切换标识位于第一报文的IP报文头;或者,切换标识位于第一报文的以太网报文头和IP报文头之间。
第六方面,提供一种通信装置,应用于网络设备,包括:接收单元,用于接收来自发送设备的第一报文;第一报文为第一数据流flow中的报文。处理单元,用于在确定第一报文中携带切换标识后,为第一flow重新建立第一流片flowlet。发送单元,用于根据第一flowlet对应的第一出端口,转发第一报文。
在一种实现方式中,处理单元,还用于确定网络设备上第一flow可用的n个出端口;n个出端口中包括第二出端口,第二出端口为在建立第一flowlet之前第一flow对应的出端口。处理单元,还用于根据n个出端口中各出端口对应的拥塞分数,从n个出端口中选择第一出端口;其中,第二出端口的拥塞分数小于n个出端口中的其他出端口的拥塞分数,拥塞分数与被选中的概率正相关;或者,第二出端口的拥塞分数大于n个出端口中的其他出端口,拥塞分数与被选中的概率负相关。
在一种实现方式中,发送单元,用于根据第一flowlet对应的第一出端口,转发第一报文,包括:发送单元,用于在确定第一出端口与第二出端口相同后,通过第一出端口转发携带切换标识的第一报文;第二出端口为在建立第一flowlet之前第一flow对应的出端口。发送单元,用于在确定第一出端口与第二出端口不同后,通过第一出端口转发不携带切换标识的第一报文。
第七方面,提供一种通信装置,包括处理器和接口,处理器通过接口接收或发送数据,处理器用于实现如上述第一方面或第一方面中任一项实现方式或第二方面或第二方面中任一项实现方式或第三方面或第三方面中任一项实现方式的方法。
第八方面,提供一种通信系统,包括发送设备、接收设备以及网络设备;发送设备用于实现如上述第一方面或第一方面中任一项实现方式的方法,接收设备用于实现如上述第二方面或第二方面中任一项实现方式的方法,网络设备用于实现如上述第三方面或第三方面中任一项实现方式的方法。
第九方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在处理器上运行时,实现如上述第一方面或第一方面中任一项实现方式或第二方面或第二方面中任一项实现方式或第三方面或第三方面中任一项实现方式的方法。
第十方面,提供一种计算机程序产品,该计算机程序产品包括指令,当指令在处理器上运行时,实现如上述第一方面或第一方面中任一项实现方式或第二方面或第二方面中任一项实现方式或第三方面或第三方面中任一项实现方式的方法。
附图说明
图1为本申请实施例提供的一种传输网络的结构示意图之一;
图2为本申请实施例提供的一种传输网络的结构示意图之二;
图3为本申请实施例提供的一种flowlet的划分示意图;
图4为本申请实施例提供的一种传输网络的结构示意图之三;
图5为本申请实施例提供的一种传输网络的结构示意图之四;
图6为本申请实施例提供的一种通信方法的流程示意图之一;
图7为本申请实施例实施例提供的一种CNP的结构示意图;
图8为本申请实施例实施例提供的一种报文的结构示意图;
图9为本申请实施例提供的一种报文头的结构示意图;
图10为本申请实施例提供的一种通信方法的流程示意图之二;
图11为本申请实施例提供的一种通信方法的流程示意图之三;
图12为本申请实施例提供的一种通信方法的流程示意图之四;
图13为本申请实施例提供的一种通信方法的流程示意图之五;
图14为本申请实施例提供的一种通信装置的结构示意图之一;
图15为本申请实施例提供的一种通信装置的结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
首先,对本申请实施例涉及的相关技术进行介绍:
1、负载均衡,指将待传输的流量分配到网络中的多条路径上进行传输,以充分利用网络中传输资源的技术。
近年来,随着多样性算力的发展,数据中心的算力正在不断增长,正朝着10E级算力目标挺进,因此数据中心规模也跟着不断扩大。随着数据中心规模的扩大和应用业务的增加,承载数据传输任务的传输网络的规模也越来越大,同时传输网络的拓扑结构也在不断演进变化。目前,传输网络具有多路径路由的特性,为了充分利用多路径带宽,负载均衡技术被越来越多的应用在传输网络中。具体的,在数据传输过程中,可以以数据流(flow)、流片(flowlet)或数据包(packet)为粒度进行负载均衡。
其中,以flow为粒度进行负载均衡,其大致原理是在每一数据流的首个数据包从主机到达第一个交换机后,交换机将根据数据包的五元组进行判断是否为数据流的第一个数据包,如果是则根据哈希算法选择一个发送端口进行发送(如果不是则沿着同流的上一个数据包发送端口进行发送)。一方面,以flow为粒度进行负载均衡能够保证同一数据流中的报文都通过相同的传输路径传输,这样一来便可以保证数据流中各报文的前后顺序,进而可以避免包乱序的问题;另一方面,以flow为粒度进行负载均衡的精度较低,可能导致传输资源无法被充分利用的问题。
以数据包(packet)为粒度进行负载均衡,其大致原理是在每一个数据包从主机到达第一个交换机后,不去管它是属于哪一个数据流直接随机的选择一个端口去发送数据包。一方面,以packet为粒度进行负载均衡能够以较高的精度进行负载均衡,进而充分利用传输资源;另一方面,以packet为粒度进行负载均衡时,当在非对称拓扑结构的传输网络中传输数据时,可能会导致包乱序的问题。
具体的,根据传输网络中两个节点之间不同传输路径的传输距离是否相同,可以将传输网络分为对称拓扑结构和非对称拓扑结构,这两种结构:
一方面,在对称拓扑结构中,两个节点之间的不同传输路径的传输距离都是相同的。示例性的,如图1所示,为一种对称拓扑结构的传输网络的结构示意图。其中,该传输网络采用三层胖树组网拓扑。以终端1和终端2之间进行数据传输为例,其中从终端1发送数据流到终端2,具体可以包括:终端1-节点A-节点B-节点E-节点G-节点F-终端2;终端1-节点A-节点B-节点J-节点G-节点F-终端2;终端1-节点A-节点D-节点K-节点I-节点F-终端2;终端1-节点A-节点D-节点L-节点I-节点F-终端2,四条传输路径。可以看出,这四条传输路径都分别经过5个传输节点,因此可以将这四条传输路径视为传输距离都相同。那么,当以packet为粒度进行负载均衡从终端1发送数据流到终端2时,通常不会出现包乱序的问题。
另一方面,在非对称拓扑结构中,两个节点之间的不同传输路径的传输距离可能是不同的。示例性的,如图2所示,为一种非对称拓扑结构的传输网络的结构示意图。其中,传输网络20采用飞龙(dragonfly)组网拓扑。终端3通过节点M接入传输网络,终端4通过节点P接入传输网络。以终端3和终端4之间进行数据传输为例,其中从终端3发送数据流到终端4,具体可以包括:终端3-节点M-节点P-终端4;终端3-节点M-节点N-节点Q-节点P-终端4,这两条传输路径。可以看出,这两条传输路径,分别经过了2个和4个传输节点,因此可以将这两条传输路径视为传输距离不同。那么,当以packet为粒度进行负载均衡从终端1发送数据流到终端2时,可能出现包乱序的问题。
为了在保证相对精确的负载均衡精度的情况下,又能够避免出现包乱序的问题,相关技术中提出了以flowlet为粒度进行负载均衡。以flowlet为粒度进行负载均衡,其大致原理是利用了TCP协议传输时一次性大量发包(bast)的特性(一次发的所有数据包称为一个flowlet),而当TCP协议两次大量发包的时间间隔大于或等于超时值时,则将当前报文作为一个新的flowlet的开始,重新选择一个发送端口发送当前报文(否则仍沿上一flowlet的发送端口发送当前报文)。
具体的,flowlet的概念最早在2007年提出,以便基于flowlet在多个并行路径上进行相对精确的负载均衡。在flowlet中,通过定义一个超时值δ,以便将相邻报文之间的时间间隔不大于超时值δ的所有报文的集合视为一个flowlet。示例性的,如图3所示为一个数据流中flowlet的划分示意图。其中,数据流中包括报文a-报文l。其中,报文a、报文b和报文c的发送间隔小于超时值δ,因此这三个报文作为一个flowlet(即flowlet 1);同理,报文d-报文h作为一个flowlet(即flowlet 2),报文i-报文l作为一个flowlet(即flowlet 3)。
在传输过程中,从属于同一flowlet的报文所走的传输路径相同,从属于不同flowlet的报文所走的路径是独立的。如图4所示,假设从节点1到节点6包括两条传输路径:节点1-节点2-节点3-节点6(下文称为路径P1),以及节点1-节点4-节点5-节点6(下文称为路径P2)。在需要通过节点1向节点6发送数据流(假如数据流包括两个流片:flowlet 1和flowlet2)时,节点1先根据路由策略(例如网络中的带宽占用情况)确定将flowlet 1中的报文通过路径P1传输。然后,节点1再重新根据路由策略从各传输路径(即路径P1和路径P2)中确定一条传输路径,用于传输flowlet 2中的报文。其中,flowlet 1和flowlet 2的传输路径可以是相关独立的。
2、数据中心量化拥塞通知(Data Center Quantized Congestion Notification,DCQCN),一种用于缓解网络拥塞的技术。
示例性的,如图5所示,在发送设备101通过传输路径“发送设备101-交换机102-接收设备103”向接收设备103发送数据流的情况下,若采用DCQCN技术来缓解网络拥塞,那么当交换机102根据交换机102上的端口队列深度确定存在拥塞后,交换机102可以在报文中增加拥塞标记。之后,接收设备103在接收到该带有拥塞标记的报文后,发送拥塞通知报文(Congestion Notification Packet,CNP)给发送设备101。发送设备101在接收到CNP后,会降低该数据流的报文的发送速率。这样一来,便可以缓解网络拥塞情况。
然而,本申请实施例中发现,在以flowlet为粒度进行负载均衡的情况下,若传输过程中检测到拥塞(例如交换机检测到拥塞),则只能说明当前flowlet的传输路径上存在拥塞,此时其他传输路径上可能还有空闲带宽。因此,若按照上文中DCQCN技术的内容,当网络中出现拥塞时,则直接由发送设备降低报文的发送速率,这样一来便可能导致传输资源浪费的问题。
针对上述问题,本申请实施例考虑到:在发送设备向接收设备发送数据流时,当确定数据流的传输过程存在拥塞时,可以不降低报文的发送速率,而是通过切换flowlet的方式,使得数据流中的后续报文按照新的flowlet的传输路径进行传输。其中,新的flowlet的传输路径,可以为收发设备之间的包括空闲带宽的传输路径。这样一来,便可以实现充分利用传输资源的效果。
下面结合实例,对本申请实施例所提供技术方案进行介绍。具体的,本申请实施例所提供的通信方法可应用于以flowlet为粒度进行负载均衡的场景中。下面将以图6中发送设备201通过传输网络向接收设备202发送数据为例,对本方法进行介绍。
其中,图6中传输网络可以为对称拓扑结构或非对称拓扑结构等各类传输网络,例如图6中传输网络可以为图1或图2所示的传输网络,图6中网络设备203可以传输网络中的交换机或路由器等传输设备,图6中发送设备201和接收设备202可以为图1或图2中的终端。可以理解的是,图6中发送设备201和接收设备202之间仅示例性的示出了网络设备203,在实际应用过程中在发送设备201和接收设备202之间的传输网络中可以连接有多个网络设备,对此本申请实施例不做限制。
具体的,如图6所示,该方法可以包括:
S301、接收设备202接收来自发送设备201的第一flow。
其中,接收设备202接收来自发送设备201的第一flow,可以反映为接收设备202接收第一flow所包括的报文。
示例性的,发送设备201可以通过将第一flow所包括的报文发送至传输网络中的网络设备203,然后网络设备203以flowlet为粒度进行负载均衡并将报文转发至传输网络中的下一跳网络设备,直至将报文转发至接收设备202。
S302、接收设备202在确定第一flow的传输过程存在拥塞,并且第一flow的拥塞情况满足第一预设条件后,向发送设备发送第一CNP。
其中,第一CNP中包括用于指示对第一flow切换flowlet的第一标识。
示例性的,接收设备202可以根据接收到的报文中是否包括拥塞标识,来确定第一flow的传输过程是否存在拥塞。
示例性的,在传输网络中,交换机在接收到报文后,会先将报文存入对应出端口的队列中等待转发。其中,当出端口的队列深度超出一定范围时,则说明该出端口出现拥塞。此时,交换机在转发该队列中的报文时,会在报文中增加拥塞标记,以指示该报文的传输过程存在拥塞。进而接收设备202在接收到第一flow中的报文后,若该报文中携带有拥塞标记,则可以确定第一flow的传输过程存在拥塞。
另外,在实际应用过程中,可以根据实际需要,设置上述第一预设条件的具体内容。例如,可以将第一预设条件设置为:接收到携带拥塞标记的第一flow中的报文。那么,可以理解为:此时接收设备202在接收到携带拥塞标记的第一flow中的报文后,便会向发送设备发送第一CNP。再例如,可以将第一预设条件设置为:连续接收到n个携带拥塞标记的第一flow中的报文,其中n可以根据实际需求设定。那么,可以理解为:此时接收设备202在接收到携带拥塞标记的第一flow中的报文后,并不会直接向发送设备发送第一CNP,而是在累积接收到n个携带拥塞标记的第一flow中的报文后,再向发送设备发送第一CNP。
另外,在一种实现方式中,上述第一标识携带在CNP的保留(reserved)字段中。
示例性的,如图7所示,为本申请实施例提供的一种CNP的帧结构。其中,CNP中包括介质访问控制(media access control,MAC)报文头、互联网协议(internet protocol,IP)报文头、用户数据报协议(user datagram protocol,UDP)报文头、基础传输头(basetransport header,BTH)、保留字段、循环冗余校验(cyclic redundancy check,CRC)字段,以及帧校验序列(frame check sequence,FCS)字段。其中,在reserved字段中包括一个预设位(bit)。该预设bit为1时,表示上述第一标识。
由S301和S302的内容可知,本申请实施例中在第一flow的传输过程出现拥塞后,可以通过接收设备202向发送设备201发送第一CNP的这种方式,触发切换flowlet。这样一来,后续的报文可以按照新建立的flowlet对应的传输路径进行传输,避免一直使用存在拥塞的传输路径传输整个flowlet中的报文。
在接收设备202向发送设备201发送第一CNP,发送设备201接收到来自接收设备202的CNP后,该方法还包括:
S303、发送设备201在确定第一CNP中包括第一标识后,发送携带切换标识的第一报文。
例如,发送设备201在接收到第一CNP后,可以通过读取第一CNP的reserved字段中预设bit的值,确定第一CNP是否携带第一标识。以图7所示CNP的帧结构为例,当预设bit为1时,则说明第一CNP中携带第一标识。
其中,第一报文为第一flow中的报文。可以理解为:发送设备201在接收到携带第一标识的CNP后,在发送第一flow中的报文时,会在报文中携带一个“切换标识”。
其中,切换标识用于指示对第一flow切换flowlet。具体的,在传输网络中,网络设备接收到携带该切换标识的第一报文后,会重新建立一个flowlet,并用该新建的flowlet对应的传输路径传输第一flow所包括的报文(例如用新建的flowlet对应的传输路径传输第一报文)。
在一种实现方式中,在第一报文中,切换标识位于第一报文的IP报文头。
具体的,在一种可能的设计中,切换标识可以位于IP报文头的标志(flags)字段。示例性的,如图8所示为本申请实施例提供的一种IP报文头的结构示意图。其中,标志字段中包括R、D和M,3个bit。其中,D用于指示报文是否分片,M用于指示该报文是否为最后一个分片。另外在标志字段中,R用于承载切换标识,例如将R为1表示为上文切换标识。
在另一种实现方式中,在第一报文中,切换标识位于第一报文的以太网报文头和IP报文头之间。
示例性的,图9本本申请实施例提供的一种第一报文的部分帧结构。其中,在以太网报文头和IP报文头之间新增了用于携带切换标识的报文头。
在发送设备201发送携带切换标识的第一报文,以使得网络设备203接收到该第一报文后,该方法还可以包括:
S304、网络设备203在确定第一报文中携带切换标识后,为第一flow重新建立第一flowlet。
其中,网络设备203为第一flow重新建立第一flowlet,具体可以反映为:网络设备203重新为第一flow确定一个出端口(即第一flowlet对应的第一出端口),并记录该第一出端口与第一flow的对应关系,以便在后续过程中网络设备203接收到第一flow中的报文后,在确定该报文与先前接收报文的接收时间间隔不超出超时值δ后,将该报文作为第一flowlet中的报文,通过上述第一出端口进行转发。
示例性的,在网络设备203中记录有如下表1所示的五元组哈希表。其中,该五元组哈希表中每行对应一个flowlet。其中,哈希键值为根据flowlet的五元组信息(即入端口、源IP地址、目的IP地址、源端口和目的端口。可以理解的:flowlet的五元组,即为flowlet所在flow的五元组)进行哈希(hash)运算得到的值;出端口号,用于指示该flowlet对应的出端口;最后达到时间,用于指示最近一次接收到该flowlet的报文的时间。
表1
哈希键值 | 出端口号 | 最后达到时间 |
key1 | port1 | T1 |
key2 | port2 | T2 |
key3 | port3 | T3 |
其中,在网络设备203接收到报文(称为报文a)后,网络设备203首先对报文a的五元组信息进行哈希运算,将得到的哈希值与表1中的哈希键值对比。在命中哈希键值(例如命中key1)后,网络设备203计算报文a的接收时间和key1对应的“最后达到时间”(即T1)的差值。在确定差值小于时值δ后,网络设备203将该报文通过port1发送至网络中的下一跳节点。
进而,本申请实施例中,网络设备203为第一flow重新建立第一flowlet,可以理解为:网络设备203在表1中重新生成一行对应第一flow的表项,或者网络设备203对表1中第一flow对应的表项进行更新,以使得在表1中第一flow对应上述新确定出的第一出端口。
另外,在一种实现方式中,考虑到:网络设备203在确定第一flowlet对应的第一出端口时,可能确定出的第一出端口与在建立第一flowlet之前第一flow对应的出端口(下文称为第二出端口)相同。这样一来,就会导致第一flowlet中的报文可能依然按照之前已经确定存在拥塞的传输路径进行传输。为了降低这种情况的发生概率,本申请实施例中还包括步骤S305和S306:
S305、网络设备203确定网络设备203上第一flow可用的n个出端口。
其中,n个出端口中包括第二出端口。其中,第二出端口为建立第一flowlet之前第一flow对应的出端口。
示例性的,网络设备203可以从存储在本地的路由表中查找到能够用于传输第一flow的报文n个出端口(即第一flow可用的n个出端口)。另外,网络设备203还可以根据第一flow的五元组信息,从表1所示的五元组哈希表中读取到上一次传输第一flow的报文的出端口(即第二出端口)。
S306、网络设备203根据n个出端口中各出端口对应的拥塞分数,从n个出端口中选择第一出端口。
其中,第二出端口的拥塞分数小于其他出端口的拥塞分数。另外,拥塞分数与被选中的概率正相关。也就是说,在拥塞分数越大的出端口被选中的概率越大的情况下,第二出端口的拥塞分数小于其他出端口的拥塞分数。
或者,第二出端口的拥塞分数大于其他出端口的拥塞分数。另外,拥塞分数与被选中的概率负相关。也就是说,在拥塞分数越大的出端口被选中的概率越小的情况下,第二出端口的拥塞分数大于其他出端口的拥塞分数。
例如,网络设备203在根据n个出端口中各出端口对应的拥塞分数,从n个出端口中选择第一出端口的过程中,首先可以根据预先设定的路由策略,为n个出端口中各出端口生成一个评分。然后,再根据n个出端口中各出端口对应的拥塞分数,对n个出端口中各出端口的评分进行修正,得到各出端口修正后的评分。然后,根据各出端口修正后的评分,选择评分最高(或最低)的出端口,作为第一出端口。
示例性的,以选择评分最高的出端口作为第一出端口为例,假设根据预先设定的路由策略为n个出端口中各出端口生成一个评分X。然后按照以下公式(1)计算各出端口修正后的评分X':
X'=aX+bY 公式(1)
其中,Y为出端口对应的拥塞分数。例如,在拥塞分数越大的出端口被选中的概率越小的情况下,第二出端口对应的Y=0,其他出端口对应的Y=1。a和b为权重值,例如a=0.7,b=0.3。
在按照公式(1)计算出各出端口修正后的评分X'后,便可以确定出评分X'最高的出端口作为第一出端口。
可以理解的是,在另外一些实现方式中,也可以不按照S305-S306的方式确定第一出端口。例如,直接根据公式(1)中的评分X的高低,确定出第一出端口。当按照其他方式确定第一出端口时,本申请实施例所提供方法中也可以不执行S305和S306的内容。
在网络设备203建立第一flowlet后,该方法还可以包括:
S307、网络设备203根据第一flowlet对应的第一出端口,转发第一报文。
具体的,考虑到网络设备203所确定出的第一出端口与第二出端口(即建立第一flowlet之前第一flow对应的出端口)可能相同的这一情况(例如网络设备203在从n个出端口中确定第一出端口时,可能n个出端口都存在拥塞的情况,以便按照S305-S306的内容,还是将第二出端口确定为了第一出端口),这样一来,就会导致第一flowlet中的报文可能依然按照之前已经确定存在拥塞的传输路径进行传输。
针对上述问题,在一种实现方式中,S307具体可以包括:
S3071、网络设备203在确定第一出端口与第二出端口相同后,通过第一出端口转发携带切换标识的第一报文。
S3072、网络设备203在确定第一出端口与第二出端口不同后,通过第一出端口转发不携带切换标识的第一报文。
也就是说,本实施方式中,一方面,如果新建立的flowlet的出端口与原来的flowlet的出端口不相同,则说明第一flowlet中的报文将通过新的传输路径进行传输,从而避开了原本拥塞的传输路径。因此,网络设备203可以向下一跳设备发送不携带切换标识的报文(即S3072)。
另一方面,如果新建立的flowlet的出端口与原来的flowlet的出端口相同时,则网络设备203就将携带切换标识的第一报文通过第一出端口转发至下一跳设备(即S3071)。这样一来,下一跳设备在接收到第一报文后,就可以根据切换标识建立新的flowlet,从而通过为新的flowlet重新分配出端口,从而使得后续转发的报文避开原来的传输路径。同理,如果下一跳设备新建立的flowlet的出端口与原来的出端口相同,则也可以向它的下一跳设备发送携带切换标识的第一报文。
可以理解的是,上述S304-S307,主要是对网络设备203接收到携带切换标识的报文后的处理过程进行介绍。在实际应用过程中,网络设备203所接收的报文中也可以不携带切换标识。因此为便于理解本方法,下面对网络设备203接收到不同类型的报文(包括携带切换标识的报文和不携带切换标识的报文)后的处理过程进行详细。
具体的,如图10所示,网络设备203接收到来自发送设备201的报文后,网络设备203的处理过程包括以下S401-S407:
S401、网络设备203接收到来自发送设备201的报文(下文称为报文A)。
S402、网络设备203判断报文A中是否携带切换标识。
若是,则执行S403;若否,则执行S404。
S403、网络设备203为报文A所属的数据流重新建立flowlet。
其中,网络设备203为报文A所属的数据流重新建立flowlet的具体实现过程,可参照上文S304的内容。另外,网络设备203为重新建立的flowlet确定出端口的具体实现过程,可参照上文S305-S306的内容。
在网络设备203为报文A所属的数据流重新建立flowlet后,与上文S307同理,网络设备203通过新建立的flowlet的出端口转发报文A。
S404、网络设备203对报文A的五元组信息进行哈希运算,得到报文A对应的哈希值。
S405、网络设备203将报文A对应的哈希值与网络设备203所记录的五元组哈希表中的哈希键值进行对比,判断报文A对应的哈希值是否命中五元组哈希表中的哈希键值,并且报文A的接收时间与五元组哈希表中的最后达到时间之差是否超过超时值δ。
其中,网络设备203所记录的五元组哈希表可参照表1所示。
其中,若报文A对应的哈希值命中五元组哈希表中的哈希键值,并且报文A的接收时间与五元组哈希表中的最后达到时间之差不超过超时值δ,则执行S406。否则,执行S407。
S406、网络设备203按照五元组哈希表中记录的该数据流的上一个出端口转发报文A,并更新五元组哈希表中的最后达到时间。
具体的,将五元组哈希表中的最后达到时间更新为报文A的达到时间。
S407、网络设备203为报文A所属的数据流重新建立flowlet。
具体的,在网络设备203为报文A所属的数据流重新建立flowlet后,与上文S307同理,网络设备203通过新建立的flowlet的出端口转发报文A。
在网络设备203通过第一出端口对第一报文进行转发(即S307)后,传输网络中相关的传输节点会依次转发第一报文,直至将第一报文转发至接收设备202,从而完成第一报文的传输。同理,第一flow中的其他报文的传输也可以参照上文S301-S307的内容,重复之处不做赘述。
另外,在一些应用场景中,本申请实施例所提供的通信方法还可以与DCQCN技术中通过降低数据流的发送速率从而缓解拥塞的方法相结合。
进而,如图11所示,本申请实施例所提供通信方法还可以包括:
S308、接收设备202在确定第一flow的拥塞情况满足第二预设条件后,向发送设备201发送第二CNP。
其中,第二CNP中包括第二标识。第二标识用于指示降低第一flow的发送速率。
也就是说,本方法中,一方面,当第一flow的拥塞情况满足第一预设条件后,接收设备202向发送设备201发送携带第一标识的第一CNP,以便发送设备201在接收到第一CNP后,触发对第一flow切换flowlet的过程(即图6中S303-S307);另一方面,当第一flow的拥塞情况满足第二预设条件后,接收设备202向发送设备201发送携带第二标识的第二CNP,以便发送设备201在接收到第二CNP后,降低第一flow的发送速率。这样一来,可以达到根据当前网络的实际情况,选择合适的方式(切换flowlet或降低发送速率)来应对拥塞的效果。
在一种可能的设计中,考虑到当检测到第一flow的传输路径上存在拥塞时,此时其他的传输路径上可能存在空闲带宽,因此可以先采用切换flowlet的方式,来改变第一flow的传输路径。在切换flowlet后,如果拥塞情况得到缓解,则可以继续正常传输第一flow;如果在切换flowlet后,依然存在拥塞,则说明第一flow对应的多条传输路径都可能存在拥塞,那么,此时可以通过在发送端降低第一flow的发送速率的方式,来缓解拥塞。
出于上述考虑,本设计中,第一预设条件包括:接收设备202当前接收到的报文(下文称为报文B)的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数小于阈值。
第二预设条件包括:接收设备202当前接收到的报文B的传输过程存在拥塞,并且确定第一flow上连续出现CNP的次数大于等于阈值。
其中,阈值的大小可以根据实际需要设置,本申请实施例中可以不做限制。
示例性的,如图12所示,接收设备202在接收到第一flow中的报文B后的处理过程包括:
S501、接收设备202接收第一flow中的报文B。
S502、接收设备202确定报文B的传输过程存在拥塞。
例如,当报文B的传输过程存在拥塞时,传输网络中的交换机会在报文B中添加拥塞标识。进而,接收设备202可以根据报文B中是否携带拥塞标识,来判断报文B的传输过程存在拥塞。
S503、接收设备202统计第一flow上连续出现CNP的次数。
其中,第一flow上连续出现CNP的次数的具体内容可以根据实际需要设定。例如,第一flow上连续出现CNP的次数,具体可以表现为:在连续接收到传输过程存在拥塞的报文时,接收设备202向发送设备201发送CNP的次数。再例如,第一flow上连续出现CNP的次数,具体可以表现为:在预设时间段内接收设备202向发送设备201发送CNP的次数。
S504、接收设备202判断第一flow上连续出现CNP的次数是否小于阈值。
若是,则执行S505;若否,则执行S506。
S505、接收设备202向发送设备201发送第一CNP。
也就是,接收设备202在确定第一flow的传输过程存在拥塞,并且第一flow的拥塞情况满足第一预设条件后,向发送设备发送第一CNP。
S506、接收设备202向发送设备201发送第二CNP。
也就是,接收设备202在确定第一flow的拥塞情况满足第二预设条件后,向发送设备201发送第二CNP。
另外,在一种可能的设计中,如图11中,在接收设备202向发送设备201发送CNP后,该方法还可以包括:
S309、发送设备201在确定接收到的CNP中包括第二标识后,降低第一flow中的报文的发送速率。
示例性的,如图13所示,发送设备201在接收到CNP后的处理过程包括:
S601、发送设备201接收来自接收设备203的CNP。
S602、发送设备201检测CNP中是否携带第一标识或第二标识。
若携带第一标识,则执行S603;若携带第二标识,则执行S604。
具体的,例如图7所示,在CNP中可以利用保留字段中的一个bit(下文称为目标bit)来承载第一标识或第二标识。其中,1表示第一标识,0表示第二标识。
则S602具体包括:发送设备201判断保留字段中的目标bit是否为1。若是,则执行S603;若否,则执行S604。
S603、发送设备201发送携带切换标识的报文。
其中,S603的具体实现过程可参照上文中S303的内容。
S604、发送设备201降低上文CNP所对应的数据流的发送速率。
也就是说,本方法中,一方面,当发送设备201在接收到携带第一标识的CNP(即上文中的第一CNP)后,可以通过向网络设备203发送携带切换标识的报文的方式,触发对第一flow切换flowlet的过程(即图6中S303-S307);另一方面,当发送设备201在接收到携带第二标识的CNP(即上文中的第二CNP)后,还可以通过降低第一flow的报文的发送速率,从而缓解拥塞。
另外,本实施例还提供一种通信装置,该通信装置能够用于执行本实施例上述通信方法中的部分或全部步骤。
可以理解的是,为了实现上述通信方法中功能,通信装置包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本实施例中描述的各示例的单元及方法步骤,本实施例所提供技术方案能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图14为本实施例提供的一种通信装置的结构示意图。该通信装置70包括接收单元701、、发送单元702和处理单元703中一项或多项。
在一种实现方式中,该通信装置可以用于实现上述图6、图11或图12所述的方法中接收设备202的部分或全部步骤的功能。
当通信装置用于实现上述图6、图11或图12所述的方法中接收设备202的部分或全部步骤的功能时:
接收单元701,用于接收来自发送设备的第一数据流flow;
发送单元702,用于在确定所述第一flow的传输过程存在拥塞并且所述第一flow的拥塞情况满足第一预设条件后,向所述发送设备发送第一拥塞通知报文CNP。所述第一CNP中包括用于指示对所述第一flow切换流片flowlet的第一标识。
可选的,所述发送单元702,还用于在确定所述第一flow的拥塞情况满足第二预设条件后,向所述发送设备发送第二CNP;所述第二CNP中包括第二标识,所述第二标识用于指示降低所述第一flow的发送速率。
可选的,第一预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数小于阈值。
所述第二预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数大于等于所述阈值。
在一种实现方式中,该通信装置可以用于实现上述图6、图11或图13所述的方法中发送设备201的部分或全部步骤的功能。
当通信装置用于实现上述图6、图11或图13所述的方法中发送设备201的部分或全部步骤的功能时:
接收单元701,用于接收来自接收设备的拥塞通知报文CNP;所述接收设备为接收所述发送设备发送的第一数据流flow的设备。
发送单元702,用于在确定所述CNP中包括第一标识后,发送携带切换标识的第一报文;所述第一报文为所述第一flow中的报文,所述切换标识用于指示对所述第一flow切换流片flowlet。
可选的,处理单元703,用于在确定所述CNP中包括第二标识后,降低所述第一flow中的报文的发送速率。
可选的,切换标识位于所述第一报文的IP报文头,或者,所述切换标识位于所述第一报文的以太网报文头和IP报文头之间。
在一种实现方式中,该通信装置可以用于实现上述图6、图10或图11所述的方法中网络设备203的部分或全部步骤的功能。
当通信装置用于实现上述图6、图10或图11所述的方法中网络设备203的部分或全部步骤的功能时:
接收单元701,用于接收来自发送设备的第一报文;所述第一报文为第一数据流flow中的报文。
处理单元703,用于在确定所述第一报文中携带切换标识后,为第一flow重新建立第一流片flowlet。
发送单元702,用于根据所述第一flowlet对应的第一出端口,转发所述第一报文。
可选的,处理单元703,还用于确定所述网络设备上所述第一flow可用的n个出端口;所述n个出端口中包括第二出端口,所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口。
所述处理单元703,还用于根据所述n个出端口中各出端口对应的拥塞分数,从所述n个出端口中选择所述第一出端口;其中,所述第二出端口的拥塞分数小于所述n个出端口中的其他出端口的拥塞分数,所述拥塞分数与被选中的概率正相关;或者,所述第二出端口的拥塞分数大于所述n个出端口中的其他出端口,所述拥塞分数与被选中的概率负相关。
可选的,所述发送单元702,用于根据所述第一flowlet对应的第一出端口,转发所述第一报文,包括:
所述发送单元702,用于在确定所述第一出端口与第二出端口相同后,通过所述第一出端口转发携带所述切换标识的所述第一报文;所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口。
所述发送单元702,用于在确定所述第一出端口与第二出端口不同后,通过所述第一出端口转发不携带所述切换标识的所述第一报文。
有关上述接收单元701、发送单元702和处理单元703更详细的描述,可以直接参考图6-图13中所示的方法中相关描述,这里不再赘述。
图15为本申请提供的另一种通信装置的结构示意图。该通信装置80用于实现本申请所提供的通信方法。具体的,该通信装置可以用于实现上述通信方法中发送设备201、接收设备202或网络设备203的部分或全部步骤。其中,该通信装置80包括:
处理器801用于执行本申请所提供的通信方法。
具体的,处理器801可以包含通用中央处理器(central processing unit,CPU)和存储器,处理器801还可以为微处理器、现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)或者特定应用集成电路(application-specific integrated circuit,ASIC)等。在处理器801包含CPU和存储器的场景中,CPU执行存储器中存储的计算机指令,用于执行本申请所提供的通信方法。
另外,该通信装置80还可以包括:存储器802。存储器802中存储有计算机指令,处理器701执行存储器中存储的计算机指令,用于执行本申请所提供的通信方法。
具体的,存储器802可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的程序代码并能够由计算机存取的任何其他介质,但不限于此。
另外,该通信装置80还可以包括:接口803。接口803可以用于接收和发送数据。接口802可以为通信接口或收发器等。
另外,通信装置80还可以包括通信线路804。例如,通信线路804可以为数据总线,用于在上述组件之间传输信息。
关于上述通信装置80更详细的描述可以直接参考上述通信方法中相关描述,这里不再赘述。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,SSD。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上,其它量词与之类似。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。再者,至少一个(at least one of).......”意味着后续关联对象中的一个或任意组合,例如“A、B和C中的至少一个”包括A,B,C,AB,AC,BC,或ABC。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
Claims (21)
1.一种通信方法,其特征在于,包括:
接收设备接收来自发送设备的第一数据流flow;
所述接收设备在确定所述第一flow的传输过程存在拥塞并且所述第一flow的拥塞情况满足第一预设条件后,向所述发送设备发送第一拥塞通知报文CNP;所述第一CNP中包括用于指示对所述第一flow切换流片flowlet的第一标识。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述接收设备在确定所述第一flow的拥塞情况满足第二预设条件后,向所述发送设备发送第二CNP;所述第二CNP中包括第二标识,所述第二标识用于指示降低所述第一flow的发送速率。
3.根据权利要求2所述的方法,其特征在于,所述第一预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数小于阈值;
所述第二预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数大于等于所述阈值。
4.一种通信方法,其特征在于,包括:
发送设备接收来自接收设备的拥塞通知报文CNP;所述接收设备为接收所述发送设备发送的第一数据流flow的设备;
所述发送设备在确定所述CNP中包括第一标识后,发送携带切换标识的第一报文;所述第一报文为所述第一flow中的报文,所述切换标识用于指示对所述第一flow切换流片flowlet。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述发送设备在确定所述CNP中包括第二标识后,降低所述第一flow中的报文的发送速率。
6.根据权利要求4或5所述的方法,其特征在于,所述切换标识位于所述第一报文的IP报文头;
或者,所述切换标识位于所述第一报文的以太网报文头和IP报文头之间。
7.一种通信方法,其特征在于,包括:
网络设备接收来自发送设备的第一报文;所述第一报文为第一数据流flow中的报文;
所述网络设备在确定所述第一报文中携带切换标识后,为第一flow重新建立第一流片flowlet;
所述网络设备根据所述第一flowlet对应的第一出端口,转发所述第一报文。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述网络设备确定所述网络设备上所述第一flow可用的n个出端口;所述n个出端口中包括第二出端口,所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口;
所述网络设备根据所述n个出端口中各出端口对应的拥塞分数,从所述n个出端口中选择所述第一出端口;其中,所述第二出端口的拥塞分数小于所述n个出端口中的其他出端口的拥塞分数,所述拥塞分数与被选中的概率正相关;或者,所述第二出端口的拥塞分数大于所述n个出端口中的其他出端口,所述拥塞分数与被选中的概率负相关。
9.根据权利要求7或8所述的方法,其特征在于,所述网络设备根据所述第一flowlet对应的第一出端口,转发所述第一报文,包括:
所述网络设备在确定所述第一出端口与第二出端口相同后,通过所述第一出端口转发携带所述切换标识的所述第一报文;所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口;
所述网络设备在确定所述第一出端口与第二出端口不同后,通过所述第一出端口转发不携带所述切换标识的所述第一报文。
10.一种通信装置,其特征在于,应用于接收设备,包括:
接收单元,用于接收来自发送设备的第一数据流flow;
发送单元,用于在确定所述第一flow的传输过程存在拥塞并且所述第一flow的拥塞情况满足第一预设条件后,向所述发送设备发送第一拥塞通知报文CNP;所述第一CNP中包括用于指示对所述第一flow切换流片flowlet的第一标识。
11.根据权利要求10所述的通信装置,其特征在于,
所述发送单元,还用于在确定所述第一flow的拥塞情况满足第二预设条件后,向所述发送设备发送第二CNP;所述第二CNP中包括第二标识,所述第二标识用于指示降低所述第一flow的发送速率。
12.根据权利要求11所述的通信装置,其特征在于,所述第一预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数小于阈值;
所述第二预设条件包括:所述接收设备当前接收到的第一报文的传输过程存在拥塞,并且确定所述第一flow上连续出现CNP的次数大于等于所述阈值。
13.一种通信装置,其特征在于,应用于发送设备,包括:
接收单元,用于接收来自接收设备的拥塞通知报文CNP;所述接收设备为接收所述发送设备发送的第一数据流flow的设备;
发送单元,用于在确定所述CNP中包括第一标识后,发送携带切换标识的第一报文;所述第一报文为所述第一flow中的报文,所述切换标识用于指示对所述第一flow切换流片flowlet。
14.根据权利要求13所述的通信装置,其特征在于,还包括:
处理单元,用于在确定所述CNP中包括第二标识后,降低所述第一flow中的报文的发送速率。
15.根据权利要求13或14所述的通信装置,其特征在于,所述切换标识位于所述第一报文的IP报文头;
或者,所述切换标识位于所述第一报文的以太网报文头和IP报文头之间。
16.一种通信装置,其特征在于,应用于网络设备,包括:
接收单元,用于接收来自发送设备的第一报文;所述第一报文为第一数据流flow中的报文;
处理单元,用于在确定所述第一报文中携带切换标识后,为第一flow重新建立第一流片flowlet;
发送单元,用于根据所述第一flowlet对应的第一出端口,转发所述第一报文。
17.根据权利要求16所述的通信装置,其特征在于,所述处理单元,还用于确定所述网络设备上所述第一flow可用的n个出端口;所述n个出端口中包括第二出端口,所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口;
所述处理单元,还用于根据所述n个出端口中各出端口对应的拥塞分数,从所述n个出端口中选择所述第一出端口;其中,所述第二出端口的拥塞分数小于所述n个出端口中的其他出端口的拥塞分数,所述拥塞分数与被选中的概率正相关;或者,所述第二出端口的拥塞分数大于所述n个出端口中的其他出端口,所述拥塞分数与被选中的概率负相关。
18.根据权利要求16或17所述的通信装置,其特征在于,所述发送单元,用于根据所述第一flowlet对应的第一出端口,转发所述第一报文,包括:
所述发送单元,用于在确定所述第一出端口与第二出端口相同后,通过所述第一出端口转发携带所述切换标识的所述第一报文;所述第二出端口为在建立所述第一flowlet之前所述第一flow对应的出端口;
所述发送单元,用于在确定所述第一出端口与第二出端口不同后,通过所述第一出端口转发不携带所述切换标识的所述第一报文。
19.一种通信装置,其特征在于,包括处理器和接口,所述处理器通过所述接口接收或发送数据,所述处理器用于实现如权利要求1-9中任一项所述的方法。
20.一种通信系统,其特征在于,包括发送设备、接收设备以及网络设备;所述发送设备用于实现如权利要求1-3任一项所述的方法,所述接收设备用于实现如权利要求4-6任一项所述的方法,所述网络设备用于实现如权利要求7-9任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211239735.0A CN117914792A (zh) | 2022-10-11 | 2022-10-11 | 通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211239735.0A CN117914792A (zh) | 2022-10-11 | 2022-10-11 | 通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117914792A true CN117914792A (zh) | 2024-04-19 |
Family
ID=90696458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211239735.0A Pending CN117914792A (zh) | 2022-10-11 | 2022-10-11 | 通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117914792A (zh) |
-
2022
- 2022-10-11 CN CN202211239735.0A patent/CN117914792A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11374870B2 (en) | Network congestion notification method, agent node, and computer device | |
CN107948076B (zh) | 一种转发报文的方法及装置 | |
US10361954B2 (en) | Method and apparatus for processing modified packet | |
CN110692268B (zh) | 混合网状网络中的岛拓扑和路由 | |
Lal et al. | Distributed resource allocation for DS-CDMA-based multimedia ad hoc wireless LANs | |
US20110063979A1 (en) | Network traffic management | |
US9655000B2 (en) | Optimized quality of service transport architecture to compensate for SINR variations | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
EP3972224A2 (en) | Packet forwarding method and related apparatus | |
WO2016090978A1 (zh) | 一种流量切换方法和装置 | |
CN108123878B (zh) | 一种路由方法、装置及数据转发设备 | |
US20240223495A1 (en) | Packet forwarding method and apparatus, and dragonfly network | |
WO2022078063A1 (zh) | 拥塞信息收集方法、确定最优路径方法、网络交换机 | |
CN112312481B (zh) | 一种mec与多运营商核心网的通信方法及系统 | |
Soni et al. | A multipath location based hybrid DMR protocol in MANET | |
CN113612698A (zh) | 一种数据包发送方法及装置 | |
CN113285877B (zh) | 一种报文转发的控制方法及相关装置 | |
CN111262792B (zh) | 报文转发方法、装置、网络设备及存储介质 | |
US11240164B2 (en) | Method for obtaining path information of data packet and device | |
CN114095448A (zh) | 一种拥塞流的处理方法及设备 | |
CN117914792A (zh) | 通信方法及装置 | |
Motegi et al. | AODV-based multipath routing protocol for mobile ad hoc networks | |
Rifquddin | Performance of AOMDV routing protocol under rushing and flooding attacks in MANET | |
Potti et al. | A packet priority approach to mitigate starvation in wireless mesh network with multimedia traffic | |
CN101719878B (zh) | 优化路由通告与选路的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |