CN114979015A - 一种数据包的处理方法及装置 - Google Patents

一种数据包的处理方法及装置 Download PDF

Info

Publication number
CN114979015A
CN114979015A CN202110191531.3A CN202110191531A CN114979015A CN 114979015 A CN114979015 A CN 114979015A CN 202110191531 A CN202110191531 A CN 202110191531A CN 114979015 A CN114979015 A CN 114979015A
Authority
CN
China
Prior art keywords
data packet
packet
sequence
received
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110191531.3A
Other languages
English (en)
Other versions
CN114979015B (zh
Inventor
张霖
刘岩
陈立
陈果
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110191531.3A priority Critical patent/CN114979015B/zh
Publication of CN114979015A publication Critical patent/CN114979015A/zh
Application granted granted Critical
Publication of CN114979015B publication Critical patent/CN114979015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种数据包的处理方法、装置、电子设备及计算机可读存储介质;涉及云技术的大数据处理;方法包括:对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。通过本申请,能够智能化实现准确而高效地丢包识别。

Description

一种数据包的处理方法及装置
技术领域
本申请涉及计算机网络技术及云技术的大数据处理技术,尤其涉及一种数据包的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。当前互联网的主要应用(如:应用下载,视频流媒体等)由传输控制协议(TCP,Transmission Control Protocol)承载,而网络丢包识别技术作为TCP协议的重要组成部分直接影响TCP协议的传输性能。
相关技术中,通常采用提前确认(FACK,Forward ACKnowledgement)方法和最近确认(RACK,Recent ACKnowledgment)这两种丢包识别的方法,而这两种方法均采用的是启发式算法,即利用经验或者一个固定的公式来进行丢包识别,这种方式存在丢包识别准确率和对不同网络(例如,蜂窝网络,无线网络Wi-Fi,固网)的适应性表现不足,导致丢包识别的准确率不稳定。
因此,相关技术中缺乏对数据包进行丢包识别的有效方案。
发明内容
本申请实施例提供一种数据包的处理方法、装置、电子设备及计算机可读存储介质,能够智能化实现准确而高效地丢包识别。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据包的处理方法,包括:
对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
本申请实施例提供一种数据包的处理装置,包括:
实时在线网络丢包识别模块,用于对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
在上述方案中,所述实时在线网络丢包识别模块,还用于当接收到针对所述数据包序列中的任意一个数据包的确认包时,从传输协议栈提取所述确认包的时间特征和/或空间特征,以作为与所述确认包对应的网络特征。
在上述方案中,所述时间特征包括以下至少之一:往返时延特征、拥塞窗口特征、乱序窗口特征;所述实时在线网络丢包识别模块,还用于从传输协议栈提取所述数据包序列中所述已收数据包的往返时延,以作为所述往返时延特征;确定所述数据包序列中在所述已收数据包之后的数据包的数量,以作为所述乱序窗口特征;将接收到所述确认包时所述数据包序列的拥塞窗口的值与预设拥塞阈值的加和,作为所述确认包的拥塞窗口特征;其中,所述拥塞窗口特征大于初始化的拥塞窗口的值、且小于或等于拥塞阈值。
在上述方案中,所述空间特征包括以下至少之一:区间数量特征、被选择性确认数量特征、最大差值数量特征;所述实时在线网络丢包识别模块,还用于从传输协议栈中查询所述数据包序列中位于所述已收数据包之后、且被选择性确认的数据包的数量,以作为所述被选择性确认数量特征;根据所述被选择性确认的数据包的位置,确定所述数据包序列中在所述已收数据包之后未被选择性确认的数据包所构成的区间数量,以作为区间数量特征;确定序号最大的所述被选择性确认的数据包和所述已收数据包的序号之间的差值,以作为最大差值数量特征。
在上述方案中,用于所述位置预测处理的机器学习模型包括决策树模型;所述实时在线网络丢包识别模块,还用于调用所述决策树模型执行以下处理:基于所述网络特征的多个维度的取值,遍历所述决策树中的多级级联的节点,以确定所述多个维度的取值对应的判断路径,将所述判断路径的最后一级节点中的丢包位置作为最远丢包位置;其中,每个所述节点包括所述网络特征的一个维度的判断条件,所述判断路径中的下一级节点是由上一级节点所包括的判断条件对所述网络特征的对应维度的取值进行判断而确定的。
在上述方案中,所述位置预测处理的机器学习模型包括神经网络模型;所述实时在线网络丢包识别模块,还用于调用所述神经网络模型执行以下处理:对所述网络特征进行全连接处理,以将所述网络特征从分布式取值空间映射为丢包位置取值空间中的位置特征;将所述位置特征进行归一化处理,以将所述位置特征映射为多个候选的丢包位置的概率,将最大概率的丢包位置作为所述数据包序列中位于已收数据包之后的最远丢包位置。
在上述方案中,所述数据包的处理装置,还包括:离线丢包识别模型构造模块,用于通过以下方式获取所述机器学习模型的训练集:从日志服务器获取包括客户端上传的数据包序列样本和服务器上传的数据包序列样本;遍历所述数据包序列样本中的每个数据包,当所述数据包发送的次数小于或等于接收到的次数、且发送的次数大于一次时,确定所述数据包为虚假重传的数据包;根据所述虚假重传的数据包,修正所述数据包序列样本中的已收数据包之后的最远丢包位置;从修正后的所述数据包序列样本中提取网络特征以作为训练样本,获取所述训练样本对应的标签,根据所述训练样本和对应的标签构建训练集。
在上述方案中,所述离线丢包识别模型构造模块,还用于确定所述数据包序列样本中序号最大的被选择性确认的数据包、与数据包序列样本中的已收数据包的序号之间的差值;将所述数据包序列样本中的已收数据包之后的最远丢包位置与所述差值的比值,作为所述训练样本的标签。
在上述方案中,所述实时在线网络丢包识别模块,还用于确定所述数据包序列中任一数据包的发送时间和被确认接收的接收时间;当所述任一数据包的发送时间和接收时间之间的间隔超过超时时间阈值时,重新发送所述任一数据包。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据包的处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的数据包的处理方法。
本申请实施例具有以下有益效果:
通过学习数据包序列和确认包的网络特征与最远丢包位置的关联的特性,能够准确预测数据包序列中的丢包位置,而借助于大数据保证了能够适应不同的网络环境的丢包位置预测,具有良好的通用性。
附图说明
图1是相关技术中的采用RACK方法进行丢包识别的示意图;
图2是相关技术中的RACK方法的记分板状态的示意图;
图3是相关技术中的采用FACK方法进行丢包识别的示意图;
图4是相关技术中的FACK方法的记分板状态的示意图;
图5A是本申请实施例提供的数据包的处理系统100的一个架构示意图;
图5B是本申请实施例提供的基于区块链的数据包的处理方法的应用示意图;
图5C是本申请实施例提供的区块结构(Block Structure)的一个示意图;
图6是本申请实施例提供的服务器200的结构示意图;
图7A是本申请实施例提供的数据包的处理方法的一个流程示意图;
图7B是本申请实施例提供的数据包的处理方法的一个流程示意图;
图7C是本申请实施例提供的数据包的处理方法的一个流程示意图;
图8是本申请实施例提供的数据包的处理方法的应用场景示意图;
图9是本申请实施例提供的数据收集的框架示意图;
图10是本申请实施例提供的修正数据的流程示意图;
图11是本申请实施例提供的提取网络特征的示意图;
图12是本申请实施例提供的确定标签的示意图;
图13是本申请实施例提供的决策树模型的示意图;
图14是本申请实施例提供的数据包序列的示意图;
图15是本申请实施例提供的提取网络特征的一个示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)确认字符(ACK,Acknowledge character),在网络通信中,接收端发给发送端的一种传输类控制字符,以表示发来的数据包已确认接收无误。
2)选择性确认字符(SACK,Selective ACK),是输控制协议(TCP,TransmissionControl Protocol)选项。该选项参数接收端告知发送端已经接收到并缓存的序号不连续的数据包。
3)往返时延(RTT,Round-trip time),表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
相关技术中,通常采用提前确认(FACK,Forward Acknowledgement)方法和最近确认(RACK,Recent ACKnowledgment)对网络中的数据包进行丢包识别,下面分析这两种方法。
(1)RACK是一种基于时间顺序差异进行丢包识别的方法,这种方法的基本思路是:如果发送端收到的ACK中有被选择性确认的数据包(即,通过AC K数据包中的SACK选项来确认收到),将在这个SACK(选择性确认)的数据包之前一定时间(由经验值决定,例如四分之一个最小RTT时间)发送的数据包判定为丢包。参见图1,图1是相关技术中的采用RACK方法进行丢包识别的示意图。其中,SND_UNA为已经发送未被接收确认的第一个数据包,LastSACK为被选择性确认的最后一个数据包。例如每一个SKB(已经发送但还没有确认的数据包)的发送时间为skb.xmit_time,Last SACK(即,被选择性确认的最后一个数据包)被接收端成功接收的时间为rack.xmit_time,根据Last SACK发送的时间和接收的时间计算得到Last SACK的RTT,即为rack.RTT,rack.reo_wnd为乱序的时间窗口大小,例如rack.reo_wnd=rtt_min/4。遍历SND_UNA(即,已经发送未确认的第一个数据包)和Last SACK(即,被选择性确认的最后一个数据包)之间的SKB,当当前时间currentTime>skb.xmit_time+rack.RTT+rack.reo_wnd时,确定这个SKB为丢包。由此,通过Last SACK的发送时间和接收时间来识别出SND_UNA和Last SACK之间的数据包有哪些已经丢失的。用记分板状态显示识别结果,参见图2,图2是相关技术中的RAC K方法的记分板状态的示意图,其中,201和202为丢失的数据包。
(2)FACK是一种基于空间顺序差异进行丢包识别的方法。这种方法的主要思想是:如果发送端收到的ACK中有被选择性确认的数据包,那么将这个最新被选择性确认的数据包(用Fackets_out表示)之前一定个数个(由经验值决定,例如用门限值Dupthresh表示,Dupthresh=3)还未被确定的数据包判定为丢包。参见图3,图3是相关技术中的采用FACK方法进行丢包识别的示意图。例如Dupthresh=3,被SACK的最大数据包和SND_UNA之间所差的数据包数量Fackets_out=12,可得Fackets_out-Dupthresh=9个数据包,即,将被选择性确认的最后一个数据包之前未被ACK和SACK的9个数据包确定为丢包。参见图4,图4是相关技术中的FACK方法的记分板状态的示意图,其中,401-409为丢失的数据包。
本申请实施例中发现,相关技术的上述方法在实际应用过程中,会出现以下技术问题:由于FACK和RACK均采用的是启发式算法,利用经验值或者一个固定的公式来进行丢包识别,存在丢包识别准确率低的问题,而且FACK和RACK方法对不同网络(例如蜂窝网络,Wi-Fi网络,固网)的适应性是不相同的,在不同的网络环境下会有较大的差别,导致丢包识别的准确率不稳定。
针对上述技术问题,本申请实施例提供一种数据包的处理方法、装置、电子设备和计算机可读存储介质,能够提高对数据包进行丢包识别的准确率,下面说明本申请实施例提供的数据包的处理方法的示例性应用,本申请实施例提供的数据包的处理方法可以由各种电子设备实施,例如可以为智能手机、平板电脑、智能车载终端、智能穿戴设备等各种类型的终端,也可以是服务器。
下面,说明本申请实施例提供的数据包的处理方法的一个示例性的应用系统架构,参见图5A,图5A是本申请实施例提供的数据包的处理系统100的一个架构示意图,其中,数据包的处理系统100包括:服务器200、网络300和终端400,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
下面的描述中涉及发送端和接收端,可以理解地,发送端和接收端是相对的概念。
在一些实施例中,可以由服务器200作为发送端,终端400作为接收端,服务器200向终端400发送数据包序列,服务器在接收到数据包序列中的数据后向服务器200发送确认包,确认包的信息包括被终端400确认接收的数据包以及被选择性确认的数据包;服务器200对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于网络特征对数据包序列进行位置预测处理,以确定数据包序列中位于已收数据包之后的最远丢包位置;将数据包序列中位于已收数据包和最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。服务器200向终端400重新发送这些丢失的数据包。
在一些实施例中,也可以由终端400作为发送端,服务器200作为接收端;终端400向服务器200发送数据包序列,服务器在接收到数据包序列中的数据后向终端400发送确认包,确认包的信息包括被服务器200确认接收的数据包以及被选择性确认的数据包;终端400对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于网络特征对数据包序列进行位置预测处理,以确定数据包序列中位于已收数据包之后的最远丢包位置;将数据包序列中位于已收数据包和最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。终端400向服务器200重新发送这些丢失的数据包。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
下面说明本申请实施例基于区块链网络的示例性应用。参见图5B,图5B是本申请实施例提供的基于区块链的数据包的处理方法的应用示意图,包括区块链网络600(示例性示出了区块链网络600包括节点610-1和节点610-2)、服务器200以及终端400,下面分别进行说明。
服务器200、终端400均可以加入区块链网络600而成为(映射为)其中的节点(示例性示出了包括节点610-1和节点610-2),图5B中示例性地示出了将服务器200映射为区块链网络600的节点610-2,终端400映射为区块链网络600的节点610-1,每个节点(例如节点610-1和节点610-2)都具有共识功能和记账(即维护状态数据库,例如KV数据库)的功能。
每个节点(例如节点610-1和节点610-2)的状态数据库中记录有服务器200发送的数据包序列和终端400的确认包,以使服务器200查询状态数据库中记录的数据确定数据包序列中丢失的数据包。
服务器200将数据包序列发送到终端400,并通过调用智能合约的方式发送至区块链网络600的节点610-2中,终端400接收到服务器200发送的数据包序列时,通过调用智能合约的方式将确认包发送至区块链网络的节点610-1中,节点610-1与区块链网络600的节点610-2进行共识;共识通过后,节点610-2调用自身的智能合约中集成有本申请实施例用以确定丢失的数据包的处理逻辑,以查询节点610-2中的状态数据库,将确定的数据包序列中丢失的数据包重新发送至终端400。
在本申请实施例中,通过区块链网络的节点之间的共识机制,可以保证用于数据包序列和确认包的可靠性以及计算过程(确定的丢失数据包)的可信性。
节点中维护有区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。参见图5C,图5C是本申请实施例提供的区块结构(Block Structure)的一个示意图,每个区块中包括本区块存储数据包序列中丢失的数据包和数据包序列中丢失的数据包的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。
接下来,说明本申请实施例提供的用于实施数据包的处理方法的电子设备的结构,如前所述,本申请实施例提供的电子设备可以是图5A中的服务器200。参见图6,图6是本申请实施例提供的服务器200的结构示意图,图6所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220。服务器200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。
在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本申请实施例提供的数据包的处理装置可以采用软件方式实现,图6示出了存储在存储器250中的数据包的处理装置255,其可以是程序和插件等形式的软件,包括以下软件模块:实时在线网络丢包识别模块2551和离线丢包识别模型构造模块2552,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
本申请实施例提供的数据包的处理方法可以由图5A中的终端400或服务器200单独执行。下面,以由图5A中的服务器200单独执行本申请实施例提供的数据包的处理方法为例说明。参见图7A,图7A是本申请实施例提供的数据包的处理方法的一个流程示意图,将结合图7A示出的步骤进行说明。
在步骤101中,对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征。
在一些实施例中,数据包序列中的数据包是按照发送的先后顺序排列的,对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征,可以通过以下方式实现:当接收到针对数据包序列中的任意一个数据包的确认包时,从传输协议栈提取确认包的时间特征和/或空间特征,以作为与确认包对应的网络特征。
在一些示例中,时间特征包括以下至少之一:往返时延特征、拥塞窗口特征、乱序窗口特征;从传输协议栈提取确认包的时间特征,可以通过以下方式实现:从传输协议栈提取已收数据包的往返时延,以作为往返时延特征;确定数据包序列中在已收数据包之后的数据包的数量,以作为乱序窗口特征;将接收到确认包时数据包序列的拥塞窗口的值与预设拥塞阈值的加和,作为确认包的拥塞窗口特征;其中,拥塞窗口特征大于初始化的拥塞窗口的值、且小于或等于拥塞阈值。
举例来说,参见图15,图15是本申请实施例提供的提取网络特征的一个示意图。已收数据包是数据包序列中被确认包所确认接收的数据包,如图15中Last ACK所示,确认包中还包括SACK选项,即被选择性确认的数据包,如图15中SACK1、SACK2、SACK3所示,其中,SACK3为被SACK的最大的数据包,往返时延特征可以从传输协议栈统计信息中获取,例如传输协议栈可以是TCP协议栈,TCP协议栈统计信息会记录数据包发送的时间以及确认包接收的时间,当接收到Last ACK时,从协议栈统计信息中获取Last ACK的发送时间和接收时间,由此得到Last ACK的往返时延,以作为往返时延特征。发送窗口中在Last ACK之后的数据包的数量为11,由此可以得到乱序窗口特征。假设拥塞窗口的初始值为1,拥塞阈值为ssthresh,预设拥塞阈值为1,每次接收一个ACK,增加一次拥塞窗口,当接收到Last ACK时数据包序列的拥塞窗口的值加一,作为确认包的拥塞窗口特征;其中,拥塞窗口特征大于初始化的拥塞窗口的值、且小于或等于拥塞阈值。需要说明的是,当拥塞窗口的值等于拥塞阈值时,重置拥塞窗口,即,将拥塞窗口置为1,以避免拥塞。
在一些示例中,空间特征包括以下至少之一:区间数量特征、被选择性确认数量特征、最大差值数量特征;从传输协议栈提取确认包的时间特征,可以通过以下方式实现:从传输协议栈中查询数据包序列中位于已收数据包之后、且被选择性确认的数据包的数量,以作为被选择性确认数量特征;根据被选择性确认的数据包的位置,确定数据包序列中在已收数据包之后未被选择性确认的数据包所构成的区间数量,以作为区间数量特征;确定序号最大的被选择性确认的数据包和已收数据包的序号之间的差值,以作为最大差值数量特征。
举例来说,参见图15,被选择性确认的数据包有3个,即数据包序列中位于LastACK之后、且被选择性确认的数据包的数量为3个,由此可以得到被选择性确认数量特征。根据被选择性确认的数据包的位置4、7和11,确定数据包序列中在已收数据包(即Last ACK)之后未被选择性确认的数据包所构成的区间,即0到4之间为一个区间,4到7之间为一个区间,7到11为一个区间,由此可以得到数据包序列中在已收数据包之后未被选择性确认的数据包所构成的区间数量为3个,以作为区间数量特征。序号最大的被选择性确认的数据包(即SACK3)和已收数据包(即Last ACK)的序号之间的差值11-0=11,由此可以得到最大差值数量特征。
在一些实施例中,当接收到针对数据包序列中的任意一个数据包的确认包时,从传输协议栈提取与确认包对应的区间数量特征、被选择性确认数量特征、最大差值数量特征和往返时延特征。
在本申请实施例中,网络特征包括时间特征和空间特征,能够学习到更丰富的特征,后续基于时间特征和空间特征进行丢包识别,提高了丢包识别的准确率。
在步骤102中,基于网络特征对数据包序列进行位置预测处理,以确定数据包序列中位于已收数据包之后的最远丢包位置。其中,已收数据包是数据包序列中被确认包所确认接收的数据包。这里的被确认包所确认接收的数据包为被ACK的数据包,即已收数据包为被ACK的数据包。
在一些实施例中,用于位置预测处理的机器学习模型包括决策树模型;参见图7B,图7B是本申请实施例提供的数据包的处理方法的一个流程示意图,示出了图7A中的步骤102,还可以通过执行步骤1021来实现。将结合各步骤进行说明。
在步骤1021中,调用决策树模型执行以下处理:基于网络特征的多个维度的取值,遍历决策树中的多级级联的节点,以确定多个维度的取值对应的判断路径,将判断路径的最后一级节点中的丢包位置作为最远丢包位置。
其中,每个节点包括网络特征的一个维度的判断条件,判断路径中的下一级节点是由上一级节点所包括的判断条件对网络特征的对应维度的取值进行判断而确定的。
在一些示例中,参见图13,图13是本申请实施例提供的决策树模型的示意图,其中,决策树模型包括根节点(Sack_hole<=1.5)和多级叶节点。
基于多个网络特征的取值,遍历决策树模型中的节点,每级节点对一个网络特征的取值进行一次判断,以得到多个网络特征对应的判断路径,将判断路径的最后一级节点中的丢包位置作为最远丢包位置。决策树模型的多级级联的节点构成不同的判断路径,指向不同的预测结果。
例如,根据网络特征Fackets_out=10,Sacked_out=4,Sacke_holes=1,RTT=0.23,得到一个判断路径为(Sack_hole<=1.5)—>(RTT<=0.28)—>(Fackets_out<=6.5)—>(Prediction=0.098)。根据网络特征Fackets_out=10,Sacked_out=4,Sacke_holes=3,RTT=0.2,得到一个判断路径为(Sack_hole<=1.5)—>(Sacked_out<=21.5)—>(Sacked_out<=11.5)—>(Prediction=0.9)。
假设一个数据包序列的网络特征包括:最大差值数量特征Fackets_out=10,被选择性确认数量特征Sacked_out=4,区间数量特征Sacke_holes=3,往返时延特征RTT=0.2,则先根据根节点(Sack_hole<=1.5)对Sack_hole=3进行判断,得到下一级节点(Sacked_out<=21.5),根据Sacked_out<=21.5对Sacked_out=4进行判断,得到下一级节点(Sacked_out<=11.5),根据Sacked_out<=11.5对Sacked_out=4进行判断得到判断结果Prediction=0.9,确定判断路径为(Sack_hole<=1.5)—>(Sacked_out<=21.5)—>(Sacked_out<=11.5)—>(Prediction=0.9),将最后一个节点(Prediction=0.9)中的丢包位置0.9作为预测结果Prediction=0.9,即最远丢包位置。需要说明的是,这里的位置指的是相对位置。
在一些示例中,提取的网络特征为区间数量特征、被选择性确认数量特征、最大差值数量特征和往返时延特征。图14,图14是本申请实施例提供的数据包序列的示意图。可知,图14中数据包序列的最大差值数量特征Fackets_out=10,被选择性确认数量特征Sacked_out=4,区间数量特征Sacke_holes=3,往返时延特征RTT=0.2,最后一级节点中的丢包位置Prediction为0.9,这里的0.9是通过决策树模型预测的最远丢包的相对位置,根据相对位置能够确定出最远丢包位置X=Fackets_out*Prediction=9。
在一些实施例中,可以通过训练样本和训练样本的标签训练决策树模型:从根节点开始,将网络特征的判断条件作为决策树模型中的一个节点,得到根据每个网络特征的判断条件对训练样本进行分支判断后的预测结果,将预测结果与训练样本的标签误差最小的网络特征作为划分的网络特征的判断条件,以基于划分的网络特征的判断条件对决策树模型进行递归划分;直到没有网络特征的判断条件可以用来对训练样本进行划分,得到训练好的决策树模型。需要说明的是,也可以通过其他算法训练决策树模型,例如贪心算法(即ID3算法)、C4.5算法、分类与回归树算法(CART,classification and regressiontree)。
在一些实施例中,用于位置预测处理的机器学习模型包括神经网络模型;基于网络特征对数据包序列进行位置预测处理,以确定数据包序列中位于已收数据包之后的最远丢包位置,可以通过以下方式实现:调用神经网络模型执行以下处理:对网络特征进行全连接处理,以将网络特征从分布式取值空间映射为丢包位置取值空间中的位置特征;将位置特征进行归一化处理,以将位置特征映射为多个候选的丢包位置的概率,将最大概率的丢包位置作为数据包序列中位于已收数据包之后的最远丢包位置。
需要说明的是,神经网络模型包括全连接层和归一化层,全连接处理通过神经网络模型的全连接层来实现,归一化处理通过神经网络模型的归一化层中的逻辑回归函数softmax来实现。
在一些实施例中,可以通过训练样本和训练样本的标签训练神经网络模型:以数据包序列的网络特征为训练样本,丢包位置为标签。将数据包序列的网络特征作为训练样本在神经网络模型中的各个层以及预测层中进行正向传播,以得到丢包位置特征向量;确定丢包位置特征向量的预测丢包位置;初始化包括每个训练样本以及对应样本的丢包位置的损失函数;确定每个训练样本的预测丢包位置和真实丢包位置之间的误差,并根据损失函数在神经网络模型中反向传播误差,以确定损失函数取得最小值时神经网络模型的变化值,并根据变化值更新神经网络模型的参数。
在本申请实施例中,通过机器学习模型,基于提取的时间特征和空间特征进行丢包识别,能够智能化地准确预测出数据包序列中位于已收数据包之后的最远丢包位置,提高了丢包识别的准确率。
在步骤103中,将数据包序列中位于已收数据包和最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
在一些实施例中,可以重新发送丢失的数据包。
在一些实施例中,在重新发送预测确定的丢失的数据包之外,还可以通过以下方式确定对数据包进行重传:确定发送的数据包序列中任一数据包的发送时间和被确认接收的接收时间;当任一数据包的发送时间和接收时间之间的间隔超过超时时间阈值时,确定这个数据包为丢失的数据包,以重新发送数据包。
在本申请实施例中,不仅通过机器学习模型预测丢失的数据包,而且将超时的数据包作为丢失的数据包,不仅提高了丢包识别的准确率,也提升了网络的传输性能。
在一些实施例中,通过以下方式获取上述的机器学习模型的训练集:从日志服务器获取包括客户端上传的数据包序列样本和服务器上传的数据包序列样本;遍历数据包序列样本中的每个数据包,当数据包发送的次数小于或等于接收到的次数、且发送的次数大于一次时,确定数据包为虚假重传的数据包;当数据包发送的次数大于接收到的次数时,确定这个数据包是真实丢包。根据虚假重传的数据包,修正数据包序列样本中的已收数据包之后的最远丢包位置;从修正后的数据包序列样本中提取网络特征以作为训练样本,获取训练样本对应的标签,根据训练样本和对应的标签构建训练集。
举例来说,数据包序列样本包括序号为1-5的数据包,1为被ACK的数据包,5为被SACK的数据包,遍历数据包后确定出数据包2和3为真实丢包,数据包4为虚假重传的数据包,将这个数据包序列样本中的被ACK的数据包之后的最远丢包位置修正为3。
在本申请实施例中,通过确定虚假重传的数据包,修正数据包序列样本的标签,使得训练样本和标签数据更准确,提高了对数据包进行丢包预测的准确率。
在一些实施例中,参见图7C,图7C是本申请实施例提供的数据包的处理方法的一个流程示意图,示出了在7A中的步骤101之前,还可以通过步骤104至步骤105来得到训练过程中的标签,将结合各步骤进行说明。
在步骤104中,确定数据包序列样本中序号最大的被选择性确认的数据包、与数据包序列样本中的已收数据包的序号之间的差值。
在步骤105中,将数据包序列样本中的已收数据包之后的最远丢包位置与差值的比值,作为训练样本的标签。
作为示例,图12,图12是本申请实施例提供的确定标签的示意图。其中,Last ACK为被ACK的数据包(即已收数据包),SACK1、SACK2、SACK3表示ACK选项中被SACK的数据包,Loss3表示最远丢失的数据包。根据Last ACK以及其中包括的SACK选项(即SACK1、SACK2、SACK3为被选择性确认的数据包)。假设数据包序列从Last ACK开始排序(从0开始),序号最大的被选择性确认的数据包为SACK3,为11;数据包序列样本中的已收数据包的序号为0,差值则为11,标签则为10/11=0.909。
在本申请实施例中,使用丢包的相对位置作为标签,相当于是进行了归一化处理,减少位置大小对预测结果的影响,能够更加准确地得到预测结果,提高丢包识别的准确率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。以服务器通过TCP协议的交互信息实时判断数据包在网络传输过程中发生的丢包情况为例。服务器通过获取的海量发送端和接收端的抓包数据构建在线网络丢包识别模型,基于在线网络丢包识别模型根据发送的数据中提取的网络特征实时进行网络丢包识别,对丢包进行立即重传,极大地提高了丢包识别的准确率,从而进一步提高了TCP传输性能。参见图8,图8是本申请实施例提供的数据包的处理方法的应用场景示意图。下面将结合图8说明本申请实施例提供的数据包的处理方法的具体实施场景。
在步骤801中,服务器收集大数据。
在一些实施例中,参见图9,图9是本申请实施例提供的数据收集的框架示意图。客户端和分布式服务端通过日志上报的方式将TCP数据存储至日志服务器中。服务器从日志服务器获取客户端和分布式服务端上传的数据(包括数据包序列样本、对应的确认包以及TCP协议栈统计信息)。
在本申请实施例中通过在客户端和分布式服务端处于不同网络环境(例如蜂窝网络、无线网络Wi-Fi、固网)下采集的TCP数据形成海量的数据集,并将该数据集存储在日志服务器用于后续分析,采集的数据能够反映各种网络环境。
在步骤802中,服务器修正日志服务器中收集的数据。
在一些实施例中,参见图10,图10是本申请实施例提供的修正数据的流程示意图。下面将结合各步骤进行说明。
在步骤8021中,服务器统计Server端中的每个数据包发送的次数和client端中相应数据包接收的次数。这里服务器分别统计日志服务器中每一条流中分布式服务端(Server)和客户端(Client)中每个数据包发送的次数和接收到的次数。
在步骤8022中,服务器将Server端每个数据包发送次数设为m,将Client端每个数据包接收次数设为n。其中,m和n均为自然数。
在步骤8023中,服务器遍历每个数据包,判断m和n的数量关系,以根据m和n的数量关系,修正数据。
在一些实施例中,当m>n时,确定这个数据包是真实丢包。当m≤n且m>1时,确定这个数据包为虚假重传的数据包,以修正数据包序列样本中的被ACK的数据包之后的最远丢包位置。
在本申请实施例中,考虑到在整体的TCP传输过程中存在虚假重传的情况,服务器确定出这些虚假重传的数据包并进行修正,以提高整个模型的预测准确度。
在步骤803中,服务器基于修正后的数据提取网络特征,以作为训练样本。服务器从TCP协议栈统计信息提取网络特征,网络特征包括:往返时延特征RTT,拥塞窗口特征Cwnd,被选择性确认数量特征Sacked_out,区间数量特征Sack_holes,最大差值数量特征Fackets_out,乱序窗口特征Reo_wnd等;Sack_holes指的是当本次ACK数据包(确认包)有SACK选项时,有多少个洞位于被ACK的数据包(已收数据包)和最大SACK数据包之间,即,最大SACK数据包和被ACK的数据包之间未被SACK的数据包构成的区域数量。
举例来说,参见图11,图11是本申请实施例提供的提取网络特征的示意图。确认包中的信息包括本次ACK、以及ACK的SACK选项(用于表征SACK1-SACK5的数据包被选择性确认);数据包序列中的数据包信息包括:LastACK(被ACK的数据包,即已收数据包)、SACK1(被选择性确认的数据包)、SACK2、SACK3、SACK4、SACK5。由此可知,数据包序列中总共有5个SACK块,序号为8、9、11、12、14、15、18、20和21的数据块均为已发送但未被ACK和SACK的数据包,1101及1101之后的数据包为还未发送的数据包。Sack_holes=hole1+hole2+hole3+hole4+hole5=5,即Last ACK和SACK5之前未被ACK和SACK的数据包所构成的区间数量;Sacked_out=6,即总共有6个被选择确认的数据包;Fackets_out=22-7=15,即SACK5距离Last ACK之间的数据包数量为15个。
在步骤804中,服务器确定训练样本的标签。
在一些实施例中,借鉴FACK方法的丢包预测规则,利用机器学习预测出丢包的一个大致区间范围,将最远丢包的相对位置作为训练样本的标签。参见图12,其中,Last ACK表示本次被ACK的数据包,SACK1、SACK2、SACK3表示ACK选项中被SACK的数据包,Loss3表示最远丢失的数据包。根据本次收到的ACK以及其中包括的SACK字段(即确认包的信息),找出距离Last ACK最远的丢失的数据包Loss3的位置X(即Loss3和ACK之间有多少的数据包)。将X与从Last ACK提取到的Fackets_out的比值(X/fackets_out),作为最远丢包的相对位置,即标签。
举例来说,参见图12,未被ACK或者SACK的数据包中,发生丢包的最大数据包位置X,即Loss3所指向的数据包,X=10。Fackets_out=11-0=11。针对本次收到的ACK所确定的标签=X/Fackets_out=0.909。得到的网络特征包括:Sacked_out=4,Fackets_out=11,Sacke_holes=3,RTT,Reo_wnd以及Cwnd(RTT,Reo_wnd和Cwnd从TCP协议栈统计信息中获取),标签=0.909。
在步骤805中,服务器基于训练样本和训练样本的标签对机器学习模型进行训练,以生成在线网络丢包识别模型。其中,机器学习模型可以是决策树、支持向量机和神经网络模型等。
在一些实施例中,可以通过训练样本和训练样本的标签训练决策树模型:从根节点开始,将网络特征的判断条件作为决策树模型中的一个节点,得到根据每个网络特征的判断条件对训练样本进行分支判断后的预测结果,将预测结果与训练样本的标签误差最小的网络特征作为划分的网络特征的判断条件,以基于划分的网络特征的判断条件对决策树模型进行递归划分;直到没有网络特征的判断条件可以用来对训练样本进行划分,得到训练好的决策树模型。需要说明的是,也可以通过其他算法训练决策树模型,例如贪心算法(即ID3算法)、C4.5算法、分类与回归树算法(CART,classification and regressiontree)。
在步骤806中,服务器基于训练好的在线网络丢包识别模型,对发送的数据进行丢包识别。
在一些实施例中,调用决策树模型执行以下处理:基于网络特征的多个维度的取值,遍历决策树中的多级级联的节点,以确定多个维度的取值对应的判断路径,将判断路径的最后一级节点中的丢包位置作为最远丢包位置;其中,每个节点包括网络特征的一个维度的判断条件,判断路径中的下一级节点是由上一级节点所包括的判断条件对网络特征的对应维度的取值进行判断而确定的。将本次收到ACK所提取到的Fackets_out乘预测结果,得到预测丢包的最远位置X,将预测丢包的最远位置X和Last ACK之间的未被ACK或者SACK的数据包全部作为丢失的数据包。
举例来说,参见图13和14,通过图13的在线网络丢包识别模型对图14中的数据包序列进行丢包识别。从图14可知,Fackets_out=10,Sacked_out=4,Sacke_holes=3。可以得到决策树的预测结果Prediction为0.9,由此确定出最远丢失的数据包位置X=Fackets_out*Prediction=9。从Last ACK之后到SACK3中的9-3=6个数据包(未被ACK或者SACK的数据包)作为丢包(即,图13中空白的数据包)。
在步骤807中,服务器立即重传丢失的数据包。
在一些实施例中,还可以结合超时重传处理。即,服务器记录发送的数据包序列中的每个数据包的发送时间和被确认接收的接收时间;当任一数据包的发送时间和接收时间之间的间隔超过超时时间阈值时,重新发送这个数据包,以提高TCP的传输性能。
在本申请实施例中,服务器基于海量的发送端和接收端的抓包数据构建在线网络丢包识别模型,并根据提取的网络特征实时进行网络丢包识别,极大的提高了丢包识别的准确率,从而进一步提升了TCP的传输性能。
下面继续说明本申请实施例提供的数据包的处理装置255的实施为软件模块的示例性结构,在一些实施例中,如图6所示,存储在存储器250的数据包的处理装置255中的软件模块可以包括:实时在线网络丢包识别模块2551,用于对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
在一些实施例中,所述实时在线网络丢包识别模块2551,还用于当接收到针对所述数据包序列中的任意一个数据包的确认包时,从传输协议栈提取所述确认包的时间特征和/或空间特征,以作为与所述确认包对应的网络特征。
在一些实施例中,所述时间特征包括以下至少之一:最小往返时延特征、拥塞窗口特征、乱序窗口特征;所述实时在线网络丢包识别模块2551,还用于从传输协议栈提取所述数据包序列中每个被确认接收的数据包的往返时延,将最小的往返时延作为所述最小往返时延特征;确定所述数据包序列中在所述已收数据包之后的数据包的数量,以作为所述乱序窗口特征;将接收到所述确认包时所述数据包序列的拥塞窗口的值与预设拥塞阈值的加和,作为所述确认包的拥塞窗口特征;其中,所述拥塞窗口特征大于初始化的拥塞窗口的值、且小于或等于拥塞阈值。
在一些实施例中,所述空间特征包括以下至少之一:区间数量特征、被选择性确认数量特征、最大差值数量特征;所述实时在线网络丢包识别模块2551,还用于从传输协议栈中查询所述数据包序列中位于所述已收数据包之后、且被选择性确认的数据包的数量,以作为所述被选择性确认数量特征;根据所述被选择性确认的数据包的位置,确定所述数据包序列中在所述已收数据包之后未被选择性确认的数据包所构成的区间数量,以作为区间数量特征;确定序号最大的所述被选择性确认的数据包和所述已收数据包的序号之间的差值,以作为最大差值数量特征。
在一些实施例中,用于所述位置预测处理的机器学习模型包括决策树模型;所述实时在线网络丢包识别模块2551,还用于调用所述决策树模型执行以下处理:基于所述网络特征的多个维度的取值,遍历所述决策树中的多级级联的节点,以确定所述多个维度的取值对应的判断路径,将所述判断路径的最后一级节点中的丢包位置作为最远丢包位置;其中,每个所述节点包括所述网络特征的一个维度的判断条件,所述判断路径中的下一级节点是由上一级节点所包括的判断条件对所述网络特征的对应维度的取值进行判断而确定的。
在一些实施例中,所述位置预测处理的机器学习模型包括神经网络模型;所述实时在线网络丢包识别模块2551,还用于调用所述神经网络模型执行以下处理:对所述网络特征进行全连接处理,以将所述网络特征从分布式取值空间映射为丢包位置取值空间中的位置特征;将所述位置特征进行归一化处理,以将所述位置特征映射为多个候选的丢包位置的概率,将最大概率的丢包位置作为所述数据包序列中位于已收数据包之后的最远丢包位置。
在一些实施例中,所述数据包的处理装置,还包括:离线丢包识别模型构造模块2552,用于通过以下方式获取所述机器学习模型的训练集:从日志服务器获取包括客户端上传的数据包序列样本和服务器上传的数据包序列样本;遍历所述数据包序列样本中的每个数据包,当所述数据包发送的次数小于或等于接收到的次数、且发送的次数大于一次时,确定所述数据包为虚假重传的数据包;根据所述虚假重传的数据包,修正所述数据包序列样本中的已收数据包之后的最远丢包位置;从修正后的所述数据包序列样本中提取网络特征以作为训练样本,获取所述训练样本对应的标签,根据所述训练样本和对应的标签构建训练集。
在一些实施例中,所述离线丢包识别模型构造模块2552,还用于确定所述数据包序列样本中序号最大的被选择性确认的数据包、与数据包序列样本中的已收数据包之间的差值;将所述数据包序列样本中的已收数据包之后的最远丢包位置与所述差值的比值,作为所述训练样本的标签。
在一些实施例中,所述实时在线网络丢包识别模块2551,还用于确定所述数据包序列中任一数据包的发送时间和被确认接收的接收时间;当所述任一数据包的发送时间和接收时间之间的间隔超过超时时间阈值时,重新发送所述任一数据包。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据包的处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据包的处理方法,例如,如图7A、7B、7C示出的数据包的处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例通过学习数据包序列和确认包的网络特征与最远丢包位置的关联的特性,能够准确预测数据包序列中的丢包位置,而借助于大数据保证了能够适应不同的网络环境的丢包位置预测,具有良好的通用性;通过区块链网络的节点之间的共识机制,可以保证用于数据包序列和确认包的可靠性以及计算过程(确定的丢失数据包)的可信性;网络特征包括时间特征和空间特征,能够学习到更丰富的特征,后续基于时间特征和空间特征进行丢包识别,提高了丢包识别的准确率;不仅通过机器学习模型预测丢失的数据包,而且将超时的数据包作为丢失的数据包,不仅提高了丢包识别的准确率,也提升了网络的传输性能;通过确定虚假重传的数据包,修正数据包序列样本的标签,使得训练样本和标签数据更准确,提高了对数据包进行丢包预测的准确率;使用丢包的相对位置作为标签,相当于是进行了归一化处理,减少位置大小对预测结果的影响,能够更加准确地得到预测结果,提高丢包识别的准确率;基于海量的发送端和接收端的抓包数据构建在线网络丢包识别模型,并根据提取的网络特征实时进行网络丢包识别,极大的提高了丢包识别的准确率,从而进一步提升了TCP的传输性能。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (10)

