一种基于bfd的链路性能检测方法及其装置的制作方法

文档序号:7636905阅读:583来源:国知局
专利名称:一种基于bfd的链路性能检测方法及其装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于BFD的链路性能检测方法及其装置。
背景技术
BFD (Bi-Directional Forwarding Detection,双向转发检测协议),是从基础传输技术中经过逐步发展而来的,因此它可以检测网络各层的故障。从本质上讲,BFD是一种高速的独立HELLO协议,类似于在路由协议中使用的协议,如开放最短路径优先协议(Open Shortest Path First, OSPF),或可以与链路、接口、隧道、路由或其他网络转发部件建立联系的中间系统到中间系统协议。BFD能够与相邻系统建立对等关系,然后,每个系统以协商的速率监测来自其他系统的BFD速率。监测速率能够以毫秒级增量设定。当对等系统没有接到预先设定数量的数据包时,它推断BFD保护的软件或硬件基础设施发生故障,不管基础设施是标记交换路径、 其他类型的隧道还是交换以太网络。BFD部署在路由器和其他系统的控制平面上。BFD检测到的网络故障可以由转发平面恢复或由控制平面恢复。BFD的主要目的是在数据平面提供一种快速的、不依赖于上层协议的链路故障检测机制。它可以触发控制平面的状态迁移,实现路由的快速收敛、FRR(Fast ReRoute,快速重路由)的快速切换,同时由于其具备隧道或LSP(Label switched path,标记交换路径) 的通路检测功能,也可以用于功能性的故障排查。通过与路由协议之间的联动很大程度的提高了路由协议的收敛速度,提高了路由的更新速度。此外,快速重路由和BFD联动技术通过提前计算备用路径,快速发现主用路径故障,并在主用路径故障时不依赖于控制平面的收敛而直接在转发平面切换至备用路径, 缩短了业务中断时间。现有的BFD技术仅仅用于链路故障检测,使能BFD检测的路由器两端设备通过相互发送和接收检测报文来判定两端点之间链路的连通性,但无法支持对于两台路由器设备之间的链路延迟和链路丢包率检测,另外,对于带宽调整等QoS(Quality of krvice,服务质量)控制功能也无法提供支持。

