测试包置于一数据通讯网路上的方法和装置.pdf

上传人:Y0****01 文档编号:680007 上传时间:2018-03-04 格式:PDF 页数:25 大小:1.16MB
返回 下载 相关 举报
摘要
申请专利号:

CN02827972.7

申请日:

2002.12.06

公开号:

CN1618206A

公开日:

2005.05.18

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||实质审查的生效|||公开

IPC分类号:

H04L12/26

主分类号:

H04L12/26

申请人:

阿派伦特网络股份有限公司;

发明人:

I·塔拉诺弗

地址:

加拿大不列颠哥伦比亚

优先权:

2001.12.10 US 10/006,157

专利代理机构:

上海专利商标事务所有限公司

代理人:

李家麟

PDF下载: PDF下载
内容摘要

一测试包定序器在一计算机网路上发送测试包,所述网路包括一计算机其在一操作系统下运行软件。所述软件使用输入/输出完成端口发送封包和封包丛集组。封包可通过一以测试包定序器为终点的网路通路上发送。所述软件也可接收及时戳返回封包和封包丛集组。所述测试包定序器可接收输入/输出完成端口中的封包。所述软件可有一测试处理器线程,其在传送封包丛集组前的瞬间终结其之目前时间片,所以全数封包都在测试处理器线程的单一时间片中发送。时限紧急优先执行权可给予所述测试处理器线程。

权利要求书

权利要求书

所要求的权利为:

1.
  一种在一网路上测试包丛集组的发送方法,所述方法包括以下步骤:
产生多个测试包;
将发送测试包的请求转到一输入/输出完成端口;以及
使用输入/输出完成端口使测试包在网路上发送。

2.
  根据权利要求1所述的方法,其特征在于,封包异步转到输入/输出完成端口;

3.
  根据权利要求1所述的方法,其特征在于,在单一时间片中以一用户模式线程实现把封包转到输入/输出完成端口。

4.
  根据权利要求3所述的方法,其特征在于其包括,
在转寄测试包前,为用户线程终结目前时间片以及在用户线程的下一时间片开始时把测试包转到输入/输出完成端口。

5.
  根据权利要求4所述的方法,其特征在于其包括把时限紧急优先执行权给予用户模式线程。

6.
  根据权利要求3所述的方法,其特征在于其包括,把时限紧急优先执行权给予用户模式线程。

7.
  根据权利要求3所述的方法,其特征在于,用户模式线程直接存取一网路界面装置的缓冲器。

8.
  根据权利要求3所述的方法,其特征在于其包括,接收经过一网路通路后返回的已发送测试包及为收到封包的通知戳记时间。

9.
  根据权利要求8所述的方法,其特征在于,用户模式线程预先建立,或已经为其预先建立足以接收所有返回的发送测试包的缓冲器。

10.
  根据权利要求9所述的方法,其特征在于,用户模式线程使用一返回封包时戳的硬件计时器。

11.
  根据权利要求9所述的方法,其特征在于其包括保持一封包数据专用堆,其中所述专用堆能为用户模式线程所存取。

12.
  根据权利要求11所述的方法,其特征在于,所述专用堆包括储存封包的标准大小配置单元。

13.
  根据权利要求12所述的方法,其特征在于,所述标准大小配置单元为操作系统存储页面的大小。

14.
  根据权利要求13所述的方法,其特征在于,所述标准大小配置单元为4096字节。

15.
  根据权利要求11所述的方法,其特征在于其包括:将一大过预设的工作进程设定大小给予用户模式线程。

16.
  根据权利要求15所述的方法,其特征在于,工作进程设定大小超过8兆字节。

17.
  根据权利要求3所述的方法,其特征在于,用户模式线程直接存取一网卡的缓冲器,使测试包由在网路上发送。

18.
  根据权利要求1所述的方法,其特征在于,产生测试包包括产生多个相同大小的测试包。

19.
  根据权利要求1所述的方法,其特征在于,产生测试包包括产生乙太网测试包。

20.
  根据权利要求18所述的方法,其特征在于,产生测试包包括产生多个相同大小的测试包,其中每个测试包大小在46个字节到1500个字节之间。

21.
  根据权利要求1所述的方法,其特征在于其包括从输入/输出完成端口接收封包已发送的通知及戳记其之时间。

22.
  根据权利要求8所述的方法,其特征在于接收返回的发送封包包括使返回发送封包的数据通过与在其上接收返回封包的网路界面关联的输入/输出完成端口。

23.
  一种程序产品,所述产品包括一承载计算机可读信号的媒体,所述信号包括,由一计算机处理器执行时,会使计算机处理器执行一种在一网路上测试包丛集组的发送方法的指令,其特征在于所述方法包括以下步骤:
产生多个测试包;
将发送测试包的请求转到一输入/输出完成端口;以及
使用输入/输出完成端口使测试包在网路上发送。

24.
  根据权利要求23所述的程序产品,其特征在于,所述指令包括一控制器部分和一测试处理器部分,其中控制器部分和测试处理器部分分别包括一独立的线程。

25.
  一种在一网路上测试包丛集组的发送装置,其特征在于,所述装置包括:
一计算机处理器;
一网路界面;
一可访问处理器的程序存储器,其包括测试包定序器软件,所述软件又包括在一操作系统控制下,由处理器执行的一系列指令,指令如由处理器执行会使处理器:
建立一第一输入/输出完成端口;
产生多个测试包;
将发送测试包的请求转到第一输入/输出完成端口;以及
经由在第一输入/输出完成端口控制下的网路界面在网路上发送测试包。

26.
  根据权利要求25所述的装置,其特征在于,测试包定序器软件包括一与第二输入/输出完成端口关联的测试控制器层及一与第一输入/输出完成端口关联的指令控制层,其中测试控制器层设定为经由第一输入/输出完成端口传送指令到指令控制器层及指令控制器层设定为经由第二输入/输出完成端口传送原始数据到测试控制器层。

说明书

测试包置于一数据通讯网路上的方法和装置
技术领域
本发明涉及测试包在一网际协议网路上的放置,更具体地说,其涉及封包和封包丛集组(burst of packets)精确置于一网际协议网路上和/或接收及时戳封包和封包丛集组的方法和装置。本发明可应用在网路测量及诊断的领域中。
发明背景
一网际协议网路的性能由带宽和以其把资料包由网路上某一位置传递到另一位置的可靠性来估量。一典型网际协议网路包括许多由数据传输链路互连的封包处理器。封包处理器可包括路由器,转换器,桥接器等等。数据传输链路可包括多种传输媒体如光纤,无线联接,有线联接,电话线联接等等。数据可以通过采用不同的网路协定经数据传输链路传递。
一计算机网路的运作依赖许多互动因素包括通路,其中网路上配置不同封包处理器,数据传输链路的种类,网路中传输链路的用法等等。任一网路组件之缺陷或错配皆可严重影响网路的性能。目存有一些不同的量度网路性能及辨识网路性能低于标准的原因的方法。有些方法把封包,或封包丛集组沿着一个或多个经网路的通路发送。关于网路性能的资料可透过观察封包在网路间传播时的特征而获得。
一网路分析软件的实例为一名为“Pchar”的共享软件公用程序,其使用测试包量度网路性能。Pchar在以UNIX为操作系统的计算机上运作。Pchar由监控测试包在网路传播时的散布情况,获取沿一首尾相连的经网路的通路之带宽宽度,反应时间,及传输链路损耗。Pchar限于测试高速网路因为其只可相当慢地把封包置于网路上。Pchar使用标准应用编程接口(APIs)控制一网卡把封包置在网路上。这导致了测试包的间距较宽。
PCT专利公开号WO92/22967描述一在一以封包为基础的网路上用“环路”测试,由观察网路对测试包的影响鉴别网路特性的方法及装置。
目前有一些以硬件为基础的网路协定分析器,其可放置封包在网路上。这样一些协定分析器包括专用硬件及通常非常昂贵。
目前需要一些能使封包和封包顺序准而快地放置在一网路上的方法及装置。尤其需要的是这这样一些方法及装置能利用一般常用及有成本效益的硬件来实现。
发明内容
本发明的目的在于提供一种准确地放置封包在一数据通讯网路上的系统。该系统可包括一作普遍用途的计算机,其在一包括一图形用户界面的非实时操作系统内运行一应用程序。例如,本发明一些实施例包括一在微软视窗2000操作系统内运行的软件应用程序。
本发明的另一目的在于提供一接收及时戳测试包的方法及装置。本发明的装置可包括一准确地放置封包在一数据通讯网路上的系统,其与一接收及时戳返回测试包的系统成为一体。
以下,将进一步叙述本发明特征。
附图说明
本发明并非仅限于附图中所示的实施例:
图1A为一网路示意图,其中封包可以按照本发明的方法传递。
图1B为一根据本发明一些实施例的测试包定序器的示意图。
图2为一说明一测试包顺序的方块图。
图3为一Van Jacobson示意图,其所示为如何按照通过的传输链路的容量变化改变四个封包的丛集组的时间分布。
图4所示为瓶颈如何可以影响网路性能的示意图。
图5为一根据本发明一实施例的一系统示意图。
图6为一根据本发明一实施例的测试包定序器的操作程序图;以及
图7为一根据本发明一实施例的测试包定序器软件的统一建模语言(UML)分层的C++类别图。
具体实施方式
在以下整个叙述中,为了对本发明有较全面的理解,提出了一些具体的细节。然而,没有这些细节本发明仍可实现。在其他情况下,为避免使本发明有不必要的模糊,将不对众所周知的元件作详细的叙述。因此,说明书及附图应当作一种说明而不是一种限制。
以下叙述一根据本发明一实施例的测试包定序器包括了一运行微软视窗2000操作系统的计算机。本发明一实施例的一测试包定序器也可在其他提供一完成端口机制的操作系统中实现。该测试包定序器产生一个个封包和/或准确分隔开的测试包组(丛集组)并把测试包和测试包丛集组置在与计算机联接的数据通讯网路上。
测试包定序器能测定单个测试包离开和返回时间。在一些较佳实施例中,测试包定序器能自动测定那些通过整个通路以及只通过以通路中继节点为终点的部份通路的封包的离开和返回时间。
图1所示为一网路10,其包括一网路装置14配置(网路装置可包括,例如,路由器、转换器、桥接器、集线器等等)。网路装置14由数据传输链路16互连。数据传输链路可包括实际媒体部分例如电缆,光纤电缆等,或传输型媒体例如无线电传输链路,激光传输链路,超音波传输链路等。
一测试包定序器20和网路14连接。测试包定序器20包括一主机22(图1B),其包括一网路界面24及在一操作系统28下使测试包定序器软件26运行。操作系统28可为微软视窗操作系统的某一版本例如微软视窗2000。
使用测试包定序器20地一种方式应当产生一个或多个测试包顺序,将网路14上的这些测试包传送到一个目的地,例如一末端主机18,以及测定每个测试包从测试程序装置20发送其被测试程序装置20接收到的时间。
测试包定序器20产生封包32组(或丛集组)30。如图2所示,在丛集组30中每个封包32大小值为S。在乙太网中,典型S值约在46至1500字节的范围中。在丛集组30中的封包被依次发送。每个封包在S/R的时间内被完全发送,其中R为封包资料被放在网路上的速率。在一丛集组30中顺序毗连的封包32以Δt0时距相隔。在多数情况下,要求丛集组32中的封包彼此间隔很小(所以Δt0大约相等S/R)。通常,丛集组30所有封包32的S和Δt0不需为固定值,纵使可很方便地使丛集组30所有封包32的S和Δt0值相等。
丛集组30封包沿着一网路通路34发送。在所示的实施例中,网路通路34由测试包定序器20延伸到一末端主机18及返回到测试包定序器20。通路34可能,例如,为一通路在其上主机22上一应用程序35的数据会经此传送到末端主机18。当封包32沿通路34透过网路装置14和数据传输链路16时,个别封包32可因不同时间而延迟,有些封包32可在传输中丢失。
沿通路34的网路装置14和数据传输链路16的种种特性可由观察丛集组30中不同封包32的时间距如何改变及观察丛集组30中封包32的损耗模式。
例如,一首尾相连通路34的带宽可由监察丛集组30中封包的间距估计出来。如图3和4所示,如果封包32以足够小的间隔时间发送,那么通路34所存在的瓶颈36(即一低容量部份)会增大毗连封包32之间的间距。间距增大会是封包大小S和瓶颈36容量的函数。
考虑简单的例子,一含二个封包32的丛集组,每个大小为Spkt。如果二个封包以Δt0(也就是在第一个封包发送结束和紧随之第二个封包发送结束之间所化时间为Δt0)间距发送,当它们回到测试包定序器20时,它们的间距为Δt1。如果Δt0数值大,瓶颈36将不会对Δt1产生值得重视的影响。然而,如果Δt0数值小以致Δt1>>Δt0,可使用以下推导公式作一带宽估算:
           BW≈Spkt/Δt1                             (1)
