论文部分内容阅读
网络已经渗透到社会经济、文化和科学等各个领域,网络性能的好坏直接或间接影响到人们的生活。当前网络中大部分数据流和业务都是基于TCP的,因而用户所能感知到的网络性能的好坏主要取决于TCP的性能。传统的TCP性能分析从吞吐量、延迟和丢包率等TCP数据传输的整体考虑,无法表征TCP数据传输过程中更细致的特征。而TCP状态能从数据包级反映出TCP的性能,从而更细致的分析出影响TCP性能的因素。本文围绕TCP状态进行研究,主要包括构建TCP状态数据集和使用不同的算法对TCP状态进行估计。1)针对现有研究中没有TCP状态数据集,我们通过研究TCP协议,修改Linux内核的网络协议栈,将ssthresh和cwnd字段添加到TCP头部选项中。之后搭建数据采集平台,在多场景中采集TCP数据,对TCP状态进行标注,构建了多网络场景下的TCP状态数据集。2)针对TCP状态估计问题,提出了基于规则的TCP状态估计算法。通过研究TCP数据传输在不同状态下的表现,使用改进后的Self-Clocking算法估计RTT,然后估计cwnd,设计规则对TCP状态进行估计。运用拥塞窗口平滑技术平滑cwnd估计误差,提高TCP状态估计的准确率。3)针对基于规则的TCP状态估计中慢启动状态的估计准确率不高以及设计规则时需要手动设置阈值参数的问题,提出了基于决策树的TCP状态估计算法。通过特征工程获取TCP状态特征集,训练学习构造决策树模型对TCP状态进行估计。实验结果表明,慢启动状态的估计准确率得到有效的提高。4)为了进一步提高慢启动状态的估计准确率,提出了基于LSTM特征提取的TCP状态估计算法。利用LSTM网络的记忆能力,提取TCP数据时序相关的特征,结合特征工程得到的部分特征一起组成新的TCP状态特征集,使用决策树算法训练学习进行TCP状态估计。实验结果表明LSTM神经网络提取的特征能极大的提高慢启动状态的估计准确率。