1.一种数据包的处理方法,其特征在于,所述方法包括:
对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;
基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;
其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;
将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
2.根据权利要求1所述的方法,其特征在于,所述对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征,包括:
当接收到针对所述数据包序列中的任意一个数据包的确认包时,从传输协议栈提取所述确认包的时间特征和/或空间特征,以作为与所述确认包对应的网络特征。
3.根据权利要求2所述的方法,其特征在于,所述时间特征包括以下至少之一:往返时延特征、拥塞窗口特征、乱序窗口特征;
所述从传输协议栈提取所述确认包的时间特征,包括:
从所述传输协议栈提取所述已收数据包的往返时延,以作为所述往返时延特征;
确定所述数据包序列中在所述已收数据包之后的数据包的数量,以作为所述乱序窗口特征;
将接收到所述确认包时所述数据包序列的拥塞窗口的值与预设拥塞阈值的加和,作为所述确认包的拥塞窗口特征;
其中,所述拥塞窗口特征大于初始化的拥塞窗口的值、且小于或等于拥塞阈值。
4.根据权利要求2所述的方法,其特征在于,
所述空间特征包括以下至少之一:区间数量特征、被选择性确认数量特征、最大差值数量特征;
所述从传输协议栈提取所述确认包的空间特征,包括:
从所述传输协议栈中查询所述数据包序列中位于所述已收数据包之后、且被选择性确认的数据包的数量,以作为所述被选择性确认数量特征;
根据所述被选择性确认的数据包的位置,确定所述数据包序列中在所述已收数据包之后未被选择性确认的数据包所构成的区间数量,以作为区间数量特征;
确定序号最大的所述被选择性确认的数据包和所述已收数据包的序号之间的差值,以作为最大差值数量特征。
5.根据权利要求1所述的方法,其特征在于,
用于所述位置预测处理的机器学习模型包括决策树模型;
所述基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置,包括:
调用所述决策树模型执行以下处理:
基于所述网络特征的多个维度的取值,遍历所述决策树中的多级级联的节点,以确定所述多个维度的取值对应的判断路径,将所述判断路径的最后一级节点中的丢包位置作为最远丢包位置;
其中,每个所述节点包括所述网络特征的一个维度的判断条件,所述判断路径中的下一级节点是由上一级节点所包括的判断条件对所述网络特征的对应维度的取值进行判断而确定的。
6.根据权利要求1所述的方法,其特征在于,
所述位置预测处理的机器学习模型包括神经网络模型;
所述基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置,包括:
调用所述神经网络模型执行以下处理:
对所述网络特征进行全连接处理,以将所述网络特征从分布式取值空间映射为丢包位置取值空间中的位置特征;
将所述位置特征进行归一化处理,以将所述位置特征映射为多个候选的丢包位置的概率,将最大概率的丢包位置作为所述数据包序列中位于已收数据包之后的最远丢包位置。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
通过以下方式获取所述机器学习模型的训练集:
从日志服务器获取包括客户端上传的数据包序列样本和服务器上传的数据包序列样本;
遍历所述数据包序列样本中的每个数据包,当所述数据包发送的次数小于或等于接收到的次数、且发送的次数大于一次时,确定所述数据包为虚假重传的数据包;
根据所述虚假重传的数据包,修正所述数据包序列样本中的已收数据包之后的最远丢包位置;
从修正后的所述数据包序列样本中提取网络特征以作为训练样本,获取所述训练样本对应的标签,根据所述训练样本和对应的标签构建训练集。
8.根据权利要求7所述的方法,其特征在于,所述获取所述训练样本对应的标签,包括:
确定所述数据包序列样本中序号最大的被选择性确认的数据包、与数据包序列样本中的已收数据包的序号之间的差值;
将所述数据包序列样本中的已收数据包之后的最远丢包位置与所述差值的比值,作为所述训练样本的标签。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述数据包序列中任一数据包的发送时间和被确认接收的接收时间;
当所述任一数据包的发送时间和接收时间之间的间隔超过超时时间阈值时,重新发送所述任一数据包。
10.一种数据包的处理装置,其特征在于,包括:
实时在线网络丢包识别模块,用于对发送的数据包序列和接收的确认包进行特征提取,以得到网络特征;
基于所述网络特征对所述数据包序列进行位置预测处理,以确定所述数据包序列中位于已收数据包之后的最远丢包位置;
其中,所述已收数据包是所述数据包序列中被所述确认包所确认接收的数据包;
将所述数据包序列中位于所述已收数据包和所述最远丢包位置之间、且未被确认收到的数据包,确定为丢失的数据包。
CN202110191531.3A 2021-02-19 2021-02-19 一种数据包的处理方法及装置 Active CN114979015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110191531.3A CN114979015B (zh) 2021-02-19 2021-02-19 一种数据包的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110191531.3A CN114979015B (zh) 2021-02-19 2021-02-19 一种数据包的处理方法及装置

