一种通用的TCP性能诊断方法及装置制造方法及图纸

技术编号:21898948 阅读:124 留言:0更新日期:2019-08-17 18:25
本发明专利技术涉及一种通用的TCP性能诊断方法及装置,包括:抓取TCP报文并拷贝到内核缓冲区;将内核缓冲区中存储的报文由内核态重组为用户态以还原得到每个TCP流;根据TCP流的时序信息计算得到传播延迟;将TCP流进行粒度划分,得到粒度划分结果及对应的过滤器窗口长度;根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽;结合传播延迟和瓶颈带宽输出性能诊断结果。与现有技术相比,本发明专利技术适用于各种拥塞控制算法,具备高度的实用性且易于部署,同时可以实时诊断多个TCP连接。

A General TCP Performance Diagnosis Method and Device

【技术实现步骤摘要】
一种通用的TCP性能诊断方法及装置
本专利技术涉及网络测量和网络性能诊断领域,尤其是涉及一种通用的TCP性能诊断方法及装置。
技术介绍
随着各种新型网络的涌现以及网络的升级换代,企业的网络服务会承载越来越多的用户数目和流量。一旦发生网络故障,企业内部必须组织相关人员进行故障排查和定位,而该过程往往会消耗过多的时间,最终使得企业和用户承担不必要的损失。一个TCP连接由发送端、接收端和网络中间节点组成,三者相对独立地工作,并且都可能成为性能瓶颈,在发生性能故障时往往难以确定具体是哪个部分出现了问题。此外,现代的网络应用往往采用了分层的架构(multi-tierarchitecture),它由面向用户的前端(例如网络代理和负载均衡)和IO或CPU密集的后端(例如数据库查询)。这种架构进一步加大了故障定位的难度。一个自动化的网络性能诊断工具能够及时指出性能瓶颈所在,这样就能帮助运维人员尽快修复故障。现有的工具采取了两种不同的方案:包级别的诊断和侵入内核的诊断。前者需要遍历每一个TCP报文,在程序实现上有很高的难度;后者需要运行在服务端的内核协议栈中,会降低服务的稳定性和性能。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种通用的TCP性能诊断工具。本专利技术的目的可以通过以下技术方案来实现:一种通用的TCP性能诊断方法,包括:抓取TCP报文并拷贝到内核缓冲区;将内核缓冲区中存储的报文由内核态重组为用户态以还原得到每个TCP流;根据TCP流的时序信息计算得到传播延迟;将TCP流进行粒度划分,得到粒度划分结果及对应的过滤器窗口长度;根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽;结合传播延迟和瓶颈带宽输出性能诊断结果。所述根据TCP流的时序信息计算得到传播延迟,包括:基于TCP流的时序信息得到往返时间RTT;根据往返时间RTT得到传播延迟。所述传播延迟具体为:其中,RTprop(T)为网络传播延迟,Wt为我们选取的时间窗口的长度,T为当前时刻。所述根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽,包括:基于发送端的发送速率和接收端的确认速率,取二者最小值作为报文递交速率;根据递交速率计算得到瓶颈带宽。所述瓶颈带宽具体为:其中,BtlBw(n)为网络链路中所有节点的可用带宽的最小值,Wf为过滤器所选取的窗口长度,单位是flight,n为报文所被划分的数量。一种通用的TCP性能诊断装置,包括:抓包模块,用于抓取TCP报文并拷贝到内核缓冲区;TCP流重组模块,用于将内核缓冲区中存储的报文由内核态重组为用户态以还原得到每个TCP流;粒度划分模块,用于将TCP流进行粒度划分,得到粒度划分结果及对应的过滤器窗口长度;网络测量模块,用于根据TCP流的时序信息计算得到传播延迟,根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽;诊断算法模块,用于结合传播延迟和瓶颈带宽输出性能诊断结果。所述网络测量模块包括:往返时间获取单元,用于基于TCP流的时序信息得到往返时间RTT;传播延迟获取单元,用于根据往返时间RTT得到传播延迟。所述网络测量模块包括:递交速率获取单元,用于比较发送端的发送速率和接收端的确认速率,取二者最小值作为报文递交速率;瓶颈带宽获取单元,用于根据递交速率计算得到瓶颈带宽。与现有技术相比,本专利技术具有以下有益效果:1.本专利技术独立于服务端的拥塞控制算法和应用层的实现细节,具备高度的通用性且易于部署。2.以带有多队列的RSS网卡作为硬件支撑,将处理TCP报文的负载均摊到多个CPU核心上,同一个TCP连接的报文会由同一个核心来处理,提高处理的吞吐量并降低延迟,同时提供多线程实现的技术方案,能够实时诊断多个TCP连接。3.本专利技术会监测TCP流的状态变化和网络本身的变化,实时更新诊断结果,使用户可以查看网络性能的最新情况以及故障的解决进度。4.基于flight自适应粒度的网络性能诊断算法,能够自动化定位一个TCP流的性能瓶颈,缩短了对故障进行排查和定位的时间,帮助运维人员快速修复故障。附图说明图1为本专利技术的整体设计示意图。图2为抓包模块的设计示意图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。如图1所示,本申请通过计算机系统实现,由计算机系统的处理器执行,自底向上由抓包模块、TCP流重组模块、网络测量模块、粒度划分模块和诊断算法模块等五个模块组成。抓包模块位于软件系统的底层,负责高效地从网卡里捕获TCP报文到用户态以供上层使用。需要捕获TCP头部和捕获的时间戳,时间戳的精度需要精确到毫秒级及以上。如图2所示,抓包模块采用带有多队列的RSS网卡作为硬件支撑,然后使用PF_RING抓包工具来实现多线程的抓包。RSS网卡能够将处理TCP报文的负载均摊到多个CPU核心上,而且同一个TCP连接的报文总会由同一个核心来处理,这样就能够发挥多核处理器的性能提高处理的吞吐量并降低延迟。PF_RING负责从各个队列里拷贝TCP报文到内核缓冲区中,并提供用户态的访问接口。TCP流重组模块的主要功能是从双向报文流中重建TCP连接的状态,并将捕获的报文头部按照序号重新排列,并且存储必要的元信息。元信息主要用来计算RTT、发送速度、接收速度以及确认字节数等等,进一步测量出瓶颈带宽和传播延迟。为了重组一个TCP流,首先对各个报文的四元组求哈希值以映射到不同的TCP流。然后从SYN报文和SYN+ACK报文中获得连接建立的信息以及TCP的各种选项的值;从FIN报文中获得连接关闭的信息。在TCP流级别中,需要维护已递交字节数(deliveredbytes)和最近递交时间(deliveredtime)。“递交”是指发送端的数据被接收端确认的过程;“已递交”表示发送端收到了一个确认报文,该报文递交了一些数据;“递交时间”则是指发送端收到有效确认报文的时间。每当收到一个ACK报文,首先在数据报文的队列里面查找是否有报文被确认,同时需要考虑TCP的选择确认(SACK)选项,该选项能够确认不连续的报文。如果有报文被确认了,则累加已递交字节数,该数值等于数据报文的负载大小(payloadsize);同时还需要更新最近递交时间,该时间值等于确认报文的时间戳。报文的时间戳由PF_RING的内核模块维护,不是交付用户态时的系统时间。粒度划分模块使用了基于flight的自适应的动态划分算法,该算法能够根据网络自身的环境和TCP连接的状态动态选择时间间隔或者报文数目来诊断性能瓶颈。这里的flight是划分报文的一个单位。我们首先把报文划分为多个flight,然后根据一定的匹配规则找到每一个flight的性能瓶颈。flight本身的大小是随时间不断变化的,主要取决于拥塞控制算法和网络环境本身。网络测量模块负责测量网络链路的瓶颈带宽和传播延迟。瓶颈带宽BtlBw(bottleneckbandwidth)是指网络链路中所有节点的可用带宽的最小值,该值是一个TCP连接所能带到带宽的上限。测量过程设计三个指标:(1)发送速率(sendrate)。发送速率是指单位时间内,发送端发送的字节数,即sendRate=ΔsendBytes本文档来自技高网...

【技术保护点】
1.一种通用的TCP性能诊断方法,其特征在于,包括:抓取TCP报文并拷贝到内核缓冲区;将内核缓冲区中存储的报文由内核态重组为用户态以还原得到每个TCP流;根据TCP流的时序信息计算得到传播延迟;将TCP流进行粒度划分,得到粒度划分结果及对应的过滤器窗口长度;根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽;结合传播延迟和瓶颈带宽输出性能诊断结果。

【技术特征摘要】
1.一种通用的TCP性能诊断方法,其特征在于,包括:抓取TCP报文并拷贝到内核缓冲区;将内核缓冲区中存储的报文由内核态重组为用户态以还原得到每个TCP流;根据TCP流的时序信息计算得到传播延迟;将TCP流进行粒度划分,得到粒度划分结果及对应的过滤器窗口长度;根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽;结合传播延迟和瓶颈带宽输出性能诊断结果。2.根据权利要求1所述的一种通用的TCP性能诊断方法,其特征在于,所述根据TCP流的时序信息计算得到传播延迟,包括:基于TCP流的时序信息得到往返时间RTT;根据往返时间RTT得到传播延迟。3.根据权利要求2所述的一种通用的TCP性能诊断方法,其特征在于,所述传播延迟具体为:其中,RTprop(T)为网络传播延迟,Wt为我们选取的时间窗口的长度,T为当前时刻。4.根据权利要求1所述的一种通用的TCP性能诊断方法,其特征在于,所述根据粒度划分结果及对应的过滤器窗口长度计算出瓶颈带宽,包括:基于发送端的发送速率和接收端的确认速率,取二者最小值作为报文递交速率;根据递交速率计算得到瓶颈带宽。5.根据权利要求4所述的一种通用的TCP性能诊断方法,其特征在于,所述瓶颈带宽具体为:其中,BtlBw(n)为网络链路中所有节点的可用带宽的最小值,Wf为过滤器所选取的窗口长度,单位是flight,n为报文所被划分的数量。6.一种通用的TCP性能诊断装置,其特征在于,包括:抓...

【专利技术属性】
技术研发人员:薛广涛彭光前
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1