对中间网络节点进行诊断的制作方法

文档序号:33713880发布日期:2023-04-01 02:56阅读:64来源:国知局
对中间网络节点进行诊断的制作方法
对中间网络节点进行诊断
1.相关申请的交叉引用
2.本专利申请要求于2020年6月9日递交的美国专利申请no.16/897,128的优先权,其通过引用全部并入本文。
技术领域
3.本公开一般地涉及对联网环境中的网络节点进行诊断。使用本文描述的各种技术,可以识别联网环境中的网络节点的存在和功能。


背景技术:

4.现代计算网络可以包括通过各种接口互连的多个设备、服务、和其他网络节点。网络可以由中央网络控制器管理,中央网络控制器可以跟踪网络的拓扑。也就是说,网络控制器可以跟踪网络内的设备以及这些设备之间的连接。为了在网络中添加或移除各种网络节点时保持拓扑最新,网络控制器可以依赖来自网络节点的通告。例如,这些通告可以包括链路层发现协议(lldp)消息。在某些情况下,管理员可以手动更新拓扑。
5.然而,在某些情况下,网络控制器可能不知道已经加入网络的节点。例如,节点可能连接到网络,而不在整个网络中发送通告。因此,网络控制器可能无法感知该节点。在某些情况下,节点可能是bitw(bump-in-the-wire)设备。
6.未知网络节点可能导致各种问题。在某些情况下,未知网络节点可能是良性的。例如,管理员可能向网络添加透明防火墙节点,而不更新拓扑。此外,透明防火墙节点可以不在网络中通告其存在。因此,与网络相关联的网络控制器可能不知道该新防火墙节点。在某些情况下,未知网络节点可能会扰乱网络的功能。例如,防火墙节点可能意外地延迟和/或丢弃在整个网络中发送的数据分组,这可能会中断网络通信。
7.此外,邪恶的行为者可能会将故意隐藏的恶意节点连接到网络。例如,被配置为捕获并分析专用网络流量的窥探节点可能被添加到网络。在某些情况下,窥探节点可以向外部未经授权的一方报告专用网络流量,从而在网络中造成安全漏洞。在某些情况下,恶意网络节点会攻击网络内的漏洞,甚至会将数据泄漏到网络外部。因此,隐藏节点对网络构成了巨大的安全风险。因此,需要识别网络内的未知网络节点。
附图说明
8.下面参考附图给出详细说明。在附图中,参考编号的最左侧数字表示参考编号首次出现的附图。在不同的附图中使用相同的参考编号表示相似或相同的项目。附图中描绘的系统不是按比例缩放的,并且附图中的组件可能是彼此不按比例被描绘成的。
9.图1示出了用于对网络内的中间节点进行诊断的示例环境。
10.图2a和图2b示出了在图1所示的环境内的各种元件之间发送的信号的示例。图2a示出了用于对网络内的中间节点进行诊断的发送节点的示例信令。图2b示出了用于对网络内的中间节点进行诊断的接收节点的替代示例信令。
11.图3a至图3g示出了可用于对网络内的中间节点进行诊断的诊断传输的各种示例。图3a示出了使用基于地址的诊断测试的示例信令。图3b示出了使用基于被损坏数据的诊断测试的示例信令。图3c示出了使用基于恶意数据的诊断测试的示例信令。图3d示出了使用基于时序的诊断测试的示例信令。图3e示出了使用基于线缆长度的诊断测试的示例信令。图3f示出了使用基于标记流量的诊断测试的示例信令。图3g示出了使用基于大规模流量的诊断测试的示例信令。
12.图4示出了用于对网络内的中间节点的存在和/或功能异常进行诊断的示例过程。
13.图5示出了用于识别网络内是否存在中间节点的示例过程。
14.图6示出了能够执行用于实现本文所述功能的程序组件的计算机的示例计算机体系结构。
具体实施方式
15.概述
16.本发明的各方面在独立权利要求中阐述,优选特征在从属权利要求中阐述。一个方面的特征可以单独应用于任何方面或与其他方面结合应用于任何方面。
17.本公开描述了用于对网络内的节点进行诊断的各种系统、设备、和方法。在示例方法中,第一网络节点接收源自第二网络节点的诊断传输的指示。第一网络节点接收对应于诊断传输的转发传输。基于转发传输的指示和诊断传输的指示中的至少一者,可以对第一网络节点和第二网络节点之间的中间节点的存在和/或功能异常进行诊断。
18.在某些情况下,该方法包括向网络控制器发送报告,该报告指示第一网络节点和第二网络节点之间的中间节点的存在和/或功能异常。
19.根据一些示例,诊断传输的报头包括第一地址,并且诊断传输的有效载荷包括第一地址;转发传输的报头包括第二地址,并且转发传输的有效负载包括第一地址。可以通过确定转发传输的有效载荷中的第一地址不同于转发传输的报头中的第二地址来对中间节点的存在和/或功能异常进行诊断。
20.在一些示例中,诊断传输包括被损坏数据和未损坏数据,并且转发传输包括未损坏数据并漏掉了被损坏数据。例如,对中间节点的存在和/或功能异常进行诊断包括:确定转发传输漏掉了被损坏数据。在一些情况下,被损坏数据是与第一层相关联的第一被损坏数据,诊断传输还包括与第二层相关联的第二被损坏数据,第二层不同于第一层,并且转发传输还包括第二被损坏数据。在一些示例中,该方法还包括:基于转发传输中不存在第一被损坏数据来确定中间节点在第一层中是活动的;以及基于转发传输中存在第二被损坏数据来确定中间节点在第二层中是不可见的。
21.在某些情况下,诊断传输包括第一分组和第二分组。第一分组可以包括惰性(inert)恶意数据,第二分组可以包括非恶意数据。转发传输可以包括第二分组并漏掉了第一分组。在一些示例中,对中间节点的存在和/或功能异常进行诊断包括:确定转发传输漏掉了第一分组。
22.根据一些示例,诊断传输包括第一类型的数据和第二类型的数据。转发传输可以包括第一类型的数据和第二类型的数据。在一些情况下,对中间节点的存在和/或功能异常进行诊断包括:确定转发传输中的第一类型的数据被接收的第一时间不同于转发传输中的
第二类型的数据被接收的第二时间。
23.在一些示例中,诊断传输包括至少一个第一分组和指示至少一个第一分组的第一内容的带内操作、维护、和管理(ioam)标签。转发传输可以包括至少一个第二分组和ioam标签。在一些情况下,识别中间节点的存在至少部分地基于转发传输中的ioam标签指示与至少一个第二分组的第二内容不同的第一内容。
24.示例实施例
25.本公开描述了用于对网络内的网络节点进行诊断的各种技术。根据一些示例,一个或多个未知网络节点可能连接在两个诊断网络节点之间。两个诊断网络节点可以通过交换穿过(一个或多个)未知网络节点的传输来执行一个或多个诊断测试。基于测试的结果,诊断网络节点中的一者或两者可以识别(一个或多个)未知网络节点的存在。此外,一些测试可以用于识别(一个或多个)未知网络节点在其上可见的一个或多个层,从而可以识别(一个或多个)未知网络节点的类型。在各种情况下,诊断网络节点中的一者或两者可以向网络内的其他网络节点(例如,交换机、路由器、负载均衡器、网络控制器等)通知(一个或多个)未知网络节点的存在和/或类型。因此,网络内的各种节点可以抑制将数据流量路由通过(一个或多个)未知网络节点,并利用不同路径路由通过网络。在各种示例中,可以在一个或多个已知网络节点上执行测试,以确定(一个或多个)已知网络节点是否发生功能异常。如果(一个或多个)已知网络节点发生功能异常,则诊断网络节点可以向其他网络节点或中央控制器系统指示功能异常的(一个或多个)已知网络节点。
26.本文所述的各种实现方式旨在对网络环境进行实际改进。本公开中描述的示例技术使得能够对网络内的未知网络节点(无论是良性的还是恶意的)进行识别。此外,一些技术可以用于识别已知网络节点是否发生功能异常。这些用于对网络节点的存在和/或功能进行诊断的技术可用于防止网络内的中断和安全风险。
27.此外,本文所述的各种示例无法在人脑中实际执行。根据一些示例,通过监测通过网络环境的诊断和/或转发传输中的数据,对中间网络节点进行诊断。人脑不具备执行这些技术的能力。本公开提供了基本上集成到网络环境中的非抽象技术。
28.将参考附图详细描述本公开的各种实施方式,其中在多个示图中相同的参考编号表示相同的部件和组件。此外,本说明书中列出的任何样本都不用于限制,而只是演示许多可能实现方式中的一些。
29.图1示出了用于对网络内的中间节点进行诊断的示例环境100。如图所示,环境100包括内部网络102,该内部网络包括多个网络节点。如本文所使用的,术语“节点”、“网络节点”及其等同物可以指代网络内能够向至少一个其他节点发送分组和/或从至少一个其它节点接收分组的任何实体。节点可以是设备、软件实例、虚拟机(vm)、容器、虚拟进程等。在一些示例中,节点可以包括一组设备或虚拟资源,例如,安全组、子网络等。在一些示例中,节点可以是客户端、服务器、或其组合。具体地,内部网络102可以包括第一网络节点104和第二网络节点106。在一些实现方式中,内部网络102内的网络节点可以根据clos拓扑、脊叶拓扑等通过接口互连。
30.此外,内部网络102可以包括控制器108。如本文所使用的,术语“网络控制器”、“控制器”及其等同物可以指代为内部网络102的结构提供集中自动化、管理、策略编程、应用部署、和/或健康监测的实体。在一些情况下,控制器108可以体现在应用策略基础设施控制器
(apic
tm
)中。控制器108可以体现在内部网络102内的一个或多个网络节点中。在一些情况下,控制器108可以分析通过内部网络102的数据流量,接收使控制器108能够识别内部网络102内的各种网络节点执行的功能的报告,监测网络102内利用的容量等。在一些情况下,控制器108被配置为引导第一网络节点104和/或第二网络节点106以及内部网络102内的任何其他网络节点的各种功能。因此,控制器108可以通过控制网络节点来优化内部网络102内的网络资源(例如,通信资源、处理资源、存储器资源等)的利用。
31.在某些情况下,内部网络102可以包括负载均衡器110。如本文所使用的,术语“负载均衡器”及其等同物可以指代被配置为跨有限数量的资源分发工作负载以确保工作负载跨资源分发的实体。在一些示例中,负载均衡器可以通过内部网络102在不同路径上分发数据流量,以防止一个或多个通信资源过载。在一些情况下,负载均衡器可以在内部网络102内的不同网络节点上分发任务的执行,以防止一个或多个网络节点过载。在一些情况下,负载均衡器可以由网络节点(例如,由至少一个设备、网络结构控制器等执行的设备、vm、或应用)实现。例如,负载均衡器可以在示例网络内的多个交换机之间均匀地分发网络流量。图1的负载均衡器110可以体现在内部网络102内的一个或多个网络节点中。
32.内部网络102可以包括一个或多个内部通信网络112,通过这些内部通信网络可以在内部网络102内的节点之间传送数据。如本文所使用的,术语“通信网络”及其等同物可以指代包括一个或多个节点和/或一个或多个接口的网络(数据可以通过这些节点和/或接口传送)。如本文所使用的,术语“接口”及其等同物可以指代网络中的两个节点(例如,内部网络102内的节点)之间的连接。在某些情况下,接口可以直接连接两个节点和/或可以漏掉任何中间节点。接口可以连接到第一网络节点的第一端口(例如,设备的物理端口和/或软件实例的虚拟端口)和第二网络节点的第二端口。在一些情况下,两个节点之间的接口可以是有线接口,使得分组可以作为通过连接两个节点的固体介质(例如,以太网线缆、光纤线缆等)传导的信号被发送。在一些示例中,节点之间的接口可以是无线接口,使得分组可以作为通过连接两个节点的流体介质(例如,空气、水等)的信号被发送。可以根据用于承载信号的波的类型(例如,声波、电磁波等)和波的频率(例如,超声波、射频、红外频率等)来定义无线接口。还可以根据特定的通信协议来定义接口,其中,该通信协议可以指示如何调制通过接口发送的数据。适用于这种应用的通信协议的一些示例包括传输控制协议(tcp)/互联网协议(ip)、wi-fi、蓝牙等。在各种示例中,(一个或多个)通信网络112可以包括至少一个有线(例如,光纤)网络,内部网络102内的节点可以通过该网络传输数据。
33.根据各种实现方式,内部网络102可以进一步连接到一个或多个外部网络114。(一个或多个)外部网络114可以连接到内部网络102的(一个或多个)通信网络112。(一个或多个)外部网络114的一些示例包括公共网络、广域网(wan)、或其组合。例如,(一个或多个)外部网络114可以包括互联网、无线电接入网(ran)、无线核心网(例如,演进分组核心(epc)网、第五代核心(5gc)网等)等。
34.一个或多个用户设备116可以通过(一个或多个)外部网络114连接到内部网络102。例如,(一个或多个)用户设备116可以通过(一个或多个)外部网络114向内部网络102内的至少一个节点发送数据或者从内部网络102中的至少一个节点接收数据。如本文所使用的,术语“用户设备”、“无线通信设备”、“通信设备”、“移动设备”、“客户端设备”、和“终端”在本文中可以交换使用,以描述能够使用任何适当的通信/数据技术、协议、或标准来
(例如,无线地)发送/接收数据的任何用户设备(ue),这些通信/数据技术、协议、或标准例如包括全球移动系统(gsm)、时分多址(tdma)、通用移动电信系统(umts)、演进数据优化(evdo)、长期演进(lte)、高级lte(lte+)、新型无线电(nr)、通用接入网(gan)、未授权移动接入(uma)、码分多址(cdma)、正交频分多址(ofdm)、通用分组无线电服务(gprs)、增强型数据gsm环境(edge)、高级移动电话系统(amps)、高速分组接入(hspa)、演进hspa(hspa+)、互联网协议(ip)语音(voip)、lte语音(volte)、电气和电子工程师协会(ieee)802.1x协议、wimax、wi-fi、有线数据服务接口规范(docsis)、数字用户线(dsl)、和/或任何未来的基于ip的网络技术或现有的基于ip网络技术的演进。通常,ue可以被实现为被配置为通过有线或无线网络通信的任何合适类型的计算设备,包括但不限于移动电话(例如,智能电话)、平板计算机、膝上型计算机、便携式数字助理(pda)、可穿戴计算机(例如,电子/智能眼镜、智能手表、健身追踪器等)、物联网(iot)设备、车内(例如,轿车内)计算机、和/或任何类似的移动设备,以及定位的计算设备,包括但不限于电视(智能电视)、机顶盒(stb)、台式计算机等。
35.在一些情况下,内部网络102可以包括防火墙和/或一些其他安全策略,这些安全策略被配置为过滤和/或隔离来自(一个或多个)外部网络114和(一个或多个)用户设备116的潜在恶意流量。防火墙和/或安全策略可以体现在内部网络102的一个或多个节点内。在各种示例中,示例防火墙可以拦截发送到内部网络102或通过内部网络102的数据流量(例如,在(一个或多个)通信网络112和(一个或多个)外部网络114之间发送的数据流量),基于一个或多个过滤条件检查数据流量,并选择性地阻止数据流量的满足(一个或多个)过滤条件的至少一部分。因此,可以保护内部网络102免受源自内部网络102外部的恶意数据流量的影响。
36.控制器108和/或负载均衡器110可以维护(例如,存储)内部网络102的拓扑。拓扑(也称为“网络拓扑”)可以指示内部网络102中的网络节点和互连网络节点的接口的布置。在一些情况下,拓扑可以进一步指示网络节点的功能和/或容量。在一些情况下,控制器108可以通过从内部网络102内的网络节点接收一个或多个通告(例如,消息)来识别内部网络102的拓扑。控制器108可以利用拓扑来控制内部网络102。在一些情况下,负载均衡器110可以利用拓扑来平衡内部网络102内的各种网络节点之间的负载。
37.然而,如果将额外的网络节点添加到内部网络102,则拓扑可能会过时。在某些情况下,网络管理员可以手动更新拓扑。根据一些实现方式,可以基于在整个内部网络102中发送的通告(例如,lldp消息)来更新拓扑。但是,在某些情况下,不会更新拓扑。例如,网络节点可能由不手动更新拓扑的用户添加到内部网络102。在一些情况下,网络节点能以是良性的,但是对于控制器108、其他设备、和/或其他用户来说是未知的。在某些情况下,网络节点可能是恶意的,并且用户可以出于邪恶目的而不更新拓扑。在这两种类型的情况下,网络节点可能对内部网络102的功能造成问题。
38.在本公开的各种实现方式中,第一网络节点104和第二网络节点106可以对内部网络102内的中间节点118的存在进行诊断。在一些情况下,中间节点118可以是bitw节点和/或设备,例如,安全装置(security appliance)、透明防火墙节点等。中间节点118可能对内部网络102的可见性透明。在一些示例中,控制器108可以基于与它所控制的所有网络节点通信并查询它们的lldp数据库来维护网络拓扑,以便发现网络节点。lldp是由ieee定义为
站点和介质访问控制连接性发现的标准化链路层协议(在ieee 802.1ab中指定)。参与lldp的示例网络节点可以生成并发送lldp消息,该消息通告节点的身份(例如,节点的地址)、能力、和邻居节点。示例网络节点可以从其邻居节点接收lldp消息,网络节点可以使用该lldp消息来识别其邻居节点。示例网络节点可以进一步将对其邻居节点的指示存储在lldp数据库中,并向控制器108报告关于其邻居节点的信息,控制器108可以基于lldp消息更新拓扑。然而,在各种示例中,中间节点118可以是在线入侵防御系统(ips)类型的设备,其抑制生成lldp消息,否则lldp消息将向其在内部网络102内的邻居标识其存在。因此,中间节点118对于内部网络102来说可能是不可见的,并且可能是用于定义和更新内部网络102的网络拓扑的基于lldp的技术检测不到的。在各种实现方式中,控制器108可以基于与在整个内部网络102中发送的其他发现协议相关联的消息(例如,根据cisco
tm
发现协议(cdp)、链路层拓扑发现(lltd)协议、nortel
tm
发现协议(ndp)等的消息)来维护网络拓扑。然而,在这些实现方式中,使用其他发现协议,中间节点118可能是类似地检测不到的。类似地,中间节点118可能是无法使用跟踪路由检测到的,因为中间节点118可以抑制减少跟踪路由分组的生存时间(ttl)数据字段。
39.第一网络节点104可以包括第一诊断系统120。第二网络节点106可以包括第二诊断系统122。第一诊断系统120和/或第二诊断系统122可以包括或体现在软件容器、智能网络接口卡(smartnic)、虚拟化功能、操作系统(os)、应用等内(其可以是第一网络节点104和/或第一网络节点106的一部分)。
40.在各种实现方式中,第一网络节点104和/或第一诊断系统120可以参与到与第二网络节点106和/或第二诊断系统122的握手过程中。例如,第一网络节点104可以通过通告第一诊断系统120的能力的特定层(例如,层2)发送提议消息(offer message)。在接收到提议消息后,第二网络节点106可以通过特定层向第一网络节点104和/或第一诊断系统120发送确认消息,该确认消息指示第二诊断系统122的能力。因此,第一网络节点104和/或第一诊断系统120可以与第二网络节点106和/或第二诊断系统122同步,并且可以随后测试中间节点118的存在。
41.根据一些实现方式,测试可以由控制器108触发。例如,控制器108可以向第一网络节点104和/或第一诊断系统120以及第二网络节点106和/或第二诊断系统122发送激活消息。激活消息可以通过(一个或多个)通信网络112发送。在接收到激活消息后,第一网络节点104、第一诊断系统120、第二网络节点106、和/或第二诊断系统122可以启动测试以识别中间节点118的存在。在各种示例中,控制器108可以周期性地(例如,每12小时、每天、或以某个其他频率)发送激活消息。
42.在一些实现方式中,第一网络节点104和第二网络节点106可以被推定为在内部网络102内是相邻的。如本文所使用的,术语“相邻”及其等同物可以指代彼此连接的节点,其中节点之间的通信不需要在其他节点之间路由。例如,两个相邻节点可以通过单个网络接口交换数据。在一些情况下,节点可以在特定网络层中相邻,使得层相邻节点之间的通信在特定网络层内不需要在其他节点之间路由。当现有网络拓扑(例如,由网络的控制器存储或以其他方式维护)指示节点相邻时,网络内的节点被“推定为相邻”。然而,由于一个或多个未知中间节点的存在,被推定相邻的节点可能并不相邻。在图1所示的示例中,第一网络节点104和第二网络节点106可以被控制器108维护的现有拓扑推定为相邻。然而,由于中间节
点118的存在,第一网络节点104和第二网络节点106实际上在内部网络102内可能并不相邻。
43.为了识别中间节点118的存在,第一网络节点104和/或第一诊断系统120可以向第二网络节点106和/或第二诊断系统122发送诊断传输。如本文所使用的,术语“传输”、“消息”及其等同物可以指代在网络节点之间发送的数据。在一些情况下,传输可以包括在网络节点之间发送的一个或多个协议数据单元(pdu)(例如,数据分组)。当由单个网络节点发送并由单个网络节点接收时,传输可以被称为“单播”传输。当由单个网络节点发送并由多个网络节点接收时,传输可以被称为“多播”传输。在各种情况下,诊断传输可以由第一网络节点104和/或第一诊断系统120通过被推定为将第一网络节点106直接连接到第二网络节点106的接口来发送。在一些示例中,诊断传输的指示可以进一步由第一网络节点104和/或第一诊断系统120通过(一个或多个)通信网络112发送到第二网络节点106和/或第二诊断系统122。
44.如果中间节点118不在内部网络102中,则第二网络节点106和/或第二诊断系统122将以预期的方式接收诊断传输。例如,所接收的诊断传输可以包括与所发送的诊断传输相同的数据。然而,由于中间节点118的存在,诊断传输可能被以不期望的方式接收。也就是说,第二网络节点106和/或第二诊断系统122可以从中间节点118接收转发传输,该转发传输可以指示中间节点118的存在。在一些情况下,第二网络节点106和/或第二诊断系统122可以向第一网络节点104和/或第一诊断系统120返回对转发传输的指示。
45.在一些示例中,诊断传输可以包括第一网络节点104和/或第一诊断系统120的地址。例如,诊断传输可以包括指示数据分组的来源的地址的至少一个数据分组。如本文所使用的,术语“地址”及其等同物可以指代网络内的节点的标识符,该标识符可用于将节点定义为传输目的地。地址类型的一个示例是根据ieee 802标准定义的介质访问控制(mac)地址。mac地址可以包括唯一地定义网络内的节点的48位。地址类型的另一个示例是ip地址,它是根据互联网工程任务组(ietf)开发的ip通信协议定义的。在ip版本4(ipv4)中,ip地址可以包括唯一地定义网络内的节点的32位。在ip版本6(ipv6)中,ip地址可以包括唯一地定义网络内的节点的128位。在一些情况下,中间节点118可以自动更新地址,以反映中间节点118的地址。因此,转发传输可能包括与诊断传输不同的地址。基于该差异,可以识别中间节点118。
46.在某些情况下,诊断传输可以包括未损坏数据和被损坏数据的混合。如本文所使用的,术语“未损坏数据”及其等同物可以指代没有错误和/或包括少于阈值量(例如,阈值位数)的错误的数据。如本文所用,术语“被损坏数据”及其等同物可以指代包括一个或多个错误的数据。例如,错误可以包括通过非公共端口发送的pdu、通过尚未建立的连接的确认消息、损坏的分组报头等。各种网络节点可以自动过滤掉它们接收到的被损坏数据。例如,中间节点118可以在转发传输中包括未损坏数据,并且避免在转发传输中包括被损坏数据。因此,可以基于转发传输中不存在被损坏数据来识别中间节点118。
47.在一些示例中,诊断传输可以包括非恶意数据和恶意数据的混合。如本文所使用的,术语“恶意数据”可以指代通常与恶意软件相关联的数据。诊断传输中的恶意数据可以是良性的,因此该恶意数据可以避免将内部网络102暴露于安全风险。例如,该恶意数据可以包括欧洲计算机防病毒研究所(eicar)测试文件。然而,该恶意数据可能包括已知与恶意
软件相关联的一个或多个模式的数据,因此可能被常规防火墙和/或安全平台过滤掉或隔离。在一些情况下,中间节点118可能应用过滤掉恶意数据的安全策略。因此,中间节点118可能在转发传输中包括非恶意数据,并且可以避免在转发传输中包括恶意数据。由于在转发传输中不存在恶意数据,可以识别出中间节点118。
48.根据一些实例,诊断传输可以包括不同类型的数据的混合。如本文所使用的,术语“类型”、“数据类型”、“数据的类型”及其等同物可以指代以特定方式封装、格式化、和/或编码的数据。不同类型的数据的一些示例包括原始互联网协议(ip)数据、传输控制协议(tcp)数据、用户数据报协议(udp)数据、互联网控制消息协议(icmp)数据、超文本传输协议(http)数据、安全套接字层(ssl)或传输层安全(tls)数据等。在一些情况下,中间节点118可以以不同的速率处理不同类型的数据。例如,中间节点118可以对诊断传输中包括的某个类型的数据执行深度分组检查,这可能会减慢该类型数据的处理。因此,第二网络节点106和/或第二诊断系统122可以在不同时间在转发传输中接收不同类型的数据。接收不同类型的数据的时间的差异可用于识别中间节点118的存在。
49.在各种示例中,第一网络节点104可以在朝向第二网络节点106的接口上执行线缆长度测试,从而识别将第一网络节点106连接到中间节点118的第一线缆的长度。类似地,第二网络节点106可以在朝向第一网络节点104的接口上执行线缆长度测试,从而识别将第二网络节点106连接到中间节点118的第二线缆的长度。在一些情况下,诊断传输可以包括指示第一线缆的长度的数据字段。中间节点118可以在转发传输中转发该数据字段。第二网络节点106可以将该数据字段中指示的第一线缆的长度与第二线缆的长度进行比较。第一线缆和第二线缆可能具有不同的长度。不同的线缆长度可被用来识别中间节点118的存在。
50.根据一些实现方式,诊断传输可以包括从第一网络节点104发送到第二网络节点106的一些现有数据流量。诊断传输可以进一步包括指示诊断传输中的数据的一个或多个标签。例如,(一个或多个)标签可以包括指示诊断传输中的每一个分组的带内oam(ioam)分类器。ioam分类器是根据互联网工程任务组(ietf)定义的,并且可以提供实时遥测数据,这些实时遥测数据可以嵌入实时数据流量中。可以包括在(一个或多个)标签中的ioam分类器的示例包括诊断传输从其发送和/或诊断传输经过的节点(例如,第一网络节点104、第二网络节点106、和/或中间节点118)的节点标识(id)、入口和/或出口接口(例如,第一网络节点104、第二网络节点106、和/或中间节点118之间的接口)、时间戳(例如,第一网络节点104、第二网络节点106、和/或中间节点108生成和/或发送诊断传输的时间戳)、中转延迟、中转抖动、序列号、应用定义的元数据、所发送分组的哈希值等。在一些情况下,(一个或多个)标签可以直接指示中间节点118的存在。例如,第二网络节点106可以响应于识别出中间节点118的节点id存在于(一个或多个)标签中而识别出中间节点118的存在。在一些情况下,(一个或多个)标签可以指示从第一网络节点104发送的分组的内容(例如,内容的哈希值、发送分组的节点等),该内容可能不同于所接收分组的内容(这可以指示中间节点118的存在)。例如,如果(一个或多个)标签指示第一网络节点104是分组的发送者,但是分组的内容(例如,报头和/或有效载荷)指示不同的内容,则可以识别出中间节点118的存在。替代地,可以基于(一个或多个)标签间接识别出中间节点118的存在。例如,中间节点118可能丢弃至少一些分组,使得转发传输漏掉了诊断传输中包括的至少一些分组和(一个或多个)标签。转发传输中的(一个或多个)标签可用于识别至少一些分组被丢弃。因此,由于丢弃的分组,可
以识别出中间节点118的存在。
51.在各种示例中,诊断传输可以包括指示先前由第一网络节点104发送并寻址到第二网络节点106的数据流量的一个或多个度量。例如,诊断传输可以指示第一网络节点104在特定时间间隔中发送的分组的数目。类似地,转发传输可以指示分组的数目。在接收到转发传输后,第二网络节点106可以将第一网络节点104发送的数据分组的数目与第二网络节点106接收的数据分组的数目进行比较。如果在发送的分组的数目和接收的分组的数目之间存在差异,则可以识别出中间节点118的存在。
52.在一些情况下,第一网络节点104和/或第一诊断系统120可以向第二网络节点106和/或第二诊断系统122发送多个诊断传输,以识别中间节点118的存在。例如,诊断传输可以通过不同的层发送。如本文所使用的,术语“层”、“抽象层”及其等同物可以指代通过标准化通信协议交换数据的一个或多个网络节点。开放系统互连(osi)模型(由国际标准化组织(iso)定义)是这样的概念模型的示例,该概念模型的特征在于具有各自的通信协议的多个层。例如,osi模型中的层1被定义为“物理”层,并管控物理介质上的比特流的传输;osi模型中的层2被定义为“数据链路”层,并管控通过物理层连接的节点之间的数据传输;osi模型中的层3被定义为“网络”层,并管控多节点网络上的路由、寻址、和流量控制;osi模型中的层4被定义为“传输”层,它管控整个网络中的数据段的传输;osi模型中的层5被定义为“会话”层,它管控节点之间的连续会话;层6被定义为“表示”层,它管控在网络服务和应用之间转换的数据;层7被定义为“应用”层,它管控通过应用编程接口(api)等传送的数据。不同的层可以与可以在其上发送数据的不同类型的pdu相关联。例如,与层2相关联的pdu可以是帧,与层3相关联的pdu可以是分组,与层4相关联的pdu可以是分段和/或数据报,等等。
53.在某些情况下,中间节点118在一个层中可能是不可见的,但在另一个层中是可以检测到的。例如,中间节点118可以自动转发在一个层中发送的pdu,但可以主动操纵和/或延迟在另一个层中发送的pdu。因此,当中间节点118在一个层中不可见时,可以通过在其他层中测试来识别中间节点118的存在。在一些实现方式中,在第一测试中,第一网络节点104和/或第一诊断系统120可以通过第一层发送第一诊断传输(例如,层2上的包括被损坏数据和未损坏数据的帧)。如果基于第一测试无法分辨中间节点118的存在,则可以执行第二测试。在第二测试中,第一网络节点104和/或第一诊断系统120可以通过第二层发送第二诊断传输(例如,层3上的包括被损坏数据和未损坏数据的分组)。根据一些情况,可以使用第二测试来识别中间节点118的存在。在各种示例中,可以通过不同层上的诊断传输来执行多个测试,直到识别出中间节点118的存在为止。在中间节点118不存在的情况下,可以执行多个测试而不会确认中间节点的存在。此外,可以使用这些技术来识别中间节点118在其上活动的一个或多个层,从而可以识别中间节点18的类型。
54.在一些实现方式中,可以按照特定顺序执行不同类型的测试,以便以最高效的方式识别中间节点118的存在。例如,基于地址的测试可以使用比基于被损坏数据的测试更少的通信资源来执行,因为与基于地址的测试相关联的诊断和/或转发传输可以包括比基于被损坏数据的测试更少的数据。因此,可以将基于地址的测试作为初始筛选技术来执行,并且如果基于地址的测试无定论(例如,如果通过执行基于地址的测试无法检测中间节点118),则可以在基于地址的测试之后执行基于被损坏数据的测试。在各种示例中,可以在其他测试之前执行基于标签的测试,因为可以在不向内部网络102注入额外数据流量的情况
下执行基于标签的测试,从而节省内部网络102的资源。在一些情况下,可以连续执行本文描述的一些或所有类型的测试,以便有效地识别中间节点118的存在,而不管中间节点118是否是使用一种或多种类型的测试无法检测的。
55.根据各种实现方式,第一网络节点104、第一诊断系统120、第二网络节点106、和/或第二诊断系统122可以基于诊断传输和转发传输来识别中间节点118的存在。在识别出中间节点118的存在之后,第一网络节点104、第一诊断系统120、第二网络节点106、和/或第二诊断系统122可以基于中间节点118来更新拓扑。例如,可以通过向控制器108发送指示中间节点118的报告来更新拓扑。
56.在一些实现方式中,可以避免第一网络节点104和第二网络节点106之间的进一步传输,以避开中间节点118。例如,在识别出中间节点118的存在之后,第一网络节点104可以通过(一个或多个)通信网络112而不通过中间节点118来路由去往第二网络节点106的附加数据传输,或者反之亦然。在一些情况下,控制器108可以基于更新后的拓扑通过(一个或多个)通信网络112而不通过中间节点118来路由数据流量。例如,控制器108可以修改底层网络结构,以避免向中间节点118发送任何数据流量。
57.在某些情况下,可以向网络管理员报告中间节点118的存在。例如,网络管理员可以是与(一个或多个)用户设备116相关联的用户。第一网络节点104、第二网络节点106、和/或控制器108可以向(一个或多个)用户设备116发送指示中间节点118的存在的警报。(一个或多个)用户设备116继而可以向网络管理员输出警报。结果,网络管理员可以移除和/或以其他方式禁用内部网络102内的中间节点118,从而防止对内部网络102的功能的扰乱。
58.在某些情况下,中间节点118可能是已知的。例如,可以在现有网络拓扑内指示中间节点118。然而,第一网络节点104和/或第一诊断系统120可以发送诊断传输,第二网络节点106和/或第二诊断系统122可以接收转发传输,以便对中间节点118是否发生功能异常进行诊断。例如,可以比较诊断传输和转发传输,以便识别中间节点118是否通过丢弃分组而发生功能异常。在一些情况下,第一网络节点104和/或第一诊断系统120、第二网络节点106和/或第二诊断系统122或它们的组合可以在去往控制器108、负载均衡器110、或(一个或多个)用户设备116的报告中指示中间节点118是如何发生功能异常的。
59.图2a和2b示出了在图1所示的环境100内的各种元件之间发送的信号的示例。图2a示出了用于对网络内的中间节点进行诊断的发送节点的示例信令200。如图所示,信令200可以在第一网络节点104、第二网络节点106、控制器108、和中间节点118之间执行(以上参照图1描述了这些节点)。在一些示例中,由第一网络节点104执行的功能可以由上述第一诊断系统120执行,由第二网络节点106执行的功能可以由上述第二诊断系统122执行,或它们的组合。
60.第一网络节点104可以向第二网络节点106发送诊断传输202,该诊断传输202可以被中间节点118接收。例如,诊断传输202通过中间节点118被发送。诊断传输202可以寻址到第二网络节点106。例如,诊断传输202可以包括寻址到第二网络节点106的一个或多个数据分组。在各种情况下,诊断传输202可以选择性地包括可能由中间节点118操控的数据。在一些情况下,诊断传输202可以包括可以用于推断中间节点118是否正在操控由中间节点118转发的数据的数据。例如,诊断传输202可以包括第一网络节点104的mac地址、被损坏数据和有效数据的混合、恶意数据和有效数据的混合、多种类型的数据、第一网络节点102通过
其发送诊断传输202的线缆的长度的指示、ioam标签、数据流量度量等。
61.中间节点118可以向第二网络节点106发送转发传输204。在各种情况下,中间节点118可以操控和/或修改诊断传输202内的数据。转发传输204可以包括诊断传输202内的至少一些数据。例如,转发传输204可以包括诊断传输202中包括的有效数据。在一些情况下,转发传输204可能漏掉诊断传输中的一些数据。例如,转发传输204可能漏掉第一网络节点104的mac地址、被损坏数据、恶意数据、至少一些ioam标签等。根据一些实现方式,转发传输204可以包括与诊断传输202中包括的数据不同的数据。例如,转发传输204可以包括中间节点118的mac地址。在一些情况下,转发传输204可以分成由第二网络节点106在不同时间接收的不同消息。例如,转发传输204可以包括承载诊断传输202中的第一类型的数据的第一消息和承载诊断传输中的第二类型的数据的第二消息,其中,第一消息和第二消息由第二网络节点106在不同时间接收。
62.第二网络节点106可以向第一网络节点104发送转发传输206的指示。在一些情况下,转发传输206的指示可以包括转发传输204中包括的至少一些数据。根据一些实现方式,转发传输206的指示可以指示关于转发传输204的附加细节。例如,转发传输206的指示可以指示第一消息和第二消息是由第二网络节点106在不同时间接收的。
63.第一网络节点104可以基于诊断传输202和/或转发传输206的指示来识别中间节点118的存在。第一网络节点104可以向控制器108发送节点报告208。节点报告208可以指示中间节点118的存在。控制器108可以使用节点报告208来更新包括第一网络节点104和第二网络节点106的网络(例如,上面参考图1描述的内部网络102)的网络拓扑。
64.虽然图2a未示出,但在一些情况下,第一网络节点104可以抑制通过中间节点118发送寻址到第二网络节点106的附加传输。此外,第一网络节点104可以向第二网络节点106转发指示中间节点118的报告。类似地,第二网络节点106可以抑制通过中间节点118发送寻址到第一网络节点104的附加传输。这些附加传输可以替代地在连接第一网络节点104和第二网络节点106的替代路径上发送。
65.图2b示出了用于对网络内的中间节点进行诊断的接收节点的替代示例信令210。如图所示,信令210可以在第一网络节点104、第二网络节点106、控制器108、和中间节点118之间执行(以上参照图1描述了这些节点)。
66.第一网络节点104可以向第二网络节点106发送诊断传输212,该诊断传输212可以被中间节点118接收。例如,诊断传输212可以通过中间节点118被发送。诊断传输212可以寻址到第二网络节点106。例如,诊断传输212可以包括寻址到第二网络节点106的一个或多个数据分组。在各种情况下,诊断传输212可以选择性地包括可能由中间节点118操控的数据。在一些情况下,诊断传输202可以包括可以用于推断中间节点118是否正在操控由中间节点118转发的数据以暴露其存在的数据。例如,诊断传输212可以包括第一网络节点104的mac地址、被损坏数据和有效数据的混合、恶意数据和有效数据的混合、多种类型的数据、第一网络节点102通过其发送诊断传输212的线缆的长度的指示、ioam标签、数据流量度量等。
67.中间节点118可以向第二网络节点106发送转发传输214。在各种情况下,中间节点118可以操控和/或修改诊断传输212内的数据。转发传输214可以包括诊断传输202内的至少一些数据。例如,转发传输214可以包括诊断传输212中包括的有效数据。在一些情况下,转发传输214可能漏掉诊断传输中的一些数据。例如,转发传输214可能漏掉第一网络节点
104的mac地址、被损坏数据、恶意数据、线缆的长度的指示等。根据一些实现方式,转发传输214可以包括与诊断传输212中包括的数据不同的数据。例如,转发传输214可以包括中间节点118的mac地址。在一些情况下,转发传输214可以分成由第二网络节点106在不同时间接收的不同消息。例如,转发传输214可以包括承载诊断传输212中的第一类型的数据的第一消息和承载诊断传输中的第二类型的数据的第二消息,其中,第一消息和第二消息由第二网络节点106在不同时间接收。
68.第一网络节点104可以向第二网络节点106发送诊断传输216的指示。在一些情况下,诊断传输216的指示可以包括诊断传输212中包括的至少一些数据。根据一些实现方式,诊断传输216的指示可以指示关于诊断传输212的附加细节。例如,诊断传输216的指示可以指示第一消息中包含的数据和第二消息中包含的数据是由第一网络节点104同时发送的。
69.第二网络节点106可以基于转发传输214和/或诊断传输216的指示来识别中间节点118的存在。第二网络节点106可以向控制器108发送节点报告218。节点报告218可以指示中间节点118的存在。控制器108可以使用节点报告218来更新包括第一网络节点104和第二网络节点106的网络(例如,上面参考图1描述的内部网络102)的网络拓扑。
70.尽管图2b中未示出,但在一些情况下,第二网络节点106可以抑制通过中间节点118发送寻址到第一网络节点104的附加传输。此外,第二网络节点106可以向第一网络节点104转发指示中间节点118的报告。类似地,第一网络节点104可以抑制通过中间节点118发送寻址到第二网络节点106的附加传输。这些附加传输可以替代地在连接第一网络节点104和第二网络节点106的替代路径上发送。
71.图3a至3g示出了可用于对网络内的中间节点进行诊断的诊断传输的各种示例。具体地,图3a至图3e示出了由中间节点118接收的诊断传输302(上面参考图1描述)和由中间节点18发送的转发传输304的示例。
72.图3a示出了使用基于地址的诊断测试的示例信令300。如图所示,诊断传输302可以包括第一地址306。在各种情况下,第一地址306可以是诊断传输302的发送者(例如,上面参考图1描述的第一网络节点104和/或第一诊断系统120)的地址。在各种示例中,第一地址306可以是诊断传输302的发送者的mac地址。在一些情况下,第一地址306被指示在诊断传输302的报头以及诊断传输302的有效载荷中。
73.在接收到诊断传输302后,中间节点118可以修改诊断传输302的报头中的第一地址306,并将具有修改后的报头的诊断传输302作为转发传输304进行转发。转发传输304的报头可以指示第二地址308而不是第一地址306。第二地址308可以对应于中间节点118的地址。例如,第二地址308可以是中间节点118的mac地址。然而,在一些情况下,中间节点118可以不修改诊断传输302的有效载荷中的第一地址306。在各种示例中,将转发传输304的报头中的第二地址308与转发传输304的有效载荷中的第一地址306进行比较。由于在转发传输304的报头中存在第二地址308而不是第一地址306,因此可以对中间节点118进行诊断。图3a所示的信令300可以用于在中间节点118对层3的相应网络不可见但在层2可检测时识别中间节点118。
74.虽然图3a中未示出,但在一些实现方式中,可以从诊断传输302的有效载荷和转发传输304的有效载荷中漏掉第一地址306。例如,转发传输304的目的地可以通过将转发传输304的报头中的第二地址308与第一地址306(第一地址306可能已经预先存储在目的地和/
或在与转发传输304分离的消息中已接收到)进行比较来对中间节点118的存在进行诊断。在一些情况下,转发传输304的目的地可以向诊断传输302的源发送指示在转发传输304报头中接收到的第二地址308的消息,并且源可以通过将第二地址306与它自己的第一地址306进行比较来诊断中间节点118的存在。在本公开的各种实现方式中,可以基于转发传输304的报头中的第二地址308来对中间节点118的存在进行诊断。
75.图3b示出了使用基于被损坏数据的诊断测试的示例信令310。如图所示,诊断传输302可以包括被损坏数据312和有效数据314。如本文所使用的,术语“有效数据”可以指代未损坏数据和/或非恶意数据。在接收到诊断传输302后,中间节点118可以应用自动移除被损坏数据312的安全策略,并且中间节点118可以将诊断传输302作为转发传输304进行转发。转发传输304可以包括有效数据314,但可能漏掉被损坏数据312。由于转发传输304中不存在被损坏数据312,因此可以对中间节点118进行诊断。
76.根据一些实现方式,被损坏数据312可以包括不同osi层被选择性损坏的值。例如,被损坏数据312可以包括层2中的至少一个被损坏值、层3中的至少一个被损坏值,等等。中间节点118可以被配置为在一些osi层中(而不是在其他层中)阻止和/或丢弃被损坏数据。因此,当中间节点118在至少一个osi层中不可见时,可以使用信令310来识别中间节点118。
77.在一些情况下,诊断传输302可以包括一个或多个公共端口(例如,端口号21、23、25、80、443等)和一个或多个非公共端口(例如,端口号4713、37829等)上的一个或多个分组(例如,tcp同步(syn)分组)。在某些情况下,非公共端口可能是未经互联网号码分配机构(iana)注册的非官方端口。在(一个或多个)公共端口上发送的(一个或多个)分组可能是有效数据314,而在(一个或多个)非公共端口上发送的(一个或多个)分组可能是被损坏数据312。
78.根据一些示例,诊断传输302可以包括用于网络内的未建立tcp连接的一个或多个确认(ack)消息。这些ack消息可以包括在被损坏数据312中。
79.在某些情况下,诊断传输302内的被损坏数据312可以包括损坏报头字段。在一些情况下,诊断传输302可以包括具有损坏报头字段的分段(例如,tcp分段)。例如,诊断传输302可以包括损坏的tcp校验和。如果包括损坏的tcp校验和的分段被从转发传输304中排除,则可以将中间节点118识别为层4感知的(例如,中间节点118可以包括层4感知流量过滤器)。在一些示例中,诊断传输302可以包括具有损坏报头字段的数据分组(例如,ip分组)。例如,报头的ttl字段可以反映值“0”。如果包括无效ttl字段的数据分组被从转发传输304中排除,则可以将中间节点118识别为层3感知的(例如,中间节点118可以包括层3流量过滤器)。因此,在这些情况下,可以进一步识别与中间节点118相关联的层。
80.根据一些实例,诊断传输302中的被损坏数据312可能包括一个或多个包括损坏的层2帧的分组(例如,无效循环冗余校验(crc))。如果转发传输304漏掉了损坏的层2帧,则可以将中间节点118识别为层2节点。因此,在这些情况下,除了识别中间节点118的存在和/或功能异常外,还可以进一步识别与中间节点118相关联的层。
81.图3c示出了使用基于恶意数据的诊断测试的示例信令316。如图所示,诊断传输302可以包括恶意数据318和有效数据314。在各种实现方式中,恶意数据318可以包括测试文件,例如,eicar测试文件和/或与ips测试套件相关联的文件。一旦接收到诊断传输302,中间节点118可以自动移除恶意数据318,并将诊断传输302作为转发传输304进行转发。转
发传输304可以包括有效数据314,但可能漏掉恶意数据318。由于转发传输304中不存在被损坏数据312,因此可以对中间节点118进行诊断。
82.图3d示出了使用基于时序的诊断测试的示例信令320。如图所示,诊断传输304可以包括第一类型的数据322和第二类型的数据324。在接收到诊断传输302后,中间节点118可以对第一类型的数据322进行不同于第二类型的数据324的处理。中间节点118可以将诊断传输302作为转发传输304进行转发。然而,由于处理的差异,中间节点118可能在与第二类型的数据324不同的时间转发第一类型的数据322。例如,第一类型的数据322可以包括具有特定大小(例如,1000字节的长度)的被动tcp流量(例如,被动文件传输协议(ftp)数据连接),第二类型的数据324可以包括具有该特定大小的http/tcp流量。中间节点118可以选择性地处理和/或缓冲http流量,并且可以在不进行处理的情况下自动转发tcp流量。
83.在一些情况下,第一类型的数据322可以在第一时间被接收(例如,被上文参考图1描述的第二网络节点106和/或第二诊断系统122接收),第二类型的数据324可以在第二时间被接收。也就是说,第一类型的数据322的表观“在线时间”(即,传输时间)可以不同于第二类型的数据324的表观“在线时间”。由于转发第一类型的数据322和第二类型的数据324的时间不同,因此可以对中间节点118进行诊断。
84.图3e示出了使用基于线缆长度的诊断测试的示例信令326。如图所示,诊断传输302可以包括第一线缆长度328。在各种情况下,第一线缆长度328可以指示在其上发送诊断传输302(例如,由上文参考图1描述的第一网络节点104和/或第一诊断系统120发送)的线缆的长度。例如,第一网络节点104可以执行朝向第二网络节点106的线缆长度测试,并且因此可以识别第一网络节点104和中间节点118之间的线缆长度(如果存在)。线缆长度测试可以例如通过第一网络节点104内的时域反射计(tdr)或轮询(回环)方法来执行。在一些情况下,第一线缆长度328可以包括在诊断传输302中包括的分段(例如,tcp分段)和/或分组(例如,ip分组)的有效载荷内。
85.在接收到诊断传输302后,中间节点118可以在转发传输304内转发第一线缆长度328。在各种情况下,转发传输304由推断为与第一网络节点104相邻的节点(例如,第二网络节点106)接收。第二网络节点106可以执行它自己的朝向第一网络节点104的线缆长度测试。第二网络节点106可以识别不同于第一线缆长度238的第二线缆长度。第二线缆长度可以对应于第二网络节点106和中间节点118之间的线缆长度。由于第一线缆长度328和第二线缆长度之间的差异,可以识别中间节点118。尽管图3e示出了第一线缆长度328由中间节点118转发,但在一些情况下,第一线缆长度328可以经由通过网络的替代路径(例如,通过(一个或多个)通信网络112的路径,如上面参考图1所述)从第一网络节点104传送到第二网络节点106。
86.图3f示出了使用基于标记流量的诊断测试的示例信令330。在各种情况下,诊断传输302可以包括正在穿越网络和中间节点118的现有数据流量。如图所示,第一数据流量332可以包括在诊断传输302内。此外,第一数据流量332可以包括一个或多个第一标签334。(一个或多个)第一标签334可以指示第一数据流量332内的每个分组。例如,(一个或多个)第一标签334可以包括指示第一数据流量332内的分组的ioam数据。在一些情况下,(一个或多个)第一标签334可以指示所发送的每个分组的时间戳、不同osi层处的各种数据字段的哈希值等。
87.中间节点118可以修改第一数据流量332,从而生成第二数据流量336。例如,第二数据流量336可能漏掉由中间节点118丢弃的一个或多个分组(例如,由于应用了与中间节点118相关联的安全策略)。第二数据流量336可以包括一个或多个第二标签338,这些第二标签可以是(一个或多个)第一标签334的子集。即,(一个或多个)第二标签338可以是(一个或多个)第一标签334的不完整集合。接收到第二数据流量336的节点可以基于(一个或多个)第二标签338识别出第一数据流量332内的至少一些分组被从第二数据流量336中漏掉。例如,(一个或多个)第二标签338内的ioam数据可以用于识别第二数据流量336内不存在一个或多个分组。通过识别转发传输304的第二数据流量336漏掉了诊断传输302的第一数据流量332内的至少一些分组,可以对中间节点118进行诊断。
88.图3g示出了使用基于大规模流量的诊断测试的示例信令340。如图所示,诊断传输302可以包括一个或多个第一度量342。(一个或多个)第一度量342可以指示先前从第一网络节点(例如,第一网络节点104)发送到第二网络节点(例如,第二网络节点106)的数据流量。在一些情况下,第一网络节点是诊断传输302的源,并且诊断传输302寻址到第二网络节点。在一些示例中,(一个或多个)第一度量342可以包括在特定间隔中从第一网络节点发送到第二网络节点的多个分组(例如,http分组)。(一个或多个)第一度量342可以包括在诊断传输302的分段和/或分组的有效载荷内。
89.中间节点118可以在转发传输304中转发(一个或多个)第一度量342。接收到转发传输304的实体可以将(一个或多个)第一度量342与对应于第二网络节点先前从第一网络节点接收的数据流量的至少一个第二度量进行比较。在各种情况下,(一个或多个)第一度量342和(一个或多个)第二度量之间的比较可以指示数据流量中的一个或多个分组在该时间间隔期间被丢弃。通过确定(一个或多个)分组没有被第二网络节点接收,可以对中间节点118进行诊断。尽管图3g示出了(一个或多个)第一度量342由中间节点118转发,但在一些情况下,可以通过连接第一网络节点和第二网络节点的替代路径(例如,通过以上参考图1描述的(一个或多个)通信网络112的路径)来发送(一个或多个)第一度量342。
90.图4示出了用于对网络内的中间节点的存在和/或功能异常进行诊断的示例过程400。在各种示例中,过程400可以由以上参考图1描述的第二网络节点106和/或第二诊断系统122执行。
91.在402,可以接收源自网络节点的诊断传输的指示。诊断传输源自的网络节点可以是第一网络节点104和/或第一诊断系统120,如上文参考图1所述。在一些情况下,该指示可以包括通过至少一个通信网络(例如,以上参考图1描述的(一个或多个)通信网络112)接收的传输。在一些情况下,该指示可以包括由中间节点(例如,上面参考图1描述的中间节点118)转发的传输。
92.在各种情况下,诊断传输可以选择性地包括可能被中间节点操控的数据。在一些情况下,诊断传输可以包括可以用于推导出中间节点是否正在操控由中间节点转发的数据的数据。例如,诊断传输可以包括发起诊断传输的节点的mac地址、被损坏数据和有效数据的混合、恶意数据和有效的混合、多种类型的数据、传输诊断在其上发送的线缆的长度的指示、ioam标签、数据流量度量等。
93.在404,可以接收对应于诊断传输的转发传输。在各种情况下,中间节点可以操控和/或修改诊断传输内的数据。转发传输可以包括诊断传输内的至少一些数据。例如,转发
传输可以包括诊断传输中包括的有效数据。在某些情况下,转发传输可能漏掉诊断传输中的某些数据。例如,转发传输可能漏掉第一网络节点的mac地址、被损坏数据、恶意数据、至少一些ioam标签等。根据一些实现方式,转发传输可以包括与诊断传输中包括的数据不同的数据。例如,转发传输可以包括中间节点的mac地址。在一些情况下,转发传输可以分成由第二网络节点在不同时间接收的不同消息。例如,转发传输可以包括承载诊断传输中的第一类型的数据的第一消息和承载诊断传输中的第二类型的数据的第二消息,其中第一消息和第二消息在不同的时间被接收。在一些情况下,转发传输包括诊断传输的线缆长度和/或数据流量度量。
94.在406,可以基于诊断传输和/或转发传输,对中间节点的存在和/或功能异常进行诊断。例如,可以基于诊断传输中指示的mac地址与转发传输中指示的mac地址之间的差异来识别中间节点的存在和/或功能异常。在一些情况下,可以基于转发传输中不存在被损坏数据和/或不存在恶意数据来识别中间节点的存在和/或功能异常。在各种情况下,可以基于接收转发传输内的不同数据类型的时间差异来识别中间节点的存在和/或功能异常。在一些情况下,可以基于转发传输中指示的线缆长度与执行过程400的实体计算的线缆长度之间的差异来识别中间节点的存在和/或功能异常。在各种示例中,可以基于转发传输内的(一个或多个)ioam标签来确定中间节点的存在和/或功能异常。根据一些实例,可以基于转发传输内的数据流量度量来识别中间节点的存在和/或功能异常。
95.在某些情况下,可以进一步将中间节点的存在和/或功能异常向网络内的另一节点报告。例如,可以向网络控制器报告存在和/或功能异常,网络控制器可以执行可以解决存在和/或功能异常的各种功能。在某些情况下,可以按照避开中间网络的方式通过网络路由数据流量。在一些示例中,可以向管理员通知中间节点的存在和/或功能异常,并且管理员可以手动解决该存在和/或功能异常。
96.图5示出了用于识别网络内是否存在中间节点的示例过程500。在各种示例中,过程500可以由上面参考图1描述的第二网络节点106和/或第二诊断系统122执行。
97.在502,可以从网络节点接收诊断传输的指示。诊断传输源自的网络节点可以是第一网络节点104和/或第一诊断系统120,如上文参考图1所述。在一些情况下,该指示可以包括通过至少一个通信网络(例如,上面参考图1描述的(一个或多个)通信网络112)接收的传输。在一些情况下,该指示可以包括由中间节点(例如,上面参考图1描述的中间节点118)转发的传输。
98.在各种情况下,诊断传输可以选择性地包括可能由中间节点操控的数据(如果存在)。在一些情况下,诊断传输可以包括可以用于推导出中间节点是否正在操控由中间节点转发的数据的数据。例如,诊断传输可以包括发起诊断传输的节点的mac地址、被损坏数据和有效数据的混合、恶意数据和有效数据的混合、多种类型的数据、发送诊断传输的线缆的长度的指示、ioam标签、数据流量度量等。
99.在504,可以接收对应于诊断传输的转发传输。在各种情况下,中间节点(如果存在)可能操控和/或修改诊断传输内的数据。转发传输可以包括诊断传输内的至少一些数据。例如,转发传输可以包括诊断传输中包括的有效数据。在某些情况下,转发传输可能漏掉诊断传输中的某些数据。例如,转发传输可能漏掉第一网络节点的mac地址、被损坏数据、恶意数据、至少一些ioam标签等。根据一些实现方式,转发传输可以包括与诊断传输中包括
的数据不同的数据。例如,转发传输可以包括中间节点的mac地址。在一些情况下,转发传输可以分成由第二网络节点在不同时间接收的不同消息。例如,转发传输可以包括承载诊断传输中的第一类型的数据的第一消息和承载诊断传输中的第二类型的数据的第二消息,其中,第一和第二消息在不同的时间被接收。在一些情况下,转发传输包括诊断传输的数据流量度量和/或线缆长度。
100.在506,可以将诊断传输与转发传输进行比较。例如,可以将诊断传输中的一个或多个数据字段与转发传输中的一个或多个数据字段进行比较。在一些情况下,可以将诊断传输中的分组与转发传输中的一个或多个分组进行比较。
101.在508,过程500包括确定是否确认中间节点的存在。在各种情况下,可以基于诊断传输和转发传输之间的差异来确认中间节点的存在。例如,如果诊断传输中的mac地址不同于转发传输中的mac地址,则可以确认中间节点的存在。否则,如果诊断传输和转发传输包括相同的mac地址,则不确认中间节点的存在。
102.在一些示例中,尽管诊断传输中包含被损坏数据和/或恶意数据,但可以基于转发传输中不存在被损坏数据和/或者恶意数据来确认中间节点的存在。在某些情况下,只有一部分被损坏数据和/或恶意数据被排除出转发传输。例如,被损坏数据和/或恶意数据中对应于第一osi层的第一部分可以被包括在转发传输中,而被破坏数据和/或恶意数据中对应于第二osi层的第二部分可以被排除出转发传输。因此,可以进一步确认中间节点在第一osi层上是活动的。然而,如果转发传输中包括被损坏数据和/或恶意数据,则可以不确认中间节点的存在。
103.在某些情况下,可以基于转发传输内的不同类型的数据被接收的时间差异来确认中间节点的存在。例如,诊断传输可以包括同时(或在彼此的阈值时间段内)发送的不同类型的数据。然而,如果不同类型的数据在不同的时间(或在相隔大于阈值时间段的不同时间)被接收,则可以确认中间节点的存在。另一方面,如果同时(例如,或在彼此的阈值时间段内)接收到不同类型的数据,则可以不确认中间节点的存在。
104.根据各种示例,可以基于诊断传输中包括的标签(例如,ioam标签)与转发传输中包括的标签之间的差异来确认中间节点的存在。在一些情况下,可以基于诊断传输中的标签、转发传输中的标签、或其组合来识别诊断传输中包括的一个或多个分组并不存在于转发传输中。然而,如果标签指示诊断传输中的所有分组都包括在转发传输中,则可以不确认中间节点的存在。
105.如果在508确认中间节点的存在,则在510报告中间节点的存在。例如,可以生成指示中间节点的存在的报告,并将其发送到网络控制器(例如,上面参考图1描述的控制器108)、相应网络内的某个其他节点、或外部设备(例如,上面参考图1描述的用户设备116)。在一些情况下,可以在报告中进一步指示中间节点的类型(例如,中间节点在其上活动的(一个或多个)osi层)。在各种情况下,报告可以是传输。
106.如果在508没有确认中间节点的存在,则过程500包括在512确定是否已经执行最终诊断测试。在各种情况下,执行过程500的实体可以遵循指定诊断测试的特定顺序的协议。可以基于各种因素来预先确定协议。例如,可以在包括注入更大量数据的诊断测试之前执行包括在网络内注入最少量数据的诊断测试。在一些情况下,可以在更复杂的诊断测试(例如,基于被损坏数据的测试和/或基于恶意数据的测试)之前执行相对简单的诊断测试。
在512,可以确定是否已经遵循协议内的最终诊断测试。
107.如果在512确定尚未执行最终诊断测试,则过程500进行到514。在514,从网络节点接收附加诊断传输。在一些情况下,执行过程500的实体可以发送请求附加诊断传输的消息。诊断传输可以对应于协议内的下一诊断测试。此外,在执行514之后,基于下一诊断测试的执行,过程500返回到502。
108.然而,如果在512确定已经执行最终诊断测试,则过程进行到516。在516,报告中间节点的不存在。例如,可以生成指示中间节点不存在的消息,并将其发送到另一网络节点和/或至少一个外部设备。在某些情况下,可以向网络控制器报告不存在中间节点。
109.图6示出了能够执行用于实现上述功能的程序组件的服务器计算机600的示例计算机体系结构。图6所示的计算机体系结构示出了传统的服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、电子阅读器、智能电话、或其他计算设备,并且可以用于执行本文中呈现的任何软件组件。在一些示例中,服务器计算机600可以对应于这里描述的网络节点(例如,第一网络节点104和/或第二网络节点106)。
110.计算机600包括基板602或“母板”,它是可以通过系统总线或其他电气通信路径连接大量组件或设备的印刷电路板。在一种说明性配置中,一个或多个中央处理单元(“cpu”)604联合芯片组606进行操作。cpu604可以是执行计算机600的操作所必需的算术和逻辑运算的标准可编程处理器。
111.cpu 604通过操控区分离散的物理状态并改变这些物理状态的切换元件从一个物理状态转换到下一个物理状态来执行操作。切换元件通常包括保持两个二进制状态之一的电子电路(例如,触发器)和基于一个或多个其他切换元件(例如,逻辑门)的状态的逻辑组合提供输出状态的电子电路。这些基本的切换元件可以组合起来创建更复杂的逻辑电路,包括寄存器、加减法器、算术逻辑单元、浮点单元等。
112.芯片组606提供cpu 604和基板602上的其余组件和设备之间的接口。芯片组606可以提供到计算机600中用作主存储器的随机存取存储器(ram)608的接口。芯片组606还可以提供到计算机可读存储介质(例如,只读存储器(rom)610或非易失性ram(nvram))的接口,该计算机可读存储介质用于存储有助于启动计算机600并在各种组件和设备之间传输信息的基本例程。rom 610或nvram还可以存储根据本文描述的配置的计算机600的操作所必需的其他软件组件。
113.计算机600可以通过网络(例如,网络612)使用到远程计算设备和计算机系统的逻辑连接在联网环境中操作。芯片组606可以包括用于通过诸如千兆以太网适配器的网络接口控制器(nic)614提供网络连通性的功能。nic 614能够通过网络612将计算机600连接到其他计算设备。应当理解,计算机600中可以存在多个nic 614,这些nic将计算机600连接到其他类型的网络和远程计算机系统。在一些情况下,nic 614可以包括至少一个入口端口和/或至少一个出口端口。
114.计算机600可以连接到为计算机提供非易失性存储装置的存储设备616。存储设备616可以存储这里已经更详细描述的操作系统618、程序620、和数据。存储设备616可以通过连接到芯片组606的存储控制器622连接到计算机600。存储设备616可以由一个或多个物理存储单元组成。存储控制器616可以通过串行连接的小型计算机系统接口(scsi)(sas)接口、串行高级技术附件(sata)接口、光纤通道(fc)接口、或用于物理连接计算机和物理存储
单元并在它们之间传输数据的其他类型的接口与物理存储单元接口连接。
115.计算机600可以通过转换物理存储单元的物理状态以反映所存储的信息来将数据存储在存储设备616上。在本说明书的不同实施例中,物理状态的具体转换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现物理存储单元的技术、存储设备616的特征是主存储装置还是辅助存储装置等。
116.例如,计算机600可以通过存储控制器622发出指令以改变磁盘驱动单元内特定位置的磁特性、光学存储单元中特定位置的反射或折射特性、或固态存储单元中特定电容器、晶体管、或其他分立元件的电特性,来将信息存储到存储设备616。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,提供上述示例只是为了便于本说明。计算机600还可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来从存储设备616读取信息。
117.除了上述大容量存储设备616之外,计算机600还可以访问其他计算机可读存储介质以存储和检索信息,例如,程序模块、数据结构、或其他数据。本领域技术人员应当理解,计算机可读存储介质是提供数据的非暂态存储并且可以由计算机600访问的任何可用介质。在一些示例中,由本文描述的任何网络节点执行的操作可以由类似于计算机600的一个或多个设备支持。换句话说,由网络节点执行的一些或所有操作可以由在基于云的布置中操作的一个或多个计算机设备600执行。
118.通过示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于ram、rom、可擦除可编程rom(“eprom”)、电可擦除可编程rom(“eeprom”)、闪存或其他固态存储技术、光盘rom(“cd-rom”)、数字多功能盘(“dvd”)、高清dvd(“hd-dvd”)、blu-ray或其他光学存储装置、盒式磁带、磁带、磁盘存储装置、或可用于以非暂态方式存储期望信息的任何其他介质。
119.如上所述,存储设备616可以存储用于控制计算机600的操作的操作系统618。根据一个实施例,操作系统包括linux
tm
操作系统。根据另一实施例,操作系统包括来自华盛顿州雷蒙德市的微软公司的windows
tm server操作系统。根据进一步的实施例,操作系统可以包括unix
tm
操作系统或其变体之一。应当理解,也可以使用其他操作系统。存储设备616可以存储计算机600使用的其他系统或应用程序和数据。
120.在一个实施例中,存储设备616或其他计算机可读存储介质编码有计算机可执行指令,这些计算机可执行指令在加载到计算机600中时,将计算机从通用计算系统转换为能够实现本文所述实施例的专用计算机。如上所述,这些计算机可执行指令通过指定cpu 604如何在状态之间转换来转换计算机600。根据一个实施例,计算机600可以访问存储计算机可执行指令的计算机可读存储介质,这些计算机可执行指令在被计算机600执行时,指令执行上面关于图1至图5描述的各种过程。计算机600还可以包括计算机可读存储介质,其上存储有用于执行本文描述的任何其他计算机实现的操作的指令。
121.如图6所示,存储设备616存储程序620(程序620可以包括一个或多个进程624)以及诊断系统626(例如,上面参考图1描述的第一诊断系统120和/或第二诊断系统122)。(一个或多个)进程624可以包括在由(一个或多个)cpu 604执行时促使计算机600和/或(一个或多个)cpu 604执行一个或多个操作的指令。
122.计算机600还可以包括一个或多个输入/输出控制器628,用于接收并处理来自多
个输入设备(例如,键盘、鼠标、触摸板、触摸屏、电子笔、或其他类型的输入设备)的输入。类似地,输入/输出控制器628可以向显示器(例如,计算机监视器、平板显示器、数字投影仪)、打印机、或其他类型的输出设备提供输出。应当理解,计算机600可以不包括图6中所示的所有组件,并且可以包括图6未明确示出的其他组件,或者可以使用与图6示出的体系结构完全不同的体系结构。
123.总之,本公开描述了用于对网络节点的存在或功能异常进行诊断的技术。在示例方法中,第一网络节点接收源自第二网络节点的诊断传输的指示。第二网络节点还接收对应于诊断传输的转发传输。第一网络节点基于转发传输和诊断传输的指示中的至少一者,对第一网络节点和第二网络节点之间的中间节点的存在和中间节点的功能异常中的至少一者进行诊断。
124.在某些情况下,一个或多个组件在本文中可以被称为“被配置为”、“可配置为”,“可操作/操作以”、“被适配/可适配为”、“能够”、“可符合/符合”等。本领域技术人员将认识到,除非上下文另有要求,否则这些术语(例如,“被配置为”)可以总地涵盖活动状态组件和/或非活动状态组件和/或备用状态组件。
125.如本文所使用的,术语“基于”可以与“至少部分地基于”和“至少部分基于”同义。如本文所使用的,术语“包括/包含/具有”和“包含/包括/含有”及其等同物可以互换使用。“包括a、b、和c”的装置、系统、或方法包括a、b、和c,但也可以包括其他组件(例如,d)。也就是说,该装置、系统、或方法不限于组件a、b、和c。
126.虽然针对具体示例描述了本发明,但应理解,本发明的范围不限于这些具体示例。由于为适应特定的操作要求和环境而变化的其他修改和改变对于本领域技术人员来说是显而易见的,因此本发明不被认为局限于为了公开的目的而选择的示例,并且涵盖不构成偏离本发明的真正精神和范围的所有修改和改变。
127.尽管本技术描述了具有特定结构特征和/或方法动作的实施例,但应理解,权利要求不一定局限于所描述的特定特征或动作。相反,具体特征和动作仅仅是落入本技术的权利要求范围内的一些说明性实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1