一种多路复用的ping方法、存储介质、终端和服务器技术

技术编号:21719161 阅读:38 留言:0更新日期:2019-07-27 21:40
本发明专利技术公开了一种多路复用的ping方法、存储介质、终端和服务器,ping方法包括:构建icmp请求报文;生成随机数,并将所述随机数填充icmp请求报文的序列号字段sequence;发送icmp请求报文。本发明专利技术可以避免现有技术中,同时多次调用ping工具对同一服务器进行icmp请求时无法正确获取应答,进而不能正确对网络情况进行判断问题;并且在优选方案中,多个需要发送icmp请求可以复用本申请创建的发送套接字,而避免调用更多的ping进程创建更多套接字来节省系统资源并可提升效率。

A Multiplexing Ping Method, Storage Media, Terminal and Server

【技术实现步骤摘要】
一种多路复用的ping方法、存储介质、终端和服务器
本专利技术涉及一种多路复用的ping方法、存储介质、终端和服务器。
技术介绍
网络设备(如路由器或者AP)会需要检查网络的连通情况或链路质量的检测,我们常常会在设备上使用ping工具对某一特定主机(如百度/腾讯等服务器)进行icmp回显请求。ping程序发出一个带有特定序列号(sequence)的icmp请求报文(request),目标服务器收到此报文之后必须给源主机(即发出请求的设备)回应一个icmp应答报文(reply),且请求报文中的序列号将在该应答报文中被带回。于是在发送端我们会:(1)根据是否接收到了和请求报文相同序列号的应答报文可以判断网络是否连通;(2)根据该次请求应答的往返时间(发出请求报文和接收到应答报文的时间差)可对网络质量做出判断。具体地,现有网络设备都是基于Linux系统,根据Linux系统上ping工具的实现,即程序调用ping工具对服务器进行查询时,序列号是由0开始,依次递增。如程序A调用ping工具进行查询时,第一个请求报文中就携带了进程A的进程号的标识符和为0的序列号,此时还有一个程序B也在调用ping工具对同一服务器进行查询,那么他会带上他的进程号和为0的序列号,此2个icmp请求报文会经过上层网关设备进行SNAT转换送向被请求的服务器,此时服务器收到了这2个icmp请求报文,就会回复2个序列号也是0的icmp应答报文,此2条应答报文也会经过设备上层的网关设备DNAT转换后送达给设备,一般的,网关设备做NAT转换时会根据报文中的标识符和sequence作为转换依据,但部分网关设备却仅将sequence作为转换依据,那么在同时有2个及以上sequence相同的报文时,一些网关设备不能正确处理,导致我们的icmp应答报文不能正确的收回,导致我们不能对网络情况做出正确判断。另外,当有一个程序需要发送icmp请求时调用现有的ping工具,那么系统就会产生一个ping进程并初始化一些相关资源(如初始化套接字等)以及更多的进程间通信,这样就会造成更多的系统资源消耗和效率上的下降。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种多路复用的ping方法、存储介质、终端和服务器,解决现有技术同一程序的多线程同时多次调用ping工具对同一服务器进行icmp请求时无法正确获取应答,进而不能正确对网络情况进行判断问题以及优化系统资源和效率相关的问题。本专利技术的目的是通过以下技术方案来实现的:本专利技术的第一方面,提供一种多路复用的ping方法,包括:构建icmp请求报文;生成随机数,并将所述随机数填充icmp请求报文的序列号字段sequence;发送icmp请求报文。进一步地,所述方法还包括:接收icmp应答报文;获取icmp应答报文中的序列号字段sequence,并与icmp请求报文的序列号字段sequence进行比较。进一步地,所述方法还包括在所述构建icmp请求报文之前的步骤:将待构建请求加入icmp请求链表内,并检查icmp套接字是否准备完毕,如未准备则创建用于发送icmp请求报文和/或接收icmp应答报文的icmp套接字;所述发送icmp请求报文包括:检查icmp请求链表内是否有请求需要发送,有请求时就将该icmp请求报文发出。进一步地,所述的方法还包括初始化步骤:注册icmp请求相关的回调函数,用于在icmp请求成功或者失败后调用以及初始化定时器用于icmp请求间隔。进一步地,所述生成随机数包括:根据当前系统时间,产生一个纳秒级的种子;以所述种子生成一个某一范围的随机数。本专利技术的第二方面,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的一种多路复用的ping方法的步骤。本专利技术的第三方面,提供一种装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的一种多路复用的ping方法的步骤。本专利技术的第四方面,提供一种多路复用的ping应答方法,包括:接收icmp请求报文;生成icmp应答报文,所述icmp应答报文的序列号字段sequence与icmp请求报文的序列号字段sequence相同;发送icmp应答报文;所述icmp请求报文的序列号字段sequence为填充的随机数。本专利技术的第五方面,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的一种多路复用的ping应答方法的步骤。本专利技术的第六方面,提供一种服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的一种多路复用的ping应答方法的步骤。本专利技术的有益效果是:(1)本专利技术可以避免现有技术中,同时多次调用ping工具对同一服务器进行icmp请求时无法正确获取应答,进而不能正确对网络情况进行判断问题。(2)并且在优选方案中,多个需要发送icmp请求可以复用本申请创建的发送套接字,而避免调用更多的ping进程创建更多套接字来节省系统资源并可提升效率。(3)综上,本申请可以替代现有各种需要用到ping工具检测的场景,结果可靠。附图说明图1为本专利技术一示例性实施例的流程图。具体实施方式下面结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。现有技术的ping程序会发出一个带有特定序列号(sequence)的icmp请求报文(request),目标服务器收到此报文之后必须给源主机(即发出请求的设备)回应一个icmp应答报文(reply),且请求报文中的序列号将在该应答报文中被带回。于是在发送端我们会:(1)根据是否接收到了和请求报文相同序列号的应答报文可以判断网络是否连通;(2)根据该次请求应答的往返时间(发出请求报文和接收到应答报文的时间差)可对网络质量做出判断。但是部分网关设备仅将sequence作为转换依据,该网关设备在同时有2个或多个sequence相同的报文需要NAT转换时不能正确处理,导致icmp应答报文不能正确的收回,进而导致我们不能对网络情况做出正确判断。有鉴于此,本申请旨在提供一种多路复用的ping方法、存储介质、终端和服务器,用于现有技术在多个程序同时调用ping工具对同一服务器进行icmp请求时无法正确获取应答,进而本文档来自技高网
...

