一种TCP性能参数的确定方法及系统与流程

文档序号:17817297发布日期:2019-06-05 21:54
一种TCP性能参数的确定方法及系统与流程
本发明涉及互联网
技术领域
,特别涉及一种TCP性能参数的确定方法及系统。
背景技术
:在当前的互联网通信中,TCP(TransmissionControlProtocol,传输控制协议)是重要的传输层协议之一。TCP承载着较大的传输流量,对于TCP性能的研究具有重大的意义。当前,在评估互联网通信中服务器端的TCP性能时,通常可以在应用层抓取服务器端的TCP数据包,然后再对抓取的TCP数据包进行分析,从而可以得到服务器端的各项性能参数。然而,从应用层抓取的TCP数据包中包含的数据内容往往不够全面,抓取的TCP数据包中通常仅包含头文件和数据本体,从而导致后续进行TCP性能分析时,无法得到准确的分析结果。技术实现要素:本申请的目的在于提供一种TCP性能参数的确定方法及系统,能够提高分析TCP性能参数的准确性。为实现上述目的,本申请一方面提供一种TCP性能参数的确定方法,所述方法包括:在内核层采集目标服务器的TCP数据信息,所述TCP数据信息中至少包含所述目标服务器在发送和接收TCP数据包时采用的配置参数和状态参数;从所述内核层中读取所述TCP数据信息,并将所述TCP数据信息整理出至少一条TCP流的信息;分别对整理得到的所述TCP流的信息进行分析,以得到各个所述TCP流的信息对应的TCP性能参数。为实现上述目的,本申请另一方面还提供一种TCP性能参数的确定系统,所述系统包括内核模块、数据读取模块、数据处理模块以及分析模块,其中:所述内核模块,用于在内核层采集目标服务器的TCP数据信息,所述TCP数据信息中至少包含所述目标服务器在发送和接收TCP数据包时采用的配置参数和状态参数;所述数据读取模块,用于从所述内核层中读取所述TCP数据信息;所述数据处理模块,用于将所述TCP数据信息整理出至少一条TCP流的信息;所述分析模块,用于分别对整理得到的所述TCP流的信息进行分析,以得到各个所述TCP流的信息对应的TCP性能参数。由上可见,本申请提供的技术方案,可以在内核层采集目标服务器的TCP数据信息。从内核层采集的TCP数据信息,比从应用层抓取的TCP数据包的数据更加全面。其中,内核层的TCP数据信息不仅可以包含应用层的TCP数据包中包含的各项数据,还可以包括目标服务器在发送TCP数据包时采用的配置参数。这些配置参数例如可以是拥塞窗口值、内存使用参数等。这样,后续在分析目标服务器的TCP性能参数时,可以得到更加准确更加全面的分析结果。此外,在从内核层读取TCP数据信息后,由于TCP数据信息中各个数据包可能对应着不同的IP地址和端口号,因此在对TCP数据信息进行分析时,可以优先按照IP地址和端口号将TCP数据信息整理为多条TCP流的信息。这样,后续可以对各条TCP流的信息进行分析,从而可以得到各条TCP对应的各项TCP性能参数。由上可见,本申请提供的技术方案,能够提高分析TCP性能参数的准确性。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一中TCP性能参数的确定方法流程图;图2是本发明实施例一中TCP流的信息整理过程的示意图;图3是本发明实施例二中TCP性能参数的确定系统的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一本申请提供一种TCP性能参数的确定方法,请参阅图1,所述方法可以包括以下步骤。S1:在内核层采集目标服务器的TCP数据信息,所述TCP数据信息中至少包含所述目标服务器在发送和接收TCP数据包时采用的配置参数和状态参数。在本实施方式中,为了从内核层获取目标服务器的TCP数据信息,可以在所述目标服务器中安装用于获取TCP数据信息的程序。具体地,将所述程序加载至所述目标服务器中后,便可以在所述目标服务器中运行所述程序。当所述程序运行时,便可以编译与所述目标服务器的内核相匹配的内核模块。后续便可以通过该内核模块在内核层采集目标服务器的TCP数据信息。在实际应用场景中,上述的内核模块例如可以是sniffer,在sniffer运行时,可以为其配置python的运行环境。在本实施方式中,在内核层采集到的TCP数据信息,除了可以包含应用层的TCP数据包中的数据,还可以包含目标服务器在发送和接收TCP数据包时采用的配置参数和状态参数。所述配置参数和状态参数例如可以包括目标服务器采用的拥塞窗口值以及目标服务器当前的内存使用参数等。其中,所述拥塞窗口值可以限定在一次数据传输中传输的数据量的大小,所述内存使用参数则可以表示目标服务器当前已使用的内存占总内存的比例。这样,基于所述配置参数,可以更加全面地获知在发送和接收TCP数据包时,目标服务器所处的性能状况。在一个实施方式中,为了提高数据采集的速度,可以采用多核CPU处理器、多线程并行采集的方式在内核层中采集TCP数据信息。具体地,可以采用至少两条线程在内核层并行采集目标服务器的TCP数据信息。在本实施方式中,所述至少两条线程可以采用无锁的方式采集TCP数据信息,从而减小对目标服务器内核的性能消耗,并可以提高数据采集的效率。S3:从所述内核层中读取所述TCP数据信息,并将所述TCP数据信息整理出至少一条TCP流的信息。在本实施方式中,在从内核层采集到TCP数据信息后,这些TCP数据信息可以在应用层进行处理。具体地,可以预先为内核层和应用层之间的通信设定一套自定义的传输协议,这样,应用层便可以基于该自定义的传输协议,从内核层中读取所述TCP数据信息。在本实施方式中,内核层中采集TCP数据信息的速度可能与应用层中读取TCP数据信息的速度不一致,当采集所述TCP数据信息的速度大于读取所述TCP数据信息的速度时,会造成采集的TCP数据信息的滞留。此时,在内核层可以设置缓存区域,该缓存区域可以用于存储已采集并且未被读取的TCP数据信息。在所述缓存区域中,TCP数据信息可以按照先进先出的顺序被读取至应用层中,并且当所述缓存区域中的TCP数据信息被读取后,可以将被读取的TCP数据信息标记为已读,并将已读的TCP数据信息所在存储空间视为可存储空间,以避免数据信息的重复读取。在本实施方式中,从内核层读取到的TCP数据信息通常是二进制的,为了使得后续的分析模块能够识别TCP数据信息,应用层在读取到TCP数据信息后,首先可以对TCP数据信息进行格式转换,以将所述TCP数据信息从二进制格式转换为后续的分析模块能够识别的明文格式。在所述明文格式中,通常可以包括参数标识以及所述参数标识对应的参数值。例如,所述明文格式可以是seq=1,其中,“seq”为所述参数标识,表示当前发送的报文的序列号,“1”则可以是实际的序列号。在本实施方式中,从内核层中读取的TCP数据信息比较完备,为了从中提取对分析性能参数有帮助的信息,可以通过预设配置文件,限定需要从TCP数据信息中读取的指定字段。具体地,所述指定字段例如可以是IP地址字段、端口号字段、发送时间字段、接收时间字段、拥塞窗口值字段等。所述预设配置文件中的指定字段可以根据需要进行变更。这样,应用层在读取到TCP数据信息后,可以读取预设配置文件中限定的指定字段,然后可以从所述TCP数据信息中读取所述指定字段中的内容,从而可以从所述TCP数据信息中筛选出所述指定字段中的数据。在本实施方式中,内核层通常可以通过逐个采集数据包的方式来采集目标服务器的TCP数据信息。请参与图2,由于目标服务器同时可能与网络中的多个终端设备进行通信,因此采集到的数据包信息可能来自多个不同的IP地址和不同的端口号。在本实施方式中,可以按照IP地址和端口号,将TCP数据信息中的数据包信息进行整理。具体地,所述TCP数据信息中的数据包信息可以包括源IP地址字段、源端口号字段、目的IP地址字段以及目的端口号字段。其中,源IP地址字段和源端口号字段中可以分别填充向目标服务器发送数据包的终端设备的IP地址和端口号;目的IP地址字段和目的端口号字段则可以分别填充目标服务器的IP地址和端口号。这样,请参阅图2,可以提取各个数据包信息对应的源IP地址、源端口号、目的IP地址以及目的端口号,并基于提取的所述源IP地址、源端口号、目的IP地址以及目的端口号,确定各个所述数据包信息对应的传输路径。所述传输路径可以表示为由源IP地址的源端口号发往目的IP地址的目的端口号。这样,可以将处于同一传输路径上的数据包信息整合为一条TCP流的信息,在所述TCP流的信息中可以包含至少一个数据包信息,所述TCP流的信息中的各个数据包信息对应的源IP地址、源端口号、目的IP地址以及目的端口号均可以对应一致。例如在图2中,采集到的TCP数据信息中包含由源IP地址A的源端口号B发往目的IP地址C的目的端口号D的数据包信息,还包含由源IP地址E的源端口号F发往目的IP地址C的目的端口号D的数据包信息。这样,在经过整理之后,可以得到两条TCP流的信息。在本实施方式中,若对TCP数据信息进行了筛选,筛选出了所述指定字段中的数据,那么便可以按照上述方式将筛选出的所述指定字段中的数据整理出至少一条TCP流的信息。S5:分别对整理得到的所述TCP流的信息进行分析,以得到各个所述TCP流的信息对应的TCP性能参数。在本实施方式中,在将采集的TCP数据信息整理出至少一条TCP流的信息之后,可以将整理得到的TCP流的信息输入各个分析模块进行分析,从而得到各个所述TCP流的信息对应的TCP性能参数。具体地,在对TCP流的信息进行分析时,可以从所述TCP流的信息中读取所述目标服务器发送TCP数据包时采用的拥塞窗口值,这样,可以确定目标服务器在发送TCP数据包时拥塞窗口值的变化情况。此外,还可以从所述TCP流的信息中读取所述目标服务器当前的内存使用参数,从而可以获知目标服务器当前的内存负载。此外,还可以计算所述TCP流的信息对应的网络传输参数,所述网络传输参数包括数据传输速率、数据重传率、超时重传时间(RetransmissionTimeout,RTO)、往返时延(Round-TripTime,RTT)中的至少一种。其中,在计算上述的网络传输参数时,可以采用常用的方法进行计算。例如,在计算RTT时,可以读取TCP流的信息中的针对同一数据包的数据发送时间以及数据接收时间,两者差值的绝对值便可以作为该数据包的RTT。后续则可以计算各个数据包的RTT的平均值,从而得到该TCP流的信息的RTT。这样,最终得到的所述TCP性能参数则可以包括拥塞窗口值、内存使用参数、数据传输速率、数据重传率、超时重传时间、往返时延中的至少一种。在本实施方式中,在计算得到各个性能参数后,可以将所述TCP性能参数导入预设路径下的指定文件中。所述预设路径可以是预先指定的存储路径,所述指定文件可以预先指定格式的文件。例如,所述指定文件可以是excel表格。在所述指定文件中,所述TCP性能参数可以与对应的TCP流的信息相关联。其中,TCP流的信息可以通过源IP地址、源端口号、目的IP地址以及目的端口号来表示,各个TCP性能参数则可以通过具体的数值来表示。例如,表1示出了在所述指定文件中TCP流与关联的TCP性能参数的示意表。表1TCP流与关联的TCP性能参数的示意表TCP流最大往返时延传输速率219.233.14.28:7458=>219.233.26.145:8042.187ms4.8M/s在表1中,该TCP流是从219.233.14.28IP地址的7458号端口发往219.233.26.145IP地址的80号端口,往返时延为42.187毫秒,传输速率为4.8M/s。实施例二本申请还提供一种TCP性能参数的确定系统,请参阅图3,所述系统包括内核模块、数据读取模块、数据处理模块以及分析模块,其中:所述内核模块,用于在内核层采集目标服务器的TCP数据信息,所述TCP数据信息中至少包含所述目标服务器在发送和接收TCP数据包时采用的配置参数和状态参数;所述数据读取模块,用于从所述内核层中读取所述TCP数据信息;所述数据处理模块,用于将所述TCP数据信息整理出至少一条TCP流的信息;所述分析模块,用于分别对整理得到的所述TCP流的信息进行分析,以得到各个所述TCP流的信息对应的TCP性能参数。在本实施方式中,所述数据读取模块、所述数据处理模块以及所述分析模块均可以处于应用层。在本实施方式中,所述分析模块的数量与所述TCP性能参数的数量一致,每个所述分析模块分析其中的一种TCP性能参数。在本实施方式中,所述内核模块中包括缓存区域,其中,所述缓存区域用于存储已采集并且未被读取的TCP数据信息;其中,当所述缓存区域中的TCP数据信息被读取后,将被读取的TCP数据信息标记为已读,并将已读的TCP数据信息所在存储空间视为可存储空间。在本实施方式中,所述数据处理模块还用于将所述TCP数据信息从二进制格式转换为明文格式;其中,所述明文格式中包括参数标识以及所述参数标识对应的参数值。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对系统的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。由上可见,本申请提供的技术方案,可以在内核层采集目标服务器的TCP数据信息。从内核层采集的TCP数据信息,比从应用层抓取的TCP数据包的数据更加全面。其中,内核层的TCP数据信息不仅可以包含应用层的TCP数据包中包含的各项数据,还可以包括目标服务器在发送TCP数据包时采用的配置参数。这些配置参数例如可以是拥塞窗口值、内存使用参数等。这样,后续在分析目标服务器的TCP性能参数时,可以得到更加准确更加全面的分析结果。此外,在从内核层读取TCP数据信息后,由于TCP数据信息中各个数据包可能对应着不同的IP地址和端口号,因此在对TCP数据信息进行分析时,可以优先按照IP地址和端口号将TCP数据信息整理为多条TCP流的信息。这样,后续可以对各条TCP流的信息进行分析,从而可以得到各条TCP对应的各项TCP性能参数。由上可见,本申请提供的技术方案,能够提高分析TCP性能参数的准确性。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1