本技术涉及通信,尤其涉及一种拥塞控制方法以及相关设备。
背景技术:
1、数据中心网络用户的需求快速增长,对数据传输提出了更高的性能要求,如高吞吐,低时延。为了实现数据的高性能转发,发送端设备需要及时感知传输链路的拥塞情况,并做出相应的调整。
2、数据中心量化拥塞通知(data center quantized congestion notification,dcqcn)是目前得到广泛应用的一种拥塞控制方案。dcqcn方案中网络设备在转发报文时判断是否拥塞,若拥塞则对该报文标记显示拥塞通知(explicit congestion notification,ecn)。接收端设备收到带ecn标记的报文时,向发送端设备回复拥塞通知报文(congestionnotification packet,cnp),发送端设备收到cnp报文后则降低数据流的传输速率。
3、除了dcqcn,目前还提出了一种更加主动的拥塞控制方案。该方案中,报文经过的每一跳网络设备都会在报文中添加遥测(telemetry)信息,telemetry信息包括链路带宽、该网络设备的缓存占用量、该报文的发送速率、总订购带宽和总发送窗口大小。接收端设备收到报文后,将报文中携带的telemetry信息反馈给报文的发送端设备。发送端设备对信息进行计算,并决定是否更换路径,以及调整数据流的发送速率。
4、在dcqcn方案中,ecn标记所表示的拥塞信息过于模糊、单一。例如,报文经过了多跳网络设备的转发,在其中三跳网络设备上都遭遇了拥塞排队的情况,但是接收端设备收到带ecn标记的报文后只能知道传输过程发生了拥塞,而不能具体知道有多少跳设备存在拥塞。而另一种方案中,报文中则是携带了过于复杂的信息,发送端设备进行计算时需要消耗大量的处理资源,并且会带来额外的带宽开销。
技术实现思路
1、本技术提供了一种拥塞控制方法以及相关设备,可以由网络设备对报文转发过程中的拥塞信息进行整合。
2、本技术第一方面提供一种拥塞控制方法,该方法包括:网络设备接收来自于发送端设备的第一报文;网络设备确定第一报文在本跳转发的拥塞情况;网络设备根据第一报文在本跳转发时的拥塞情况对第一报文携带的第一拥塞信息进行整合,得到第二拥塞信息,第一拥塞信息指示了第一报文从发送端设备发送至网络设备的拥塞情况;网络设备将第二拥塞信息添加至第一报文,得到第二报文;网络设备将第二报文向接收端设备转发,以使得接收端设备将第二拥塞信息发送至发送端设备。
3、其中,第一拥塞信息不包括第一报文在该网络设备进行转发时的拥塞情况,而是发送端设备至网络设备间每一跳设备的拥塞情况。
4、本技术第一方面中,网络设备可以对第一报文在转发过程中的拥塞信息进行整合,压缩了拥塞信息所占用的带宽,从而大大节省了带宽开销和发送端设备的计算资源。
5、在第一方面的一种可能的实现方式中,上述步骤:网络设备将第二拥塞信息添加至第一报文,包括:网络设备将第二拥塞信息添加至第一报文的差分服务代码点dscp字段。
6、网络设备使用第一报文互联网协议(internet protocol,ip)头中的差分服务代码点(differentiated services code point,dscp)字段承载网络设备的拥塞信息。可以理解的是,第二拥塞信息由网络设备对第一拥塞信息进行整合而得到,因此第一拥塞信息也承载于dscp字段。
7、该种可能的实现方式中,网络设备使用已有的报文头携带整合的拥塞信息,无需新增协议类型,使方案更易于实现。
8、在第一方面的一种可能的实现方式中,上述步骤:网络设备确定第一报文在本跳转发的拥塞情况,包括:网络设备获取第一报文在本跳转发的转发时延;若转发时延大于预设阈值,则网络设备确定第一报文在本跳转发时拥塞。
9、网络设备获取第一报文在本跳进行转发时的转发时延。具体的,当第一报文经过调度出队后,管线(pipeline)可以根据第一报文的出队时间与第一报文进网络设备芯片的时戳进行比较得到第一报文在本跳设备的转发时延。若该转发时延大于预设阈值,则网络设备判断第一报文在本跳转发时遭遇了拥塞。
10、在第一方面的一种可能的实现方式中,上述步骤:网络设备确定第一报文在本跳转发的拥塞情况,包括:网络设备获取第一报文在本跳转发的转发时延以及缓存占用量;网络设备对转发时延以及缓存占用量进行加权计算,得到目标值;若目标值大于预设阈值,则网络设备确定第一报文在本跳转发时拥塞。
11、在第一方面的一种可能的实现方式中,第一拥塞信息指示了第一报文从发送端设备发送至网络设备所经历的拥塞跳数,上述步骤:网络设备根据第一报文在本跳转发时的拥塞情况对第一报文携带的第一拥塞信息进行整合,包括:若网络设备确定第一报文在本跳转发时拥塞,则网络设备对拥塞跳数进行累加处理。
12、示例性的,第一报文从发送端设备发出后经过三跳设备到达网络设备,其中在两跳设备遭遇了拥塞,则第一拥塞信息指示经历两跳拥塞。
13、若网络设备判断第一报文在本跳转发时遭遇了拥塞,则网络设备基于此对第一拥塞信息进行整合,即继续累加一次拥塞跳数,得到第二拥塞信息。也就是说,第二拥塞信息中指示第一报文经历了三跳拥塞。若网络设备判断第一报文在本跳转发时未遭遇拥塞,则网络设备不对第一拥塞信息作处理,此时第二拥塞信息与第一拥塞信息相同。
14、该种可能的方案中,第二拥塞信息中携带了第一报文经历的拥塞跳数,从而通过第二拥塞信息,发送端设备可以比较出不同链路中存在拥塞的设备数量,进而可以选出更为优选的传输路径。
15、在第一方面的一种可能的实现方式中,第一拥塞信息指示了第一报文从发送端设备发送至网络设备的转发时延峰值,上述步骤:网络设备根据第一报文在本跳转发时的拥塞情况对第一报文携带的第一拥塞信息进行整合,包括:若转发时延大于转发时延峰值,则网络设备将转发时延峰值变更为转发时延。
16、示例性的,第一报文从发送端设备发出后经过三跳设备到达网络设备,其中三跳设备的转发时延分别为600微秒、700微秒和800微秒,则第一拥塞信息指示的信息为800微秒。
17、网络设备将第一报文在本跳进行转发时的转发时延,与第一拥塞信息指示的转发时延进行对比,若第一报文在本跳进行转发时的转发时延大于第一拥塞信息指示的转发时延,则网络设备将第一拥塞信息指示的转发时延变更为第一报文在本跳进行转发时的转发时延,得到第二拥塞信息。若第一报文在本跳进行转发时的转发时延小于或者等于第一拥塞信息指示的转发时延,则网络设备不对第一拥塞信息作处理,此时第二拥塞信息与第一拥塞信息相同。
18、该种可能的方案中,第二拥塞信息携带了第一报文所经历的转发时延峰值。通过第二拥塞信息,发送端设备可以找出转发时延较低的传输链路,从而实现数据的高性能转发。
19、在第一方面的一种可能的实现方式中,上述步骤:网络设备根据第一报文在本跳转发时的拥塞情况对第一报文携带的第一拥塞信息进行整合,包括:网络设备将第一报文在本跳转发时的拥塞情况与第一拥塞信息进行加权计算。
20、网络设备按照跟端侧设备的协议方式,将拥塞情况划分为不同的档位值。网络设备基于拥塞情况和档位值的映射规则,将第一报文在本跳转发时的拥塞情况映射为相应的档位值,再与第一拥塞信息中指示的历史档位值进行加权计算,得到新的加权值。其中,第一拥塞信息指示的历史档位值为发送端设备至网络设备间的每一跳设备,先后对档位值进行加权计算而得到。网络设备将第一拥塞信息中指示的历史档位值变更为新的加权值,得到第二拥塞信息。
21、该种可能的方案中,通过将拥塞情况映射为档位值,再对档位值进行加权计算得到的第二拥塞信息,可以更全面的体现传输链路的质量优劣,从而发送端设备可以更为准确的选择出优选传输路径。
22、在第一方面的一种可能的实现方式中,第一报文携带标识信息,标识信息用于指示第一报文不属于业务数据流,业务数据流用于携带业务信息。
23、发送端设备可以是在携带业务信息的业务数据流发送之前,先发送第一报文,即第一报文只作为探测报文,第一报文中不携带业务信息,从而可以在业务数据流发送之前先选出状况更为良好的链路。
24、本技术第二方面提供一种拥塞控制方法,该方法包括:接收端设备接收来自于网络设备的第二报文,第二报文由发送端设备发出,第二报文携带第二拥塞信息,第二拥塞信息为网络设备对第一拥塞信息进行整合得到,第一拥塞信息指示了第二报文从发送端设备发送至网络设备的拥塞情况;接收端设备将第二拥塞信息发送至发送端设备,以使得发送端设备基于第二拥塞信息调整业务数据流的发送策略,业务数据流用于携带业务信息。
25、本技术第二方面中,接收端设备将第二拥塞信息反馈回发送端设备,使得发送端设备可以基于第二拥塞信息调整业务数据流的发送策略,提升了方案的完整性。
26、在第二方面的一种可能的实现方式中,上述步骤:接收端设备将第二拥塞信息发送至发送端设备,包括:接收端设备将第二拥塞信息携带于第二报文的确认字符(acknowledge character,ack)中发送至发送端设备;或者,接收端设备将第二拥塞信息携带于拥塞通知报文(congestion notification packet,cnp)中发送至发送端设备。
27、该种可能的实现方式中,接收端设备可以将第二拥塞信息携带于已有的报文中,无需新增协议类型,使方案更易于实现。
28、本技术第三方面提供一种网络设备,包括接收单元、确定单元、整合单元、添加单元和转发单元。接收单元,用于接收来自于发送端设备的第一报文;确定单元,用于确定第一报文在本跳转发的拥塞情况;整合单元,用于根据第一报文在本跳转发时的拥塞情况对第一报文携带的第一拥塞信息进行整合,得到第二拥塞信息,第一拥塞信息指示了第一报文从发送端设备发送至网络设备的拥塞情况;添加单元,用于将第二拥塞信息添加至第一报文,得到第二报文;转发单元,用于将第二报文向接收端设备转发,以使得接收端设备将第二拥塞信息发送至发送端设备。
29、在第三方面的一种可能的实现方式中,添加单元具体用于将第二拥塞信息添加至第一报文的差分服务代码点dscp字段。
30、在第三方面的一种可能的实现方式中,确定单元具体用于获取第一报文在本跳转发的转发时延;若转发时延大于预设阈值,则确定第一报文在本跳转发时拥塞。
31、在第三方面的一种可能的实现方式中,确定单元具体用于获取第一报文在本跳转发的转发时延以及缓存占用量;对转发时延以及缓存占用量进行加权计算,得到目标值;若目标值大于预设阈值,则确定第一报文在本跳转发时拥塞。
32、在第三方面的一种可能的实现方式中,第一拥塞信息指示了第一报文从发送端设备发送至网络设备所经历的拥塞跳数,整合单元具体用于在确定第一报文在本跳转发时拥塞的情况下,对拥塞跳数进行累加处理。
33、在第三方面的一种可能的实现方式中,第一拥塞信息指示了第一报文从发送端设备发送至网络设备的转发时延峰值,整合单元具体用于在转发时延大于转发时延峰值的情况下,将转发时延峰值变更为转发时延。
34、在第三方面的一种可能的实现方式中,整合单元具体用于将第一报文在本跳转发时的拥塞情况与第一拥塞信息进行加权计算。
35、在第三方面的一种可能的实现方式中,第一报文携带标识信息,标识信息用于指示第一报文不属于业务数据流,业务数据流用于携带业务信息。
36、本技术第三方面提供的网络设备用于执行第一方面或者第一方面的任意一种可能的实现方式中所述的方法。
37、本技术第四方面提供一种接收端设备,包括接收单元和发送单元。接收单元,用于接收来自于网络设备的第二报文,第二报文由发送端设备发出,第二拥塞信息为网络设备对第一拥塞信息进行整合得到,第一拥塞信息指示了第二报文从发送端设备发送至网络设备的拥塞情况;发送单元,用于将第二拥塞信息发送至发送端设备,以使得发送端设备基于第二拥塞信息调整业务数据流的发送策略,业务数据流用于携带业务信息。
38、在第四方面的一种可能的实现方式中,发送单元具体用于将第二拥塞信息携带于第二报文的确认字符ack中发送至发送端设备;或者,将第二拥塞信息携带于拥塞通知报文cnp中发送至发送端设备。
39、本技术第四方面提供的接收端设备用于执行第二方面或者第二方面的任意一种可能的实现方式中所述的方法。
40、本技术第五方面提供一种网络设备,包括处理器和存储器。所述存储器用于存储指令,所述处理器用于获取所述存储器存储的指令,以执行第一方面或者第一方面的任意一种可能的实现方式中所述的方法。
41、本技术第六方面提供一种接收端设备,包括处理器和存储器。所述存储器用于存储指令,所述处理器用于获取所述存储器存储的指令,以执行第二方面或者第二方面的任意一种可能的实现方式中所述的方法。
42、本技术第七方面提供一种计算机可读存储介质,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面或者第一方面的任意一种可能的实现方式中所述的方法,或者执行第二方面或者第二方面的任意一种可能的实现方式中所述的方法。
43、本技术第八方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或者第一方面的任意一种可能的实现方式中所述的方法,或者执行第二方面或者第二方面的任意一种可能的实现方式中所述的方法。
44、本技术第九方面提供一种芯片系统,所述芯片系统包括至少一个处理器和通信接口,所述通信接口和所述至少一个处理器通过线路互联,所述至少一个处理器用于运行计算机程序或指令,以执行第一方面或者第一方面的任意一种可能的实现方式中所述的方法,或者执行第二方面或者第二方面的任意一种可能的实现方式中所述的方法。