Publications (2)

Publication Number Publication Date
CN114979015A true CN114979015A (zh) 2022-08-30
CN114979015B CN114979015B (zh) 2024-04-12

Family

ID=82954695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110191531.3A Active CN114979015B (zh) 2021-02-19 2021-02-19 一种数据包的处理方法及装置

Country Status (1)

Country Link
CN (1) CN114979015B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006067109A (ja) * 2004-08-25 2006-03-09 Ntt Docomo Inc 通信端末および通信システム並びに輻輳制御方法
CN101695035A (zh) * 2009-10-21 2010-04-14 成都市华为赛门铁克科技有限公司 流量识别方法及装置
CN105591843A (zh) * 2016-02-06 2016-05-18 中国科学院计算技术研究所 Tcp传输流中基于接收端的网络性能检测方法及系统
CN106878191A (zh) * 2015-12-14 2017-06-20 华为技术有限公司 一种数据传送方法、发送节点、接收节点及数据传送系统
WO2017133014A1 (zh) * 2016-02-06 2017-08-10 中国科学院计算技术研究所 Tcp传输流中基于接收端的网络性能检测方法及系统
US20170264493A1 (en) * 2015-03-09 2017-09-14 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
CN107204834A (zh) * 2017-05-25 2017-09-26 复旦大学 一种基于udt协议的高速网络可靠传输的控制方法
CN109104373A (zh) * 2017-06-20 2018-12-28 华为技术有限公司 网络拥塞的处理方法、装置及系统
CN110391879A (zh) * 2019-07-15 2019-10-29 湖南大学 数据传输网络的丢包恢复方法、装置和计算机设备
CN110445653A (zh) * 2019-08-12 2019-11-12 灵长智能科技(杭州)有限公司 网络状态预测方法、装置、设备及介质
CN111919423A (zh) * 2018-04-06 2020-11-10 华为技术有限公司 网络通信中的拥塞控制

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006067109A (ja) * 2004-08-25 2006-03-09 Ntt Docomo Inc 通信端末および通信システム並びに輻輳制御方法
CN101695035A (zh) * 2009-10-21 2010-04-14 成都市华为赛门铁克科技有限公司 流量识别方法及装置
US20170264493A1 (en) * 2015-03-09 2017-09-14 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
CN106878191A (zh) * 2015-12-14 2017-06-20 华为技术有限公司 一种数据传送方法、发送节点、接收节点及数据传送系统
CN105591843A (zh) * 2016-02-06 2016-05-18 中国科学院计算技术研究所 Tcp传输流中基于接收端的网络性能检测方法及系统
WO2017133014A1 (zh) * 2016-02-06 2017-08-10 中国科学院计算技术研究所 Tcp传输流中基于接收端的网络性能检测方法及系统
CN107204834A (zh) * 2017-05-25 2017-09-26 复旦大学 一种基于udt协议的高速网络可靠传输的控制方法
CN109104373A (zh) * 2017-06-20 2018-12-28 华为技术有限公司 网络拥塞的处理方法、装置及系统
CN111919423A (zh) * 2018-04-06 2020-11-10 华为技术有限公司 网络通信中的拥塞控制
CN110391879A (zh) * 2019-07-15 2019-10-29 湖南大学 数据传输网络的丢包恢复方法、装置和计算机设备
CN110445653A (zh) * 2019-08-12 2019-11-12 灵长智能科技(杭州)有限公司 网络状态预测方法、装置、设备及介质