方程式(1)只提供一个带宽粗略估算。更精确的估算可使用较大封包丛集组或使用较详细计算法,对许多返回封包之间的间距进行统计分析而得出。
通常,靠丛集组30封包32于发送时及其在一网路14上节点被接收到时彼此间的时间距的差异来获得关于网路14的准确资料,这要求封包32要以准确调节的时间距来发送。对于某些类型的测量,封包32一定要以一间隔紧密的丛集组发送,在其中毗连封包之间的时间距是非常小的。
如果封包32最初不以准确调节的时间距在网路上发送,那么以测出的Δt1值作为获得关于网路的资讯基础,会变得较不可靠。由沿着一通路34上带宽变化而引起的Δt1变化幅度取决于网路14的数据传输链路的速度,除了其他许多因素之外。表I概述当使用1500字节去测量网路链路速度时,典型Δt1变化范围。例如,在网路14包括一10Mb/s乙太网路,则Δt1变化约为1ms。如果网路14包括一1Gb/s乙太网路,则Δt1变化约为10μsec。

    表I-时间变化范例  网路种类  速度(Mbs)  Δt1(μsec)  10baseT  10  1200
    T3    45    267    100baseTX    100    120    OC-3    150    80    OC-12    622    19    GigEthernet    1000    12    OC-48    2488    4.8

为了方便带宽测量,应该这样发送封包32以致于毗连封包32之间的时间距Δt0,与和表I中列出的可适用时间(或一个相似的时间常数,如果某种网路技术未在表格I中列出来的话)比较为小。这需要把Δt0的分辨率调节到比表格I中为Δt1给出的数值为高。如果封包32实际以和预期不同的时间来发送(也就是Δt0有相当出乎预期和实际上不可预知的变化)的话,则对于不同的丛集组,带宽估算可以有很大的偏差变化。
比较理想的是封包沿通路34传播之后再探测封包的系统,要能够测定毗连封包之间的时间距,分辨率则要比表I中为Δt1给出的数值为高。用操作系统APIs的典型方法是不能以对带宽及其他特性的高精确度测量足够高的分辨率调节封包发送时间。通常,这样一些方法也同样不能以预期的精确度去测量封包被接收的时间。
网路14的速度愈高,沿着通路34的传播延迟(单向传播时间)就愈短,封包32发送时就它们的间隔则愈小。以大Δt0送出的封包32是不能够测量高速数据传输链路的完整带宽。
本发明的较佳实施例中,测试包定序器20包括软件26,与其在同一操作系统中并且在有与采用网路14及对此被测参数有关联的应用程序35相同的进程的情况下,在同一硬件运行。软件26以来自操作系统28的最小干扰的方式去发送封包32。软件26最好对在计算机22运行之其他软件的操作起最小的干扰。
软件26可能被整合,或被建构以应答来自网路14上使用数据通信的应用程序35的请求操作。可在一独立系统中对由测试包定序器20收集的数据进行分析。例如,图5所示为一包括一测试包定序器20的网路测试系统的可能编组方式。在2001年11月22日提出的,题为「签名匹配法及网路诊断装置」的共同拥有的共同待批的专利申请中叙述了这样一种系统的一实例,本文列作参考文件。所示的实施例中,测试包定序器20能产生紧密调节封包32的丛集组30,其沿着一以测试包定序器20为起点及终点的通路34传播。测试包定序器20也能探测返回的封包32及搜集有关测试包32在网路14传播的资料。
测试包定序器32可在测试伺服器40的控制下操作。测试伺服器40使测试包定序器32执行一指令序列。测试包定序器32执行指令,有些会使测试包定序器20产生特定测试丛集组30封包32,以及把那些测试包32传播的资料41返回到测试伺服器40。
作为一逻辑单元的测试,可包括全属相异类,同类,或混合类的多种指令。每个类型的指令规定测试包定序器32所采取的某些功能。通常,每个指令要求一个或多个封包由测试包定序器32送出,接收和戳记时间。不同类型的指令可规定封包被送出及在接收后即被处理的特定方法。指令可包括:
·一连接性指令以检查与一目的地的连接性;
·一路由追踪指令去找出到一目的地的一网路通路;
·一最大传输单元(MTU)指令去找出通路的最大传输单元值和潜在的相关冲突;以及
·封包(datagram)和丛集指令去搜集封包和丛集组沿一特定网路通路传播的统计资讯。
一测试可由一组测试设定限定。每组测试设定可限定,例如:
·一组在测试中所包括的指令;
·执行指令的顺序;
·每个指令执行应该重复的次数;以及
·每个指令的指令设定。
 指令设定规定了影响每个指令的操作的参数。丛集指令设定可规定,例如:
·丛集组的发送地址;
·丛集组中的封包数量;
·丛集组中的封包大小;
·丛集组中的封包内容;
·每个封包要被重复送出的次数;
·封包之间的相隔时距;
·预期所有封包要在其内返回的时间;
·如果指令失败,要采取的行动;等等。
不同测试的测试设定可储存在一资料库42。一想进行测试的用户可在资料库42找出一套合适的测试设定。否则,用户可在资料库42寻取一套测试设定及藉由把错误的设定改写成所要求的测试作出修改。在不需重新编译任何双元代码的情况下可改变错误的设定。另一选择为,一用户可建立一套全新测试设定以进行预期的测试。
一用户可使用一用户界面,最好使用一图形用户界面46去选择一要进行的测试。图形用户界面46让用户启动测试,获取分析伺服器44和测试伺服器40的状态资讯,以及观看测试结果数据47。所选测试的测试设定由一测试伺服器40提供给测试包定序器32。测试包定序器32藉由执行按测试设定所定的测试指令来执行测试。在适当时,如在执行每个指令后,测试包定序器32把有关测试结果的原始数据送给测试伺服器40。原始数据可包括,例如,执行指令时所送出的所有封包的离开及返回时间。
如果一执行测试的通路34包括有许多路程段,测试包定序器20可当每个路程段末端的网点为一末端主机,自动地重复测试。这使收集的数据可被用来分析通路34中每个传输链路的性能。
测试伺服器40提供原始数据41给一分析伺服器44。分析伺服器44处理原始数据41来获取整理后的测试数据45。整理后的测试数据可包括由原始数据41衍生的统计资料。分析伺服器44处理整理后的测试数据45来获取测试结果数据47。测试结果数据47可包含,例如,终点及沿通路34的中继网点的网路参数估计例如:
·沿着通路34的不同数据传输链路的带宽;
·通路34上不同数据传输链路的利用率;
·时基误差;
·传播延迟;
·队列深度;和/或
·其他网路性能指示器。
测试结果数据47也可包括有关不同已探测情况的资料,例如:
·半—全双工通信冲突;
·MTU冲突;及
·影响网路的其他情况。
在完成一测试前,较为理想是提供一中间结果给用户。分析伺服器44可在测试进行中由整理后的测试数据45得出中间测试结果数据47及将其传送给图形用户界面46,然后图形用户界面46显示并更新计算的数据及把一进行中测试的状态指示供给用户。一测试完成后分析伺服器44紧接着将最终整理后的测试数据及测试结果数据储存于资料库42。
一图形用户界面46用户可启动及监控由同一或不同测试包定序器执行的多个并行的测试。用户也可使图形用户界面46向分析伺服器44要求及显示先前所执行测试的测试结果数据。
测试包定序器软件26即使在一如视窗2000的非实时操作系统之下运行,处理运行中进程对资源的要求以使资源共享最优化时也可起作用。在这样一些操作系统中,难使封包32以小的间距可靠地发送出去或正确地戳记返回封包32的抵达时间。在这样一些操作系统以传统编程技巧写出的软件中,封包32的发送(和/或接收封包32的时戳)可被某些因素无法预测地推延,例如:
·当计算机22中央处理器运算时在线程间频密更换时(视窗2000中约为每20毫秒)的中断和处理时间不规则延迟;
·线程内容切换的时间较长(视窗2000中约为10至20微秒);
·与用户模式和核心模式间转变的相关额外系统开销(视窗2000中约为1000个中央处理器指令);
·由于应用数据所指定的存储器的分段而使检索或存储数据延迟;
·在视窗2000或类似操作系统中提供的标准应用编程接口(APIs)并不保证对封包传输细节有足够的控制;
·因数据与存储器页面边界未对准而引起的较慢数据存取;
·如果操作系统把存储器中的数据转存入系统页档案,处理出现的缺页所化的时间;
·过度分享的默认应用程序堆阵用于储存封包数据;
·由C++编译器提供的标准异常处理机制用于异常处理,其产生的软件包括很多与能够解开目标物的建构异常框架有关的指令;
·在操作系统插件层出现,并因默认用于达成平滑的数据传输的额外封包缓冲;
·因其与线程时间片边界未对准而引起的时限紧急程序的分段化;
·因网路界面可能停止处理未决的结果,以致时戳有相关失准及减慢;以及
·时限紧急和/或处理器强功能的非优化普通代码。
在视窗2000或类似操作系统中提供的标准应用编程接口(APIs)并不保证任何性能级别或者对封包传输细节作控制。
图6所示为功能层的可能构成,测试包定序器软件26可被分成功能层以及示出在那些功能层之间的一资料和执行过程控制流程。测试包定序器软件26包括一插件层26A,一测试控制器层26B和一指令控制器层26C。每层配置一输入/输出完成端口27及一或多个线程,其中层提供它的功能。每个输入/输出完成端口27包括一操作系统核心物件。在所示的实施例中,输入/输出完成端口27A,27B和27C分别与插件层26A,测试控制器层26B和指令控制器层26C相联。当输入/输出完成端口27其中之一收到来自一进程的通知(或来自一操作系统的通知,其与完成端口联系的一输入/输出频道上的活动有关的一通知的活动有关),完成端口把通知列队直到和其联系的线程可用,然后完成端口把所接收的数据传给联系的线程。
至少通过有关的输入/输出完成端口27实现所有这些层中的每一层的时限紧急输入和输出功能。在所示的实施例中,所有与其他层或系统构件的联通包括关于发送及接收封包的资讯经由完成端口27进行。
图7是一统一建模语言(UML)分层的C++类别图,其表示一实现功能层26A,26B和26C可行方法。
插件层26A把一界面供给一分析系统(图6未示),其处理由测试包定序器20获得的原始数据41。如图5所示分析系统可包括一独立测试伺服器40,其与一分析伺服器44联通,一与测试包定序器20整合的软件模块,在一计算机上进行或分布在一或多台其他计算机上的独立软件,等等。
在图5的实施例中,插件层26A接受来自测试伺服器40的进行测试请求50。每个测试的性质由包含在相应请求50中的测试设定所规定。插件层26A将请求50传递给测试控制器层26B。这可经由输入/输出完成端口27B进行。当原始测试数据出现,例如,在每个指令测试完成后,测试控制器层26B将原始测试数据41传回给插件层26A。这可经由输入/输出完成端口27B进行。插件层26A将原始数据41传递给测试伺服器40。
每个测试的执行由测试控制器26B控制。测试控制器层26B可控制多个并行测试的执行。在接受一进行测试的请求50后,测试控制器层26B确认测试的测试设定及把测试设定解析成单个指令,然后测试控制器层26B将由测试设定所定的个别指令按顺序送给指令控制器层26C。这可经由输入/输出完成端口27B进行。
在较佳的实施例中,测试包定序器20能执行指令,经一通路34,向着目的地装置有中间点以及经一些较短通路,通路上测试包定序器20和目的地装置之间的网路节点有中间点,自动发送封包和封包丛集组。在这样的实施例中,测试控制器层26B也控制由指定控制器层26C在较短通路上执行指令的顺序。
在收到来自指令控制器层26C的通知:有关由一特别指令发送和接收封包的数据已准备好作分析之用,测试控制器层26B可从由指令控制器层26C可得到的数据中提取原始测试数据41及将由该指令产生的原始测试数据41送给插件层26A。
指令控制器层26C执行从测试控制器层26B收到的指令。执行每个指令通常包括发送一测试封包(datagram)或测试包丛集组32,以及接收和时戳回到测试包定序器20的测试封包32。已发送测试包32的特性和数量由为那指令的指令设定所规定。
当所有测试包32返回后(或封包32发送时间后已超过一下限值),指令控制器层26C通知测试控制器层26B(藉由输入/输出完成端口27B传送一通知)有关测试包的资料已可得到。通知可包括一有关测试包资料的存储器位置的一个指示器。可选一足够大的下限值以使在下一封包抵达时,转回一指令控制器层26C线程所需的时间不会太过影响到戳记下一封包抵达时间的准确度。例如,下限值可定为比在测试控制器层26B完成一操作及把控制权转回给一指令控制器26C线程所需的时间大25倍。
指令控制器层26C异步地发送及接收封包。那可消除在递交发送下一封包的请求前,涉及要等待发送之前封包的应用程序层次完成的非必要的封包间的时间距。
如上面所述,软件26最好使用输入/输出完成端口去发送及接收测试包32。每个输入/输出完成端口包括一能处理多个并行的输入/输出请求的操作系统核心物件。在应用程序及网路协定层之间中,输入/输出完成端口以核心模式起作用。每个输入/输出完成端口27可与一或多个待处理的插件其数据以及为处理关于完成输入/输出的请求通知要把执行控制权转给一或多个线程相关。完成端口27使其他线程把附有数据的清楚的应用程序层次上的通知传给与输入/输出完成端口关联的线程。
每个输入/输出完成端口27在内部异步地把来自用户线程的输入/输出请求编队。当完成端口转换成核心模式时,其执行队列的请求。因为完成端口以核心模式操作执行队列的输入/输出请求,执行请求减少中断。请求能很快地被执行因为完成端口27通常比软件26的用户线程较快地存取协定驱动程序。这使发送封包32的间隔非常小。
当一输入/输出完成端口完成一输入/输出请求,其会通知一与完成端口关联的最先可用线程并把执行控制权转给那线程。这使那线程能够处理所完成的请求。那线程可在其他处理功能中获得所完成请求的一时间戳记。
在本发明较佳实施例中,指令控制器层26C藉由在进入一时限紧急的代码之前释放目前的时间片权(例如,仅仅在经由输入/输出完成端口27发送一组测试包前)使封包发送程序与线程时间片匹配。对于在一指令之有效范围中有许多封包的一组30封包32,一线程时间片(视窗2000中约为每20毫秒)足以让所有封包在一时间片中通过完成端口27。这使完成端口27C将能在下个核心模式时间片中执行请求发送所有测试包,以致于测试包在网路上发送时封包间间隔很小的可能性极高。
把软件26以清楚的和逻辑一致的方式分成功能单位,可帮助调节测试包定序器软件26的性能,以使更好地控制封包在一网路上放置及为封包时戳方面。
在本发明较佳实施例中,当指令控制器层26C正在发送及接收一特定指令封包时,它实质上所做的只不过是对离开的封包戳记时间,对到达的封包戳记时间以及储存有关一合适的数据结构如一后续处理单式阵列的封包离开和到达的资料。测试控制器层26B在休眠及闲置中,直到指令控制器层26C有关测试包数据已可被处理的一个通知传送给它才将其特别地唤醒。
指令控制器层26C最好只有一线程以避免额外的线程上下文切。如果在把一组封包送到输入/输出完成端口中,碰巧收到一或多个封包,因为输入/输出完成端口27C把完成通知传给唯一的指令控制器线程,故而操作系统28不需费时去启动其他线程去处理收到的封包,这使到达的封包在测试包定序器20上收到后,立刻被戳记时间。
测试包定序器软件26可容许指令控制器线程接收测试包与分析有关测试数据之间重迭,以由测试控制器线程提取原始测试数据。指令控制器线程可包括一「开始分析」时间值。如果所有测试包都未回到测试包定序器20并且由于以目前指令发送最后的测试包超过那「开始分析」时间值,指令控制线程把可开始分析目前指令的测试包的通知送给测试控制器线程。「开始分析」时间值可被设为,例如,至少比测试控制器线程完成其时间片及让出执行控制权给指令控制器线程所需的时间长25倍。这使测试可更快地执行。测试控制器线程最好时常试着释出其之时间片。这使在一封包到达而测试控制器线程正执行的情况下在处理返回测试包的延迟降至最小。
指令控制器层线程可被赋以「时限紧急」的优先权。这最有可能保证指令控制器线程在送接封包时不中断以及指令控制器线程在接收阶段取得执行控制权,而接收阶段可与测试控制器线程作封包分析工作重迭。
指令控制器层26C最好配置插件通过插件送接测试包,在操作系统抽象插件层中不用中继缓冲。操作系统通常设置一完全新的插件,在默认时使用这种缓冲。抽象插件层提供这缓冲是为了以额外所需时间作代价使数据传输更顺畅。未设定此选项,协定驱动器直接由封包缓冲器读写封包数据。指令控制器层26C最好锁定储存封包数据的存储单元。
指令控制器层26C最好记录一些预定返回的测试打包32。在执行下一指令前,控制器层26C检查是否有足够的待决接受请求以处理所有可在执行下个指令期间收到的测试包32。如不够,指令控制器层26C产生并送给完成端口要求一些新接受请求,所谓足够的数量指是较实际封包数目多的量,计及可能出现的「外来」封包。这在以后可节省时限。测试先建立,或已经为其预先建立足以接收返回的测试包32的缓冲器。缓冲器包括一能接收所有预期返回测试包32的最少数量的接收缓冲器。
命令控制器部件26C最好使用高分辨率硬件戳记时间计时器。硬件计时器提供高度时间分辨率。在一装有800百万赫兹奔腾III处理器的计算机上分辨率可以少于0.3微秒。
测试包定序器软件26最好使封包数据的配置存储单元为相等大小以消除存储堆碎片化。这也加快存储的存取时间。
测试处理部份26C最好为封包数据维持一专用存储堆。这有助避免如果默认应用程序堆被过度分享及碎片化所产生的额外开销和延迟。专用堆可由测试包定序器软件26配置,以作为一大小和操作系统28使用的存储器页面大小相等的配置单元。例如,如操作系统是视窗2000则其页面大小可为4096字节。这使堆数据和存储页边界对齐及通过排除因读写未对齐存储数据而需用的指令,减少每个存取存储器所需的时间。
测试包定序器软件26最好设一比默认工作进程大小为大的应用程序工作进程大小。在视窗2000中,工作进程大小的预设值为4兆字节。超过应用程序工作进程大小的数据可藉操作系统28卸入一页面文件内。如有一尝试取回或修改已卸入一页面文件内的数据则会产生一缺页过失。使用一较大应用程序工作进程大小可将在存取存储器时发生缺页过失的机会减到最少。
测试包定序器可启动指令的执行,就算先前执行的指令所送出的测试包未全数返回。为处理此事,测试控制器层26C可接收一「休眠」时间值为一指令设定的一部份。如果以目前执行指令自接收最后封包后所逝的一段时间已超过「休眠」时间值,测试控制器层26C可开始执行下一指令。选择休眠时间的值要足够长以使所有测试包在其内返回。在合适设定休眠时间下,在执行下一指令时,封包到达是不太可能的。整个测试的执行也不因极端地(反常地)延迟或遗失封包所延迟。
休眠时间可自动调整。其一途径是测试控制器层26B以目前测试中通路34上的封包平均来回时间动态地调整休眠时间。例如,休眠时间可设定为在目前测试中网路装置中相同大小的封包的平均来回时间的倍数。倍数可为,例如,平均来回时间的1.5倍至3倍的范围中。平均来回时间可藉由先前送出的一些封包(例如,10个最近期送出的测试包)的来回时间求平均值来获得。
另一量度休眠时间的途径为,在上一个接收到的封包被接收时,测试包定序器软件26可保持休眠时间,其规定一段时间,在其终结时所有丛发的封包理应返回。休眠时间值部份可基于一或多个丛集组30中的封包32,封包32的大小S,以及通过通路34的估计时间来设定。
测试包定序器软件26最好不使用由C++编译器为处理异常状况提供的异常处理机制。标准异常处理机制在解开目标物件方面提供相当大的系统开销。在本发明较佳实施例中,这一系统开销是不必要的。而测试包定序器软件26可使用结构化异常处理法(SEH)。
一原型测试包定序器包括软件,如上所述,运行在一备有一800百万赫兹奔腾III处理器的计算机上,在视窗2000操作系统下计算机藉由3Com的10/100网路界面卡(NIC)与一100百万字节的乙太网连接。测试包定序器用来发送1500字节封包丛集组。采用一SmartBits网路分析器测量毗连封包之间的出发时间。已发现毗连封包之间的出发时间为123.5±0.05μ秒。这表明,发送两毗连封包之间基本上没有任何间隙。
发送测试包丛集组的所揭示系统和方法及接收和时戳收到的测试包的所揭示系统,如上所述般可一起或分开使用。这些系统其一或两者皆可被整合入一以软件为基础的系统,可被诸如网路工程师及经理使用,于他们的网路作故障检修和分析之用。这样一些系统也可作为在行程安排及内容选择上作网路决策的系统元件,其中要求一个点到点网路的非常快速及准确的特性。
测试包定序器软件可作为一完整英特网性能测量系统的部件。软件可作为一软件产品许可给最终用户或可作为一种服务来提供存取由软件供给的计算结果。
本发明的特定实现包括计算机处理器,其执行软件指令使处理器完成本发明的一方法。本发明也可以一程序产品的形式提供。程序产品可包括任何媒体,其承载一系列计算机可读的信号,包括当中一计算机处理器执行时,使数据处理器执行本发明的一方法的指令。程序产品可以各式各样形式中的任何一种形式。程序产品可包括,例如实质媒体如磁性数据存储媒体包括软盘,硬盘,光学数据存储媒体包括唯读光盘,数字化视频光盘,电子数据存储媒体包括唯读存储器,快闪随机存取存储器,等等或传输型的媒体像是数字或类比通信连接件。
以上所述涉及的构件(例如一个软件模块,处理器,组件,器件,电路,等等),除非另有所指,所提及的那构件(包括涉及的一″装置″)应看作那构件的等同物,即实现所述构件的功能的任何构件(即是,其功能上是相同的),包括在结构上和所述构件不相等但其可实现在本发明所示实施例中的功能。
正如根据上述的揭示本领域的技术人员就会明显地看到的那样,在不脱离本发明的精神或保护范围的情况下实施本发明可以作出许多替换和改型。例如:
·在实现细节作合适改编,本发明可用在视窗2000以外提供的操作系统下,或被修正后提供输入/输出完成端口。
因此,本发明的保护范围将根据由以下权利要求书所限定的内容构成。

测试包置于一数据通讯网路上的方法和装置.pdf_第1页
第1页 / 共25页
测试包置于一数据通讯网路上的方法和装置.pdf_第2页
第2页 / 共25页
测试包置于一数据通讯网路上的方法和装置.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《测试包置于一数据通讯网路上的方法和装置.pdf》由会员分享,可在线阅读,更多相关《测试包置于一数据通讯网路上的方法和装置.pdf(25页珍藏版)》请在专利查询网上搜索。

一测试包定序器在一计算机网路上发送测试包,所述网路包括一计算机其在一操作系统下运行软件。所述软件使用输入/输出完成端口发送封包和封包丛集组。封包可通过一以测试包定序器为终点的网路通路上发送。所述软件也可接收及时戳返回封包和封包丛集组。所述测试包定序器可接收输入/输出完成端口中的封包。所述软件可有一测试处理器线程,其在传送封包丛集组前的瞬间终结其之目前时间片,所以全数封包都在测试处理器线程的单一时间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1