一种BFD报文发送方法、装置、电子设备及存储介质与流程

文档序号:29323467发布日期:2022-03-19 23:02阅读:70来源:国知局
一种BFD报文发送方法、装置、电子设备及存储介质与流程
一种bfd报文发送方法、装置、电子设备及存储介质
技术领域
1.本技术涉及通信技术领域,尤其涉及一种bfd报文发送方法、装置、电子设备及存储介质。


背景技术:

2.宽带远程接入服务器(broadband remote access server,bras)作为用户的接入网关设备和ip网络的边缘,由于控制平面和转发平面紧耦合在一起,导致性能处理上相互影响,无法充分发挥控制平面和转发平面的性能,资源利用率较低。
3.目前,已经提出了控制平面和转发平面分离的虚拟化bras,即,vbras架构,其中,控制平面可以通过bras-控制面(control plane,cp)设备实现,定义为用户控制管理部件,用于实现用户控制管理、用户接入控制、用户认证授权计费、地址管理、配置管理等功能;转发平面可以通过bras-用户面(user plane,up,也可称为转发面)设备实现,定义为三层网络边缘和用户策略执行部件,可以用于实现流量转发、流量统计等功能。
4.bras-up设备和bras-cp设备之间通常建立控制平面和用户平面分离协议(control plane and user plane separated protocol,cusp)链路,并且,二者通过在二者之间创建的双向转发检测(bidirectional forwarding detection,bfd)会话来快速检测这条链路的连通性。但是,在二者之间部署有多条中间链路的场景下,二者中的任一设备在向对端设备发送该bfd会话对应的bfd报文时,仅会通过哈希出的某一条中间链路向对端设备发送该bfd会话对应的bfd报文,一旦在设定周期(相应时长包括该bfd会话对应的bfd检测周期的时长和重传时长(即,重传相关bfd报文的时长))内未接收到对端设备发送的相应的bfd报文,会将该bfd会话的会话状态由建立(up)状态更改为断开(down)状态,即,意味着这条中间链路发生故障,出现了bfd会话震荡,由于路由收敛需要一定的时间,所以会进一步引起cusp链路震荡。


技术实现要素:

5.为克服相关技术中存在的问题,本技术提供了一种bfd报文发送方法、装置、电子设备及存储介质。
6.根据本技术实施例的第一方面,提供一种bfd报文发送方法,所述方法应用于bras-cp设备和bras-up设备中的任一设备,且所述bras-cp设备和所述bras-up设备之间建立了cusp链路及其对应的bfd会话,所述方法包括:
7.在设定周期到达时,判断是否接收到对端设备发送的所述bfd会话对应的第一bfd报文,其中,所述第一bfd报文中携带的所述bfd会话的会话状态为up状态,且所述设定周期的时长包括所述bfd会话对应的bfd检测周期的时长和重传时长;
8.在判断结果为是时,若本地记录的所述bfd会话的会话状态为up状态,则保持本地记录的所述bfd会话的会话状态不变,并在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值,在判断出所述第一预留字段
中的值是第一设定值时,通过上一次向所述对端设备发送的所述bfd会话对应的第二bfd报文时确定出的出接口,向所述对端设备发送所述第二bfd报文,在判断出所述第一预留字段中的值是第二设定值时,重新生成所述bfd会话对应的第三bfd报文,通过确定出的第三bfd报文的出接口,向所述对端设备发送所述第三bfd报文,其中,所述第一设定值用于指示所述设备不需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二设定值用于指示所述设备需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二bfd报文和所述第三bfd报文中携带的所述bfd会话的会话状态均为up状态,所述第二bfd报文中携带的第二预留字段中的值和所述第三bfd报文中携带的第三预留字段中的值均为所述第一设定值,且所述第三bfd报文和所述第二bfd报文的源端口不同;
9.若本地记录的所述bfd会话的会话状态为第一临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并开始执行在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值的步骤;
10.若本地记录的所述bfd会话的会话状态为第二临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并在到达所述bfd检测周期时,通过上一次确定出的出接口,向所述对端设备发送所述第二bfd报文;
11.在判断结果为否时,若本地记录的所述bfd会话的会话状态为up状态,则将本地记录的所述bfd会话的会话状态更改为所述第一临时状态,并在到达所述bfd检测周期时,将所述第二bfd报文中携带的第二预留字段中的值更改为所述第二设定值,通过上一次确定出的出接口,向所述对端设备发送更改后的第二bfd报文;
12.若本地记录的所述bfd会话的会话状态为所述第一临时状态,则将本地记录的所述bfd会话的会话状态更改为所述第二临时状态,并在到达所述bfd检测周期时,重新生成所述bfd会话对应的第五bfd报文,通过确定出的第五bfd报文的出接口,向所述对端设备发送所述第五bfd报文,其中,所述第五bfd报文中携带的第四预留字段中的值为所述第二设定值,携带的所述bfd会话的会话状态为up状态,且所述第五bfd报文和所述第二bfd报文的源端口不同;
13.若本地记录的所述bfd会话的会话状态为所述第二临时状态,则将本地记录的所述bfd会话的会话状态更改为down状态。
14.根据本技术实施例的第二方面,提供一种bfd报文发送装置,所述装置应用于bras-cp设备和bras-up设备中的任一设备,且所述bras-cp设备和所述bras-up设备之间建立了cusp链路及其对应的bfd会话,所述装置包括:
15.判断模块,用于在设定周期到达时,判断是否接收到对端设备发送的所述bfd会话对应的第一bfd报文,其中,所述第一bfd报文中携带的所述bfd会话的会话状态为up状态,且所述设定周期的时长包括所述bfd会话对应的bfd检测周期的时长和重传时长;
16.第一发送模块,用于在所述判断模块判断结果为是时,若本地记录的所述bfd会话的会话状态为up状态,则保持本地记录的所述bfd会话的会话状态不变,并在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值,在判断出所述第一预留字段中的值是第一设定值时,通过上一次向所述对端设备发送的所述bfd会话对应的第二bfd报文时确定出的出接口,向所述对端设备发送所述第二bfd报文,在判断出所述第一预留字段中的值是第二设定值时,重新生成所述bfd会话对应
的第三bfd报文,通过确定出的第三bfd报文的出接口,向所述对端设备发送所述第三bfd报文,其中,所述第一设定值用于指示所述设备不需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二设定值用于指示所述设备需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二bfd报文和所述第三bfd报文中携带的所述bfd会话的会话状态均为up状态,所述第二bfd报文中携带的第二预留字段中的值和所述第三bfd报文中携带的第三预留字段中的值均为所述第一设定值,且所述第三bfd报文和所述第二bfd报文的源端口不同;若本地记录的所述bfd会话的会话状态为第一临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并开始执行在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值的步骤;以及若本地记录的所述bfd会话的会话状态为第二临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并在到达所述bfd检测周期时,通过上一次确定出的出接口,向所述对端设备发送所述第二bfd报文;
17.第二发送模块,用于在所述判断模块的判断结果为否时,若本地记录的所述bfd会话的会话状态为up状态,则将本地记录的所述bfd会话的会话状态更改为所述第一临时状态,并在到达所述bfd检测周期时,将所述第二bfd报文中携带的第二预留字段中的值更改为所述第二设定值,通过上一次确定出的出接口,向所述对端设备发送更改后的第二bfd报文;若本地记录的所述bfd会话的会话状态为所述第一临时状态,则将本地记录的所述bfd会话的会话状态更改为所述第二临时状态,并在到达所述bfd检测周期时,重新生成所述bfd会话对应的第五bfd报文,通过确定出的第五bfd报文的出接口,向所述对端设备发送所述第五bfd报文,其中,所述第五bfd报文中携带的第四预留字段中的值为所述第二设定值,携带的所述bfd会话的会话状态为up状态,且所述第五bfd报文和所述第二bfd报文的源端口不同;以及若本地记录的所述bfd会话的会话状态为所述第二临时状态,则将本地记录的所述bfd会话的会话状态更改为down状态。
18.根据本技术实施例的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述的bfd报文发送方法的方法步骤。
19.根据本技术实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的bfd报文发送方法的方法步骤。
20.本技术的实施例提供的技术方案可以包括以下有益效果:
21.在本技术实施例中,对于建立了cusp链路及其对应的创建了bfd会话的bras-cp设备和bras-up设备中的任一设备而言,在本地记录的该bfd会话的会话状态为up状态的情形下,一旦在某个设定周期内未接收到对端设备发送的该bfd会话对应的bfd报文,不再直接将该会话状态由up状态更改为down状态,而是将该会话状态由up状态更改为第一临时状态,继续尝试向对端设备发送相应的bfd报文(此bfd报文中携带的预留字段中的值为第二设定值),以便于引导对端设备在本地记录的该bfd会话的会话状态为up状态的情形下通过更改后续发过来的相关bfd报文的源端口的方式,改变二者的中间链路,从而提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
22.并且,如果在下一个设定周期内还是未接收到对端设备发送的该bfd会话对应的bfd报文,会继续将该会话状态由第一临时状态更改为第二临时状态,重新生成相应的bfd报文(此bfd报文中携带的预留字段中的值仍为第二设定值,且此bfd报文的源端口与上一次发送的bfd报文的源端口不同),并通过确定出的重新生成的bfd报文的出接口,向对端设备发送过去,即,通过再次尝试改变中间链路,进一步提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
24.此处的附图被并入说明书中并构成本技术的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
25.图1为本技术实施例提供的一种bfd报文发送方法的流程示意图;
26.图2为本技术实施例提供的一种bfd报文发送方法所适用的组网架构示意图;
27.图3为本技术实施例提供的一种bfd报文发送装置的结构示意图;
28.图4为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
29.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
30.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
31.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
32.接下来对本技术实施例进行详细说明。
33.本技术实施例提供了一种bfd报文发送方法,该方法应用于bras-cp设备和bras-up设备中的任一设备,且bras-cp设备和bras-up设备之间建立了cusp链路及其对应的bfd会话,如图1所示,该方法可以包括如下步骤:
34.s11、在设定周期到达时,判断是否接收到对端设备发送的第一bfd报文。
35.在本步骤中,第一bfd报文中携带的bfd会话的会话状态为up状态。并且,设定周期的时长可以包括bfd会话对应的bfd检测周期的时长和重传时长。
36.在这里,上述设定周期、bfd检测周期和重传时长均可根据该设备所在的网络的实
际需求来设定。重传时长可以与bfd检测周期相同,当然,也可以不同,例如,重传时长与bfd检测周期可以是倍数关系等。
37.该设备在执行上述步骤s11之后,在判断结果为是时,若本地记录的bfd会话的会话状态为up状态,则该设备执行步骤s12和步骤s13;若本地记录的bfd会话的会话状态为第一临时状态,则该设备执行步骤s14和步骤s13;若本地记录的bfd会话的会话状态为第二临时状态,则该设备执行步骤s15。
38.在判断结果为否时,若本地记录的bfd会话的会话状态为up状态,则该设备执行步骤s16;若本地记录的bfd会话的会话状态为第一临时状态,则该设备执行步骤s17;若本地记录的bfd会话的会话状态为第二临时状态,则该设备执行步骤s18。
39.s12、保持本地记录的bfd会话的会话状态不变。
40.s13、在到达bfd检测周期时,判断第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值,在判断出第一预留字段中的值是第一设定值时,通过上一次向对端设备发送的bfd会话对应的第二bfd报文时确定出的出接口,向对端设备发送第二bfd报文,在判断出第一预留字段中的值是第二设定值时,重新生成bfd会话对应的第三bfd报文,通过确定出的第三bfd报文的出接口,向对端设备发送第三bfd报文。
41.在本步骤中,上述第一设定值用于指示该设备不需要重新生成发往对端设备的该bfd会话对应的bfd报文;上述第二设定值用于指示该设备需要重新生成发往对端设备的该bfd会话对应的bfd报文。
42.在一个例子中,上述第一设定值可以用“0”来表示,上述第二设定值可以用“1”来表示。当然,上述第一设定值和上述第二设定值还可以用其他方式来表示,在此不再一一列举。
43.另外,在本步骤中,第二bfd报文和第三bfd报文中携带的bfd会话的会话状态均为up状态;第二bfd报文中携带的第二预留字段中的值和第三bfd报文中携带的第三预留字段中的值均为第一设定值,且第三bfd报文与第二bfd报文的源端口不同,也即,第三bfd报文与第二bfd报文的五元组信息中除二者的源端口不同外,其他信息(例如,二者的源ip、目ip和目的端口等信息)均相同。
44.s14、将本地记录的bfd会话的会话状态更改为up状态。
45.该设备在执行上述步骤s15之后,继续执行上述步骤s14。
46.s15、将本地记录的bfd会话的会话状态更改为up状态,并在到达bfd检测周期时,通过上一次确定出的出接口,向对端设备发送第二bfd报文。
47.s16、将本地记录的bfd会话的会话状态更改为第一临时状态,并在到达bfd检测周期时,将第二bfd报文中携带的第二预留字段中的值更改为第二设定值,通过上一次确定出的出接口,向对端设备发送更改后的第二bfd报文。
48.s17、将本地记录的bfd会话的会话状态更改为第二临时状态,并在到达bfd检测周期时,重新生成bfd会话对应的第五bfd报文,通过确定出的第五bfd报文的出接口,向对端设备发送第五bfd报文。
49.在本步骤中,第五bfd报文中携带的第三预留字段中的值为第二设定值,携带的bfd会话的会话状态为up状态,且第五bfd报文与第二bfd报文的源端口不同,也即,第五bfd报文与第二bfd报文的五元组信息中除二者的源端口不同外,其他信息(例如,二者的源ip、
目ip和目的端口等信息)均相同。
50.s18、将本地记录的bfd会话的会话状态更改为down状态。
51.需要说明的是,对于该设备而言,在执行完上述步骤s11之后,如果本地记录的bfd会话的会话状态为第一临时状态,这说明这个会话状态是该设备在上一个设定周期内没有接收到对端设备发送的该bfd会话对应的bfd报文、且当时记录的该bfd会话的会话状态为up状态的情形下更改的。
52.如果本地记录的bfd会话的会话状态为第二临时状态,这说明这个会话状态是该设备在上一个设定周期内没有接收到对端设备发送的该bfd会话对应的bfd报文、且当时记录的该bfd会话的会话状态为第一临时状态的情形下更改的,同时也说明上上个设定周期内该设备也没有接收到对端设备发送的该bfd会话对应的bfd报文、且已经将当时记录的该bfd会话的会话状态由up状态更改为第一临时状态。
53.另外,在上述步骤s13中,对于该设备而言,一旦判断出第一bfd报文中携带的第一预留字段中的值是第一设定值,就意味着第一bfd报文是对端设备在本地记录的该bfd会话的会话状态为up状态下发出的,此时,该设备仍然使用上一次发给对端设备的该bfd会话对应的bfd报文(为了便于区分第一bfd报文,称为第二bfd报文),并通过上一次发送第二bfd报文时使用的出接口将其发送给对端设备。
54.一旦判断出第一bfd报文中携带的第一预留字段中的值为第二设定值,就意味着第一bfd报文是对端设备在本地记录的该bfd会话的会话状态为第一临时状态或者第二临时状态下发出的,此时,该设备需要重新生成上述第三bfd报文,然后通过确定出的第三bfd报文的出接口,向对端设备发送第三bfd报文。
55.在这里,第三bfd报文的源端口可以为该设备上的端口号为第二bfd报文的源端口的端口号减设定数值的端口。例如,设定数值为1等。
56.当然,第三bfd报文的源端口还可以为该设备上的除第二bfd报文的源端口之外的任一端口,在此不对第三bfd报文的源端口的选择方式进行任何限定。
57.该设备重新生成第三bfd报文之后,仍然采用现有的确定方式确定第三bfd报文的出接口,例如,采用md5哈希算法对第三bfd报文的五元组信息进行哈希运算的确定方式来确定第三bfd报文的出接口,具体的确定过程在此不再详述。
58.进一步需要说明的是,该设备通过执行上述步骤s16,可以引导对端设备在本地记录的该bfd会话的会话状态为up状态的情形下通过更改后续发过来的相关bfd报文的源端口的方式,改变二者的中间链路,从而提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话超时发生震荡,进而减少cusp链路震荡。
59.该设备通过执行上述步骤s17,通过再次尝试改变中间链路,进一步提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话超时发生震荡,进而减少cusp链路震荡。
60.具体地,在上述步骤s17中,该设备重新生成的第五bfd报文的源端口也可以为该设备上的端口号为第二bfd报文的源端口的端口号减设定数值的端口;当然,还可以为该设备上的除第二bfd报文的源端口之外的任一端口,在此不对第五bfd报文的源端口的选择方式进行任何限定。
61.下面结合具体实施例对上述bfd报文发送方法进行详细说明。
62.如图2所示,假设bras-cp设备1与bras-up设备1建立了cusp链路1及其对应的bfd会话1,假设bras-cp设备1与bras-up设备2建立了cusp链路2及其对应的bfd会话2。其中,bras-up设备1和bras-up设备2具有主备关系。假设第一设定值为0,第二设定值为1。
63.需要说明的是,图2还包括有其他通信设备,在此未一一示出。
64.以bras-up设备1为例,假设到达了某个设定周期,bras-up设备1没有接收到bras-cp设备1发送的bfd会话1对应的bfd报文1,并且,此时本地记录的bfd会话1的会话状态为up状态,在这种情形下,bras-up设备1将本地记录的bfd会话1的会话状态更改为第一临时状态(记为idle1状态)。
65.假设过了一段时间,到达了bfd会话1对应的bfd检测周期,bras-up设备1将上一次向bras-cp设备1发送的bfd会话1对应的bfd报文2中携带的预留字段中的值更改为1,并通过上一次确定出的出接口,例如,该bras-cp设备1上与网关设备1直连的接口,向bras-cp设备1发送更改后的bfd报文2。在这里,bfd报文2中携带的bfd会话1的会话状态为up状态。
66.也就是说,在上述这种情形下,bras-up设备1先不更换源端口,而是通过更改上一次向bras-cp设备1发送的bfd会话1对应的bfd报文2中携带的预留字段中的值,以引导bras-cp设备1更改源端口,提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
67.后续又到达了下一个设定周期,假设bras-up设备1还是没有接收到bras-cp设备1发送的bfd会话1对应的bfd报文1,并且,此时本地记录的bfd会话1的会话状态为idle1状态,在这种情形下,bras-up设备1将本地记录的bfd会话1的会话状态更改为第二临时状态(记为idle2状态)。
68.接下来,在再次到达bfd检测周期时,bras-up设备1重新生成bfd会话1对应的bfd报文3(相应的源端口的端口号为bfd报文2的源端口的端口号减1,且携带的预留字段中的值为1,携带的bfd1会话的会话状态为up状态),通过确定出的bfd报文3的出接口,例如,此出接口为bras-cp设备1上与网关设备2直连的接口,向bras-cp设备1发送bfd报文3。即,bras-up设备1将bfd报文3通过网关设备2和叶子设备1发送给bras-cp设备1。
69.也就是说,在这种情形下,bras-up设备1通过更改源端口的方式,重新生成相关bfd报文,以尝试通过其他正常的中间链路向bras-cp设备1发送相关bfd报文,进一步提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
70.在到达了下下个设定周期后,假设bras-up设备1接收到了bras-cp设备1发送的bfd会话1对应的bfd报文1,并且,此时本地记录的bfd会话1的会话状态为idle2状态,在这种情形下,bras-up设备1将本地记录的bfd会话1的会话状态更改为up状态。
71.在再一次到达bfd检测周期时,假设bras-up设备1判断出bfd报文1中携带的预留字段中的值是0,此时,bras-up设备1通过上一次向bras-cp设备1发送的bfd报文3时确定出的出接口(即,与网关设备2直连的接口),向bras-cp设备1发送bfd报文3。
72.需要说明的是,针对后续各个设定周期到达时的处理流程不再一一详述。
73.由以上技术方案可以看出,在本技术实施例中,对于建立了cusp链路及其对应的创建了bfd会话的bras-cp设备和bras-up设备中的任一设备而言,在本地记录的该bfd会话的会话状态为up状态的情形下,一旦在某个设定周期内未接收到对端设备发送的该bfd会
话对应的bfd报文,不再直接将该会话状态由up状态更改为down状态,而是将该会话状态由up状态更改为第一临时状态,继续尝试向对端设备发送相应的bfd报文(此bfd报文中携带的预留字段中的值为第二设定值),以便于引导对端设备在本地记录的该bfd会话的会话状态为up状态的情形下通过更改后续发过来的相关bfd报文的源端口的方式,改变二者的中间链路,从而提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
74.并且,如果在下一个设定周期内还是未接收到对端设备发送的该bfd会话对应的bfd报文,会继续将该会话状态由第一临时状态更改为第二临时状态,重新生成相应的bfd报文(此bfd报文中携带的预留字段中的值仍为第二设定值,且此bfd报文的源端口与上一次发送的bfd报文的源端口不同),并通过确定出的重新生成的bfd报文的出接口,向对端设备发送过去,即,通过再次尝试改变中间链路,进一步提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
75.基于同一发明构思,本技术还提供了一种bfd报文发送装置,所述装置应用于bras-cp设备和bras-up设备中的任一设备,且所述bras-cp设备和所述bras-up设备之间建立了cusp链路及其对应的bfd会话,其结构示意图如图3所示,具体包括:
76.判断模块31,用于在设定周期到达时,判断是否接收到对端设备发送的所述bfd会话对应的第一bfd报文,其中,所述第一bfd报文中携带的所述bfd会话的会话状态为up状态,且所述设定周期的时长包括所述bfd会话对应的bfd检测周期的时长和重传时长;
77.第一发送模块32,用于在所述判断模块31判断结果为是时,若本地记录的所述bfd会话的会话状态为up状态,则保持本地记录的所述bfd会话的会话状态不变,并在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值,在判断出所述第一预留字段中的值是第一设定值时,通过上一次向所述对端设备发送的所述bfd会话对应的第二bfd报文时确定出的出接口,向所述对端设备发送所述第二bfd报文,在判断出所述第一预留字段中的值是第二设定值时,重新生成所述bfd会话对应的第三bfd报文,通过确定出的第三bfd报文的出接口,向所述对端设备发送所述第三bfd报文,其中,所述第一设定值用于指示所述设备不需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二设定值用于指示所述设备需要重新生成发往所述对端设备的所述bfd会话对应的bfd报文,所述第二bfd报文和所述第三bfd报文中携带的所述bfd会话的会话状态均为up状态,所述第二bfd报文中携带的第二预留字段中的值和所述第三bfd报文中携带的第三预留字段中的值均为所述第一设定值,且所述第三bfd报文和所述第二bfd报文的源端口不同;若本地记录的所述bfd会话的会话状态为第一临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并开始执行在到达所述bfd检测周期时,判断所述第一bfd报文中携带的第一预留字段中的值是第一设定值还是第二设定值的步骤;以及若本地记录的所述bfd会话的会话状态为第二临时状态,则将本地记录的所述bfd会话的会话状态更改为up状态,并在到达所述bfd检测周期时,通过上一次确定出的出接口,向所述对端设备发送所述第二bfd报文;
78.第二发送模块32,用于在所述判断模块31的判断结果为否时,若本地记录的所述bfd会话的会话状态为up状态,则将本地记录的所述bfd会话的会话状态更改为所述第一临时状态,并在到达所述bfd检测周期时,将所述第二bfd报文中携带的第二预留字段中的值
更改为所述第二设定值,通过上一次确定出的出接口,向所述对端设备发送更改后的第二bfd报文;若本地记录的所述bfd会话的会话状态为所述第一临时状态,则将本地记录的所述bfd会话的会话状态更改为所述第二临时状态,并在到达所述bfd检测周期时,重新生成所述bfd会话对应的第五bfd报文,通过确定出的第五bfd报文的出接口,向所述对端设备发送所述第五bfd报文,其中,所述第五bfd报文中携带的第四预留字段中的值为所述第二设定值,携带的所述bfd会话的会话状态为up状态,且所述第五bfd报文和所述第二bfd报文的源端口不同;以及若本地记录的所述bfd会话的会话状态为所述第二临时状态,则将本地记录的所述bfd会话的会话状态更改为down状态。
79.优选地,所述第一设定值为0,所述第二设定值为1。
80.优选地,所述第三bfd报文和所述第五bfd报文的源端口均为该设备上的端口号为所述第二bfd报文的源端口的端口号减设定数值的端口。
81.优选地,所述第三bfd报文和所述第五bfd报文的源端口均为该设备上的除所述第二bfd报文的源端口之外的任一端口。
82.由以上技术方案可以看出,在本技术实施例中,对于建立了cusp链路及其对应的创建了bfd会话的bras-cp设备和bras-up设备中的任一设备而言,在本地记录的该bfd会话的会话状态为up状态的情形下,一旦在某个设定周期内未接收到对端设备发送的该bfd会话对应的bfd报文,不再直接将该会话状态由up状态更改为down状态,而是将该会话状态由up状态更改为第一临时状态,继续尝试向对端设备发送相应的bfd报文(此bfd报文中携带的预留字段中的值为第二设定值),以便于引导对端设备在本地记录的该bfd会话的会话状态为up状态的情形下通过更改后续发过来的相关bfd报文的源端口的方式,改变二者的中间链路,从而提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
83.并且,如果在下一个设定周期内还是未接收到对端设备发送的该bfd会话对应的bfd报文,会继续将该会话状态由第一临时状态更改为第二临时状态,重新生成相应的bfd报文(此bfd报文中携带的预留字段中的值仍为第二设定值,且此bfd报文的源端口与上一次发送的bfd报文的源端口不同),并通过确定出的重新生成的bfd报文的出接口,向对端设备发送过去,即,通过再次尝试改变中间链路,进一步提高相关bfd报文的发送成功率,在一定程度上避免因该bfd会话检测超时发生震荡,进而减少cusp链路震荡。
84.本技术实施例还提供了一种电子设备,如图4所示,包括处理器41和机器可读存储介质42,所述机器可读存储介质42存储有能够被所述处理器41执行的机器可执行指令,所述处理器41被所述机器可执行指令促使:实现上述bfd报文发送方法的步骤。
85.上述的机器可读存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
86.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
87.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述bfd报文发送方法的步骤。
88.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1