减少使用网络保活消息时的错误警告的方法及装置转让专利

申请号 : CN201611246118.8

文献号 : CN107070689B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 普拉尚特·辛格赛拉姆·尼兰

申请人 : 丛林网络公司

摘要 :

本申请公开了减少使用网络保活消息时的错误警告,具体地,本申请描述了减少利用保活消息传送方案的网络装置中的错误警告的技术。为了潜在避免错误警告,发送网络装置可在当前检测间隔中稍后发送的保活检测数据包中调整服务质量QOS/TOS设置,使得保活检测数据包具有逐步提高的优先级。另外,对于在当前检测间隔中稍后发送的保活检测数据包,网络装置也可在数据包中的每个内插入主机级优先指示符以在该网络装置自身和对等网络装置两者请求优先处理。

权利要求 :

1.一种用于网络装置的方法,包括:

通过所述网络装置维持与和网络内对等网络装置的通信会话相关联的保活发送定时器和保活检测定时器,其中,所述保活发送定时器为发送用于所述通信会话的保活检测数据包限定发送时间间隔,并且所述保活检测定时器限定当前检测间隔,在所述当前检测间隔内必须接收来自所述对等网络装置的响应从而避免所述通信会话的故障事件;

响应于在所述当前检测间隔期间所述保活发送定时器期满,由所述网络装置输出与和所述对等网络装置的所述通信会话相关联的第一保活检测数据包,其中,所述第一保活检测数据包包括服务质量QoS设置,所述服务质量QoS设置控制所述网络内的数据包交换装置转发所述保活检测数据包的优先级,并且其中,所述服务质量设置具有指示第一优先级的值;以及响应于与所述当前检测间隔相关联的所述保活发送定时器第二次期满,通过所述网络装置确定自输出所述第一保活检测数据包以来从所述对等网络装置是否接收到响应,并且当没有接收到所述响应时,输出与所述通信会话相关联的第二保活检测数据包,其中,所述第二保活检测数据包包括服务质量设置,所述第二保活检测数据包的服务质量设置具有指示从所述第一优先级增加的第二优先级的值。

2.根据权利要求1所述的方法,

其中,所述第一保活检测数据包和所述第二保活检测数据包每个均包括与服务质量设置分离的主机级优先指示符,所述主机级优先指示符指定当输出所述第一保活检测数据包时由所述网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,并且当接收所述第一保活检测数据包时由所述对等网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,其中,所述网络装置将所述第一保活检测数据包的所述主机级优先指示符设置为具有指示不请求所述优先处理的第一值,以及其中,当没有接收到来自所述对等网络装置的所述响应时,所述网络装置将所述第二保活检测数据包的所述主机级优先指示符设置为具有指示请求所述优先处理的第二值。

3.根据权利要求2所述的方法,其中,所述主机级优先指示符包括以下中的一个:在保留的传输控制协议TCP位内的标记设置、在未使用的双向转发检测BFD协议诊断位内的标记设置、或未使用的互联网协议IP选项位。

4.根据权利要求1所述的方法,其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在所述通信会话上发送到所述网络装置的保活响应数据包。

5.根据权利要求1所述的方法,其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在第二通信会话上发送到所述网络装置的保活检测数据包。

6.根据权利要求1至5中任一项所述的方法,

其中,所述通信会话包括所述网络装置和所述对等网络装置之间的双向转发检测BFD协议会话,其中,由所述网络装置输出的所述第一保活检测数据包和所述第二保活检测数据包包括BFD保活检测数据包,以及其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在第二通信会话上发送到所述网络装置的BFD保活检测数据包。

7.根据权利要求1所述的方法,进一步包括:

由所述对等网络装置接收所述第一保活检测数据包;

通过所述对等网络装置构建保活响应数据包,其中,构建所述保活响应数据包包括:将所述第一保活检测数据包的所述服务质量设置复制到所述保活响应数据包内的服务质量设置;以及从所述对等网络装置向所述网络装置输出所述保活响应数据包。

8.根据权利要求7所述的方法,

其中,所述第一保活检测数据包包括主机级优先指示符,所述主机级优先指示符指定当输出所述第一保活检测数据包时由所述网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,并且当接收所述第一保活检测数据包时由所述对等网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,以及其中,通过所述对等网络装置构建所述保活响应数据包包括:将从所述网络装置接收的所述第一保活检测数据包的所述主机级优先指示符复制到所述保活响应数据包内的主机级优先指示符。

9.一种网络装置,包括:

耦接到存储指令的存储器和至少一个网络接口的一个或多个可编程处理器;以及其中,当执行所述指令时,所述处理器被配置为以下:维持与和网络内的对等网络装置的通信会话相关联的保活发送定时器和保活检测定时器,其中,所述保活发送定时器为发送用于所述通信会话的保活检测数据包限定发送时间间隔,并且所述保活检测定时器限定当前检测间隔,在所述当前检测间隔内必须接收到来自所述对等网络装置的响应从而避免所述通信会话的故障事件;

响应于在所述当前检测间隔期间所述保活发送定时器期满,由所述网络装置输出与和所述对等网络装置的所述通信会话相关联的第一保活检测数据包,其中所述第一保活检测数据包包括服务质量QoS设置,所述服务质量QoS设置控制通过所述网络内的数据包交换装置转发所述第一保活检测数据包的优先级,并且其中所述服务质量设置具有指示第一优先级的值;以及响应于在所述当前检测间隔期间相关联的所述保活发送定时器第二次期满,确定自输出所述第一保活检测数据包以来是否已从所述对等网络装置接收到所述响应,并且当没有接收到所述响应时,输出与所述通信会话相关联的第二保活检测数据包,其中所述第二保活检测数据包包括服务质量设置,所述第二保活检测数据包的服务质量设置具有指示从所述第一优先级提高的第二优先级的值。

10.根据权利要求9所述的网络装置,

其中,所述第一保活检测数据包和所述第二保活检测数据包每个均包括与所述服务质量设置分离的主机级优先指示符,所述主机级优先指示符指定当输出所述第一保活检测数据包时由所述网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,并且当接收所述第一保活检测数据包时由所述对等网络装置上的数据包处理软件或硬件优先处理所述第一保活检测数据包,其中,所述网络装置将所述第一保活检测数据包的所述主机级优先指示符设置为具有指示不请求所述优先处理的第一值,以及其中,当没有接收到来自所述对等网络装置的所述响应时,所述网络装置将所述第二保活检测数据包的所述主机级优先指示符设置为具有指示请求所述优先处理的第二值。

11.根据权利要求10所述的网络装置,其中,所述主机级优先指示符包括以下中的一个:保留的传输控制协议TCP位内的标记设置、未使用的双向转发检测BFD协议诊断位内的标记设置、或未使用的互联网协议IP选项位。

12.根据权利要求9所述的网络装置,其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在所述通信会话上发送到所述网络装置的保活响应数据包。

13.根据权利要求9所述的网络装置,其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在第二通信会话上发送到所述网络装置的保活检测数据包。

14.根据权利要求9至13中任一项所述的网络装置,

其中,所述通信会话包括所述网络装置和所述对等网络装置之间的双向转发检测BFD协议会话,其中,由所述网络装置输出的所述第一保活检测数据包和所述第二保活检测数据包包括BFD保活检测数据包,以及其中,来自所述对等网络装置的所述响应包括由所述对等网络装置在第二通信会话上发送到所述网络装置的BFD保活检测数据包。

说明书 :

减少使用网络保活消息时的错误警告的方法及装置

技术领域

[0001] 本公开总体涉及计算机网络,并且更具体涉及周期性通信,诸如用于计算机网络中的装置之间的活动(liveliness)检测的通信。

背景技术

[0002] 在网络环境内执行的应用程序频繁利用“保活(keep alive)”消息传送方案以监测网络内其它应用程序的操作状态。例如,在网络环境内的网络装置上执行的应用程序发送周期性数据包至每个装置以确认连接性并指示每个装置的操作状态。这些周期性数据包有时称为“保活”或“喂(hello,呼叫)”。例如,在一个网络装置上执行的第一应用程序可每50毫秒(ms)发送周期性数据包至在另一网络装置上执行的对等应用程序,以指示第一应用程序仍在操作。同样,应用程序可在相同时期(例如50ms)内检测来自该对等应用程序的对应周期性数据包的接收。当在分配的时间帧中未接收到阈值数量的数据包时,应用程序确定发生会话故障事件,诸如在其上执行对等应用程序的网络装置故障、连接两个网络装置的链路或节点故障,或应用程序自身故障。响应于该故障,在其上执行对等应用程序的网络装置可采取某些动作,诸如重定向通信到不同的对等应用程序。
[0003] 作为一个示例,路由器可通过建立由双向转发检测(BFD)协议提供的会话来交换周期性数据包。根据BFD,第一路由器以协商的传输时间间隔周期性发送BFD数据包,并在路由器在会话检测时间间隔内从第二路由器未接收到BFD数据包时,检测到会话失效事件。例如,路由器可协商为每50ms从对等路由器接收BFD数据包,并可独立利用该间隔的三(3)倍检测时间(即在该示例中150ms)用于检测故障。如果接收路由器在150ms会话检测时间间隔内从对等路由器未接收到BFD数据包,则接收路由器检测到关于第二路由器的连接性故障。因此,接收路由器可更新其路由信息以绕过第二路由器路由通信量。BFD协议的进一步细节可在D.Katz和D.Ward的BFD建议标准(瞻博网络,2010年6月,ISSN:2070-1721)中找到,其全部内容包括在此作为参考。

发明内容

[0004] 总体上,本公开的技术旨在减少利用保活消息传送方案的网络装置中的错误警告。如本文所描述,为了潜在避免错误警告,传输网络装置可调整通信会话的保活检测数据包的服务质量(QOS)/服务类型(TOS)设置,通信会话的保活检测数据包稍后在通信会话的检测间隔中发送,使得保活检测数据包具有逐步提高的优先级。即,当针对给定通信会话传输保活检测数据包时,网络装置监测在当前检测间隔内从对等装置是否接收到响应通信(例如,保活响应数据包或异步保活检测数据包),并因此在保活检测数据包的报头内设定QOS/TOS设置。照此,由网络装置在检测间隔中的稍后时间发送的保活检测数据包接收提高的QOS/TOS优先级,并因此接收由中间网络元件优先处理。
[0005] 另外,对于在检测间隔中稍后发送的保活检测数据包,网络装置也可在每个数据包中插入主机级(host-level)优先指示符,以在该网络装置自身和对等网络装置两者请求优先处理。例如,主机级优先指示符可指示对应保活检测数据包是在检测间隔届满之前最后发送的。操纵数据包传输的网络装置的硬件/软件(诸如包括网络堆栈软件的操作系统(内核)软件、接口驱动器、网络接口硬件,诸如网络接口卡(NIC))在服务于保活检测数据包和响应数据包的传输或接收时提供优先处理。
[0006] 此外,对等网络装置可生成响应通信,以便继承最近接收的保活检测数据包的QOS/TOS设置和任何主机级优先指示符。
[0007] 在一个示例中,一种方法,包括:用网络装置维持保活发送定时器和保活检测定时器,其与和网络内的对等网络装置的通信会话相关联。保活发送定时器为传输用于通信会话的保活检测数据包限定传输时间间隔,并且保活检测定时器限定当前检测间隔,在该当前检测间隔内必须接收来自对等网络装置的响应通信(例如,保活响应消息或异步保活检测消息)从而避免通信会话的故障事件。该方法进一步包括在当前检测间隔期间,响应于保活发送定时器期满,由网络装置输出与和对等网络装置的通信会话相关联的第一保活检测数据包,其中保活检测数据包包括服务质量(QoS)设置,其控制网络内的数据包交换装置转发保活检测数据包的优先级,并且其中QoS设置具有指示第一优先级的值。该方法进一步包括:响应于当前检测间隔期间内的相关联的保活发送定时器第二次期满,确定自输出第一保活检测数据包以来是否已从对等网络装置接收到通信,并且当没有接收到通信时,输出与通信会话相关联的第二保活检测数据包,其中第二保活检测数据包包括QoS设置,其具有指示从第一优先级提升到的第二优先级的值。
[0008] 在另一示例中,一种方法,包括:通过网络装置接收与和网络内对等装置的通信会话相关联的保活检测数据包,其中保活检测数据包包括服务质量(QoS)设置,其控制网络内数据包交换装置转发保活检测数据包的优先级。该方法进一步包括:用网络装置构建保活响应数据包,将保活检测数据包内的QoS设置复制到保活响应数据包内的QoS设置,并从网络装置向对等网络装置输出保活响应数据包。
[0009] 在另一示例中,网络装置包括存储器、一个或多个可编程处理器、网络接口和控制单元。该控制单元经配置执行本文所描述的操作。
[0010] 在另一示例中,计算机可读存储介质编码有指令。该指令使得网络装置的一个或多个可编程处理器执行本文所描述的操作。
[0011] 一个或多个示例的细节在附图和下面描述中阐述。本公开的其它特征、目标和优点将从描述和附图以及从权利要求中显而易见。

附图说明

[0012] 图1是示出其中可实施本文所描述的技术的示例网络系统的框图。
[0013] 图2是示出实施本文所描述的技术的另一示例网络系统的框图。
[0014] 图3是示出根据本文的公开的示例性网络装置的框图。
[0015] 图4是示出根据本文的公开的示例性路由器的框图。
[0016] 图5是示出根据本公开的一个或多个方面的示例过程的流程图,参与保活消息传送方案的网络装置通过该示例过程进行操作。

具体实施方式

[0017] 图1是示出其中可实施本文所描述的技术的示例网络系统10的框图。在该示例中,网络系统10包括根据本文所描述的技术操作和彼此交互的网络装置12A、12B(“网络装置12”)。网络装置12彼此直接通信耦接,或经由通过物理链路18互连的一个或多个中间网络元件(“E”)间接通信耦接。网络元件16可例如为路由器、交换机、网关、防火墙等。链路18表示任何物理介质,诸如铜线、同轴电缆、不同光纤线的主线(host)中的任一种、无线连接和它们的各种组合。
[0018] 总体上,网络装置12执行彼此周期性发送状态消息(例如发送“周期性数据包”或“保活数据包”)以便指示彼此的监测操作状态和连接状态的应用程序。即,通过发送周期性询问以及检测类似周期性询问的接收,网络装置12检测由网络装置12、网络元件16或它们之间的链路18中的一个或多个引起的任何故障。在检测到这种故障时,检测网络装置12采取某些动作,诸如重定向通信到不同的对等应用程序。网络装置12可以是终端用户计算机、桌上型计算机、膝上计算机、移动装置、服务器、虚拟机或联网基础设施,诸如路由器、交换机、网关、防火墙或其它支持网络的装置。
[0019] 在图1的示例中,在网络装置12A上执行的应用程序与网络装置12B建立通信会话15诸如传输控制协议(TCP)会话,并且通过通信会话传输保活检测数据包14A至网络装置
12B。在被传输时,保活检测数据包14A首先由网络装置12A上的发送硬件/软件(例如,包括网络堆栈软件的内核软件、接口驱动器和网络接口硬件)处理、在传送数据包时由中间网络元件16的硬件/软件(例如,网络元件的包转发ASIC、交换机结构、包队列)处理,并且最终由网络装置12B的接收硬件/软件处理。
[0020] 作为响应,网络装置12B在通信会话15上传输保活响应数据包14B。即,在接收到保活检测数据包14A时,网络装置12B构建相应的保活响应数据包14B并通过通信会话输出响应数据包至网络装置12A。保活响应数据包14B因此在发送数据包时由网络装置12B上的发送硬件/软件处理,当传送数据包时由中间网络元件16的硬件/软件(例如,包转发ASIC、交换机结构、包队列)处理,并且最终由网络装置12A的接收硬件/软件处理。
[0021] 在操作中,网络装置12A实施发送(或“发送”)定时器,其控制保活检测数据包14A通过通信会话的传输。即,发送定时器测量网络装置12A通过通信会话传输保活检测数据包14A的间隔,并在达到协商间隔时触发数据包发送。
[0022] 网络装置12A实施检测定时器以监测保活响应数据包14B的接收。检测定时器测量通过通信会话接收的保活响应数据包14B之间的间隔。使用检测定时器,网络装置12A确定网络装置12B的操作状态,即,网络装置12A是否能够运行和在通信。例如,如果网络装置12A在会话检测时间内没有接收到保活响应数据包14B,则网络装置确定阻止通信的网络事件发生,诸如中间链路18或网络元件16故障,或网络装置12B的硬件和/或软件故障。在许多实例中,网络装置12A设置检测定时器为协商的发送间隔的倍数(例如,整倍数),诸如3*发送_间隔的值。例如,如果网络装置12A使用的发送间隔为50ms,则如果在150ms(即三(3)倍发送间隔)中没有接收到保活响应数据包14B,网络装置12A可确定故障发生。
[0023] 在一些状况下,即使网络装置12B没有故障并且通信连接仍存在于装置之间,网络装置12A的检测定时器仍可能期满。例如,中间网络元件16内的导致长数据包队列的网络拥塞(即大量的通信负荷)可引起通信延迟,该通信延迟超过由网络装置12A维持的检测间隔。在该时期期间,网络装置12A将通常已发送多个保活检测数据包14A,其每个以相应的发送间隔发送。在检测间隔期间由网络装置12A发送的连续保活检测数据包14A中的每个经过中间元件16和链路18,并可受到相同拥塞和网络延迟,由此在网络装置12B处发生间隔期满的网络事件。
[0024] 如本文所描述,为了潜在避免错误警告,网络装置12A可调整在检测间隔中稍后发送的保活检测数据包14A的服务质量(QOS)/服务类型(TOS)设置,以便具有逐步提高的优先级。即,当发送保活检测数据包14A时,网络装置12A监测保活响应数据包14B是否已接收,并因此在保活检测数据包14A的报头内设置QOS/TOS设置。例如,当预期的保活响应数据包14B在当前检测间隔内没有接收到时,网络装置12A可在输出的保活检测数据包14A中利用提高的QOS/TOS设置。此外,当在当前检测间隔内仍没有接收到保活响应数据包14B时,网络装置12A在发送随后的保活检测数据包14A时,可利用进一步提高的QOS/TOS设置。照此,由网络装置12A在网络装置12B的检测间隔中稍后的时间发送的保活检测数据包14A接收提高的QOS/TOS优先级,并因此接收中间网络元件16的优先处理以及网络装置12A、12B的排队和处理操作的优先处理。
[0025] 另外,对于稍后在检测间隔中发送的保活检测数据包14A,网络装置12A可在每个数据包中插入主机级优先指示符以请求由网络装置12A、12B的优先处理。例如,网络装置12A可在网络装置12B的检测间隔期满前要发送的最后保活检测数据包14A内包括主机级优先指示符。包含主机级优先指示符的保活检测数据包14A通过网络装置12A的发送硬件/软件和网络装置12B的接收硬件/软件两者以较高优先级服务。通常处理数据包传输的网络装置12A、12B的示例硬件/软件包括操作系统(内核)软件(其包括网络堆栈软件)、接口驱动器、网络接口硬件诸如网络接口卡(NIC)。网络装置12A、12B上的硬件/软件可基于中断驱动而不是线程轮询方案服务于具有主机级优先指示符的保活检测数据包14A的发送或接收,该线程轮询方案将另外用于不包括优先指示符的保活检测数据包14A。作为另一示例,网络装置12A、12B的硬件/软件可为包含优先指示符的保活检测数据包14A维持分离的发送和接收队列,由此绕过用于不包含主机级优先指示符的数据包的队列。
[0026] 这样,本文所描述的技术可有助于由网络装置12A维持的检测间隔接近期满时确保保活检测数据包14A及时传送,由此提高保活检测数据包到达网络装置12B的可能性,并避免由网络元件16或网络装置12A、12B自身内的网络拥塞引起的错误警告。
[0027] 此外,在一些示例实施方案中,网络装置12B生成保活响应数据包14B,以便继承最近接收的保活检测数据包14A的QOS/TOS设置和任何主机级优先指示符。即,当构建保活响应数据包14B时,网络装置12B可在数据包报头内将QOS/TOS设置设定为与最近接收的保活检测数据包14A的数据包报头内的QOS/TOS设置相同。此外,网络装置12B也可设置保活响应数据包14B内的主机级优先指示符以与最近接收的保活检测数据包14A内的主机级优先指示符相同。照此,在接收具有逐步提高的优先级和主机级优先指示符的保活检测数据包14A,由此在中间网络元件16和/或网络装置12A内接收优先处理并避免网络拥塞的情况下,响应于此发送的保活响应数据包14B将自动具有相同的逐步提高的优先级和主机级优先指示符。因此,在该示例实施方案中,保活响应数据包14B将类似地具有在中间网络元件16和/或网络装置12A内避免网络拥塞,以便在预期的时间帧内由网络装置12A接收并处理的增加的可能性。也就是说,具有逐步提高的优先级和主机级优先指示符的保活检测数据包14A的接收向网络装置12B提供以下指示:网络装置12A在操作中但没有接收保活响应数据包14B,并因此网络装置12A试图逐步提高优先级和主机级优先指示符以避免保活消息传送方案的故障的错误警告触发。照此,当生成保活响应数据包时,网络装置12B将优先级和主机级优先指示符镜像到保活响应数据包14B中,以进一步帮助避免触发错误警告。
[0028] 在一个示例实施方案中,在网络装置12A、12B上执行的应用程序可在保活检测数据包14A和保活响应数据包14B的IPv4和IPv6报头中配置差分服务字段(DS字段),从而为数据包设置希望的QOS/TOS优先级。IP中的差分服务字段的进一步的示例细节在RFC 2474,在IPv4和IPv6报头中的差分服务字段(DS字段)的定义(Definition of the Differentiated Services Field(DS Field)in the IPv4 and IPv6 Headers),1998年12月中描述,其全部内容包括在此作为参考。
[0029] 此外,当利用基于TCP/IP的通信会话时,网络装置12A、12B的应用程序可利用TCP报头的保留位或“紧急”(URG)位中的一个或多个以携带主机级优先指示符。作为另一个示例实施方案,当利用BFD通信会话时,网络装置12A、12B可利用BFD报头的诊断(DIAG)位中的一个或多个以携带主机级优先指示符。作为另一示例,应用程序可在IP报头内利用选项字段以携带主机级优先指示符。
[0030] 图2是示出其中网络装置12A、12B彼此交换保活数据包的另一示例的框图。在上面关于图1描述的示例中,网络装置12A、12B实施基于确认的通信方案,其中网络装置12A发送保活检测数据包14A,并且网络装置12B以响应通信(例如保活响应数据包14B)的方式做出响应。在图2的示例实施方案中,网络装置12A、12B各个均通过一个或多个通信回话15A、15B输出保活检测数据包的所谓“心跳(heart beat)”。即,在该示例中,网络装置12A在某个发送间隔发送保活检测数据包14A,同时网络装置12B类似地在某个发送间隔输出保活检测数据包14B。如上所描述,每个网络装置12A、12B监测保活检测数据包是否已在当前检测间隔内从另一装置接收,并且当生成和发送其相应的保活检测数据包时,相应地在保活检测数据包的报头内设置QOS/TOS设置。例如,当保活检测数据包14B在由网络装置12A维持的检测间隔内没有接收到时,网络装置12A可利用提高的QOS/TOS设置。类似地,当保活检测数据包14A在由网络装置12B维持的当前检测间隔内没有接收到时,网络装置12B可为保活检测数据包14B利用提高的QOS/TOS设置。另外,网络装置12A、12B可在发送时为保活检测数据包
14A、14B分别插入主机级优先指示符,以请求由网络装置12A、12B优先处理。
[0031] 如所描述,具有提高的QOS/TOS优先级的保活检测数据包14A、14B接收由中间网络元件16的优先处理,并且具有主机级优先指示符的此类数据包被进一步优先化且由网络装置12A、12B有效处理。这样,本文所描述的技术可帮助确保及时传送保活检测数据包14A、14B,以便避免由网络元件16或网络装置12A、12B自身内的网络拥塞引起的错误警告。
[0032] 此外,在一些示例中,网络装置12A、12B两者将保活检测数据包14A、14B生成为继承从另一网络装置最近接收的保活检测数据包的QOS/TOS设置和任何主机级优先指示符。即,当接收具有提高的QOS/TOS设置和任何主机级优先指示符的输入的保活检测数据包时,网络装置12中的接收方将该设置复制在其将发送的保活检测数据包中。例如,具有逐步提高的优先级和主机级优先指示符的保活检测数据包14A的接收向接收网络装置12B提供以下指示:网络装置12A在操作中但没有接收到来自网络装置12B的保活检测数据包14B,并且作为响应,网络装置12A试图逐步提高优先级和主机级优先指示符以避免保活消息传送方案的故障的错误警告触发。照此,当生成保活响应数据包时,网络装置12B将优先级和主机级优先指示符镜像到保活响应数据包14B中,以进一步帮助避免触发错误警告。
[0033] 上面关于图1和图2描述的技术可应用于利用周期性消息以用于向对等装置指示操作状态和连接状态的各种网络协议。一个示例性协议称为双向转发检测(BFD)协议,其一般用于两个网络装置之间以便每个路由器紧密监测另一装置的状态(例如健康)。例如,网络装置12可为发送“喂”数据包形式的状态询问和响应于此而异步地或在需要时(例如,如在BFD需求模式中)建立BFD会话。在任一情况下,BFD协议提供非常短的时间间隔,网络装置12必须在该时间间隔期间传输周期性消息,并因此可有利于由处于有效BFD会话中的网络装置12迅速检测故障。BFD协议的进一步示例细节在D.Katz,D.Ward的双向转发检测(Bidirectional Forwarding Detection),2010年6月中描述,其全部内容包括在此作为参考。
[0034] 图3是示出为一个或多个应用程序103A-103M(“应用程序103”)提供操作环境的示例网络装置100的框图。例如,网络装置100可表示图1、图2的网络装置12A、12B中的任一个。
[0035] 在该示例中,网络装置100包括网络接口101以发送和接收网络数据包。另外,网络装置100包括微处理器110,其执行操作系统106从而为一个或多个应用程序103提供执行环境,一个或多个应用程序103通过基于数据包的网络与其它网络装置通信。总体上,应用程序103表示利用保活消息与其它网络装置通信的网络装置的任何部件。如本文所论述,在示例实施方案中,网络装置可以是端点网络装置,例如用户计算装置、后端服务器或在“云”中执行的虚拟机。示例用户相关应用程序包括电子邮件应用程序、视频会议应用程序、对等计算应用程序等。作为另外示例,网络装置100可提供网络操作,诸如路由器、交换机、防火墙、入侵检测系统、网络缓存、DNS服务器。示例应用程序103包括路由协议、装置管理应用程序,诸如BFD、SNMP或NETCONF等。
[0036] 在图3的示例中,在网络装置100内执行的操作系统106实施用于在开放系统互联(OSI)联网模型(示为协议堆栈114)的各层处理数据的内核级过程。操作系统106提供API,应用程序103通过该API创建套接字112,并建立例如基于TCP/IP的通信会话以用于发送和接收每个套接字的路由消息。OSI模型的细节在ISO 7498,第二信息技术——开放系统互联——基础参考模型:基础模型(2nd Information technology--Open Systems Interconnection--Basic Reference Model:The Basic Model),(1994)中描述,其包括在此作为参考。TCP的进一步细节在RFC 793,传输控制协议,互联网工程特别工作组(TRANSMISSION CONTROL PROTOCOL,Internet Engineering Task Force)(IETF),1981年9月中描述,其全部内容包括在此作为参考。
[0037] 套接字112为具有由操作系统106维持的数据结构和状态数据的逻辑构造,并可视为充当应用程序103和协议堆栈114之间的接口。例如,套接字112可包括限定与一个或多个通信会话相关的数据的一个或多个数据结构,诸如套接字的文件描述符、套接字的线程标识符,套接字的激活/备份状态,以及协议堆栈114内TCP套接字的指针。在本文中套接字用作一个共同机制以用于在装置之间建立通信会话,并且本文所描述的技术可应用于利用会话维持消息的任何其它类型的通信会话。
[0038] 在示例中,协议堆栈114的TCP实施方案包括保活管理器116,其提供通过应用程序103实例化(instantiated)的每个套接字112的保活功能的。例如,对于每个套接字,保活管理器116创建定时器122,诸如发送定时器和检测定时器,以用于分别针对对应套接字,即由应用程序103建立的每个通信会话,触发保活检测消息和保活响应消息的发送。根据本文所描述的技术,保活发送控制器(“TX”)118和保活接收控制器(“RCV”)120分别响应于发送定时器和检测定时器122操作。
[0039] 例如,保活接收控制器120在接收到针对给定通信会话的保活响应消息时产生消息124以通知保活发送控制器118。当构造和发送保活检测数据包14A时,保活发送控制器118基于最近的保活响应数据包14B在当前检测间隔内何时被接收,在数据包的报头内设置QOS/TOS设置。例如,如果在当前检测间隔内自发送在先保活检测数据包14A以来还没有接收保活响应数据包14B,则当构建当前保活检测数据包14A时,保活发送控制器118可利用提高的QOS/TOS设置。此外,在保活响应数据包14B在该相同时间间隔中稍后的时间仍没有被接收的情况下,当传输随后的保活检测数据包14A时,保活发送控制器118可利用进一步提高的QOS/TOS设置。照此,由保活发送控制器118针对相应套接字112在检测间隔中稍后的时间发送的保活检测数据包14A接收提高的QOS/TOS优先级,并因此接收由中间网络元件的优先处理。另外,对于检测间隔中稍后发送的保活检测数据包14A,保活发送控制器118可在每个数据包中插入主机级优先标识符以请求由端点网络装置优先处理。这样,本文所描述的技术可帮助检测间隔接近期满时确保保活检测数据包14A及时传送,由此避免由网络元件
16或网络装置12A、12B自身内的网络拥塞引起的错误警告。
[0040] 作为一个示例,保活发送控制器118通常可如表1所示来操作。在该示例中,保活接收控制器120配置有发送间隔五(5)倍的检测间隔,并且在保活响应数据包14B从对等网络装置未接收到的情况下,在整个检测间隔中构建如表1所示的保活检测数据包。
[0041] 表1
[0042]
[0043] 在该示例中,保活发送控制器118在当前检测间隔内为通信会话构建第一保活检测数据包14A和第二保活检测数据包14A作为传统保活检测数据包14A,即,无任何TOS/QOS设置并且不请求任何主机级优先指示符。在没有接收到保活响应数据包14B的情况下,此时保活发送控制器118在相同时间间隔内传输第三保活检测数据包14A,保活发送控制器118在检测间隔内构建第三保活检测数据包14A,其具有提高的优先级位,例如设置成中优先级,但此时不在保活检测数据包内包括主机级优先指示符。在保活发送控制器118被触发以在相同检测间隔内发送第四保活检测数据包14A的时间,保活接收控制器120还未接收到保活响应数据包14B的情况下,保活发送控制器118构建第四保活检测数据包14A以具有提高的优先级位,例如设定成中优先级,以及具有主机级优先指示符。最终,在该示例中,如果当保活发送控制器118被触发以传输第五保活检测数据包14A时保活接收控制器120尚未接收到保活响应数据包14B,则保活发送控制器在检测间隔内构建第五保活检测数据包14A以具有高优先级的提高的优先级位并包括主机级优先指示符。
[0044] 另外,网络装置100的保活发送控制器118和保活接收控制器120操作以响应于针对给定会话的来自另一装置的保活消息。例如,保活接收控制器120可接收进入的保活检测消息14A’。响应于那些进入的保活检测消息14A’,保活接收控制器120输出引导发送控制器118构建并输出保活响应消息14B’的消息126。当生成消息126时,保活接收控制器120包括在进入的保活检测消息14A’内存在的优先级设置(例如TOS/QOS位)和任何主机级优先指示符,由此将该信息通信到保活发送控制器118。作为响应,保活发送控制器118生成保活响应数据包14B’,以便继承最近接收的保活检测数据包14A’的QOS/TOS设置和任何主机级优先指示符。即,当构建保活响应数据包14B’时,保活发送控制器118在数据包报头内设置QOS/TOS设置和主机级优先指示符以与最近接收的保活检测数据包14A’的数据包报头内的QOS/TOS设置和主机级优先指示符相同(即,复制),如由消息126所指定。照此,在接收具有逐步提高的优先级和主机级优先指示符的保活检测数据包14A’,由此接收在中间网络元件和/或主机网络装置内的优先级处理并避免网络拥塞的情况下,响应于此发送的保活响应数据包14B’将自动具有相同的逐步提高的优先级和主机级优先指示符。
[0045] 图4是示出根据本文中的公开的示例性路由器230的框图。路由器230是图1至图3中示出的网络装置12中任一个的一个示例实施方案。尽管路由器230示出执行本文所描述的技术的一个可能的路由器实施方案,但应认识到,根据本公开,各种其它实施方案是可行的。
[0046] 在该示例中,路由器230包括控制单元231,其包括路由引擎232和转发引擎234。另外,路由器230包括用于将数据包经由进入链路252A-252N(共同称为“进入链路252”)和输出链路254A-254N(共同称为“输出链路254”)通信的一组接口卡(IFC)250A-250N(共同称为“IFC250”)。
[0047] 路由引擎252主要提供用于控制平面协议(诸如包括在协议240中的那些平面协议)的操作环境。例如,维持路由信息236一个或多个路由协议(“RP”)247反映网络以及其连接到的其它网络实体的当前拓扑。具体地,每个RP 247更新路由信息236以准确反映网络和其它实体的拓扑。示例路由协议包括多协议边界网关协议(mpBGP)、中间系统到中间系统(ISIS)路由协议、开放最短路径优先(OSPF)路由协议等。
[0048] 路由引擎232生成转发信息238并用转发信息编程转发引擎234,转发信息238根据路由信息236将网络目的地与特定的下一跳和IFC 250的对应接口端口相关联。路由引擎232可生成具有表示网络内目的地的叶节点的基数树形式的转发信息238。
[0049] 基于转发信息238,转发引擎234将从进入链路252接收的数据包转发到与下一跳对应的输出链路254,该下一跳与数据包的目的地相关联。美国专利7,184,437提供了关于利用基数树以进行路由解析的路由器的示例性实施例的细节,该专利的全部内容包括在此作为参考。
[0050] 在一个示例中,转发引擎234为可选地分布在多机架路由器上的丰富和动态的共享转发平面。此外,转发平面234可由专用转发集成电路提供,其通常与网络路由器的高端路由部件相关联。路由器230的一个示例实施例的进一步细节可在于2008年5月20日提交的、标题为“在共享转发平面中使用动态过滤器以用于路由和安全的改进数据包转发(STREAMLINED PACKET FORWARDING USING DYNAMIC FILTERSFOR ROUTING AND SECURITY IN ASHARED FORWARDING PLANE)的美国临时专利申请61/054,692中找到,其包括在此作为参考。
[0051] 此外,如图4所示,协议240包括根据本文所描述的技术增强的BFD模块239。例如,BFD模块239连同路由器230的其它部件一起经配置以避免如本文所描述的潜在错误警告。路由引擎232的BFD模块239可在转发引擎234或利用基于BFD协议的逻辑的IFC 50的任一个中的类似逻辑(未示出)中编程BFD模块239’,以监测进入的BFD数据包并向路由引擎239报告与另一路由器的故障连接。BFD模块239可以例如用配置信息编程BFD模块239’,该配置信息指定对于在确认装置的检测间隔内稍后发送的保活检测数据包逐步提高的TOS/QOS设置和主机级优先指示符,诸如表1所示示例。配置信息可例如通过装置管理会话从管理员接收,或在会话协商期间从对等网络装置接收。
[0052] BFD模块239’实施基于BFD协议的功能,诸如传输和监测由转发引擎234接收的周期性数据包,由此保留否则由路由引擎232花费的资源。在检测到连接故障的情况下,BFD模块239’经配置以传送故障通知或其它类似指示至路由引擎232的BFD模块239。响应于从转发引擎234的BFD模块239’接收故障指示,BFD模块239使得RP 247更新当前存储到路由信息236的网络拓扑,从而反映由BFD故障表示的一个或多个故障链路。
[0053] 如图4所示,转发引擎234包括通信地耦接到BFD模块239’的保活管理器216。尽管为了清楚起见示出了与BFD模块239’分离,但在各示例中,保活管理器216可包括在BFD模块239’中,或可在路由器230的其它部件中实施。
[0054] 总体上,保活管理器216如本文所描述(诸如关于保活管理器116)操作,以减少或避免关于由BFD模块239’实施的BFD协议的触发错误警告。即,保活管理器216为由BFD模块239’实例化的每个BFD会话提供保活功能。例如,对于每个通信会话,保活管理器216使发射定时器和检测定时器实例化以用于触发BFD保活消息的发送,并且如果需要,则分别地为对应BFD会话触发BFD保活响应消息的发送。尽管图4中未示出,但根据本文所描述的技术,保活管理器216可包括如关于保活TX控制器118和保活RCV控制器120描述的,响应于内部定时器操作的保活发送控制器和保活接收控制器。照此,保活管理器216可为相应的BFD会话在检测间隔中稍后的时间生成BFD保活数据包,以包括提高的QOS/TOS优先级,并因此接收由中间网络元件的优先处理。另外,对于在检测间隔中稍后发送的BFD保活数据包,保活管理器216可在每个数据包中插入主机级优先指示符以请求由端点网络装置优先处理。这样,本文所描述的技术可在检测间隔接近期满时帮助确保及时传送BFD保活数据包,由此避免由网络拥塞引起的错误警告。此外,当构建BFD保活数据包时,保活管理器216可在数据包报头内设置QOS/TOS设置和主机级优先指示符以与最近接收的BFD保活数据包的数据包报头内的QOS/TOS设置和主机级优先指示符相同。照此,在接收具有逐步提高的优先级和主机级优先指示符的BFD保活数据包,由此接收中间网络元件和/或主机网络装置内的优先级处理并避免网络拥塞的情况下,响应于此发送的BFD保活数据包将自动具有相同的逐步提高的优先级和主机级优先指示符。
[0055] 图4所示的路由器230的架构仅为示例性目的示出。在其它实施方案中,路由器230可以以各种方式配置。在一个示例中,控制单元231和其对应功能可分布在IFC 250内。控制单元31可仅以软件或硬件实施,或可实施为软件、硬件或固件的组合。例如,控制单元231可包括执行软件指令的一个或多个处理器。在此情况下,控制单元231的各种软件模块(诸如协议240)可包括可执行指令,其存储在计算机可读介质(诸如计算机存储器、计算机可读存储装置(例如硬盘和/或固态硬盘)或非暂时性计算机可读介质中的一个或多个)上。
[0056] 图5是示出根据本公开的一个或多个方面的示例过程的流程图,参与保活消息传送方案的网络装置通过该示例过程进行操作。在图5的示例中,关于第一网络装置和第二(对等)网络装置描述技术。图5的网络装置可以例如表示图1-图2的网络装置12A、12B、图3的网络装置100或图4的网络路由器200中的任一个。
[0057] 初始,第一网络装置接收配置信息(300)并与对等网络装置建立通信会话诸如BFD会话(301)。例如,第一网络装置可接收配置信息,其指定对于在确认装置的检测间隔内稍后发送的保活检测数据包具有逐步提高的TOS/QOS设置和主机级优先标识符,诸如表1所示示例。配置信息可例如通过装置管理会话从管理员或从对等网络装置接收。
[0058] 在与对等网络装置建立通信会话时,第一网络装置启动用于会话的发送定时器(302),并且响应于发送定时器期满,构建并输出保活检测数据包(304)。如本文所描述,为了潜在避免错误警告,发送网络装置在检测间隔中稍后发送的保活检测数据包中调整服务质量(QOS)/服务类型(TOS)设置和任何主机级优先指示符,以便具有逐步提高的优先级。即,当构建给定的保活检测数据包时,网络装置确定自网络装置发送的最后保活检测数据包以来是否已从对等网络装置接收到通信(例如保活响应数据包或保活检测数据包)。当没有接收到通信时,网络装置构建并输出保活检测数据包,并基于配置数据设置QoS设置以便具有提高的优先级。此外,当自对等网络装置没有接收到通信时,网络装置设置保活检测数据包的主机级优先指示符以具有指示请求优先处理的值。
[0059] 对等网络装置构建响应通信(306)。作为一个示例,对等网络装置可响应于接收保活检测数据包而构建保活响应数据包。作为另一示例,对等网络装置可在相应的发送定时器期满时构建其自己的保活检测数据包。在任何情况下,对等网络装置将第一保活检测数据包的QoS设置和任何主机级优先指示符复制到响应通信的QoS设置和主机级优先指示符(308)。一旦构建,对等网络装置输出响应通信至第一网络装置(310)。对等网络装置可经由接收保活检测数据包所利用的同一通信会话输出响应通信。例如,对等网络装置可构建并输出作为保活响应数据包的响应通信,并且在同一通信会话上输出保活响应数据包。可替换地,对等网络装置可在不同通信会话上输出响应通信至第一网络装置。例如,对等网络装置可构建作为保活检测数据包(例如异步BFD检测数据包)的响应通信,并在与从第一网络装置接收保活检测数据包所经由的通信会话不同的单独通信会话上输出保活检测数据包。
[0060] 本公开中描述的技术可以硬件或硬件和软件(包括固件)的任何组合实施。描述为单元、模块或部件的任何特征可在集成逻辑装置中一起实施,或作为分立但彼此协作的逻辑装置分开实施。如果以硬件实施,则本技术可在处理器、电路、逻辑元件集合或执行本文所描述技术的任何其它设备中实现。如果在软件中实施,则本技术可至少部分由编码有指令、存储有指令或以其它方式包括指令的非暂时性计算机可读存储介质或计算机可读存储装置实现,该指令在执行时使得一个或多个处理器(诸如一个或多个可编程处理器)执行上述方法中的一个或多个。非暂时性计算机可读介质可形成可包括封装材料的计算机程序产品的部分。非暂时性技术可读介质可包括随机存取存储器(RAM)诸如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、磁或光数据存储介质等。另外地或可替换地,本技术可至少部分由携带或通信指令或数据结构的形式的代码并可由计算机存取、读取和/或执行的计算机可读通信介质实现。
[0061] 代码可由一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或分立逻辑电路执行。因此,术语“处理器”如本文所用,可指代适用于实施本文所描述的技术的前述结构或任何其它结构中的任一种。同样,术语“控制单元”如本文所用,可指代适用于实施本文所描述的技术的前述结构或任何其它结构中的任一种。另外,在一些方面中,本文所描述的功能可设置在经配置执行本公开的技术的专用软件和硬件单元内。作为单元的不同特征的描绘旨在强调所示装置的不同功能方面,并且不必暗示此类单元必须通过单独的硬件或软件部件实现。相反,与一个或多个单元相关联的功能可集成在共同的或单独的硬件或软件部件内。
[0062] 已描述各种示例。这些和其它示例在所附权利要求书的范围内。