CN112422357B - 网络通信路径的状态检测方法以及设备 - Google Patents

网络通信路径的状态检测方法以及设备 Download PDF

Info

Publication number
CN112422357B
CN112422357B CN201910784488.4A CN201910784488A CN112422357B CN 112422357 B CN112422357 B CN 112422357B CN 201910784488 A CN201910784488 A CN 201910784488A CN 112422357 B CN112422357 B CN 112422357B
Authority
CN
China
Prior art keywords
message
service
address
service message
computing node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910784488.4A
Other languages
English (en)
Other versions
CN112422357A (zh
Inventor
曹国志
周云龙
刘香枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN201910784488.4A priority Critical patent/CN112422357B/zh
Publication of CN112422357A publication Critical patent/CN112422357A/zh
Application granted granted Critical
Publication of CN112422357B publication Critical patent/CN112422357B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Abstract

本申请提供了一种虚拟机之间的网络状态检测方法以及设备。所述方法包括:分析节点接收控制节点发送的路径信息,路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;分析节点接收路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从第一叠加报文获取第二业务报文,其中第二业务报文是第一计算节点对第一业务报文进行复制产生的报文;分析节点在接收到路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断第二叠加报文是否携带有与第二业务报文相同的第三业务报文,如果是,确认第一计算节点与第二计算节点之间的网络状态正常,如果否,确认第一计算节点与第二计算节点之间的网络状态异常。

Description

网络通信路径的状态检测方法以及设备
技术领域
本申请涉及通信技术,尤其涉及一种网络通信路径的状态检测方法以及设备。
背景技术
报文转发系统通常包括发送节点、中间节点以及接收节点。其中,发送节点生成报文,并将报文发送给转发节点,中间节点再将报文转发给接收节点。但是,在报文从发送节点传输至接收节点的过程中,任何一个节点都有可能会发生丢包现象。
现有技术通常在发送节点生成测试报文时对测试报文进行标记,然后,在中间节点或者接收节点对接收到的测试报文的标记进行匹配,从而确定是否有接收到发送节点发送的测试报文,进而判断出是否发生了丢包现象。具体地,假设发送节点生成了m个测试报文P1,P2,…,Pm,并分别标记了标识Q1,Q2,…,Qm,并且,发送节点还会将标识Q1,Q2,…,Qm发送给中间节点和接收节点。如果中间节点对接收到的测试报文的标记进行匹配之后,发现标记为Q1,Q2,…,Qm的测试报文均可以被找到,就可以确定中间节点接收到了测试报文P1,P2,…,Pm,中间节点没有发生丢包现象。如果中间节点对接收到的测试报文的标记进行匹配之后,发现标记为Q2,…,Qm的测试报文均可以被找到,但是,标记为Q1的测试报文没有被找到,就可以确定测试报文P1没有被接收到,中间节点发生了丢包现象。同理,接收节点也通过类似的方法确定是否发生丢包现象。
但是,上述方法中发送节点、中间节点以及接收节点的拥有者和发送节点、转发节点以及接收节点的使用者必须是相同的,也就是说,测试报文必须是发送节点、中间节点以及接收节点的拥有者生成的,这样才能在测试报文上做标记并进行丢包检测。
发明内容
为了解决上述问题,本申请提供了一种网络通信路径的状态检测方法以及设备,能够检测公有云场景下的业务报文是否有发生丢包。
第一方面,提供了一种虚拟机之间的网络状态检测方法,包括:
分析节点接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述分析节点接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述分析节点在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
上述方案中,网络状态分析节点可以根据第二计算节点发送的第二叠加报文携带的第三业务报文是否与第一计算节点发送的第二叠加报文携带的第二业务报文是否相同,进而确定第一计算节点和第二计算节点之间的网络状态是否正常,因此,即使用户在产生第一业务报文时没有添加任何的标记,运营商的网络状态分析节点也可以判断出第一计算节点和第二计算节点之间是否存在网络问题。
在一些可能的设计中,所述分析节点在接收不到所述路径信息指示的第二计算节点发送的所述第二叠加报文的情况下,确认所述第一计算节点与所述第二计算节点之间的网络状态异常。
在一些可能的设计中,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息一致的情况下,确认第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不一致的情况下,确认第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
在一些可能的设计中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
根据第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量确定第二哈希值;
在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文。
上述方案中,将第二业务报文的多元组信息和第三业务报文的多元组信息分别转换为第一哈希值和第二哈希值再进行比对,能够大大地减少比对时所需要的工作量。
在一些可能的设计中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
根据第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、所述第二序号以及所述第二确认序号确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、所述第三序号以及所述第三确认序号确定第二哈希值;
在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文。
在一些可能的设计中,所述方法还包括:
所述分析节点向所述控制节点发送网络状态信息,所述网络状态信息用于指示所述第一计算节点与所述第二计算节点之间的网络状态。
第二方面,提供了一种虚拟机之间的网络状态检测设备,包括:接收模块以及处理模块,所述接收模块用于接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述接收模块用于接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述处理模块用于在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
在一些可能的设计中,所述处理模块用于在接收不到所述路径信息指示的第二计算节点发送的所述第二叠加报文的情况下,确认所述第一计算节点与所述第二计算节点之间的网络状态异常。
在一些可能的设计中,所述处理模块用于在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息一致的情况下,确认第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不一致的情况下,确认第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
在一些可能的设计中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量,
所述处理模块用于根据第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量确定第二哈希值;
所述处理模块用于在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文。
在一些可能的设计中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号;
所述处理模块用于根据第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号确定第二哈希值;
所述处理模块用于在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文。
在一些可能的设计中,所述设备还包括发送模块,
所述发送模块用于向所述控制节点发送网络状态信息,所述网络状态信息用于指示所述第一计算节点与所述第二计算节点之间的网络状态。
第三方面,提供了一种服务器,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如第一方面任一项所述的方法。
第四方面,提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
第五方面,提供了一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,如第一方面任一项所述的方法将被执行。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请的一种应用场景的示意图;
图2是本申请涉及的一种计算节点的结构示意图;
图3是本申请涉及一种虚拟交换机的结构示意图;
图4是本申请涉及的一种网络架构的结构示意图;
图5是本申请涉及的一种网络协议栈的示意图;
图6是本申请涉及的一种TCP/IP网络协议栈的示意图;
图7是本申请涉及的一种UDP/IP网络协议栈的示意图;
图8是本申请涉及的一种VXLAN报文的示意图;
图9是本申请涉及的一种IP报文头的结构示意图;
图10是本申请涉及的一种TCP报文头的结构示意图;
图11是本申请涉及的一种UDP报文头的结构示意图;
图12是本申请涉及的一种VXLAN报文头的结构示意图;
图13是本申请提出的一种虚拟机之间的网络状态检测的结构示意图;
图14是本申请提供的一种虚拟机之间的网络状态检测方法的流程图;
图15是本申请提供的一种界面的示意图;
图16是本申请提供的一种分析节点的结构示意图;
图17是本申请提供的另一种分析节点的结构示意图;
图18是本申请提供的一种分析节点的模块示意图。
具体实施方式
参见图1,图1是本申请的一种应用场景的结构示意图。本应用场景为公有云场景,公有云的拥有者自己部署云计算基础设施,即,部署计算资源(例如,服务器)110、部署存储资源(例如,存储器)120以及部署网络资源(例如,网卡)130等等。然后,公有云的拥有者(例如,运营商)将云计算基础设施的计算资源、存储资源、网络资源进行虚拟化,并提供相应的服务给公有云的使用者(例如,用户)使用。其中,运营商可以提供以下三种服务给用户使用:云计算基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platformas a Service,PaaS)以及软件即服务(Software as a Service,SaaS)。
IaaS提供给用户的服务是对云计算基础设施的利用,包括处理、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。用户不管理或控制任何云计算基础设施,但能控制操作系统的选择、储存空间、部署应用,也有可能获得有限制的网络组件(例如,防火墙,负载均衡器等)的控制。
PaaS提供给用户的服务是把用户采用供应商提供的开发语言和工具(例如Java,python,Net等)开发的或收购的应用程序部署到云计算基础设施上去。用户不需要管理或控制底层的云计算基础设施,包括网络、服务器、操作系统、存储等,但用户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置。
SaaS提供给用户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面,如浏览器,访问云计算基础设施上的应用程序。用户不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等。
用户可以利用运营商提供的服务运行自己的业务,例如,深度学习、人工智能以及大数据等等。显然地,在公有云的场景下,云计算基础设施的拥有者和云计算基础设施的使用者是分离的。
参见图2,图2是本申请涉及的一种计算节点的结构示意图。如图2所示,本实施例的计算节点包括硬件资源110、虚拟软件(Hypervisor)120、虚拟机(Virtual Machine,VM)130、操作系统140以及应用软件(Application,APP)150。
硬件资源110是计算节点中的基础物理硬件,可以包括处理器、内存、磁盘以及网络等等。
虚拟软件120运行在硬件资源和虚拟机之间的中间软件层,例如,VMwarevSphere、Hyper-V、Citrix XenServer、IBM PowerVM、Red Hat EnterpriseVirtulization、Huawei FusionSphere、KVM、Xen、VirtualBSD等,可允许多个虚拟机共享一套基础物理硬件。虚拟软件120可以采用Hypervisor,它可以协调访问计算节点上的所有基础物理硬件和虚拟机,当计算节点启动并执行Hypervisor时,它会给每一台虚拟机分配适量的硬件资源,例如处理器、内存、磁盘和网络等等,并加载所有虚拟机的操作系统。虚拟软件120中通常集成了虚拟交换设备,例如,虚拟交换机以及桥(bridge)等等。其中,虚拟交换机可以包括VMware virtual switch、Cisco Nexus 1000V以及开源虚拟交换机(OpenvSwitch,OVS)。以OVS为例,虚拟交换机可以通过OpenFlow协议连接到控制器之上,控制器可以通过向虚拟交换机下发流表规则来控制数据流向。其中,如图3所示,虚拟交换机可以包括:OVS虚拟开关(ovs-vswitchd)、OVS数据库服务(ovsdb-server)以及数据路径(datapath)。控制器可以设置在其他计算节点上,也可以作为单独的计算节点,此处不作具体限定。
虚拟机130指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
操作系统(Operating System,OS)140是管理和控制计算机硬件与软件资源的计算机程序,用户和计算机的接口,同时也是计算机硬件和其他软件的接口,例如,SUNSolaris,IBM-AIX,HP-UX,FreeBSD,Red Hat Linux,CentOS,Debian,Ubuntu,WindowsServer 2003,Windows Server 2008,Windows Server 2008R2。
应用软件150是用户可以使用的各种程序设计语言以及用各种程序设计语言编制的应用程序的集合,例如,office软件、ICQ软件、浏览器软件。
应理解,上述计算节点还可以包括更多或者更少模块,此处不作具体限定。
参见图4,图4是本申请涉及一种网络架构的结构示意图。如图4所示,本申请的网络架构是由图2以及图3所示的计算节点构成,该网络架构包括:计算节点1、计算节点2、计算节点3以及计算节点4。其中,计算节点1用于产生用户自己的业务报文,计算节点4用于接收计算节点1产生的业务报文,并且,计算节点1将业务报文发送给计算节点4的过程中途经计算节点2以及计算节点。这里,计算节点1至计算节点4的拥有者是运营商,计算节点1至计算节点4的的使用者是用户,用户产生属于自己的业务报文,利用计算节点1至计算节点4实现业务报文的传输。
如图5所示,业务报文采用的网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。在发送节点生成业务报文的过程中,每层协议都要在上一层数据的基础加上数据首部(header),称为封装(Encapsulation)。可以理解,本申请中只涉及网络层以及传输层的内容,不涉及链路层传输的内容,因此,本申请中进行传输的数据简称为业务报文。
如图6所示,当网络协议为传输控制协议(TransmissionControl Protocol,TCP)/互联网协议地址(InternetProtocolAddress,IP)网络协议栈时,即传输层采用TCP协议,网络层采用IP协议,如图6所示,发送节点对数据封装过程如下:用户产生的业务数据在应用层添加上APPL报文头成为应用数据,并被送入到传输层。在应用层生成的应用数据可以在传输层添加上TCP报文头成为TCP段,并被送入到网络层。在传输层生成的TCP段可以在网络层添加上IP报文头成为IP报文(即业务报文),并被送入到链路层。在网络层生成的IP报文可以在链路层添加上以太网帧头以及以太网帧尾成为以太网帧,并进行传输。
如图7所示,当网络协议为用户数据报协议(User Datagram Protocol,UDP)/互联网协议地址(InternetProtocolAddress,IP)网络协议栈时,即传输层采用UDP协议,网络层采用IP协议,如图7所示,数据的封装过程如下:用户产生的业务数据在应用层添加上APPL报文头成为应用数据,并被送入到传输层。在应用层生成的应用数据可以在传输层添加上UDP报文头成为UDP段,并被送入到网络层。在传输层生成的UDP段可以在网络层添加上IP报文头成为IP报文(即业务报文),并被送入到链路层。在网络层生成的IP报文可以在链路层添加上以太网帧头以及以太网帧尾成为以太网帧,并进行传输。
为了使得业务报文能够在虚拟可拓展局域网(Virtual eXtential LAN,VXLAN)上传输,还可以在网络层和链路层之间再进行一次封装。对应于图6以及图7所示的IP报文,如图8所示,虚拟交换设备可以接收VM发送的IP报文,并在IP报文上添加上VXLAN报文头以生成VXLAN报文。也就是说,VXLAN报文包括报文头(head)以及负载(payload),其中,报文头为VXLAN报文头,负载为VM发送的IP报文。
下文中的图9、图10、图11以及相关内容分别详细介绍本申请涉及的IP报文头、TCP报文头以及UDP报文头。
如图9所示,IP报文头通常包括如下字段:4位的版本号(version)、4位的数据报协议头长度(IP heade length,IHL)、8位的服务级别(type of service,TOS)、16位的数据单元长度(total length)、16位的标识(identification)、3位的标记(flag)、13位的分段偏移(offect)、8位的生命期(time to live,TTL)、8位的协议也可以叫传输层协议(protocol)、16位的报头检查(header check sum)、32位的源地址(source address)、32位的目的地址(destination address)、32位的任选项(options)以及32位的填充(padding)。
在上述字段中,标识、协议、分段偏移、源地址以及目的地址可以用于唯一标识业务报文。也就是说,A业务报文中的标识、协议、分段偏移、源地址以及目的地址和B业务报文中的标识、协议、分段偏移、源地址以及目的地址中的至少一个是不相同的。
如图10所示,TCP报文头通常包括如下字段:16位的源端口号(source port)、16位的目的端口号(destination port)、32位序号、32位确认序号、4位首部长度、6位保留位、1位紧急标志(URG)、1位确认标志(ACK)、1位推送标志(PSH)、1位复位标志(RST)、1位同步标志(SYN)、1位终止标志(FIN)、16位窗口大小、16位的校验和以及16位的紧急指针。
将IP报文头和TCP报文头结合,这两者蕴含的源地址、目的地址、源端口号、目的端口号、协议字段、TCP序列号以及TCP确认序列号可以用于唯一标识业务报文。也就是说,A业务报文中的源地址、目的地址、源端口号、目的端口号、协议字段、TCP序列号以及TCP确认序列号和B业务报文中的源地址、目的地址、源端口号、目的端口号、协议字段、TCP序列号以及TCP确认序列号中的至少一个是不相同的。
如图11所示,当业务报文为UDP报文时,报文头通常包括如下字段:16位的UDP长度、16位的源端口号(source port)、16位的目的端口号(destination port)、16位的UDP长度以及16位的UDP校验和。
如图12所示,VXLAN报文头包括如下字段:64位的VXLAN首部,64位的外部UDP首部、128位的外部IP首部以及140位的外部以太网首部。其中,VXLAN首部包括:8位的VXLAN标志、24位的保留位、24位的VXLAN网络标识(VXLAN NetworkIdentifier,VNI)以及8位的保留位。外部UDP首部包括:16位的源端口号、16位的目的端口号、16位的UDP长度以及16位的UDP检验和。外部IP首部包括:16位的源IP地址、16位的目的IP地址以及48位的协议等等。外部以太网首部包括:源媒体访问控制(Medium Access Control,MAC)地址、目的MAC地址、VXLAN类型、VXLAN标识以及以太网类型。
继续参见图4,以及计算节点1为发送节点,计算节点2为关键节点,计算节点3为非关键节点,计算节点4为接收节点为例,详细描述业务报文在计算节点1至计算节点4的传输过程。其中,发送节点是产生业务报文的节点,关键节点可以是负载均衡节点等等具有将VXLAN报文解封装为IP报文能力的节点,非关键节点可以是网关等等不具备将VXLAN报文解封装为IP报文能力的节点,接收节点是接收业务报文的节点。
计算节点1中的VM1生成IP报文(业务报文),并通过OVS1对IP报文进行封装,从而得到第一VXLAN报文,其中,第一VXLAN报文的VXLAN报文头中的外部IP首部的源IP地址为计算节点1的IP地址,目的IP地址为计算节点2的IP地址;第一VXLAN报文的IP报文头中的源IP地址为VM1的IP地址,目的IP地址为VM4的IP地址。计算节点1通过隧道将第一VXLAN报文发送给计算节点2。
计算节点2的OVS2接收到第一VXLAN报文之后,根据第一VXLAN报文的VXLAN报文头中的外部IP首部的目的IP地址确定本节点为目的节点。计算节点2的OVS2对第一VXLAN报文进行解封装,从而得到IP报文。然后,计算节点2通过OVS2将IP报文重新进行封装,从而得到第二VXLAN报文。其中,第二VXLAN报文的VXLAN报文头中的外部IP首部的源IP地址为计算节点2的IP地址,目的IP地址为计算节点4的IP地址;第二VXLAN报文的IP报文头中的源IP地址为VM1的IP地址,目的IP地址为VM4的IP地址。计算节点2将第二VXLAN报文通过隧道发送给计算节点3。
计算节点3的OVS3根据第二VXLAN报文的VXLAN报文头中的外部IP首部的目的IP地址确定本节点不是目的节点,于是,计算节点3的OVS3将第二VXLAN报文发送给计算节点4。
计算节点4的接收到第二VXLAN报文之后,将根据第二VXLAN报文的VXLAN报文头中的外部IP首部的目的IP地址确定本节点是目的节点,计算节点4的OVS4将第二VXLAN报文进行解封装,从而得到IP报文(业务报文),并且,计算节点4的OVS4根据IP报文头中的目标IP地址确定本节点为接收节点,于是,将接收到的IP报文上传给VM4进行处理。
为了简便起见,上述例子中均以计算节点内只有一个VM为例进行说明,但是,在实际应用中,计算节点内可以包括两个或者更多的VM,此处不作具体限定。
上述方案中,由于计算节点1至计算节点4的使用者和拥有者是分离的,所以,计算节点1至计算节点4的使用者,即,用户,在生成业务报文的过程中不会进行任何标记,因此,计算节点1至计算节点4的拥有者,即,运营商,无法确定业务报文是否有被接收,进而确定是否有发生丢包现象。
为了解决上述问题,参加图13,图13是本申请提出的一种虚拟机之间的网络状态检测系统的结构示意图。本实施方式的虚拟机之间的网络状态检测系统包括:计算节点1计算节点1、计算节点2、计算节点3以及计算节点4。其中,计算节点1用于产生用户自己的业务报文,计算节点4用于接收计算节点1产生的业务报文,并且,计算节点1将业务报文发送给计算节点4的过程中途经计算节点2以及计算节点。分析节点分别连接计算节点1至计算节点4,同样,控制器分别连接计算节点1至计算节点4。
分析节点可以是实体设备,也可以是虚拟设备。当分析节点是实体设备时,分析节点可以具有处理器、硬盘、内存、网卡以及系统总线等等。当分析节点是虚拟设备时,分析节点可以通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中计算设备。在一具体的实施例中,分析节点可以是服务器。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。比通用的计算机架构,在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求更高。在一具体的实施例中,分析节点可以是服务器上虚拟出来的虚拟机。虚拟机在计算机上运行的应用程序,它可以模拟一个基于x86的标准PC环境,这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等等中的一种或者多种设备。
控制器用于对计算节点进行控制和管理。控制节点可以是实体设备,也可以是虚拟设备。当控制节点是实体设备时,控制节点可以具有处理器、硬盘、内存、网卡以及系统总线等等。当控制节点是虚拟设备时,控制节点可以通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中计算设备。在一具体的实施例中,控制节点可以是服务器。控制节点是公有云运营系统里的监控和操作平台,可以获取公有云里所有的计算节点信息(硬件、IP及转发信息表、本节点上运行的VM等),网元节点信息(硬件、IP及转发信息表、地址映射表等),VM资源信息(规格、IP、挂载的硬盘、所属租户ID等),并做图形化显示,还可以按照运营管理者的业务编排,向所管理的资源发送操作指令完成相应配置。
本申请实施例提供了一种基于图13所示的系统的虚拟机之间的网络状态检测方法,能够检测公有云场景下的业务报文是否有发生丢包。
参见图14,图14是本申请提供的一种虚拟机之间的网络状态检测方法的流程图。本实施方式的虚拟机之间的网络状态检测方法应用于分析节点,所述方法包括:
S101:分析节点接收控制节点发送的路径信息。
在本申请具体的实施例中,分析节点可以是图13所示的系统中的分析节点,控制节点可以是图13所示的系统中的控制节点。
在本申请具体的实施例中,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点。其中,源虚拟机可以是生成第一业务报文的虚拟机,目标虚拟机可以是接收第一业务报文的虚拟机,第一业务报文为从所述源虚拟机发送至目标虚拟机的报文。以图13所示的系统为例,所述源虚拟机可以是位于计算节点1内的VM1,所述目标虚拟机可以是位于计算节点4内的VM4,所述第一业务报文为源虚拟机VM1发送至目标虚拟机VM4的IP报文。所述源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点包括:计算节点1、计算节点2、计算节点3以及计算节点4。因此,所述路径信息可以包括计算节点1的IP地址,计算节点2的IP地址,计算节点3的IP地址以及计算节点4的IP地址。这里,源虚拟机VM1向目标虚拟机VM4发送第一业务报文的过程可以参加图4以及相关描述,只需要将VM1生成IP报文替换为第一业务报文即可,此处不再展开描述。
在本申请具体的实施例中,路径信息可以是控制节点根据用户的需要确定的。继续以图13所示的系统为例,控制节点可以显示如图15所示的界面,以提示用户“是否需要检测VM1和VM2之间的计算节点的网络状态?”。当用户选择点击“是”按钮时,控制节点生成所述源虚拟机VM1发送至目标虚拟机VM2的第一业务报文经过的计算节点的路径信息。当用户选择点击“否”按钮时,控制节点不会生成所述源虚拟机VM1发送至目标虚拟机VM2的第一业务报文经过的计算节点的路径信息。可以理解,上述源虚拟机和所述目标虚拟机可以是用户自行选择的,例如,可以选择源虚拟机为VM3,目标虚拟机为VM1等等,此处不做具体限定。
S102:分析节点接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文。
在本申请具体的实施例中,第一计算节点可以是第一业务报文经过的计算节点中的任一计算节点。
在本申请具体的实施例中,所述第一叠加报文是所述第一计算节点对所述第二业务报文进行封装得到的。所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文。以第一计算节点为图13所示的计算节点1为例,源虚拟机VM1生成第一业务报文之后,OVS1对所述第一业务报文进行复制,从而得到第二业务报文。其中,第一业务报文的IP报文头的源IP地址为VM1的IP地址,目的IP地址为VM4的IP地址,第二业务报文的IP报文头的源IP地址为VM1的IP地址,目的IP地址为VM4的IP地址。OVS1将第二业务报文作为负载进行封装,从而得到第一叠加报文。其中,所述第一叠加报文的报文头可以是IP报文头也可以是VXLAN报文头。所述第一叠加报文的负载为第二业务报文。即,所述第一叠加报文可以是VXLAN报文,也可以是IP报文。所述第一叠加报文的报文头的目的IP地址为分析节点的IP地址。
在本申请具体的实施例中,所述第一叠加报文是所述第一计算节点根据所述第一叠加报文的报文头中的目的IP地址为分析节点的IP地址,发送给所述分析节点的。
S103:分析节点判断是否接收到所述路径信息指示的第二计算节点发送的第二叠加报文。如果接收到第二叠加报文,进入步骤S104。如果没有接收到第二叠加报文,进入步骤S106。
在本申请具体的实施例中,第二计算节点可以是第一业务报文经过的计算节点中的任一计算节点,并且,所述第一计算节点先接收到所述第一业务报文,所述第二计算节点后接收到所述第一业务报文。
在本申请具体的实施例中,所述第二叠加报文是所述第二计算节点对所述第三业务报文进行封装得到的。所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。以第二计算节点为图13所示的计算节点2为例,计算节点2中的OVS2接收到计算节点1发送的第一VXLAN报文之后,对第一VXLAN报文进行解封,从而得到第一业务报文。然后,OVS2对所述第一业务报文进行复制,从而得到第三业务报文。其中,第三业务报文的IP报文头的源IP地址为VM1的IP地址,目的IP地址为VM4的IP地址。OVS2将第三业务报文作为负载进行封装,从而得到第二叠加报文。其中,所述第二叠加报文的报文头可以是IP报文头也可以是VXLAN报文头。所述第二叠加报文的负载为第二业务报文。即,所述第二叠加报文可以是VXLAN报文,也可以是IP报文。所述第二叠加报文的报文头的目的IP地址为分析节点的IP地址。
在本申请具体的实施例中,所述第二叠加报文是所述第二计算节点根据所述第二叠加报文的报文头中的目的IP地址为分析节点的IP地址,发送给所述分析节点的。
S104:所述分析节点在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文。如果携带有与所述第二业务报文相同的第三业务报文,进入步骤S105,如果没有携带有与所述第二业务报文相同的第三业务报文,进入步骤S106。
在本申请具体的实施例中,所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息一致的情况下,确认第二叠加报文携带有与所述第二业务报文相同的第三业务报文;所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不一致的情况下,确认第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
在一具体的实施方式中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量。
在一具体的实施方式中,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号。
在本申请具体的实施例中,所述分析节点可以根据以下两种方式确定所述第三业务报文的多元组信息和所述第二业务报文的多元组信息是否相同:
第一种方式中,根据第二业务报文的多元组信息确定第一哈希值,根据第三业务报文的多元组信息确定第二哈希值;在所述第一哈希值等于所述第二哈希值的情况下,确定所述第三业务报文的多元组信息和所述第二业务报文的多元组信息相同;在所述第一哈希值不等于所述第二哈希值的情况下,确定所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不相同。
第二种方式中,将第二业务报文的多元组信息和第三业务报文的多元组信息分别进行比较,在第二业务报文的多元组信息和第三业务报文的多元组信息相同时,确定所述第三业务报文的多元组信息和所述第二业务报文的多元组信息相同;在第二业务报文的多元组信息和第三业务报文的多元组信息不相同时,确定所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不相同。
S105:分析节点确认所述第一计算节点与所述第二计算节点之间的网络状态正常。
S106:分析节点确认所述第一计算节点与所述第二计算节点之间的网络状态异常。
下面将结合具体的例子说明,分析节点是如何确定是否有发生丢包现象。在第一实施例中,描述了在没有发生丢包现象的情况下,分析节点的具体分析过程。在第二实施例中,描述了在发生丢包现象的情况下,分析节点的具体分析过程。
在第一实施例中:
假设计算节点1分别生成了n个业务报文A1,A2,…,An,并将n个业务报文A1,A2,…,An向计算节点4发送,以期望将n个业务报文A1,A2,…,An发送给计算节点4。在从计算节点1至计算节点4的传输过程中,计算节点1和计算节点4中n个业务报文均没有发生过丢包,则分析节点的具体处理过程如下:
计算节点1分别对n个业务报文A1,A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A1之后,对业务报文A1的IP报文头进行解析,记录业务报文A1的标识I1、协议X1、分段偏移O1、源地址S1以及目的地址T1以获得业务报文A1的报文标识D1;分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;分析节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn
计算节点2分别对n个业务报文A1,A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A1之后,对业务报文A1的IP报文头进行解析,记录业务报文A1的标识I1、协议X1、分段偏移O1、源地址S1以及目的地址T1以获得业务报文A1的报文标识D1;分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;分析节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn。分析节点通过对比可以确定计算节点1发出的是n个业务报文A1,A2,…,An,计算节点2接受到了n个业务报文A1,A2,…,An,因此,可以确定计算节点1生成的n个业务报文A1,A2,…,An均被计算节点2所接收到,计算节点2没有发生丢包现象。
计算节点3是非关键节点,可以不需要将n个业务报文A1,A2,…,An进行复制并发送给分析节点。
计算节点4分别对n个业务报文A1,A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A1之后,对业务报文A1的IP报文头进行解析,记录业务报文A1的标识I1、协议X1、分段偏移O1、源地址S1以及目的地址T1以获得业务报文A1的报文标识D1;分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn。分析节点通过对比可以确定计算节点2发出的是n个业务报文A1,A2,…,An,计算节点4接受到了n个业务报文A1,A2,…,An,因此,可以确定计算节点2生成的n个业务报文A1,A2,…,An均被计算节点4所接收到,计算节点4没有发生丢包现象。
在第二实施例中:
假设计算节点1分别生成了n个业务报文A1,A2,…,An,并将n个业务报文A1,A2,…,An向计算节点4发送,以期望将n个业务报文A1,A2,…,An发送给计算节点4。在从计算节点1至计算节点4的传输过程中,在计算节点2中A1中发生了丢包,则分析节点的具体处理过程如下:
计算节点1分别对n个业务报文A1,A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A1之后,对业务报文A1的IP报文头进行解析,记录业务报文A1的标识I1、协议X1、分段偏移O1、源地址S1以及目的地址T1以获得业务报文A1的报文标识D1;分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;分析节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn
计算节点2分别对n-1个业务报文A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;分析节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn。分析节点通过对比可以确定计算节点1发出的是n个业务报文A1,A2,…,An,计算节点2接受到了n-1个业务报文A2,…,An,因此,可以确定计算节点1生成的n-1个业务报文A2,…,An均被计算节点2所接收到,计算节点2没有发生丢包现象。
计算节点3是非关键节点,可以不需要将n个业务报文A1,A2,…,An进行复制并发送给分析节点。
计算节点4分别对n-1个业务报文A2,…,An进行复制并发送给分析节点。分析节点接收到业务报文A2之后,对业务报文A2的IP报文头进行解析,记录业务报文A2的标识I2、协议X2、分段偏移O2、源地址S2以及目的地址T2以获得业务报文A2的报文标识D2;…;分析节点接收到业务报文An之后,对业务报文An的IP报文头进行解析,记录业务报文An的标识In、协议Xn、分段偏移On、源地址Sn以及目的地址Tn以获得业务报文An的报文标识Dn。分析节点通过对比可以确定计算节点2发出的是n-1个业务报文A2,…,An,计算节点4接受到了n-1个业务报文A2,…,An,因此,可以确定计算节点2发送的n-1个业务报文A2,…,An均被计算节点4所接收到,计算节点4没有发生丢包现象。
可以理解,上述第一实施例和第二实施例均以从IP报文头获取标识、协议、分段偏移、源地址以及目的地址作为业务报文的IP多元组为例进行说明,但是,在实际应用中,也可以从IP报文头和TCP报文头获取源地址、目的地址、源端口号、目的端口号、传输层协议、序号以及确认序号作为业务报文的IP多元组等等,此次不作具体限定。
参见图16,图16是本申请提供的一种分析节点的结构示意图。本实施例的分析节点可以用于执行图14所示的虚拟机之间的网络状态检测方法。本实施例的分析节点通常包括第一处理器210、第一存储器220、智能网卡230以及总线240。
第一处理器210可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(Application Specific IntegratedCircuit,ASIC)等等。第一处理器210执行各种类型的数字存储指令,例如存储在第一存储器220中的软件或者固件程序。在一具体的实施例中,第一处理器210可以是x86处理器等等。第一处理器210通过物理接口将命令发送给第一存储器220,以完成存储相关的任务,例如,第一处理器210可以提供的命令包括读取命令、写入命令、复制命令以及擦除命令等等。所述命令可以指定与第一存储器220的特定页和块有关的操作。作为一个示例,一个命令可以请求将数据写入到特定物理页,或者,另一个命令可以请求擦除特定物理块。第一处理器210内可以虚拟出多个虚拟机,每个虚拟机上可以安装相应的操作系统。
第一存储器220可以包括是随机存取存储器(Random Access Memory,RAM)、快闪存储器(FlashMemory)等,也可以是RAM,只读存储器(Read-OnlyMemory,ROM)或者硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-StateDrive,SSD)。
智能网卡230,还被称为网络接口控制器、网络接口卡或者局域网(Local AreaNetwork,LAN)适配器。每块智能网卡230都有一个唯一的MAC地址,是智能网卡230厂家在生产时烧入只读存储芯片中的。
智能网卡230包括第二处理器、第二存储器以及收发器。第二处理器与第一处理器相类似,但是,第二处理器的性能要求可以低于第一处理器的性能要求。在一具体的实施例中,第二处理器可以是ARM处理器等等。第二存储器也可以是快闪存储器、HDD或者SDD,第二存储器的存储容量可以小于第一存储器的存储容量。收发器可以用于接收和发送报文,并将接收到的报文上传给第二处理器进行处理。智能网卡230还可以包括多个端口,端口可以是粗缆接口、细缆接口和双绞线接口三种接口类型中的任意一种或者多种。
所述智能网卡230用于接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述智能网卡230用于接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述第一处理器210或者所述第二处理器231用于在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
为了简便起见,上述分析节点并没有详细进行描述,具体请参见图14以及相关描述,此处不再展开赘述。
参见图17,图17是本申请提供的另一种分析节点的结构示意图。本实施例的分析节点可以用于执行图14所示的虚拟机之间的网络状态检测方法。本实施例的分析节点通常包括处理器310、存储器320以及网卡330。
处理器310可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(Application Specific IntegratedCircuit,ASIC)等等。处理器310执行各种类型的数字存储指令,例如存储在存储器320中的软件或者固件程序。在一具体的实施例中,处理器310可以是x86处理器等等。处理器310通过物理接口将命令发送给存储器320,以完成存储相关的任务,例如,处理器310可以提供的命令包括读取命令、写入命令、复制命令以及擦除命令等等。所述命令可以指定与存储器320的特定页和块有关的操作。作为一个示例,一个命令可以请求将数据写入到特定物理页,或者,另一个命令可以请求擦除特定物理块。处理器310内可以虚拟出多个虚拟机,每个虚拟机上可以安装相应的操作系统。
存储器320可以包括是随机存取存储器(Random Access Memory,RAM)、快闪存储器(FlashMemory)等,也可以是RAM,只读存储器(Read-OnlyMemory,ROM)或者硬盘(HardDisk Drive,HDD)或固态硬盘(Solid-StateDrive,SSD)。
网卡330,还被称为网络接口控制器、网络接口卡或者局域网(Local AreaNetwork,LAN)适配器。每块网卡330都有一个唯一的MAC地址,是网卡330厂家在生产时烧入只读存储芯片中的。
所述网卡330用于接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述网卡330用于接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述处理器310用于在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
为了简便起见,上述分析节点并没有详细进行描述,具体请参见图14以及相关描述,此处不再展开赘述。
参见图18,图18是本申请提供的一种分析节点的模块示意图。本实施例的分析节点包括:接收模块410、发送模块420以及处理模块430。
所述接收模块410用于接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述接收模块410用于接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述处理模块430用于在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
为了简便起见,上述分析节点并没有详细进行描述,具体请参见图14以及相关描述,此处不再展开赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。

Claims (14)

1.一种虚拟机之间的网络状态检测方法,其特征在于,包括:
分析节点接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述分析节点接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述分析节点在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述分析节点在接收不到所述路径信息指示的第二计算节点发送的所述第二叠加报文的情况下,确认所述第一计算节点与所述第二计算节点之间的网络状态异常。
3.根据权利要求1或2所述的方法,其特征在于,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息一致的情况下,确认第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述分析节点在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不一致的情况下,确认第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
4.根据权利要求3所述的方法,其特征在于,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
根据第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量确定第二哈希值;
在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
5.根据权利要求3所述的方法,其特征在于,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号,所述判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,包括:
根据第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、所述第二序号以及所述第二确认序号确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、所述第三序号以及所述第三确认序号确定第二哈希值;
在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述分析节点向所述控制节点发送网络状态信息,所述网络状态信息用于指示所述第一计算节点与所述第二计算节点之间的网络状态。
7.一种虚拟机之间的网络状态检测设备,其特征在于,包括:接收模块以及处理模块,
所述接收模块用于接收控制节点发送的路径信息,所述路径信息用于指示源虚拟机发送至目标虚拟机的第一业务报文经过的计算节点;
所述接收模块用于接收所述路径信息指示的第一计算节点发送的携带有第二业务报文的第一叠加报文,从所述第一叠加报文获取所述第二业务报文,其中所述第二业务报文是所述第一计算节点对所述第一业务报文进行复制产生的报文;
所述处理模块用于在接收到所述路径信息指示的第二计算节点发送的第二叠加报文的情况下,判断所述第二叠加报文是否携带有与所述第二业务报文相同的第三业务报文,如果是,确认所述第一计算节点与所述第二计算节点之间的网络状态正常,如果否,确认所述第一计算节点与所述第二计算节点之间的网络状态异常,其中所述第三业务报文是所述第二计算节点对所述第一业务报文进行复制产生的报文。
8.根据权利要求7所述的设备,其特征在于,
所述处理模块用于在接收不到所述路径信息指示的第二计算节点发送的所述第二叠加报文的情况下,确认所述第一计算节点与所述第二计算节点之间的网络状态异常。
9.根据权利要求7或8所述的设备,其特征在于,
所述处理模块用于在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息一致的情况下,确认第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在确认所述第三业务报文的多元组信息和所述第二业务报文的多元组信息不一致的情况下,确认第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
10.根据权利要求9所述的设备,其特征在于,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量,
所述处理模块用于根据第二源IP地址,第二目的IP地址,第二协议号、第二标识号和第二分片偏移量确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三协议号、第三标识号和第三分片偏移量确定第二哈希值;
所述处理模块用于在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
11.根据权利要求9所述的设备,其特征在于,所述第二业务报文包括第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号,所述第三业务报文包括第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号;
所述处理模块用于根据第二源IP地址,第二目的IP地址,第二传输层协议、第二源端口、第二目标端口、第二序号以及第二确认序号确定第一哈希值,根据第三源IP地址,第三目的IP地址,第三传输层协议、第三源端口、第三目标端口、第三序号以及第三确认序号确定第二哈希值;
所述处理模块用于在所述第一哈希值等于所述第二哈希值的情况下,确认所述第二叠加报文携带有与所述第二业务报文相同的第三业务报文;
所述处理模块用于在所述第一哈希值不等于所述第二哈希值的情况下,确认所述第二叠加报文没有携带有与所述第二业务报文相同的第三业务报文。
12.根据权利要求7至11任一项所述的设备,其特征在于,所述设备还包括发送模块,
所述发送模块用于向所述控制节点发送网络状态信息,所述网络状态信息用于指示所述第一计算节点与所述第二计算节点之间的网络状态。
13.一种服务器,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求1至6任一权利要求所述的方法。
14.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至6任一权利要求所述的方法。
CN201910784488.4A 2019-08-23 2019-08-23 网络通信路径的状态检测方法以及设备 Active CN112422357B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910784488.4A CN112422357B (zh) 2019-08-23 2019-08-23 网络通信路径的状态检测方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910784488.4A CN112422357B (zh) 2019-08-23 2019-08-23 网络通信路径的状态检测方法以及设备

Publications (2)

Publication Number Publication Date
CN112422357A CN112422357A (zh) 2021-02-26
CN112422357B true CN112422357B (zh) 2024-03-08

Family

ID=74780134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910784488.4A Active CN112422357B (zh) 2019-08-23 2019-08-23 网络通信路径的状态检测方法以及设备

Country Status (1)

Country Link
CN (1) CN112422357B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405960B (zh) * 2021-11-18 2024-03-29 荣耀终端有限公司 一种网络质量的检测方法及相关电子设备
CN115277504B (zh) * 2022-07-11 2024-04-05 京东科技信息技术有限公司 一种网络流量监控方法、装置和系统
CN116418599B (zh) * 2023-06-09 2023-09-15 北京安帝科技有限公司 一种基于工业交换机的报文检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734964A (zh) * 2013-12-24 2015-06-24 华为技术有限公司 报文处理方法、节点及系统
CN105591841A (zh) * 2015-12-31 2016-05-18 盛科网络(苏州)有限公司 一种vxlan隧道的连通性检测方法
CN106878106A (zh) * 2017-02-24 2017-06-20 新华三技术有限公司 一种可达性检测方法及装置
CN108234317A (zh) * 2017-12-14 2018-06-29 北京华为数字技术有限公司 一种隧道环回方法及其相关设备
CN108259261A (zh) * 2017-03-31 2018-07-06 新华三技术有限公司 路径探测方法和装置
CN108566336A (zh) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 一种网络路径获取方法和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734964A (zh) * 2013-12-24 2015-06-24 华为技术有限公司 报文处理方法、节点及系统
CN105591841A (zh) * 2015-12-31 2016-05-18 盛科网络(苏州)有限公司 一种vxlan隧道的连通性检测方法
CN106878106A (zh) * 2017-02-24 2017-06-20 新华三技术有限公司 一种可达性检测方法及装置
CN108259261A (zh) * 2017-03-31 2018-07-06 新华三技术有限公司 路径探测方法和装置
CN108234317A (zh) * 2017-12-14 2018-06-29 北京华为数字技术有限公司 一种隧道环回方法及其相关设备
CN108566336A (zh) * 2018-07-24 2018-09-21 迈普通信技术股份有限公司 一种网络路径获取方法和设备

