CN110391953B - 提高tcp kpi计算准确度的方法 - Google Patents

提高tcp kpi计算准确度的方法 Download PDF

Info

Publication number
CN110391953B
CN110391953B CN201810351996.9A CN201810351996A CN110391953B CN 110391953 B CN110391953 B CN 110391953B CN 201810351996 A CN201810351996 A CN 201810351996A CN 110391953 B CN110391953 B CN 110391953B
Authority
CN
China
Prior art keywords
tcp
ack
packet
value
delay
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
Application number
CN201810351996.9A
Other languages
English (en)
Other versions
CN110391953A (zh
Inventor
刘�东
翁昌清
吴雪波
杨文昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dekscom Technologies Ltd
Original Assignee
Dekscom Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dekscom Technologies Ltd filed Critical Dekscom Technologies Ltd
Priority to CN201810351996.9A priority Critical patent/CN110391953B/zh
Publication of CN110391953A publication Critical patent/CN110391953A/zh
Application granted granted Critical
Publication of CN110391953B publication Critical patent/CN110391953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明揭示了一种TCP下载速率计算优化方法及提高TCP KPI计算准确度的方法,包括:A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0;A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率:TCP下载速率(Bps)=(ACKn‑ACK0)/(tn‑t0);A3、当ACKn<ACKn‑1时,计算公式为:TCP下载速率(Bps)=(ACKn‑ACK0+N)/(tn‑t0)。本发明可提高网络抓包有损情况下的TCP下载速率计算的精确度,提高网络DPI设备对TCP流量监测的性能和效率。

Description

提高TCP KPI计算准确度的方法
技术领域
本发明属于网络通讯技术领域,涉及一种TCP流量性能监测方法,尤其涉及一种TCP下载速率计算优化方法;同时,本发明还涉及一种提高TCP KPI计算准确度的方法。
背景技术
近年来,随着互联网的快速发展,对IP网络和各种上层应用(如Web访问、电子商务、视频、游戏、即时通信等)业务质量的监测需求也日益增长。目前业界普遍采用在IP网络的各个关键网络节点位置(包括骨干层、汇聚层、接入层、用户侧)部署被动监测探针设备,来实现对IP网络流量和各种上层应用的业务质量监测。
由于IP网络流量增长迅猛,在IP骨干网上广泛采用10G、40G甚至100G的光纤链路传输数据,在用户侧千兆家庭网关、百兆接口4K机顶盒也越来越普及。这种大流量的网络环境对监测设备和软件的底层抓包性能提出了极大的挑战,目前的商用万兆服务器网卡、家庭网关和机顶盒等终端设备的千兆/百兆网卡均无法保证在大流量情况下实现100%数据包捕获性能。由于大部分互联网应用主要采用TCP协议来传输数据,因此业界迫切需要找到一种能在网络抓包有损情况下,仍能较准确地计算各项TCP KPI指标(包括TCP下载速率、TCP时延、 TCP重传率)的方法。
高流量情况下IP网络抓包性能分析
通常IP监测设备或软件的网络抓包分析模块使用libpcap接口从网口捕获IP数据包, libpcap采用“尽力而为”转发机制向抓包分析模块发送数据包。以OTT机顶盒中部署QoS软探针为例,机顶盒操作***内核为了保障主要业务(如机顶盒视频播放)不受影响,到达网卡的数据包会优先发送给TCP/IP协议栈,经过重组后传递到机顶盒播放器。当开启libpcap 抓包时,内核会通过中断通知QoS软探针抓包分析模块尽快将收到的数据复制传递走。
在播放4K超高清视频等高流量的情况下,libpcap往往无法全量拷贝出网口数据包,从而造成QoS软探针所抓取的数据包大量缺失。以一个普通配置的安卓OTT机顶盒为例,在4K 视频下载时,视频媒体流传输协议栈采用MPEG-TS/HTTP/TCP/IP/Ethernet情况下,对终端网卡抓包性能进行测试,抓包模块丢包严重程度与网口流量关系如图1所示。
通过对抓包模块丢包的特性做进一步分析,发现一个规律:视频服务器发送给机顶盒的下行视频数据包,由于数据包长度较大(一般在1300-1500字节左右)、并且数量较多,因此丢包情况较为严重;相反机顶盒发送给视频服务器的上行TCP ACK应答包文,由于数据包长度较小(一般在64-100字节左右),则不容易被抓包模块丢失。
根据以上分析,在机顶盒这类网卡性能较低的设备上,通过传统网口抓包分析方法来计算TCP KPI指标,由于在高流量情况下抓包模块丢包严重,会导致所计算的TCP下载速率、 TCP时延、TCP重传率等指标存在很大的误差。考虑到上行TCP ACK小报文比下行TCP大数据包文的丢包概率要小很多,因此可以对传统TCP KPI指标计算方法进行了优化改进,来提高 TCP KPI指标计算准确度,以达到合理的误差范围。
传统的TCP KPI指标计算方法及缺陷
1、TCP下载速率
图2是一个TCP/IP报文的IP包头格式描述。
由于IP包头的Total length字段可用来标识当前IP包的总大小,因此可以通过统计这个字段的数值,来计算出来一段时间内的TCP下载速率(即这段时间内下载IP包的总大小除以该时间段长度)。
这种算法的缺陷是:在网口抓包模块出现严重丢包的情景下,就无法准确统计出下行数据包的总字节数,从而导致TCP下载速率计算出现较大误差(误差率同丢包率严重程度基本成正比)。
2、TCP时延
图3是一个TCP连接建立过程中的三次握手流程示意图。
一般情况下,根据TCP三次握手过程,TCP握手包SYN(时间戳t0)到握手响应包SYN,ACK (时间戳t1)记录了一次TCP包往返的过程,这个往返过程所消耗的时长即定义为TCP时延 (TCP时延=t1-t0)。
这种算法的缺陷是:在网络高流量情景下,TCP握手包SYN和TCP握手响应包SYN,ACK都很可能会被抓包模块丢失,从而造成无法计算出TCP时延指标。
3、TCP重传率
根据TCP协议规则,服务器向客户端发送数据包,若数据包在网络传输过程中出现丢失,客户端会向服务器发送重传请求,服务器会对丢失的数据包进行重传,这些重复发送的数据包称之为TCP重传包。TCP重传率的计算方法如下:
TCP重传率=TCP重传包数/下行总包数
这种算法的缺陷是:在网络高流量情景下,因为抓包模块对下行TCP报文的丢包严重,重复发送的数据包数和正常发送的下行包都可能未被捕获到,从而造成计算出的TCP重传率严重失真。
有鉴于此,如今迫切需要设计一种新的IP网络性能监测优化方式,以便克服现有IP网络性能监测方式存在的上述缺陷。
发明内容
本发明所要解决的技术问题是:提供一种TCP下载速率计算优化方法,可提高TCP下载速率获取的精确度,提高网络DPI设备对TCP流量监测的性能和效率。
此外,本发明还提供一种提高TCPKPI计算准确度的方法,可提高TCP下载速率、TCP时延、TCP重传率指标计算精准度,提高网络DPI设备对TCP流量监测的性能和效率。
为解决上述技术问题,本发明采用如下技术方案:
一种TCP下载速率计算优化方法,所述方法包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK 值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/(tn-t0)。
作为本发明的一种优选方案,根据TCP头部信息中,Acknowledgement Number表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率。
作为本发明的一种优选方案,初始化条件:
ACK0=0;
t0=0。
一种提高TCPKPI计算准确度的方法,所述方法包括:
TCP下载速率计算优化步骤,具体包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK 值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/(tn-t0)。
作为本发明的一种优选方案,根据TCP头部信息中,Acknowledgement Number表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率。
作为本发明的一种优选方案,初始化条件:
ACK0=0;
t0=0。
一种提高TCPKPI计算准确度的方法,所述方法包括:
——步骤A、TCP下载速率计算优化步骤,根据TCP头部信息中,AcknowledgementNumber 表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率;具体包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK 值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/(tn-t0)。
——步骤B、TCP时延计算步骤,采用跟踪TCP数据流,通过匹配TCP下行数据包序号值和应答数据包ACK值,找到相对应的TCP下行数据和上行ACK应答数据报文对,分别提取上下行报文的时间戳,并计算这两个时间戳的差值,从而获取TCP网络时延;具体包括:
步骤B1、初始化TCP_Delay_sum=0,TCP_Delay_cnt=0;
TCP时延均值用TCP_Delay_sum/TCP_Delay_cnt表述;TCP_Delay_sum是指TCP时延累计值,TCP_Delay_cnt是指有效的TCP时延统计次数;
步骤B2、解析TCP包头信息,记录每一个下行数据包的序号SEQn、TCP长度lenn、对应时间戳tn,计算对应的TCP应答报文的ACKn=SEQn+lenn,这样得到下行报的三个序号一致的集合:序号集合SEQ_AGG、时间戳集合t_AGG、ACK集合ACK_AGG;
步骤B3、记录上行ACK包的时间戳Tm和ACK值ACKm,若ACKm属于集合ACK_AGG,则取出对应的下行包的时间戳tm,并计算本次上下行TCP数据包匹配对的TCP时延值为: TCP_Delaym=Tm-tm
步骤B4、将最新得到的TCP时延累计计算:
TCP_Delay_sum=TCP_Delay_sum+TCP_Delaym
TCP_Delay_cnt=TCP_Delay_cnt+1;
步骤B5、计算得到的平均TCP时延为:
TCP时延=TCP_Delay_sum/TCP_Delay_cnt。
——步骤C、TCP重传率计算步骤,通过上行TCP ACK应答报文包头的ACK字段,对下行 TCP总包数和TCP重传包数进行较准,以提高TCP重传率指标的计算准确性;具体包括:
步骤C1、初始化TCP重传包数R=0,平均TCP下行包长B=0,初始ACK0
步骤C2、当捕获到一个新的下行TCP报文时,解析该报文的包头信息,获取其包长Bn和包序号SEQn,并累计下行总包数n;并计算下行TCP平均包长B=∑(B0,B1..Bn)/n;
步骤C3、比对当前下行TCP报文包序号SEQn与上一个下行TCP报文的包序号SEQn-1
若SEQn<SEQn-1,即包序号发生回跳,则可判定包序号为SEQn的报文为TCP重传包,TCP 重传包数R加1;同时记录每一个TCP重传包的ACK值,从而形成TCP重传包ACK_AGG集合;
若SEQn>=SEQn-1,则不做任何处理;
步骤C4、当捕获到一个新的上行TCP报文时,检查该报文的ACK字段,若发现该ACK数值与之前收到的上行报文的ACK数值相同,则记录该报文的ACK数值为ACK_up;
步骤C5、对比ACK_up与TCP重传包ACK_AGG集合中的成员:
若存在ACK_up与SEQ成员数值相同的情况,则不做任何处理;
若不存在相同情况,则将TCP重传包R数量加1,并记录该ACK_up;
步骤C6、计算TCP下行报文的总包数T:T=(ACK_up-ACK0)/B;
步骤C7、计算TCP重传率=R/T*100%。
本发明的有益效果在于:本发明提出的TCP下载速率计算优化方法,可提高TCP下载速率获取的精确度,提高网络DPI设备对TCP流量监测的性能和效率。此外,本发明提出的提高TCPKPI计算准确度的方法,可以在网络抓包有损情况下提高TCP下载速率、TCP时延、TCP 重传率指标计算精准度,提高网络DPI设备对TCP流量监测的性能和效率。
附图说明
图1为抓包模块丢包严重程度与网口流量关系示意图。
图2为TCP/IP报文的IP包头格式示意图。
图3为TCP连接建立过程中的三次握手流程示意图。
图4为本发明TCP下载速率计算优化方法的流程图。
图5为本发明TCP时延计算方法的流程图。
图6为本发明TCP重传率计算方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
请参阅图4,本发明揭示了一种TCP下载速率计算优化方法,根据TCP头部信息中,Acknowledgement Number表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次 ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率。
所述TCP下载速率计算优化方法包括如下步骤:
【步骤A1】对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
【步骤A2】每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其 ACK值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
【步骤A3】考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/ (tn-t0)。
本实施例中,初始化条件为:ACK0=0;t0=0。
实施例二
本发明揭示一种提高TCPKPI计算准确度的方法,所述方法包括:
【步骤A】TCP下载速率计算优化步骤,根据TCP头部信息中,AcknowledgementNumber 表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率。请参阅图4,步骤A具体包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK 值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/(tn-t0)。
实施例三
本发明揭示一种提高TCPKPI计算准确度的方法,所述方法包括:
【步骤A】TCP下载速率计算优化步骤,根据TCP头部信息中,AcknowledgementNumber 表示对收到的下行包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行包的大小,根据这个特性,根据上行包的ACK差值反推出实际TCP下载字节数,从而计算TCP下载速率。请参阅图4,步骤A具体包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK报文进行跟踪分析,尤其解析其中的确认标志确认编号Acknowledgement Number字段值,确认标志确认编号Acknowledgement Number字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK报文时,就提取出该ACK报文的时间戳tn和其ACK 值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0)/(tn-t0);
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率(Bps)=(ACKn-ACK0+N)/(tn-t0)。
【步骤B】TCP时延计算步骤,采用跟踪TCP数据流,通过匹配TCP下行数据包序号值和应答数据包ACK值,找到相对应的TCP下行数据和上行ACK应答数据报文对,分别提取上下行报文的时间戳,并计算这两个时间戳的差值,从而获取TCP网络时延。请参阅图5,步骤B具体包括:
步骤B1、初始化TCP_Delay_sum=0,TCP_Delay_cnt=0;
TCP时延均值用TCP_Delay_sum/TCP_Delay_cnt表述;TCP_Delay_sum是指TCP时延累计值,TCP_Delay_cnt是指有效的TCP时延统计次数;
步骤B2、解析TCP包头信息,记录每一个下行数据包的序号SEQn、TCP长度lenn、对应时间戳tn,计算对应的TCP应答报文的ACKn=SEQn+lenn,这样得到下行报的三个序号一致的集合:序号集合SEQ_AGG、时间戳集合t_AGG、ACK集合ACK_AGG;
步骤B3、记录上行ACK包的时间戳Tm和ACK值ACKm,若ACKm属于集合ACK_AGG,则取出对应的下行包的时间戳tm,并计算本次上下行TCP数据包匹配对的TCP时延值为: TCP_Delaym=Tm-tm
步骤B4、将最新得到的TCP时延累计计算:
TCP_Delay_sum=TCP_Delay_sum+TCP_Delaym
TCP_Delay_cnt=TCP_Delay_cnt+1;
步骤B5、计算得到的平均TCP时延为:
TCP时延=TCP_Delay_sum/TCP_Delay_cnt。
【步骤C】TCP重传率计算步骤,通过上行TCP ACK应答报文包头的ACK字段,对下行TCP 总包数和TCP重传包数进行较准,以提高TCP重传率指标的计算准确性。请参阅图6,步骤C 具体包括:
步骤C1、初始化TCP重传包数R=0,平均TCP下行包长B=0,初始ACK0
步骤C2、当捕获到一个新的下行TCP报文时,解析该报文的包头信息,获取其包长Bn和包序号SEQn,并累计下行总包数n;并计算下行TCP平均包长B=∑(B0,B1..Bn)/n;
步骤C3、比对当前下行TCP报文包序号SEQn与上一个下行TCP报文的包序号SEQn-1
若SEQn<SEQn-1,即包序号发生回跳,则可判定包序号为SEQn的报文为TCP重传包,TCP 重传包数R加1;同时记录每一个TCP重传包的ACK值,从而形成TCP重传包ACK_AGG集合;
若SEQn>=SEQn-1,则不做任何处理;
步骤C4、当捕获到一个新的上行TCP报文时,检查该报文的ACK字段,若发现该ACK数值与之前收到的上行报文的ACK数值相同,则记录该报文的ACK数值为ACK_up;
步骤C5、对比ACK_up与TCP重传包ACK_AGG集合中的成员:
若存在ACK_up与SEQ成员数值相同的情况,则不做任何处理;
若不存在相同情况,则将TCP重传包R数量加1,并记录该ACK_up;
步骤C6、计算TCP下行报文的总包数T:T=(ACK_up-ACK0)/B;
步骤C7、计算TCP重传率=R/T*100%。
所述方法还包括流程初始条件(如可以设置于步骤C1中):
设定ACK上行包序号为0:ACK_up=0;
设定ACK下行包序号为0:ACK0=0;
设定时间戳为0:T=0。
综上所述,本发明提出的TCP下载速率计算优化方法,根据TCP上行报文的ACK差值反推出实际TCP下载字节数,计算TCP下载速率,可克服在高流量情况下抓包模块会丢失一部分下行报文的缺陷,从而提高TCP下载速率获取的精确度,提高网络DPI设备对TCP流量监测的性能和效率。此外,本发明提出的提高TCPKPI计算准确度的方法,可提高TCP下载速率、TCP时延、TCP重传率指标计算精准度,提高网络DPI设备对TCP流量监测的性能和效率。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

Claims (1)

1.一种提高TCP KPI计算准确度的方法,其特征在于,所述方法包括:
步骤A、TCP下载速率计算优化步骤,根据TCP头部信息中,AcknowledgementNumber表示对收到的下行数据包的数据流序号的确认,ACK值的大小=上一次ACK值大小+收到下行数据包的大小,根据这个特性,根据上行数据包的ACK值的差反推出实际TCP下载字节数,从而计算TCP下载速率;具体包括:
步骤A1、对捕获的TCP数据流进行协议解析,对TCP上行ACK应答报文进行跟踪分析,解析其中的确认标志确认编号AcknowledgementNumber字段值,确认标志确认编号AcknowledgementNumber字段值简称ACK值,记录第一个TCP ACK包的时间戳t0,第一个包的ACK值为ACK0
步骤A2、每当接收到新的TCP上行ACK应答报文时,就提取出该ACK应答报文的时间戳tn和其ACK值ACKn,并计算t0到tn这段时间内的TCP下载数据字节总个数,即ACKn–ACK0;进而计算这段时间的TCP下载速率,计算公式为:TCP下载速率=(ACKn-ACK0)/(tn-t0),其中,TCP下载速率的单位为Bps;
步骤A3、考虑到ACK存在上限值N的情况,每次计算时需要判断ACK值是否超过最大值后出现循环的情况,当ACKn<ACKn-1时,计算公式为:TCP下载速率=(ACKn-ACK0+N)/(tn-t0),其中,TCP下载速率的单位为Bps;
步骤B、平均TCP时延计算步骤,采用跟踪TCP数据流,通过匹配TCP下行数据包序号值和上行应答数据包ACK值,找到相对应的TCP下行数据和上行ACK应答数据报文对,分别提取上下行报文的时间戳,并计算这两个时间戳的差值,从而获取TCP网络时延;具体包括:
步骤B1、初始化TCP_Delay_sum=0,TCP_Delay_cnt=0;
平均TCP时延用TCP_Delay_sum/TCP_Delay_cnt表述;TCP_Delay_sum是指TCP时延累计值,TCP_Delay_cnt是指有效的TCP时延统计次数;
步骤B2、解析TCP包头信息,记录每一个下行数据包的序号SEQn、TCP长度lenn及对应时间戳tn,计算对应的TCP ACK应答报文的ACKn=SEQn+lenn,这样得到下行数据包的三个集合:序号集合SEQ_AGG、时间戳集合t_AGG及ACK集合ACK_AGG;
步骤B3、记录上行ACK包的时间戳Tm和ACK值ACKm,若ACKm属于集合ACK_AGG,则取出对应的下行数据包的时间戳tm,并计算本次上下行TCP数据包匹配对的TCP时延值为:TCP_Delaym=Tm-tm
步骤B4、将最新得到的TCP时延累计计算:
TCP_Delay_sum=TCP_Delay_sum+TCP_Delaym
TCP_Delay_cnt=TCP_Delay_cnt+1;
步骤B5、计算得到的平均TCP时延为:
平均TCP时延=TCP_Delay_sum/TCP_Delay_cnt;
步骤C、TCP重传率计算步骤,通过上行TCP ACK应答报文包头的ACK字段,对下行TCP总包数和TCP重传包数进行较准,以提高TCP重传率指标的计算准确性;具体包括:
步骤C1、初始化TCP重传包数R=0,平均TCP下行数据包长B=0,初始化ACK0
步骤C2、当捕获到一个新的下行TCP报文时,解析该报文的包头信息,获取其包长Bn和包序号SEQn,并累计下行总包数n;并计算下行TCP平均包长B=∑(B0,B1...Bn)/n;
步骤C3、比对当前下行TCP报文包序号SEQn与上一个下行TCP报文的包序号SEQn-1
若SEQn<SEQn-1,即包序号发生回跳,则可判定包序号为SEQn的报文为TCP重传包,TCP重传包数R加1;同时记录每一个TCP重传包的ACK值,从而形成TCP重传包ACK_AGG集合;
若SEQn>=SEQn-1,则不做任何处理;
步骤C4、当捕获到一个新的上行TCP报文时,检查该报文的ACK字段,若发现该ACK数值与之前收到的上行报文的ACK数值相同,则记录该报文的ACK数值为ACK_up;
步骤C5、对比ACK_up与TCP重传包ACK_AGG集合中的成员:
若存在ACK_up与所述成员数值相同的情况,则不做任何处理;
若不存在相同情况,则将TCP重传包R数量加1,并记录该ACK_up;
步骤C6、计算TCP下行报文的总包数T:T=(ACK_up-ACK0)/B;
步骤C7、计算TCP重传率=R/T*100%。
CN201810351996.9A 2018-04-19 2018-04-19 提高tcp kpi计算准确度的方法 Active CN110391953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810351996.9A CN110391953B (zh) 2018-04-19 2018-04-19 提高tcp kpi计算准确度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810351996.9A CN110391953B (zh) 2018-04-19 2018-04-19 提高tcp kpi计算准确度的方法

Publications (2)

Publication Number Publication Date
CN110391953A CN110391953A (zh) 2019-10-29
CN110391953B true CN110391953B (zh) 2023-03-28

Family

ID=68283466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810351996.9A Active CN110391953B (zh) 2018-04-19 2018-04-19 提高tcp kpi计算准确度的方法

Country Status (1)

Country Link
CN (1) CN110391953B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401575A (zh) * 2018-04-24 2019-11-01 德科仕通信(上海)有限公司 一种tcp时延计算方法及提高tcp kpi计算准确度的方法
CN110401574A (zh) * 2018-04-24 2019-11-01 德科仕通信(上海)有限公司 一种tcp重传率计算方法、提高tcp kpi计算准确度的方法
CN113347107B (zh) * 2020-03-02 2022-10-14 ***通信集团浙江有限公司 基于上行报文的流量调度方法、装置及计算设备
CN114390570B (zh) * 2020-10-20 2023-11-21 ***通信集团北京有限公司 网络速率的检测方法、装置、设备及计算机存储介质
CN113904960B (zh) * 2021-12-06 2022-03-15 上海金仕达软件科技有限公司 测量数据传输延时的方法、装置、***及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595584A (zh) * 2013-11-13 2014-02-19 德科仕通信(上海)有限公司 Web应用性能问题的诊断方法及***
CN106899510A (zh) * 2015-12-18 2017-06-27 华为技术有限公司 一种基于iSCSI协议的传输速率控制方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595584A (zh) * 2013-11-13 2014-02-19 德科仕通信(上海)有限公司 Web应用性能问题的诊断方法及***
CN106899510A (zh) * 2015-12-18 2017-06-27 华为技术有限公司 一种基于iSCSI协议的传输速率控制方法和装置