Also Published As

Publication number Publication date
CN114979015B (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
CN110445653B (zh) 网络状态预测方法、装置、设备及介质
US7609625B2 (en) Systems and methods for detecting and preventing flooding attacks in a network environment
CN101217429B (zh) 基于tcp时间戳选项确定tcp报文之间的引发关系的方法
EP3396883A1 (en) Data transmission method and related device
US20070286071A1 (en) Communication-efficient distributed monitoring of thresholded counts
CN102546625A (zh) 半监督聚类集成的协议识别系统
US10063444B2 (en) Network traffic capture analysis
CN113452676B (zh) 一种检测器分配方法和物联网检测系统
CN113438155B (zh) 虚拟多链路的智能可靠的udp传输方法、装置和设备
CN108400984B (zh) 基于动态规则匹配的mqtt消息过滤方法及系统
CN110855510A (zh) 数据传输优化方法、装置、设备及介质
CN114979015B (zh) 一种数据包的处理方法及装置
CN114650260B (zh) 网络丢包类型识别方法、装置及电子设备
US7558200B2 (en) Router congestion management
Kulkarni et al. Analysis of tcp performance in data center networks
CN114422227B (zh) 一种基于网络安全的数据采集分析系统
CN109067503A (zh) 一种数据重传方法和装置
CN106411684A (zh) 消息处理方法及装置
CN111294553B (zh) 处理视频监控业务信令的方法、装置、设备和存储介质
Sethi et al. High impact event processing using incremetal clustering in unsupervised feature space through genetic algorithm by selective repeat ARQ protocol
CN117857649B (zh) 一种传输控制协议数据包的传输方法及系统
CN115118392B (zh) D-sack的确定方法、处理器与通信系统
Pristupa et al. Performance of forward error correction in transport protocol at intrasegment level
CN116248579B (zh) 一种多必经点的通信路径规划方法及装置
Dickens et al. Classifiers for the causes of data loss using packet-loss signatures

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant