链路质量测试方法和系统与流程

文档序号:17817270发布日期:2019-06-05 21:53阅读:184来源:国知局
本公开涉及通信
技术领域
:,特别涉及一种链路质量测试方法和系统。
背景技术
::随着互联网的发展,互联网业务对互联网提出了越来越高的传输质量要求。基于这种需求一种新的网络交换模型——openflow被提出。openflow网络由openflow交换机(openflowswitch)、网络虚拟化层(flowvisor)和控制器(controller)三部分组成。控制器(controller)配置网络交换机的协议,交换机维护一个流表(flowtable),按照流表进行转发,流表本身的生成、维护、下发完全由控制器来实现。网络质量测试是维护人员了解网络状况,从而进行相应的维护的一种重要手段。目前,基于openflow交换机的网络质量测试,主要还依赖传统ping测试,技术实现要素:发明人发现:ping测试需要为交换机配置额外的loopback(回送地址),同时消耗cpu资源,并且无法实现链路的单向质量的测试。本公开所要解决的一个技术问题是:提出一种新的基于openflow协议的网络中链路质量测试方法,不需要配置额外的loopback地址,减少cpu资源消耗,并可以针对链路单项质量进行测试。根据本公开的一些实施例,提供的一种链路质量测试方法,包括:第一交换机接收对应的控制器发送的openflowpacket-out消息,packet-out消息包括测试以太网帧,测试以太网帧中包含发送时间和序号;第一交换机将测试以太网帧发送至第二交换机;第二交换机将测试以太网帧封装至openflowpacket-in消息,并发送至对应的控制器;第二交换机对应的控制器根据测试以太网帧确定第一交换机到第二交换机之间的链路质量。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为all;第一交换机将测试以太网帧发送至第二交换机包括:第一交换机解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为all的情况下,将测试以太网帧发送至除输入端口以外的其他所有端口,输入端口以外的其他所有端口包括第二交换机的端口。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为table;第一交换机将测试以太网帧发送至第二交换机包括:第一交换机解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为table的情况下,根据packet-out消息中输入端口信息,查询预配置流表,将测试以太网帧发送至第二交换机。在一些实施例中,第二交换机对应的控制器根据测试以太网帧确定第一交换机到第二交换机之间的链路质量包括:第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的序号;第二交换机对应的控制器根据接收到的各个测试以太网帧的序号确定第一交换机到第二交换机之间的链路的丢包率。在一些实施例中,第二交换机对应的控制器根据测试以太网帧确定第一交换机到第二交换机之间的链路质量包括:第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的发送时间;第二交换机对应的控制器根据发送时间和接收到packet-in消息的时间,确定第一交换机到第二交换机之间的链路的传输时延。在一些实施例中,第二交换机对应的控制器根据测试以太网帧确定第一交换机到第二交换机之间的链路质量包括:第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的发送时间和序号;第二交换机对应的控制器根据发送时间和接收到packet-in消息的时间,确定各个packet-in消息的传输时延;第二交换机对应的控制器根据相邻的packet-in消息的传输时延的差值以及该相邻的packet-in消息的序号差值,确定第一交换机到第二交换机之间的链路的抖动。在一些实施例中,该方法还包括:在第一交换机对应的控制器和第二交换机对应的控制器不是同一个控制器的情况下,对第一交换机对应的控制器和第二交换机对应的控制器进行时间同步。在一些实施例中,packet-out消息由测试服务器构造并通过表层状态转移rest应用程序编程接口发送至第一交换机接收对应的控制器。根据本公开的一些实施例,提供的一种链路质量测试系统,包括:第一交换机,被配置为接收对应的控制器发送的openflowpacket-out消息,packet-out消息包括测试以太网帧,测试以太网帧中包含发送时间和序号,将测试以太网帧发送至第二交换机;第二交换机,被配置为将测试以太网帧封装至openflowpacket-in消息,并发送至对应的控制器;第二交换机对应的控制器,被配置为根据测试以太网帧确定第一交换机到第二交换机之间的链路质量。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为all;第一交换机被配置为解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为all的情况下,将测试以太网帧发送至除输入端口以外的其他所有端口,输入端口以外的其他所有端口包括第二交换机的端口。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为table;第一交换机被配置为解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为table的情况下,根据packet-out消息中输入端口信息,查询预配置流表,将测试以太网帧发送至第二交换机。在一些实施例中,第二交换机对应的控制器被配置为解析测试以太网帧,确定测试以太网帧的序号,根据接收到的各个测试以太网帧的序号确定第一交换机到第二交换机之间的链路的丢包率。在一些实施例中,第二交换机对应的控制器被配置为解析测试以太网帧,确定测试以太网帧的发送时间,根据发送时间和接收到packet-in消息的时间,确定第一交换机到第二交换机之间的链路的传输时延。在一些实施例中,第二交换机对应的控制器被配置为解析测试以太网帧,确定测试以太网帧的发送时间和序号,根据发送时间和接收到packet-in消息的时间,确定各个packet-in消息的传输时延,根据相邻的packet-in消息的传输时延的差值以及该相邻的packet-in消息的序号差值,确定第一交换机到第二交换机之间的链路的抖动。在一些实施例中,该系统还包括:第一交换机对应的控制器;在第一交换机对应的控制器和第二交换机对应的控制器不是同一个控制器的情况下,第一交换机对应的控制器和第二交换机对应的控制器被配置为时间同步。在一些实施例中,该系统还包括:测试服务器,被配置为构造packet-out消息,并通过表层状态转移rest应用程序编程接口发送至第一交换机接收对应的控制器。本公开提出了一种基于openflow协议的网络中链路质量测试方法,通过构造openflowpacket-out消息,携带测试以太网帧,使该消息按照特定路由在第一交换机和第二交换机之间发送和接收,进一步,由第二交换机根据测试以太网帧中的发送时间和序号等信息确定第一交换机到第二交换机之间的链路质量。由于本公开的方法基于openflow协议,并不需要在数据转发层面为交换机配置专门的ip地址,也不需要为测试增加额外的cpu的开销,能够在处理正常的openflow协议的同时完成测试,并可以实现链路单项质量的测试,提高了链路质量测试的经度和效率,减少了资源的浪费。通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出本公开的一些实施例的链路质量测试方法的流程示意图。图2示出本公开的另一些实施例的链路质量测试方法的流程示意图。图3示出本公开的一些实施例的链路质量测试系统的结构示意图。图4示出本公开的另一些实施例的链路质量测试系统的结构示意图。具体实施方式下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。针对ping测试需要为交换机配置额外的loopback地址,同时消耗cpu资源,并且无法实现链路的单向质量的测试的问题,提出一种新的基于openflow协议的网络中链路质量测试方法。下面结合图1描述本公开的链路质量测试方法。图1为本公开链路质量测试方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤s102~s108。步骤s102,第一交换机接收对应的控制器发送的openflowpacket-out消息。packet-out消息包括测试以太网帧,测试以太网帧中包含发送时间和序号。控制器,例如为opendaylight软件,可以管理多个openflow交换机。控制器对外提供操作界面、api接口等。packet-out消息可以是由测试服务器构造,测试服务器和第一交换机接收对应的控制器之间可以设置api(applicationprogramminginterface,应用程序编程接口),例如为rest(representationalstatetransfer,表层状态转移)api,测试服务器通过api,填入第一交换机的地址,将构造的packet-out消息发送至第一交换机接收对应的控制器,进一步,控制器将packet-out消息发往第一交换机。packet-out消息的参数如表1中所示。测试以太网帧可以填充在packet-out消息中的data(数据)段。buffer_id段表示交换机中缓冲区id号。in_port表示输入端口,action_len表示action(动作)列表的长度,用来区分actions和data段,ofp_action_headeractions[0]中指定了action(动作)。structofp_headerheader为消息头。表1packet-out消息参数设置structofp_headerheaderbuffer_idin_portaction_lenofp_action_headeractions[0]data[0]测试以太网帧步骤s104,第一交换机将测试以太网帧发送至第二交换机。第一交换机接收到packet-out消息会进行解析,读取各参数段的内容。通过设置各参数可以使第一交换机将测试以太网帧转发至第二交换机。例如,packet-out消息中buffer_id段被配置为_1,动作列表(actions)段被配置为all。第一交换机解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为all的情况下,将测试以太网帧发送至除输入端口以外的其他所有端口,输入端口以外的其他所有端口就包括第二交换机的端口。又例如,packet-out消息中buffer_id段被配置为-1,动作列表(actions)段被配置为table。第一交换机解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为table的情况下,根据packet-out消息中输入端口(in_port)信息,查询预配置流表,将测试以太网帧发送至第二交换机。在buffer_id段被配置为-1,动作列表段被配置为table的情况下,in_port将作为data段数据包的额外匹配信息进行流表查询。上述两种设置packet-out消息的方法,第一种将动作列表段被配置为all的方式可以节省流表查询等过程,效率更高。而第二种方式减少交互信息量,节省资源。步骤s106,第二交换机将测试以太网帧封装至openflowpacket-in消息,并发送至对应的控制器。流表包含数据包匹配特征和数据包处理方法。数据包匹配特征包括:一层:交换机入端口(ingressport),二层:源mac地址(ethersource)、目的mac地址(etherdst)、以太网类型(ethertype)、vlan标签(vlanid)、vlan优先级(vlanpriority),三层:源ip(ipsrc)、目的ip(ipdst)、ip协议字段(ipproto)、ip服务类型(iptosbits),四层:tcp/udp源端口号(tcp/udpsrcport)、tcp/udp目的端口号(tcp/udpdstport)。第二交换机接收到测试以太网帧之后会将其与流表进行匹配,在没有匹配项的情况下,会将测试以太网帧封装成packet-in消息发送至对应的控制器。步骤s108,第二交换机对应的控制器根据测试以太网帧确定第一交换机到第二交换机之间的链路质量。链路质量通常包括三个指标:丢包率、传输时延和抖动。在一些实施例中,第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的序号;第二交换机对应的控制器根据接收到的各个测试以太网帧的序号确定第一交换机到第二交换机之间的链路的丢包率。如果发生丢包,则控制器无法接收第二交换机发送的packet-in消息,相应的序号的测试以太网帧则无法接收到。控制器接收一定量的packet-in消息,根据测试以太网帧的序号可以识别丢掉的数据包的数量,进而得到链路的丢包率。在一些实施例中,第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的发送时间;第二交换机对应的控制器根据发送时间和接收到packet-in消息的时间,确定第一交换机到第二交换机之间的链路的传输时延。控制器利用接收到packet-in消息的时间减去测试以太网帧中填充的发送时间,可以得到该packet-in消息的传输时延,进一步,统计多个packet-in消息则可以得到链路的传输时延。在一些实施例中,第二交换机对应的控制器解析测试以太网帧,确定测试以太网帧的发送时间和序号;第二交换机对应的控制器根据发送时间和接收到packet-in消息的时间,确定各个packet-in消息的传输时延;第二交换机对应的控制器根据相邻的packet-in消息的传输时延的差值以及该相邻的packet-in消息的序号差值,确定第一交换机到第二交换机之间的链路的抖动。控制器可以计算每相邻两个packet-in消息的传输时延的均值,和每相邻两个packet-in消息的序号差值的均值,利用传输时延的均值除以序号差值的均值得到抖动指标。上述各实施例中,第一交换机对应的控制器和第二交换机对应的控制器可以是同一个控制器也可以是不同的控制器。在第一交换机对应的控制器和第二交换机对应的控制器不是同一个控制器的情况下,还需要对第一交换机对应的控制器和第二交换机对应的控制器进行时间同步,保证测试的准确性。第二交换机对应的控制器将确定的第一交换机到第二交换机之间的链路质量返回至测试服务器,以便维护人员查看。上述实施例的方法提供了一种基于openflow协议的网络中链路质量测试方法,通过构造openflowpacket-out消息,携带测试以太网帧,使该消息按照特定路由在第一交换机和第二交换机之间发送和接收,进一步,由第二交换机根据测试以太网帧中的发送时间和序号等信息确定第一交换机到第二交换机之间的链路质量。由于上述实施例的方法基于openflow协议,并不需要在数据转发层面为交换机配置专门的ip地址,也不需要为测试增加额外的cpu的开销,能够在处理正常的openflow协议的同时完成测试,并可以实现链路单项质量的测试,提高了链路质量测试的经度和效率,减少了资源的浪费。下面结合图2描述本公开链路质量测试方法的另一些实施例。图2为本公开链路质量测试方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤s202~s214。步骤s202,测试服务器构造openflowpacket-out消息,发送至第一交换机接收对应的控制器。packet-out消息包括测试以太网帧,测试以太网帧中包含发送时间和序号。步骤s204,第一交换机接收对应的控制器将packet-out消息发送至第一交换机。步骤s206,第一交换机解析packet-out消息,提取测试以太网帧发送至第二交换机。packet-out消息参数设置参考图1实施例的方法。步骤s208,第二交换机在测试以太网帧在流表中没有匹配项的情况下,将测试以太网帧封装为packet-in消息。步骤s210,第二交换机将packet-in消息发送至对应的控制器。步骤s212,第二交换机对应的控制器解析packet-in消息,根据测试以太网帧确定第一交换机到第二交换机之间的链路质量。步骤s214,第二交换机对应的控制器将第一交换机到第二交换机之间的链路质量的测试结果发送至测试服务器。本公开还提供一种链路质量测试系统,下面结合图3和4进行描述。图3为本公开链路质量测试系统一些实施例的结构图。如图3所示,该系统30包括:第一交换机302,第二交换机304,第二交换机对应的控制器306。第一交换机302,被配置为接收对应的控制器发送的openflowpacket-out消息。packet-out消息包括测试以太网帧,测试以太网帧中包含发送时间和序号,将测试以太网帧发送至第二交换机。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为all。第一交换机302被配置为解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为all的情况下,将测试以太网帧发送至除输入端口以外的其他所有端口,输入端口以外的其他所有端口包括第二交换机的端口。在一些实施例中,packet-out消息中buffer_id段被配置为-1,动作列表段被配置为table。第一交换机302被配置为解析packet-out消息,在识别buffer_id段为-1,动作列表段被配置为table的情况下,根据packet-out消息中输入端口信息,查询预配置流表,将测试以太网帧发送至第二交换机。第二交换机304,被配置为将测试以太网帧封装至openflowpacket-in消息,并发送至对应的控制器。第二交换机对应的控制器306,被配置为根据测试以太网帧确定第一交换机到第二交换机之间的链路质量。在一些实施例中,第二交换机对应的控制器306被配置为解析测试以太网帧,确定测试以太网帧的序号,根据接收到的各个测试以太网帧的序号确定第一交换机到第二交换机之间的链路的丢包率。在一些实施例中,第二交换机对应的控制器306被配置为解析测试以太网帧,确定测试以太网帧的发送时间,根据发送时间和接收到packet-in消息的时间,确定第一交换机到第二交换机之间的链路的传输时延。在一些实施例中,第二交换机对应的控制器306被配置为解析测试以太网帧,确定测试以太网帧的发送时间和序号,根据发送时间和接收到packet-in消息的时间,确定各个packet-in消息的传输时延,根据相邻的packet-in消息的传输时延的差值以及该相邻的packet-in消息的序号差值,确定第一交换机到第二交换机之间的链路的抖动。进一步,链路质量测试系统30还可以包括:第一交换机对应的控制器308,被配置为向第一交换机302发送openflowpacket-out消息。本实施例中第一交换机对应的控制器308和第二交换机对应的控制器306不是同一个控制器,第一交换机对应的控制器308和第二交换机对应的控制器306被配置为时间同步。进一步,链路质量测试系统30还可以包括:测试服务器310,被配置为构造packet-out消息,并通过表层状态转移rest应用程序编程接口发送至第一交换机接收对应的控制器。图4为本公开链路质量测试系统另一些实施例的结构图。如图4所示,该系统40包括:第一交换机402,第二交换机404,控制器406,第一交换机402和第二交换机404均归属于控制器406。第一交换机402被配置为实现与图3中第一交换机302类似的功能,第二交换机404被配置为实现与图3中第二交换机304类似的功能。控制器406被配置为实现与图3中第一交换机对应的控制器308和第二交换机对应的控制器306类似的功能。进一步,该系统40还可以包括:测试服务器408,被配置为实现与图3中测试服务器310类似的功能。本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd_rom、光学存储器等)上实施的计算机程序产品的形式。本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1