IPv6网络链路利用率测量方法、测量装置及IPv6网络路由器的制作方法

文档序号:7970664阅读:351来源:国知局
专利名称:IPv6网络链路利用率测量方法、测量装置及IPv6网络路由器的制作方法
技术领域
本发明涉及网络测量技术,尤其涉及IPv6网络链路利用率测量方法、测量装置及IPv6网络路由器。

背景技术
网络测量是获取网络动态运行信息的方法和手段的总称。网络测量按照测量点的位置可分为端到端测量、基于路由器的测量和路由器协作测量。
网络提供商(Network Provider,简称NP)通常采用基于路由器的测量监测其网络运行状态,但NP间的非协作性导致信息无法共享。而路由器向网管中心传递信息需消耗大量带宽,也增加了网络负载。此外,运营商的网管系统无法管理客户一侧的接入设备,所以,当客户滥用网络并导致其关键业务性能下降时,运营商很难证明这是用户的责任。端到端的测量使运营商可以在客户方展现网络性能,发现和定位问题。
网络测量按照是否主动向网络中发送探测报文,分为二种主动测量和被动测量。主动测量是基于往返时间(Round Trip Time,简称RTT)测量。测量装置主动向网络发送探测包,然后根据返回的参数来判断网络现有状况,这些参数包括响应时间和丢包率等。主动方式可以了解整个网络的行为,获得端到端的信息,但是会增加网络的负荷并引起网络的拥塞。
在被动测量方式中,测量装置(可以是端节点或路由器等中间节点)被动地根据一定需求来监测和采集网络上特定链路、特定时段的流量。被动测量很难获得对网络整体的了解,也很难对网络终端到终端的性能做出准确的分析,但是不会增加网络的负荷。
近年出现的主动网络测量技术集中在(1)端到端时延(end-to-end delay)测量,主要解决时延测量中的时钟扭曲(screw)和重置(reset)问题;(2)可用带宽测量和瓶颈带宽定位;(3)丢包率测量;(4)网络性能拓扑推测。
IP网络状态信息和变化过程的监测是保障网络正常运行的基础,因此近些年网络运营商越来越关注网络测量技术在其IP网络中的作用。通过对网络进行测量,获得网络的链路/路径的时延、带宽、丢包率、拓扑稳定性等信息,可以有效帮助运营商优化网络,及时扩容,也能帮运营商进行网络故障定位。此外,运营商还要关心网络链路的利用率、路径的长期利用率、路由可达性、瓶颈带宽和其它端到端的性能等属性和参数。
下一代网络采用IPv6协议,克服了IPv4地址短缺、安全性差、移动性差等问题,实现即插即用。IPv6技术已经实现了工程化和实用化,正步入大规模部署的前期。
IPv6网络的测量也是IPv6网络大规模部署和运营过程中重要的技术。然而对网络端到端性能的研究大部分基于IPv4网络,少有直接基于IPv6体系的研究。IPv4中的端到端性能的测量方法能否适用于IPv6体系结构,仍然需要大量的工作来确定并找出合适的方法。
通过测量网络的链路利用率,可以获知网络链路的负载状况,这对于改善端到端应用的服务质量是一个参考依据;同时,通过对全网的链路利用率长期监测,能够获知网络流量的分布拓扑,进而为网络规划和优化提供依据。
目前在IPv6网络中获取链路利用率的方法是通过简单网络管理协议(Simple Network Management Protocol,简称SNMP)读取网络中的路由/交换设备(路由器或者交换机)的管理信息库(Management Information Base,简称MIB)的方式。SNMP是目前最常用的网络环境管理协议,是一系列协议和规范的集合,包括MIB由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量;管理信息结构(Structure of Management Information,简称SMI),用于定义通过网络管理协议可访问的对象的规则;SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。SNMP的功能是取得、设置和接收SNMP代理发送的意外信息。取得指的是SNMP管理者发送请求,代理根据这个请求回送相应的数据;设置是SNMP管理者设置管理对象(也就是代理)的值,接收代理发送的意外信息是指代理可以在SNMP管理者未请求的状态下向基站报告发生的意外情况。
通过SNMP获取网络链路利用率的方法如下 (1)以时间t为周期(t的单位为“秒”),通过SNMP协议的get原语读取路由器/交换机MIB中的某个接口(Interface)的“ifInOctets(收到的所有字节数)”或者“ifOutOctets(发出的所有字节数)”项的值,第i次读取的值记为Pi; (2)记链路的物理带宽是B(字节/秒),记Pi的获取时刻是Ti,则称Ui=(Pi+1-Pi)/tB是Ti时刻开始的t时间内的平均链路利用率; 当t足够小时,就称Ui是Ti时刻的链路利用率,对于全双工的链路,若Pi是“ifInOctets”的值,则称Ui是该接口入链路的利用率,若Pi是“ifOutOctets”的值,则称Ui是该接口出链路的利用率。上述方法,对于IPv4网络和IPv6网络均有效。
上述方法有如下缺点 (1)获取如Pi的值需要通过SNMP协议直接访问路由器存在安全隐患。SNMP协议的v1、v2、v3三个版本有不同的鉴权机制,在使用SNMP协议获取如Pi的值之前,需要向路由器发送认证信息,除非路由器不设置安全认证限制。
(2)方法不够灵活、局限性较大。由于该方法只能通过访问路由器的MIB获取必要的信息计算链路利用率,因此,必须获取路由器的SNMP访问权限。但目前网络运营商的路由器均是封闭的,只有运营商内部的管理人员才可能获得受限访问权限。对于普通用户,则无法了解链路利用率信息。此外,由于网络运营商间的非协作性导致运营商也只能了解内部网络的信息。对于跨越运营商的网络则无法获得想要的端到端信息。
(3)因为是被动收集信息,会受到某些方面的限制。由于通过SNMP获取路由器信息时,会给路由器带来较大的处理负担,影响路由器的性能,因此读取信息的周期不能过短。
现在有一种基于逐跳时间标签的IPv4网络链路利用率测量方法,该测量方法属于路由器协作的主动测量,发送探测报文,通过IPv4协议中定义的时间戳选项记录计算链路利用率。
表1 IPv4报文结构
如表1所示,为IPv4报文结构,在32位目的IP地址之后和IP净荷数据之前,有一段“选项”数据。这段“选项”数据可以根据实际需要来决定是否存在。
IPv4协议中已经定义了约5种选项类型,其中“时间戳选项”的格式定义参见表2。
表2 IP报文头部中时间戳选项的格式
在如表2所示的格式设置好“type”、“length”、“offset”、“overflw”、“flags”等字段后,这个IP报文经过每个路由器时,路由器都会依照顺序把它自己的当前时钟值(即“时间戳”)记录到“timestamp”中。最多可以记录9个时间戳,详细信息可以参考RFC781。
在测量时,从端设备向网络发送IP探测报文。探测报文经过的每个路由器,都会将路由器的时钟值记录到探测报文中。通过这种方式,探测报文即可将它所通过的路由器的时钟值全部记下来。通过对这些时钟值的分析可以得到链路忙闲的采样序列{Xi},进而用滑动窗口方法得到链路利用率。此方法利用了RFC781所定义的功能。通过将探测报文设置为互联网控制消息协议(Internet Control Message Protocol,简称ICMP)报文,可以实现单端测量,前提是目的端设备是IP设备且支持ICMP报文。通常情况下,支持IPv4协议的设备均支持ICMP报文。
上述方法中最关键的部分是获取探测报文在路由器中的排队时延。获取路由器排队时延的原理和方法简述如下。如图1所示,为单跳时延模型示意图。探测报文的端到端时延由节点时延和链路时延组成,具体分为4部分——分组在链路上的传播时延Tg(propagation delay)、分组的传输时延Tt(transmission delay)、分组在节点的处理时延Tp(processing delay)、在缓冲区中的排队时延Tq(queuing delay)。如果能够测得某时刻的排队时延,就可以知道该时刻路由器的忙闲状态,即可以获得链路的利用率。但是,唯一可测的只是第i个报文通过两个路由器的时间T(i),而第i个报文的排队时延Tq(i)是无法直接得到的。基于逐跳时间标签的IPv4网络链路利用率测量方法应用单跳时延-链路利用率算法,通过T(i)间接得到Tq(i),从而得到链路利用率。
用T(ik)表示第i个探测报文和第k个探测报文经过路由器1和路由器2的时间差。考虑探测报文Pi和Pk,i,k∈[1,N],N为探测报文总数,若分组长度len(Pi)=len(Pk),则同一路由器对Pi和Pk的处理时延Tp、传播时延Tg以及传输时延Tt相等。若探测报文Pi和Pk的发送间隔足够短,即(τ0(i)和τ0(k)分别为探测报文Pi和Pk的发送时间,D被称为无偏窗口)时,因路由器时钟扭曲而导致的偏差小于1ms,即小于时间戳的最小分辨率,可以忽略,则 若探测报文k满足T(k)=min(T(1),...,T(N)),则通过公式(1)可以看出,由于T(ik)已知,若则Tq(i)可知。
若D期间内的平均链路利用率为u,对该期间内任一时刻t的采样Xt有P(Xt=1)=u,N个采样中至少存在一个采样Xk=0的概率,即N个探测报文中至少有一个探测报文在路由器中无需排队等待的概率为 Pidle=1-uN(2) 从式(2)可以分析为使Pidle达到某一置信度,采样数N与链路平均利用率u之间的数值关系。当采样数达到N=100时,只要D期间内链路平均利用率不超过90%,则N个采样中存在一个探测报文k使得的概率不小于99.9%。所以只要采样数和无偏窗口设计合理,一定可以使Tq(k)为0,这样就可以通过T(ik)得到排队时延,间接得到链路利用率。
IPv4网络中单跳时延-链路利用率算法的具体步骤如下 (1)以无偏窗口D将所有探测报文分为M段,取第j段进行处理; (2)计算第m跳链路时延序列i∈[1,n],n为第j段的探测报文数目,tm+1(i)及tm(i)分别为第j段探测报文的第i个报文的第m+1个和第m个时间戳; (3)计算第m跳链路的时延最小值T(k)=min{T(i)},i∈[1,n]; (4)计算第m跳链路的排队时延序列i∈[1,n]; (5)将排队时延序列{Tqueue(i)},i∈[1,n]变换为链路状态序列{X(i)},i∈[1,n];当排队时延Tqueue(i)大于一定的阈值时链路状态为忙,即X(i)=1,否则,链路状态为闲,即X(i)=0; (6)以W为滑动窗口,按公式计算D期间内第m跳链路的利用率; (7)重复(2)-(6),直至M段探测报文全部处理完毕。
根据前述分析,若无偏窗口设计合理,最小值T(k)中的排队时延为0,只包含除排队时延以外的其它时延;对于每个探测报文来讲,除排队时延以外的其它时延是相同的,因此,通过在计算可以得到各探测报文的排队时延。若各路由器对探测报文的处理流程不同,对本方法也没有影响。由于同一路由器对探测报文的处理流程是相同的,无论路由器的处理时延在时间戳之前还是在时间戳之后,该时延均包括在T(k)中,通过计算T(i)-T(k)可将影响消除。例如,在图1中,t1表示路由器1在探测报文中的时间戳;t2表示路由器2在探测报文中的时间戳;Tp1表示探测报文被路由器1打上时间戳之后还需经历的处理时延,Tp2表示探测报文被路由器2打上时间戳之前经历的处理时延;对于第1跳,T(i),i∈[1,n]均包括了Tp1及Tp2,当然,Tp1及Tp2也包含在T(k)中;由于对各探测报文来讲,Tp1是相同的,Tp2也是相同的,在计算T(i)-T(k)时,Tp1及Tp2会被消去。因而,路由器对探测报文的处理流程对计算排队时延并没有影响,从而对计算链路利用率也没有影响。
IPv6是基于IPv4的,它是IPv4的演化,它们的报头格式不同。IPv6具有固定的长度的数据报头,IPv4报头中的大部分选项这里都没有,如果需要会在基本报头之后增加一个或多个扩展头。可见IPv6的数据报具有很大的灵活性。IPv6的包头包括基本头和扩展头两种。
表3 IPv6基本头格式
如表3所示,IPv6基本头包括 Version版本号,4位;IPv6协议的版本值为6。
Traffic Classes通信量等级,8位;IPv6报头中的通信量等级域使得源节点或进行包转发路由器能够识别和区分IPv6信息包的不同等级或优先权。
Flow Label流标记,20位;IPv6报头中的流标记是为了用来标记那些需要IPv6路由器特殊处理的信息包的顺序。
Payload Length有效负载长度,16位;有效负载长度使用16位无符号正数表示,代表信息包中除IPv6报头之外其余部分的长度,以字节即8位计数。
Next Header下一报头,8位;这个字段指出了IPv6头后所跟的头字段中的协议类型。与IPv6协议字段类似,下一报头字段可以用来指出高层协议是传输控制协议(Transmission Control Protocol,简称TCP)还是用户数据报协议(User Datagram Protocol,简称UDP),另外也可以用来指明IPv6扩展头的存在。
Hop Limit路程段限制,8位;该域用8位无符号整数表示,功能同IPv4。
Source Address(源地址,128位)和Destination Address(目的地址,128位)分别标识了发送者和接收者。
在IPv4中可以在IP头的尾部加入选项,与此不同,IPv6中把选项加在单独的扩展头中。IPv6实现的扩展头可以消灭或大量减少选项带来的对通信性能的冲击。通过把选项从IP头搬到净荷中,路由器可以像转发无选项包一样来转发包含选项的包。已经定义的IPv6扩展报文头包括逐跳选项头、选路头、分段头、目的地选项头、身份验证头、封装安全净荷头等。RFC 2460中为IPv6定义了如下选项扩展 逐跳选项头(Hop-by-Hop Options Header) 此扩展头必须紧随在IPv6头之后。它包含包所经路径上的每个节点都必须检查的选项数据。由于它需要每个中间路由器进行处理,逐跳选项只有在绝对必要的时候才会出现。到目前为止,已经定义了两个选项巨型净荷选项和路由器提示选项。巨型净荷选项指明包的净荷长度超过IPv6的16位净荷长度字段。只要包的净荷超过65535字节(其中包括逐跳选项头),就必须包含该选项。如果节点不能转发该包,则必须回送一个ICMPv6出错报文。路由器提示选项用来通知路由器,IPv6数据报中的信息希望能够得到中间路由器的查看和处理,即使这个包是发给其他某个节点的(例如,包含带宽预留协议信息的控制数据报)。
选路头(Routing Header) 此扩展头指明包在到达目的地途中将经过哪些节点。它包含包沿途经过的各节点的地址列表。IPv6头的最初目的地址是路由头的一系列地址中的第一个地址,而不是包的最终目的地址。此地址对应的节点接收到该包之后,对IPv6头和选路头进行处理,并把包发送到选路头列表中的第二个地址。如此继续,直到包到达其最终目的地。
分段头(Fragment Header) 此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识符字段,用于源节点对长度超出源端和目的端路径最大传送单元(MaximumTransmission Unit,简称MTU)的包进行分段。
目的地选项头(Destination Options Header) 此扩展头代替了IPv4选项字段。目前,唯一定义的目的地选项是在需要时把选项填充为64位的整数倍。此扩展头可以用来携带由目的地节点检查的信息。
身份验证头(Authentication header) 此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行加密的校验和的计算。
封装安全性净荷头(Encapsulating Security Payload header) 这是最后一个扩展头,不进行加密。它指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。
在没有扩展头的IPv6包中,基本头中的“NEXT HEADER”字段的值表示上一层协议。即,若IP包中含有TCP段,则IPv6基本头中的“NEXT HEADER”字段的8位二进制值是6(源自RFC 1700(已指派号码));若IP包中含有UDP数据报,这个值就是17。
表4 未加扩展头的IPv6报文结构 如表4所示,为一个未加扩展头的TCP6报文结构。它是一个IPv6基本头加上一段TCP报文,IPv6基本头的“NEXT HEADER”字段标明后续数据是一个TCP报文结构。
如果要在表4所示的报文中,增加一个路由扩展头,则修改后报文如表5所示。
表5 增加了“路由扩展头”的IPv6报文结构 其中,IPv6基本头的“NEXT HEADER”字段要指向路由扩展头,路由扩展头中也有一个“NEXT HEADER”字段,这个字段指向后面的TCP数据。
但是在IPv6协议中,并没有与RFC781相关的标准,因此前述的IPv4的链路利用率测量方法无法应用于IPv6网络。并且由于IPv4时间戳选项的分辨率只能到1ms,因此在测量10M以上链路时,误差比较大。