Also Published As

Publication number Publication date
CN112422357A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US11337227B2 (en) Distributed network connectivity monitoring of provider network edge location resources from cellular networks
US10541868B2 (en) System and method for automatically updating bios setup options
US9602400B2 (en) Hypervisor independent network virtualization
US9935829B1 (en) Scalable packet processing service
US9674103B2 (en) Management of addresses in virtual machines
CN101924693B (zh) 用于在虚拟机间迁移进程的方法和系统
CN112422357B (zh) 网络通信路径的状态检测方法以及设备
US11182185B2 (en) Network-based signaling to control virtual machine placement
US20160182336A1 (en) Hybrid cloud network monitoring system for tenant use
EP3353997A1 (en) Technologies for offloading data object replication and service function chain management
US10911405B1 (en) Secure environment on a server
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
EP3021223B1 (en) Method for enhancing memory fault tolerance
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
US11219034B1 (en) Distributed network connectivity monitoring of provider network edge location resources from cellular networks
US11120148B2 (en) Dynamically applying application security settings and policies based on workload properties
US11561916B2 (en) Processing task deployment in adapter devices and accelerators
US20230021723A1 (en) Automated migration of monolithic applications to container platforms
US9912787B2 (en) Zero-copy multiplexing using copy-on-write
US20230319133A1 (en) Network interface device to select a target service and boot an application
EP4189919A1 (en) Distributed network connectivity monitoring of provider network edge location resources from cellular networks
Campbell et al. Providing I 2 C bus over Ethernet

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220208

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant