用于网络数据路径质量的非协作测量方法

文档序号:7908868阅读:283来源:国知局

专利名称::用于网络数据路径质量的非协作测量方法
技术领域
:本发明涉及通信网络中网络路径质量的测量方法,更具体地说,涉及一种用于从路径的单个端点测量数据路径质量的方法和设备。
背景技术
:对于数据中心、因特网服务提供者、网上交易、因特网行为的科学研究以及许多其他目的来说,测量通信网络(特别是因特网)的端到端路径质量的能力是至关重要的。可通过丢包、包乱序(包的接收顺序与其发送顺序不同)、延时以及其他路径度量来测量路径质量。测量这些路径度量的方法被粗略划分为主动测量和被动测量。主动测量方法包括在设计成仅用于路径测量目的的网络路径的两个端点之间发送网络包。被动测量方法并不发送任何网络包,而是分析采集到的网络包来推测网络路径质量。许多主动测量方法需要网络路径的两个端点之间的协作,并且需要在这两个端点上安装特定的程序或者装置。通过控制这两个端点,这类方法可以测量许多路径度量,并控制和校准测量精度。然而,因为网络路径一般跨越多个自主网络,需要控制两个端点的需求严重限制这类方法的使用和应用范围。另外,对于不同网络应用和环境,安装所需的软件或装置也是不容易的。非协作测量方法不会受到这一限制,其允许单个端点(或测量节点)进行海量网络路径的测量。非协作测量方法的测量节点发送探测包(probepacket)以获得来自远端端点(或节点)的响应包以用于路径测量。虽然非协作测量方法已经被研究和发展多年了,但是其依然受到至少两个主要问题的限制。第一个主要问题是绝大多数现有的方法并不能提供可靠的测量。首先,他们发送的探测包(或其发送速率)常被看作是异常的,从而被路径上的防火墙、入侵检测系统和其他安全装置滤除。因此,将不会有响应包返回到测量节点。第二,某些方法的探测包可以成功地获得响应包,但是这些响应包不能包含路径测量所需的信息。第三,虽然某些方法的探测包可以成功地获得包含路径测量所需的信息的响应包,但是这些测量结果不能反映正常数据包所经历的实际路径质量(也就是,数据路径质量)。对于第一类不可靠问题,众所周知的是,现在路由器和端系统并不总能响应来自ICMPPing以及其他依赖ICMP包的测量工具所发出的(高速率的)ICMP数据包,因为ICMP包常被应用在各类网络攻击中。对于使用TCPSYN包、TCPRST包和向封闭端口(closedport)发送UDP包的测量方法也受到同样的制约。例如,S.Mvage在“Ming—种基于TCP的网络测量工具”(USENIX会议文集,因特网技术和系统1999(Sting:aTCP-basedNetworkMeasurementTool,"Proc.USENIXSymp.InternetTechnologiesandSystems1999))中提出Ming。其通过发送一系列具有零广告窗大小的乱序探测TCP数据包来测量正向传输路径(或正向)或反向传输路径(或反向)丢包统计。这些高度异常的数据包很容易被包过滤机制屏蔽掉。作为另一实施例,X.Luo和Rjhang在“用于端到端包乱序测量的新方法”(ACM/USENIXIMC2005会议文集)("NovelApproachestoEnd-to-EndPacketReorderingMeasurement”Proc.ACM/USENIXIMC2005)中提出的指示字(POINTER)通过4发送具有不可接受的TCP序列(unacceptableTCPsequence)和确认号来测量正向传输路径和反向传输路径包乱序统计。对于第二类不可靠问题,R.Mahajan,N.Spring,D.Wetherall和T.Anderson在“用户级因特网路径诊断”(ACMSOSP2003会议文集)(“her-LevelInternetPathDiagnosis,”Proc.ACMSOSP2003)提出了Tulip。Tulip使用UDP包和ICMP包来定位(localize)网络路径上的丢包和包乱序事件。其丢包和乱序的测量都是基于位于路径上的路由器和远端节点支持因特网协议(IP)的标识字段的连续增量的假设。然而,对于此时的许多端系统和路由器来说,该假设并不成立。第三类不可靠问题涉及使用非数据探测包进行测量的方法。非数据探测包或响应(包)指不被用于传送网络应用的数据的网络包,如ICMP包、TCPSYN包、TCPRST包和纯TCP确认包(TCPACK)的包。非数据探测包和响应包并不能准确测量数据包所经历的网络路径质量,因为路由器和端系统对数据包和非数据包进行不同的处理。这两者之间的差异是相当显著的。除了基于ICMP和UDP的方法,Sting、P0INTER、和R.Sherwood和N.Spring在“在TCP边车(sidecar)中巡测因特网”(ACM/USENIXIMC2006会议文集)(〃TouringtheInternetinaTCPSidecar,“Proc.ACM/USENIXIMC2006)中提出的TCP边车也面临这一问题,因为它们要获取TCPACK以用于反向传输路径测量。上述方法均面临可靠性问题,这是由于它们通过非数据信道(在数据传输协议中的单个或多个控制包)或异常协议行为来测量数据路径的质量。它们的测量结果容易被路径上的中间节点(intermediarynode)出于善意(如监视袭击)或恶意(如操纵测量结果)篡改。现有技术的第二个主要问题是,它们提供了一组非常有限的路径质量度量。由于不同的网络应用需要经历具有不同质量的网络路径,因此使用尽可能多的度量来测量路径质量是至关重要的。三种限制导致了有限的质量度量组。首先,许多非协作方法,如Ping及其变形的方法,可以测量往返路径的度量,而不能测量单向路径的度量,例如在正向传输路径中发生的丢包(也就是,从测量节点到远端节点),和在反向传输路径中发生的丢包(也就是,从远端节点到测量节点)。因为网络路径通常是非对称的,并且在它们的通信量中,许多应用也是非对称的,所以正向传输路径的质量和反向传输路径质量在应用性能上的影响是不同的。第二个限制是现有方法一般仅可测量一种或两种类型的质量度量。例如,Ping可测量往返延时和往返丢包,sicbping(基于TCP边车框架的协议)可以测量往返延时,Sting可以测量正向传输路径和反向传输路径的丢包统计,POINTER可以测量正向传输路径和反向传输路径的包乱序统计。虽然Tulip可测量丢包、包乱序和排队延时,但是其也面临上述的可靠性问题,如其使用不同的探测包来测量丢包和乱序,但其不能测量所有的丢包场景。虽然可以使用多个工具来获得更多组质量度量,但是实际上该方法效率很低,难以调整且易于出现测量和配置错误。第三个限制是现有方法不能测量不同响应包大小的路径度量。虽然Ming可以测量单向丢包,但是其仅可测量TCPACK的反向传输路径丢包,该TCPACK是很小、大小固定的包。POINTER也出现同样的限制,其获取TCPACK来测量反向传输路径包乱序。众所周知的是,大包更容易出现丢包,而小包更容易出现包乱序。由于不对响应包大小进行控制,现有方法仅能测量特定包大小的路径度量。使用同一探测来测量多个度量是一个难题,因为探测包必须在返回的响应包中获取足够的信息用于路径质量测量。使用ICMP不能获得该目的,这是由于响应包包含的信息非常有限。使用TCPSYN,TCPRST和TCPACK也不能获得该目的,这是因为单个这类包不能测量多个度量,并且它们的大小也不能被测量节点所控制。结果表明,现在缺乏可测量多种质量度量并确保足够的测量精度和可靠性的方法和工具。
发明内容本发明提供了从路径的单个端点(其可称为测量节点)同时测量网络路径多个质量度量的新方法和新设备。测量节点发送由多个探测数据包组成的探测以获取至少一个来自测量路径的远端端点(或节点)的响应包。为实现本发明,该探测的探测数据包必须一个接一个地发送而不能有延时,或者延时不会引起从远端节点发起的包重传。而且探测数据包的大小可以由测量节点来设置。探测和响应数据包携带正常网络应用的数据。响应数据包的可能顺序是可预先确定的,并且提供足以确定各个探测包的传送状态和每个新响应数据包的传送状态的信息。探测数据包能够以与它们的发送次序相同或不同的次序接收。此外,每个探测数据包都可以在正向传输路径上接收或丢失,每个响应数据包都可以在反向传输路径上接收或丢失。如果多个响应数据包被接受,它们的接收次序可以与它们的发送次序相同或不同。该包传送状态可用于计算正向传输路径和反向传输路径丢包统计、正向传输路径和反向传输路径包乱序统计和每一数据包的往返时间(RTT)。作为本发明的第一个重要方面,所述探测数据包和正常网络应用的数据包无法通过包头值进行区分。此外,探测数据包可根据正常网络应用的协议来设置以获得响应数据包。根据以上这些,其结果是,探测和响应数据包都可以看作是正常的数据通信。另一好处是探测数据包与同一路径上传送的正常应用数据包将被用相同的方法来处理。因此,测量结果更加精确地反应了正常应用数据包所经历的路径质量。作为本发明第二个重要方面,探测包携带至少一个正常网络应用的真实消息,该消息被设计成用于获取来自远端节点的至少一个真实消息以用于数据路径质量测量。因此,响应包携带来自远端节点的至少一个消息或者一个应用消息的一部分。出于本发明的目的,这些应用消息可以是任何在应用层协议中被允许的消息。换句话说,通过该探测和响应包发送的消息是根据正常应用层协议进行交换的。其结果是,应用消息可被看作是正常的网络应用的通信。作为本发明的第三重要方面,每个响应数据包被设计成包含一个序列号和一个确认号(用于数据可靠性服务)。对于每个探测包的传送场景(如,以相同的次序接收该探测包、以及第一探测包丢失),在正向传输链路上该响应数据包的顺序(由它们的次序和确认号确定)是可区别的。此外,这些顺序可以在发送探测数据包之后通过测量节点预先确定。因此,响应数据包包含足够的信息来确定每个探测数据包的传送状态和每个响应数据包的传送状态。另外,一个可靠的数据传输协议有可能提供测量节点以控制响应数据包的大小的机制。作为本发明的一个实施例,传输控制协议(TCP)数据包可用于测量数据路径质量以显示本发明在此应用中的实例。当然,其他类型的数据包(如流控制传输协议)也可以使用。根据本发明的指导思想,本领域技术人员也可采用其他数据包实现本发明。在使用TCP数据包的实施例中,发送两个探测TCP数据包来获取至多两个新的响应TCP数据包用于数据路径质量测量。每个探测TCP数据包携带超文本传输通讯协议(HTTP)GET数据,该数据可触发由一个或多个响应TCP数据包携带的HTTP响应数据。从上述内容可以看出,本发明避免了现有的非协作测量方法所面临的两个主要问题。由于使用正常数据包互换和正常的网络应用数据互换来实现测量,本发明提供了可靠的测量。此外,响应数据包包含足够的信息来获得至少三种类型的数据路径质量度量。丢包和包乱序度量被用于正向传输路径、反向传输路径、和不同大小的探测和响应数据包的组合。在后附的权利要求中特别指出了本发明的各个具有新颖性的特征,并且该权利要求进一步构成了本发明公开的一部分。为了更好地理解本发明,其运行优势,和使用目的,可以参照示出并描述了本发明的优选实施例的附图和下列说明书。参考下列说明书结合附图,能够更容易地理解本发明的目的、特征和优点。附图中,相同的附图标记在各幅附图中用于表示相同的部件或功能相似的部件,其中,带有字母符号的附图标记可用于识别各幅附图中选定组成实施例的附加类型、实施例或变形,其中图1是示出本发明的特定实施例的框图;图2是示出了在根据本发明的特定实施例中的连续探测回合(successiveproberound)的流程图;图3是示出了在根据本发明的典型测量节点的框图;图4是示出了根据本发明的用于网络服务的测量节点执行的典型测量进程的时间轴图表;图5是示出了在根据本发明的特定实施例中的两个连续探测回合中的服务器响应的时间轴图表;图6是示出了在根据本发明的特定实施例中的接收乱序的探测的服务器响应的时间轴图表;图7是示出了在根据本发明的特定实施例中的仅接收第二探测数据包的服务器响应的时间轴图表;图8是示出了在根据本发明的特定实施例中的仅接收第一探测数据包的服务器响应的时间轴图表;图9是示出了在根据本发明的特定实施例中的不接收探测数据包的服务器响应的时间轴图表;图10是示出了在根据本发明的特定实施例中的接收乱序的探测(包括TCPACK)的服务器响应的时间轴图表;图11是示出了在根据本发明的特定实施例中支持的部分路径度量组的框图。具体实施例方式減图1是示出了根据本发明的特定实施例的框图。其包括测量节点101和远端节点103、105和107。该测量节点101通过网络113通常包括多个跳转点(hop)(如路由器)发送两个探测TCP数据包Pl109和P2111到远端节点103。该远端节点103,响应接收109和111,并发送两个响应TCP数据包Rl115和R2117到101。该数据包109、111、115和117可在101和103之间建立的同一TCP连接中发送。该探测TCP数据包在正向传输路径119上发送,在此所述响应TCP数据包在反向传输路径121上发送。同时,测量节点101可在101和105之间建立的另一TCP连接中将两个探测数据包P1,123和p2,125发送给远端节点105。然而,P1,123和p2,125以逆序被105接收。两个乱序的数据包从105获取两个响应数据包R1’127和R2’129。同时,测量节点101可在101和107之间建立的另一TCP连接中将两个探测数据包P1”131和p2”133发送给远端节点107。然而,p2”133在网络113中丢失。Pl”131从107获取两个响应数据包Rl,,135和R2”137。响应TCP数据包和它们的到达次序提供足够的信息给101以确定Pl109是被103接收了还是在119上丢失了,P2111是被103接收了还是在119上丢失了。如果109和111都被103接收的话,101可确定它们是以相同的次序接收或是以相反的次序接收。同时,101可确定Rl115是否在121上丢失,或R2117是否在121上丢失。如果115和117均被接收,101可确定它们是以与传输次序相同的次序接收或是相反的次序接收。此外,如果探测TCP数据包和该探测包获取的响应TCP数据包都没有丢失的话,可以计算每个探测TCP数据包的往返时间(RTT)。图2是示出了在根据本发明的特定实施例中的连续探测回合的流程图。在发送两个探测TCP数据包201之后,该测量节点是处于接收模式,以用于从远端节点获取响应TCP数据包。在接收响应TCP数据包203之后,发送探测包201之后的响应TCP数据包将用于确定每个探测TCP数据包的传送状态和每个响应TCP数据包的传送状态205。如果在207能作出判断,在发送两个新的探测TCP数据包201之前,可在209执行某些准备工作。如果不能在211作出这一判断,该测量节点将等待下一响应TCP数据包203。在收集连续数量的探测回合的包传送状态和RTT之后,可计算多个数据路径质量的度量的统计量。例如,可计算第一个探测TCP数据包的平均RTT。同时,也可以计算第一个探测TCP数据包的平均丢包率(也就是,正向传输路径丢包率)。同样的,也可以计算第一个响应TCP数据包的平均丢包率(也就是反向传输路径丢包率)。如果可以接收两个探测TCP数据包,可计算它们的平均包乱序率(也就是,正向传输路径包乱序率)。类似地,如果可以接收两个响应TCP数据包,可计算它们的平均包乱序率(也就是,反向传输路径包乱序率)。在Web会话中的测量图3是示出了在根据本发明的典型测量节点的详细框图。测量节点301从用户305获得httpURL303。使用该URL303,HTTP模块307在HTTP层327准备用于URL303的HTTPGET消息309,并将该消息309传递给TCP层313的测量核心311。该测量核心3118负责准备和分发探测TCP数据包Pl315和P2317。该探测TCP数据包315和317在其数据载荷中携带HTTPGET消息309。该测量核心311还可负责接收在其数据载荷中携带HTTP响应消息的响应TCP数据包Rl319和R2321,和负责确定数据包传送状态和计算每个包RTT。另外,用户305可输入探测和响应包大小323、采样率和样式325。该包大小请求323被传递给HTTP模块307以满足包大小的要求。采样率和样式325被传递给测量核心311以满足采样处理的要求。图4是示出了根据本发明的用于web服务的测量节点执行的典型测量的时间轴图表。该测量节点401发送TCPSYN包403以与web服务器405建立TCP连接。在接收TCPSYN-ACK数据包407以后,该测量节点401发送携带用于url-1的HTTPGET消息431的探测TCP数据包CO,409。在接收请求431之后,web服务器405准备用于url_l的HTTPGET消息441,该用于url-1的HTTPGET消息441在连续的多个响应TCP数据包Sl413、S2415、S3417、S4419、S5421等中发送。在接收由TCPACK433获取的S2415和S3417之后,该测量节点401通过分发第一个两双探测TCP数据包Cl’423和C2’425,启动第一个探测回合来进行数据路径质量测量,这两个探测TCP数据包分别获取两个响应TCP数据包S4419和S5421。这两个探测TCP数据包Cl,423和C2,425也可携带相同的用于url_l的HTTPGET消息431。新的探测回合可在接收到响应TCP数据包S5421后开始。因此,这一TCP连接中执行的测量由两个连续阶段准备阶段427和探测阶段4组成。HTTP樽块HTTP模块利用应用层的HTTP进行路径测量,但是测量核心可利用任何基于TCP的应用层协议进行路径测量。HTTP模块和测量核心之间的接口是基于从HTTP模块传递给测量核心的HTTPGET消息的。因此可独立于测量核心之外设计和实现HTTP模块。该HTTP模块的主要任务包括找到一个或多个用于用户指定包大小的合格httpURL和准备用于该合格httpURL的HTTPGET消息。如果httpURL的HTTPGET消息能够被改造成具有特定探测包大小的探测数据包,且该HTTPGET消息能够从服务器获取具有特定响应包大小的至少5个响应数据包,那么该httpURL可以被认为是合格的。提出最少5个相应数据包的要求是因为在准备阶段427有三个额外的数据响应包413,415和417。用Zp和Ir分别表示以字节为单位的用户指定探测包大小和响应包大小。所有的包大小包括IP和TCP报头。因此,合格的URL的HTTPGET消息的长度将不会超过Zp-40字节(假定40比特TCP/IP报头)。此外,对应的HTTP响应消息的长度,包括HTTP响应报头和消息体,必须是至少5X(Zr-40)字节。校验HTTPGET消息的长度是较为简单的。然而,检验URL是否符合响应数据包的大小要求需要进行一些工作。如果在HTTP响应消息中出现内容长度报头字段,那么总长度是该字段值和HTTP响应报头长度之和。否则,HTTP模块将下载整个HTTP响应消息以确定其长度。如果不能获得合格的URL,该HTTP模块将执行web信息采集以重获所有的可用URL,该网页信息采集始于web服务器的根部并向下采集一定的深度。此外,合格URL的HTTPGET消息必须包括200(OK)响应。该404(未找到)响应不能使用以避免在该站点上引起安全警报。类似地,需要避免那些不具有消息体的HTTP响应消息(例如,304(未被修改的))。为了制作用于HTTPGET消息的Zp-字节探测数据包,该HTTP模块通过HTTP参考字段来扩展包大小。因为某些网站服务器仅仅接受与其自身网页相关的请求,该HTTP模块首先将请求的URL添加到参考字段以避免可能的阻滞。如果该包大小仍然不足,该HTTP模块进一步不断重复添加一个定制串直到满足用户指定包大小,其中该定制串包括探测ID和可能的其他合适信息(如联系邮件地址)。此外,为了降低在分发探测过程中由于可能存在的上下文切换引起的延时,该HTTP模块将在开始测量之前制作用于合格的httpURL的HTTPGET消息。该HTTP模块通过在每个用于路径测量的探测数据包中包括HTTPGET消息来使用HTTP/1.1的请求管线特征(requestpipeliningfeature)。该管线HTTPGET消息可以请求单个或多个URL。也可以采用其他方法来配置探测数据包,例如在数个连续探测数据包之间发送大HTTPGET消息,或在单个探测数据包中包括多个HTTPGET消息。但是这些可选方法将会引入响应数据包返回延时和发送太多HTTPGET消息的问题。此外,HTTP响应消息通常不会完全占据最后一个响应数据包。因此,响应数据包可以包含一部分来自两个HTTP响应消息的数据。另一方面,可以看到某些响应数据包仅包含HTTP响应消息的最后一个组块。因此,这些响应包不满足包大小需求。在这种情况下,该HTTP模块将使用下一HTTP响应消息来继续同一TCP连接中的测量。另一重要机制是防止web服务器压缩HTTP响应消息,例如,该压缩可以是由Apache服务器的mocLdeflate模块来执行的。压缩的HTTP响应消息将影响测量,这是因为用于合格URL的响应数据包的预计数量减少了。因此,每个HTTPGET消息指定Acc印t编码:identity;q=1,*;q=0",在此,“identity;q=1"是指〃identity"编码(也就是,无转换)将在整个响应上执行,且"*;q=0"意指避免其他编码方法。除了使用合格URL用于测量,也可在HTTP/1.1中使用范围请求特征来使用不合格的URL用于路径测量。范围请求可用于请求来自接收范围请求的web服务器的同一对象的多个交迭范围。对于不合格的URL,可以通过范围请求来进行扩展以满足最小的大小要求(也就是,5个响应数据包)。例如,如果一个web服务器仅包含200字节的单个网络对象,下列范围请求报头可以嵌入到每个HTTPGET消息中“范围字节=-200,-200,-200,-200〃。每个字节-范围-指定器“_200”请求服务器返回网络对象的最后200字节。为响应该范围请求,服务器将返回800字节的单个HTTP响应消息中的4个范围响应。测量核心测量核心的设计和实现独立于特定TCP应用。其在一个或多个并行TCP连接中执行测量。为了支持更高的采样率和非周期性采样样式,通常使用多个TCP连接。POSIX线程库(Threadslibrary)可以用来管理单个TCP连接和整个测量进程。此外,因为某些web服务器可能限制一个IP地址发起的并行TCP连接的数量,可将不同的源IP地址分配给这些连接。在一个测量进程中使用到的TCP连接的数量是可配置参数。该测量核心建立并维持用于测量进程的多个TCP连接。其还可以根据用户指定的采样样式(如周期的和泊松的)和采样率在测量开始前准备探测计划表。该探测计划表包含一个探测任务列表,每个探测任务包含分发时间和探测数量。探测任务一生成就入队到探测进度队列中。执行测量的方式和机制对于每个TCP连接来说都是相同的。每个TCP连接中的测量是在两个连续阶段中执行的准备阶段和探测阶段。准备阶段是用作于执行探测阶段的基础工作的。在探测阶段,分发由HTTP模块准备好的HTTPGET消息的探测,分析响应数据包和当进程结束或遇到异常时终止连接。在准备阶段,测量节点配置探测和响应数据包大小。测量节点401在TCPSYN包403中公告其最大段长(MSS),称为MSk字节。服务器405在TCPSYN-ACK包407中公告其最大段长(MSS),称为MSk字节。接着,该测量节点401可将探测数据包大小设置成至多MSSs+40字节,将响应数据包大小设置成至多min{MSSc,MSk}+40字节。这一阶段的另一目的是,增大服务器对两个TCP数据段的拥塞窗口以开始该探测阶段429。如果服务器的初始拥塞窗口已经是至少两个TCP数据段(通过接收初始HTTPGET消息431之后的两个响应数据包来检测),接着第一探测回合可以开始而不发送TCPACK433。探测阶段在接收到来自服务器405的两个新的响应TCP数据包415和417后就立刻开始。为了分发探测,测量核心首先从探测-计划表队列中重获探测任务。此外,任何已过期的探测任务(其分发时间已经过了当前时间)将从队列中移除并丢弃。当所述探测计划表为空时,测量核心关闭TCP连接。在获得未过期的探测任务后,该测量核心执行高精度休眠(highresolutionsleep)(例如,使用clock_nanosle印()intime,h)直到到达分发时间。在醒来后,从HTTP模块已经准备好的HTTPGET消息列表中随机获取一对HTTPGET消息,其中每一个HTTPGET消息都在探测数据包中发送。可使用Linux原始套接字来制作和发送探测数据包,且Iibpcap1.0.0库可以用于捕获探测和响应数据包。由于绕过了Linux的TCP/IP数据栈,Linux核心将不会发现测量核心发起的TCP连接,因而它会用TCPRST包响应每个接收到的响应数据包。解决这一问题通常的方法是使用Linux的IP表来滤掉RST包。另一重要问题是精确地给每个探测和响应数据包产生时间戳以用于RTT测量。如果将Iibpcap用于捕获这些包,来自每个探测和响应数据包的pCap_pkthdr结构的时间戳可用于以微秒的精度测量RTT。作为另一可选方案,使用来自gettimeofdayO的用户级时间戳不是那么可靠,因为该其精确性将受到系统上下文切换的影响。图5是示出了在根据本发明的两个连续探测回合中的服务器响应的时间轴图表。测量节点501在第一个探测回合发送两个探测数据包503和505以获取来自服务器511的两个响应数据包507与509。在接收新响应数据包507和509之后,测量节点501在第二个测试回合发送两个新的探测数据包513和515以从服务器511获取两个新的响应数据包517禾口519。分别采用Cmln来表示探测数据包和采用Sm|n来表示响应数据包,且m和η分别为TCP数据包的序列号(SN)和确认号(AN)。因为探测和响应数据包包含MSS-大小的TCP数据段,仅是出于方便的目的,m(=1,2,...)用于列举响应TCP数据段,且n(=1',2',...)用于列举响应TCP数据段。例如C3'11521携带来自测量节点501的第三数据段和来自服务器的用于第一数据段的确认,且S3|3'523携带来自服务器511的第三数据段和来自测量节点501的用于第一个三段数据的确认。当AN不重要时,仅使用Cm和Sm,例如第一个两个探测数据包Cl'525和C2'527。11虽然在发送第一探测数据包的时刻,两个数据段都会被接收到,但是每个探测数据包仅确认从服务器接收到的一个数据段。例如,甚至在接收两个响应数据包507和509之后,C3'1521仅确认服务器的第一数据段。此外,探测数据包公告两个TCP数据段的接收窗以约束服务器的发送窗。其结果是,每个探测数据包,如果没有乱序的话,仅获取一个新的响应数据包。例如,C3'|1521获取S3|3'523,且C4'|25四获取S4|4'531。新响应数据包是携带来自服务器的新数据段的TCP数据包。RTT是基于探测数据包和其获取的新响应数据包(例如C3'1513和S3|3'517)而测量的。因此,在没有丢包时,通常可以在一个探测回合中获得两个RTT观测值。然而,使用第一个探测包的RTT来测量更加精确,因为所述第二个探测包的RTT可能被第一个包偏置。在正向传输路径上,两个探测TCP数据包可能发生5种可能路径事件F0两个探测数据包以相同的次序到达服务器;FR两个探测数据包以相反的次序到达服务器;Fl第一个探测数据包丢失,但是第二个到达服务器;F2第一个探测数据包到达服务器,但是第二个丢失,和F3两个探测数据包均丢失。在反向传输路径上,两个新响应数据包也可能发生5种可能路径事件:R0,RR,Rl,R2和R3(通过将F0-F3中的“探测”替换成“响应”,并将“服务器”替换成“测量节点”)。其结果是,可能有18中可能的丢失-乱序,如表1中所示17个事件用"V"表示,一个事件用F3表示。其他用“_”表示的事件是不可能事件,因为最多只能有一个新响应数据包被获取(也就是,没有第二个响应数据包)。对于F3,没有新的响应数据包被获取。表权利要求1.一种非协作测量通信网络的数据路径质量的方法,其特征在于,包括(a)测量节点发送探测包并接收从远端节点来的响应数据包,所述探测数据包包括至少两个携带正常网络应用的数据的数据包,且来自所述远端节点的响应包含至少一个数据包,该所述至少一个数据包携带网络应用消息;(b)接收并处理所述远端响应中的所述数据包,所述响应能提供至少三种类型的数据路径质量度量,和(c)从所述步骤(b)中处理的所述数据路径质量获得关于所述测量节点和所述远端节点之间的数据路径质量测量或估计。2.根据权利要求1所述的方法,其特征在于,进一步包括在执行步骤(c)之前多次重复步骤(a)和(b)。3.根据权利要求2所述的方法,其特征在于,所述三种类型的路径质量度量是往返时间、丢包率和包乱序率。4.根据权利要求3所述的方法,其特征在于,所述丢包率包括独立的正向路径丢包率和反向路径丢包率。5.根据权利要求3所述的方法,其特征在于,所述包乱序率包括独立的正向路径包乱序率和反向路径包乱序率。6.根据权利要求1所述的方法,其特征在于,所述通信网络支持TCP/IP协议且所述网络应用使用TCP协议且所述探测和所述响应的所述数据包是TCP数据包。7.根据权利要求6所述的方法,其特征在于,所述远端节点是网络服务器,来自所述测量节点的应用消息是HTTPGET消息,且来自所述网络服务器的应用消息是HTTP响应消息。8.根据权利要求7所述的方法,其特征在于,所述在步骤(a)中以用户指定的预定的探测包大小、预定的采样率和预定的采样样式发送所述探测。9.根据权利要求7所述的方法,其特征在于,在所述步骤(b)中,以用户指定的预定响应包大小接收所述响应。10.一种用于执行权利要求1的方法、并能发送探测数据包给远端节点、接收和处理来自所述远端节点的响应的设备,其特征在于,包括(a)用户输入终端,(b)探测准备模块,和(c)测量核心;其中所述用户输入终端用于指定关于所述远端节点的特性、用于所述探测和所述响应的包大小、以及探测采样率和采样样式的信息,所述探测准备模块使用来自所述用户终端的关于所述远端节点的特性、以及用于所述探测和所述响应的包大小的信息配置所述探测;所述测量核心负责以基于所述用户输入终端指定的所述信息的探测采样率和采样样式发送所述探测给所述远端节点,和处理来自所述远端节点的响应以获取一组数据路径质量度量。11.根据权利要求10所述的设备,其特征在于,所述设备是连接处于测量中的通信网络的通用计算机,其中所述用户输入终端、探测准备模块和测量核心是至少部分通过软件执行构建的。12.根据权利要求10所述的设备,其特征在于,所述探测准备模块是使用网络服务器用于数据路径质量测量的HTTP模块,所述HTTP模块能够找到一个或多个合格httpURL用于用户指定包大小,和准备用于每个所述合格httpURL的HTTPGET消息。13.根据权利要求12所述的设备,其特征在于,所述HTTPGET消息必须引起来自所述远端节点的200(OK)响应。14.根据权利要求12所述的设备,其特征在于,所述HTTPGET消息不包含来自所述远端节点的404(未找到)响应或304(未修改)响应。15.根据权利要求10所述的设备,其特征在于,所述测量核心独立于所述探测准备模块基于的所述TCP应用的类型进行操作。16.根据权利要求10所述的设备,其特征在于,所述测量核心以单个TCP连接操作,或以两个或多个并行TCP连接进行操作。17.根据权利要求1所述的设备,其特征在于,所述响应的所述数据包包括序列号和确认号。18.根据权利要求17所述的设备,其特征在于,所述响应的所述数据包的大小由用户预定。全文摘要本发明涉及一种以非协作方式测量网络路径质量的方法和设备,其发送由多组探测网络包组成的探测给远端节点,并从该远端节点接收由至少一个响应网络包组成的响应。探测和响应网络包均携带正常网络应用的消息并可根据其传输协议进行交换,这样本方法避免了使用非数据网络包的方法所面临的可靠性问题。同时本方法所触发的响应数据包能提供足够的信息来以有效的方法获取一组丰富的数据路径质量度量。文档编号H04L12/26GK102150395SQ201080001287公开日2011年8月10日申请日期2010年6月11日优先权日2009年6月11日发明者张蛟川,罗夏朴,陈焕华申请人:香港理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1