【技术保护点】
1.一种多路复用的ping方法,其特征在于:包括:构建icmp请求报文;生成随机数,并将所述随机数填充icmp请求报文的序列号字段sequence;发送icmp请求报文。

【技术特征摘要】
1.一种多路复用的ping方法,其特征在于:包括:构建icmp请求报文;生成随机数,并将所述随机数填充icmp请求报文的序列号字段sequence;发送icmp请求报文。2.根据权利要求1所述的一种多路复用的ping方法,其特征在于:所述方法还包括:接收icmp应答报文;获取icmp应答报文中的序列号字段sequence,并与icmp请求报文的序列号字段sequence进行比较。3.根据权利要求1或2所述的一种多路复用的ping方法,其特征在于:所述方法还包括在所述构建icmp请求报文之前的步骤:将待构建请求加入icmp请求链表内,并检查icmp套接字是否准备完毕,如未准备则创建用于发送icmp请求报文和/或接收icmp应答报文的icmp套接字;所述发送icmp请求报文包括:检查icmp请求链表内是否有请求需要发送,有请求时就将该icmp请求报文发出。4.根据权利要求1或2所述的一种多路复用的ping方法,其特征在于:所述的方法还包括初始化步骤:注册icmp请求相关的回调函数,用于在icmp请求成功或者失败后调用以及初始化定时器用于icmp请求间隔。5.根据权利要求1所述的一种多路复用的ping方法,其特征在于:所...

【专利技术属性】
技术研发人员:吴梦非杨涛彭琮赵品富黄磊
申请(专利权)人:武汉思创易控科技有限公司
类型:发明
国别省市:湖北,42

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

1