一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

流量转发方法、装置及存储介质与流程

2022-04-02 02:30:07 来源:中国专利 TAG:


1.本技术实施例涉及通信领域,特别涉及一种流量转发方法、装置及存储介质。


背景技术:

2.通过在两个转发设备之间建立链路聚合组,能够提供更高的通信带宽和通信可靠性。其中,链路聚合组是将两个转发设备之间的多条通信链路进行捆绑得到。相关技术中,两个转发设备通过互相协商将链路聚合组中的m条通信链路作为活动链路,剩余的n条通信链路则作为非活动链路。非活动链路是活动链路的备份链路。当活动链路正常时,通过活动链路进行流量转发,当活动链路故障时,能够从非活动链路中选择一条链路来替换故障链路。其中,在通过活动链路进行流量转发时,有可能因为流量突发、负载分担不均或者是网络中流量增多而导致某条活动链路出现拥塞,在这种情况下,通过该条活动链路继续进行流量转发将有可能出现丢包问题。


技术实现要素:

3.本技术实施例提供了一种流量转发方法、装置及存储介质,能够降低活动链路处于拥塞状态时的丢包率。所述技术方案如下:
4.第一方面,提供了一种流量转发方法,所述方法包括:当检测到第一活动链路处于拥塞状态时,将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路,所述第一活动链路为所述链路聚合组包括的m条活动链路中的任一条活动链路,所述m和所述n均为大于0的整数;通过所述第一临时活动链路分担转发待通过所述第一活动链路转发的目标流量。
5.在本技术实施例中,在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。
6.在一种实现方式中,检测第一活动链路是否处于拥塞状态的实现过程为:获取所述第一活动链路的本端接口的发包速率;如果所述第一活动链路的发包速率不小于拥塞阈值的速率,则确定所述第一活动链路处于拥塞状态,所述拥塞阈值小于所述第一活动链路的接口带宽。
7.其中,当本技术实施例应用于链路聚合组对应的两个转发设备中任一转发设备时,也即,当两个转发设备中的每个转发设备均能够通过本技术实施例提供的方法来检测拥塞状态以触发链路切换时,每个转发设备均可以通过检测活动链路在自身上的接口是否处于拥塞状态来判断相应活动链路是否处于拥塞状态。
8.在一种实现方式中,在通过所述第一临时活动链路分担转发待通过所述第一活动链路转发的目标流量之后,获取所述第一活动链路的本端接口和所述第一临时活动链路的
本端接口的总发包速率;如果所述总发包速率小于解除拥塞阈值,则将所述第一临时活动链路切换为非活动链路。
9.在本技术实施例中,当本技术实施例应用于链路聚合组对应的两个转发设备中任一转发设备时,任一转发设备在通过第一临时活动链路分担转发待通过所述第一活动链路转发的目标流量的过程中,可以通过检测第一活动链路的拥塞状态是否已解除来决定是否将第一临时活动链路重新切换为非活动链路,以此来保证出现故障链路时能够有非活动链路作为备份链路来替换。
10.在一种实现方式中,检测第一活动链路是否处于拥塞状态的实现过程为:获取所述第一活动链路的本端接口的发包速率和收包速率;如果所述第一活动链路的本端接口的发包速率和收包速率中存在不小于拥塞阈值的目标速率,则确定所述第一活动链路处于拥塞状态,所述拥塞阈值小于所述第一活动链路的接口带宽。
11.当本技术实施例应用于链路聚合组中的两个转发设备中的主动端时,作为主动端的转发设备通过将第一活动链路的本端接口的发包速率和收包速率分别与拥塞阈值进行比较,来判断第一活动链路的本端接口和对端接口是否处于拥塞状态,进而判断第一活动链路是否处于拥塞状态。
12.在一种实现方式中,在通过所述第一临时活动链路分担转发待通过所述第一活动链路转发的目标流量之后,当所述目标速率为第一活动链路的本端接口的发包速率时,获取第一活动链路的本端接口和所述第一临时活动链路的本端接口的总发包速率;如果所述总发包速率小于解除拥塞阈值,则将所述第一临时活动链路切换为非活动链路。
13.在本技术实施例中,当本技术实施例应用于链路聚合组对应的两个转发设备中的主动端,且作为主动端的转发设备是在检测到第一活动链路的本端接口处于拥塞状态的情况下确定第一活动链路处于拥塞状态,则该转发设备在通过第一临时活动链路辅助第一活动链路转发目标流量的过程中,可以检测第一活动链路的本端接口是否已解除拥塞状态,以此来决定是否将第一临时活动链路切换为非活动链路。
14.在一种实现方式中,在通过所述第一临时活动链路分担转发待通过所述第一活动链路转发的目标流量之后,当所述目标速率为第一活动链路的本端接口的收包速率时,获取第一活动链路的本端接口和所述第一临时活动链路的本端接口的总收包速率;如果所述总收包速率小于解除拥塞阈值,则将所述第一临时活动链路切换为非活动链路。
15.在本技术实施例中,当本技术实施例应用于链路聚合组对应的两个转发设备中的主动端之分,且作为主动端的转发设备是在检测到第一活动链路的对端接口处于拥塞状态的情况下确定第一活动链路处于拥塞状态,则该转发设备在通过第一临时活动链路辅助第一活动链路转发目标流量的过程中,可以检测第一活动链路的对端接口是否已解除拥塞状态,以此来决定是否将第一临时活动链路切换为非活动链路。
16.在一种实现方式中,所述解除拥塞阈值小于或等于所述拥塞阈值。
17.在一种实现方式中,所述将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路的实现过程为:根据所述n条非活动链路中每条非活动链路的优先级,选择目标链路;将所述目标链路的本端接口的状态切换为活动状态,并向所述链路聚合组对应的对端设备发送第一报文,以将所述目标链路切换为所述第一临时活动链路,所述第一报文用于指示所述对端设备将所述目标链路的对端接口的状态切换为活动状态。
18.在一种实现方式中,将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路的实现过程为:根据n条非活动链路的接口地址,通过哈希算法从n条非活动链路中选择一条活动链路作为目标链路。将所述目标链路的本端接口的状态切换为活动状态,并向所述链路聚合组对应的对端设备发送第一报文,以将所述目标链路切换为所述第一临时活动链路,所述第一报文用于指示所述对端设备将所述目标链路的对端接口的状态切换为活动状态。
19.在一种实现方式中,也可以通过其他算法从n条非活动链路中选择目标链路。
20.在一种实现方式中,在检测到第一活动链路处于拥塞状态后,获取所述链路聚合组包括的活动链路和临时活动链路的数量总和;如果所述数量总和小于参考阈值,则执行所述将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路的步骤。该参考阈值是根据该链路聚合组允许的峰值带宽预先配置的峰值活动接口数量。通过设置峰值活动接口数量,能够保证链路聚合组所使用的带宽不超过所允许的峰值带宽,从而避免丢包。
21.第二方面,提供了一种流量转发装置,所述流量转发装置具有实现上述第一方面中流量转发方法行为的功能。所述流量转发装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的流量转发方法。
22.第三方面,提供了一种流量转发装置,所述流量转发装置的结构中包括处理器和存储器,所述存储器用于存储支持流量转发装置执行上述第一方面所提供流量转发方法的程序,以及存储用于实现上述第一方面所提供的流量转发方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述流量转发装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
23.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量转发方法。
24.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的流量转发方法。
25.上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
26.本技术实施例提供的技术方案带来的有益效果至少包括:
27.在本技术实施例中,在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。
附图说明
28.图1是本技术实施例提供的一种流量转发方法所涉及的系统架构图;
29.图2是本技术实施例提供的一种网络设备的结构示意图;
30.图3是本技术实施例提供的一种流量转发方法的流程图;
31.图4是本技术实施例提供的另一种流量转发方法的流程图;
32.图5是本技术实施例提供的又一种流量转发方法的流程图;
33.图6是本技术实施例提供的一种流量转发装置结构示意图。
具体实施方式
34.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
35.在对本技术实施例提供的流量转发方法进行详细的解释说明之前,先对本技术实施例涉及的应用场景予以介绍。
36.链路聚合是指将两个转发设备之间的多条通信链路捆绑在一起,成为一个链路聚合组,以此来增加网络带宽和可靠性的方法。其中,两个转发设备通过互相协商将链路聚合组中的多条通信链路中的m条链路作为活动链路,剩余的n条链路作为非活动链路。非活动链路是活动链路的备份链路。也即,当活动链路正常时,通过活动链路进行流量转发,当活动链路故障时,能够从非活动链路中选择一条链路来替换故障链路。
37.需要说明的是,当通过m条活动链路进行流量转发时,通常可以将流量在m条活动链路上进行负载分担,在这种情况下,有可能会因为负载分担不均引起某些链路上转发的流量的数据量过多,从而造成链路拥塞,进而导致链路在传输过程中出现丢包。或者,当某条活动链路上转发的流量出现突发情况时,也即,在短时间内接收到某些业务的大量数据包时,也可能会导致该条活动链路需要转发的流量的数据量过多,处于拥塞状态,从而导致链路丢包。或者,当网络中待转发的流量增多时,也可能导致某些活动链路上要转发的流量的数据量过多,处于拥塞状态,从而导致链路丢包。基于此,本技术实施例提供了一种流量转发方法,用于在上述场景下,尽可能避免链路丢包问题的出现。
38.接下来对本技术实施例提供的流量转发方法所涉及的系统架构进行介绍。
39.图1是本技术实施例提供的流量转发方法所涉及的一种网络架构图。如图1中所示,该网络架构包括第一转发设备101和第二转发设备102。其中,第一转发设备101和第二转发设备102之间建立有多条通信链路。
40.如图1中所示,第一转发设备101和第二转发设备102之间的m n条通信链路被捆绑在一起,形成一个链路聚合组。其中,m和n均为大于或等于1的正整数。该链路聚合组包括m条活动链路(如图1中的实线所示,且图1中以m=2为例)和n条非活动链路(如图1中的虚线所示,且图1中以n=2为例)。各条通信链路在第一转发设备101和第二转发设备102上均对应有物理接口,其中,活动链路在两个转发设备上对应的物理接口均为活动状态,因此称为活动接口,非活动链路在两个转发设备上对应的物理接口均为非活动状态,因此称为非活动接口。
41.需要说明的是,第一转发设备101和第二转发设备102在建立链路聚合组的过程中能够通过协商确定哪一端作为主动端,哪一端作为被动端。在本技术实施例提供的一种实现方式中,无论第一转发设备101和第二转发设备102中哪个设备为主动端哪个设备为被动端,二者均能够检测该链路聚合组中的各条活动链路是否处于拥塞状态,进而通过本技术实施例提供的方法来对非活动链路进行切换,以进行流量转发。
42.在本技术实施例提供的另一种实现方式中,由第一转发设备101和第二转发设备102中的主动端来检测该链路聚合组中的各条活动链路是否处于拥塞状态,进而通过本申
请实施例提供的方法来触发自身以及被动端对非活动链路进行切换,以进行流量转发。其中,主动端可以为第一转发设备101,也可以为第二转发设备102,本技术实施例对此不作限定。
43.其中,第一转发设备101和第二转发设备102为诸如路由器、交换机等具有流量转发功能的网络设备,本技术实施例对此不作限定。
44.图2是本技术实施例提供的一种网络设备的结构示意图。图1中所示的第一转发设备101和第二转发设备102均可通过该网络设备来实现。该网络设备可以包括一个或多个处理器201、通信总线202、存储器203以及一个或多个通信接口204。
45.处理器201可以是一个通用中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic)、可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
46.通信总线202用于在上述组件之间传送信息。通信总线202可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
47.存储器203可以是只读存储器(read-only memory,rom),也可以是随机存取存储器(random access memory,ram),也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、光盘(包括只读光盘(compact disc read-only memory,cd-rom)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,并通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
48.通信接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口204包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
49.在一些实施例中,网络设备可以包括多个处理器,如图3中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
50.在具体实现中,作为一种实施例,网络设备还可以包括输出设备206和输入设备207。输出设备206和处理器201通信,可以以多种方式来显示信息。例如,输出设备206可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备207和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备207可以是鼠标、键盘、触摸屏设备或传感设备等。
51.在一些实施例中,存储器203用于存储执行本技术方案的程序代码208,处理器201可以执行存储器203中存储的程序代码208。该程序代码中可以包括一个或多个软件模块,该网络设备可以通过处理器201以及存储器203中的程序代码208,来实现下文图3实施例提供的流量转发方法。
52.接下来对本技术实施例提供的流量转发方法进行介绍。
53.图3是本技术实施例提供的一种流量转发方法的流程图。该方法应用于目标设备中,其中,该目标设备是指这两个转发设备中的任一个转发设备中,或者,该目标设备是指作为主动端的转发设备。参见图3,该方法包括以下步骤:
54.步骤301:检测第一活动链路是否处于拥塞状态。
55.其中,第一活动链路是链路聚合组包括的m条活动链路中的任一条活动链路,除此之外,该链路聚合组还包括n条非活动链路,m和n均为大于0的整数。需要说明的是,所谓活动链路是指当前能够进行流量转发的处于活动状态的通信链路。非活动链路则是指当前不能进行流量转发、处于非活动状态的通信链路。
56.在本技术实施例中,目标设备实时检测链路聚合组中的各条活动链路的链路状态,或者,目标设备每隔一定时间间隔检测一次链路聚合组中各条活动链路的链路状态,本技术实施例对此不作限定。当目标设备检测到链路聚合组中的任一条活动链路的链路状态为拥塞状态时,均能够采用本技术实施例的方法来从非活动链路中选择一条链路与处于拥塞状态的活动链路共同负载分担流量。在本技术实施例中以链路聚合组中的第一活动链路为例对该过程进行说明。对于链路聚合组中的其他活动链路的处理方法,均可以参考对第一活动链路的处理方法,本技术实施例后续不再赘述。
57.示例性地,在一种实现方式中,当目标设备为前述图1所示的两个转发设备中的任一设备时,也即,无论目标设备为主动端还是被动端时,目标设备获取第一活动链路的本端接口的发包速率,将该发包速率与存储的拥塞阈值进行比较,如果该发包速率不小于拥塞阈值,则确定第一活动链路处于拥塞状态。
58.其中,第一活动链路的本端接口是指第一活动链路在目标设备上的接口。另外,拥塞阈值小于第一活动链路的接口带宽。需要说明的是,该拥塞阈值是根据第一活动链路的接口带宽预先配置在目标设备中的。示例性的,该拥塞阈值为第一活动链路的接口带宽的70%或80%或90%或其他比例数值,本技术实施例在此不做限定。
59.如果获取的第一活动链路的本端接口的发包速率不小于拥塞阈值,则说明第一活动链路的本端接口发送数据的压力过大,当前处于拥塞状态,在这种情况下,目标设备确定第一活动链路处于拥塞状态。
60.可选地,在另一种实现方式中,当目标设备为两个转发设备中的主动端时,也即,当本技术实施例应用于两个转发设备中的主动端时,目标设备获取第一活动链路的本端接口的发包速率和收包速率,将该发包速率和收包速率分别与存储的拥塞阈值进行比较,如果该发包速率和收包速率中存在不小于拥塞阈值的目标速率,则确定第一活动链路处于拥塞状态。
61.其中,目标设备将该发包速率和收包速率分别与拥塞阈值进行比较。如果发包速率不小于该拥塞阈值,而收包速率小于该拥塞阈值,则说明第一活动链路的本端接口处于拥塞状态,第一活动链路的对端接口不处于拥塞状态,此时,目标设备确定第一活动链路处
于拥塞状态。可选地,如果发包速率小于该拥塞阈值,而收包速率不小于拥塞阈值,则说明第一活动链路的对端接口当前处于拥塞状态,而本端接口不处于拥塞状态,此时,目标设备确定第一活动链路处于拥塞状态。可选地,如果发包速率和收包速率均不小于该拥塞阈值,则说明第一活动链路的本端接口和对端接口均处于拥塞状态,此时,目标设备确定第一活动链路处于拥塞状态。可选地,如果发包速率和收包速率均小于该拥塞阈值,则说明第一活动链路的本端接口和对端接口均不处于拥塞状态,此时,目标设备结束操作。其中,第一活动链路的对端接口是指第一活动链路在目标设备的对端设备上的接口。
62.由此可见,当目标设备为两个转发设备中的主动端时,该目标设备同时检测活动链路在本端和对端的接口是否处于拥塞状态,只要检测到一个接口处于拥塞状态,即确定该活动链路处于拥塞状态。
63.步骤302:当检测到第一活动链路处于拥塞状态时,将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路。
64.当检测到第一活动链路处于拥塞状态时,目标设备从n条非活动链路中选择一条链路,之后,将选择的链路从非活动状态切换为活动状态,也即,将选择的非活动链路切换为第一临时活动链路。
65.示例性地,在本技术实施例中,目标设备根据n条非活动链路中每条非活动链路的优先级,选择目标链路,将目标链路的本端接口的状态切换为活动状态,并向链路聚合组对应的对端设备发送第一报文,以将目标链路切换为第一临时活动链路,第一报文用于指示对端设备将目标链路的对端接口的状态切换为活动状态。
66.需要说明的是,链路聚合组中的每条通信链路在目标设备上的接口均对应一个优先级,并且,每条通信链路在对端设备上的接口也均对应一个优先级。其中,同一条通信链路在目标设备和对端设备上对应的接口的优先级可能不同。由前文中的介绍可知,两个转发设备在建立链路聚合组的过程中可以通过协商确定哪个设备作为主动端。在此基础上,当通过协商确定主动端之后,主动端将链路聚合组中各条通信链路在主动端上的接口的优先级作为相应通信链路的优先级,同时向被动端发送链路聚合组中各条通信链路在主动端上的接口的优先级。被动端在接收到主动端发送的各条通信链路在主动端上的接口的优先级之后,将各条通信链路在主动端上的接口的优先级也作为相应通信链路的优先级。换句话说,在建立链路聚合组确定出主动端之后,通过主动端和被动端的交互,对于主动端和被动端来说,链路聚合组中每条通信链路的优先级均以相应通信链路在主动端上的接口优先级为准。基于此,在本技术实施例中,目标设备获取n条非活动链路中每条非活动链路的优先级,将优先级最高的一条非活动链路作为目标链路。
67.在获得目标链路之后,由于该目标链路为非活动链路,因此,该目标链路的本端接口和对端接口均为非活动状态。在这种情况下,目标设备将目标链路的本端接口的状态切换为活动状态,并向对端设备发送第一报文,以此来使对端设备将目标链路的对端接口也切换活动状态,从而使得目标链路切换为第一临时活动链路。
68.其中,当目标设备为两个转发设备中的任一设备时,目标设备通过第一活动链路向对端设备发送第一报文,该第一报文中携带有用于指示链路当前处于拥塞状态的指示信息。对端设备在通过第一活动链路接收到第一报文之后,确定第一活动链路处于拥塞状态,进而采用与前述目标设备相同的方法,从n条非活动链路中选择优先级最高的一条非活动
链路。由于同一条链路在两个转发设备处的优先级均是以该条链路在主动端上的接口的优先级为准,也即,同一条链路在两个转发设备处的优先级是相同的,因此,对端设备采用相同的方法选择的非活动链路与目标设备选择的非活动链路将是同一条链路,此时,对端设备将选择的非活动链路在对端设备上的接口切换为活动状态。如此,目标链路在两个转发设备上的接口的状态均被切换为了活动状态,从而使得该目标链路变为了一条临时的活动链路,也即第一临时活动链路。
69.需要说明的是,第一报文可以为链路聚合控制协议(link aggregation control protocol,lacp)报文。lacp报文中包括3个保留字节,在这种情况下,可以利用lacp报文中的这3个保留字节中的一个或多个字节来携带上述用于指示链路当前处于拥塞状态的指示信息,本技术实施例对此不作限定。
70.可选地,在一些可能的情况中,目标设备也可以在确定第一活动链路之后,且还未确定目标链路之前,即通过第一活动链路向对端设备发送第一报文,本技术实施例对此不作限定。
71.当目标设备为两个转发设备中的主动端时,在确定目标链路之后,目标设备将目标链路的本端接口切换为活动状态。之后,目标设备通过该目标链路向对端设备发送第一报文,其中,该第一报文中携带用于指示第一活动链路处于拥塞状态的指示信息。对端设备在通过目标链路接收到第一报文之后,获知第一活动链路当前处于拥塞状态,并且能够根据传输第一报文的目标链路获知目标设备已将该目标链路选为了第一活动链路的辅助链路。在这种情况下,对端设备将目标链路在对端设备上的接口也切换为活动状态。如此,目标链路在两个转发设备上的接口的状态均被切换为了活动状态,从而使得该目标链路变为了一条临时的活动链路,也即第一临时活动链路。其中,关于第一报文的相关实现方式可以参考前文中介绍的第一报文的实现方式,本技术实施例在此不再赘述。
72.可选地,在一些可能的情况中,在检测到第一活动链路处于拥塞状态之后,确定目标链路之前,目标设备还可以获取链路聚合组包括的活动链路和临时活动链路的数量总和;如果该数量总和小于参考阈值,则执行将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路的步骤。如果该数量总和不小于参考阈值,则结束操作。
73.其中,该参考阈值是根据该链路聚合组允许的峰值带宽预先配置的峰值活动接口数量。也就是说,假设参考阈值为z,则z条链路的带宽总和小于或等于该链路聚合组允许的峰值带宽。其中,该参考阈值小于m n,且大于m。
74.在本技术实施例中,目标设备获取链路聚合组中各条链路的本端接口的接口状态,将链路聚合组中本端接口的接口状态为活动状态的链路的数量确定为该链路聚合组中包括的活动链路和临时活动链路的数量总和。如果链路聚合组中包括的活动链路和临时活动链路的数量总和小于参考阈值,则说明该链路聚合组中当前使用的带宽还未达到允许的峰值带宽,此时,目标设备则可以通过本技术实施例提供的方法继续将非活动链路切换为临时活动链路来使用。可选地,如果链路聚合组中包括的活动链路和临时活动链路的数量总和不小于参考阈值,则说明链路聚合组中当前使用的带宽已达到或即将达到所允许的峰值带宽,此时,则不再允许继续将非活动链路切换为临时活动链路来使用,因此,目标设备结束操作。由此可见,通过设置峰值活动接口数量,能够保证链路聚合组所使用的带宽不超过所允许的峰值带宽,从而避免丢包。
75.步骤303:通过第一临时活动链路分担转发待通过第一活动链路转发的目标流量。
76.在将选择的非活动链路切换为第一临时活动链路之后,目标设备即能够通过该第一临时活动链路来分担转发待通过第一活动链路转发的目标流量。
77.其中,待通过第一活动链路转发的目标流量可能包括多个业务流的数据包,也可能包括一个业务流的大量数据包。并且,待通过第一活动链路转发的目标流量是目标设备在接收到多个业务流之后,通过哈希算法在m条活动链路上进行负载分担时分配至第一活动链路的流量。
78.目标设备在获得第一临时活动链路之后,可以通过哈希算法在第一临时活动链路和第一活动链路上对该目标流量进行负载分担,从而将目标流量中的一部分流量分配给第一临时活动链路转发,另一部分流量分配给第一活动链路进行转发,由此来缓解第一活动链路的拥塞情况,从而避免丢包。
79.在本技术实施例中,目标设备在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。另外,在本技术实施例中,第一临时活动链路和第一活动链路之间可以通过哈希算法负载分担已经分配至第一活动链路的目标流量,这样,不影响其他活动链路的流量转发,对业务影响较小。
80.上述实施例主要介绍了目标设备在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发的实现过程。在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,通过哈希算法在m条活动链路上进行负载分担后分配至第一活动链路的目标流量有可能会逐渐减少,在这种情况下,有可能单纯靠第一活动链路来转发该目标流量也不会再拥塞,此时,目标设备则可以再将第一临时活动链路切换回非活动临时链路。也就是说,在本技术实施例中,目标设备在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,还可以检测第一活动链路的拥塞状态是否解除,如果检测到第一活动链路的拥塞状态解除,则将第一临时活动链路切换为非活动链路。
81.其中,当目标设备为两个转发设备中的任一设备时,也即,当本本技术实施例既能够应用于主动端也能够应用于被动端时,由前文可知,目标设备通过比较第一活动链路的本端接口的发包速率与拥塞阈值来判断第一活动链路是否处于拥塞状态。在这种情况下,在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备计算第一临时活动链路的本端接口和第一活动链路的本端接口的发包速率之和,得到总发包速率。将该总发包速率与解除拥塞阈值进行比较,如果该总发包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。其中,解除拥塞阈值小于或等于拥塞阈值。
82.需要说明的是,如果第一活动链路的本端接口的发包速率和第一临时活动链路的本端接口的发包速率之和小于解除拥塞阈值,则说明当前需要二者共同分担转发的流量减少至了第一活动链路单独承载也不至于拥塞的状态,此时,则确定第一活动链路的拥塞状态已解除。在这种情况下,则无需第一临时活动链路继续辅助第一活动链路进行流量转发,
因此,目标设备可以将第一临时活动链路切换回非活动链路。
83.其中,在将第一临时活动链路切换回非活动链路时,目标设备首先通过第一临时活动链路向对端设备发送第二报文,该第二报文中携带有用于指示第一活动链路的拥塞状态已解除的指示信息。之后,目标设备将第一临时活动链路的本端接口切换为非活动状态。对端设备在通过第一临时活动链路接收到第二报文之后,确定第一活动链路已解除拥塞状态,从而将第一临时活动链路在对端设备上的接口切换为非活动状态,如此,第一临时活动链路重新变为了非活动链路。
84.在将第一临时活动链路重新切换为非活动链路之后,原本由第一临时活动链路和第一活动链路分担转发的流量均切换至第一活动链路来转发。
85.当目标设备为两个转发设备中的主动端时,也即,当本技术实施例应用于两个转发设备中的主动端时,由前文可知,目标设备通过判断第一活动链路的本端接口的发包速率和收包速率中是否存在不小于拥塞阈值的目标速率来判断第一活动链路是否处于拥塞状态。基于此,在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备相应地通过以下几种不同的方式来判断第一活动链路的拥塞状态是否解除。
86.第一种方式:当目标速率为第一活动链路的本端接口的发包速率时,在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备获取第一活动链路的本端接口和第一临时活动链路的本端接口的总发包速率;如果总发包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
87.也就是说,如果目标设备是在检测到第一活动链路的本端接口处于拥塞状态的情况下判定第一活动链路处于拥塞状态的,则在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备可以检测第一活动链路的本端接口的拥塞状态是否解除。如果第一第一活动链路的本端接口和第一临时活动链路的本端接口的总发包速率小于解除拥塞阈值,则说明当前需要二者共同分担转发的流量减少至了第一活动链路单独承载也不至于拥塞的状态,此时,则确定第一活动链路的本端接口的拥塞状态已解除,也即,第一活动链路的拥塞状态解除。在这种情况下,则无需第一临时活动链路继续辅助第一活动链路进行流量转发,因此,目标设备可以将第一临时活动链路切换回非活动链路。
88.其中,目标设备将第一临时活动链路切换回非活动链路的实现过程请参考前文中的相关内容,本技术实施例在此不再赘述。
89.第二种方式:当目标速率为第一活动链路的本端接口的收包速率时,在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备获取第一活动链路的本端接口和第一临时活动链路的本端接口的总收包速率;如果总收包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
90.也就是说,如果目标设备是在检测到第一活动链路的对端接口处于拥塞状态的情况下判定第一活动链路处于拥塞状态的,则在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备可以检测第一活动链路的对端接口的拥塞状态是否解除。如果第一第一活动链路的本端接口和第一临时活动链路的本端接口的收包速率之和小于解除拥塞阈值,则说明当前对端设备中需要第一活动链路和第一临时活动链路共同分担转发的流量减少至了第一活动链路单独承载也不至于拥塞的状态,此时,则确定第一活动链路的对端接口的拥塞状态已解除,也即,第一活动链路的拥塞状态解除。在这种情况下,则
无需第一临时活动链路继续辅助第一活动链路进行流量转发,因此,目标设备可以将第一临时活动链路切换回非活动链路。
91.其中,目标设备将第一临时活动链路切换回非活动链路的实现过程请参考前文中的相关内容,本技术实施例在此不再赘述。
92.第三种方式:当目标速率同时包括第一活动链路的本端接口的发包速率和收包速率时,在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备获取第一活动链路的本端接口和第一临时活动链路的本端接口的总发包速率和总收包速率;如果总发包速率和总收包速率均小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
93.也就是说,如果第一活动链路的两端接口均处于拥塞状态,则在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,目标设备通过将第一活动链路和第一临时活动链路的本端接口的总发包速率和总收包速率分别与解除拥塞阈值比较,来同时检测第一活动链路的两端接口的拥塞状态是否解除。如果两端接口的拥塞状态均已解除,则确定第一活动链路的拥塞状态已解除,此时,则无需第一临时活动链路继续辅助第一活动链路进行流量转发,因此,目标设备可以将第一临时活动链路切换回非活动链路。
94.其中,目标设备将第一临时活动链路切换回非活动链路的实现过程请参考前文中的相关内容,本技术实施例在此不再赘述。
95.在本技术实施例中,目标设备在通过第一临时活动链路辅助第一活动链路进行流量转发的过程中,还可以检测第一活动链路的拥塞状态是否已解除,并在检测到第一活动链路的拥塞状态已解除的情况下,将第一临时活动链路重新切为非活动链路,从而保证链路聚合组中出现故障链路时,能够有非活动链路进行替换。
96.图4是本技术实施例给出的目标设备为两个转发设备中的任一转发设备的情况下的流量转发方法的流程图,也即,图4给出的流量转发方法应用于主动端和被动端均能检测拥塞状态以触发链路切换的场景中,参见图4,该方法包括以下步骤:
97.步骤401:目标设备检测第一活动链路的本端接口是否处于拥塞状态。
98.其中,目标设备获取第一活动链路的本端接口的发包速率,将该发包速率与存储的拥塞阈值进行比较,如果该发包速率不小于拥塞阈值,则确定第一活动链路的本端接口处于拥塞状态。
99.如果目标设备确定第一活动链路的本端接口处于拥塞状态,则执行步骤402和步骤403,否则,则结束操作。
100.步骤402:目标设备检测链路聚合组中的活动链路和临时活动链路的数量总和是否小于参考阈值。
101.本步骤的实现方式可以参考前述实施例中步骤302中目标设备检测链路聚合组中的活动链路和临时活动链路的数量总和是否小于参考阈值的实现方式,本技术实施例在此不再赘述。
102.其中,如果链路聚合组中的活动链路和临时活动链路的数量总和小于参考阈值,则目标设备执行步骤404,如果链路聚合组中的活动链路和临时活动链路的数量总和不小于参考阈值,则结束操作。
103.步骤403:目标设备通过第一活动链路向对端设备发送第一报文。
104.本步骤的实现方式可以参考前述实施例中的相关实现方式,本技术实施例在此不再赘述。
105.步骤404:目标设备从n条非活动链路中选择优先级最高的一条链路作为目标链路,将目标链路的本端接口切换为活动状态。
106.本步骤中选择目标链路的方法可以参考前述实施例中介绍的选择目标链路的方法,本技术实施例在此不再赘述。
107.步骤405:当对端设备接收到第一报文之后,对端设备检测链路聚合组中的活动链路和临时活动链路的数量总和是否小于参考阈值。
108.其中,对端设备获取链路聚合组中的各条通信链路在对端设备上的接口的状态,将在对端设备上的接口的状态为活动状态的通信链路的总数量作为链路聚合组中的活动链路和临时活动链路的数量总和。
109.如果对端设备检测到链路聚合组中的活动链路和临时活动链路的数量总和小于参考阈值,则执行步骤406,否则结束操作。
110.步骤406:对端设备从n条非活动链路中选择优先级最高的一条链路作为目标链路,将目标链路在对端设备上的接口切换为活动状态。
111.步骤407:目标设备通过第一活动链路和目标链路的本端接口分担转发目标流量。
112.其中,关于目标流量的相关解释可参考前文中关于目标流量的介绍。另外,通过第一活动链路和目标链路的本端接口分担转发目标流量的实现方式可以参考前述步骤303,本技术实施例在此不再赘述。
113.在本技术实施例中,目标设备在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。另外,在本技术实施例中,第一临时活动链路和第一活动链路之间可以通过哈希算法负载分担已经分配至第一活动链路的目标流量,这样,不影响其他活动链路的流量转发,对业务影响较小。
114.图5是本技术实施例给出的目标设备为主动端的情况下的流量转发方法的流程图,也即,图5中的流量转发方法应用于由主动端检测拥塞状态以触发链路切换的场景中,参见图5,该方法包括以下步骤:
115.步骤501:目标设备检测第一活动链路的本端接口和对端接口是否处于拥塞状态。
116.本步骤的实现方式可以参考前述实施例中介绍的目标设备为主动端的情况下,目标设备检测第一活动链路是否处于拥塞状态的相关实现方式,本技术实施例在此不再赘述。
117.如果第一活动链路的本端接口和对端接口中的任一接口处于拥塞状态,则执行步骤502,如果第一活动链路的本端接口和对端接口均不处于拥塞状态,则结束操作。
118.步骤502:目标设备检测链路聚合组中的活动链路和临时活动链路的数量总和是否小于参考阈值。
119.本步骤的实现方式可以参考前述实施例中步骤302中目标设备检测链路聚合组中
的活动链路和临时活动链路的数量总和是否小于参考阈值的实现方式,本技术实施例在此不再赘述。
120.其中,如果链路聚合组中的活动链路和临时活动链路的数量总和小于参考阈值,则目标设备执行步骤503,如果链路聚合组中的活动链路和临时活动链路的数量总和不小于参考阈值,则结束操作。
121.步骤503:目标设备从n条非活动链路中选择一条链路作为目标链路,将目标链路的本端接口切换为活动状态。
122.其中,目标设备从n条非活动链路中选择目标链路的方法可以参考前述实施例中介绍的选择目标链路的方法,本技术实施例在此不再赘述。
123.步骤504:目标设备通过目标链路向对端设备发送第一报文。
124.其中,关于第一报文的相关介绍可以参考前述实施例,本技术实施例在此不再赘述。
125.步骤505:对端设备在接收到第一报文之后,将目标链路在对端设备上的接口切换为活动状态。
126.步骤506:目标设备通过第一活动链路和目标链路的本端接口分担转发目标流量。
127.其中,关于目标流量的相关解释可参考前文中关于目标流量的介绍。另外,通过第一活动链路和目标链路的本端接口分担转发目标流量的实现方式可以参考前述步骤303,本技术实施例在此不再赘述。
128.在本技术实施例中,目标设备在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。另外,在本技术实施例中,第一临时活动链路和第一活动链路之间可以通过哈希算法负载分担已经分配至第一活动链路的目标流量,这样,不影响其他活动链路的流量转发,对业务影响较小。
129.参见图6,本技术实施例提供了一种流量转发装置600,该装置600包括:
130.切换模块601,用于执行前述实施例中的步骤302;
131.转发模块602,用于执行前述实施例中的步骤303。
132.其中,切换模块601可以由前述图2所示的网络设备中的处理器来实现,转发模块602可以由前述图2所示的网络设备中的处理器控制通信接口来实现。
133.可选地,参见图6,该装置还包括检测模块603,检测模块603用于:
134.获取第一活动链路的本端接口的发包速率;
135.如果第一活动链路的发包速率不小于拥塞阈值的速率,则确定第一活动链路处于拥塞状态,拥塞阈值小于第一活动链路的接口带宽。
136.可选地,该装置600还用于:
137.获取第一活动链路的本端接口和第一临时活动链路的本端接口的总发包速率;
138.如果总发包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
139.可选地,参见图6,该装置还包括检测模块603,检测模块603用于:
140.获取第一活动链路的本端接口的发包速率和收包速率;
141.如果第一活动链路的本端接口的发包速率和收包速率中存在不小于拥塞阈值的目标速率,则确定第一活动链路处于拥塞状态,拥塞阈值小于第一活动链路的接口带宽。
142.可选地,该装置600还用于:
143.当目标速率为第一活动链路的本端接口的发包速率时,获取第一活动链路的本端接口和第一临时活动链路的本端接口的总发包速率;
144.如果总发包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
145.可选地,该装置600还用于:
146.当目标速率为第一活动链路的本端接口的收包速率时,获取第一活动链路的本端接口和第一临时活动链路的本端接口的总收包速率;
147.如果总收包速率小于解除拥塞阈值,则将第一临时活动链路切换为非活动链路。
148.可选地,解除拥塞阈值小于或等于拥塞阈值。
149.可选地,切换模块302用于:
150.根据n条非活动链路中每条非活动链路的优先级,选择目标链路;
151.将目标链路的本端接口的状态切换为活动状态,并向链路聚合组对应的对端设备发送第一报文,以将目标链路切换为第一临时活动链路,第一报文用于指示对端设备将目标链路的对端接口的状态切换为活动状态。
152.可选地,该装置600还用于:
153.获取链路聚合组包括的活动链路和临时活动链路的数量总和;
154.如果数量总和小于参考阈值,则触发切换模块执行将链路聚合组包括的n条非活动链路中的一条链路切换为第一临时活动链路的步骤。
155.综上所述,在本技术实施例中,目标设备在检测到第一活动链路处于拥塞状态时,通过将非活动链路切换为活动链路来辅助第一活动链路完成流量转发,这样,增加了可用转发带宽,从而缓解了第一活动链路的拥塞情况,能够有效避免第一活动链路在传输数据的过程中出现丢包。并且,通过本技术实施例提供的方法来为第一活动链路确定一个辅助进行流量转发的临时活动链路,无需再在链路聚合组中新增成员口,操作更为简便,降低了系统资源消耗。另外,在本技术实施例中,第一临时活动链路和第一活动链路之间可以通过哈希算法负载分担已经分配至第一活动链路的目标流量,这样,不影响其他活动链路的流量转发,对业务影响较小。
156.需要说明的是:上述实施例提供的流量转发装置在转发流量时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量转发装置与流量转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
157.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或
者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))、或者半导体介质(例如:固态硬盘(solid state disk,ssd))等。
158.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
159.应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本文的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
160.以上所述并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献