CN105634836B - 信息处理方法及装置 - Google Patents
信息处理方法及装置 Download PDFInfo
- Publication number
- CN105634836B CN105634836B CN201410584882.0A CN201410584882A CN105634836B CN 105634836 B CN105634836 B CN 105634836B CN 201410584882 A CN201410584882 A CN 201410584882A CN 105634836 B CN105634836 B CN 105634836B
- Authority
- CN
- China
- Prior art keywords
- packet
- client
- timestamp
- difference
- service data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims abstract description 107
- 238000001514 detection method Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 25
- 239000000523 sample Substances 0.000 claims description 147
- 238000012545 processing Methods 0.000 claims description 17
- 238000012790 confirmation Methods 0.000 claims description 12
- 230000004083 survival effect Effects 0.000 claims 1
- 238000005259 measurement Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 21
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 239000006185 dispersion Substances 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229910052804 chromium Inorganic materials 0.000 description 1
- 239000011651 chromium Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
- H04L1/1678—Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/205—Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
- H04L43/0835—One way packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
本发明实施例公开了一种信息处理方法及装置;所述方法包括:接收客户端的业务数据请求包;将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳;根据路径度量策略以及所获取的时间戳,确定所述网络传输路径的单向度量值。采用本发明实施例的技术方案,能够在复杂的业务场景中准确检测网络传输路径的单向度量值,且不会加重承载业务的网络传输路径的负荷。
Description
技术领域
本发明涉及通信技术,尤其涉及一种信息处理方法及装置。
背景技术
网际协议(IP,Internet Protocol)业务快速增长且呈多样化趋势,如何在 IP网络上保证数据传输的质量成为一个不容忽视的问题,为解决这一问题,相关技术利用服务器与客户端之间的网络传输路径的度量值(Metrics),包括丢包(Packet Loss)、乱序包(Packet Reordering)、抖动(Jitter)和带宽(Capacity),来衡量网络传输路径的质量以做出相应调整,进而提升服务质量(QoS,Quality of Service),保证用户体验(QoE,Qualityof Experiment);例如:
1)在内容分发网络(CDN,Content Delivery Network)中,CDN中的控制服务器根据内容分发网络中多个服务器(用于向客户端提供内容)到客户端的传输路径的度量值,可以将客户端定向至最优的服务器,以优化服务器与客户端之间的数据传输,提升QoS;
2)在服务器向客户端提供流媒体服务时(Streaming Services),可以根据与客户端之间的传输路径的度量值,确定恰当的向客户端传输流媒体内容的比特率;
3)网络传输路径的度量值反映了服务器与客户端之间的网络传输路径的服务质量,因此可以供内容提供商区分不同互联网服务提供商(ISP,Internet ServiceProvider)提供的线路(与网络传输路径对应)的质量情况。
综上所述,网络传输路径的度量值对于调整在线服务(例如视频流服务和内容分发服务)以提升服务质量,保证用户体验至关重要,但在目前复杂的业务场景中(客户端侧运行浏览器、以及防火墙设置不可能完全一致),如何准确检测网络传输路径的度量值,且不会加大承载业务的网络传输路径的负荷,相关技术尚无通用有效的解决方案。
发明内容
本发明实施例提供一种信息处理方法及装置,能够在复杂的业务场景中准确检测网络传输路径的度量值,且不会给承载业务的网络传输路径的带来额外的负荷。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种信息处理方法,所述方法包括:
接收客户端的业务数据请求包;
将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;
获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述前向路径与所述后向路径为与所述客户端之间的网络传输路径且传输方向不同;
根据所获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征所述网络传输路径在不同传输方向上至少一个维度的传输特性。
本发明实施例提供一种信息处理装置,所述信息处理装置包括:
第一包处理单元,用于接收客户端的业务数据请求包;将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;
获取单元,用于获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述前向路径与所述后向路径为与所述客户端之间的网络传输路径且传输方向不同;
确定单元,用于根据所述获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征所述网络传输路径在不同传输方向上至少一个维度的传输特性。
本发明实施例中,通过发送封装有业务数据的探测包的形式获取时间戳信息,避免了相关技术中发送大量不携带业务数据的探测包而被客户端防火墙拦截,无法获取探测包到达客户端的准确时间戳,进而无法确定单向路径的度量值的问题;并且,由于没有发送单纯的探测包,而是发送承载业务数据的探测包以获取计时信息来确定单向路径的度量,避免了相关技术中发送大量探测包而导致网络传输路径负荷压力大的问题。
附图说明
图1是本发明实施例中信息处理方法的实现流程图;
图2是本发明实施例中信息处理装置的结构示意图;
图3是本发明实施例中客户端的结构示意图;
图4是本发明实施例中信息处理方法的实际应用场景示意图;
图5是本发明实施例中获取时间信息以进行测量的过程示意图;
图6a是本发明实施例中确定前向路径丢包的示意图一;
图6b是本发明实施例中确定前向路径丢包的示意图二;
图6c是本发明实施例中确定前向路径丢包的示意图三;
图7a是本发明实施例中确定后向路径丢包的示意图一;
图7b是本发明实施例中确定后向路径丢包的示意图二;
图7c是本发明实施例中确定后向路径丢包的示意图三;
图8是本发明实施例中确定前向路径乱序包的示意图;
图9是本发明实施例中获取单向路径的计时信息并确定度量值的架构示意图;
图10是本发明实施例中δN的近似误差的分布示意图;
图11是本发明实施例中进行测试的试验床的示意图;
图12a是本发明实施例中单向延迟抖动和往返延迟抖动的示意图;
图12b~12c是本发明实施例中单向路径抖动与丢包的变化示意图。
具体实施方式
发明人在实施本发明的过程中发现,对于如何精准确定单向路径的度量值尚无有效解决方案,主要表现在以下方面:
1)缺乏底层单向路径的度量值的问题
底层单向路径的度量值(也可以视为评估参数)如丢失数据包(Packet Loss,即在单向路径中传输过程中丢失的数据包)、乱序包(Packet Rendering,即在单向路径中传输到达接收端的顺序、与在发送端发送的顺序不一致的数据包)、抖动(Jitter)和带宽(Capacity)对于表征单向路径的特性至关重要;但相关技术只支持检测较少种类的度量值,如往返时间(RTT,Round-Trip Time),网际传输协议(TCP,Transmission ControlProtocol)块传输能力(BTC,Bulk-Transfer Capacity),并且,上述度量值的精度取决于获取底层信息的能力。
2)部署限制问题
为确定单向路径的度量值,相关技术都需要在客户端侧安装特定软件或者插件,但实际应用中出于安全方面的考量,并非所有的客户端都会允许安装特定软件或插件,这就导致相关技术只能应用在对安全性要求低的客户端上以获取单向路径的信息,对于安全性要求高的客户端,由于无法安装特定软件或插件,导致无法在客户端上获取单向路径的信息
3)过载问题
相关技术获取单向路径的度量值时,对测量每个参数都需要发送大量数据包,因此当检测向单向路径的多个参数时,会增大网络传输路径的压力,甚至会导致服务器与客户端之间的网络传输路径过载。
4)防火墙的限制问题
相关技术中通过服务器侧发送特定数据包如回声请求(ICMP,Internet ControlMessages Protocol)的方式获取用于确定度量值的信息,而不是通过发送含有应用数据的数据包来引发远端主机的响应;虽然这种方式不需要在客户端侧安装特定软件或插件,但服务器侧发送的特定数据包会被客户端侧防火墙拦截,导致无法获取用于确定度量值的信息。同时,由于特定数据包与真实应用的数据包不一样,这样的测量无法获得具有代表性的网络性能指标。
鉴于上述问题,本发明实施例记载一种信息处理方法,可以应用于服务器,以获取单向路径的信息并确定度量值;如图1所示,包括以下步骤:
步骤101,接收客户端的业务数据请求包。
步骤102,将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送。
探测包可以视为一种数据包,探测包的载荷即为业务数据。
步骤103,获取计时信息。
探测包携带业务数据(各种Web对象,如图片),可以触发客户端中的浏览器保存探测包到达客户端的时间戳,进而,可以通过浏览器页面中的 Javascript脚本来把这些时间戳收集起来。
所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述数据包为所述客户端在接收到所述探测包之后通过后向路径发送,且数量至少为两个,所述前向路径与所述后向路径为服务器与客户端之间的不同传输方向的网络传输路径;以服务器接收到业务数据请求包为例,前向路径是指服务器向客户端传输数据的网络传输路径,后向路径是指从客户端向服务器传输数据的网络传输路径。
业务数据的类型取决于应用业务,例如,业务数据可以为网页,此时,可以将网页的Web对象封装入探测包,由于探测包是在正常应用业务的TCP连接中发送,而且封装有业务数据,而非专用的探测包(不携带业务数据),因此避免了被客户端防火墙过滤的情况,可以应用在多种业务场景获取计时信息;业务数据也可以为流媒体数据。
步骤104,根据所获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征所述网络传输路径在不同传输方向上至少一个维度的传输特性。
前向路径的单向度量值包括:前向路径丢包(可以用于确定丢包率)、前向路径乱序包、前向路径带宽和前向路径抖动;后向路径的单向度量值包括:后向路径丢包(可以用于确定丢包率)、后向路径乱序包、后向路径带宽和后向路径抖动。
作为一个实施方式,服务器将客户端请求的业务数据封装入至少两个探测包时,可将所述业务数据封装入第一探测包和第二探测包;其中,所述第一探测包头部中封装有第一确认号,所述第二探测包头部中封装有第二确认号,所述第二确认号为所述业务数据请求包中的序列号与所述业务数据请求数据包载荷长度的加和、且所述第一确认号小于所述第二确认号;按照TCP协议,第一探测包头部中还封装有第一序列号,第二探测包头部中封装有第二序列号;与本发明实施例记载的技术方案不同,按照TCP协议,第一探测包头部中封装的确认号为所述业务数据请求包中的序列号与所述业务数据请求数据包载荷长度的加和。
下面对确定单向路径的度量值进行说明。
1)前向路径丢包
当第一探测包发生丢包时,服务器会接收到客户端发送的单一ACK(即 Pure ACK)包,单一ACK包中封装的确认号为第一序列号;当服务器重传该探测包后会接收到客户端发送的新的业务数据请求包(用于请求新的业务数据,在接收到重传的第一探测包之后发送);且第一时间戳与第二时间戳相同(实际应用中会存在可以忽略的差值);
当服务器接收到第一探测包且第二探测包发生丢包时,会接收到客户端发送的单一ACK包(封装的确认号为第二序列号),以及客户端在经历一个RTO 后重新发送的尚未被(第一探测包)所确认接收的业务数据请求包的数据,且在第二探测包被服务器重传后,会接收到来自客户端的新的业务数据请求包(以请求新的业务数据)。
当第一探测包和第二探测包发生丢包时,服务器会接收到客户端等待一个RTO后(客户端自发送业务数据请求包开始计时)重传的业务数据请求包(以请求重传第一探测包和第二探测包)。当服务器重传第一探测包后客户端将发送一个单一ACK包(客户端在接收到重传的第一探测包后发送)。当第二探测包被重传后,将会收到来自客户端的后续业务数据请求包(以请求新的业务数据)。
其中,第一时间戳和第二时间戳为业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻;实际应用中,第一时间戳和第二时间戳是客户端中的浏览器默认获取的时间戳数据。
2)后向路径丢包
当所述客户端通过所述传输路径向服务器发送第一数据包和第二数据包两个数据包时,根据第三时间戳、第四时间戳判断接收到所述第一数据包、所述第二数据包的先后时间顺序,所述第三时间戳表征服务器接收到所述第一数据包的时刻,所述第四时间戳表征服务器接收到所述第二数据包的时刻,对应进行以下处理:
当所述先后时间顺序为所述第二数据包、所述第一数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第一数据包在所述后向路径上传输时发生丢包;当第一数据包发生丢包时,服务器会向客户端发送单一ACK包(封装的确认号为第一序列号以提示客户端未收到第一数据包);
当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第二数据包在所述后向路径上传输时发生丢包;当第二数据包发生丢包时,服务器会向客户端发送单一ACK包(确认收到第一数据包)。
当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述业务数据请求包对应的时间戳的差值与第一加和对应,判定所述第一数据包、以及所述第二数据包在所述后向路径上传输时均发生丢包;所述第一加和为所述客户端的RTO与第一差值的加和,所述第一差值为在所述第一数据包未发生丢包时,所述第三时间戳与第五时间戳的差值(所述第五时间戳表征客户端发送第一数据包和第二数据包的时刻);当第一数据包、第二数据包发生丢包时、且服务器接收到客户端重传的第一数据包时会向客户端发送单一 ACK包(确认收到重传的第一数据包)。
3)前向路径乱序包
当第一探测包和第二探测包发生乱序传输(即客户端首先接收到第二探测包)时,会接收到客户端发送的单一ACK包(其确认号为第一序列号);之后,当第一探测包到达客户端时,客户端将发送新的业务数据请求包(以请求的新的业务数据)同时,第一时间戳与第二时间戳相同(实际应用中会存在可以忽略的差值)。
4)后向路径乱序包
当所述先后时间顺序为所述第二数据包、所述第一数据包、且所述第三时间戳与所述第四时间戳的差值远小于客户端的RTO(例如第三时间戳与第四时间戳的差值与客户端的RTO的比值小于预设阈值)时,判定所述第一数据包、以及所述第二数据包在所述后向路径上传输时发生乱序。
5)前向路径带宽
当服务器通过所述传输路径发送第一探测包和第二探测包两个数据包时,将所述第一探测包的长度(第一探测包长度与第二探测包长度相同)与第一时间戳和第二时间戳差值(对应第二差值)的比值,确定为所述前向路径带宽;所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
为提升前向路径带宽的精度,将所述探测包通过前向路径发送(以发送第一探测包和第二探测包两个探测包为例)时,还可以发送Nu个填充包,Nu为大于0的整数;其中,所述填充包的生存时间(Time To Live,通常采用跳数来度量)小于前向路径的长度(也即填充包生存时间所对应的跳数,小于填充包从服务器传输至客户端所需要的跳数),以避免填充包被客户端接收;
相应地,确定前向路径带宽时,将第二加和与第二差值的比值确定为所述前向路径带宽;其中,所述第二差值为第一时间戳与第二时间戳的差值,所述第二加和为填充包长度的Nu倍与所述探测包的长度与的加和。
为提升计算前向路径带宽的精度,在确定前向路径带宽之前在所述计时信息中滤除偏置样本。
6)后向路径带宽
当所述客户端通过所述传输路径发送第一数据包和第二数据包两个数据包时,将所述第一数据包的长度(与第二数据包的长度相同)与第三差值的比值确定为所述后向路径带宽;其中,所述第三差值为第三时间戳与第四时间戳的差值,所述第三时间戳与所述第四时间戳为所述客户端通过后向路径发送的数据包对应的时间戳,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
为提升计算后向路径带宽的精度,在确定后向路径带宽之前在所述计时信息中滤除偏置样本。
7)前向路径抖动
确定第四差值与第五差值;将所述第四差值与所述第五差值的差值作为所述前向路径抖动;其中,所述第四差值为所述客户端发送的第i(i为大于等于 1的整数)业务数据请求包(请求网页时,第i业务请求包可以用于请求网页中第i个Web对象)的时间戳,与服务器首次发送对应的探测包(探测包携带第 i业务数据请求包请求的业务数据)的时间戳的差值;所述第五差值为所述客户端发送的第i+1业务数据请求包的时间戳,与服务器首次发送对应的探测包(携带第i+1业务数据请求包请求的业务数据)的时间戳的差值。
8)后向路径抖动
当所述客户端通过所述传输路径发送第一数据包和第二数据包两个数据包时,服务器确定第六差值,所述第六差值为所述客户端发送的第i业务数据请求包对应的时间戳与服务器接收到所述第i业务数据请求包的时间戳的差值;确定第七差值,所述第七差值为所述客户端发送的第i+1业务数据请求包对应的时间戳与服务器接收到所述第i+1业务数据请求包的时间戳的差值;将所述第六差值与所述第七差值的差值确定为所述后向路径抖动。
本发明实施例还记载一种计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行图1所示的信息处理方法。
本发明实施例还记载一种信息处理装置,如图2所示,所述装置包括:
第一包处理单元21,用于接收客户端的业务数据请求包;将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;
获取单元22,用于获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述数据包为所述客户端在接收到所述探测包之后通过后向路径发送且数量至少为两个,所述前向路径与所述后向路径为与所述客户端之间的网络传输路径且传输方向不同;
确定单元23,用于根据所述获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征网络传输路径在不同传输方向上至少一个维度的传输特性。
作为一个实施方式,所述第一包处理单元21,用于将所述业务数据封装入第一探测包和第二探测包;其中,
所述第一探测包的TCP头部中封装有第一确认号和第一序列号,所述第二探测包的TCP头部中封装有第二确认号和第二序列号,所述第二确认号为所述业务数据请求包中的序列号与所述业务数据请求数据包载荷长度的加和、且所述第一确认号小于所述第二确认号。
作为一个实施方式,所述网络传输路径的单向度量值包括前向路径丢包;
相应地,所述确定单元23,包括:
第一确定模块,用于当接收到客户端发送的确认号为第一序列号的单一确认ACK包,在超时重传第一探测包后获得新的业务数据请求包,且所述第一时间戳与第二时间戳相同时,判定所述第一探测包在所述前向路径传输时发生丢包;
第二确定模块,用于当收到所述客户端发送的确认号为第二序列号的单一 ACK包,以及所述客户端重新发送的尚未确认接收的业务数据请求包的数据,并在重传所述第二探测包后收到新的业务数据请求包时,判定所述第二探测包在所述前向路径传输时发生丢包;
第三确定模块,用于当接收到所述客户端在等待一个重传超时RTO后重传的业务数据请求包,在重传所述第一探测包后接收到所述客户端发送的确认号为第二序列号的单一ACK包,且在所述第二探测包被重传后接收到来自所述客户端的新的业务数据请求包时,判定所述第一探测包与所述第二探测包在所述前向路径传输时均发生丢包;其中,
所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
作为一个实施方式,所述网络传输路径的单向度量值包括后向路径丢包;
相应地,所述确定单元23包括:
第四确定模块,用于根据第三时间戳、第四时间戳判断接收到所述第一数据包、所述第二数据包的先后时间顺序,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻;
第五确定模块,用于当所述先后时间顺序为所述第二数据包、所述第一数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第一数据包在所述后向路径上传输时发生丢包时,判定所述第一数据包在所述后向路径上传输时发生丢包;
第六确定模块,用于当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第二数据包在所述后向路径上传输时发生丢包;
第七确定模块,用于当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述业务数据请求包对应的时间戳的差值与第一加和对应,判定所述第一数据包、以及所述第二数据包在所述后向路径上传输时均发生丢包;其中,
所述第一加和为所述客户端的RTO与第一差值的加和,所述第一差值为在所述第一数据包、所述第二数据包均未发生丢包时,第三时间戳与第五时间戳的差值,第五时间戳表征发送客户端第一数据包和第二数据包的时刻。
作为一个实施方式,所述网络传输路径的单向度量值包括前向路径乱序包;
相应地,所述确定单元23包括:
第八确定模块,用于当通过所述前向路径发送第一探测包和第二探测包两个探测包,接收到所述客户端发送的确认号为第一序列号的单一ACK包、以及新的业务数据请求包,且所述第一时间戳与所述第二时间戳相同时,判定所述第一探测包和所述第二探测包为前向路径乱序包;其中,
所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
作为一个实施方式,所述网络传输路径的单向度量值包括后向路径乱序包;
相应地,所述确定单元23包括:
第九确定模块,用于当所述客户端通过所述后向路径发送第一数据包和第二数据包两个数据包时,接收到所述数据包的先后时间顺序为所述第二数据包、所述第一数据包、且第三时间戳与第四时间戳的差值与所述客户端的RTO的比值小于预设阈值时,判定所述第一数据包、以及所述第二数据包为后向路径乱序包;其中,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
作为一个实施方式,所述网络传输路径的单向度量值包括前向路径带宽:
相应地,所述确定单元23包括:
第十确定模块,用于通过所述前向路径发送第一探测包和第二探测包两个探测包时,将所述探测包的长度与第二差值的比值确定为所述前向路径带宽;其中,所述第二差值为第一时间戳与第二时间戳的差值;所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
作为一个实施方式,所述第一包处理单元31,还用于发送第一探测包和所述第二探测包时发送Nu个填充包,Nu为大于0的整数;其中,所述填充包的生存时间小于所述前向路径的长度;
相应地,所述第十确定模块,还用于将第二加和与所述第二差值的比值,确定为所述前向路径带宽;其中,所述第二加和为所述填充包长度的Nu倍与所述第一探测包的长度的加和。
作为一个实施方式,所述第十确定模块还用于在确定前向路径带宽之前在所述计时信息中滤除偏置样本。
作为一个实施方式,所述网络传输路径的单向度量值包括后向路径带宽:
相应地,所述确定单元23包括第十一确定模块,用于当所述客户端通过所述后向路径发送第一数据包和第二数据包两个数据包时,将所述第一数据包的长度与第三差值的比值确定为所述后向路径带宽;其中,
所述第三差值为第三时间戳与第四时间戳的差值,所述第三时间戳与所述第四时间戳为所述客户端通过后向路径发送的数据包对应的时间戳,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
作为一个实施方式,所述确定单元还用于在确定后向路径带宽之前在所述计时信息中滤除偏置样本。
作为一个实施方式,所述网络传输路径的单向度量值包括前向路径抖动:
相应地,所述确定单元23包括:
第十二确定模块,用于确定四差值与第五差值;
将所述第四差值与所述第五差值的差值确定为所述前向路径抖动;其中,
所述第四差值为所述客户端发送第i业务数据请求包之后,所述客户端首次接收到所述第i业务数据请求包所请求的业务数据的时间戳、与发送所述第i 业务数据包所请求的业务数据的时间戳的差值;
所述第五差值为所述客户端发送第i+1业务数据请求包时,所述客户端首次接收到所述第i+1业务数据请求包所请求的业务数据的时间戳、与发送所述第i+1业务数据包所请求的业务数据的时间戳的差值;i为大于等于1的整数。
作为一个实施方式,所述网络传输路径的单向度量值包括后向路径抖动:
相应地,所述确定单元23包括:
第十三确定模块,用于确定第六差值,所述第六差值为所述客户端发送第 i业务数据请求包的时间戳与接收到所述第i业务数据请求包的时间戳的差值;
确定第七差值,所述第七差值为所述客户端发送第i+1业务数据请求包的时间戳与接收到所述第i+1业务数据请求包的时间戳的差值;
将所述第六差值与所述第七差值的差值确定为后向路径抖动。
本发明实施例还记载一种服务器,包括如图2所示的信息处理装置;以内容分为网络为例,图2所示的信息处理装置可以应用于网页服务器和资源服务器。
本发明实施例还记载一种客户端,如图3所示,包括:第二包处理单元31、测量单元32;其中,
所述第二包处理单元31,用于向服务器发送业务数据请求包;向所述服务器发送至少两个数据包,所述数据包中封装有所述测量单元获取的时间戳;
所述测量单元32,用于获取所述业务数据请求包的时间戳、所述第二包处理单元31接收到所述服务器发送的探测包的时刻对应的时间戳、以及所述第二包处理单元31在接收到所述探测包后发送的数据包的时间戳。
作为一个实施方式,所述测量单元32,还用于利用资源计时/高分辨率计时 (RT/HRT)接口获取所述时间戳;或者,利用导航计时/高分辨率计时(NT/HRT) 接口获取所述时间戳。
实际应用中,信息处理装置中的各单元可由信息处理装置中的微处理器或逻辑可编程门阵列(FPGA)实现。
本发明实施例还记载一种信息处理系统,包括服务器、以及图3所示的客户端;其中,服务器中设置有图2所示的信息处理装置。
下面结合实际应用场景(以本发明实施例记载的技术方案应用于内容分发网络为例,如图4所示,获取计时信息并确定度量值的处理可以通过以下步骤实现:
步骤201,客户端(Client)访问网络服务器(Web Server)的请求网页。
步骤202,网络服务器向客户端发送JS(JavaScript)代码。
步骤203,客户端向资源服务器(Resource Server)请求目标网页中的Web 对象(如图片)。
步骤204,资源服务器向客户端返回探测包(携带目标网页的Web对象),客户端通过运行该JS代码(例如,由客户端中的浏览器运行该JS代码,通过 HTML5接口)获取资源服务器返回的探测包的时间戳,转入步骤205。
步骤203',与步骤203类似,为客户端向资源服务器请求目标网页中的资源(与步骤103中的资源不同)的处理。
步骤204',与步骤204类似,资源服务器向客户端返回探测包(携带目标网页的Web对象),客户端通过运行该JS代码(例如,由客户端中的浏览器运行该JS代码)获取资源服务器返回的探测包的时间戳数据,转入步骤205。
上述步骤中,当客户端向不同资源服务器请求网页中的Web对象时,利用 HTML5接口获取资源服务器返回的探测包(携带请求的Web对象)的时间戳。
步骤205,客户端将获取的时间戳信息发送至网络服务器。
服务器根据时间戳数据可以确定客户端与不同资源服务器之间的单向路径的度量值,并根据度量值将客户端定向至最优(例如,数据传输速度最快)的资源服务器,以提升客户端获取网页的速度。
实际应用中,服务器(包括网络服务器和资源服务器)可以通过设置图2 所示的信息处理完成上述步骤,如图4所示,本实施例中将网络服务器和资源服务器所设置的上述信息处理装置称为OWPScope。
上述处理中,1)网络服务器根据时间戳数据可以确定单向路径的以下度量值:丢包、乱序包、抖动和带宽,能够从多个维度表征单向路径的传输特性;2) 由于客户端运行的JS代码利用了超文本链接标示语言(HMTL, Hypertext Markup Language)5、HTML和TCP的基本特性,从而不需要在客户端安装特定软件或插件即可在客户端侧获取单向路径的信息;3)资源服务器将网页资源以探测包的形式发送至客户端,从而能够穿透客户端的防火墙,以使客户端获取用于确定单向路径度量值的时间戳信息,避免导致客户端与资源服务器之间的网络传输路径的网络负载的高开销,全面准确的测量单向路径的度量值。
下面就本发明实施例中如何利用HTML5接口获取时间戳进行说明。
客户端使用三个HTML5特性,即导航计时(NT,Navigation Timing)、资源计时(RT,Resource Timing)、高分辨率时间(HRT,High Resolution Time) 来获取时间戳信息;NT和HRT是W3C的标准,并且被客户端中大多数浏览器支持;而RT是W3C的备选标准,目前被运行IE和Chrome浏览器的客户端支持;
其中,以客户端获取时间戳为例,客户端可以利用NT特性对应的接口即 NT接口(实际应用中可以由客户端中安装的浏览器提供该接口),在网页加载期间获取针对一系列以毫秒为分辨率的时间戳;客户端还可以利用RT特性对应的接口即RT接口(实际应用中可以由浏览器提供该接口),以获取客户端所请求的网页中每个资源(如Web对象)相对应的时间戳信息;客户端利用NT 接口(或RT接口)可以收集三类时间戳:(1)请求开始(requestStart),标记为Tqs,表征客户端(浏览器)发送针对网页(或网页中的资源)的请求时的时间;(2)响应开始(responseStart),标记为Tps,表征在客户端浏览器接收到网页(或网页中资源)的第一个字节时的时间;(3)响应结束(responseEnd),标记为Tpe,表征在客户端接收到网页(或资源)的最后一个字节时的时间;此外,客户端利用HRT来获得以子毫秒为粒度的时间戳,从而使获取的时间戳的精度不受客户端的系统时钟漂移和时钟调整的影响。
图5示出了通过获取时间信息以进行测量的过程示意图;在图5中,将从服务器到客户端方向的网络传输路径称为前向路径,将从客户端到服务器方向的路径称为后向路径;如图5所示,客户端在后向路径中向发送针对网页(设为Rp-P)的请求(设为Rq-P),网页Rp-P含有多个Web对象(对应服务器中的资源,如图片)以及JS代码;这里,客户端需要获取的网页Rp-P中的Web 对象(对应资源服务器中的资源)与网页Rp-P可以位于相同的服务器中(也即网络服务器和资源服务器为同一服务器),也可以位于不同的服务器中,本发明实施例以Web对象位于资源服务器中进行说明;
以W标识客户端通过Rq请求的一个Web对象(对应服务器中存储的资源),客户端通过运行JS代码(可以在浏览器中运行JS代码),实现利用RT 接口记录Rq的发送时间Tqs;网络服务器将Rq的到达时间记录为TRq,并通过前向路径向客户端发送两个探测包RP1和RP2和Nu(大于等于0)个填充包,两个探测包携带W的数据,Nu个填充包分布在探测包之间向客户端发送;填充包与探测包的首部中除生存时间(TTL,Time To Live)之外具有相同的封装信息(如源地址、目的地址),填充包的生存时间小于前向路径的长度,实际应用中,该传输时间可以采用第一探测包服务器传输至客户端所需要的跳数,从而能够使填充包在达到客户端之前被路由器丢弃;其中,发送填充包的目的在于提升确定单向路径的度量值的精度(后续将进行说明),实际应用中,填充包也可以不发送;
设TRp1和TRp2对应标识Rp1和Rp2的发送时间,T′Rp1、T′Rp2对应标识RP1和RP2到达客户端的时间;在客户端呈现W之前,客户端中的浏览器对应记录浏览器接收到Rp1的时间为Tps,并记录浏览器接收到Rp2的时间为Tpe;当Rp-P包括多个 Web对象时,客户端会记录每个Web对象对应的Tqs,Tps和Tpe;最后,客户端通过运行网页中的JS代码,经由RT接口获取上述时间戳信息Tqs,Tps和Tpe,JS 代码将触发客户端把时间戳和一些填充内容发给服务器;填充内容足够长使得客户端将向服务器需要发送两个数据包即MI1和MI2以携带时间戳和填充内容,这里,将客户端发送MI1和MI2时间对应标识为T′MI1和T′MI2(可以由客户端通过HRT接口获得);将MI1和MI2到达服务器的时间对应标识为TMI1和TMI2;在预定的延迟之后,客户端会重新加载网页以重复上述处理,从而再次获取时间戳信息;
需要指出的是,如果客户端仅支持NT(即客户端中的浏览器仅支持NT),则服务器会将客户端请求的网页(而非网页中的资源)作为W,将W的数据携带在两个探测包中发送至客户端,相应地,在客户端呈现W之前,客户端(可以为客户端中的浏览器)对应记录浏览器接收到RP1的时间为Tps,并记录浏览器接收到RP2的时间为Tpe。
下面对网络服务器根据自身获取的时间戳以及客户端发送的时间戳信息,确定单向路径的度量值包括单向路径丢包、单向路径乱序包、抖动和带宽进行说明。
一、单向丢包,包括前向路径(从服务器到客户端方向的网络传输路径) 丢包和后向路径(从客户端到服务器方向的网络传输路径)丢包。
1)前向路径丢包
鉴于服务器无法控制客户端,客户端无法对服务器所发送的数据包作丢包检测(因为在服务器侧无法检测客户端所接收的数据包),本发明实施例中,服务器通过在发送探测包的头部中设置特定的确认(ACK)号,使客户端针对是否接收到探测包进行不同的响应,根据客户端的响应来检测丢包;例如,服务器可以通过修改Rp1中的确认号(Acknowledge Number,在Rp1的TCP头部中) 的方式,使Rp1向客户端确认接收到Rq1中的部分有效数据(也即载荷),例如,设SNRq1和LRq1对应标识Rq1的序列号和长度(封装于Rq1的头部中);服务器设置 Rp1的确认号为SNRq1+LRq1/2(按照相关技术,Rp1的确认号应为SNRq1+LRq1),设置Rp2的确认号为SNRq1+LRq1。
1.1)Rp1发生丢包
以结合计时信息和包的收发信息确定丢包为例进行说明,如图6a所示,客户端向资源服务器发送Rq1以请求Web对象W,资源服务器将W携带在探测包 Rp1和Rp2中向客户端发送,如果仅Rp1发生丢包(即Rp1在传输过程中丢失),则客户端接收到Rp2时向资源服务器发送单一ACK包(确认号为SNRp1);资源服务器在发送Rp1时开始计时,如果在超时(Timeout)到达之后仍未接收到确认号SNRp2+LRp2的ACK包或者数据包,则重传Rp1,重传的Rp1标识为因此,由于responseStart为客户端接收到Rp1的时刻,responseEnd为客户端完整接收到W的时刻,可以看出,在图 6a 中,responseStart与responseEnd的值相同(实际应用中,两者之间存在可以忽略的差值),因此,客户端根据HRT接口记录的Tps和Tpe的值相同;因为超文本传输协议(HTTP,HyperText Transfer Protocol)的请求-响应性质,客户端只有在收到之后,才能通过同一TCP 连接(即发送Rq1的TCP连接)发送Rq2以继续向资源服务器请求网页中的Web 对象;也就是说,如果网络服务器接收到的时间戳信息中,对应一个Web对象 (或资源)的时间戳信息中Tps和Tpe的值相同,且结合收发信息,如接收到客户端发送的单一ACK包(确认号为SNRp2+LRp2),并在等待一个RTO后重传Rq1,则确定该传输Web对象的数据包Rp1发生了丢包。
1.2)RP2发生丢包
以结合计时信息和包的收发信息确定丢包为例进行说明,如图6b所示,客户端向资源服务器发送Rq1请求网页中的Web对象W,资源服务器将W携带在探测包Rp1和Rp2中向客户端发送,客户端接收到Rp1,但Rp2发生丢包,则客户端在ACK定时器的延时(从接收到Rp1的时刻开始计时)到达时,将会向资源服务器发送单一ACK包,指示接收到Rp1;由于Rp1仅确认接收到Rq1中的部分载荷,所以客户端将重传Rq1未确认接收的部分(也即Rp1中SNRq1+LRq1/2至 SNRq1+LRq1中载荷),标记为在发送Rp2超时(即在超时时间内客户端未发送确认收到Rp2的ACK),资源服务器重传Rp2,重传的Rp2标识为可以看出,responseStart的值为客户端接收到Rp1的时刻,responseEnd的值为客户端接收到的时刻,因此,Tps和Tpe的之间的差值与资源服务器重传的所用的时间对应,也即对应于资源服务器的重传超时(RTO,Retransmission Timeout);客户端在收到之后,将派发新的请求(即Rq2)以继续获取网页中的Web对象;综上,如果网络服务器接收到的时间戳信息中,对应一个Web 对象(或资源)的时间戳信息中Tps和Tpe的差值与资源服务器的RTO的值对应,且结合收发信息,例如,在接收到新的业务数据请求Rq2之前接收到单一ACK 包(确认号为SNRp1+LRp1)或者重传的则确定该Web对象的数据包Rp2发生了丢包。
1.3)Rp1和Rp2都发生丢包
以结合计时信息和包的收发信息确定丢包为例进行说明,如图6c所示,客户端向资源服务器发送Rq1请求网页中的Web对象W,资源服务器将W携带在探测包Rp1和Rp2中向客户端发送,Rp1和Rp2都在传输过程中丢失,客户端在超时后重传Rq1,重传的Rq1标识为Rq1到达资源服务器的时刻和的到达时间之间的间隔对应客户端的重传超时(RTO);资源服务器将先重传Rp1,(即),客户端接收到后返回ACK之后,资源服务器重传Rp2(即);在和到达之后,将发送另一请求(即Rq2);可以看出,responseStart的时刻为资源服务器接收到的时刻,responseEnd的时刻为客户端接收到的时刻;因此,Tpe和Tps之间的差值与RTT对应,也就是说,如果网络服务器接收到的时间戳信息中,对应一个Web对象(或资源)的时间戳信息中Tps和Tpe的差值与RTT的值对应,且结合包的收发信息,例如接收到客户端等待一个RTO 后(自发送业务数据请求包开始计时)重传的业务数据请求包以及客户端发送的单一ACK包(客户端在接收到重传的第一探测包Rp1后发送);则确定该Web对象的数据包Rp1和Rp2发生了丢包。
2)后向路径丢包
图7a至图7c示出了客户端(在后向路径)向网络服务器发送携带时间戳信息的数据包MI1和MI2时,网络服务器如何检测后向路径丢失的数据包;由于网络服务器能够捕获数据包,因此网络服务器能够检测到捕获到的数据包时刻,确定后向路径的丢包情况,下面进行说明。
2.1)MI1发生丢包
如图7a所示,网络服务器首先检测到MI2,向客户端发送指示未接收到 MI1的ACK包;客户端在等待网络服务器确认接收到MI1的ACK超时后重传 MI1,网络服务器接收到重传的MI1(即),也就是说,当网络服务器首先接收到MI2,然后接收到MI1,且结合包的收发信息,例如当向客户端发送单一ACK包(确认未收到第一数据包);则确定客户端发送的数据包MI1发生了丢包;
需要说明的是,当客户端发送的数据包MI1和MI2发生乱序传输时(即客户端依次发送MI1和MI2,网络服务器首先接收到MI2,然后接收到MI1),也会存在网络服务器首先接收到MI2,然后接收到MI1的情况,此时,根据 MI1与MI2到达网络服务器时刻的差值来区分上述两种情况,令dM=|TMI2-TMI1|,当网络服务器首先接收到MI2,再接收到MI1时,如果dM的值与客户端的RTO 对应,则网络服务器可以确定数据包MI1发生丢包,如果dM的值远小于客户端的RTO(例如与客户端RTO的值不处于同一个数量级),则网络服务器可以确定MI1和MI2为乱序传输的数据包。
2.2)MI2发生丢包
如图7b所示,网络服务器首先捕获到MI1,向客户端发送接收到MI1的 ACK包,客户端在等待网络服务器确认接收到MI2的ACK超时后重传MI2,网络服务器接收到重传的MI2(即),此时,dM的值与客户端的RTO对应,也就是说,网络服务器在首先接收到MI1,然后接收到MI2,dM的值与对客户端的RTO对应,且结合包的收发信息,例如在接收到新的业务数据请求之前发送单一ACK包来,则网络服务器可以确定MI2发生丢包。
2.3)MI1、MI2均发生丢包
如图7c所示,客户端在发送MI1和MI2,且等待超时之后,向网络服务器依次重传MI1和MI2(对应和),即首先重传MI1,在网络服务器发送收到MI1的ACK时重传MI2(即),此时,|TMI1-T’MI1|的值与客户端的 RTO与其常规值的加和对应。其常规值是指在MI1和MI2均未发生丢包时,网络服务器接收MI1的时刻与客户端发送MI1的时刻的差值;也就是说,网络服务器在首先接收到MI1,然后接收到MI2,|TMI1-T’MI1|的值与对客户端的RTO与常规dM加和对应,且服务器发送了单一确认MI1被接收的ACK包时,则网络服务器可以确定MI1和MI2均发生丢包。
二、单向路径乱序包
1)后向路径乱序包
由于服务器(包括资源服务器和网络服务器)能够检测到来自客户端的所有数据包,因此,服务器可以根据接收到的数据包的时间戳判断数据包是否发生了乱序传输。
2)前向路径乱序包
由于服务器不能控制客户端检测所有接收到的数据包,本发明实施例中,使客户端在接收到乱序数据包时向资源服务器发送的ACK包,不同于客户端接收到非乱序数据包时向资源服务器发送的ACK包;
一个示例如图8所示,客户端向资源服务器发送Rq1(设SNRq1和LRq1对应标识Rq1的序列号和长度)请求网页中的Web对象W,资源服务器将W携带在探测包Rp1和Rp2中向客户端发送(其中,资源服务器设置Rp1的确认号为 SNRq1+LRq1/2,并设置Rp2的确认号为SNRq1+LRq1);Rp1和Rp2发生了乱序传输,即Rp1的发送时刻早于Rp2,但Rp1到达客户端的时刻晚于Rp2;客户端在接收到 Rp2后向资源服务器发送ACK包(ACK包的确认号等于SNRp1);网络服务器根据Rp1和Rp2到达客户端的时刻的差值结合包的收发信息。例如,接收到客户端(在客户端发送新的业务数据请求包之前)发送的ACK包(ACK包的确认号等于SNRp1),以及新的业务数据请求包Rq2,且第一时间戳与第二时间戳的值相同(实际应用中,两者之间存在可以忽略的差值),确定Rp1和Rp2发生乱序传输。
三、单向路径的带宽
1)前向路径带宽
让Cj代表在第j链路上支持传输的比特数(即支持传输的最大比特数),则网络服务器确定单向路径带宽(以Ω标识)为各链路支持传输比特数的最小值;即Ω=min{Cj},j=1,2,...L,其中,L是组成单向路径的链路的数量;在图4中,资源服务器通过连续发送尺寸为S字节的N(N的值为2+Nu)个数据包,包括 2个探测包(携带客户端请求的数据)、以及Nu个填充包;网络服务器根据检测到的包序列的时刻(也即接收到探测包的时刻)确定前向路径带宽,如前所述,客户端接收到2个探测包Rp1和Rp2的时刻对应为T′RP1和T′RP2,则对应的包差量 (Packet Dispersion)即相邻数据包之间的时间差为δN=T′RP2-T′RP1;由于网络服务器无法直接获取该差值,因此利用Tpe与Tps的差值(Tpe与Tps可由客户端从浏览器中的NT/RT/HRT接口获得,并发送至网络服务器)作为δN的估计;相应地,网络服务器可以根据公式(1)来确定单向路径带宽:
ε标识利用Tpe与Tps的差值估计δN导致的噪声,S为探测包的长度;可以看出:
第一、δN的精度取决于客户端利用NT/RT获取时间戳(即Tpe与Tps)的精度,单向路径的带宽在N为大于1的整数时可以根据公式(1)确定;通过增大传输的数据包的数量N能够增大δN;
第二、来自客户端(例如客户端的操作系统/浏览器)会影响网络服务器确定的单向路径带宽的精度,通过增大N能够减小噪声的影响;
第三,单向路径中存在严重背景流量时,网络服务器通过N个数据包(即序列)的时间戳信息(由客户端获取并发送至网络服务器)确定平均分散率 (ADR,AverageDispersion Rate),平均分散率与包序列的长度(即N)无关,进而资源服务器可以在向客户端发送探测包时通过增大N的方式来减小噪声的影响,通过增大探测包的发送速率能够减小背景流量的影响。
在网络服务器利用时间戳信息确定单向路径的度量值之前,网络服务器可以使用最小延迟和原则来过滤掉偏置的样品,以确保网络服务器确定的度量值的准确度;这里,所述的样本是指客户端向资源服务器请求一个网页中的多个 Web对象的过程中,资源服务器向客户端发送两个探测包以及Nu个填充包时,客户端针对资源服务器发送的探测包(携带Web对象的数据)所获取的时间戳信息,包括Tps、Tpe、T′MI1和T′MI2;如果探测包的传输受到了背景流量的影响,则探测包的延时的和会增大,因此,网络服务器将计时信息中不满足公式(2)的样本滤除,使用滤除后得到的时间戳信息确定单向路径的前向路径带宽:
min{df1+df2}=min{df2}+min{df2},df1=Tps-TRp1,df2=Tpe-TRp2 (2)
2)后向路径带宽
图5中,客户端将获取的时间戳信息携带在数据包MI1和MI2发送至网络服务器(发送时刻对应为T′MI1和T′MI2)后,网络服务器能够以高分辨率检测到MI1和MI2的到达时间(对应为TMI1和TMI2),因此,可以利用公式(3)确定后向路径带宽,
ΩB=S/TMI2-TMI1 (3)
S为客户端发送的数据包的长度(与探测包一致);探测包的传输受到了背景流量的影响时,探测包的延时的和会增大;在网络服务器利用时间戳信息确定后向路径带宽之前,还可以利用公式(4)滤除计时信息中延时的和增大的样本(即偏置样本),以提升确定的后向路径带宽的准确度;
min{db1+db2}=min{db1}+min{db2},db1=TMI2-T′MI1,db2=TMI2-T′MI1 (4)
其中,T′MI1可以由客户端通过RT/HRT接口获得。
四、抖动
网络服务器可以根据公式(5.1)和(5.2)确定单向路径的抖动:
前向路径抖动:
Df=Tps-TRp1,θf(i)=Df(i+1)-Df(i) (5.1)
后向路径抖动:
θb(i)=Db(i+1)-Db(i),Db=TRq-Tqs (5.2)
需要指出的是,服务器和客户端的时间通常是不同步的,因此Df和Db不能视为单向延迟,由于客户端中的时钟漂移远小于样本的采样间隔(如100ms),因此由于时钟漂移导致的抖动测量中的错误是可忽略的(如0.1us)。
图9示出了实际应用中基于Linux架构的CDN中,获取单向路径的计时信息并确定度量值的架构示意图,如图9所示,包括:
测量模块(Measurement component,设置于客户端中),用于进行基于 RT/HRT接口或基于NT/HRT接口,获取探测包(来自服务器)和数据包(由客户端生成)的时间戳;实际应用中根据客户端浏览器的支持的RT/NT的情况进行选择,当客户端浏览器支持使用RT时优选使用RT,从而能过对通过一个网页中的多个Web对象的传输来进行多次测量,以获取客户端侧的针对每个Web对应的数据包时的时间戳信息(包括Tps、Tpe、T′MI1和T′MI2);
服务器侧,包括包处理模块(Packet handling component),基于服务器中的网络设备(Network device)运行,包处理模块中的包传输子模块(Packet Transmission)用于通过原始套接字发送探测包和填充包至客户端,其中探测包携带由客户端请求的数据(如Web对象);包处理模块中的包捕获单元(Packet capture)用于通过libnetfilter queue捕获来自客户端的数据包;
管理模块(Measurement component),用于将部分参数和JS代码转发给客户端中的测量模块,从测量模块获得针对每个网页的时间戳信息(包括多个 Web对象的时间戳信息);利用时间戳信息确定单向路径的度量值,根据服务逻辑对客户端做出调整(如,在CDN场景下,将客户端定向至最优资源服务器获取Web对象)。
本发明实施例中,网络服务器确定前向路径带宽时,利用Tpe与Tps的差值作为δN的近似进行处理,下面对近似精度进行验证。
1)使用NT/RT的近似精度
在两种设置下评估近似精度,包括具有FireFox(v26)和Chrome(v32) 的运行Ubuntu12.04的Linux机器(i3CPU 2.4GHZ and 8GB memory),以及 Window machine withthe same hardware running Windows 7with IE(v11), FireFox(v26)and Chrome(v32)。通过β∈{30,50,100,150}ms来延迟Rp2以估计包分布,并使用Wireshark来捕捉客户端侧的Rp1和Rp2,以用来计算T′RP2-T′RP1。针对每种设置,进行30次的实验并计算平均和标准偏差。
图10示出了近似的误差大部分分布在(-1,1)ms之间,对于实际应用来说这种误差是可接受的,因为根据公式(1),网络服务器能够进一步增大N以减轻噪声的影响;基于Linux中获得的近似误差通常小于Windows中获得的近似误差。当在Windows的IE中使用NT时,得到到了最大的近似差别;相比之下,当在IE中使用RT时,误差不明显;这是由于NT和RT都是新标准导致的。发明人通过研究FireFox和Chrome的源代码,观察到了一些执行问题,包括:
(1)在处理HTTP头之后Chrome记录repsonseStart,而Firefox在处理头之前记录repsonseStart,这是Chrome的差别随着额外的CPU负载而增加的原因;
(2)在Windows中,Chrome使用函数timeGetTime()来获取以ms为单位的系统时间,而Firefox使用函数QueryPerformanceCounter()来获取具有更高分辨率的时间戳。这是客户端运行Chrome的得到的近似误差大于客户端运行FireFox的原因;
(3)为了确保时间戳单调地增长,Chrome引入了一系列函数,它们会调整原始时间戳,这些函数是会引入额外的噪声因素;
(4)Chrome中存在responseStart的时间被延迟的问题。
为验证本发明实施例记载技术方案在实际应用中的所达到的技术效果,发明人进行人如下实验。
一、受控实验
在图11所示的测试床验证了OWPScope,其中,将图9所示的服务侧的模块部署在资源服务器和网络服务器中,使用MikroTik路由器来限制网络带宽,并且使用D-ITG来生成背景流量。
验证网络服务器对包丢失的检测时,使网络服务器故意丢弃了Rp1和/或 Rp2,为了评估对前向路径上的乱序包的检测,使OWPScope在发送Rp1之前发送Rp2,在这些场景下的来自客户端的响应与前面所述的一致。
验证网络服务器对单向路径带宽的检测时,改变客户端和资源服务器之间的路径的带宽,并且调整了包序列的长度(即N);针对每种设置,进行30次实验,在表1中列出的估计带宽的平均偏离和标准偏离。结果表明OWScope 能够用小标准偏离准确地确定单向路径的带宽。此外,更长的包序列会使单向路径的带宽更加精确,从而验证了公式(1)。
表1
系统负载。我们使用siege(www.joedog.org)来模拟访问资源服务器的客户端的访问请求(对应前述的向资源服务器请求Web对象的请求),每个访问请求对应不同数量的数据包(如10,30,100);针对每种设置,siege运行10 分钟并且在每个分钟的最后记录平均负载。表II示出了10个测量结果的平均,表明网络服务器测试单行路径的度量值时对资源服务器的开销压力很小。
Number of users | 10packets | 30packets | 100packets |
50 | 0.04 | 0.046 | 0.08 |
100 | 0.045 | 0.056 | 0.085 |
表2
二.互联网实验
根据图4,在校园局域网部署了具有有限带宽5Mbps的Web服务器,在Amazon EC2部署了四个资源服务器,分别位于新加坡、加利福尼亚、东京、圣保罗(BR)。OWPScope部署在这些服务器上并使用RT来执行测量。在 Windows 8.1上运行IE 11,并在Ubuntu 12.04上运行Chromium 32.0,从家居宽频网络来访问Web服务器的首页,首页含有在不同资源服务器中的图像;家居宽频网络的下载带宽是10Mbps(即前向带宽);表3显示了前向路径带宽的结果。
N | SG | US | JP | BR | Campus |
32 | 11.27/10.99 | 11.25/10.69 | 10.98/10.68 | 11.07/11.15 | 5.55/5.27 |
42 | 10.30/10.10 | 10.49/10.84 | 10.40/11.02 | 10.27/10.61 | 5.25/5.40 |
52 | 10.33/10.24 | 10.07/10.32 | 9.96/10.11 | 9.61/10.05 | 5.22/5.21 |
表3
因为四个互联网路径的估计带宽都约为10Mbps,所以单向路径的带宽瓶颈是由家居宽频网络导致的;由于Web服务器具有较小的带宽(即5Mbps),因此Web服务器成为单向路径的带宽瓶颈。表3示出了估计精度随着N增大,这与公式(1)一致,两个浏览器上得到的数据都验证了这一结论。
作为对比,发明人使用了其他工具,包括Speedtest,Npad,Netallyzr和Boomerang,来确定服务器到相同客户端的单向路径的带宽。在相同的区域中 Speedtest选择自身服务器中的一个,Npad的服务器由M-Lab主持,Netallyzr 有它自己的服务器;由于Boomerang要求用户建立服务器,所以将Boomerang 部署在US主持的EC2上;针对每个工具,重复测量10次,计算流量容积、包的数量、评估带宽的平均值,示出在表4中。
Tool | Traffic Volume(MB) | Number of packets | Ω<sub>F</sub>(Mbps) |
speedtest | 38.6 | 40336 | 9.14 |
npad | 30.7 | 21826 | 8.12 |
netalyzr | 98.86 | 198.936 | 9.29 |
boomerrang | 2.06 | 2111 | 1.78 |
表4
虽然与Npad和boomerang相比,Speedtest和Netalyzr在带宽方面能够获得更好的性能,但是精度仍然低于OWPScope;Speedtest生成大约40MB的流量,用于评估RTT和上载/下载速度;相比之下,OWPScope能够用更少的包来测量单向路径度量。虽然boomerang只生成大约2MB流量,但它的评估是不可靠的;由于除了带宽估计,Netalyzr还进行许多其他的测量,所以它生成几乎 200MB的流量,消耗了太多带宽。
随着时间推移的路径性能
在US主持的EC2上部署OWPScope和Web服务器,并在校园园区网络中利用客户端中的Chrome浏览器持续两天定时访问服务器,单向延迟抖动和往返延迟抖动的示意图如图12a所示,前向路径抖动的分布与后向路径抖动、往返抖动的分布不同,需要指出的是单向抖动,用于了解对单向抖动敏感的业务所使用的单向路径的状态;
前向路径的单向延迟抖动和往返延迟抖动的示意图如图12b所示,后向路径的单向延迟抖动和往返延迟抖动的示意图如图12c所示,图12b和12c示出了单向抖动和丢包的变化情况,表征了每天的变化可以对应一个模型(如,在两个图中的周期1和2中,抖动和丢包变化规律不同,每个周期对应一个变化模型)。此外,在抖动和丢包之间存在明显的关联(即,更大的抖动伴随更多的丢包);还需要指出的是,前向路径和后向路径的度量值表征了网络传输路径不同维度的性能。
需要指出的是,NT/RT逐步被业界采用,例如,谷歌用来测量“察觉的时延”并提供位置速度报告。雅虎在Boomerang中支持NT,但没有相关技术来测量底层单向路径度量(即度量值)。
OWPScope是第一个利用NT/RT来测量单向路径的底层度量值。
虽然相关技术已经开发了一些非合作性工具来测量单向路径的度量值,但是它们中的大部分被设计为客户端侧工具,而没有考虑服务器侧测量的要求。例如,客户端的防火墙会过滤掉我们主动提供的TCP/UDP/ICMP包,因此使得一些工具无法使用;一些工具仅支持单向度量的一种或两种类型(如用于丢包的Sting,用于检测乱序包的CapProbe);虽然在OneProbe之上TRIO能够测量单向路径的带宽,但是前向路径带宽的评估也许会受到反向路径中噪声的影响。总之,相关技术并未如本发明实施例记载的技术方案一样,全面精确的获取单向路径的度量值。工具没有一个具有与OWPScope一样的能力。
综上所述,本发明实施例中,1)网络服务器根据时间戳数据可以确定单向路径的以下度量值:丢包、乱序包、抖动和带宽,能够从多个维度对表征单向路径的性能;2)由于客户端运行的JS代码利用了超文本链接标示语言(HMTL, Hypertext Markup Language)5、HTML和TCP的基本特性,从而不需要在客户端安装特定软件或插件即可在客户端侧获取单向路径的信息;3)资源服务器将网页资源以探测包的形式发送至客户端,从而能够穿透客户端的防火墙,以使客户端获取与资源服务器之间的单向路径的信息,在避免导致客户端与资源服务器之间的网络传输路径的网络负载的开销的基础上,全面准确的测量单向路径的度量值。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种信息处理方法,其特征在于,所述方法包括:
接收客户端的业务数据请求包;
将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;
获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述前向路径与所述后向路径为与所述客户端之间的网络传输路径且传输方向不同;
根据所获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征所述网络传输路径在不同传输方向上至少一个维度的传输特性;
所述网络传输路径的单向度量值包括后向路径丢包;
根据第三时间戳、第四时间戳判断接收到第一数据包、第二数据包的先后时间顺序,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻;
当所述先后时间顺序为所述第二数据包、所述第一数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的超时重传机制RTO对应时,判定所述第一数据包在所述后向路径上传输时发生丢包;
当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第二数据包在所述后向路径上传输时发生丢包;
当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述业务数据请求包对应的时间戳的差值与第一加和对应,判定所述第一数据包、以及所述第二数据包在所述后向路径上传输时均发生丢包;其中,
所述第一加和为所述客户端的RTO与第一差值的加和,所述第一差值为在所述第一数据包、所述第二数据包均未发生丢包时,所述第三时间戳与第五时间戳的差值,所述第五时间戳表征所述客户端发送所述第一数据包和所述第二数据包的同一时刻。
2.如权利要求1所述的方法,其特征在于,所述将客户端请求的业务数据封装入至少两个探测包,包括:
将所述业务数据封装入第一探测包和第二探测包;其中,
所述第一探测包的传输控制协议TCP头部中封装有第一确认号和第一序列号,所述第二探测包的TCP头部中封装有第二确认号和第二序列号,所述第二确认号为所述业务数据请求包中的序列号与所述业务数据请求数据包载荷长度的加和、且所述第一确认号小于所述第二确认号。
3.如权利要求2所述的方法,其特征在于,所述网络传输路径的单向度量值包括前向路径丢包;
当收到所述客户端发送的确认号为第一序列号的单一确认ACK包,在超时重传所述第一探测包后接收到新的业务数据请求包,且第一时间戳与第二时间戳相同时,判定所述第一探测包在所述前向路径传输时发生丢包;
当收到所述客户端发送的确认号为第二序列号的单一ACK包,以及所述客户端重新发送的尚未被确认接收的业务数据请求包的数据,且在重传所述第二探测包后收到新的业务数据请求包时,判定所述第二探测包在所述前向路径传输时发生丢包;
当接收到所述客户端在等待一个重传超时RTO后重传的业务数据请求包,在重传所述第一探测包后接收到所述客户端发送的确认号为所述第二序列号的单一ACK包,且在所述第二探测包被重传后接收到新的业务数据请求包时,判定所述第一探测包与所述第二探测包在所述前向路径传输时均发生丢包;
其中,所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
4.如权利要求1所述的方法,其特征在于,所述网络传输路径的单向度量值包括前向路径乱序包;
当接收到所述客户端发送的确认号为第一序列号的单一ACK包、以及新的业务数据请求包,且第一时间戳与第二时间戳相同时,判定第一探测包和第二探测包为前向路径乱序包;其中,
所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
5.如权利要求1所述的方法,其特征在于,所述网络传输路径的单向度量值包括后向路径乱序包;
当接收到所述第二数据包、所述第一数据包的先后时间顺序为所述第二数据包、所述第一数据包、且第三时间戳与第四时间戳的差值与所述客户端的RTO的比例小于预设阈值时,判定所述第一数据包、以及所述第二数据包为后向路径乱序包;其中,
所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
6.如权利要求1所述的方法,其特征在于,所述网络传输路径的单向度量值包括前向路径带宽:
将所述探测包的长度与第二差值的比值,确定为所述前向路径带宽;其中,
所述第二差值为第一时间戳与第二时间戳的差值;所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
在发送所述第一探测包和第二探测包时发送Nu个填充包,Nu为大于0的整数;其中,所述填充包的生存时间小于所述前向路径的长度;
将第二加和与所述第二差值的比值确定为所述前向路径带宽;其中,
所述第二加和为所述填充包长度的Nu倍与所述探测包的长度的加和。
8.如权利要求1所述的方法,其特征在于,所述网络传输路径的单向度量值包括后向路径带宽:
将所述第一数据包的长度与第三差值的比值确定为所述后向路径带宽;其中,
所述第三差值为第三时间戳与第四时间戳的差值,所述第三时间戳与所述第四时间戳为所述客户端通过后向路径发送的数据包对应的时间戳,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
9.如权利要求1所述的方法,其特征在于,所述网络传输路径的单向度量值包括前向路径抖动:
确定第四差值与第五差值;
将所述第四差值与所述第五差值的差值确定为所述前向路径抖动;其中,
所述第四差值为所述客户端发送第i业务数据请求包之后,所述客户端首次接收到所述第i业务数据请求包所请求的业务数据的时间戳、与发送所述第i业务数据包所请求的业务数据的时间戳的差值;
所述第五差值为所述客户端发送第i+1业务数据请求包时,所述客户端首次接收到所述第i+1业务数据请求包所请求的业务数据的时间戳、与发送所述第i+1业务数据包所请求的业务数据的时间戳的差值;i为大于等于1的整数。
10.如权利要求1至9任一项所述的方法,其特征在于,所述网络传输路径的单向度量值包括后向路径抖动:
确定第六差值,所述第六差值为所述客户端发送的第i业务数据请求包对应的时间戳与接收到所述第i业务数据请求包的时间戳的差值;
确定第七差值,所述第七差值为所述客户端发送的第i+1业务数据请求包对应的时间戳与接收到所述第i+1业务数据请求包对应的时间戳的差值,i为大于等于1的整数;
将所述第六差值与所述第七差值的差值确定为所述后向路径抖动。
11.一种信息处理装置,其特征在于,所述信息处理装置包括:
第一包处理单元,用于接收客户端的业务数据请求包;将所述客户端请求的业务数据封装入至少两个探测包,并将所述探测包通过前向路径发送;
获取单元,用于获取计时信息,所述计时信息包括所述业务数据对应的时间戳、所述业务数据请求包对应的时间戳、以及所述客户端通过后向路径发送的数据包对应的时间戳,所述前向路径与所述后向路径为与所述客户端之间的网络传输路径且传输方向不同;
确定单元,用于根据所述获取的时间戳、以及路径度量策略,确定所述网络传输路径的单向度量值,所述单向度量值表征所述网络传输路径在不同传输方向上至少一个维度的传输特性;
所述确定单元包括:
第四确定模块,用于根据第三时间戳、第四时间戳判断接收到第一数据包、第二数据包的先后时间顺序,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻;
第五确定模块,用于当所述先后时间顺序为所述第二数据包、所述第一数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第一数据包在所述后向路径上传输时发生丢包;
第六确定模块,用于当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述第四时间戳的差值与所述客户端的RTO对应时,判定所述第二数据包在所述后向路径上传输时发生丢包;
第七确定模块,用于当所述先后时间顺序为所述第一数据包、所述第二数据包、且所述第三时间戳与所述业务数据请求包对应的时间戳的差值与第一加和对应,判定所述第一数据包、以及所述第二数据包在所述后向路径上传输时均发生丢包;其中,
所述第一加和为所述客户端的RTO与第一差值的加和,所述第一差值为在所述第一数据包、所述第二数据包均未发生丢包时,所述第三时间戳与第五时间戳的差值,所述第五时间戳表征所述客户端发送所述第一数据包和所述第二数据包的同一时刻。
12.如权利要求11所述的装置,其特征在于,
所述第一包处理单元,还用于将所述业务数据封装入第一探测包和第二探测包;其中,
所述第一探测包的传输控制协议TCP头部中封装有第一确认号和第一序列号,所述第二探测包的TCP头部中封装有第二确认号和第二序列号,所述第二确认号为所述业务数据请求包中的序列号与所述业务数据请求数据包载荷长度的加和、且所述第一确认号小于所述第二确认号。
13.如权利要求12所述的装置,其特征在于,所述确定单元包括:
第一确定模块,用于当收到所述客户端发送的确认号为第一序列号的单一确认ACK包,在超时重传所述第一探测包后接收到新的业务数据请求包,且第一时间戳与第二时间戳相同时,判定所述第一探测包在所述前向路径传输时发生丢包;
第二确定模块,用于当收到所述客户端发送的确认号为第二序列号的单一ACK包,以及所述客户端重新发送的尚未被确认接收的业务数据请求包的数据,并在重传所述第二探测包后收到新的业务数据请求包时,判定所述第二探测包在所述前向路径传输时发生丢包;
第三确定模块,用于当接收到所述客户端在等待一个重传超时RTO后重传的业务数据请求包,在重传所述第一探测包后接收到所述客户端发送的确认号为第二序列号的单一ACK包,且在所述第二探测包被重传后接收到新的业务数据请求包时,判定所述第一探测包与所述第二探测包在所述前向路径传输时均发生丢包;其中,
所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
14.如权利要求11所述的装置,其特征在于,所述确定单元包括:
第八确定模块,用于当通过所述前向路径发送第一探测包和第二探测包两个探测包,接收到所述客户端发送的确认号为第一序列号的单一ACK包、以及新的业务数据请求包,且第一时间戳与第二时间戳相同时,判定所述第一探测包和所述第二探测包为前向路径乱序包;其中,
所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
15.如权利要求11所述的装置,其特征在于,所述确定单元包括:
第九确定模块,用于当所述客户端通过所述后向路径发送第一数据包和第二数据包两个数据包时,接收到所述数据包的先后时间顺序为所述第二数据包、所述第一数据包、且第三时间戳与第四时间戳的差值与所述客户端的RTO的比值小于预设阈值时,判定所述第一数据包、以及所述第二数据包为后向路径乱序包;其中,
所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
16.如权利要求11所述的装置,其特征在于,所述确定单元包括:
第十确定模块,用于通过所述前向路径发送第一探测包和第二探测包两个探测包时,将所述探测包的长度与第二差值的比值,确定为前向路径带宽;
其中,所述第二差值为第一时间戳与第二时间戳的差值;所述第一时间戳和所述第二时间戳为所述业务数据对应的时间戳,所述第一时间戳表征所述客户端接收到所述第一探测包的时刻,所述第二时间戳表征所述客户端接收所述业务数据完毕的时刻。
17.如权利要求16所述的装置,其特征在于,
所述第一包处理单元,还用于在发送所述第一探测包和所述第二探测包时发送Nu个填充包,Nu为大于0的整数;其中,所述填充包的生存时间小于所述前向路径的长度;
所述第十确定模块,还用于将第二加和与所述第二差值的比值,确定为前向路径带宽;其中,
所述第二加和为所述填充包长度Nu倍与所述第一探测包长度的加和。
18.如权利要求11所述的装置,其特征在于,所述确定单元包括:
第十一确定模块,用于当所述客户端通过所述后向路径发送第一数据包和第二数据包两个数据包时,将所述第一数据包的长度与第三差值的比值确定为后向路径带宽;其中,
所述第三差值为第三时间戳与第四时间戳的差值,所述第三时间戳与所述第四时间戳为所述客户端通过后向路径发送的数据包对应的时间戳,所述第三时间戳表征接收到所述第一数据包的时刻,所述第四时间戳表征接收到所述第二数据包的时刻。
19.如权利要求11所述的装置,其特征在于,所述确定单元包括:
第十二确定模块,用于确定第四差值与第五差值;
将所述第四差值与所述第五差值的差值确定为前向路径抖动;其中,
所述第四差值为所述客户端发送第i业务数据请求包之后,所述客户端首次接收到所述第i业务数据请求包所请求的业务数据的时间戳、与发送所述第i业务数据包所请求的业务数据的时间戳的差值;
所述第五差值为所述客户端发送第i+1业务数据请求包时,所述客户端首次接收到所述第i+1业务数据请求包所请求的业务数据的时间戳、与发送所述第i+1业务数据包所请求的业务数据的时间戳的差值;i为大于等于1的整数。
20.如权利要求11至19任一项所述的装置,其特征在于,所述确定单元包括:
第十三确定模块,用于确定第六差值,所述第六差值为所述客户端发送第i业务数据请求包对应的时间戳与接收到所述第i业务数据请求包的时间戳的差值;
确定第七差值,所述第七差值为所述客户端发送的第i+1业务数据请求包对应的时间戳与接收到所述第i+1业务数据请求包的时间戳的差值,i为大于等于1的整数;
将所述第六差值与所述第七差值的差值确定为后向路径抖动。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584882.0A CN105634836B (zh) | 2014-10-27 | 2014-10-27 | 信息处理方法及装置 |
US14/671,544 US10178204B2 (en) | 2014-10-27 | 2015-03-27 | Information processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410584882.0A CN105634836B (zh) | 2014-10-27 | 2014-10-27 | 信息处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634836A CN105634836A (zh) | 2016-06-01 |
CN105634836B true CN105634836B (zh) | 2020-03-17 |
Family
ID=55792878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410584882.0A Active CN105634836B (zh) | 2014-10-27 | 2014-10-27 | 信息处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10178204B2 (zh) |
CN (1) | CN105634836B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877865B2 (en) * | 2015-04-27 | 2020-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Compute infrastructure resource monitoring method and entities |
CN106130764B (zh) * | 2016-06-24 | 2019-04-23 | 武汉斗鱼网络科技有限公司 | 一种监控视频直播间数据服务是否可用的方法及系统 |
CN107872332B (zh) * | 2016-09-23 | 2020-12-22 | 华为技术有限公司 | 一种报文转发路径的探测方法及相关装置 |
CN107992416B (zh) * | 2017-11-28 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种网页时延的确定方法及装置 |
CN110022240B (zh) * | 2018-01-09 | 2021-03-23 | 香港理工大学深圳研究院 | 一种网络状态的测试方法、测试装置及终端设备 |
CN108880938A (zh) * | 2018-06-19 | 2018-11-23 | 成都网丁科技有限公司 | 一种端到端tcp会话测速方法 |
CN115396067A (zh) | 2018-07-02 | 2022-11-25 | 华为技术有限公司 | 重传控制方法、通信接口和电子设备 |
FR3094164B1 (fr) * | 2019-03-22 | 2021-10-29 | Streamroot | Procédé d’obtention d’un segment de données par un dispositif client apte à communiquer avec une pluralité de réseaux de diffusion de contenu |
CN112583477B (zh) * | 2019-09-27 | 2023-08-04 | 深圳市中兴微电子技术有限公司 | 一种延时测量方法、系统和存储介质 |
CN110932814B (zh) * | 2019-12-05 | 2020-10-02 | 北京邮电大学 | 软件定义的网络授时安全防护方法、装置及系统 |
CN113242113A (zh) * | 2021-04-30 | 2021-08-10 | 北京汇钧科技有限公司 | 数据传输控制方法、装置、电子设备及存储介质 |
US11606273B1 (en) * | 2021-05-24 | 2023-03-14 | Juniper Networks, Inc. | Monitoring server performance using server processing time |
CN113420263B (zh) * | 2021-06-30 | 2023-08-04 | 北京百度网讯科技有限公司 | 数据统计方法、装置、设备和存储介质 |
CN113765785B (zh) * | 2021-08-19 | 2022-07-05 | 东北大学 | 基于dpdk的多路径传输方法 |
CN114285791B (zh) * | 2021-12-17 | 2023-07-07 | 上海绚显科技有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442141B1 (en) * | 1998-08-31 | 2002-08-27 | 3Com Corporation | Network delay and loss simulator |
US6868094B1 (en) * | 1999-07-01 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for measuring network data packet delay, jitter and loss |
US7457868B1 (en) * | 2003-12-30 | 2008-11-25 | Emc Corporation | Methods and apparatus for measuring network performance |
CN102801508A (zh) * | 2012-07-26 | 2012-11-28 | 苏州科达科技有限公司 | 处理网络丢包的控制方法 |
CN103716201A (zh) * | 2013-12-12 | 2014-04-09 | 中国科学院信息工程研究所 | 一种开放型无线传感网性能测试方法及系统 |
CN103929341A (zh) * | 2014-04-30 | 2014-07-16 | 北京瑞汛世纪科技有限公司 | 网络性能的测量方法、服务器、网络探针和系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3707186A (en) | 1971-01-18 | 1972-12-26 | Foster Wheeler Corp | Cooling tube ferrule |
DE3022480A1 (de) | 1980-06-14 | 1982-01-07 | Uhde Gmbh, 4600 Dortmund | Vorrichtung zum waermetausch zwischen einen nh (pfeil abwaerts)3(pfeil abwaerts) -konverter verlassendem kreislaufgas und wasser |
SE447214B (sv) | 1984-03-20 | 1986-11-03 | Stal Laval Turbin Ab | Sett att infesta tuber i tubplatar vid vermevexlare och kondensorer |
JPH08291996A (ja) | 1995-04-21 | 1996-11-05 | Ishikawajima Harima Heavy Ind Co Ltd | 熱交換器 |
DE19548688C2 (de) | 1995-12-23 | 1999-04-08 | Balcke Duerr Gmbh | Wärmetauscher zum Kühlen von stickstoffhaltigem Gas hoher Temperatur |
AU4090600A (en) | 1999-06-30 | 2001-01-04 | Rohm And Haas Company | High performance heat exchangers |
JP4540920B2 (ja) | 2002-02-18 | 2010-09-08 | 三菱レイヨン株式会社 | 竪型多管式熱交換器及びそれを含む蒸留塔システム |
US20080037420A1 (en) * | 2003-10-08 | 2008-02-14 | Bob Tang | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san |
US20080259813A1 (en) * | 2004-03-09 | 2008-10-23 | Johnny Mikhael Matta | Method and apparatus for quality of service determination |
US7835293B2 (en) * | 2005-09-13 | 2010-11-16 | Cisco Technology, Inc. | Quality of service testing of communications networks |
US8451763B2 (en) * | 2006-12-07 | 2013-05-28 | Digimarc Corporation | Wireless local area network-based position locating systems and methods |
EP1995543A1 (fr) | 2007-05-10 | 2008-11-26 | AGC Flat Glass Europe SA | Echangeur de chaleur pour oxygène |
ES2368193T3 (es) | 2007-11-21 | 2011-11-15 | The Petroleum Oil And Gas Corporation Of South Africa (Pty) Ltd. | Conjunto de placas tubulares. |
US8402302B2 (en) * | 2008-07-03 | 2013-03-19 | Imsys Ab | Timer system for maintaining the accuracy of a real time clock when synchronization source is not available |
US8125911B2 (en) * | 2008-11-26 | 2012-02-28 | Cisco Technology, Inc. | First-hop domain reliability measurement and load balancing in a computer network |
US20100315958A1 (en) * | 2009-06-11 | 2010-12-16 | Luo Xiapu | Method for non-cooperative measurement of network data-path quality |
RU2015129749A (ru) * | 2012-12-21 | 2017-01-26 | Телефонактиеболагет Л М Эрикссон (Пабл) | Способ и компоновка узла для предоставления более точной оценки условий пути передачи данных |
-
2014
- 2014-10-27 CN CN201410584882.0A patent/CN105634836B/zh active Active
-
2015
- 2015-03-27 US US14/671,544 patent/US10178204B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442141B1 (en) * | 1998-08-31 | 2002-08-27 | 3Com Corporation | Network delay and loss simulator |
US6868094B1 (en) * | 1999-07-01 | 2005-03-15 | Cisco Technology, Inc. | Method and apparatus for measuring network data packet delay, jitter and loss |
US7457868B1 (en) * | 2003-12-30 | 2008-11-25 | Emc Corporation | Methods and apparatus for measuring network performance |
CN102801508A (zh) * | 2012-07-26 | 2012-11-28 | 苏州科达科技有限公司 | 处理网络丢包的控制方法 |
CN103716201A (zh) * | 2013-12-12 | 2014-04-09 | 中国科学院信息工程研究所 | 一种开放型无线传感网性能测试方法及系统 |
CN103929341A (zh) * | 2014-04-30 | 2014-07-16 | 北京瑞汛世纪科技有限公司 | 网络性能的测量方法、服务器、网络探针和系统 |
Non-Patent Citations (3)
Title |
---|
"Real-Time Measurement of End-to-End Available Bandwidth using Kalman Filtering";Svante Ekelin 等;《IEEE Xplore Digital Library》;20061023;第73-84页 * |
"网络带宽主动测量技术研究";何敬林;《中国优秀硕士学位论文全文数据库信息科技辑》;20100215;I139-37 * |
"网络服务质量的测量技术研究";赵立军;《中国优秀硕士学位论文全文数据库信息科技辑》;20130115;I139-167 * |
Also Published As
Publication number | Publication date |
---|---|
CN105634836A (zh) | 2016-06-01 |
US20160119214A1 (en) | 2016-04-28 |
US10178204B2 (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105634836B (zh) | 信息处理方法及装置 | |
Shreedhar et al. | Evaluating QUIC performance over web, cloud storage, and video workloads | |
EP3535932B1 (en) | Application characterization using transport protocol analysis | |
US7496036B2 (en) | Method and apparatus for determining client-perceived server response time | |
US9143418B2 (en) | Network transmission capacity measurement | |
KR20200109326A (ko) | 광대역 통신 링크 성능 모니터링을 위한 시스템 및 방법 | |
Strowes | Passively measuring TCP round-trip times | |
CN108322401A (zh) | 网络传输拥塞的控制方法及装置 | |
Rüth et al. | Demystifying TCP initial window configurations of content distribution networks | |
JP6613742B2 (ja) | 負荷変動およびパケット伝送損失があるlfn伝送路で高信頼通信を行うためのデータ通信制御方法 | |
Murata et al. | A quality measurement tool for high-speed data transfer in long fat networks | |
Vernersson | Analysis of UDP-based reliable transport using network emulation | |
Szilágyi et al. | LTE user plane congestion detection and analysis | |
Luo et al. | On measuring one-way path metrics from a web server | |
US10015288B2 (en) | Communication apparatus and control method of communication apparatus | |
Abdelsalam et al. | Evaluation of TCP wave performance applied to real HTTP traffic | |
CN119276721B (zh) | Cdn数据传输的控制方法、装置、设备、介质及程序产品 | |
JP5739373B2 (ja) | 可用帯域測定装置及び方法及びプログラム | |
Gaudin et al. | Measuring internet performances with QUIC | |
Veera Valli et al. | Interactions between TCP and Ethernet flow control over Netgear XAVB2001 HomePlug AV links | |
Lee et al. | Web object transfer latency over SCTP in the initial slow-start phase | |
Pinar | Passive queue size estimation from a middlebox in TCP/IP networks | |
Shamsi et al. | Principles of Network Monitoring | |
Opstad | Taming redundant data bundling | |
Peuhkuri | Application and TCP measurements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |