用于性能测量的管理程序和物理机以及其中的相应方法_5

文档序号:9333008阅读:来源:国知局
程序中的代码组件包括拦截单元或模块,用于:拦截从虚拟机传送的或者去往虚拟机的分组,分组包括针对虚拟机或针对对等节点的目的地地址;以及确定是否要将管理程序时间戳插入在分组中。当确定要将管理程序时间戳插入在分组中时,拦截单元或模块将管理程序时间戳插入在分组中。计算机程序进一步包括用于根据目的地地址将分组向其目的地转发的转发单元或模块。
[0115]计算机程序模块本质上可以执行图1所示的流程的动作,以仿真管理程序500。换言之,当不同计算机程序模块在处理单元506中被执行时,它们可以对应于图4a的单元
421-423。
[0116]图6示意性地示出物理机600的实施例。包括在物理机600中的此处为例如具有DSP (数字信号处理器)的处理单元606。处理单元606可以是用于执行本文中描述的过程的不同动作的单个单元或多个单元。物理机600还可以包括用于从其它实体接收信号的输入单元602以及用于向其它实体提供(多个)信号的输出单元604。输入单元和输出单元可以被布置作为集成实体,或者如图4a的示例所示,作为一个或多个接口 411/412。
[0117]此外,物理机600包括非易失性存储器形式的至少一个计算机程序产品608,例如EEPROK电可擦除可编程只读存储器)、闪速存储器和硬驱动。计算机程序产品608包括计算机程序610,计算机程序610包括代码组件,代码组件当在物理机600中的处理单元606中执行时使得物理机600执行例如早前结合图2a和图2b描述的过程的动作。
[0118]计算机程序610可以被配置作为计算机程序模块610a_610e中结构化的计算机程序代码。因此,在例示实施例中,物理机600的计算机程序中的代码组件包括虚拟机,虚拟机包括用于创建要被传送到对等节点的分组的创建单元或模块,其中虚拟机进一步包括:初始化单元或模块,用于通过将第一虚拟机时间戳插入在分组中来初始化分组;以及传送单元或模块,用于朝向对等节点传送分组。计算机程序进一步包括管理程序,管理程序包括用于拦截从虚拟机传送的分组的拦截单元或模块、以及用于将第一管理程序时间戳插入在分组中的插入单元或模块。管理程序还包括用于朝向对等节点转发分组的转发单元或模块,其中拦截单元或模块进一步当分组从对等节点被传送回到虚拟机时拦截分组。插入单元将另外的管理程序时间戳插入在分组中,并且转发单元或模块进一步向虚拟机转发分组。虚拟机的初始化单元或模块进一步生成最终虚拟机时间戳。
[0119]在例示实施例中,物理机600的计算机程序中的代码组件包括管理程序,管理程序包括用于拦截去往虚拟机的分组的拦截单元或模块、用于将管理程序时间戳插入在分组中的插入单元或模块、以及用于向虚拟机转发分组的转发单元或模块。物理机400还包括虚拟机,虚拟机包括:用于将虚拟机时间戳插入在分组中的初始化单元或模块,初始化单元或模块用于将另外的虚拟机时间戳插入在分组中;用于朝向从其接收到分组的对等节点传送回分组的传送单元或模块。管理程序420的拦截单元或模块进一步拦截去往对等节点的分组,并且插入单元或模块将另外的管理程序时间戳插入在分组中,并且转发单元进一步朝向对等节点转发分组。
[0120]计算机程序模块本质上可以执行图2a和图2b所示流程的动作,以仿真物理机600。换言之,当不同计算机程序模块在处理单元606中被执行时,它们可以对应于图4a的单元 421-423 和 431-433。
[0121]虽然上面结合图4a所公开的相应实施例中的代码组件被实现为计算机程序模块,当其在相应处理单元中被执行时,计算机程序模块分别使得管理程序和物理机执行上面结合上述图描述的动作,但是在替代实施例中代码组件中的至少一个可以至少部分地实现为硬件电路。
[0122]处理器可以是单个CPU(中央处理单元),但是还可以包括两个或更多处理单元。例如,处理器可以包括:通用微处理器;诸如ASIC(专用集成电路)之类的指令集处理器和/或有关芯片集和/或专用微处理器。处理器还可以包括用于高速缓存目的的板存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括在其上存储计算机程序的计算机可读介质。例如,计算机程序产品可以是闪速存储器、RAM(随机存取存储器)、R0M(只读存储器)或者EEPR0M,并且上面描述的计算机程序模块在替代实施例中可以分布在分别在管理程序和物理机内的具有存储器形式的不同计算机程序产品上。
[0123]图7a是基于TWAMP的例示测试分组格式的框图。如上面描述的,可以使用不同测试协议,其一个示例是TWAMP。
[0124]发起者(还称为控制器)向反射器发送控制分组以建立测量会话。参数包括例如要交换的测试分组的数目、发送器和接收器IP、发送器和接收器端口号以及开始时间。请求的测量会话由反射器确认。还参见图3a和图3b。
[0125]当测量会话建立时,使用协定的参数将测试分组从发起者/控制器发送到反射器并且再次发送回来。根据TWAMP架构,每个分组被时间戳记4次,对应于图3a中的步骤3:1、3:7、3:8和3:14。由此可能计算正向和反向的单向延迟、抖动、并且还可能计算往返时间。
[0126]为了测试分组还携带管理程序时间戳(对应于步骤3:3、3:5、3:10和3:12),可以扩展TWAMP协议,使得例如以填充的八位字节来定义附加字段。TffAMP分组中添加的字段的示例在图7a中图示为四个附加字段706、707、708和7009,即管理程序时间戳I (HTl)、管理程序时间戳2 (HT2)、管理程序时间戳3 (HT3)和管理程序时间戳4 (HT4)。
[0127]TffAMP测试分组的未认证模式的示例可以具有如图7b所示的具有反向方向的格式。
[0128]再次,应该注意的是,这些仅是示例,并且用于主动测量的其它协议可以以与上面描述的TWAMP相似的方式进行扩展。
[0129]当发起方(TWAMP控制器/发起者)初始化分组时,TWAMP控制器/发起者将所有时间戳字段设置为零。因此,假如管理程序未能将时间戳添加在某个字段中,这是容易检测的,因为这样的字段只包括零。
[0130]因而TWAMP协议应该被更新以定义测试分组中的新时间戳字段,以使得管理程序能够拦截测试分组并且将管理程序时间戳插入到其中。
[0131]性能测量的发起方可以首先通过信号传送或配置TWAMP会话,例如类似于图3b中示出的那样。控制分组可以包括指示TWAMP发起者/控制器将使用哪个版本的TWAMP的信息。然后使得对等节点或TWAMP反射器能够推断哪个版本的TWAMP将用于性能测量。如果对等节点包括管理程序并且使用新TWAMP版本,则双方的管理程序可以将管理程序时间戳插入到测试分组中。假如仅TWAMP发起者/控制器运行在其上(如上面描述的借助于管理程序和虚拟机)的物理机包括管理程序,而对等节点不包括管理程序,则测试分组可以被创建有针对物理机的(多个)管理程序的管理程序时间戳字段,或者打算用于对等节点的管理程序的测试分组的任何管理程序时间戳字段将由发起者设置为零。如果对等节点不运行管理程序,则打算用于对等节点处的可能管理程序的任何管理程序时间戳字段将被保留为与它们在对等节点接收分组时一样,即当测试分组被返回到TWAMP发起者/控制器运行在其上的物理机时,那些字段将仍然具有零。
[0132]同样地,如果TWAMP发起者/控制器简单地运行在物理机上并且对等节点运行管理程序,管理程序进而执行虚拟机,虚拟机执行TWAMP反射器,则TWAMP发起者/控制器仍然可以支持新更新的TWAMP,但是打算用于TWAMP发起者/控制器运行在其上的物理机的可能管理程序的任何管理程序时间戳字段将被保留有零,因为没有运行在物理机上的管理程序,物理机运行执行TWAMP控制器/发起者的虚拟机。然而,对等节点的任何管理程序可以将管理程序时间戳插入到打算用于对等节点的(多个)管理程序的字段中。
[0133]图3b中描述的测试会话可以向TWAMP发起者/控制器312通知第一和第二物理机310和320上运行的管理程序,或者TWAMP发起者/控制器312可以简单地创建足够大的用于执行性能测量的测试分组,即具有充分多的管理程序时间戳字段,以适应第一和第二物理机310和320上运行的任何数目的管理程序的管理程序时间戳。在测试分组已经被传送到对等节点并且从对等节点被接收回来之后,未使用的任何多余的管理程序时间戳字段将仅包括零。这是因为在朝向对等节点传送分组之前,当TWAMP发起者/控制器发起测试分组时,所有管理程序时间戳字段被设置为或填充有零。
[0134]如上面参照图3b描述的,在管理程序可以拦截测试分组并且可能将管理程序时间戳插入到用于测量的测试分组中的专用字段中之前,管理程序必须首先拦截在TWAMP发起者/控制器和TWAMP反射器之间发送的控制分组。控制分组包含诸如发送器IP、接收器IP、发送器端口和接收器端口之类的会话参数。控制还传达其指定TWAMP测试分组格式或TffAMP版本号的TWAMP模式。
[0135]控制分组的拦截可以通过侦听具有新TWAMP模式或版本的TWAMP控制分组来执行。通常朝向熟知的IP端口号发送控制分组。也就是,拦截这些分组是容易的,并且不要求很多的处理能力。
[0136]在示例中,当TWAMP会话的建立阶段被标识时,管理程序将该会话添加到用于拦截测试分组的内部数据库。拦截例如基于4元组〈发送器IP,接收器IP,发送器端口,接收器端口〉。管理程序必须通过某种手段知道要将时间戳放在测试分组中的什么位置,即管理程序时间戳字段位于分组中的什么位置。这在一个示例中是预配置的。
[0137]代替拦截用于建立TWAMP测试会话的控制分组,在一个示例中,仅拦截在预定义端口号上发送和接收的测试分组。这必须事先配置并放入测试分组拦截数据库。再次,拦截可以基于4元组〈发送器IP,接收器IP,发送器端口,接收器端口 >。该解决方案更加“轻量级”,因为它不要求查验网络上的所有TWAMP控制分组。进一步地,该解决方案支持TWAMP轻模式。
[0138]在建立测试分组拦截数据库之后,管理程序拦截TWAMP测试分组。这图示于图3a中并且在上面进行了描述。如图7a和图7b所示,正向和反向的测试分组的TWAMP报头可以不同。
[0139]当TWAMP发起者/控制器接收从对等节点回来的测试分组时,使得TWAMP发起者/控制器能够计算不同指标,如上面描述的。例如,总往返时间被估计为T4 - Tl,正向方向上的单向延迟被计算为T2 - Tl,反向方向上的单向延迟被计算为T4 - T3。进一步使得TWAMP发起者/控制器能够计算以下指标:正向方向上的由于虚拟化引起的机器I中的延迟被计算为HTl - Tl,正向方向上的由于虚拟化引起的机器2中的延迟被计算为T2 - HT2,反向方向上的由于虚拟化引起的机器2中的延迟被计算为HT3 -T3,以及反向方向上的由于虚拟化引起的机器I中的延迟被计算为T4 - HT4。
[0140]这允许确定由于虚拟化引起的延迟和由于联网问题引起的延迟。这对于定位性能问题是重要的。当然,可以使用附加管理程序时间戳、使用它们自己的估计方法来计算其它指标。
[0141]代替使用TWAMP用于性能测量,可以使用ICMP,如上面简要描述的。存在不同的ICMP控制消息。例如,ICMP回应请求具有类型8,而ICMP回应应答具有类型O。ICMP类型13指的是时间戳消息,并且类型14指的是时间戳应答消息。这传统上用于节点之间的时间同步。通过向类型13消息结构添加管理程序时间戳来更新ICMP,导致针对正向和反向方向的图8a和图Sb所示的测试分组。
[0142]每个时间戳对应于在TWAMP实
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1