识别传输控制协议状态的方法和装置制造方法及图纸

技术编号:20049686 阅读:60 留言:0更新日期:2019-01-09 05:45
本申请提供了一种识别TCP状态的方法和装置,该方法包括:获取TCP数据码流,TCP数据码流中包括多个数据包,数据包包括载荷包和确认包;根据多个数据包的TCP头字段中的参数,得到拥塞窗口曲线;根据拥塞窗口曲线,识别TCP数据码流中的慢启动状态和拥塞避免状态;根据载荷包和确认包的抵达顺序,识别TCP数据码流中的快速重传状态和超时重传状态。本申请的方法通过TCP头字段中的参数,得到拥塞窗口曲线以识别慢启动状态和拥塞避免状态,通过载荷包和确认包的抵达顺序,以识别快速重传状态和超时重传状态,识别方法简单准确,使得能够参考TCP状态的情况,可以提高进行进一步分析的准确性,可以应用于TCP数据传输问题分析。

【技术实现步骤摘要】
识别传输控制协议状态的方法和装置
本申请涉及传输控制协议(transmissioncontrolprotocol,TCP)数据传输领域,并且更具体地,涉及一种识别TCP状态的方法和装置。
技术介绍
由于大数据技术和人工智能技术地驱动,全球数据流量持续爆发性增长。根据国际数字公司(internationaldatacorporation,IDC)在数字领域的报告,到2020年,全球数据流量将达到44ZB(zettabyte)。在万物互联的时代,各种应用层出不穷。为了保持良好的用户上网体验,运营商需要维护好网络,提升业务质量和用户感知。因此,实现网络的“可视化”、“可测量化”,是运营商在网络运维时面临的挑战。网络流量中的大部分数据基于TCP数据传输。以青海省信通院2017年发布报告为例,TCP数据传输占全网流量的79.58%,UDP数据传输占20.37%,两者比例为3.91:1。在数据传输问题分析领域,现有的一种方案是设定一套TCP指标,例如包括握手时延、丢包次数、上下游乱序等,从多个维度对网络进行监控。网络运维人员通过TCP指标的恶化程度分析TCP速率的变化,来进行根因分析和异常事件定界。这种方案中,TCP指标依赖阈值判断,获取阈值需要业务专家根据经验合理设定,交付难度大。现有的其他方案中提供了一些识别拥塞事件或拥塞避免算法的方法,以期用于数据传输问题分析中。然而这些识别技术只是简单地对TCP数据传输的单个或仅部分状态进行识别,而非对TCP数据传输中的各个状态进行识别。并且,这些识别技术使用的判定因素较为理想化和单一,识别结果并不合理。
技术实现思路
本申请提供一种识别传输控制协议状态的方法和装置,能够简单准确地识别TCP状态,可以提高进行进一步分析的准确性。第一方面,提供了一种识别TCP状态的方法,包括:获取TCP数据码流,所述TCP数据码流中包括多个数据包,所述数据包包括载荷包和确认包;根据所述多个数据包的TCP头字段中的参数,得到拥塞窗口曲线;根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态;根据所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态。第一方面的识别TCP状态的方法通过TCP数据码流中包括数据包的TCP头字段中的参数,得到拥塞窗口曲线以识别慢启动状态和拥塞避免状态,通过载荷包和确认包的抵达顺序,以识别快速重传状态和超时重传状态,识别方法简单准确,使得能够参考TCP状态的情况,可以提高进行进一步分析的准确性,例如可以应用于TCP数据传输问题分析。应理解,第一方面的识别TCP状态的方法可以基于探针实现,即识别TCP状态的装置可以部署在探针上。应理解,第一方面的识别TCP状态的方法得到的识别结果可以通过外部数据表达(externaldatarepresentation,xDR)字段,反馈给探针上层的功能模块。在第一方面的一种可能的实现方式中,根据该多个数据包的TCP头字段中的参数,得到拥塞窗口曲线,可以包括:根据所述多个数据包的TCP头字段中的参数,估计得到多个发送窗口值;根据所述多个发送窗口值,估计得到多个拥塞窗口值;根据所述多个拥塞窗口值,得到所述拥塞窗口曲线。在本可能的实现方式中,通过TCP头字段中的参数可以估计发送窗口值,进而估计出拥塞窗口值,得到拥塞窗口曲线,得到的结果准确,以便于后续识别TCP状态。在第一方面的一种可能的实现方式中,所述根据所述多个数据包的TCP头字段中的参数,估计得到多个发送窗口值,可以包括:根据所述载荷包的序列号、所述确认包的最大确认号和最大报文段长度MSS,确定所述多个发送窗口值。在本可能的实现方式中,采用已发送但尚未被确认的载荷包的大小来近似反映真实的发送窗口值,得到的结果准确,有利于后续识别TCP状态。可选地,已发送但尚未被确认的载荷包的大小Flight_Size=Seq-Ack+MSS。在第一方面的一种可能的实现方式中,所述根据所述多个拥塞窗口值,得到所述拥塞窗口曲线,可以包括对所述拥塞窗口曲线进行以下处理中的至少一种:删除所述多个拥塞窗口值中的异常值;提取所述拥塞窗口曲线的上包络线;采用中值滤波方法,对所述拥塞窗口曲线进行平滑;采用曲线拟合方法,对所述拥塞窗口曲线进行拟合。在本可能的实现方式中,采用多种处理可以得到更平滑的拥塞窗口曲线。在第一方面的一种可能的实现方式中,所述根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态,可以包括:根据所述拥塞窗口曲线上点的斜率变化情况,确定所述慢启动状态和所述拥塞避免状态的交界点。在本可能的实现方式中,基于拥塞窗口曲线上点的斜率变化情况,可以简单准确地确定慢启动状态和拥塞避免状态的交界点。可选地,所述根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态,可以包括:通过对所述拥塞窗口曲线进行线性拟合差分,确定所述慢启动状态和所述拥塞避免状态的交界点。在本可能的实现方式中,线性拟合差分算法成熟,运算简单,可以简单准确地确定慢启动状态和拥塞避免状态的交界点。在第一方面的一种可能的实现方式中,所述根据所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态,可以包括:满足以下条件的载荷包为快速重传状态的包:重复确认包的数量大于或等于1,或者最近时刻收到的确认包携带选择性确认SACK字段;载荷包的序列号与重复确认包的确认号相差不足最大报文段长度MSS;载荷包的序列号小于已发出载荷包的最大序列号;快速重传状态标记为假;并且载荷包携带有效数据;满足以下条件的载荷包为超时重传状态的包:重复确认包的数量等于0;最近时刻收到的确认包不携带SACK字段;载荷包的序列号小于或等于已发出载荷包的最大序列号;载荷包的序列号等于之前收到确认包的最大确认号;快速重传状态标记为假;并且载荷包携带有效数据。在本可能的实现方式中,以上述条件判断可以准确判断快速重传状态和超时重传状态。在第一方面的一种可能的实现方式中,所述方法还包括:对所述多个数据包的TCP头字段中的参数进行统计,得到特征值,所述特征值用于指示重复确认包的数量和已发出但未确认载荷包的数量的比值;根据所述特征值,确定引发快速重传状态和/或超时重传状态的原因是丢包或是乱序。在本可能的实现方式中,依据重复确认包和已发出但未确认载荷包的数量关系来进行根因分析,可以准确确定出引发快速重传状态和/或超时重传状态的原因。在第一方面的一种可能的实现方式中,所述根据所述特征值,确定引发快速重传状态和/或超时重传状态的原因是丢包或是乱序,包括:当所述特征值与1的差值的绝对值小于或等于第一阈值时,确定引发快速重传状态和/或超时重传状态的原因是丢包;当所述特征值与0的差值的绝对值小于或等于第二阈值时,确定引发快速重传状态和/或超时重传状态的原因是乱序。第二方面,提供了一种识别TCP状态的装置,用于执行上述第一方面或其任一可能的实现方式中的方法。具体地,该识别TCP状态的装置可以包括用于执行第一方面或其任一可能的实现方式中的方法的模块。第三方面,本申请提供了一种识别TCP状态的装置,该识别TCP状态的装置包括接口和处理器,所述接口和所述处理器耦合,通过所述接口获取TCP数本文档来自技高网...

