发明内容
有鉴于此,本申请提供了一种网络性能的监测方法及装置,用以实现对网络性能的监测。为实现所述发明目的,本发明提供的技术方案如下:
一种网络性能的监测方法,包括:
确定网络中的多个监测点;
在每个所述监测点处,分别获取多个数据包,获得多个数据包集合;其中,每个所述数据包均对应同一会话;
依据数据包序号标识,分别对每个所述数据包集合中的数据包排序;
在每个排序后的数据包集合中,分别确定目标数据包序列;其中,各个所述目标数据包序列的首个数据包具有相同属性值;
利用多个所述目标数据包序列,确定所述网络的性能参数。
上述的网络性能的监测方法,优选地,所述利用多个所述目标数据包序列,确定所述网络的性能参数包括:
在每个所述目标数据包序列中,分别确定每个数据包与各自的对应数据包的时延;其中,数据包的对应数据包为与该数据包相邻的数据包,以及其他目标数据包序列中与该数据包具有相同属性值的数据包;
在每个所述目标数据包序列中,分别统计丢包的个数;其中,所述丢包为其他目标数据包序列中包含但本目标数据包序列中未包含的数据包;
在每个所述目标数据包序列中,分别统计重传包的个数;其中,所述重传包为在同一目标数据包序列中具有相同属性值的数据包。
上述的网络性能的监测方法,优选地,所述依据数据包序号标识,分别对每个所述数据包集合中的数据包排序包括:
依据数据包的类型、发送序号及接收序号,分别对每个所述数据包集合中的数据包排序;
其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包,且每个排序后的数据包集合中,排序在前的客户端发送的数据包的发送序号小于或等于排序在后的服务器返回的数据包的接收序号。
上述的网络性能的监测方法,优选地,所述在每个所述监测点处,分别获取多个数据包,获得多个数据包集合包括:
在每个所述监测点处抓取数据包,并将抓取到的数据包分别放入每个所述监测点各自的缓存队列中,当缓存队列满后,将缓存队列中的数据包存储至该缓存队列对应的存储区域,返回在每个所述监测点处抓取数据包,直至抓取数据包的时间长度满足预设时间长度;
在每个所述存储区域中,获取对应同一会话的数据包,获得多个数据包集合。
上述的网络性能的监测方法,优选地,所述在每个排序后的数据包集合中,分别确定目标数据包序列包括:
依据每个排序后的数据包集合中数据包的排列次序,查找首个具有相同发送序号、接收序号及负载长度的数据包;
在每个排序后的数据包集合中,将查找到的所述数据包及该数据包之后的数据包作为目标数据包序列。
上述的网络性能的监测方法,优选地,还包括:
以坐标系的方式,分别显示各个所述目标数据包序列;
其中,所述坐标系的横轴为目标数据包的时间戳,纵轴为监测点标识。
本申请还提供了一种网络性能的监测装置,包括:
多个监测点确定单元,用于确定网络中的多个监测点;
数据包集合获取单元,用于在每个所述监测点处,分别获取多个数据包,获得多个数据包集合;其中,每个所述数据包均对应同一会话;
数据包集合排序单元,用于依据数据包序号标识,分别对每个所述数据包集合中的数据包排序;
数据包序列确定单元,用于在每个排序后的数据包集合中,分别确定目标数据包序列;其中,各个所述目标数据包序列的首个数据包具有相同属性值;
性能参数确定单元,用于利用多个所述目标数据包序列,确定所述网络的性能参数。
上述的网络性能的监测装置,优选地,所述性能参数确定单元包括:
时延确定子单元,用于在每个所述目标数据包序列中,分别确定每个数据包与各自的对应数据包的时延;其中,数据包的对应数据包为与该数据包相邻的数据包,以及其他目标数据包序列中与该数据包具有相同属性值的数据包;
丢包统计子单元,用于在每个所述目标数据包序列中,分别统计丢包的个数;其中,所述丢包为其他目标数据包序列中包含但本目标数据包序列中未包含的数据包;
重传包统计子单元,用于在每个所述目标数据包序列中,分别统计重传包的个数;其中,所述重传包为在同一目标数据包序列中具有相同属性值的数据包。
上述的网络性能的监测装置,优选地,所述数据包集合排序单元包括:
数据包集合排序子单元,用于依据数据包的类型、发送序号及接收序号,分别对每个所述数据包集合中的数据包排序;
其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包,且每个排序后的数据包集合中,排序在前的客户端发送的数据包的发送序号小于或等于排序在后的服务器返回的数据包的接收序号。
上述的网络性能的监测装置,优选地,还包括:
坐标系显示单元,用于以坐标系的方式,分别显示各个所述目标数据包序列;其中,所述坐标系的横轴为目标数据包的时间戳,纵轴为监测点标识。
本发明实施例提供的网络性能的监测方法及装置,该方法包括:首先确定网络中的多个监测点,在每个监测点处获取多个属于同一会话的数据包,从而获得多个数据包集合,利用数据包的序号标识,分别对每个数据包集合中的数据包进行排序,在每个排序后的数据包集合中,分确定出一个目标数据包序列,每个目标数据包序列首个数据包的属性值与其他的目标数据包序列首个数据包的属性值相同,进而利用多个目标数据包序列,确定网络的性能参数,从而实现了对网络性能的监测,且该种网络性能的监测方法简单快捷。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,其示出了本发明实施例提供的网络性能的监测方法,具体包括以下流程:
步骤S101:确定网络中的多个监测点。
当需要监测网络性能时,根据待监测网络的拓扑结构,选取多个监测点。优选地,选取的监测点在不同的网段,这样可以扩大监测范围。例如,网络拓扑中包括出口路由器、防火墙、用于负载均衡的路由器以及服务器等,可以将出口路由器、负载均衡路由器及服务器分别作为监测点。
步骤S102:在每个所述监测点处,分别获取多个数据包,获得多个数据包集合;其中,每个所述数据包均对应同一会话。
其中,监测点为组成网络的网络设备,因此每个监测点都会流经数据包,在每个所述监测点处获取数据包,需要说明,获取到的每个数据包均是同一会话中的数据包。另外,每个监测点各自对应一个数据包集合。在网络领域中,会话是一种持久的网络协议,在用户(或用户代理)端与服务器端之间创建关联,从而相互之间交换数据包。同一会话,指的是相同的用户(或用户代理)端及相同的服务器端之间交换数据的会话。可选地,会话是TCP会话。
步骤S103:依据数据包序号标识,分别对每个所述数据包集合中的数据包排序。
本实施例中,获取到的数据包具有数据包序号标识。利用序号标识,分别对各个数据包集合中的所有数据包排序,这样,每个数据包集合中的数据包按照序号标识排列。具体的排序过程可以参照下文描述。
步骤S104:在每个排序后的数据包集合中,分别确定目标数据包序列;其中,各个所述目标数据包序列的首个数据包具有相同属性值。
其中,在每个排序后的数据包集合中,均确定出一个目标数据包序列。多个目标数据包序列的首个数据包具有相同属性值,属性值相同可以认为是同一个数据包,即同一数据包不同时间点经过各个监测点时被抓取到。需要说明的是,由于数据包集合中的各个数据包是经过排序的,在确定首个数据包后,便可确定出目标数据包序列,目标数据包序列就是以确定出的首个数据包为头的数据包序列。简单而言,本步骤即是对齐排序后的数据包集合,从而可以更快速地实现数据包序列之间的比对。
具体地,属性值可以是发送序号、接收序号及负载长度,即每个目标数据包序列中的首个数据包的发送序号、接收序号及负载长度相同。当然,属性值并不局限于上述形式,还可以是利用其他属性值来确定相同的数据包。
步骤S105:利用多个所述目标数据包序列,确定所述网络的性能参数。
本实施例中,可以同时获得多个监测点的数据包,对多个监测点的数据包进行选取、排序及对齐等步骤后,生成多个目标数据包序列。目标数据包序列,具有如下特性:数据包是同一会话中的数据包,按照序号标识依次排序,且序列中的首个数据包为同一个数据包。
分析具有这样的特性数据包序列,能够简单快捷地确定出网络的各项性能参数,如时延、重传的数据包及丢失的数据包等。当然,分析目标数据包序列以确定网络性能参数时,可以是将各个目标数据包序列中的数据包进行纵向比较,还可以是单独分析每个目标数据包序列中的数据包,还可以是两者的结合。
由以上的技术方案可知,本发明实施例提供的网络性能的监测方法,首先确定网络中的多个监测点,在每个监测点处获取多个属于同一会话的数据包,从而获得多个数据包集合,利用数据包的序号标识,分别对每个数据包集合中的数据包进行排序,在每个排序后的数据包集合中,分确定出一个目标数据包序列,每个目标数据包序列首个数据包的属性值与其他的目标数据包序列首个数据包的属性值相同,进而利用多个目标数据包序列,确定网络的性能参数,从而实现了对网络性能的监测,且该种网络性能的监测方法简单快捷。
具体地,参见图2所示,上述步骤S105利用多个所述目标数据包序列,确定所述网络的性能参数的过程可以包括以下步骤:
步骤S201:在每个所述目标数据包序列中,分别确定每个数据包与各自的对应数据包的时延;其中,数据包的对应数据包为与该数据包相邻的数据包,以及其他目标数据包序列中与该数据包具有相同属性值的数据包。
本步骤用于利用各个目标数据包序列确定时延参数,具体过程可以是,比对每个所述目标数据包序列中的各个数据包与各自对应数据包的时间戳,以计算时间戳之间的差值,从而确定时延。其中,时间戳指的是数据包经过网络中的监测点时的时间点。
需要说明的是,某个数据包的对应数据包指的是与该数据包相邻的数据包,以及除该数据包所在的目标数据包序列以外的其他目标数据包序列中的与该数据包具有相同属性值的数据包。其中,相邻的数据包指的是该数据包的前一数据包以及后一数据包,当该数据包为首个数据包时,则指的是该数据包的后一数据包,当该数据包为末尾数据包时,则指的是该数据包的前一数据包。
其中,比较数据包与相邻数据包的时间戳获得的时延,指的是比较数据包与相邻数据包经过同一监测点的时间戳获得的时延,例如,数据包1及数据包2分别经过监测点R的时延。该时延是连续的两个数据包经过同一监测点的时间差,该时间差可以反映某个监测点接收数据包的频率。例如,两个连续数据包的时间差为4ms,则说明监测点接收到前一数据包4ms后接收到了后一数据包。当然,两个数据包可以是交互的数据包,即分别是客户端发给服务器的数据包及服务器反馈给客户端的数据包。
另外,比较数据包与其他目标数据包序列中的与该数据包具有相同属性值的时间戳获得的时延,指的是比较相同的数据包在经过不同监测点的时间戳获得的时延。例如,同一数据包分别经过三个监测点R1、R2及R3,在三个监测点分别被抓取到,并被确定为每个监测点各自对应的目标数据包序列中的数据包,比较时延时,将该数据包被确定为具有相同属性值的数据包,则比较该数据包在三个监测点的时间戳,从而获得该数据包经过R1及R2的时延、经过R2及R3的时延。
步骤S202:在每个所述目标数据包序列中,分别统计丢包的个数;其中,所述丢包为其他目标数据包序列中包含但本目标数据包序列中未包含的数据包。
具体地,在每个目标数据包序列中统计丢包个数时,需要找到本目标数据包序列中包含但其他目标数据包序列中未包含的数据包,进而统计个数。其中,查找数据包的方式与上述查找相同数据包的方式相同,即比对数据包的属性值。属性值相同则认为是同一数据包,否则为不同的数据包。
可见,本步骤需要纵向对比各个目标数据包序列,从而统计出丢包个数。需要说明的是,丢包并不一定是该监测点丢失的数据包,而是通过与其他监测点比对后,发现未流经该监测点的数据包的个数,可能是该监测点的故障,也可能是中间传输设备的故障。
步骤S203:在每个所述目标数据包序列中,分别统计重传包的个数;其中,所述重传包为在同一目标数据包序列中具有相同属性值的数据包。
其中,在每个目标数据包序列中统计重传包的个数时,需要找到该目标数据包序列中具有相同属性的数据包,进而统计个数。
由以上的技术方案可知,本实施例确定网络性能参数具体指的是统计时延、重传包及丢包三方面参数。
可选地,上述实施例中的步骤S103依据数据包序号标识,分别对每个所述数据包集合中的数据包排序的具体实现方式是:
依据数据包的类型、发送序号及接收序号,分别对每个所述数据包集合中的数据包排序;其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包,且每个排序后的数据包集合中,排序在前的客户端发送的数据包的发送序号小于或等于排序在后的服务器返回的数据包的接收序号。
需要说明的是,数据包是属于同一会话的数据包,也就是说,上述两种数据包包括客户端发送给服务器的数据包,以及该服务器返回给该客户端的数据包。
发送序号及接收序号是在一次会话中,为了标记发送的数据包的顺序而设置的序号。例如,TCP会话中的数据包的seq标识及ack标识,seq标识指的是发送端发送的数据包的序号,ack标识指的是发送端想要接收的数据包的序号。
需要说明的是,经过排序的数据包集合中,排序在前的客户端发送的数据包的发送序号小于或者等于排序在后的服务器端发送的数据包的接收序号。具体来讲,客户端与服务器端的数据交互是,客户端向服务器端发送数据包,数据包中既包括发送序号也包括接收序号,发送序号是该数据包的序号,接收序号表明想要服务器端返回的数据包的序号。当服务器端接收到客户端发送的该数据包后,返回的数据包中的发送序号是客户端的接收序号,返回的数据包中的接收序号是客户端的发送序号加1或者数据包的负载长度。
监测点是客户端与服务器的中间设备,则在监测点能获取到上述两种类型的数据包,数据包是按照一定顺序经过监测点的。例如,客户端向服务器发送数据包1,数据包1的发送序号为m,接收序号为n,服务器返回数据包2,数据包2的发送序号为n,接收序号为m+1(或者m+数据包2的负载长度)。
需要说明的是,可能会存在重传情况,即客户端或者服务器重新发送以前发送过的某个数据包。这样,排序后的数据包,可能出现客户端发送的数据包的发送序号等于服务器返回的数据包的接收序号的情况。
下面对数据包排序的过程进行具体说明,可选的一种排序方式如下所述。需要说明,确定多个监测点,每个监测点均会对应一个数据包集合,分别对每个数据集合中的数据包进行排序。以下的排序以任意一个数据包集合作为对象进行说明,其他数据包集合的排序过程可参见下述方法。
预设缓存队列及链表,并预先初始化第一标识及第二标识,即将第一标识设置为监测点抓取到的首个客户端发送的数据包的发送序号加1或者加负载长度,并将第二标识设置为该监测点抓取到的首个服务器返回的数据包的发送序号加1或者加负载长度。
将数据包集合中的上述两个首个数据包放入缓存队列,排序标准是客户端发送的数据包在前,服务器返回的数据包在后,也就是说,排序在前的客户端发送的数据包的发送序号小于或等于排序在后的服务器返回的数据包的接收序号。然后,按照下面的循环步骤执行,直至数据包集合为空。
S1:获取数据包集合中剩余数据包中的一个数据包,判断该数据包的类型为客户端发送的数据包还是服务器返回的数据包。若是客户端发送的数据包,则执行S2,若是服务器返回的数据包,则执行S3。
S2:将该数据包的发送序号与第一标识进行比较;如果前者小,则说明该数据包为重传包,将该数据包放入缓冲队列中,然后返回S1在数据包集合中获取下一个数据包;如果两者相等,将该数据包放入缓存队列中,将第一标识加1或者加数据包的负载长度,并当链表中有数据包时,将所有数据包放入到缓存队列中,然后返回S1在数据包集合中获取下一个数据包;如果前者大,则将该数据包放入链表中,然后返回S1在数据包集合中获取下一个数据包。
S3:将该数据包的发送序号与第二标识进行比较;如果前者小,则说明该数据包为重传包,将该数据包放入缓冲队列中,然后返回S1在数据包集合中获取下一个数据包;如果两者相等,将该数据包放入缓存队列中,将第二标识加1或者加数据包的负载长度,并当链表中有数据包时,将所有数据包放入到缓存队列中,然后返回S1在数据包集合中获取下一个数据包;如果前者大,则将该数据包放入链表中,然后返回S1在数据包集合中获取下一个数据包。
需要说明的是,上述S2及S3中当链表中有数据包时,将所有数据包放入到缓存队列中的方法与上述循环步骤即S1、S2及S3相同,并不做赘述。
另外,上述步骤S102在每个所述监测点处,分别获取多个数据包,获得多个数据包集合的具体实现方式可以是:
在每个所述监测点处抓取数据包,并将抓取到的数据包分别放入每个所述监测点各自的缓存队列中,当缓存队列满后,将缓存队列中的数据包存储至该缓存队列对应的存储区域,返回在每个所述监测点处抓取数据包,直至抓取数据包的时间长度满足预设时间长度;
在每个所述存储区域中,获取对应同一会话的数据包,获得多个数据包集合。
需要说明的是,为每个监测点预先设置一个缓存队列,用于缓存抓取到的数据包。利用缓存队列将抓取到的数据包存储至监测点各自的存储区域中,并返回重复抓取并放入存储的过程,直至抓取数据包的时间长度满足预设时间长度。这样,每个存储区域中存储了抓取到的数据包,进而,在每个存储区域中,获取属于同一会话的数据包,从而获得多个数据包集合。
并且,上述步骤S105在每个排序后的数据包集合中,分别确定目标数据包序列的具体实现方式可以是:
依据每个排序后的数据包集合中数据包的排列次序,查找首个具有相同发送序号、接收序号及负载长度的数据包;在每个排序后的数据包集合中,将查找到的所述数据包及该数据包之后的数据包作为目标数据包序列。
例如,排序后的数据包集合A中的数据包依次为数据包A1、数据包A2、数据包A3……数据包An;排序后的数据包集合B中的数据包依次为数据包B1、数据包B2、数据包B3……数据包Bm;排序后的数据包集合C中的数据包依次为数据包C1、数据包C2、数据包C3……数据包Ck。
其中,数据包A1的发送序号为5、接收序号为7,负载长度为254;数据包B3的发送序号为5、接收序号为7,负载长度为254;数据包C2的发送序号为5、接收序号为7,负载长度为254。
从而,将数据包A1及其之后的数据包确定为目标数据包序列,将数据包B3及其之后的数据包确定为另一目标数据包序列,将数据包C2及其之后的数据包确定为又一目标数据包序列。
为了帮助监测人员直观地查看各个目标数据包序列,可以将其进行显示。具体地,在上述各个实施例的基础上,还可以以坐标系的方式,分别显示各个所述目标数据包序列;其中,所述坐标系的横轴为目标数据包的时间戳,纵轴为监测点标识。
具体地,获取每个目标数据包序列中的数据包的时间戳及序列标识,依据时间戳确定数据包的横轴位置,依据序列标识确定数据包的纵轴位置。其中,可选地,序列标识为抓取数据包的监测点的标识。另外,还可以标记出不同目标数据包序列中的同一数据包,标记出目标数据包序列中的重传包及丢包。
另外,图示用的连接线连接起来的数据包为同一数据包,当连接线连接的方格为实心时,表示该数据包为丢失的数据包,当同一监测点的目标数据包序列中存在重传包时,将该重传包及重传包对应的数据包用粗线突出显示。
假设,监测点为三个,则获取到三个目标数据包序列,显示的坐标系如图3所示,方格表示数据包,纵轴分别为监测点A、监测点B及监测点C,监测点A对应的目标数据包序列中包括数据包A1、数据包A2、数据包A3、数据包A4及数据包A5,监测点B对应的目标数据包序列中包括数据包B1、数据包B2、数据包B3及数据包B5,监测点C对应的目标数据包序列中包括数据包C1、数据包C2、数据包C3、数据包C4及数据包C5。图示中的丢包为数据包B4,图示中的重传包为数据包A2及数据包A3,数据包B2及数据包B3,数据包C2及数据包C3。
当然,数据包的表示形式、连接线的连接方式、重传包及丢包还可以是其他方式,并不局限于图3所示。
从图中可以直观地看出相邻的数据包的时间戳的差值,也能看出同一数据包在不同监测点的时间戳的差值,还能看出重传包及丢包,更利于对网络性能进行监测。
更进一步地,根据监测的数据可以确定出网络中的故障点。例如,两个监测点之间的丢包数量较多和/或时延较大,可以确定两个监测点或者两个监测点之间的网络存在故障。
下面对本发明实施例提供的网络性能的监测装置进行介绍,需要说明的是,有关下文提供的网络性能的监测装置的说明可参照上文提供的网络性能的监测方法,以下并不做赘述。
参照图4,其示出了本发明实施例提供的网络性能的监测装置的结构,具体包括:
多个监测点确定单元100,用于确定网络中的多个监测点;
数据包集合获取单元200,用于在每个所述监测点处,分别获取多个数据包,获得多个数据包集合;其中,每个所述数据包均对应同一会话;
数据包集合排序单元300,用于依据数据包序号标识,分别对每个所述数据包集合中的数据包排序;
数据包序列确定单元400,用于在每个排序后的数据包集合中,分别确定目标数据包序列;其中,各个所述目标数据包序列的首个数据包具有相同属性值;
性能参数确定单元500,用于利用多个所述目标数据包序列,确定所述网络的性能参数。
由以上技术方案,可以实现对网络性能的监测。
可选地,如图5所示,所述性能参数确定单元500包括:
时延确定子单元501,用于在每个所述目标数据包序列中,分别确定每个数据包与各自的对应数据包的时延;其中,数据包的对应数据包为与该数据包相邻的数据包,以及其他目标数据包序列中与该数据包具有相同属性值的数据包;
丢包统计子单元502,用于在每个所述目标数据包序列中,分别统计丢包的个数;其中,所述丢包为其他目标数据包序列中包含但本目标数据包序列中未包含的数据包;
重传包统计子单元503,用于在每个所述目标数据包序列中,分别统计重传包的个数;其中,所述重传包为在同一目标数据包序列中具有相同属性值的数据包。
可选地,所述数据包集合排序单元300包括:
数据包集合排序子单元,用于依据数据包的类型、发送序号及接收序号,分别对每个所述数据包集合中的数据包排序;
其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包,且每个排序后的数据包集合中,排序在前的客户端发送的数据包的发送序号小于或等于排序在后的服务器返回的数据包的接收序号。
可选地,所述数据包集合获取单元200包括:
数据包抓取子单元,用于在每个所述监测点处抓取数据包,并将抓取到的数据包分别放入每个所述监测点各自的缓存队列中,当缓存队列满后,将缓存队列中的数据包存储至该缓存队列对应的存储区域,返回在每个所述监测点处抓取数据包,直至抓取数据包的时间长度满足预设时间长度;
数据包确定子单元,用于在每个所述存储区域中,获取对应同一会话的数据包,获得多个数据包集合。
可选地,所述数据包序列确定单元400包括:
首个数据包查找子单元,用于依据每个排序后的数据包集合中数据包的排列次序,查找首个具有相同发送序号、接收序号及负载长度的数据包;
数据包序列确定子单元,用于在每个排序后的数据包集合中,将查找到的所述数据包及该数据包之后的数据包作为目标数据包序列。
可选地,在上述各个装置实施例的基础上,还可以包括:
坐标系显示单元,用于以坐标系的方式,分别显示各个所述目标数据包序列;其中,所述坐标系的横轴为目标数据包的时间戳,纵轴为监测点标识。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。