发明内容
本发明提供了一种基于BFD的链路性能检测方法及其设备,用以解决现有BFD技术无法提供两台BFD路由交换设备之间的链路性能检测的问题。本发明提供的基于BFD的链路性能检测方法,应用于使能了双向转发检测协议 BFD检测且建立了 BFD会话的第一设备和第二设备,该方法包括第一设备作为BFD检测发起端设备,统计被测链路的性能参数,并通过被测链路向BFD会话的第二设备发送BFD报文,其中携带有第一设备统计出的被测链路的性能参数;
8
第一设备通过被测链路接收第二设备返回的BFD响应报文,其中携带有第二设备统计的该被测链路的性能参数;第一设备根据接收到的BFD响应报文中携带的第二设备统计的链路性能参数,以及第一设备统计的链路性能参数,确定所述被测链路的性能;或/和,第二设备根据接收到的BFD报文中携带的第一设备统计的链路性能参数,以及第二设备统计的链路性能参数, 确定所述被测链路的性能。上述方法中,所述性能参数包括收发报文数量统计值;第一设备将本次BFD协商检测周期统计到的当前通过被测链路发送给第二设备的报文数量的统计值,携带于所述BFD报文发送给第二设备;第二设备将本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及从所述BFD报文获取到的第一设备所发送的报文数量的统计值,携带于所述BFD报文的响应报文返回给第一设备;第一设备确定被测链路的性能时,根据所述BFD响应报文中携带的第一统计的发送报文的数量统计值,以及第二设备统计的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率;第二设备确定被测链路的性能时,根据第二设备在本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及所述BFD报文中携带的第一设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述方法中,第一设备接收到第二设备返回的BFD响应报文之后,还包括第一设备向第二设备发送BFD报文,其中携带有第一设备在本次BFD协商检测周期内再次统计到的当前通过被测链路发送的报文数量的统计值,以及从所述BFD响应报文获取到的本次BFD协商检测周期内,第一设备前次统计到的发送报文的数量统计值和第二设备前次统计到的接收报文的数量统计值;第一设备接收第二设备返回的BFD响应报文,其中携带有第二设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及从本次 BFD协商检测周期内再次接收到的BFD报文中所获取到的本次BFD协商检测周期内,第一设备前次和再次统计到的发送报文的数量统计值、第二设备前次统计到的接收报文的数量统计值;第一设备确定被测链路的丢包率具体为第一设备在本次BFD周期内再次接收到 BFD响应报文后,根据所述BFD响应报文中携带的第一设备两次统计到的其所发送报文的数量统计值,以及第二设备两次统计到的其所接收报文的数量统计值,确定所述被测链路的丢包率;第二设备确定被测链路的丢包率具体为第二设备在本次BFD周期内再次接收到 BFD报文后,根据第二设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及再次接收到的BFD报文中携带的本次BFD协商检测周期内, 第一设备前次和再次统计到的发送报文的数量统计值、第二设备前次统计到的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述方法中,下一次BFD协商检测周期到达时,还包括
第一设备向第二设备发送BFD报文,其中携带有本次BFD协商检测周期内第一设备统计到的当前通过被测链路发送的报文数量的统计值,以及前次BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值;第一设备接收第二设备返回的BFD响应报文,其中携带有本次BFD协商检测周期内第二设备统计到的当前通过被测链路接收的报文数量的统计值,以及从接收到的BFD报文中获取到的本次BFD协商检测周期内第一设备统计到的发送的报文数量统计值、前次 BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值;第一设备确定被测链路的性能具体为根据所述BFD响应报文中携带的前次BFD 协商检测周期内第一设备发送的报文的数量统计值和第二设备接收的报文的数量统计值, 以及本次BFD协商检测周期内第一设备发送的报文的数量统计值和第二设备接收的报文的数量统计值,确定本次BFD协商检测周期内所述被测链路的丢包率;第一设备确定被测链路的性能具体为根据第二设备在本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及所述BFD报文中携带的前次BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述方法中,还包括第一设备将所述被测链路的多个BFD协商检测周期的丢包率的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的丢包率。上述方法中,所述性能参数包括收发报文的时间戳;第一设备将当前通过被测链路发送给第二设备的BFD报文的时间戳,携带于所述 BFD报文发送给第二设备;第二设备将接收到所述BFD报文的时间戳、发送BFD响应报文的时间戳,以及从所述BFD报文获取到的第一设备发送BFD报文的时间戳,携带于BFD响应报文返回给第一设备;第一设备确定被测链路的性能时,根据所述BFD响应报文中携带的第二设备接收所述BFD报文的时间戳和第一设备发送所述BFD报文的时间戳,确定第一设备到第二设备的被测链路的单向延迟;或者第一设备根据所述BFD响应报文中携带的第一设备接收所述BFD响应报文的时间戳和第二设备发送所述BFD响应报文的时间戳,确定第二设备到第一设备的被测链路的单向延迟;或者第一设备根据所述BFD响应报文中携带的第一设备接收所述BFD响应报文的时间戳和第二设备发送所述BFD响应报文的时间戳,确定第二到第一设备的被测链路的单向延迟;根据所述BFD响应报文中携带的第二设备接收所述BFD报文的时间戳和第一设备发送所述BFD报文的时间戳,确定第一设备到第二设备的被测链路的单向延迟;并根据第二设备到第一设备的被测链路的单向延迟以及第一设备到第二设备的被测链路的单向延迟,确定所述被测链路的延迟;第二设备确定被测链路的性能时,根据所述BFD报文中携带的第一设备发送所述BFD报文的时间戳和第二设备接收所述BFD报文的时间戳,确定第二设备到第一设备的被测链路的单向延迟。上述方法中,还包括第一设备将所述被测链路的多个BFD协商检测周期的链路延迟的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的链路延迟。上述方法中,通过扩展BFD报文的Auth字段携带所述性能参数;同一 BFD协商检测周期内的BFD报文和BFD响应报文具有相同的报文序列号,不同BFD协商检测周期内的 BFD报文和BFD响应报文具有不同的报文序列号。上述方法中,还包括第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级对所述被测链路的报文流量进行控制;或者第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,并将所述QoS等级信息携带于BFD报文发送给第二设备进行报文流量控制;或者第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级对所述被测链路的报文流量进行控制,并将所述QoS等级信息携带于BFD报文发送给第二设备进行报文流量控制。上述方法中,通过扩展BFD报文的Auth字段携带所述QoS等级信息。本发明提供的网络设备上使能了 BFD检测,并与对端设备建立了 BFD会话,该网络设备包括统计模块,用于统计与对端设备之间的被测链路的性能参数;BFD检测模块,用于在本端设备作为BFD检测发起端设备的情况下,在统计得到被测链路的性能参数后,通过被测链路向BFD会话的对端设备发送BFD报文,其中携带有本端设备统计出的被测链路的性能参数;以及,通过被测链路接收所述对端设备返回的BFD响应报文,其中携带有所述对端设备统计的该被测链路的性能参数;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD响应报文,其中携带有本端设备统计的该被测链路的性能参数;链路性能确定模块,用于在本端设备作为BFD检测发起端设备的情况下,根据本端设备统计的链路性能参数,以及接收到的BFD响应报文中携带的对端设备统计的链路性能参数,确定所述被测链路的性能;或/和,在本端设备作为BFD检测被动端设备的情况下, 根据接收到的BFD报文中携带的对端设备统计的链路性能参数,以及本端设备统计的链路性能参数,确定所述被测链路的性能。上述网络设备中,所述性能参数包括收发报文数量统计值;所述BFD检测模块具体用于,在本端设备作为BFD检测发起端设备的情况下,将本次BFD协商检测周期统计到的当前通过被测链路发送给对端设备的报文数量的统计值,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将本次BFD协商检测周期统计到的当前通过被测链路接收到的报文数量的统计值,以及从所述BFD报文获取到的对端设备所发送的报文数量的统计值,携带于所述BFD报文的响应报文;
链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的本端设备和对端设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的对端设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述网络设备中,所述BFD检测模块还用于,在本端设备作为BFD检测发起端设备的情况下,在接收到对端设备返回的BFD响应报文之后,向所述对端设备发送BFD报文,其中携带有本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路发送给所述对端设备的报文数量的统计值,以及从所述BFD响应报文获取到的本次BFD协商检测周期内,本端设备前次统计到的发送报文的数量统计值和对端设备前次统计到的接收报文的数量统计值;在本端设备作为BFD检测被动端设备的情况下,在本次BFD协商检测周期内再次接收到BFD报文时,将在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及从再次接收到的BFD报文所获取到的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、本端设备前次统计到的接收报文的数量统计值,携带于BFD响应报文;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,在本次BFD周期内再次接收到BFD响应报文后,根据所述BFD响应报文中携带的本端设备两次统计到的其所发送报文的数量统计值,以及对端设备两次统计到的其所接收报文的数量统计值,确定所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,在本次BFD周期内再次接收到BFD报文后,根据本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及再次接收到的BFD报文中携带的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、本端设备前次统计到的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述网络设备中,下一次BFD协商检测周期到达时所述BFD检测模块还用于,在本端设备作为BFD检测发起端设备的情况下,向第二设备发送BFD报文,其中携带本端设备本次BFD协商检测周期内统计到的当前通过被测链路发送的报文数量的统计值,以及前次BFD协商检测周期内最近一次统计到的本端设备通过被测链路发送的报文数量统计值和对端设备通过被测链路接收的报文数量统计值;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD 响应报文,其中携带有本次BFD协商检测周期内本端设备统计到的当前通过被测链路接收到的报文数量的统计值,以及从接收到的BFD报文中获取到的本次BFD协商检测周期内对端设备统计到的发送的报文数量统计值、前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的前次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,以及本次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,确定本次BFD协商检测周期内所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值, 确定本次BFD协商检测周期的所述被测链路的丢包率。上述网络设备中,所述链路性能确定模块还用于,将所述被测链路的多个BFD协商检测周期的丢包率的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的丢包率。上述网络设备中,所述性能参数包括收发报文的时间戳;所述BFD发起模块具体用于,在本端设备作为BFD检测发起端设备的情况下,将当前通过被测链路发送给所述对端设备的BFD报文的时间戳,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将接收到所述BFD报文的时间戳、发送BFD响应报文的时间戳,以及从所述BFD报文获取到的对端设备发送BFD报文的时间戳,携带于BFD响应报文;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟;或者,根据所述 BFD响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD 响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟;或者,根据所述BFD 响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟,根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟,并根据对端设备到本端设备的被测链路的单向延迟以及本端设备到对端设备的被测链路的单向延迟,确定所述被测链路的延迟;或 /和在本端设备作为BFD检测被动端设备的情况下,根据所述BFD报文中携带的对端设备发送所述BFD报文的时间戳和本端设备接收所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟。上述网络设备中,所述链路性能确定模块还用于,将所述被测链路的多个BFD协商检测周期的链路延迟的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的链路延迟。上述网络设备中,所述BFD检测模块具体用于,通过扩展BFD报文的Auth字段携带所述性能参数;其中,同一 BFD协商检测周期内的BFD报文和BFD响应报文具有相同的报文序列号,不同BFD协商检测周期内的BFD报文和BFD响应报文具有不同的报文序列号。上述网络设备中,还包括服务质量QoS控制模块或/和QoS通告模块;所述QoS控制模块,用于在所述链路性能确定模块确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级或者从对端设备接收到的该被测链路的QoS等级,对所述被测链路的报文流量进行控制;
所述QoS通告模块,用于在所述链路性能确定模块确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,并将所述QoS等级信息携带于BFD报文发送给对端设备。上述网络设备中,所述QoS通告模块具体用于,通过扩展BFD报文的Auth字段携带所述QoS等级信息。本发明的有益技术效果包括通过扩展BFD报文,使其能够携带用于进行链路性能检测相关的性能参数,从而使BFD会话两端的网络设备可以根据BFD报文交互过程,获得对端设备统计的链路性能参数,并进一步结合本端设备自己统计到的链路性能参数,确定出相应链路的性能,一方面扩展了现有BFD协议检测机制,另一方面为基于链路质量的QoS控制提供了前提条件。


图1为本发明实施例提供的基于BFD的链路性能检测以及QoS控制流程示意图;图2为现有技术中的BFD报文格式示意图;图3为本发明实施例提供的用于链路丢包率检测的BFD报文中的Auth字段格式示意图;图4为本发明实施例提供的链路丢包率检测流程示意图;图5为本发明实施例提供的用于链路延迟检测的BFD报文中的Auth字段格式示意图;图6为本发明实施例提供的链路延迟检测流程示意图;图7为本发明实施例提供的用于QoS控制的BFD报文中的Auth字段格式示意图;图8A和图8B分别为本发明实施例提供的网络设备的结构示意图。
具体实施例方式针对现有技术存在的上述问题,本发明实施例通过扩展BFD协议报文,实现BFD会话两端设备之间的链路性能检测,并进一步根据链路性能检测结果进行QoS控制。下面结合附图对本发明实施例进行详细描述。参见图1,为本发明实施例提供的基于BFD的链路性能检测以及QoS控制流程示意图。当网络设备使能了 BFD检测功能,并与对端设备建立了 BFD会话之后,BFD会话两端的网络设备就可以通过两者之间的链路、以协商好的BFD协商检测周期交互BFD报文。本发明实施例通过扩展BFD报文,使其能够承载用于确定链路性能的相关参数,使BFD会话两端的设备可以根据BFD报文进行链路性能检测,具体的,该流程可包括步骤101,BFD检测发起端设备通过被测链路向BFD会话的对端设备发送BFD报文,其中携带有BFD检测发起端设备统计的该被测链路的性能参数;步骤102,BFD检测发起端设备通过被测链路接收该对端设备返回的BFD响应报文,其中携带有该对端设备统计的该被测链路的性能参数;步骤103,BFD检测发起端设备根据自己统计的链路性能参数和该BFD响应报文中携带的对端设备统计的链路性能参数,确定该被测链路的性能;或/和,对端设备根据接收到的BFD报文中携带的BFD检测发起端设备统计的链路性能参数,以及对端设备自己统计的链路性能参数,确定该被测链路的性能。上述流程没有严格的时序要求,如,对端设备在接收到BFD检测发起端设备发送的BFD报文后,就可以进行链路性能的确定操作。在需要根据检测到的链路性能进行QoS控制的情况下,还可进一步包括以下步骤 104或/和步骤105 步骤104,BFD检测发起端设备或/和对端设备根据被测链路的性能确定对应的 QoS等级,根据确定出的QoS等级对通过该被测链路发送报文进行流量控制。步骤105,BFD检测发起端设备或/和对端设备根据自己确定出的该被测链路的性能确定对应的QoS等级,并将该QoS等级信息携带于BFD报文发送给该对方,以使对方可根据该QoS等级信息对通过该被测链路发送报文进行流量控制。链路性能通常包括丢包率、链路延迟等,下面以检测BFD会话两端设备之间的链路丢包率和链路延迟为例,对图1所示的链路性能检测流程以及进一步的QoS控制流程进行详细描述。丢包率检测主要实现对被检测的三层逻辑路径的转发丢包情况进行统计分析。本发明实施例提供的BFD会话两端设备之间的丢包率检测的主要思想是BFD会话两端设备定期向逻辑链路上发送BFD报文,通过在BFD报文中封装对应的报文计数,由BFD设备在 Ingress (入口,S卩BFD报文响应端或称被动端)和Egress (出口,S卩BFD报文发起端)节点上打入计数值,在Egress节点根据收到的BFD报文获取计数值进行丢包统计,统计方式可包括单向丢包统计方式和平均丢包统计方式,其中单向丢包统计方式根据本端设备接收到的报文数量和对端设备发送的报文数量确定丢包率,可表示为Receivel Packets-Sendl Packets ;平均丢包统计方式根据本端设备两次统计到的发送报文数量和对端设备两次统计到的接收报文数量确定丢包率,可表示为(Send2 Packets-Sendl Packets)-(Receive2 Packets-Receivel Packets)其中,Receive Packets为BFD设备在某个截至时刻接收到的报文数量的统计值, Send Packets为BFD设备在某个截至时刻发送的报文数量的统计值。BFD设备从BFD报文中获取统计值,根据滑窗要求统计对应的逻辑链路丢包情况。 由于当前BFD报文中没有额外字段用于携带报文统计值,因此需要在现有BFD报文的基础上进行扩展。现有的BFD报文的格式可如图2所示,其中,当A字段置位时,表明BFD会话需要进行认证,此种情况下,在BFD头部后面需跟着Auth部分。Auth部分中的字段可包括Auth Type 认证类型,现有的Auth Type已经使用了 0-5,对应于BFD报文的合法性认证,包括Reserved、Simple Password、Keyed MD5、Meticulous Keyed MD5>Keyed SHAU Meticulous Keyed SHAl ;Auth Len :认证报文长度,包括Auth Type和Auth Len字段的长度;Authentication Data 11 。为了实现BFD报文丢包统计,本发明实施例利用BFD报文的Auth部分携带报文数量统计计数值。如图3所示,扩展后的Auth部分中的内容可包括
Auth Type:认证类型。本发明实施例扩展一个新的类型QoS Statistics Type ; Auth Type值可设为0x6 (只要不与现有值冲突即可);Auth Len 认证报文长度,包括Auth Type和Auth Len字段的长度;Auth Key ID 可定义为0x1,用以标识报文统计认证,S卩,用于标识是进行丢包率统计,还是链路延迟统计,还是QoS等级通告;具体取值可以是字段值为Oxl为报文丢包率统计,字段值0x2为延迟统计,字段值0x3为QoS Level通告。Option 表明该报文是发起统计还是应答统计;Sequence Number 序列号;Send/Receive lockets 收发报文数量的统计计数值;其中,如果采用单向丢包统计方式进行丢包统计,则可以仅包含kndl Packets和Receivel Packets字段;如果采用平均丢包统计方式进行丢包统计,则需包含kndl Packets, Receivel Packets, Send2 Packets、Receive2 Packets 字段;Reserved :预留字段。基于以上扩展的BFD报文格式,本发明实施例提供的链路丢包率统计流程可如图 4所示。其中,设备A和设备B上启用了 BFD检测功能,是BFD会话两端的端设备,设备A按照协商的速率向设备B发送BFD报文,设备A采用平均丢包统计方式统计两者之间链路的丢包率。该流程可包括步骤401,设备A作为BFD检测发起端设备,通过被测链路向BFD会话对端的设备B 发送BFD报文,其中携带有设备A通过该被测链路所发送的报文数量的统计值kndl_nUm。具体的,在开始进行报文统计时,设备A产生一fkquence Number,将BFD包头中的A字段置位,将当前设备A发送到设备B的报文数量统计计数值填Sendlnum充到BFD 包头后面的 Auth 字段的 Sendl Packets 字段中,并将 Receivel Packets、Send2 Packets 和Receive〗 Packets字段设置成0 ;0ptiOn字段设置成0x1,表明发起报文统计;Auth Key ID字段设置成0x1,表示丢包率统计;之后,发送该BFD报文到设备B。步骤402,设备B通过该被测链路向设备A返回BFD响应报文,其中携带有设备B通过该被测链路所接收到的报文数量的统计值Receiveljum,还携带有从设备A发送的BFD 报文中所获取的Sendl_num。具体的,设备B接收BFD报文,读取Auth字段内容,获取Option字段值0x1,表明对端(设备A)发起了报文统计,本端(设备B)需要进行报文统计响应。具体的响应过程为设备B产生一个具有相同kquence Number字段值的BFD报文,将从设备A接收到的报文统计计数值Receivelnum填充到该生成的BFD报文的Receivel Packets字段中,将设备A发送的BFD报文中kndl Packets字段值kndl_num填充到该新生成的BFD报文的 Sendl Packets中,将该BFD报文的Option字段设置成0x2,表明本端(设备B)响应对端 (设备A)的报文统计,Auth Key ID字段设置成0x1 ;之后,设备B发送该BFD报文到设备 A0步骤403,设备A通过被测链路向设备B发送BFD报文,其中携带有设备A通过该被测链路所发送的报文数量的统计值Send2_nUm,还携带有从设备B发送的BFD响应报文所获取的 Sendl_num 禾口 Receivel_num。具体的,设备A接收到BFD报文后,解析Auth各个字段内容,发现Option字段为
160x2,表明是对端B设备的统计应答报文,设备A生成新的BFD报文,并将其当前发送到设备 B的报文数量统计计数值Send2_num填充到该新生成的BFD报文的knd2 Packets字段中, 将Receive2 Packets字段设置成0,将从设备B接收到的BFD响应报文中的Sendl Packets 字段值kndl_num填充到该新生成的BFD报文的kndl Packets字段,将Receivel Packets 字段值Receivel_num填充到该新生成的BFD报文的Receivel Packets字段,并将Option 字段设置成0x1,Auth Key ID字段设置成0x1,kquence Number字段值与从设备B接收到的报文的kquence Number字段值相同,之后将该新生成的BFD报文发送到设备B。步骤404,设备B通过该被测链路向设备A返回BFD响应报文,其中携带有设备B通过该被测链路所接收到的报文数量的统计值ReCeiVe2_nUm,还携带有从设备A发送的BFD 艮文中所获取的 Sendl_num、Send2_num 和 Receivel_num。具体的,设备B接收到BFD报文后,解析该BFD报文获取Option字段,其值为Oxl, 表明对端设备A发起了报文统计,本端需要进行报文统计响应。具体的响应过程为设备B 产生一个具有相同kquence Number字段值的BFD报文,将从设备A接收到的报文数量统计计数值ReCeiVe2_num填充到该新生成的BFD报文的Receive〗 Packets字段中,将从设备 A 接收至Ij的 BFDi艮文中的 Sendl Packets、Send2 Packets、Receivel Packets 字段值对应填充到该新生成的BFD报文中的相应字段中,Option字段设置成0x2,Auth Key ID字段设置成0x1,并发送该新生成的BFD报文到设备A。步骤405,设备A根据接收到的BFD响应报文中携带的Sendl_num、Send2_num、 Receivel_num和Receive2_num计算本次BFD协商检测周期的被测链路的丢包率。具体的,设备A接收到BFD报文后,解析Auth字段,获取kquence Number,读取Option字段,该字段为0x2,表明是对端设备B的统计应答报文。设备A读取Sendl Packets、Receivel Packets、Send2 Packets 和 Receive2 Packets 字段值,通过比较 (Send2_num-Sendl_num)和(Receivel_num-Receive2_num)计算单位时间段内的丢包率。若需要进行下一阶段的报文统计,则可进一步执行以下步骤步骤406,在下一个BFD协商检测周期,设备A通过被测链路向BFD会话对端的设备B发送BFD报文,其中携带有设备A在本次BFD协商检测周期,通过该被测链路所发送的报文数量的统计值Send3_nUm,以及上一个BFD协商检测周期中最近一次统计到的knd2_ num 和 Receive2_num。具体的,设备A产生一个BFD报文,其Sepuence Numbew字段值不同于前一个阶段交互的BFD报文的kquence Number字段值(如可将前一个Sequence Number加一),表明开始下一个阶段的报文统计。设备A将当前发送到设备B的报文数量统计计数值
num填充到knd2 Packets字段中,将前一个kquence Number所标识的报文统计阶段的 BFD报文中的%11(12 Packets,Receive2 Packets字段值填充到该新生成的BFD报文中的相应字段中(即将knd2 Packets字段值填写到kndl Packets字段、将Receive2 Packets 字段值填写到Receivel Packets字段),将Receive2 Packets字段设置成0,Option字段设置成0x1,表明发起报文统计,Auth Key ID字段设置成0x1 ;之后,发送该BFD报文到设备B。步骤407,设备B通过该被测链路向设备A返回BFD响应报文,其中携带有设备B通过该被测链路所接收到的报文数量的统计值ReCeiVe3_nUm,还携带有从设备A发送的BFD 艮文中所获取的 Send3_num、Send2_num 禾口 Receive2_num。具体的,设备B接收到BFD报文后,解析该BFD报文获取Option字段,其值为0x1, 表明对端设备A发起了报文统计,本端需要进行报文统计响应。具体的响应过程为设备B 产生一个具有相同kquence Number字段值的BFD报文,将从设备A接收到的报文数量统计计数值ReCeiVe3_num填充到该新生成的BFD报文的Receive〗 Packets字段中,将从设备 A 接收至Ij的 BFDi艮文中的 Sendl Packets、Send2 Packets、Receivel Packets 字段值对应填充到该新生成的BFD报文中的相应字段中,Option字段设置成0x2,Auth Key ID字段设置成0x1,并发送该新生成的BFD报文到设备A。步骤408,设备A根据接收到的BFD响应报文中携带的Send2_num、Send3_num、 Receive2_num和Receive3_num计算本次BFD协商检测周期的被测链路的丢包率。具体的,设备A接收到BFD报文后,解析Auth字段,获取kquence Number,读取Option字段,该字段为0x2,表明是对端设备B的统计应答报文。设备A读取Sendl Packets、Receivel Packets、Send2 Packets 禾口 Receive2 Packets 字段值,通过比较 (Send3_num-Send2_num)和(Receive3_num-Receive2_num)计算单位时间段内的丢包率。采用单向丢包统计方式进行链路丢包率检测时,与上述流程类似,只是在设备A 发起报文统计,设备B进行响应后,设备A就可以根据一次BFD报文交互过程获得Sendl Packets 禾口 Receivel Packets 的统计值,从而通过比较 Receivel Packets-Sendl Packets 计算单位时间段内的丢包率。进一步的,在上述流程的步骤404中,设备B从接收到的BFD报文中获得Sendl Packets, Send2 Packets, Receivel Packets字段值,并根据自己接收报文的情况统计出 Receive2 Packets字段值后,还可以根据这些字段值在设备B侧计算该被测链路的丢包率,以便作为设备B进行QoS控制的依据。同理,采用单向丢包统计方式时,设备B从设备 A接收到BFD报文,获取到其中携带的kndl Packets字段值,并根据自己接收报文的情况统计出Receivel Packets字段值后,还可以根据这些字段值在设备B侧计算该被测链路的丢包率,以便作为设备B进行QoS控制的依据。以上流程仅以设备A发起报文统计为例,描述了检测BFD会话的两端设备间的链路丢包率的流程,同理,由设备B发起报文统计时,其与设备A之间的链路丢包率检测流程与上述流程类似,在此不再赘述。为了排除数据链路中随机干扰,可以对多个BFD协商检测周期的链路丢包率进行统计得到平均丢包率,根据该平均丢包率来判定该段时间内(即该多个BFD协商检测周期的时间长度)BFD两端设备之间的链路丢包情况。以此类推,通过上述方法,能够在BFD会话的两端设备实现双向的丢包率检测。通过以上流程可以看出,通过扩展BFD报文,使其能够携带收发报文数量的统计值,从而使BFD会话两端的网络设备可以根据BFD报文交互过程,获得对端设备接收到的报文数量的统计值,并进一步结合本端设备自己统计到的发送的报文数量的统计值,确定出相应链路的丢包率。链路延迟检测主要实现对被检测的三层逻辑转发路径延时情况进行统计分析。 本发明实施例提供的BFD会话两端设备之间的链路延迟检测的主要思想是定期发送BFD 报文入被检测的三层逻辑路径,通过在BFD报文中封装时间戳,由BFD设备在hgress和Egress节点上打入时间戳并根据单端或双端检测的需要,在hgress或Egress根据时间戳计算流量时延。其中,链路延迟检测分为单路径检测和双路径检测单路径检测方式根据本端设备发送BFD报文的时间戳和对端设备接收该BFD报文的时间戳确定链路时延,可表示为Timer2-Timerl 双路径检测方式根据本端设备发送BFD报文的时间戳和对端设备接收该BFD报文的时间戳,以及对端设备返回BFD响应报文的时间戳和本端设备接收到该BFD响应报文的时间戳,确定链路时延,可表示为(Timer4-Timer3) - (Timer2-Timerl)本发明实施例中,在链路延迟检测开始后,BFD设备按照BFD协商检测周期发送 BFD报文,将时间戳封装到BFD报文中。同时对收到的BFD报文进行识别上送,由上层应用根据时间戳、按滑窗计算当前链路的时延,并可进一步按对应频率打印显示给用户。BFD报文使用Auth字段携带用于进行链路延迟检测的相关时间参数。图5示出了一种扩展后的Auth字段格式,其中,Auth Type、Auth LeruAuth Key ID (统计链路延迟时该字段取值为0x2,其他和前面描述相同)、Reserved、Option、Sequence Number字段的含义与前述扩展Auth字段中的相应字段含义相同,在此不再赘述。Timerl、Timer2、Timer3和 Timer4字段分别用于携带时间信息,其中,如果采用单路径检测方式进行链路延迟检测,则可以仅包含Timerl和Timer2字段;如果采用双路径检测方式进行链路延迟检测,则需包含 Timerl、Timer2、Timer3 禾口 Timer4 字段。基于以上扩展的BFD报文格式,本发明实施例提供的链路延迟检测流程可如图6 所示。其中,设备A和设备B上启用了 BFD检测功能,是BFD会话两端的端设备,设备A按照协商的速率向设备B发送BFD报文,设备A采用双路径检测方式对两者之间的链路进行链路延迟检测。该流程可包括步骤601,设备A作为BFD检测发起端设备,通过被测链路向BFD会话对端的设备 B发送BFD报文,其中携带有设备A发送该BFD报文的时间戳。具体的,在进行报文延迟统计时,由BFD监测的发起端设备(本流程中为设备A) 发出一个BFD报文,在该BFD报文中设置kquence Number字段值,该kquence Number字段值标识了延迟统计的一个周期,并且在该BFD报文的Timerl字段中填充该设备的发包时间点;之后,将该BFD报文发送到与设备B之间的链路上。步骤602,设备B通过该被测链路向设备A返回BFD响应报文,其中携带有设备B 接收该BFD报文的时间戳以及设备B发送该BFD响应报文的时间戳。具体的,BFD报文经过BFD设备之间的链路上传播,到达设备B时设备B接收此报文,并将接收该BFD报文的时间点填充到该BFD报文的Timer2字段中,并可进一步将该BFD 报文上送到CPU进行处理(如上送给BFD协议模块处理,协议模块进行报文解析、报文记录等操作),处理完成发送到设备A,并在发送时填充发送时间到BFD报文的Timerf字段中。步骤603,设备A根据接收到的BFD响应报文中携带的时间戳以及设备接收该BFD 响应报文的时间戳,计算本次BFD协商检测周期的被测链路的链路延迟丢包率。具体的,BFD报文在两端设置之间的链路上传播,最终到达设备A。设备A此时将接收到该报文的时间填充到BFD报文的Timer4字段中并上送到CPU计算链路延时。由于此时在一个kquence序列中各个Timer字段均已经赋值,表明一个检测周期满了,设备A 计算BFD报文在一个检测周期的延迟时间(Timer4-Timerl)-(Timer3-Timer2),该延迟时间即可认为是设备A和设备B相应链路的延时。在设备A和设备B之间的时钟严格同步的情况下,也可以直接根据Timerf-Timerl 计算出从设备A到达设备B之间的单个BFD报文的延迟,根据Timerf-Timerf计算出设备 B到达设备A之间的单个BFD报文的延迟。为了排除数据链路中随机干扰,可以对多个BFD协商检测周期的延迟进行统计得到平均延迟时间,根据平均延迟时间来判定在该段时间内(即该多个BFD协商检测周期的时间长度)BFD两端设备之间的链路延迟。在上述流程中或采用单路径检测方式的情况下,设备B可在接收到设备A发送的 BFD报文后,从接收到的BFD报文中获得Timerl字段值,并根据接收该BFD报文的时间,在设备B侧计算该被测链路的链路延迟,以便作为设备B进行QoS控制的依据。以上流程仅以设备A发起报文统计为例,描述了检测BFD会话的两端设备间的链路延迟的流程,同理,由设备B发起报文统计时,其与设备A之间的链路延迟检测流程与上述流程类似,在此不再赘述。以此类推,通过上述方法,能够在BFD会话的两端设备实现双向的链路延迟检测。通过以上流程可以看出,通过扩展BFD报文,使其能够携带收发报文的时间戳,从而使BFD会话两端的网络设备可以根据BFD报文交互过程,获得对端设备收发报文的时间戳,并进一步结合本端设备自己收发报文的时间戳,确定出相应链路的延迟。本发明实施例上述BFD会话两端设备之间的链路丢包率检测和链路延迟检测方案,可以应用于对多种形式的链路进行检测,比如直接相连的物理链路、虚电路、IP隧道、TE 隧道、MPLS LSP (其中,MPLS为Multi-Protocol Label Switching的英文缩写,中文为多协议标签交换),以及多跳的路由通道、多跳的MPLS LSP0BFD两端设备之间的链路为非TE隧道等链路时,有时还需要进行端到端的QoS控制。QoS是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定,是网络的一种安全机制,用来解决网络延迟和阻塞等问题。例如,QoS控制可包括传输延迟允许时间、最小传输画面失真度以及声像同步等。路由交换设备通常支持QoS技术。比如当设备A发送到设备B的流量过大而导致设备B发生局部拥塞而无法处理时,通常的做法是在设备A上静态配置QoS策略用以限制到达设备B的流量。这种静态配置QoS的做法会一直限制设备A到达设备B的流量,只要用户配置的QoS策略不发生改变, 那么设备A到达设备B的流量限制就不会动态的被调整,即使设备B没有接收设备A之外其他任何设备的情况下也不会放开来自于设备A的流量限制。为解决上述问题,本发明实施例中,在使能了前述的链路丢包检测或/和链路延迟检测之后,BFD设备可以周期性的执行链路丢包检测或/和链路延迟检测,并根据检测结果确认设备之间逻辑链路的质量,并根据链路质量实时调整设备之间的流量限制。比如可通过丢包统计确认QoS等级。具体的,可预先设置QoS等级统计周期,该周期长度可以是一个或者若干个BFD协商检测周期(如BFD协商检测周期为30ms,QoS等级统计周期为300ms);在QoS等级统计周期内,统计在每个最小接收时间段(即BFD协商检测周期)内正常接收的报文和丢弃的报文,并根据统计结果给出链路质量等级,该链路质量
20等级即可表示QoS等级。链路质量等级可以由用户预先配置,如丢包率在90%以上、80% 90%、70% 80% ... 10% 20%等区间,每个区间对应开一个链路质量等级。也可以通过链路延迟统计确认QoS等级。具体的,可预先设置QoS等级统计周期, 该周期长度可以是一个或者若干个BFD协商检测周期;在QoS等级统计周期内,统计每个最小接收时间段(即BFD协商检测周期)内的平均延迟时间,根据延迟时间的大小来划分链路质量等级,具体的链路质量需要取决于BFD设备之间的物理链路属性,该链路质量等级即可表示QoS等级。当然,也可以通过丢包统计和链路延迟统计相结合确定QoS等级。具体的,可根据链路丢包率和链路延迟确定链路质量等级,并可进一步根据需要调整两者的权重。优选的,为了减少QoS控制操作的频率,以便减少系统开销和提高系统稳定性,本发明实施例中,可根据多个BFD协商检测周期检测出的链路丢包率或/和链路延迟来确定链路QoS等级。在使能了 BFD的双向检测的情况下,BFD两端设备(如上述设备A或/和设备B) 可以根据需要自己确定逻辑链路的链路质量(即QoS等级),并根据当前的链路质量实时调整进入逻辑链路的数据流量。BFD设备(设备A或/和设备B)也可以将自己确定出的链路质量等级通过BFD报文通告给对端设备,对端设备可以根据该链路质量等级,调整进入逻辑链路的数据流量。具体的,以图4所示流程为例,当设备A计算得到被测链路的丢包率后,可根据一个或多个BFD协商检测周期的丢包率确定出对应的链路QoS等级,并根据该QoS等级调整当前通过该链路发送报文的流量。在设备B也能够自己计算被测链路的丢包率的情况下, 设备B可根据一个或多个BFD协商检测周期的丢包率确定出对应的链路QoS等级,并根据该QoS等级调整当前通过该链路发送报文的流量。在设备B不进行被测链路丢包率的检测的情况下,设备A可将其确定出的被测链路的QoS等级携带于BFD报文发送给设备B,以使设备B能够根据该QoS等级调整当前通过该链路发送报文的流量。以图5所示的流程为例,当设备A计算得到被测链路的链路延迟后,可根据一个或多个BFD协商检测周期的丢包率确定出对应的链路QoS等级,并根据该QoS等级调整当前通过该链路发送报文的流量。设备A还可以将其确定出的被测链路的QoS等级携带于BFD 报文发送给设备B,以使设备B能够根据该QoS等级调整当前通过该链路发送报文的流量。本发明实施例中,使用扩展的BFD报文通告链路质量。图7示出了一种用于通告链路质量的BFD报文,其中,Auth Type、Auth LeruAuth Key ID (该字段可设置为0x3,用于表示QoS Level通告)、Reserved、Option (该字段可设置为0x1,表示发起QoS Level通告)、Sequence Number字段的含义与前述扩展Auth字段中的相应字段含义相同,在此不再赘述,QoS Level字段用于携带链路质量参数值,如QoS等级。通过以上流程可以看出,上述基于BFD的链路性能检测为进行动态QoS控制提供了保证,进一步的,通过扩展BFD报文,使其能够携带本端设备根据检测到的链路性能量化出的QoS等级并发送给对端设备,从而使对端设备可以根据该QoS等级进行动态QoS控制。综上所述,本发明实施例扩展了 BFD链路检测功能,由单一的链路连通性检测扩展成集链路延迟、链路丢包率以及QoS通告于一体的协议检测。扩展了 BFD在IP网络中的运用场景,尤其用于支持IP隧道、直连链路之间的链路质量检测。本发明实施例还扩展了现有实现中仅仅对BFD协议报文进行统计和检测的方式,对BFD两端设备之间的所有数据流量进行了统计和检测,大大的提高了链路检测的可靠性和准确性。基于相同的技术构思,本发明实施例还提供了一种网络设备。该网络设备上使能了 BFD检测,并与对端设备建立了 BFD会话。如图8A或图8B所示,该网络设备可包括统计模块801,用于统计与对端设备之间的被测链路的性能参数;BFD检测模块802,用于在本端设备作为BFD检测发起端设备的情况下,在统计得到被测链路的性能参数后,通过被测链路向BFD会话的对端设备发送BFD报文,其中携带有本端设备统计出的被测链路的性能参数;以及,通过被测链路接收所述对端设备返回的 BFD响应报文,其中携带有对端设备统计的该被测链路的性能参数;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD响应报文,其中携带有本端设备统计的该被测链路的性能参数;链路性能确定模块803,用于在本端设备作为BFD检测发起端设备的情况下,根据本端设备统计的链路性能参数,以及接收到的BFD响应报文中携带的对端设备统计的链路性能参数,确定所述被测链路的性能;或/和,在本端设备作为BFD检测被动端设备的情况下,根据接收到的BFD报文中携带的对端设备统计的链路性能参数,以及本端设备统计的链路性能参数,确定所述被测链路的性能。所述性能参数可以是收发报文数量统计值;相应的,BFD检测模块802具体用于在本端设备作为BFD检测发起端设备的情况下,将本次BFD协商检测周期统计到的当前通过被测链路发送给对端设备的报文数量的统计值,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将本次BFD协商检测周期统计到的当前通过被测链路接收到的报文数量的统计值,以及从所述BFD报文获取到的对端设备所发送的报文数量的统计值,携带于所述BFD报文的响应报文;链路性能确定模块803具体用于在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的本端设备和对端设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的对端设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述网络设备中,BFD检测模块802还用于在本端设备作为BFD检测发起端设备的情况下,在接收到对端设备返回的BFD响应报文之后,向所述对端设备发送BFD报文,其中携带有本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路发送给所述对端设备的报文数量的统计值,以及从所述 BFD响应报文获取到的本次BFD协商检测周期内,本端设备前次统计到的发送报文的数量统计值和对端设备前次统计到的接收报文的数量统计值;在本端设备作为BFD检测被动端设备的情况下,在本次BFD协商检测周期内再次接收到BFD报文时,将在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及从再次接收到的BFD报文所获取到的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、本端设备前次统计到的接收报文的数量统计值,携带于BFD响应报文;链路性能确定模块803具体用于在本端设备作为BFD检测发起端设备的情况下, 在本次BFD周期内再次接收到BFD响应报文后,根据所述BFD响应报文中携带的本端设备两次统计到的其所发送报文的数量统计值,以及对端设备两次统计到的其所接收报文的数量统计值,确定所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,在本次BFD周期内再次接收到BFD报文后,根据本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及再次接收到的BFD报文中携带的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、本端设备前次统计到的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。下一次BFD协商检测周期到达时BFD检测模块802还用于在本端设备作为BFD检测发起端设备的情况下,向第二设备发送BFD报文,其中携带本端设备本次BFD协商检测周期内统计到的当前通过被测链路发送的报文数量的统计值,以及前次BFD协商检测周期内最近一次统计到的本端设备通过被测链路发送的报文数量统计值和对端设备通过被测链路接收的报文数量统计值;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD响应报文,其中携带有本次BFD协商检测周期内本端设备统计到的当前通过被测链路接收到的报文数量的统计值,以及从接收到的BFD报文中获取到的本次BFD协商检测周期内对端设备统计到的发送的报文数量统计值、前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值;链路性能确定模块803具体用于在本端设备作为BFD检测发起端设备的情况下, 根据所述BFD响应报文中携带的前次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,以及本次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,确定本次BFD协商检测周期内所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。上述网络设备中,链路性能确定模块803还可用于将所述被测链路的多个BFD协商检测周期的丢包率的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的丢包率。所述性能参数可以是收发报文的时间戳;相应的,BFD发起模块802具体用于在本端设备作为BFD检测发起端设备的情况下,将当前通过被测链路发送给所述对端设备的BFD报文的时间戳,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将接收到所述BFD报文的时间戳、 发送BFD响应报文的时间戳,以及从所述BFD报文获取到的对端设备发送BFD报文的时间戳,携带于BFD响应报文;链路性能确定模块803具体用于在本端设备作为BFD检测发起端设备的情况下, 根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述 BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟;或者,根据所述BFD 响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟;或者,根据所述BFD响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟,根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟,并根据对端设备到本端设备的被测链路的单向延迟以及本端设备到对端设备的被测链路的单向延迟,确定所述被测链路的延迟;或/和, 在本端设备作为BFD检测被动端设备的情况下,根据所述BFD报文中携带的对端设备发送所述BFD报文的时间戳和本端设备接收所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟。上述网络设备中,链路性能确定模块803还可用于将所述被测链路的多个BFD协商检测周期的链路延迟的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的链路延迟。上述网络设备中,BFD检测模块802可通过扩展BFD报文的Auth字段携带所述性能参数;其中,同一 BFD协商检测周期内的BFD报文和BFD响应报文具有相同的报文序列号,不同BFD协商检测周期内的BFD报文和BFD响应报文具有不同的报文序列号。如图8A或图8B所示,上述网络设备还可包括QoS控制模块804或/和QoS通告模块805 (图中仅示出了包含QoS控制模块804或QoS通告模块805的情况),其中QoS控制模块804,用于在链路性能确定模块803确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级或者从对端设备接收到的该被测链路的QoS等级,对所述被测链路的报文流量进行控制;QoS通告模块805,用于在链路性能确定模块803确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,并将所述QoS等级信息携带于BFD报文发送给对端设备。上述网络设备中,QoS通告模块805可通过扩展BFD报文的Auth字段携带所述QoS
等级信息。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种基于BFD的链路性能检测方法,应用于使能了双向转发检测协议BFD检测且建立了 BFD会话的第一设备和第二设备,其特征在于,包括第一设备作为BFD检测发起端设备,统计被测链路的性能参数,并通过被测链路向BFD 会话的第二设备发送BFD报文,其中携带有第一设备统计出的被测链路的性能参数;第一设备通过被测链路接收第二设备返回的BFD响应报文,其中携带有第二设备统计的该被测链路的性能参数;第一设备根据接收到的BFD响应报文中携带的第二设备统计的链路性能参数,以及第一设备统计的链路性能参数,确定所述被测链路的性能;或/和,第二设备根据接收到的 BFD报文中携带的第一设备统计的链路性能参数,以及第二设备统计的链路性能参数,确定所述被测链路的性能。
2.如权利要求1所述的方法,其特征在于,所述性能参数包括收发报文数量统计值; 第一设备将本次BFD协商检测周期统计到的当前通过被测链路发送给第二设备的报文数量的统计值,携带于所述BFD报文发送给第二设备;第二设备将本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及从所述BFD报文获取到的第一设备所发送的报文数量的统计值, 携带于所述BFD报文的响应报文返回给第一设备;第一设备确定被测链路的性能时,根据所述BFD响应报文中携带的第一统计的发送报文的数量统计值,以及第二设备统计的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率;第二设备确定被测链路的性能时,根据第二设备在本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及所述BFD报文中携带的第一设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
3.如权利要求2所述的方法,其特征在于,第一设备接收到第二设备返回的BFD响应报文之后,还包括第一设备向第二设备发送BFD报文,其中携带有第一设备在本次BFD协商检测周期内再次统计到的当前通过被测链路发送的报文数量的统计值,以及从所述BFD响应报文获取到的本次BFD协商检测周期内,第一设备前次统计到的发送报文的数量统计值和第二设备前次统计到的接收报文的数量统计值;第一设备接收第二设备返回的BFD响应报文,其中携带有第二设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及从本次BFD协商检测周期内再次接收到的BFD报文中所获取到的本次BFD协商检测周期内,第一设备前次和再次统计到的发送报文的数量统计值、第二设备前次统计到的接收报文的数量统计值;第一设备确定被测链路的丢包率具体为第一设备在本次BFD周期内再次接收到BFD 响应报文后,根据所述BFD响应报文中携带的第一设备两次统计到的其所发送报文的数量统计值,以及第二设备两次统计到的其所接收报文的数量统计值,确定所述被测链路的丢包率;第二设备确定被测链路的丢包率具体为第二设备在本次BFD周期内再次接收到BFD报文后,根据第二设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及再次接收到的BFD报文中携带的本次BFD协商检测周期内,第一设备前次和再次统计到的发送报文的数量统计值、第二设备前次统计到的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
4.如权利要求3所述的方法,其特征在于,下一次BFD协商检测周期到达时,还包括 第一设备向第二设备发送BFD报文,其中携带有本次BFD协商检测周期内第一设备统计到的当前通过被测链路发送的报文数量的统计值,以及前次BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值;第一设备接收第二设备返回的BFD响应报文,其中携带有本次BFD协商检测周期内第二设备统计到的当前通过被测链路接收的报文数量的统计值,以及从接收到的BFD报文中获取到的本次BFD协商检测周期内第一设备统计到的发送的报文数量统计值、前次BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值;第一设备确定被测链路的性能具体为根据所述BFD响应报文中携带的前次BFD协商检测周期内第一设备发送的报文的数量统计值和第二设备接收的报文的数量统计值,以及本次BFD协商检测周期内第一设备发送的报文的数量统计值和第二设备接收的报文的数量统计值,确定本次BFD协商检测周期内所述被测链路的丢包率;第一设备确定被测链路的性能具体为根据第二设备在本次BFD协商检测周期统计到的当前通过被测链路从第一设备接收到的报文数量的统计值,以及所述BFD报文中携带的前次BFD协商检测周期内最近一次统计到的第一设备通过被测链路发送的报文数量统计值和第二设备通过被测链路接收的报文数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
5.如权利要求2-4之一所述的方法,其特征在于,还包括第一设备将所述被测链路的多个BFD协商检测周期的丢包率的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的丢包率。
6.如权利要求1所述的方法,其特征在于,所述性能参数包括收发报文的时间戳; 第一设备将当前通过被测链路发送给第二设备的BFD报文的时间戳,携带于所述BFD报文发送给第二设备;第二设备将接收到所述BFD报文的时间戳、发送BFD响应报文的时间戳,以及从所述 BFD报文获取到的第一设备发送BFD报文的时间戳,携带于BFD响应报文返回给第一设备; 第一设备确定被测链路的性能时,根据所述BFD响应报文中携带的第二设备接收所述 BFD报文的时间戳和第一设备发送所述BFD报文的时间戳,确定第一设备到第二设备的被测链路的单向延迟;或者第一设备根据所述BFD响应报文中携带的第一设备接收所述BFD响应报文的时间戳和第二设备发送所述BFD响应报文的时间戳,确定第二设备到第一设备的被测链路的单向延迟;或者第一设备根据所述BFD响应报文中携带的第一设备接收所述BFD响应报文的时间戳和第二设备发送所述BFD响应报文的时间戳,确定第二到第一设备的被测链路的单向延迟;根据所述BFD响应报文中携带的第二设备接收所述BFD报文的时间戳和第一设备发送所述 BFD报文的时间戳,确定第一设备到第二设备的被测链路的单向延迟;并根据第二设备到第一设备的被测链路的单向延迟以及第一设备到第二设备的被测链路的单向延迟,确定所述被测链路的延迟;第二设备确定被测链路的性能时,根据所述BFD报文中携带的第一设备发送所述BFD 报文的时间戳和第二设备接收所述BFD报文的时间戳,确定第二设备到第一设备的被测链路的单向延迟。
7.如权利要求6所述的方法,其特征在于,还包括第一设备将所述被测链路的多个BFD协商检测周期的链路延迟的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的链路延迟。
8.如权利要求1所述的方法,其特征在于,通过扩展BFD报文的Auth字段携带所述性能参数;同一 BFD协商检测周期内的BFD报文和BFD响应报文具有相同的报文序列号,不同BFD 协商检测周期内的BFD报文和BFD响应报文具有不同的报文序列号。
9.如权利要求1-4、6-8之一所述的方法,其特征在于,还包括第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级对所述被测链路的报文流量进行控制;或者第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,并将所述QoS等级信息携带于BFD报文发送给第二设备进行报文流量控制;或者第一设备或/和第二设备确定出所述被测链路的性能之后,根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级对所述被测链路的报文流量进行控制,并将所述QoS等级信息携带于BFD报文发送给第二设备进行报文流量控制。
10.如权利要求9所述的方法,其特征在于,通过扩展BFD报文的Auth字段携带所述 QoS等级信息。
11.一种网络设备,所述网络设备上使能了 BFD检测,并与对端设备建立了 BFD会话,其特征在于,包括统计模块,用于统计与对端设备之间的被测链路的性能参数;BFD检测模块,用于在本端设备作为BFD检测发起端设备的情况下,在统计得到被测链路的性能参数后,通过被测链路向BFD会话的对端设备发送BFD报文,其中携带有本端设备统计出的被测链路的性能参数;以及,通过被测链路接收所述对端设备返回的BFD响应报文,其中携带有所述对端设备统计的该被测链路的性能参数;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD响应报文,其中携带有本端设备统计的该被测链路的性能参数;链路性能确定模块,用于在本端设备作为BFD检测发起端设备的情况下,根据本端设备统计的链路性能参数,以及接收到的BFD响应报文中携带的对端设备统计的链路性能参数,确定所述被测链路的性能;或/和,在本端设备作为BFD检测被动端设备的情况下,根据接收到的BFD报文中携带的对端设备统计的链路性能参数,以及本端设备统计的链路性能参数,确定所述被测链路的性能。
12.如权利要求11所述的网络设备,其特征在于,所述性能参数包括收发报文数量统计值;所述BFD检测模块具体用于,在本端设备作为BFD检测发起端设备的情况下,将本次 BFD协商检测周期统计到的当前通过被测链路发送给对端设备的报文数量的统计值,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将本次BFD协商检测周期统计到的当前通过被测链路接收到的报文数量的统计值,以及从所述BFD报文获取到的对端设备所发送的报文数量的统计值,携带于所述BFD报文的响应报文;链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的本端设备和对端设备统计的发送报文的数量统计值,确定本次 BFD协商检测周期的所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的对端设备统计的发送报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
13.如权利要求12所述的网络设备,其特征在于,所述BFD检测模块还用于,在本端设备作为BFD检测发起端设备的情况下,在接收到对端设备返回的BFD响应报文之后,向所述对端设备发送BFD报文,其中携带有本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路发送给所述对端设备的报文数量的统计值,以及从所述BFD响应报文获取到的本次BFD协商检测周期内,本端设备前次统计到的发送报文的数量统计值和对端设备前次统计到的接收报文的数量统计值;在本端设备作为BFD检测被动端设备的情况下,在本次BFD协商检测周期内再次接收到BFD报文时,将在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值, 以及从再次接收到的BFD报文所获取到的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、本端设备前次统计到的接收报文的数量统计值,携带于 BFD响应报文;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,在本次BFD周期内再次接收到BFD响应报文后,根据所述BFD响应报文中携带的本端设备两次统计到的其所发送报文的数量统计值,以及对端设备两次统计到的其所接收报文的数量统计值,确定所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,在本次BFD周期内再次接收到BFD报文后,根据本端设备在本次BFD协商检测周期内再次统计到的当前通过被测链路接收到的报文数量的统计值,以及再次接收到的BFD报文中携带的本次BFD协商检测周期内,对端设备前次和再次统计到的发送报文的数量统计值、 本端设备前次统计到的接收报文的数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
14.如权利要求13所述的网络设备,其特征在于,下一次BFD协商检测周期到达时所述BFD检测模块还用于,在本端设备作为BFD检测发起端设备的情况下,向第二设备发送BFD报文,其中携带本端设备本次BFD协商检测周期内统计到的当前通过被测链路发送的报文数量的统计值,以及前次BFD协商检测周期内最近一次统计到的本端设备通过被测链路发送的报文数量统计值和对端设备通过被测链路接收的报文数量统计值;在本端设备作为BFD检测被动端设备的情况下,在接收到对端设备发送的BFD报文后返回BFD响应报文,其中携带有本次BFD协商检测周期内本端设备统计到的当前通过被测链路接收到的报文数量的统计值,以及从接收到的BFD报文中获取到的本次BFD协商检测周期内对端设备统计到的发送的报文数量统计值、前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的前次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,以及本次BFD协商检测周期内本端设备发送的报文的数量统计值和对端设备接收的报文的数量统计值,确定本次BFD协商检测周期内所述被测链路的丢包率;或/和,在本端设备作为BFD检测被动端设备的情况下,根据本端设备在本次BFD协商检测周期统计到的当前通过被测链路从对端设备接收到的报文数量的统计值,以及所述BFD报文中携带的前次BFD协商检测周期内最近一次统计到的对端设备通过被测链路发送的报文数量统计值和本端设备通过被测链路接收的报文数量统计值,确定本次BFD协商检测周期的所述被测链路的丢包率。
15.如权利要求12-14之一所述的网络设备,其特征在于,所述链路性能确定模块还用于,将所述被测链路的多个BFD协商检测周期的丢包率的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的丢包率。
16.如权利要求12所述的网络设备,其特征在于,所述性能参数包括收发报文的时间戳;所述BFD发起模块具体用于,在本端设备作为BFD检测发起端设备的情况下,将当前通过被测链路发送给所述对端设备的BFD报文的时间戳,携带于所述BFD报文;在本端设备作为BFD检测被动端设备的情况下,将接收到所述BFD报文的时间戳、发送BFD响应报文的时间戳,以及从所述BFD报文获取到的对端设备发送BFD报文的时间戳,携带于BFD响应报文;所述链路性能确定模块具体用于,在本端设备作为BFD检测发起端设备的情况下,根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述 BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟;或者,根据所述BFD 响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟;或者,根据所述BFD响应报文中携带的本端设备接收所述BFD响应报文的时间戳和对端设备发送所述BFD响应报文的时间戳,确定对端设备到本端设备的被测链路的单向延迟,根据所述BFD响应报文中携带的对端设备接收所述BFD报文的时间戳和本端设备发送所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟,并根据对端设备到本端设备的被测链路的单向延迟以及本端设备到对端设备的被测链路的单向延迟,确定所述被测链路的延迟;或/和在本端设备作为BFD检测被动端设备的情况下,根据所述BFD报文中携带的对端设备发送所述BFD报文的时间戳和本端设备接收所述BFD报文的时间戳,确定本端设备到对端设备的被测链路的单向延迟。
17.如权利要求16所述的网络设备,其特征在于,所述链路性能确定模块还用于,将所述被测链路的多个BFD协商检测周期的链路延迟的平均值,确定为所述被测链路在所述多个BFD协商检测周期时间长度内的链路延迟。
18.如权利要求11所述的网络设备,其特征在于,所述BFD检测模块具体用于,通过扩展BFD报文的Auth字段携带所述性能参数;其中,同一 BFD协商检测周期内的BFD报文和 BFD响应报文具有相同的报文序列号,不同BFD协商检测周期内的BFD报文和BFD响应报文具有不同的报文序列号。
19.如权利要求11-14、16-18之一所述的网络设备,其特征在于,还包括服务质量QoS 控制模块或/和QoS通告模块;所述QoS控制模块,用于在所述链路性能确定模块确定出所述被测链路的性能之后, 根据所述被测链路的性能确定对应的QoS等级,根据确定出的QoS等级或者从对端设备接收到的该被测链路的QoS等级,对所述被测链路的报文流量进行控制;所述QoS通告模块,用于在所述链路性能确定模块确定出所述被测链路的性能之后, 根据所述被测链路的性能确定对应的QoS等级,并将所述QoS等级信息携带于BFD报文发送给对端设备。
20.如权利要求19所述的网络设备,其特征在于,所述QoS通告模块具体用于,通过扩展BFD报文的Auth字段携带所述QoS等级信息。
全文摘要
本发明公开了一种基于BFD的链路性能检测方法及其装置,应用于使能了BFD检测且建立了BFD会话的两个设备,该方法包括第一设备统计被测链路的性能参数,并向BFD会话的第二设备发送BFD报文,其中携带有该性能参数;第一设备接收第二设备返回的BFD响应报文,其中携带有第二设备统计的该被测链路的性能参数;第一设备根据接收到的BFD响应报文中携带的第二设备统计的链路性能参数,以及第一设备统计的链路性能参数,确定所述被测链路的性能;或/和,第二设备根据BFD报文中携带的第一设备统计的链路性能参数,以及第二设备统计的链路性能参数,确定所述被测链路的性能。采用本发明可解决现有BFD技术无法提供两台BFD路由交换设备之间的链路性能检测的问题。
文档编号H04L12/26GK102158371SQ20111009054
公开日2011年8月17日 申请日期2011年4月12日 优先权日2011年4月12日
发明者宋小恒 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1