【技术保护点】
1.一种识别传输控制协议TCP状态的方法,其特征在于,包括:获取TCP数据码流,所述TCP数据码流中包括多个数据包,所述数据包包括载荷包和确认包;根据所述多个数据包的TCP头字段中的参数,得到拥塞窗口曲线;根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态;根据所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态。

【技术特征摘要】
1.一种识别传输控制协议TCP状态的方法,其特征在于,包括:获取TCP数据码流,所述TCP数据码流中包括多个数据包,所述数据包包括载荷包和确认包;根据所述多个数据包的TCP头字段中的参数,得到拥塞窗口曲线;根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态;根据所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态。2.根据权利要求1所述的方法,其特征在于,所述根据所述多个数据包的TCP头字段中的参数,得到拥塞窗口曲线,包括:根据所述多个数据包的TCP头字段中的参数,估计得到多个发送窗口值;根据所述多个发送窗口值,估计得到多个拥塞窗口值;根据所述多个拥塞窗口值,得到所述拥塞窗口曲线。3.根据权利要求2所述的方法,其特征在于,所述根据所述多个数据包的TCP头字段中的参数,估计得到多个发送窗口值,包括:根据所述载荷包的序列号、所述确认包的最大确认号和最大报文段长度MSS,确定所述多个发送窗口值。4.根据权利要求2或3所述的方法,其特征在于,所述根据所述多个拥塞窗口值,得到所述拥塞窗口曲线,包括对所述拥塞窗口曲线进行以下处理中的至少一种:删除所述多个拥塞窗口值中的异常值;提取所述拥塞窗口曲线的上包络线;采用中值滤波方法,对所述拥塞窗口曲线进行平滑;采用曲线拟合方法,对所述拥塞窗口曲线进行拟合。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态,包括:根据所述拥塞窗口曲线上点的斜率变化情况,确定所述慢启动状态和所述拥塞避免状态的交界点。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态,包括:通过对所述拥塞窗口曲线进行线性拟合差分,确定所述慢启动状态和所述拥塞避免状态的交界点。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态,包括:满足以下条件的载荷包为快速重传状态的包:重复确认包的数量大于或等于1,或者最近时刻收到的确认包携带选择性确认SACK字段;载荷包的序列号与重复确认包的确认号相差不足最大报文段长度MSS;载荷包的序列号小于已发出载荷包的最大序列号;快速重传状态标记为假;并且载荷包携带有效数据;满足以下条件的载荷包为超时重传状态的包:重复确认包的数量等于0;最近时刻收到的确认包不携带SACK字段;载荷包的序列号小于或等于已发出载荷包的最大序列号;载荷包的序列号等于之前收到确认包的最大确认号;快速重传状态标记为假;并且载荷包携带有效数据。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:对所述多个数据包的TCP头字段中的参数进行统计,得到特征值,所述特征值用于指示重复确认包的数量和已发出但未确认载荷包的数量的比值;根据所述特征值,确定引发快速重传状态和/或超时重传状态的原因是丢包或是乱序。9.根据权利要求8所述的方法,其特征在于,所述根据所述特征值,确定引发快速重传状态和/或超时重传状态的原因是丢包或是乱序,包括:当所述特征值与1的差值的绝对值小于或等于第一阈值时,确定引发快速重传状态和/或超时重传状态的原因是丢包;当所述特征值与0的差值的绝对值小于或等于第二阈值时,确定引发快速重传状态和/或超时重传状态的原因是乱序。10.一种识别传输控制协议TCP状态的装置,其特征在于,包括:获取单元,用于获取TCP数据码流,所述TCP数据码流中包括多个数据包,所述数据包包括载荷包和确认包;计算单元,用于根据所述获取单元获取的所述多个数据包的TCP头字段中的参数,得到拥塞窗口曲线;第一识别单元,用于根据所述计算单元计算得到的所述拥塞窗口曲线,识别所述TCP数据码流中的慢启动状态和拥塞避免状态;第二识别单元,用于根据所述获取单元获取的所述载荷包和所述确认包的抵达顺序,识别所述TCP数据码流中的快速重传状态和超时重传状态。11.根据权利要求10所述的装置,其特征在于,所述计算单元具体用于:根据所述多个数据包的TCP头字段中的参数,估计得到多个发送窗口值;根据所述多个发送窗口值,估计得到多个拥塞窗口值;根据所述多个拥塞窗口值,得到所述拥塞窗口曲线。12.根据权利要求11所述的装置,其特征在于,所述计算单元具体用于:根据所述载荷包的序列号、所述确认包的最大确认号和最大报文段长度MSS,确定所述多个发送窗口值。13.根据权利要求11或12所述的装置,其特征在于,所述计算单元具体用于进行以下处理中的至少一种:删除所述多个拥塞窗口值中的异常值;提取所述拥塞窗口曲线的上包络线;采用中值滤波方法,对所述拥塞窗口曲线进行平滑;采用曲线拟合方法,对所述拥塞窗口曲线进行拟合。14.根据权利要求10至13中任一项所述的装置,其特征在于,所述第一识别单元具体用于:根据所述拥塞窗口曲线上点的斜率变化情况,确...

【专利技术属性】
技术研发人员:舒秀军叶建涛何慧茹刘德体
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1