发明内容
本发明的目的在于针对现有技术所存在的缺陷,提供IPv6网络链路利用率测量方法、测量装置及IPv6网络路由器,实现利用带有时间戳扩展头的IPv6报文,采用端到端的方式测量网络的链路利用率。
为了实现上述目的,本发明提供了一种IPv6网络链路利用率测量方法,包括如下步骤探测源端向网络发送多个带有时间戳扩展头的探测报文;探测报文经过的每一跳路由器将当前时间戳写入探测报文;探测源端和/或目的端根据多个探测报文的时间戳序列得到链路利用率。
探测报文经过的每一跳路由器接收到探测报文后,从基本头中提取下一报头字段,若下一报头字段的值为时间戳扩展头标识,并且当时间戳可以写入时间戳扩展头时,将该时间戳写入该时间戳扩展头。
所述的探测源端发送的探测报文可以是回显请求报文或传输控制协议报文或用户数据协议报文;探测目的端接收到带有时间戳扩展头的回显报文后,创建带有时间戳扩展头的回显报文,将所述回显请求报文的内容复制到该回显报文中,然后将该回显报文向探测源端发送。
在根据多个探测报文的时间戳序列计算链路利用率时,探测源端和/或探测目的端提取多个探测报文的时间戳序列,针对每一跳链路,计算时延序列,提取时延序列中的最小时延,计算排队时延序列,将排队时延序列转换为链路状态序列,计算该跳链路的利用率。
在探测源端和/或探测目的端中,可预先设置排队时延与链路状态的映射关系;在将排队时延序列转换为链路状态序列时,根据排队时延与链路状态映射关系将排队时延序列中的每一排队时延转换为相应的链路状态,生成链路状态序列。
探测源端发送探测报文的时间间隔可根据待测链路速率确定。
为了实现上述目的,本发明还提供了IPv6网络链路利用率测量装置,包括探测报文生成模块、探测报文处理模块及探测报文回送模块的任一个或任几个,以及网络通信模块。探测报文生成模块用于生成带有时间戳扩展头的探测报文;探测报文处理模块用于根据接收的探测报文的时间戳计算链路利用率;探测报文回送模块用于根据回显请求探测报文生成回显探测报文。
为了实现上述目的,本发明又提供了一种IPv6网络路由器,包括网络通信模块;扩展头识别模块,用于识别接收到的IPv6报文基本头中的下一报头字段,在下一报头字段值为时间戳扩展头标识时,发送至时间戳扩展头处理模块;以及时间戳扩展头处理模块,与所述扩展识别模块及网络通信模块连接,用于将时间戳写入带有时间戳扩展头的探测报文,并将写入时间戳的探测报文发送至网络通信模块。
本发明通过带有时间戳扩展头的IPv6报文实现了链路利用率的端到端测量,无需通过SNMP访问路由器,不会给路由器带来很大的处理负担;测量精度高,并且可根据IPv6网络的速率调整探测报文发送参数,从而对测量精度进行调整。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。



图1为单跳时延模型示意图; 图2为本发明的IPv6网络链路利用率测量方法流程图; 图3为本发明的IPv6网络链路利用率测量方法的路由器处理探测报文的流程图; 图4为本发明的IPv6网络链路利用率测量方法实施例一的部署方案示意图; 图5为本发明的IPv6网络链路利用率测量方法实施例二的部署方案示意图; 图6为本发明的IPv6网络链路利用率测量装置实施例一结构示意图; 图7为本发明的IPv6网络链路利用率测量装置实施例二结构示意图; 图8为本发明的IPv6网络链路利用率测量装置实施例三结构示意图; 图9为本发明的IPv6网络链路利用率测量装置实施例四结构示意图; 图10为本发明的IPv6网络链路利用率测量装置实施例五结构示意图; 图11为本发明的IPv6网络链路利用率测量装置实施例六结构示意图; 图12为支持本发明的测量方法的IPv6网络路由器结构示意图; 图13为本发明的IPv6网络路由器的时间戳扩展头处理模块结构示意图。

具体实施例方式 由于IPv6协议中并没有IPv4协议的“时间戳选项”这种标准报文定义,因此必须定义一个时间戳扩展头,同时要求IPv6路由器支持对时间戳扩展头的处理,并需要相应的IPv6网络测试装置能够生成带IPv6时间戳扩展头的探测报文,并能根据多个探测报文的时间戳序列计算链路利用率。
为了叙述方便,本发明定义了一种时间戳扩展头的结构,并以该时间戳扩展头结构为例说明本发明的技术方案。但需要说明的是,本发明的技术方案并不限于采用该时间戳扩展头结构的技术方案,时间戳扩展头可采用多种定义方式,根据时间戳扩展头字段定义的不同,路由器记录时间戳的具体方式,以及测量装置生成探测报文以及处理报文的具体方法,可能会有所不同。
IPv6扩展头通过IPv6头的“下一报头”字段进行标识。根据国际组织互联网编号分配机构(Internet Assigned Numbers Authority)所给出的协议编号(Protocol Number)列表,目前未指派的编号是138-252。可采用其中的一个编号作为时间戳扩展头标识,例如,使用138标识,即当IPv6基本头的“NEXTHEADER”字段的值为138的时候,表明基本头之后是时间戳扩展头。根据RFC 2460规定的格式,时间戳扩展头的具体格式可如表6所示 表6时间戳扩展头格式
各字段含义如下 Next Header下一报头;该字段占用1个字节;所有IPv6扩展头都包含“Next Header”字段用于标识下一头字段的类型; Extension Header Length扩展头长度;该字段占用1个字节;扩展头长度,用以标识时间戳选项扩展头的长度,该长度以8字节为单位,不包含扩展头的第一个8字节,即如果扩展头只有8字节长,该字段值即为0;该字段限制了扩展头最多为2048字节。
Type类型;该字段占用1个字节;用于标识时间戳选项头的类型,根据RFC 2460的建议,Type字段的两个高位值为00,表示“如果IPv6节点不支持该选项类型,则跳过本扩展头处理下一个扩展头”;因此,可规定以4表示“逐跳记录路由器时间戳”,参见表7 表7“Type”字段的构成 Data Pointer数据指针;该字段占用1个字节;标识当前已经记录的时间戳数目,同时表明下一个时间戳存放在扩展头中的位置;Data Pointer的初始值是0,每当带有时间戳扩展头的IPv6报文经过一个路由器的时候,这个路由器就在时间戳扩展报头的“Data”部分写入一个时间戳,同时将DataPointer的值加一,除非Data Pointer的值已经是255;路由器记录时间戳的位置为从时间戳扩展报文头的首部算起的第8×(DataPointer+1)个字节。
PADS该字段占用4个字节(32bits);仅用于填充,使得时间戳扩展报文头在去除了“Data”字段后的长度是8字节的倍数。
Data扩展头中的数据,该字段记录报文通过路由器的具体时间,即时间戳;每个时间戳占用8个字节(64 bit)。时间戳是从协调世界时间(Coordinated Universal Time,简称UTC)午夜开始到当前时间所经过的微秒数;多个时间戳按照被记录到时间戳扩展头的顺序依次排列。受到“ExtensionHeader Length”的限制,“Data”字段最多可以记录255个时间戳。
如图2所示,为本发明的IPv6网络链路利用率测量方法流程图,包括如下步骤 步骤1、探测源端向网络发送多个带有时间戳扩展头的探测报文; 步骤2、探测报文经过的每一跳路由器将当前时间戳写入探测报文; 步骤3、探测源端和/或探测目的端根据多个探测报文的时间戳序列得到链路利用率。
对不同速率的链路在测试过程中探测频率的选择主要考虑两方面的因素首先考虑测量的精确度,如果探测报文发送过少,测量得到的精确度不足;另外要考虑探测报文对链路本身利用率的影响,如果探针发送的过于频繁,会加重链路负载影响测试结果。发送探测报文的时间间隔可通过下表确定。
表8链路速率与探测频率的关系 如图3所示,为路由器处理探测报文的流程图,包括如下步骤 步骤A、从探测报文中提取基本头中的“Next Header”字段; 步骤B、判断“Next Header”的值是否为时间戳扩展头标识138,若是,执行步骤C; 步骤C、判断时间戳扩展头是否可容纳更多的时间戳,若是,执行步骤D; 可以通过时间戳扩展头中的“Extension Header Length”字段以及“DataPointer”字段判断是否可容纳更多的时间戳;由于“Extension Header Length”字段的值不包含扩展头的第一个8字节,因此实际上该字段的值即为表明时间戳数目的“Data Pointer”的最大值。
路由器从时间戳扩展头中提取“Extension Header Length”字段以及“DataPointer”字段的值,判断“Extension Header Length”是否大于“Data Pointer”,若是,则说明时间戳扩展头可容纳更多地时间戳,可写入;否则,说明时间戳扩展头无法容纳更多的时间戳。
步骤D、将时间戳写入时间戳扩展头; 路由器在写入时间戳时,先根据“Data Pointer”计算时间戳存放位置,然后将时间戳写入时间戳扩展头,并且更新“Data Pointer”的值,即将“DataPointer”的值加一。
根据多个探测报文的时间戳序列得到链路利用率的方法可参照IPv4网络中单跳时延-链路利用率算法,提取多个探测报文的时间戳序列,针对每一跳链路,计算时延序列,提取时延序列中的最小时延,计算排队时延序列,将排队时延序列转换为链路状态序列,计算该跳链路的利用率。
但是,对于吞吐量大,链路利用率变化显著的情况,如果只是简单的通过0,1来统计链路的忙闲状态,不够准确。本发明采用利用率平滑算法,将链路状态从0,1这个二阶量改成多阶量,从而使得到的链路利用率比使用0,1统计方法更加贴近实际链路利用率。
记第i个探测报文的排队时延为Tqueue(i)设N个连续探测报文中最大的排队时延其中i=1,2,...,N。根据探测精度的要求,可设定一个递增数列{t}=t0,t1,...,tj,tj+1,...,tK,tK+1,(其中t0=0,tK+1=Tqmax)。数列{t}的子列{t′}=t0,t1,...,tj,tj+1,...,tK在实数域[0,1)上的映射是递增数列{x}=x0,x1,...,xj,xj+1,...,xK(其中x0=0,xK=1)。tj与xj的映射关系可以通过线性或非线性函数定义,也可通过映射关系表定义。
第i个探测报文测得的链路状态为Xi 最后对链路状态通过滑动窗口算法来处理,得到信道利用率。在采样窗口W时间内,以频率f对链路的忙闲状态持续采样,样本数n=Wf,记采样结果为Xi,i=1...n,则链路利用率 探测报文至少可以通过ICMP报文或TCP/UDP报文实现,下面分别通过两个实施例分别对采用这两种报文的测量方法进行说明。
方法实施例一 本实施例采用带有IPv6时间戳扩展头的ICMP回显请求(Echo Request)作为探测报文。如图4所示,为本实施例的部署方案示意图,探测目的端是任意支持IPv6协议的网络节点,可以是路由器、计算机主机等。
表9 带有IPv6时间戳扩展头的ICMP报文 如表9所示,为带有IPv6时间戳扩展头的ICMP报文结构。探测源端根据表9所示报文结构生成带有时间戳扩展头的ICMPv6 Echo Request报文PktX,并向探测目的端发送。中途经过的路由器将时间戳记录到报文PktX的时间戳扩展头的Data字段中。报文PktX到达探测目的端后,探测目的端创建ICMPv6 Echo报文PktY,将PktX的内容拷贝到PktY中,然后将该报文发送回探测源端。在探测目的端到探测源端的路径上,路由器同样将时间戳依序记录到报文PktY中。探测源收到报文PktY,提取时间戳扩展头的数据,进行处理,根据时间戳序列计算得到链路Router1->Router2、链路Router2->Router3、...、链路 RouterN-1->RouterN、链路RouterN->RouterN-1、...、链路Router2->Router1的链路利用率。
这种测量方式的好处是可以实现单端测量,即,在探测源端发送探测报文并接收探测报文,只需要探测源端支持探测报文的生成以及根据时间戳序列计算链路利用率。
方法实施例二 本实施例采用带有IPv6时间戳扩展头的TCP/UDP报文作为探测报文。如图5所示,为本实施例的部署方案示意图,探测目的端可以是任意支持IPv6协议的网络节点,可以是路由器、计算机主机等,但与上一实施例不同之处在于探测目的端应该能够据根据时间戳序列计算链路利用率。
表10 带有IPv6时间戳扩展报文头的TCP/UDP报文 如表10所示,为带有IPv6时间戳扩展头的TCP/UDP报文。探测源端向探测目的端发送带有时间戳扩展头的TCP/UDP报文PktZ。中途经过的路由器将时间戳记录到报文PktZ的时间戳扩展头的Data字段中。在探测目的端接收这些探测报文并提取时间戳数据进行处理,根据时间戳序列计算得到链路Router1->Router2、链路Router2->Router3、...、链路RouterN-1->RouterN的链路利用率。
本实施例具有更大的灵活性,在探测从探测源端到探测目的端路径的各个链路利用率时,不需记录探测目的端到探测源端路径的时间戳;在探测从探测目的端到探测源端路径的各个链路利用率时,也不需记录探测源端到探测目的端路径的时间戳,缩短了测量的时间,并减少了因测量而给相应路由器带来的负担。
IPv6网络链路利用率测量装置实施例一 如图6所示,为本发明的IPv6网络链路利用率测量装置实施例一结构示意图。该装置至少包括探测报文生成模块以及网络通信模块。探测报文生成模块用于生成带有时间戳扩展头的探测报文,根据测量方案的不同,探测报文可以为带有IPv6时间戳扩展头的ICMP Echo Requset,或者为带有IPv6时间戳扩展头的TCP/UDP报文。网络通信模块用于发送和/或接收探测报文。在基于TCP/UDP报文的测量方法中,探测源端可采用这种结构,并且网络通信模块只支持发送探测报文即可。
IPv6网络链路利用率测量装置实施例二 如图7所示,为本发明的IPv6网络链路利用率测量装置实施例二结构示意图。本实施例在实施例一的基础上加入了一个探测报文处理模块,该模块与网络通信模块连接,用于根据接收的探测报文的时间戳序列计算链路利用率。在基于ICMP报文的测量方法中,探测源端可采用这种结构。首先由探测报文生成模块生成带有IPv6时间戳扩展头的ICMP Echo Request并通过网络通信模块发送;网络通信模块收到带有IPv6时间戳扩展头的ICMP Echo后发送至探测报文处理模块;探测报文处理模块提取时间戳序列,并根据时间戳序列计算链路利用率。
IPv6网络链路利用率测量装置实施例三 如图8所示,为本发明的IPv6网络链路利用率测量装置实施例三结构示意图。本实施例包括网络通信模块及探测报文处理模块。网络通信模块用于发送和/或接收探测报文;探测报文处理模块与网路通信模块连接,用于根据接收的探测报文的时间戳序列计算链路利用率。在基于TCP/UDP报文的测量方法中,探测目的端可采用这种结构。探测目的端的网络通信模块接收到带有IPv6时间戳扩展头的TCP/UDP报文后,发送至探测报文处理模块,由探测报文处理模块根据时间戳序列计算链路利用率。
IPv6网络链路利用率测量装置实施例四 如图9所示,为本发明的IPv6网络链路利用率测量装置实施例四结构示意图。本实施例包括网络通信模块及探测报文回送模块。探测报文回送模块与网络通信模块连接,用于根据带有IPv6时间戳扩展头的ICMP Echo Request生成带有IPv6时间戳扩展头的ICMP Echo并向发送。在基于ICMP报文的测量方法中,测量目的端可采用这种结构。探测目的端的网络通信模块接收到带有IPv6时间戳扩展头的ICMP Echo Request报文后,发送至探测报文回送模块;探测报文回送模块根据ICMP Echo Request报文生成ICMP Echo报文,即创建ICMP Echo报文,将ICMP Echo Request报文的内容复制到ICMP Echo报文中,然后发送至网络通信模块,由网络通信模块将ICMP Echo报文发送回探测源端。
IPv6网络链路利用率测量装置实施例五 在图9所示的实施例中也可加入探测报文处理模块,构成图10所示的IPv6网络链路利用率测量装置实施例五。探测报文处理模块与网络通信模块连接。在基于ICMP报文的测量方法中,探测目的端可采用这种结构,网络通信模块接收到带有IPv6时间戳扩展头的ICMP Echo Request报文后,将其同时发送至探测报文处理模块以及探测报文回送模块;探测报文处理模块根据时间戳序列计算探测源端到探测目的端路径各链路利用率;探测报文回送模块生成带有IPv6时间戳扩展头的ICMP Echo报文并向探测目的端返回。这样,探测目的端既可以响应带有IPv6时间戳扩展头的ICMP Echo Request,又可以计算链路利用率。
IPv6网络链路利用率测量装置实施例六 如图11所示,为本发明的IPv6网络链路利用率测量装置实施例六结构示意图。本实施例包括网络通信模块,以及与网络通信模块连接的探测报文生成模块、探测报文处理模块及探测报文回送模块。各模块的功能不再赘述。本实施例可作为探测源端,也可作为探测目的端,并且即可用于基于ICMP报文的测量方法,也可应用于基于TCP/UDP的测量方法。
IPv6网络路由器实施例 如图12所示,为支持本发明的测量方法的IPv6网络路由器结构示意图。在现有路由器中加入了时间戳扩展头处理模块,并对现有路由器的模块进行改进。扩展头识别模块与所述网络通信模块连接,该扩展头识别模块除了能够识别RFC2460中定义的扩展头之外,还要能够识别IPv6时间戳扩展头标识,在“Next Header”字段值为时间戳扩展头标识时,发送至时间戳扩展头处理模块;时间戳扩展头处理模块与扩展识别模块连接及网络通信模块连接,用于将时间戳写入带有时间戳扩展头的探测报文,然后交由网络通信模块发送。
如图13所示,为上述IPv6网络路由器实施例中时间戳扩展头处理模块的结构示意图,包括容量判断模块,与扩展头识别模块连接,用于判断时间戳扩展头是否可容纳更多的时间戳;位置计算模块,与容量判断模块连接,用于在时间戳扩展头可容纳更多时间戳的情况下,计算时间戳的存放位置;记录模块,与位置计算模块及网络通信模块连接,用于根据时间戳存放位置将时间戳写入时间戳扩展头,然后将新写入时间戳的时间戳扩展头交由网络通信模块发送。
本发明通过带有时间戳扩展头的IPv6报文实现了链路利用率的端到端测量,无需通过SNMP访问路由器,不会给路由器带来很大的处理负担;测量精度高,并且可根据IPv6网络的速率调整探测报文发送参数,从而对测量精度进行调整。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换,而不脱离本发明技术方案精神的,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种IPv6网络链路利用率测量方法,其特征在于,所述方法包括如下步骤
探测源端向网络发送多个带有时间戳扩展头的探测报文;
探测报文经过的每一跳路由器将当前时间戳写入探测报文;
探测源端和/或目的端根据多个探测报文的时间戳序列得到链路利用率。
2.根据权利要求1所述的IPv6网络链路利用率测量方法,其特征在于,所述探测报文经过的每一跳路由器将当前时间戳写入探测报文进一步包括以下步骤探测报文经过的路由器提取探测报文基本头的下一报头字段,若所述下一报头字段的值为时间戳扩展头标识,并且当所述时间戳可以写入所述时间戳扩展头时,将所述时间戳写入所述时间戳扩展头。
3.根据权利要求2所述的IPv6网络链路利用率测量方法,其特征在于,所述时间戳可以写入所述时间戳扩展头的条件是从所述时间戳扩展头中提取扩展头长度信息及时间戳数目信息,所述扩展头长度大于所述时间戳数目。
4.根据权利要求3所述的IPv6网络链路利用率测量方法,其特征在于,所述将时间戳写入时间戳扩展头的步骤具体为根据所述时间戳数目计算时间戳存放位置,将时间戳写入时间戳扩展头,并且将时间戳数目加一。
5.根据权利要求1所述的IPv6网络链路利用率测量方法,其特征在于,所述探测源端向网络发送的多个带有时间戳扩展头的探测报文为多个带有时间戳扩展头的回显请求报文。
6.根据权利要求5所述的IPv6网络链路利用率测量方法,其特征在于,所述方法进一步包括以下步骤
探测目的端接收带有时间戳扩展头的回显请求报文;
创建带有时间戳扩展头的回显报文,将所述回显请求报文的内容复制到所述回显报文中;
将所述回显报文向探测源端发送。
7.根据权利要求1所述的IPv6网络链路利用率测量方法,其特征在于,所述探测源端向网络发送的多个带有时间戳扩展头的探测报文为多个带有时间戳扩展头的传输控制协议报文或用户数据协议报文。
8.根据权利要求1所述的IPv6网络链路利用率测量方法,其特征在于,所述根据多个探测报文的时间戳序列得到链路利用率进一步包括以下步骤提取多个探测报文的时间戳序列,针对每一跳链路,计算时延序列,提取时延序列中的最小时延,计算排队时延序列,将排队时延序列转换为链路状态序列,计算该跳链路的利用率。
9.根据权利要求8所述的IPv6网络链路利用率测量方法,其特征在于,所述方法进一步包括以下步骤
设置排队时延与链路状态的映射关系;
根据所述排队时延与链路状态的映射关系将排队时延序列中的每一排队时延转换为相应的链路状态,生成链路状态序列。
10.根据权利要求9所述的IPv6网络链路利用率测量方法,其特征在于,所述计算该跳链路的利用率的步骤具体为,计算所述链路状态序列的均值。
11.根据权利要求1-10任一所述的IPv6网络链路利用率测量方法,其特征在于,所述方法还包括根据链路速率确定发送探测报文的时间间隔。
12.一种IPv6网络链路利用率测量装置,其特征在于,所述装置包括
探测报文生成模块,用于生成带有时间戳扩展头的探测报文;
网络通信模块,用于发送和/或接收所述探测报文。
13.根据权利要求12所述的IPv6网络链路利用率测量装置,其特征在于,所述装置还包括探测报文处理模块,用于根据接收的探测报文的时间戳计算链路利用率。
14.根据权利要求12或13所述的IPv6网络链路利用率测量装置,其特征在于,所述装置还包括探测报文回送模块,用于根据回显请求探测报文生成回显探测报文。
15.一种IPv6网络链路利用率测量装置,其特征在于,所述装置包括
网络通信模块,用于发送和/或接收探测报文;
探测报文处理模块,用于根据所述探测报文的时间戳计算链路利用率。
16.根据权利要求15所述的IPv6网络链路以用率测量装置,其特征在于,所述装置还包括探测报文回送模块,用于根据回显请求探测报文生成回显探测报文。
17.一种IPv6网络链路利用率测量装置,其特征在于,所述装置包括
网络通信模块,用于发送和/或接收探测报文;
探测报文回送模块,用于根据回显请求探测报文生成回显探测报文。
18.一种IPv6网络路由器,包括网络通信模块,其特征在于,所述路由器还包括
扩展头识别模块,用于识别接收到的IPv6报文基本头中的下一报头字段,在下一报头字段值为时间戳扩展头标识时,发送至时间戳扩展头处理模块;以及
时间戳扩展头处理模块,用于将时间戳写入带有时间戳扩展头的探测报文,并将写入时间戳的探测报文发送至网络通信模块。
19.根据权利要求18所述的路由器,其特征在于,所述时间戳扩展头处理模块包括
容量判断模块,用于判断时间戳扩展头是否可容纳更多的时间戳;
位置计算模块,用于在时间戳扩展头可容纳更多时间戳的情况下,计算时间戳的存放位置;
记录模块,用于根据时间戳存放位置将时间戳写入时间戳扩展头。
全文摘要
本发明提供一种IPv6网络链路利用率测量方法,包括如下步骤探测源端向网络发送多个带有时间戳扩展头的探测报文;探测报文经过的每一跳路由器将当前时间戳写入探测报文;探测源端和/或目的端根据多个探测报文的时间戳序列得到链路利用率。本发明还提供一种IPv6网络链路利用率测量装置和一种IPv6网络路由器。本发明通过带有时间戳扩展头的IPv6报文实现了链路利用率的端到端测量,测量精度高,并且可根据IPv6网络的速率调整探测报文发送参数,从而对测量精度进行调整。
文档编号H04L12/24GK101192951SQ20061014420
公开日2008年6月4日 申请日期2006年11月29日 优先权日2006年11月29日
发明者李智涛, 崔毅东, 庄宏成, 青 刘, 徐雅静, 黄小红 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1