CN116032807A - 一种探测方法、装置、电子设备及存储介质 - Google Patents
一种探测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116032807A CN116032807A CN202111249834.2A CN202111249834A CN116032807A CN 116032807 A CN116032807 A CN 116032807A CN 202111249834 A CN202111249834 A CN 202111249834A CN 116032807 A CN116032807 A CN 116032807A
- Authority
- CN
- China
- Prior art keywords
- data packets
- probe
- data packet
- target
- detection
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 175
- 230000005540 biological transmission Effects 0.000 claims abstract description 105
- 239000000523 sample Substances 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims description 40
- 238000010276 construction Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000001914 filtration Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种探测方法、装置、电子设备及存储介质,其中,所述方法包括:构造与多种传输协议对应的多个探测数据包;将所述多个探测数据包发送给接收端;接收接收端发送的与所述多个探测数据包对应的目标数据包;基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
Description
技术领域
本申请实施例涉及通信领域,尤其涉及一种探测方法、装置、电子设备及存储介质。
背景技术
客户站点与站点之间,如客户端与服务器之间可以通过构建隧道进行互访互通,然而,站点之间的互联网状态对于站点的通信设备(比如,虚拟专用网络(VPN,VirtualPrivate Network)设备)而言完全是一个黑盒,其网络的状态及可见性完全依然于网络探测。因此,需要提供一种有效的方法对站点之间的网络状态进行探测。
发明内容
为解决上述技术问题,本申请实施例提供了一种探测方法、装置、电子设备及存储介质。
本申请实施例提供了一种探测方法,所述方法应用于发送端,所述方法包括:
构造与多种传输协议对应的多个探测数据包;
将所述多个探测数据包发送给接收端;
接收接收端发送的与所述多个探测数据包对应的目标数据包;
基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
本申请一可选实施方式中,所述构造与多种传输协议对应的多个探测数据包,包括:
针对所述多种传输协议中的每种传输协议,构造具有不同字节数的多个探测数据包。
本申请一可选实施方式中,所述构造与多种传输协议对应的多个探测数据包,包括:
针对所述多种传输协议中的每种传输协议,构造具有相同五元组的多个探测数据包;和/或,
针对所述多种传输协议中的每种传输协议,构造具有不同五元组的多个探测数据包。
本申请一可选实施方式中,所述发送端在发送所述多个探测数据包时利用柏克莱封包过滤器BPF对所述多个探测数据包进行过滤,在接收所述目标数据包时利用所述BPF对所述目标数据包进行过滤。
本申请一可选实施方式中,所述基于所述目标数据包确定对目标线路的探测结果,包括:
针对所述多种传输协议中的每种传输协议,基于接收到的与该传输协议对应的多个探测数据包所对应的目标数据包,确定目标线路在该传输协议下的时延和丢包率;
基于所述时延和丢包率,确定目标线路在该传输协议下的流量管理策略。
本申请一可选实施方式中,所述将所述多个探测数据包发送给接收端,包括:
按照第一规则将所述多个探测数据包发送给接收端,所述第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长;
相应的,所述基于所述目标数据包确定对目标线路的探测结果,包括:
在满足第一规则的情况下,基于所述目标数据包确定对目标线路的探测结果。
本申请一可选实施方式中,所述将所述多个探测数据包发送给接收端,包括:
按照第二规则将所述多个探测数据包发送给接收端;所述第二规则用于指示所述发送端发送所述多个探测数据包的时间段;所述第二规则包括多个时间段;
相应的,所述基于所述目标数据包确定对目标线路的探测结果,包括:
基于在所述多个时间段接收到的所述目标数据包确定目标线路在不同时间段的流量管理策略。
本申请一可选实施方式中,所述将所述多个探测数据包发送给接收端包括:
发送滑动窗口中的探测数据包;
若接收接收端反馈的滑动窗口移动指示,则移动所述滑动窗口,并发送移动后的滑动窗口中的新增探测数据包。
本申请一可选实施方式中,所述目标线路具体为VPN隧道;
相应地,在所述基于所述目标数据包确定对目标线路的探测结果的步骤之后,还包括:
基于所述探测结果,对所述VPN隧道的构建协议进行转换。
本申请实施例还提供了一种探测装置,所述装置应用于发送端,所述装置包括:
构造单元,用于构造与多种传输协议对应的多个探测数据包;
发送单元,用于将所述多个探测数据包发送给接收端;
接收单元,用于接收接收端发送的与所述多个探测数据包对应的目标数据包;
确定单元,用于基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
本申请一可选实施方式中,所述构造单元,具体用于:针对所述多种传输协议中的每种传输协议,构造具有不同字节数的多个探测数据包。
本申请一可选实施方式中,所述构造单元,具体用于:针对所述多种传输协议中的每种传输协议,构造具有相同五元组的多个探测数据包;和/或,针对所述多种传输协议中的每种传输协议,构造具有不同五元组的多个探测数据包。
本申请一可选实施方式中,所述发送端在发送所述多个探测数据包时利用柏克莱封包过滤器BPF对所述多个探测数据包进行过滤,在接收所述目标数据包时利用所述BPF对所述目标数据包进行过滤。
本申请一可选实施方式中,所述确定单元,具体用于:针对所述多种传输协议中的每种传输协议,基于接收到的与该传输协议对应的多个探测数据包所对应的目标数据包,确定目标线路在该传输协议下的时延和丢包率;基于所述时延和丢包率,确定目标线路在该传输协议下的流量管理策略。
本申请一可选实施方式中,所述发送单元,具体用于:按照第一规则将所述多个探测数据包发送给接收端,所述第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长;
相应的,所述确定单元,具体用于:在满足第一规则的情况下,基于所述目标数据包确定对目标线路的探测结果。
本申请一可选实施方式中,所述发送单元,具体用于:按照第二规则将所述多个探测数据包发送给接收端;所述第二规则用于指示所述发送端发送所述多个探测数据包的时间段;所述第二规则包括多个时间段;
相应的,所述确定单元,具体用于:基于在所述多个时间段接收到的所述目标数据包确定目标线路在不同时间段的流量管理策略。
本申请一可选实施方式中,所述发送单元,具体用于:发送滑动窗口中的探测数据包;若接收接收端反馈的滑动窗口移动指示,则移动所述滑动窗口,并发送移动后的滑动窗口中的新增探测数据包。
本申请一可选实施方式中,所述目标线路具体为VPN隧道;所述确定单元基于所述目标数据包确定对目标线路的探测结果之后,所述装置还包括:
转换单元,用于基于所述探测结果,对所述VPN隧道的构建协议进行转换。
本申请实施例还提供了一种电子设备,所述电子设备包括:存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现上述实施例所述的探测方法。
本申请实施例还提供了一种计算机存储介质,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现上述实施例所述的探测方法。
本申请实施例的技术方案,通过由发射端构造与多种传输协议对应的多个探测数据包;将所述多个探测数据包发送给接收端;接收接收端发送的与所述多个探测数据包对应的目标数据包;基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。如此,能够同时出探测发送端与接收端之间针对多种不同的传输协议的网络传输质量,从而能够对运营商的流控行为、封堵行为进行一定的推测,并根据推测结果在发送端与接收端之间选择合适的隧道传输模式,保持业务的持续稳定。
附图说明
图1为本申请实施例提供的一种探测系统的架构图;
图2为本申请实施例提供的一种探测方法的流程示意图;
图3为本申请实施例提供的一种数据包超时重传过程图;
图4为为本申请实施例提供的一种探测过程的数据包收发示意图;
图5为本申请实施例提供的一种基于滑动窗口的丢包统计方式示意图;
图6为本申请实施例提供的一种TCP协议连接管理流程图;
图7为本申请实施例提供的一种探测装置的结构组成示意图;
图8为本申请实施例提供的一种电子设备的结构组成示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
以下为与本申请实施例相关的关键术语的解释说明:
用户数据报协议(UDP,User Datagram Protocol),一种传输层通信协议,为应用程序提供一种无需建立连接就可以发送封装的网际互连协议(IP,Internet Protocol)数据包的方法。
传输控制协议(TCP,Transmission Control Protocol),一种面向连接的、可靠的、基于字节流的传输层通信协议。
封装安全载荷(ESP,Encapsulate Security Payload),是互联网安全协议(IPSec,Internet Protocol Security)的一种协议,定义在RFC2406中,用于为IP提供保密性和抗重播服务,包括数据包内容的保密性和有限的流量保密性。
虚拟专用网络,在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用,VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
柏克莱封包过滤器(BPF,Berkeley Packet Filter),是类Unix系统上数据链路层的一种原始接口,提供原始链路层封包的收发。
互联网服务提供商(ISP,Internet Service Provider),简称运营商,指的是面向公众提供下列信息服务的经营者:一是接入服务,即帮助用户接入互联网;二是导航服务,即帮助用户在互联网上找到所需要的信息;三是信息服务,即建立数据服务系统,收集、加工、存储信息,定期维护更新,并通过网络向用户提供信息内容服务。
本申请实施例首先提供了一种探测方法,现有技术中用于质量探测的因特网包探索器(ping,packet pnternet groper)和路径探测(traceroute)。对于传统方案而言,该方案具有以下缺点:
(1)传输协议固定,无法灵活模拟用户数据行为;
(2)无法探测长短连接的情况。
利用传统方案只能采用已经构建的隧道传输模式/协议的数据包对网络线路进行探测,并不能完全反应网络线路的质量。例如,若当前隧道采用UDP模式进行建立,则传统方案只能探测线路针对于UDP协议的质量,而无法知道网络线路上针对TCP、ESP协议的传输质量。
在上述方案的基础上,本申请实施例进一步提出了以下实施例中的探测方法,该探测方法能够支持多分支接入,通过灵活的改变数据包的封装协议,以及改变数据包的大小以及端口等,不仅可以探测出发送端与接收端之间的网络线路针对多种传输协议的传输质量,还可以对发送端与接收端之间的长短连接的连通性进行测试,全面细致的探测网络线路的传输质量,为选择发送端与接收端之间最优的传输模式提供依据。本申请实施例中,对于VPN隧道质量检测而言,如果检测出某种协议比如UDP的传输质量比较好,而此时VPN隧道为非UDP协议时,可对VPN隧道构建所采用的协议进行转换,当然,如果此时VPN隧道为UDP协议时,可无需进行协议转换。
本申请实施例的技术方案致力于探测互联网线路的整体性能,对运营商行为进行完整的推演,本申请实施例的技术方案主要包括以下几个方面:
(1)模拟隧道行为;模拟隧道行为主要包括:a、模拟不同的传输协议;基于不同的传输协议构造数据包以及进行数据包的发送和接收,确定发送端与接收端之间网络线路对各传输协议的传输质量;b、构造大小不同的数据包;通过构造不同大小的数据包模拟发送端与接收端之间不同的网络流量,确定网络线路对不同大小的网络流量的传输质量;c、建立长连接和短连接;通过改变发送端和/或接收端的端口号确定发送端与接收端之间网络线路的长连接和短连接的连通性。
(2)发送探测数据包进行探测。
(3)探测结果统计和反馈。
图1为本申请实施例提供的探测系统架构图,如图1所示,本申请实施例的探测方法基于发送端-服务端的架构设计,其中,发送端可理解为发送站点或者分支设备,一般为客户端;接收端可以理解为接收站点或者总部设备,一般为服务器。图1中,发送端主要进行探测数据包的发送,以及统计分析探测结果;接收端主要进行接收探测数据包的接收以及向发送端发送目标数据包。
客户端通常安装在分支设备中,负责主动发起探测,服务端通常安装在总部设备中,负责被动响应客户端的请求。作为一种优选的方式,考虑到服务端支持客户端高并发的需求,因此服务端的整体逻辑偏向于简单,主要功能就是响应客户端请求,并返回相应的数据包,主要的管理逻辑都在客户端进行完成。
表1为图1所示的架构中部分模块的作用介绍。
表1探测系统架构模块介绍
下面,结合图1所示的探测架构图来说明本申请实施例的技术方案。图2为本申请实施例提供的探测方法的流程示意图,如图2所示,所述方法应用于发射端,所述方法包括如下步骤:
步骤201:构造与多种传输协议对应的多个探测数据包。
本申请实施例中,发送端在构建探测数据包之前,首先从所述配置管理模块读入探测线路的配置信息,配置信息中包括接收端的IP地址信息。
本申请实施例中,客户端可以通过创建原始套接字的形式,模拟出与多种传输协议对应的多个探测数据包,这里,针对每种传输协议,构造的探测包的数量可以为多个。
本申请实施例中,对于多种传输协议涉及的具体协议不作具体限制,具体根据用户的探测需求进行选择,例如,传输协议可以是UDP协议、TCP协议、ESP协议,还可以用户根据需求自定义的协议。
本申请一可选实施方式中,所述步骤201具体包括:
针对所述多种传输协议中的每种传输协议,构造具有不同字节数的多个探测数据包。
本申请实施例中,构造具有不同字节数的多个探测包,是为了探测网络线路针对不同类型的应用流量的传输情况,例如,本申请实施例利用包含较少字节的探测包进行线路探测,能够确定出线路对文字类网页数据的传输质量,利用包含较多字节数的探测包进行线路探测,能够确定线路对视频类、游戏类应用数据的传输质量。
本申请一可选实施方式中,步骤201还可以具体包括:
针对所述多种传输协议中的每种传输协议,构造具有相同五元组的多个探测数据包,本文所述的五元组为:源端口、源IP、目的端口、目的IP以及传输层协议类型。通过构造具备相同五元组的探测数据包,可以探测网络链路对于长连接的连通性。所述长连接是指:探测数据包五元组长时间保持不变。
和/或
针对所述多种传输协议中的每种传输协议,构造不同五元组的多个探测数据包,从而探测网络链路对于短连接的连通性。其中,所述不同五元组的含义为:五元组中至少其中之一信息不同。
对于运营商而言,其可能会把长连接视为恶意流量,从而进行封堵,造成卡慢,因此,通过此处所述技术特征可以探测长短连接的连通性。
本申请实施例的技术方案,在构造数据包时通过定义数据包中的五元组能够测试出线路的长短连接的连通性。其中,通过构造具有相同五元组的多个探测数据包,能够测试出线路对于长连接的连通性,通过构造具有不同五元组的多个探测数据包能够测试出线路对于短连接的连通性。
步骤202:将所述多个探测数据包发送给接收端。
本申请一可选实施方式中,所述发送端在发送所述多个探测数据包时利用柏克莱封包过滤器BPF对所述多个探测数据包进行过滤,在接收所述目标数据包时利用所述BPF对所述目标数据包进行过滤。
本申请实施例中,客户端通过采用高性能的基于柏克莱封包过滤器(BPF,Berkeley Packet Filter)的包过滤方案,能够高效的发送探测数据包以及接收目标数据包,从而高效的基于发送的探测数据包和接收的目标数据包进行探测结果的统计。
本申请一可选实施方式中,数据包的过滤方式也可以采用应用层数据包过滤,另一方面,在高版本内核中,可以采用eBPF直接进行探测结果的返回,无需过滤数据包至应用层。
对于应用层数据包过滤,又可称之为应用层报文过滤(ASPF,ApplicationSpecific Packet Filter),是针对应用层的包过滤,即基于状态检测的报文过滤,也称为状态防火墙,它维护每一个连接的状态,并且检查应用层协议的数据,以此决定数据包是否被允许通过。它和普通的静态防火墙协同工作,以便于实施内部网络的安全策略。ASPF能够检测试图通过防火墙的应用层协议会话信息,阻止不符合规则的数据报文穿过。
对于eBPF,eBPF是extend BPF的简称,扩展的BPFeBPF,是kernel 3.15中引入的全新设计,将原先的BPF发展成一个指令集更复杂、应用范围更广的“内核虚拟机”。通过eBPF程序“附加”到内核中的指定代码路径,在遍历代码路径时,将执行所有附加的eBPF程序。利用eBPF能够编写网络程序,通过编写附加到网络套接字上的程序能够进行流量的过滤,对流量进行分类并运行网络分类器操作。
本申请一可选实施方式中,上述步骤202可具体通过以下方式实现:
按照第一规则将所述多个探测数据包发送给接收端,所述第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长。
本申请实施例中,接收到与各探测数据包对应的目标数据包的时长规定为一个时间阈值,该时间阈值理解为,发送探测数据包的时间与接收到与探测数据包对应的目标数据包的时间间隔,超过该时间间隔认为需要进行探测数据包的重发,或者认为发送端与接收端之间的线路中断。
本申请实施例中,由于第一规则规定了多个数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长,可以利用图1中的定时管理模块基于第一规则设置和管理多个探测数据包中各探测数据包的发包间隔(根据第一规则中各探测数据包的发送时间确定)、各探测数据包的超时重传时间间隔(根据第一规则中的接收到与探测数据包对应的目标数据包的时长,即时间阈值确定)和超时重传次数(根据第一规则中的发送次数确定)。
本申请实施例中,各探测数据包的超时重传时间可以是认为预先设定的一个时间值,也可以是利用自适应算法计算的一个可根据实时传输情况变化的时间值,例如,利用每次测量得到数据包的往返时延(RTT,Round-Trip Time),计算加权平均往返时间,并利用一个略大于加权平均往返时间的时间值作为超时重传时间。
图3为本申请实施例提供的探测数据包超时重传过程图,针对每种传输协议对应的每个探测数据包,均按照图3所示的步骤301至305进行探测数据包的超时重传。
通过按照第一规则进行探测数据包的发送,能够在发出每个探测数据包后,触发发送端进行该探测包的探测结果统计,避免与该探测包对应的探测流程未处理完毕(如未达到超时重传次数,未达到目标数据包接收时长)就进行探测结果的统计,从而引起统计结果的误差。
可以理解的是,本申请实施例的统计的探测结果中包含了各探测数据包的超时重传次数和超时重传时间。
本申请一可选实施方式中,上述步骤202还可以具体按照如下方式执行:
按照第二规则将所述多个探测数据包发送给接收端;所述第二规则用于指示所述发送端发送所述多个探测数据包的时间段;所述第二规则包括多个时间段;
本申请实施例中,按照第二规则进行多个探测数据包的发送,主要结合发送端图1中的定时管理模块设置发送多个探测数据包的时间段。可以理解的是,在不同的时间段,网络线路的传输质量也可能不同,例如,在凌晨的时间段内,网络线路可能不论对于任意一种传输协议都具有很好的传输质量,对于不同大小的数据包的也均具有较好的传输质量。而在傍晚的时间段,网络线路可能仅能对多种传输协议中的一种传输协议具有较好的传输质量。
本申请实施例的技术方案可以利用select函数进行探测数据包发送时间段的选择,即进行探测周期的选择,从而可以探测出网络线路在不同时间周期的传输质量。
步骤203:接收接收端发送的与所述多个探测数据包对应的目标数据包。
本申请实施例中,接收端主要是在接收到发送端发送的各探测数据包后,向发送端发送与各探测数据包对应的目标数据包。接收端在想发送端返回目标数据包时,还可以将目标线路的上行探测结果加入到目标数据包中。
本申请实施例中,上行探测过程具体为从发送端发送探测数据包到接收端接收到发送端发送的探测数据包这一过程,上行探测结果为上行探测过程中的数据传输情况,如数据包的上行传输时间,数据包上行传输过程的丢包率等。通过由接收端将上行探测结果加入到目标数据包中后发送给发送端,使得发送端能够获得上行探测信息(当然上行探测结果也可以由发端计算得出),之后,发送端再结合接收的目标数据包确定出下行探测信息,即可得到完成一次探测过程完整的上行探测信息和下行探测信息。此外,发送端可以直接向中央服务器发送上行探测信息和下行探测信息,可以免除接收端再单独向中央服务器发送上行探测信息,减少了探测结果统计过程中数据包的发送数量。
本申请实施例中,接收端返回的目标数据包可以是回显探测数据包,也可以是确认数据包。对于回显探测数据包,具体为接收端在接收到探测数据包后,保持探测数据包中的其他数据不变,修改探测数据包的源地址和目标地址(即将探测数据包的目标地址修改为发送端地址,将探测数据包的源地址修改为接收端地址)后,得到目标数据包,并将目标数据包从接收端发送至发送端。对于确认数据包,具体为接收端在接收到探测数据包后,向发送端发送一个用于向发送端通知接收端已接收到探测数据包的通知信息。本申请一可选实施方式中,发送和接收数据包的方式还可以采用直接驱动收包,完全通过驱动程序完成,当然也可以采用纯应用层完成数据包的发送和接收。
步骤204:基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
本申请实施例中,所述目标线路具体为VPN隧道,发送端在基于所述目标数据包确定对目标线路的探测结果之后,能够基于所述探测结果,对所述VPN隧道的构建协议进行转换。
具体的,本申请一可选实施方式中,所述步骤204具体包括:
针对所述多种传输协议中的每种传输协议,基于接收到的与该传输协议对应的多个探测数据包所对应的目标数据包,确定目标线路在该传输协议下的时延和丢包率等网络参数;
从而基于所述时延和丢包率等网络参数,可以确定目标线路对该传输协议的流量管理策略(比如,网络运营商对该协议的流量管理策略),从而为后续的协议选择做出依据。比如,若经过探测,发现UDP协议的传输质量最好,则可以后续真正传输数据时,采用UDP协议进行数据传输。
本申请一可选实施方式中,发送端利用互动窗口机制将所述多个探测数据包发送给接收端,具体发送多个探测数据包的方式为:
发送滑动窗口中的探测数据包;
若接收接收端反馈的滑动窗口移动指示,则移动所述滑动窗口,并发送移动后的滑动窗口中的新增探测数据包。
图4为本申请实施例提供的一种具体的探测过程的数据包收发示意图。如图4所示,发送端主要通过发送探测数据包进行UDP、ESP和TCP协议的传输时延和丢包率的探测。
本申请一可选实施方式中,数据包的传输时延可以直接采用数据包的往返时延(RTT,Round-Trip Time)得出,丢包情况则通过图5所示的滑动窗口方式统计当前窗口内的数据包的丢包情况。下面对图5所示的滑动窗口统计丢包率的方式介绍如下。
对于滑动窗口机制,具体为在发送端设置发送窗口,并在接收端设置接收窗口,如图5所示,可以在发送端和接收端设置窗口数量为16的发送窗口和接收窗口,利用发送端向接收端发送探测数据包时,将5个探测数据包分为一组,对于发送的第1-5个数据包,发送端在向接收端发送这5个数据包后,将对应的发送窗口的数值由1更改为0,发送单端在接收到与第1-5个探测数据包中的一个或多个探测数据包对应的目标数据包后,将对应窗口的数值由0修改为1。至此,发送端可以计算得到发送的前5个数据包的丢包率。另外,基于滑动窗口机制,发送端在将第1-5个数据包后发送给接收端后,接收端判断其还可以再接收第6-15个数据包并将此信息反馈给发送端,发送端接收到信息后,将发送窗口向右移动5个窗口,继续进行第6-10个数据包的发送,这里,发送端在进行第6-10个数据包的发送时,只需要确认接收端还具有接收空间(即是否还存在剩余的接收窗口),不需要确保发送端是否已接收到接收端反馈的前1-5个数据包的确认信息,发送端在发送完第6-10个数据包后,将对应的发送窗口的数值从由1更改为0,并基于接收到与第6-10个探测数据包中的一个或多个探测数据包对应的目标数据包后,将对应发送窗口的数值由0修改为1。至此,发送端可以计算得到发送的前10个数据包的丢包率。对于第11-15个数据包,发送端同样可以在未收到接收端反馈的前1-10个数据包的确认信息,且确定接收端还具有剩余的接收窗口的情况下,进行第11-15个数据包的发送,并基于接收到的第11-15个探测数据包对应的目标数据包的接收情况,确定第1-15个数据包的丢包率。
本申请实施例中,通过滑动窗口机制,统计当前窗口内的数据包的丢包情况,随着滑动窗口的移动,每一个数据包的到来都可以进行丢包值的计算,而不必等到一整组数据包全收到之后再进行丢包值的计算。另外,利用滑动窗口机制可以确定出接收端对探测数据包的接收能力,在接收端不存在剩余的接收窗口时,由发送端暂时停止数据包的发送,在发送端确认接收端已接收到探测数据包后,即确定接收端存在剩余的接收窗口的情况下,再进行后续探测数据包的发送,有助于拉长发包间隔,减少探测方面的开销,并且能够避免探测结果不仅受到网络链路的影响,还受到接收端的影响,避免探测结果不准确。
本申请一可选实施方式中,在发送端按照第一规则将所述多个探测数据包发送给接收端的情况下,上述步骤204具体包括:
在满足第一规则的情况下,基于所述目标数据包确定对目标线路的探测结果。
具体的,由于第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长。发送端在进行探测数据包的发送以及进行目标数据包的接收时,能够利用哈希表管理每个探测连接,利用哈希表中的关键字记录发送端和接收端之间的IP地址对信息,利用哈希表中的值信息记录与目标线路相关的探测数据包发送时间、重传时间、重传次数、目标数据包的接收时间等信息,并基于上述信息统计出与各数据包对应的传输时延和丢包率。
其中,对于传输时延,发送端可以根据记录的探测数据包的发送时间t1以及接收到与探测数据包对应的目标数据包的接收时间t2确定出该探测数据包的传输时延为t2-t1;对于丢包率,可以按照图5所示的滑动窗口方法进行确定。
基于记录和统计的上述协议,能够统计目标线路对针对各传输协议的探测结果。根据探测结果,能够对运营商的流控行为,封堵行为进行一定的推测,从而在VPN场景下,可以构建合适的VPN隧道建立协议,保证业务的持续稳定。
本申请一可选实施方式中,在发射端按照第二规则将所述多个探测数据包发送给接收端的情况下,上述步骤204具体包括:
基于在所述多个时间段接收到的所述目标数据包确定目标线路在不同时间段的流量管理策略。具体的,由于第二规则用于指示所述发送端发送所述多个探测数据包的时间段。本申请通过在不同的时间段对目标线路进行探测,可以探测出网络线路在不同时间周期的传输质量。
需要说明的是,对于TCP协议下的目标线路的探测,为了避免TCP的包被封堵,TCP探测前需要通过三次握手建立连接;三次握手后基于构建的哈希表创建子线程进行发包探测。具体过程按照图6中的步骤601至604依次执行。此外,对于TCP协议下的目标线路的探测,在进行探测数据包超时重传时,需要重传的数据包包括TCP三次握手的syn数据包(用于建立TCP连接需要发送的数据包,能够确认发送端和接收端之间是否成功建立TCP连接)和探测数据包(能够确保发送的各探测数据包均到达接收端)。本申请能够将重传事件加入发送端的定时管理模块中,对该类型的数据包的确认时间进行统计,如果达到一定时间间隔未获得确认数据包,则需要重传数据包,并重新计算下一轮超时时间。
本申请实施例的技术方案,能够通过灵活的变更数据包的构造条件,改变数据包的封装协议,以及改变数据包的大小以及端口等,不仅可以探测出发送端与接收端之间的网络线路针对多种传输协议的传输质量,还可以对发送端与接收端之间的长短连接的连通性进行测试,全面细致的探测网络线路的传输质量,为选择发送端与接收端之间最优的传输模式提供依据。本申请实施例能够对运营商的流控行为、封堵行为进行一定的推测,并根据推测结果在发送端与接收端之间选择合适的隧道传输模式,保持业务的持续稳定。
图7为本申请实施例提供的一种探测装置700的结构组成示意图,所述探测装置700应用于接收端,如图7所示,所述探测装置700包括:
构造单元701,用于构造与多种传输协议对应的多个探测数据包;
发送单元702,用于将所述多个探测数据包发送给接收端;
接收单元703,用于接收接收端发送的与所述多个探测数据包对应的目标数据包;
确定单元704,用于基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
本申请一可选实施方式中,所述构造单元701,具体用于:针对所述多种传输协议中的每种传输协议,构造具有不同字节数的多个探测数据包。
本申请一可选实施方式中,所述构造单元701,具体用于:针对所述多种传输协议中的每种传输协议,构造具有相同五元组的多个探测数据包;和/或,针对所述多种传输协议中的每种传输协议,构造具有不同五元组的多个探测数据包。
本申请一可选实施方式中,所述发送端在发送所述多个探测数据包时利用柏克莱封包过滤器BPF对所述多个探测数据包进行过滤,在接收所述目标数据包时利用所述BPF对所述目标数据包进行过滤。
本申请一可选实施方式中,所述确定单元704,具体用于:针对所述多种传输协议中的每种传输协议,基于接收到的与该传输协议对应的多个探测数据包所对应的目标数据包,确定目标线路在该传输协议下的时延和丢包率;基于所述时延和丢包率,确定目标线路在该传输协议下的流量管理策略。
本申请一可选实施方式中,所述发送单元702,具体用于:按照第一规则将所述多个探测数据包发送给接收端,所述第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长;
相应的,所述确定单元704,具体用于:在满足第一规则的情况下,基于所述目标数据包确定对目标线路的探测结果。
本申请一可选实施方式中,所述发送单元702,具体用于:按照第二规则将所述多个探测数据包发送给接收端;所述第二规则用于指示所述发送端发送所述多个探测数据包的时间段;所述第二规则包括多个时间段;
相应的,所述确定单元704,具体用于:基于在所述多个时间段接收到的所述目标数据包确定目标线路在不同时间段的流量管理策略。
本申请一可选实施方式中,所述发送单元702,具体用于:发送滑动窗口中的探测数据包;若接收接收端反馈的滑动窗口移动指示,则移动所述滑动窗口,并发送移动后的滑动窗口中的新增探测数据包。
本申请一可选实施方式中,所述目标线路具体为VPN隧道;所述确定单元704基于所述目标数据包确定对目标线路的探测结果之后,所述装置还包括:
转换单元705,用于基于所述探测结果,对所述VPN隧道的构建协议进行转换。
本领域技术人员应当理解,图7所示的探测装置中的各单元的实现功能可参照前述探测方法的相关描述而理解。图7所示的探测装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
本申请实施例还提供了一种电子设备。图8为本申请实施例的电子设备的硬件结构示意图,如图8所示,电子设备包括:用于进行数据传输的通信组件803、至少一个处理器801和用于存储能够在处理器801上运行的计算机程序的存储器802。终端中的各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。
其中,所述处理器801执行所述计算机程序时至少执行图1所示的方法的步骤。
可以理解,存储器802可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器801可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、MCU、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述的通话录音方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时至少用于执行图1所示方法的步骤。所述计算机可读存储介质具体可以为存储器。所述存储器可以为如图8所示的存储器802。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (12)
1.一种探测方法,其特征在于,所述方法应用于发送端,所述方法包括:
构造与多种传输协议对应的多个探测数据包;
将所述多个探测数据包发送给接收端;
接收接收端发送的与所述多个探测数据包对应的目标数据包;
基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
2.根据权利要求1所述的方法,其特征在于,所述构造与多种传输协议对应的多个探测数据包,包括:
针对所述多种传输协议中的每种传输协议,构造具有不同字节数的多个探测数据包。
3.根据权利要求1所述的方法,其特征在于,所述构造与多种传输协议对应的多个探测数据包,包括:
针对所述多种传输协议中的每种传输协议,构造具有相同五元组的多个探测数据包;和/或,
针对所述多种传输协议中的每种传输协议,构造具有不同五元组的多个探测数据包。
4.根据权利要求1至3任一项至所述的方法,其特征在于,所述发送端在发送所述多个探测数据包时利用柏克莱封包过滤器BPF对所述多个探测数据包进行过滤,在接收所述目标数据包时利用所述BPF对所述目标数据包进行过滤。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述基于所述目标数据包确定对目标线路的探测结果,包括:
针对所述多种传输协议中的每种传输协议,基于接收到的与该传输协议对应的多个探测数据包所对应的目标数据包,确定目标线路在该传输协议下的时延和丢包率;
基于所述时延和丢包率,确定目标线路在该传输协议下的流量管理策略。
6.根据权利要求1至3中任一项所述的方法,其特征在于,
所述将所述多个探测数据包发送给接收端,包括:
按照第一规则将所述多个探测数据包发送给接收端,所述第一规则用于指示所述多个探测数据包中的各探测数据包的发送时间、发送次数以及接收到与各探测数据包对应的目标数据包的时长;
相应的,所述基于所述目标数据包确定对目标线路的探测结果,包括:
在满足第一规则的情况下,基于所述目标数据包确定对目标线路的探测结果。
7.根据权利要求1至3中任一项所述的方法,其特征在于,
所述将所述多个探测数据包发送给接收端,包括:
按照第二规则将所述多个探测数据包发送给接收端;所述第二规则用于指示所述发送端发送所述多个探测数据包的时间段;所述第二规则包括多个时间段;
相应的,所述基于所述目标数据包确定对目标线路的探测结果,包括:
基于在所述多个时间段接收到的所述目标数据包确定目标线路在不同时间段的流量管理策略。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述将所述多个探测数据包发送给接收端,包括:
发送滑动窗口中的探测数据包;
若接收接收端反馈的滑动窗口移动指示,则移动所述滑动窗口,并发送移动后的滑动窗口中的新增探测数据包。
9.根据权利要求1至7中任一项所述的方法,其特征在于,所述目标线路具体为VPN隧道;
相应地,在所述基于所述目标数据包确定对目标线路的探测结果的步骤之后,还包括:
基于所述探测结果,对所述VPN隧道的构建协议进行转换。
10.一种探测装置,其特征在于,所述装置应用于发送端,所述装置包括:
构造单元,用于构造与多种传输协议对应的多个探测数据包;
发送单元,用于将所述多个探测数据包发送给接收端;
接收单元,用于接收接收端发送的与所述多个探测数据包对应的目标数据包;
确定单元,用于基于所述目标数据包确定对目标线路的探测结果;所述目标线路为所述发送端与所述接收端之间的网络线路。
11.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现权利要求1至9中任一项所述的方法。
12.一种计算机存储介质,其特征在于,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249834.2A CN116032807A (zh) | 2021-10-26 | 2021-10-26 | 一种探测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111249834.2A CN116032807A (zh) | 2021-10-26 | 2021-10-26 | 一种探测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116032807A true CN116032807A (zh) | 2023-04-28 |
Family
ID=86073057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111249834.2A Pending CN116032807A (zh) | 2021-10-26 | 2021-10-26 | 一种探测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116032807A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139841B1 (en) * | 2002-07-24 | 2006-11-21 | Cisco Technology, Inc. | Method and apparatus for handling embedded address in data sent through multiple network address translation (NAT) devices |
CN110233778A (zh) * | 2019-07-01 | 2019-09-13 | 北京云端智度科技有限公司 | 一种基于丢包率的端到端链路丢包分析方法 |
CN112511454A (zh) * | 2020-10-14 | 2021-03-16 | 网宿科技股份有限公司 | 一种网络质量的探测方法、系统及装置 |
CN112583657A (zh) * | 2020-11-13 | 2021-03-30 | 东北大学 | 一种基于嵌入式设备的分布式路由级网络拓扑探测方法 |
CN113055238A (zh) * | 2019-12-26 | 2021-06-29 | 深信服科技股份有限公司 | 一种网络探测方法、平台和计算机可读存储介质 |
-
2021
- 2021-10-26 CN CN202111249834.2A patent/CN116032807A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139841B1 (en) * | 2002-07-24 | 2006-11-21 | Cisco Technology, Inc. | Method and apparatus for handling embedded address in data sent through multiple network address translation (NAT) devices |
CN110233778A (zh) * | 2019-07-01 | 2019-09-13 | 北京云端智度科技有限公司 | 一种基于丢包率的端到端链路丢包分析方法 |
CN113055238A (zh) * | 2019-12-26 | 2021-06-29 | 深信服科技股份有限公司 | 一种网络探测方法、平台和计算机可读存储介质 |
CN112511454A (zh) * | 2020-10-14 | 2021-03-16 | 网宿科技股份有限公司 | 一种网络质量的探测方法、系统及装置 |
CN112583657A (zh) * | 2020-11-13 | 2021-03-30 | 东北大学 | 一种基于嵌入式设备的分布式路由级网络拓扑探测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799504B2 (en) | System and method of TCP tunneling | |
US9049220B2 (en) | Systems and methods for detecting and preventing flooding attacks in a network environment | |
US10085253B2 (en) | Methods and apparatus for controlling wireless access points | |
US7636305B1 (en) | Method and apparatus for monitoring network traffic | |
US20070240209A1 (en) | Session persistence on a wireless network | |
US20080177884A1 (en) | Error control terminal discovery and updating | |
CN112838966A (zh) | 一种udp链路监控方法、系统及电子设备 | |
US10063444B2 (en) | Network traffic capture analysis | |
US12107768B2 (en) | Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel | |
EP3525421B1 (en) | Data transmission method and apparatus | |
US11252184B2 (en) | Anti-attack data transmission method and device | |
CN107154917B (zh) | 数据传输方法及服务器 | |
CN114071544B (zh) | 网络测试方法、装置和电子设备 | |
CN113067910B (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
US20170033946A1 (en) | Negative acknowledgment of tunneled encapsulated media | |
CN116032807A (zh) | 一种探测方法、装置、电子设备及存储介质 | |
US8655969B2 (en) | Statistics reporting in a network test system | |
Mogildea et al. | QUIC over Satellite: Introduction and Performance Measurements | |
Seggelmann | Sctp: Strategies to secure end-to-end communication | |
FR2888695A1 (fr) | Detection d'une intrusion par detournement de paquets de donnees dans un reseau de telecommunication | |
CN112738032B (zh) | 一种用于防ip欺骗的通讯系统 | |
Völker et al. | Packet Too Big Detection and its Integration into QUIC | |
CN116915653B (zh) | 一种基于网络地址转换的设备数量检测方法及系统 | |
US11902404B1 (en) | Retaining key parameters after a transmission control protocol (TCP) session flap | |
EP3525412A1 (en) | Improved connectionless data transport protocol |
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 |