Also Published As

Publication number Publication date
CN110391953A (zh) 2019-10-29

Similar Documents

Publication Publication Date Title
CN110391953B (zh) 提高tcp kpi计算准确度的方法
US11855895B2 (en) Systems, apparatuses and methods for network packet management
EP3535932B1 (en) Application characterization using transport protocol analysis
Sengupta et al. Continuous in-network round-trip time monitoring
US20080298376A1 (en) Network communication with path mtu size discovery
US20090245103A1 (en) Congestion detection method, congestion detection apparatus, and recording medium storing congestion detection program recorded thereon
US11936930B2 (en) Data processing method, server, and data collection device
WO2007033555A1 (fr) Procede, dispositif et systeme d&#39;obtention d&#39;un parametre d&#39;efficacite de liaison
JP5440200B2 (ja) 中継装置及び帯域制御方法
CN110401574A (zh) 一种tcp重传率计算方法、提高tcp kpi计算准确度的方法
CN110401575A (zh) 一种tcp时延计算方法及提高tcp kpi计算准确度的方法
US20140086091A1 (en) Method, apparatus, and system for analyzing network transmission characteristic
KR100943728B1 (ko) Ip 패킷 헤더의 총길이 필드를 이용한 링크별 가용대역폭 측정 방법 및 링크의 가용 대역폭 정보 관리 방법
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
CN113923133B (zh) 基于quic的加密网页流量的体验质量指标监控方法
Schulte et al. On detecting TCP path saturation in LTE networks
Yang et al. Towards measuring the deployment information of different TCP congestion control algorithms: The multiplicative decrease parameter
OZAWA et al. Tantalum dry-etching characteristics for X-ray mask fabrication
Shang et al. Making better use of all those TCP ACK Packets
Pinar Passive queue size estimation from a middlebox in TCP/IP networks
Flach Detecting and Mitigating Root Causes for Slow Web Transfers

Legal Events

Date Code Title Description
PB01 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