一种TCP传输异常类型的确定方法、装置、电子设备及存储介质与流程

    专利2022-07-07  158


    本发明涉及网络传输技术领域,尤其涉及一种tcp传输异常类型的确定方法、装置、电子设备及存储介质。



    背景技术:

    当前越来越多的用户通过虚拟私有网络(virtualprivatecloud,vpc)、网络地址转换(networkaddresstranslation,nat)、虚拟专用隧道网络(vritualprivatenetworkgeteway,vpn)或专线网关等搭建私人的云上网络环境,并将业务迁至云上。其中,传输控制协议(transmissioncontrolprotocol,tcp)在云上业务中有着非常广泛的应用,大量的业务网络路径的传输层使用了tcp协议,tcp协议作为互联网非常核心且复杂的协议,对其传输异常类型进行自动化分析不仅可以帮助运维人员基于当前业务路径的tcp传输异常类型分析结果对云上业务网络拓扑、网络节点的内核参数等方面进行优化,而且还可以帮助运维人员在业务路径的网络传输出现故障时快速定位。因此,高效准确地分析云上业务路径的tcp传输异常类型有着非常重要的意义。

    现有技术中对云上业务路径tcp传输异常类型的分析方法主要分为两大类,第一类方法主要是对云上业务路径的各个网络节点进行抓包,然后将该数据包放入网络封包分析软件wireshark中,人工找出同一tcp会话中在各个网络节点的数据包进行分析,定位存在丢包或延时的网络节点和场景以分析tcp的传输质量;第二方法主要是对云上业务路径的各个网络节点能反映tcp传输质量的指标项进行监控,例如:接收的tcp段的数量、发送的tcp段的数量、重发的tcp的数量、close_wait状态套接字个数、established状态套接字个数、fin_wait1状态套接字个数等,然后根据这些指标项分析出存在丢包的网络节点和处于异常状态的网络节点。

    但是上述对云上业务路径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段的序列号、参考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传输异常类型,包括:

    若第一时间戳与第二时间戳的差值不等于预设处理时间,确定目标节点的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段的时间戳小于目标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异常传输类型或者确定优化云上业务路径中的拓扑以及拓扑中的节点,帮助用户和运维人员高效、准确地解决问题、优化业务,同时还为用户提供低成本、高效率和高质量的云上网络服务。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

    图1是本申请实施例所提供的一种应用环境的示意图;

    图2是本申请实施例所提供的一种tcp传输异常类型的确定方法的流程示意图;

    图3是本申请实施例所提供的一种捕获完整的云上业务路径中的tcp段且对其进行横向关联和纵向关联的框图示意图;

    图4是本申请实施例所提供的一种准备阶段和预分析阶段的具体实施方式框图示意图;

    图5是本申请实施例所提供的一种准备阶段预分析阶段和总结分析阶段的具体实施方式框图示意图;

    图6是本申请实施例所提供的一种tcp传输异常类型的确定装置的结构示意图;

    图7是本申请实施例所提供的一种服务器的结构示意图。

    具体实施方式

    为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。显然,所描述的实施例仅仅是本申请一个实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

    此处所称的“实施例”是指可包含于本申请至少一个实现方式中的特定特征、结构或特性。在本申请实施例的描述中,需要理解的是,术语“第一”、“第二”、“第三”和“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”和“第四”的特征可以明示或者隐含的包括一个或者更多个该特征。而且,术语“第一”、“第二”、“第三”和“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例能够以除了在这里图示或描述以外的顺序实施。此外,术语“包括”和““为”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元/模块,而是可包括没有清楚地列出的或对于这些过程、方法、装置、产品或设备固有的其它步骤或模块。

    请参阅图1,其所示为本申请实施例所提供的一种应用环境的示意图,包括处理器101,该处理器包括集成分析引擎,集成分析引擎获取预设时间段内至少两个节点各自对应的至少两个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传输异常类型的确定方法的具体实施例,图2是本申请实施例提供的一种tcp传输异常类型的确定方法的流程示意图,本说明书提供了如实施例或流程图所示的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多执行顺序中的一种方式,不代表唯一的执行顺序,在实际执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法包括:

    s201:获取预设时间段内至少两个节点各自对应的至少两个tcp段;每个tcp段包括时间戳。

    本申请实施例中,在准备阶段,利用抓包工具(dumpthetrafficonanetwork,tcpdump)捕获预设时间段内云上业务路径中至少两个节点各自对应的至少两个tcp段,并上传至集成分析引擎。在一种可选的实施方式中,利用抓包工具tcpdump捕获云上业务路径中各个网络节点的全部tcp段,并将其上传至集成分析引擎。

    本申请实施例中,上文中所描述的业务路径主要包括三种情况,第一种情况是客户端和服务器端都在云上,云上业务路径是完整的业务路径,即cvm(客户端)-母机-云网关(一个或者多个)-母机-cvm(服务器端);第二种情况是客户端在云上,云上业务路径只包含cvm(客户端)-母机-云网关;第三种情况是服务器端在云上,云上业务路径只包含cvm(服务器端)-母机-云网关。

    本申请实施例中,每个tcp段包括时间戳、标志位和序列号,其中,tcp段所包括建立连接标志位syn,即本领域常用术语同步标志位。

    s203:基于预设聚合规则对每个节点的至少两个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连接才会被建立。

    s205:根据各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段序列中确定标志位为建立连接标志位且时间戳为所有小于目标tcp段的时间戳中的最小值的tcp段为初始tcp段,同时从每个tcp段集合对应的tcp段序列中确定时间戳为所有小于目标tcp段的时间戳中的最大值的tcp段为参考tcp段。换句话说,在tcp段序列中,目标tcp段和参考tcp段中间不存在其他tcp段,而初始tcp段和参考tcp段之间可以存在其他tcp段,也可以不存在其他tcp段。

    s207:根据目标tcp段确定目标节点,以及将目标节点的上游节点确定为参考节点。

    本申请实施例中,根据目标tcp段可以确定目标节点,即确定目标tcp段所在的网络节点为目标节点,并且将该目标节点的上游节点确定为参考节点。

    s209:基于预设聚合规则、每个tcp段的标志位和每个tcp段的序列号,对参考节点中的tcp段和目标节点中的tcp段进行关联处理,得到关联tcp段组。

    本申请实施例中,集成分析引擎对每个网络节点中的同一tcp段进行进行横向关联,具体可以将每个节点中的tcp段序列按照顺四元组顺序进行关联,或者将每个节点中的tcp段序列按照逆四元组进行关联,并在关联后的tcp段序列中按照时间戳从前往后的顺序搜索seq、ack相同的tcp段。此外,在判断是否是同一tcp段时,还需要根据不同网络节点对每个tcp段打的时间戳来判断,同一tcp段在上游节点的时间戳必须小于下游节点的时间戳,如此,可以得到关联tcp段组。这里,需要进行说明的是,得到的关联tcp段组可以是由参考节点中的一个tcp段和目标节点中对应的另一个tcp段组成,也可以是由目标节点中的一个tcp段组成。例如,若在参考节点中存在与目标tcp段四元组相同、标志位相同且序列号相同的关联tcp段,并且,关联tcp段的时间戳小于目标tcp的时间戳,则得到的关联tcp段组中包含目标tcp段和关联tcp段。若在参考节点中不存在与目标tcp段四元组相同、标志位相同且序列号相同的关联tcp端,那么关联tcp段组仅包括目标tcp段。

    本申请实施例中,基于上文中所描述的业务路径主要包括的三种情况,进行举例说明。可以从云上业务路径的初始节点至结束节点,从前往后对每个节点搜索关联tcp段,也可以从云上业务路径的结束节点至初始节点,从后往前对每个节点搜索关联tcp段,例如,在第一种情况中,即云上业务路径包含cvm(客户端)-母机-云网关(一个或者多个)-母机-cvm(服务器端),那么,初始节点为客户端,结束节点为服务器端;在第二种情况中,即云上业务路径包含cvm(客户端)-母机-云网关,那么,初始节点为客户端,结束节点为云网关;在第三种情况中,即云上业务路径只包含cvm(服务器端)-母机-云网关,那么,初始节点为云网关,结束节点为服务器端。如图3示例了一种捕获完整的云上业务路径中的tcp段且对其进行横向关联和纵向关联的框图示意图。

    本申请实施例中,在集成分析引擎对每个节点的至少两个tcp段进行聚合处理,得到多个tcp段集合,并且对参考节点中的tcp段和目标节点中的tcp段进行关联处理,得到关联tcp段组之后,该集成分析引擎还需要收集每个网络节点中和各tcp段相关的关键内核参数,例如:

    net.ipv4.tcp_abort_on_overflow,

    net.ipv4.tcp_fin_timeout,

    net.ipv4.tcp_keepalive_intvl,

    net.ipv4.tcp_keepalive_probes,

    net.ipv4.tcp_keepalive_time,

    net.ipv4.tcp_orphan_retries,

    net.ipv4.tcp_retries1,

    net.ipv4.tcp_retries2,

    net.ipv4.tcp_retries2,

    net.ipv4.tcp_syn_retries,

    net.ipv4.tcp_synack_retries,

    net.ipv4.tcp_tw_recycle,

    net.ipv4.tcp_reuse,

    这里,仅仅是例举了部分每个网络节点中与各tcp段相关的关键内核参数,实际操作过程中,不局限于仅收集上述参数,还可以包括上文中没有描述的其他参数。

    此外,集成分析引擎还需要记录每个tcp的有效荷载长度以及通告窗口。

    s211:根据初始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段在传输和交互过程中出现丢包或者延时的节点或线路以及场景,进而作为预分析的结果。如图4示例了一种准备阶段和预分析阶段的具体实施方式框图示意图。

    基于上文中所描述的tcp传输异常类型的确定方法,下面介绍一种具体的实施方式。

    利用抓包工具tcpdump捕获云上业务路径中各个网络节点的全部tcp段,并将其上传至集成分析引擎。集成分析引擎在接收到各个网络节点的全部tcp段之后,对各个网络节点的tcp段进行纵向关联,即基于预设聚合规则对每个节点的全部tcp段进行聚合处理,得到多个tcp段集合。具体地,集成分析引擎根据tcp段的源地址、源端口、目的地址和目的端口对每个节点的全部tcp段进行聚合处理,即对每个节点的全部tcp段进行纵向关联,得到多个tcp段集合。进而根据各tcp段的时间戳,对每个tcp段集合所包含的tcp段进行排序,获得每个tcp段集合对应的tcp段序列。集成分析引擎同时还对每个网络节点中的同一tcp段进行进行横向关联,具体可以将每个节点中的tcp段序列按照顺四元组顺序进行关联,或者将每个节点中的tcp段序列按照逆四元组进行关联,并在关联后的tcp段序列中按照时间戳从前往后的顺序搜索seq、ack相同的tcp段,此外,在判断是否是同一tcp段时,还需要根据不同网络节点对每个tcp段打的时间戳来判断,同一tcp段在上游节点的时间戳必须小于下游节点的时间戳,如此,可以得到关联tcp段组。

    步骤一:在初始节点上找出标志位是syn的tcp段,将其作为一个tcp连接的第一个tcp段,记录该tcp段的seq=a。对syn包做一次横向分析,记录syn包出现丢失或延时的节点或线路。

    步骤二:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,如果还是syn包(seq=a),则回到步骤二。若是syn、ack(seq=b,ack=a 1)包,则进入步骤三。若下一个tcp段的标志位是rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段是syn包但seq≠a,则说明该tcp连接已经异常终止,则删除tcp段序列上已经遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后重新回到步骤二。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤三:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,如果出现syn(seq=a)包,则回到步骤二。若是syn、ack(seq=b,ack=a 1),则回到步骤三。若是ack(ack=b 1)包,则进入步骤四。若下一个tcp段的标志位是rst包但seq≠a,则说明该tcp连接已经异常终止,则删除tcp段序列上已经遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤三。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤四:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,若是syn、ack(seq=b,ack=a 1),则回到步骤三。若是传输数据包(seq=a 1,ack=b 1),则进入步骤五。若是seq值等于同方向的上一个tcp段seq值减去1(seq=a-1)且长度为1字节的tcp段,则可以认为是keepalive探测报文,进入步骤五。若下一个tcp段的标志位是rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤四。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤五:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,若还是传输数据包(seq=a 1,ack=b 1,len=x),则进入步骤五。若是ack(ack a 1 x,seq b 1,len=y)包,则进入步骤六。若下一个tcp段的标志位是rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤五。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤六:在每个网络节点上按时间顺序往下遍历。此时tcp连接已经处于数据传输阶段,然后在初始节点上继续纵向分析,可以按照以下条件判断tcp段序列上的下一个tcp段是否为该tcp连接上的下一个tcp段:若下一个tcp段的seq值、ack值和上一个tcp段的seq值、ack值完全相等,则将其作为下一个tcp段。若下一个tcp段的seq值是上一个tcp段的ack值,则将其作为下一个tcp段。若下一个tcp段的ack值加上1等于上一个tcp段的seq值,则将其作为下一个tcp段。若下一个tcp段的seq值等于上一个tcp段的seq值加上len值,且ack值等于上一个tcp段的ack值,则将其作为下一个tcp段。在找出下一个tcp段之后,对下一个tcp段做一次横向分析,记录出现丢失或掩饰的节点或线路。若下一个tcp段是fin包(seq=c,ack=d),则进入步骤七,否则继续步骤六。若下一个tcp段不满足以上条件,则说明该tcp连接被正常或者异常关闭。若下一个tcp段的标志位是rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤六。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤七:在每个网络节点上按时间顺序往下遍历。此时tcp连接已经处于四次挥手阶段阶段,在初始节点上继续纵向分析,若还是fin包(seq=c),则回到步骤七。若是ack(ack=c 1)包,则进入步骤八。若是fin、ack(seq=d,ack=c 1)包,则进入步骤九。若下一个tcp段的标志位为rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤七。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤八:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,若是fin(seq=c)包,则再回到步骤七。若是fin、ack(seq=d,ack=c 1)包,则进入步骤九。若下一个tcp段的标志位为rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤八。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤九:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,若是fin、ack(seq=d,ack=c 1)包,则回到步骤九。若是ack(ack=d 1)包,则进入步骤十。若下一个tcp段的标志位为rst,则删除tcp段序列上已遍历的tcp段,然后重新回到步骤一。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤九。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    步骤十:在每个网络节点上按时间顺序往下遍历。在初始节点上继续纵向分析,若是fin、ack(seq=d,ack=c 1)包,则回到步骤九。若是ack(ack=d 1)包,则回到步骤十。若下一个tcp段不满足以上条件,则说明该tcp段是被延时传输的tcp段,然后回到步骤十。同时对tcp段做一次横向分析,记录出现丢失或者延时的节点或线路。

    在遍历tcp段序列的过程中,当遍历完最后一个tcp段就完成了对该tcp段序列的预分析。在遍历过程中,可以记录每个tcp连接的数据包传输和交互过程中,出现丢失或延时的节点或线路以及阶段作为预分析的结果,如此,可以得到各个tcp连接的tcp传输质量。

    之后,需要对所有tcp连接的预分析结果汇总,同时结合云商业务路径中各个网络及诶点的内核参数进行总结分析。

    集成分析引擎统计tcp连接的总数,并记录为m,然后统计建链阶段、数据传输阶段、拆链阶段中出现的常规异常场景在所有tcp连接中出现的次数,记录为n,对n/m的值进行统计,用户和运维人员可以根据该比值定位云上业务路径tcp传输中的问题或优化云上业务路径的拓扑以及拓扑中的节点。如图5示例了一种准备阶段、预分析阶段和总结分析阶段的具体实施方式框图示意图。

    首先是建链阶段。根据上述横向分析和纵向分析,可以得出在建链阶段你每个tcp段传输的异常场景。例如,场景一:tcp连接的第一个syn包在云上业务路径中发生丢包或延时。场景二:tcp连接的第二个syn、ack包在云上业务路径中发生丢包或延时。场景三:tcp连接的第三个ack包也就是对第二次syn包的确认包在云上业务路径中发生丢包或者延时。对于场景一、二,通常伴随着三次握手的第一个syn包的重传,可以根据云上业务路径的情况调节云上cvm(客户端)的参数net.ipv4.tcp_syn_retries,即调节重传syn包的次数和保持在syn-sent状态的时间。对于场景二、三,通过伴随着三次握手的第二个syn、ack包的重传,可以根据云上业务的情况调节云上cvm(服务端)的参数net.ipv4.tcp_synack_retries,即调节重传syn、ack包的次数和保持在syn-recv状态的时间。对于场景三,客户端方会处于established状态,这种情况会在数据传输阶段被分析到。场景四:tcp连接的第一个syn包被回复了rst包,则大概率是服务端超载且开启net.ipv4.tcp_abort_on_overflow所导致,若确信云上cvm(服务端)不能完成连接请求时可开启此项,否则会影响客户端的使用。

    然后是数据传输阶段,根据上述横向分析和纵向分析,可以得出在建链阶段你每个tcp段传输的异常场景。例如,场景一:tcp段在云上业务路径的某个节点或某段线路出现丢包。场景二:tcp段在云上业务路径的某个节点或某段线路出现延时。场景三:tcp段在云上业务路径中没有出现丢包和延时,但是云上cvm(客户端或服务端)发送的tcp段和收到的对该tcp段确认且有效载荷长度为0的ack包之间的时间戳差值较大,则大概率是云外发生了线路延时或丢包。场景四:云上cvm(客户端)在没有延时且成功建链之后的第一个发生出去的tcp段和上一个tcp段(即建链阶段收到的最后一个ack包)之间的时间戳差值较大,则大概率是客户端应用出现延时。场景五:云上cvm(服务端)在没有延时且成功建链之后的第一个发生出去的有效载荷长度大于0的tcp段和上一个tcp段之间的时间戳差值较大,则大概率是服务端应用出现延时。场景六:云上cvm(客户端或服务端)的keep-alive探测报文的频率、次数和保持无报文连接多长时间之后开始进行探测,则可根据云上cvm(客户端或服务端)实际的负载情况调节相关参数:net.ipv4.tcp_keepalive_intvl,net.ipv4.tcp_keepalive_probes,net.ipv4.tcp_keepalive_time。场景七:云上cvm(客户端或服务端)发送的tcp段中通告窗口值为0,则可能是云上cvm(客户端或服务端)当前性能存在瓶颈。场景八:云上cvm(客户端或服务端)收到rst报文,大概率是对端服务崩溃或重置后认为原连接已经不存在。此外对于场景一、二、三、四、五和七这几种场景中通常伴随着数据包的重传,可以根据云上业务的现状来调节来云上cvm(客户端或服务端)的net.ipv4.tcp_retries1,net.ipv4.tcp_retries2这两个参数。

    最后是拆链阶段,根据上述横向分析和纵向分析,可以得出在建链阶段你每个tcp段传输的异常场景。场景一:四次挥手的第一个fin包在云上路径的某个节点或某段线路出现丢包或延时。场景二:四次挥手的第二个ack包(对第一个fin包的确认)在云上路径的某个节点或某段线路出现丢包或延时。对于场景一和二,通常伴随着四次挥手的第一个fin包的重传,可以根据云上业务的情况调节云上cvm(客户端或服务端)的参数net.ipv4.tcp_orphan_retries,即调节重传fin包的次数和保持在fin-wait1状态的时间。场景三:在云上cvm(客户端或服务端)发送完四次挥手的第二个ack包后间隔了net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_probes*net.ipv4.tcp_keepalive_intvl后连接结束,大概率可认为云上cvm(客户端或服务端)作为被动断链方应用出现异常、未能进入关闭连接的状态。场景四:四次挥手的第二个fin包也就是被动断链方的在云上路径的某个节点或某段线路出现丢包或延时。场景五:四次挥手的最后一个ack包也就是对被动锻炼方的确认包在云上路径的某个节点或某段线路出现丢包或延时。对于场景四和五通常伴随着四次挥手的第一个fin包的重传,可以根据云上业务的情况调节云上cvm(客户端或服务端)的参数net.ipv4.tcp_orphan_retries,即调节被动锻炼方重传fin包的次数和保持在last-ack状态的时间。对于场景四,还需要关注主动断链方在fin-wait2状态的持续时间,主动断链方收不到fin包会在net.ipv4.tcp_fin_timeout的时间后关闭连接,可以根据云上业务情况来调节该参数值。对于场景五,若还伴随着主动断链方再次以相同四元组向被动断链方建链时被发送rst包,则此时不宜开启net.ipv4.tcp_tw_recycle,net.ipv4.tcp_reuse这两个参数。

    通过统计这些在建链阶段、传输阶段、拆链阶段的异常场景出现的次数在所有tcp连接次数中所占的比例,可以判断云上业务路径的tcp传输质量以及在哪些网络节点存在问题和优化点。

    采用本申请实施例所提供的tcp传输异常类型的确定方法,根据tcp段的时间戳、标志位和序列号对一个节点中的tcp段集合进行纵向关联和分析以及对多个节点中的tcp段进行横向关联和分析,可以自动化地确定云上业务路径中同一tcp会话中各tcp段的传输轨迹和交互轨迹,并且,采用横向分析和纵向分析交互进行的方法可以对各tcp段逐个分析以及对各节点逐个分析,自动记录tcp会话中出现丢包或者延时的节点或线路以及场景,进而可以结合各个节点与各tcp段相关的内核参数总结分析出云上业务路径的tcp异常传输类型或者确定优化云上业务路径中的拓扑以及拓扑中的节点,帮助用户和运维人员高效、准确地解决问题、优化业务,同时还为用户提供低成本、高效率和高质量的云上网络服务。

    本申请实施例还提供的一种tcp传输异常类型的确定装置,图6是本申请实施例提供的一种tcp传输异常类型的确定装置的结构示意图,如图6所示,该装置包括:

    获取模块601用于获取预设时间段内至少两个节点各自对应的至少两个tcp段;每个tcp段包括时间戳、标志位和序列号;

    聚合模块603用于基于预设聚合规则对每个节点的至少两个tcp段进行聚合处理,得到多个tcp段集合;

    第一确定模块605用于根据各tcp段的时间戳,从每个tcp段集合所包含的tcp段中确定出初始tcp段、参考tcp段和目标tcp段;参考tcp段的时间戳小于目标tcp段的时间戳,且参考tcp段的时间戳为所有小于目标tcp段的时间戳中的最大值,初始tcp段的时间戳为所有小于目标tcp段的时间戳中的最小值;

    第二确定模块607用于根据目标tcp段确定目标节点,以及将目标节点的上游节点确定为参考节点;

    关联模块609用于基于预设聚合规则、每个tcp段的标志位和每个tcp段的序列号,对参考节点中的tcp段和目标节点中的tcp段进行关联处理,得到关联tcp段组;

    第三确定模块611用于根据初始tcp段、参考tcp段、目标tcp段以及关联tcp段组中的至少部分数据,确定目标节点的tcp传输异常类型。

    本申请实施例中的装置与方法实施例基于同样的申请构思。

    本申请实施例还提供的一种电子设备,电子设备可设置于服务器之中以保存用于实现方法实施例中的一种tcp传输异常类型的确定方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该存储器加载并执行以实现上述的tcp传输异常类型的确定方法。

    本申请实施例还提供的一种存储介质,存储介质可设置于服务器之中以保存用于实现方法实施例中一种tcp传输异常类型的确定方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述tcp传输异常类型的确定方法。

    可选的,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于包括:u盘、只读存储器(rom,read-onlymemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

    本发明实施例还提供了一种服务器的结构示意图,请参阅图7,该服务器700用于实施上述实施例中提供的tcp传输异常类型的确定方法,具体来讲,所述服务器结构可以包括上述tcp传输异常类型的确定装置。该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)701(例如,一个或一个以上处理器)和存储器705,一个或一个以上存储应用程序7037或数据7035的存储介质703(例如一个或一个以上海量存储设备)。其中,存储器705和存储介质703可以是短暂存储或持久存储。存储在存储介质703的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器701可以设置为与存储介质703通信,在服务器700上执行存储介质703中的一系列指令操作。服务器700还可以包括一个或一个以上电源711,一个或一个以上有线或无线网络接口709,一个或一个以上输入输出接口707,和/或,一个或一个以上操作系统7031,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

    本发明的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种tcp传输异常类型的确定方法相关的至少一条指令和至少一段程序,该至少一条指令和该至少一段程序由该处理器加载并执行以实现上述图2对应的tcp传输异常类型的确定方法。

    可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

    测试数据编写时对专业性要求偏高本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行tcp传输异常类型的确定方法的程序代码。

    可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

    可选地,在本实施例中,存储介质被设置为存储用于执行如图2所示的方法步骤。

    可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

    可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

    本发明的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的tcp传输异常类型的确定方法。

    本发明实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令和至少一段程序,所述至少一条指令或者至少一段程序由处理器加载并执行以实现如图2对应的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异常传输类型或者确定优化云上业务路径中的拓扑以及拓扑中的节点,帮助用户和运维人员高效、准确地解决问题、优化业务,同时还为用户提供低成本、高效率和高质量的云上网络服务。

    需要说明的是:上述本申请实施例的先后顺序仅仅为了描述,不代表实施例的优劣,且上述本说明书对特定的实施例进行了描述,其他实施例也在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或者步骤可以按照不同的实施例中的顺序来执行并且能够实现预期的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者而连接顺序才能够实现期望的结果,在某些实施方式中,多任务并行处理也是可以的或者可能是有利的。

    本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的均为与其他实施例的不同之处。尤其,对于装置的实施例而言,由于其基于相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

    以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。


    技术特征:

    1.一种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传输异常类型。

    2.根据权利要求1所述的方法,其特征在于,所述初始tcp段的标志位为建立连接标志位;

    所述根据所述初始tcp段、所述参考tcp段、所述目标tcp段以及所述关联tcp段组中的至少部分数据,确定所述目标节点的所述tcp传输异常类型,包括:

    根据所述初始tcp段的序列号、所述参考tcp段的标志位和序列号、所述目标tcp段的标志位和序列号以及所述关联tcp段组中的至少部分数据,确定所述目标节点的所述tcp传输异常类型。

    3.根据权利要求2所述的方法,其特征在于,所述根据所述初始tcp段的序列号、所述参考tcp段的标志位和序列号、所述目标tcp段的标志位和序列号以及所述关联tcp段组中的至少部分数据,确定所述目标节点的所述tcp传输异常类型,包括:

    若所述参考tcp段的标志位与所述目标tcp段的标志位相同,且所述参考tcp段的序列号和所述目标tcp段的序列号相同,确定所述目标节点的所述tcp传输异常类型为数据包重传;

    或者;

    若所述目标tcp段的标志位为所述建立连接标志位,且所述初始tcp段的序列号和所述目标tcp段的序列号不相等,确定所述目标节点的所述tcp传输异常类型为tcp连接异常终止;

    或者;

    若所述目标tcp段的标志位为重置标志位,确定所述目标节点的所述tcp传输异常类型为重置;

    或者;

    若所述关联tcp段组由所述目标tcp段组成,确定所述目标节点的所述tcp传输异常类型为丢包或延时。

    4.根据权利要求2所述的方法,其特征在于,所述根据所述初始tcp段的序列号、所述参考tcp段的标志位和序列号、所述目标tcp段的标志位和序列号以及所述关联tcp段组中的至少部分数据,确定所述目标节点的所述tcp传输异常类型,包括:

    若所述参考tcp段的标志位与所述目标tcp段的标志位匹配,且所述参考tcp段的序列号与所述目标tcp段的序列号匹配;

    确定所述目标tcp段入所述参考节点时对应的第一时间戳、所述目标tcp段出所述参考节点时对应的第二时间戳、所述目标tcp段入所述目标节点时对应的第三时间戳以及所述目标tcp段出所述目标节点时对应的第四时间戳;

    根据预设处理时间、预设传输时间、所述第一时间戳、所述第二时间戳、所述第三时间戳和所述第四时间戳中的至少部分数据,确定所述目标节点的所述tcp传输异常类型。

    5.根据权利要求4所述的方法,其特征在于,所述根据预设处理时间、预设传输时间、所述第一时间戳、所述第二时间戳、所述第三时间戳和所述第四时间戳中至少部分数据,确定所述目标节点的所述tcp传输异常类型,包括:

    若所述第一时间戳与所述第二时间戳的差值不等于所述预设处理时间,确定所述目标节点的所述tcp传输异常类型为延时;

    或者;

    若所述第三时间戳与所述第四时间戳的差值不等于所述预设处理时间,确定所述目标节点的所述tcp传输异常类型为延时。

    或者;

    若所述第二时间戳与所述第三时间戳的差值不等于所述预设传输时间,确定所述目标节点的所述tcp传输异常类型为延时。

    6.根据权利要求1所述的方法,其特征在于,所述根据各tcp段的时间戳,从每个tcp段集合所包含的tcp段中确定出初始tcp段、参考tcp段和目标tcp段,包括:

    根据所述各tcp段的时间戳,对每个tcp段集合所包含的tcp段进行排序,获得所述每个tcp段集合对应的tcp段序列;

    从每个tcp段序列所包含的tcp段中确定出初始tcp段、参考tcp段和目标tcp段;所述参考tcp段的时间戳小于所述目标tcp段的时间戳,且所述参考tcp段的时间戳为所有小于所述目标tcp段的时间戳中的最大值,所述初始tcp段的时间戳为所有小于所述目标tcp段的时间戳中的最小值。

    7.一种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传输异常类型。

    8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现权利要求1-6任意一项所述tcp传输异常类型的确定方法。

    9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-6任意一项所述tcp传输异常类型的确定方法。

    技术总结
    本申请实施例所公开的一种TCP传输异常类型的确定方法、装置、电子设备及存储介质,根据TCP段的时间戳、标志位和序列号对一个节点中的TCP段集合进行纵向关联和分析以及对多个节点中的TCP段进行横向关联和分析,可以自动化地确定云上业务路径中同一TCP会话中各TCP段的传输轨迹和交互轨迹,并且,采用横向分析和纵向分析交互进行的方法可以对各TCP段逐个分析以及对各节点逐个分析,自动记录TCP会话中出现丢包或者延时的节点或线路以及场景,进而可以结合各个节点与各TCP段相关的内核参数总结分析出云上业务路径的TCP传输质量。

    技术研发人员:王蓓;魏宇涛;丁利锋
    受保护的技术使用者:中国建设银行股份有限公司
    技术研发日:2020.11.20
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8530.html

    最新回复(0)