CN112910725B - 一种网络流量检测方法及装置、计算机可读存储介质 - Google Patents
一种网络流量检测方法及装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN112910725B CN112910725B CN202110064466.8A CN202110064466A CN112910725B CN 112910725 B CN112910725 B CN 112910725B CN 202110064466 A CN202110064466 A CN 202110064466A CN 112910725 B CN112910725 B CN 112910725B
- Authority
- CN
- China
- Prior art keywords
- network
- data packet
- layer data
- packet
- transport layer
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/08—Testing, supervising or monitoring using real traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种网络流量检测方法及装置、计算机可读存储介质,该方法包括:通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包,并从第一网络层数据包中解析出第一传输层数据包。之后,将第一传输层数据包通过套接字通信方式发送给业务服务器,并获取业务服务器返回的第二传输层数据包。最后,结合第二传输层数据包进行网络流量统计,获得统计结果。本申请实施例无需依赖于手机的Root权限,能够通用于不同手机系统,因此网络流量检测更加便利及灵活。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种网络流量检测方法及装置、计算机可读存储介质。
背景技术
现有的手机系统中,如果需要统计应用程序所访问的服务器网际互连协议(internet protocol,IP)地址及其流量占比,通常是在超级用户权限(Root)下捕获网络抓包文件,再从网络抓包文件中读取出IP地址信息。然而,出于对手机安全及隐私性的考虑,手机厂商通常不会主动开放手机的Root权限,因此仍需用户手动启用Root权限,操作较为不便。
申请内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种网络流量检测方法及装置、计算机可读存储介质,能够在非Root条件下实现网络流量检测,操作便利。
根据本申请的第一方面实施例的一种网络流量检测方法,包括:
通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包;从所述第一网络层数据包中解析出第一传输层数据包;将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器;获取所述业务服务器返回的第二传输层数据包;结合所述第二传输层数据包进行网络流量统计,获得统计结果。
根据本申请实施例的一种网络流量检测方法,至少具有如下有益效果:
在本申请实施例中,通过虚拟网络适配器获取向业务服务器发出网络请求时对应的第一网络层数据包,可以从第一网络层数据包解析出第一传输层数据包,再将第一传输层数据包通过套接字通信方式发送给业务服务器,能够直接建立虚拟网络适配器与业务服务器之间的数据交互,获得业务服务器返回的第二传输层数据包,从而结合从第二传输层数据包中的业务服务器传输层信息实现精准的网络流量统计。可见,本申请实施例无需依赖于手机的Root权限,能够通用于不同手机系统,因此网络流量检测更加便利及灵活。
根据本申请的一些实施例,所述虚拟网络适配器与物理网络适配器相连接;所述通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包,包括:
通过虚拟网络适配器,从所述物理网络适配器中读取对业务服务器的网络请求所对应的第一网络层数据包。
根据本申请的一些实施例,所述获取所述业务服务器返回的第二传输层数据包之后,所述方法还包括:
对所述第二传输层数据包进行封装,获得第二网络层数据包;将所述第二网络层数据包通过所述虚拟网络适配器写入所述物理网络适配器,以使得所述物理网络适配器将所述第二网络层数据包分发到所述应用程序。
根据本申请的一些实施例,所述获取所述业务服务器返回的第二传输层数据包之后,以及所述对所述第二传输层数据包进行封装之前,所述方法还包括:
检测所述应用程序是否正常联网;
所述对所述第二传输层数据包进行封装,获得第二网络层数据包,包括:
如果所述应用程序正常联网,对所述第二传输层数据包进行封装,获得第二网络层数据包。
根据本申请的一些实施例,所述方法还包括:
如果所述应用程序未正常联网,则构建空的网络层数据包,再将所述空的网络层数据包通过所述虚拟网络适配器写入所述物理网络适配器,以使得所述物理网络适配器将所述空的网络层数据包分发到所述应用程序。
根据本申请的一些实施例,所述将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器,包括:
如果套接字通信方式采用传输控制协议,则先通过所述套接字通信方式与所述业务服务器建立通信连接,再将所述第一传输层数据包发送给所述业务服务器;
如果套接字通信方式采用用户数据报协议,则直接将所述第一传输层数据包通过所述套接字通信方式发送给所述业务服务器。
根据本申请的一些实施例,所述结合所述第二传输层数据包进行网络流量统计,获得统计结果,包括:
从所述第二传输层数据包中提取出所述业务服务器的IP地址信息和端口信息;结合所述IP地址信息和所述端口信息,统计不同网际协议版本的IP地址占比以及不同IP地址的流量占比,获得统计结果。
根据本申请第二方面实施例的一种网络流量检测装置,包括:
虚拟网络适配器,用于获取对业务服务器的网络请求所对应的第一网络层数据包;
读取模块,用于从所述虚拟网络适配器中读取所述第一网络层数据包;
解析模块,用于从所述第一网络层数据包中解析出第一传输层数据包;
通信模块,用于将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器;以及获取所述业务服务器返回的第二传输层数据包;
统计模块,用于结合所述第二传输层数据包进行网络流量统计,获得统计结果。
根据本申请第三方面实施例的一种网络流量检测装置,包括:
一个或多个存储器;
一个或多个处理器,用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,还用于执行如本申请第一方面实施例所述的方法。
根据本申请第四方面实施例的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如本申请第一方面实施例所述的方法。
根据本申请第五方面实施例的一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面实施例所述的方法。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所应用的系统架构示意图;
图2为本申请实施例公开的一种网络流量检测方法的实施例示意图;
图3为本申请实施例公开的另一种网络流量检测方法的实施例示意图;
图4为本申请实施例公开的又一种网络流量检测方法的实施例示意图;
图5为本申请实施例公开的一种网络流量检测装置的结构示意图;
图6为本申请实施例公开的另一种网络流量检测装置的结构示意图。
附图标记:
客户端100、应用程序101、物理网络适配器102、虚拟网络适配器103、服务模块104、解析/封包模块105、通信模块106、业务服务器120。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
为了使本技术领域的人员更好地理解本申请方案,下面先对本申请实施例中涉及到的有关专业术语及技术进行说明。
开放系统互连参考模型(open system interconnection reference model,OSI参考模型)定义了网络互连的七层框架,包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。各层详细介绍参阅下表1:
表1
在OSI参考模型中,发送端在应用层生成发送数据,并经过第7层应用层至第1层物理层对发送数据进行逐层封装及传送,由物理层将封装完成的发送数据发送给接收端。类似的,接收端在物理层接收数据,并经过第1层物理层至第7层应用层对接收数据进行逐层解装及传递,完成数据接收流程。
此外,网络适配器,工作在OSI模型的数据链路层,用于建立终端设备和外界局域网的通信。当发送端发送数据时,网络适配器可以接收到网络层下交的IP数据包,并将IP数据包封装成数据帧后发送到局域网。
本申请实施例公开一种网络流量检测方法及装置、计算机可读存储介质,能够在非Root条件下实现网络流量检测,操作便利。以下结合附图进行详细描述。
为了更好的理解本申请实施例公开的网络流量检测方法,以下先对本申请实施例所应用的系统进行描述。
请参阅图1,图1为实施例所应用的系统架构示意图。如图1所示,该系统包括客户端100和业务服务器120。业务服务器120可以是安装在客户端100上的应用程序101所对应的服务端,其可用于为应用程序101提供对系统资源的访问机制,比如响应于网站(Web)应用程序的超文本传输协议(hypertext transfer protocol,HTTP)请求传送浏览页面,或者为客户端应用程序提供可调用的方法等。相应的,客户端100(通常可包含图形用户界面(graphical user interface,GUI))可以运行在终端设备、Web服务器或者其它应用程序服务器上,对此不做具体限定。其中,终端设备可以包括但不限于智能手机、可穿戴设备、便携式终端、笔记本电脑、平板电脑或智能PC(personal computer)等。
在本申请实施例中,客户端100还可以包括物理网络适配器102、虚拟网络适配器103、服务模块104、解析/封包模块105以及通信模块106。
其中,物理网络适配器102可以是实际安装在客户端100上的计算机硬件,包括工业标准体系结构(industry standard architecture,ISA)接口网卡、外设部件互连标准(peripheral component interconnect,PCI)接口网卡、通用串行总线(universal serialbus,USB)接口网卡和无线网卡等,不做具体限定。当应用程序101发出网络请求时,网络请求对应的网络层数据包可流通至物理网络适配器102,故物理网络适配器102可以将网络层数据包封装成以太网数据帧发送给指定的业务服务器120,以建立与业务服务器120之间的通信连接。
其中,虚拟网络适配器103可利用软件模拟网络适配器,通过构建虚拟专用网络(virtual private network,VPN)实现VPN网络内终端通信的功能。可选的,虚拟网络适配器103可以包括TAP组件和TUN组件。TAP组件和TUN组件是操作系统内核中的虚拟网络设备,这些虚拟网络设备由软件实现,并向运行于操作系统上的软件提供与硬件网络设备相同的功能。其中,TAP组件用于模拟以太网设备,可处理数据链路层的数据包,比如以太网数据帧。TUN组件用于模拟网络层设备,可处理网络层的数据包,比如IP数据包。
在一种实现方式中,物理网络适配器102可以与虚拟网络适配器103建立通信连接,比如,如果客户端安装有安卓系统,则物理网络适配器102可以通过安卓系统接口与虚拟网络适配器103通信。
在本申请实施例中,服务模块104可以与虚拟网络适配器103进行数据交互,并提供网络流量检测服务,比如服务模块104可以包括用于提供用户交互界面的交互模块、用于从虚拟网络适配器103中获取网络层数据包的读取模块以及用于根据业务服务器120返回的传输层数据包进行网络流量统计的统计模块。解析/封包模块105可用于按照指定的网络层协议(比如IP协议)对服务模块104获取的网络层数据包进行解析,也可按照指定的传输层协议对通信模块106接收到的传输层数据包进行封包。通信模块106可用于按照指定的通信方式将解析/封包模块105解析的数据包发送给指定的业务服务器120,也可接收业务服务器120返回的数据包。
在一种实现方式中,服务模块104、解析/封包模块105以及通信模块106可以应用于流量管理应用程序,而流量管理应用程序可以是客户端上任一指定的应用程序,实现流量管理应用程序的防火墙功能。
应当理解的是,上述系统适用于本申请实施例公开的网络流量检测方法。下面对本申请实施例所公开的网络流量检测方法进行详细描述。
请参阅图2,图2为本申请实施例公开的一种网络流量检测方法的实施例示意图。
201、通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包。
在本申请实施例中,当用户在客户端上执行对任一应用程序或者应用程序中的资源数据(比如浏览页面)的访问操作时,应用程序可发出对相应业务服务器的网络请求。
在一种实现方式中,可以基于网络地址转换(network address translation,NAT)模式配置虚拟网络适配器的内网IP地址,则基于该内网IP地址,网络请求对应的第一网络层数据包可以直接下发至虚拟网络适配器。而在另一种实现方式中,构建的虚拟网络适配器与物理网络适配器建立通信连接。当网络请求对应的第一网络层数据包流通至物理网络适配器,可以通过虚拟网络适配器直接从物理网络适配器中读取出第一网络层数据包。这种方式下,虚拟网络适配器不会影响到物理网络适配器与业务服务器的正常通信,其应用场景更加灵活。
202、从第一网络层数据包中解析出第一传输层数据包。
在本申请实施例中,第一网络层数据包可以包括IP报头、传输控制协议(thetransmission control protocol,TCP)/用户数据报协议(user datagram protocol,UDP)报头以及负载数据。根据网络层协议,可以从第一传输层数据包中解析出TCP/UDP报头以及负载数据,TCP/UDP报头包含了TCP/UDP协议的通信信息。
203、将第一传输层数据包通过套接字通信方式发送给业务服务器。
在本申请实施例中,套接字上联应用层,下联网络协议栈,是应用程序通过网络协议进行通信的接口。每一个传输层连接可被通信两端的两个端点(即两个套接字)所确定,而套接字包括IP地址和端口,例如:如果IP地址是210.37.145.1,而端口号是23,则套接字可以为(210.37.145.1:23)。套接字通信方式至少可以包括流套接字、数据包套接字以及原始套接字。
也就是说,在一种实现方式中,上述流量管理应用程序可以通过套接字通信方式与业务服务器进行通信。
204、获取业务服务器返回的第二传输层数据包。
205、结合第二传输层数据包进行网络流量统计,获得统计结果。
在本申请实施例中,第二传输层数据包可以包括业务服务器的IP地址和端口等网络标识信息,不做具体限定。循环上述步骤201~步骤204,可以采集到同一应用程序(或者不同应用程序)访问网络时与应用程序建立通信的业务服务器所返回的传输层数据包,实现基于大数据的网络流量统计。
在本申请实施例中,统计结果可以包括但不限于:不同网际协议版本的IP地址占比,比如,分别统计网际协议版本4(internetprotocol version4,IPv4)地址占比和网际协议版本6(internet protocol version6,IPv6)地址占比;不同IP地址的流量占比,比如,IP地址1的访问次数占比为70%,IP地址2的访问次数占比为30%;以及非IP数据包计数、IP校验和错误、接口活动和数据包大小计数等。
在一些实现方式中,还可以通过流量管理应用程序以可视化形式输出统计结果,可视化形式可以包括但不限于表格、图形和图像,便于直观展示数据。
可见,实施上述申请实施例,能够直接建立虚拟网络适配器与业务服务器之间的数据交互,获得业务服务器返回的第二传输层数据包,从而结合从第二传输层数据包中的业务服务器传输层信息实现精准的网络流量统计。并且,无需依赖于手机的Root权限,能够通用于不同手机系统,因此网络流量检测更加便利及灵活。
请参阅图3,图3为本申请实施例公开的另一种网络流量检测方法的实施例示意图。
301、通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包。
302、从第一网络层数据包中解析出第一传输层数据包。
303、如果套接字通信方式采用传输控制协议,则先通过套接字通信方式与业务服务器建立通信连接,再将第一传输层数据包发送给业务服务器。
在本申请实施例中,当套接字通信方式为流套接字时,其采用了TCP协议,可提供面向连接及可靠的数据传输服务。作为一种可选的实施方式,通过套接字通信方式与业务服务器建立通信连接具体可以为:
业务服务器初始化,进入阻塞等待状态。通信模块调用Socket接口初始化,并通过调用连接(connect)函数向业务服务器发送同步信息,此时connect函数进入阻塞状态。业务服务器接收同步信息,并通过调用接收(accept)函数向通信模块返回第一确认信息,此时accept函数进入阻塞状态。通信模块接收第一确认信息,向业务服务器返回第二确认信息,并从connect函数返回。业务服务器接收到第二确认信息时,从accept函数返回,从而完成通信模块与业务服务器之间的三次握手建立连接。
304、如果套接字通信方式采用用户数据报协议,则直接将第一传输层数据包通过套接字通信方式发送给业务服务器。
在本申请实施例中,当套接字通信方式为数据报套接字时,其采用了UDP协议,可提供无连接的服务,因此通信效率高。
305、获取业务服务器返回的第二传输层数据包。
在本申请实施例中,如果套接字通信方式采用TCP协议,则第二传输层数据包可以是TCP数据包;如果采用UDP协议,则第二传输层数据包可以是UDP数据包。
306、从第二传输层数据包中提取出业务服务器的IP地址信息和端口信息。
307、结合IP地址信息和端口信息,统计不同网际协议版本的IP地址占比以及不同IP地址的流量占比,获得统计结果。
在一些实现方式中,根据不同网际协议版本对应的地址结构体,可以从IP地址信息中区分出不同网际协议版本的IP地址,从而实现对不同网际协议版本的IP地址流量检测。示例性的,IPv4的地址结构体包括16位端口号和32位IP地址,而IPv6的地址结构体包括16位端口号、128位IP地址以及其他控制字段。
可见,实施上述方法实施例,能够实现精准的网络流量统计,并且无需依赖于手机的Root权限,通用于不同手机系统,因此网络流量检测更加便利及灵活。此外,能够选择性地采用TCP协议与业务服务器建立可靠性的数据传输,或者采用UDP协议提供无连接的服务,提高通信效率;进一步的,还可以实现对不同网际协议版本的IP地址流量检测。
请参阅图4,图为本申请实施例公开的又一种网络流量检测方法的实施例示意图。
步骤401至步骤407请参照图3所示实施例中对步骤301至步骤307的描述,此处不再赘述。
408、检测应用程序是否正常联网。若是,执行步骤409;若否,则执行步骤410。
在一些实现方式中,可以检测应用程序的联网接口(比如Socket接口),若联网接口为打开状态,则判定应用程序正常联网,若联网接口为关闭状态,则判定应用程序未正常联网。
或者,进一步的,若联网接口为关闭状态,还可以检测应用程序是否获得联网权限,若获得联网权限,则可以向应用程序发送联网提示信息,比如在应用程序的显示界面弹出用于询问是否开启联网权限的弹窗,从而起到联网提示的作用。
409、对第二传输层数据包进行封装,获得第二网络层数据包,并将第二网络层数据包通过虚拟网络适配器写入物理网络适配器,以使得物理网络适配器将第二网络层数据包分发到发出网络请求的应用程序。
在本申请实施例中,如果应用程序可以联网,则应用程序也正常接收到业务服务器针对网络请求返回的数据,因此应用程序能够与业务服务器建立通信连接。
410、构建空的网络层数据包,再将空的网络层数据包通过虚拟网络适配器写入物理网络适配器,以使得物理网络适配器将空的网络层数据包分发到发出网络请求的应用程序。
在本申请实施例中,可以先构建空的传输层数据包,再根据网络层协议,将空的传输层数据包封装成空的网络层数据包。
在一种实现方式中,空的传输层数据包可以指TCP(或UDP)报头为空的传输层数据包。此时,如果向应用程序返回空的网络层数据包,则应用程序无法正常与业务服务器建立通信连接。在另一种实现方式中,如果第二传输层数据包为UDP数据包,还可以根据从第二传输层数据包中解析的源地址、源端口、目标地址和目标端口信息,结合空的负载数据,构建空的传输层数据包。如果第二传输层数据包为TCP数据包,除了源地址、源端口、目标地址、目标端口信息和空的负载数据,还可以结合第二传输层数据包中指示状态连接的序列号和确认号,构建空的传输层数据包。此时,当向应用程序返回空的网络层数据包,应用程序可以与业务服务器建立通信连接。
可见,这样能够实现对应用程序的联网开关控制,还能够辅助定位应用程序的相关网络异常问题。
作为一种可选的实施方式,还可以在从第二传输层数据包中分析出异常信息时,执行步骤410,从而实现防火墙功能,提高网络访问安全性。
可见,实施上述方法实施例,能够实现精准的网络流量统计,并且无需依赖于手机的Root权限,通用于不同手机系统,因此网络流量检测更加便利及灵活。此外,还能够实现对应用程序的联网开关控制,并辅助定位应用程序的相关网络异常问题。
上述对本申请实施例中的网络流量检测方法进行了说明,下面对本申请实施例中的网络流量检测装置进行说明。
请参阅图5,图5是本申请实施例公开的一种网络流量检测装置的结构示意图,包括:
虚拟网络适配器501,用于获取对业务服务器的网络请求所对应的第一网络层数据包;
读取模块502,用于从虚拟网络适配器501中读取第一网络层数据包;
解析模块503,用于从第一网络层数据包中解析出第一传输层数据包;
通信模块504,用于将第一传输层数据包通过套接字通信方式发送给业务服务器,以及获取业务服务器返回的第二传输层数据包;
统计模块505,用于结合第二传输层数据包进行网络流量统计,获得统计结果。
在本申请实施例中,作为一种可选的实施方式,虚拟网络适配器与物理网络适配器相连接;虚拟网络适配器501具体用于从物理网络适配器中读取对业务服务器的网络请求所对应的第一网络层数据包。
在本申请实施例中,作为一种可选的实施方式,该网络流量检测装置还可以包括封装模块和写入模块。封装模块用于在通信模块504获取业务服务器返回的第二传输层数据包之后,对第二传输层数据包进行封装,获得第二网络层数据包。写入模块,用于将第二网络层数据包通过虚拟网络适配器写入物理网络适配器,以使得物理网络适配器将第二网络层数据包分发到发出网络请求的应用程序。
进一步的,作为一种可选的实施方式,该网络流量检测装置还可以包括检测模块,检测模块用于在通信模块504获取业务服务器返回的第二传输层数据包之后,以及封装模块对第二传输层数据包进行封装之前,检测应用程序是否正常联网;封装模块,还用于在应用程序正常联网时,对第二传输层数据包进行封装,获得第二网络层数据包。
再进一步的,作为一种可选的实施方式,封装模块,还用于在应用程序未正常联网时,构建空的网络层数据包。写入模块还用于将空的网络层数据包通过虚拟网络适配器写入物理网络适配器,以使得物理网络适配器将空的网络层数据包分发到发出网络请求的应用程序。
在本申请实施例中,作为一种可选的实施方式,通信模块504,具体用于在套接字通信方式采用传输控制协议时,先通过套接字通信方式与业务服务器建立通信连接,再将第一传输层数据包发送给业务服务器;以及,在套接字通信方式采用用户数据报协议时,直接将第一传输层数据包通过套接字通信方式发送给业务服务器。
在本申请实施例中,作为一种可选的实施方式,统计模块505,具体用于从第二传输层数据包中提取出业务服务器的IP地址信息和端口信息;结合IP地址信息和端口信息,统计不同网际协议版本的IP地址占比以及不同IP地址的流量占比,获得统计结果。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
请参阅图6,图6是本申请实施例公开的另一种网络流量检测装置的结构示意图,包括:
一个或多个存储器601;
一个或多个处理器602,用于执行存储在一个或多个存储器601中的一个或多个计算机程序,以执行上述各实施例中描述的方法。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机指令,该计算机指令运行时使计算机执行上述方法实施例所描述的数据比对方法。
本申请实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read-only memory,ROM)、随机存储器(random access memory,RAM)、可编程只读存储器(programmable read-only memory,PROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、一次可编程只读存储器(one-time programmable read only memory,OTPROM)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (9)
1.一种网络流量检测方法,其特征在于,所述方法包括:
通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包;
从所述第一网络层数据包中解析出第一传输层数据包;
将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器;
获取所述业务服务器返回的第二传输层数据包;
结合所述第二传输层数据包进行网络流量统计,获得统计结果;
所述获取所述业务服务器返回的第二传输层数据包之后,所述方法还包括:
如果发出所述网络请求的应用程序未正常联网,则构建空的网络层数据包,再将所述空的网络层数据包通过所述虚拟网络适配器写入物理网络适配器,以使得所述物理网络适配器将所述空的网络层数据包分发到所述应用程序,其中,所述空的网络层数据包通过封装空的传输层数据包获得,所述空的传输层数据包包括:报头为空的传输层数据;或者,从所述第二传输层数据包中解析的源地址、源端口、目标地址、目标端口信息以及空的负载数据。
2.根据权利要求1所述的方法,其特征在于,所述虚拟网络适配器与物理网络适配器相连接;所述通过虚拟网络适配器获取对业务服务器的网络请求所对应的第一网络层数据包,包括:
通过虚拟网络适配器,从所述物理网络适配器中读取对业务服务器的网络请求所对应的第一网络层数据包。
3.根据权利要求2所述的方法,其特征在于,所述获取所述业务服务器返回的第二传输层数据包之后,所述方法还包括:
对所述第二传输层数据包进行封装,获得第二网络层数据包;
将所述第二网络层数据包通过所述虚拟网络适配器写入所述物理网络适配器,以使得所述物理网络适配器将所述第二网络层数据包分发到发出所述网络请求的应用程序。
4.根据权利要求3所述的方法,其特征在于,所述获取所述业务服务器返回的第二传输层数据包之后,以及所述对所述第二传输层数据包进行封装之前,所述方法还包括:
检测所述应用程序是否正常联网;
所述对所述第二传输层数据包进行封装,获得第二网络层数据包,包括:
如果所述应用程序正常联网,对所述第二传输层数据包进行封装,获得第二网络层数据包。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器,包括:
如果套接字通信方式采用传输控制协议,则先通过所述套接字通信方式与所述业务服务器建立通信连接,再将所述第一传输层数据包发送给所述业务服务器;
如果套接字通信方式采用用户数据报协议,则直接将所述第一传输层数据包通过所述套接字通信方式发送给所述业务服务器。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述结合所述第二传输层数据包进行网络流量统计,获得统计结果,包括:
从所述第二传输层数据包中提取出所述业务服务器的IP地址信息和端口信息;
结合所述IP地址信息和所述端口信息,统计不同网际协议版本的IP地址占比以及不同IP地址的流量占比,获得统计结果。
7.一种网络流量检测装置,其特征在于,所述装置包括:
虚拟网络适配器,用于获取对业务服务器的网络请求所对应的第一网络层数据包;
读取模块,用于从所述虚拟网络适配器中读取所述第一网络层数据包;
解析模块,用于从所述第一网络层数据包中解析出第一传输层数据包;
通信模块,用于将所述第一传输层数据包通过套接字通信方式发送给所述业务服务器;以及获取所述业务服务器返回的第二传输层数据包;
统计模块,用于结合所述第二传输层数据包进行网络流量统计,获得统计结果;
封装模块,用于在发出所述网络请求的应用程序未正常联网时,构建空的网络层数据包,再将所述空的网络层数据包通过所述虚拟网络适配器写入物理网络适配器,以使得所述物理网络适配器将所述空的网络层数据包分发到所述应用程序,其中,所述空的网络层数据包通过封装空的传输层数据包获得,所述空的传输层数据包包括:报头为空的传输层数据;或者,从所述第二传输层数据包中解析的源地址、源端口、目标地址、目标端口信息以及空的负载数据。
8.一种网络流量检测装置,其特征在于,所述装置包括:
一个或多个存储器;
一个或多个处理器,用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,还用于执行如权利要求1至6任意一项所述的方法。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110064466.8A CN112910725B (zh) | 2021-01-18 | 2021-01-18 | 一种网络流量检测方法及装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110064466.8A CN112910725B (zh) | 2021-01-18 | 2021-01-18 | 一种网络流量检测方法及装置、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910725A CN112910725A (zh) | 2021-06-04 |
CN112910725B true CN112910725B (zh) | 2022-12-06 |
Family
ID=76115642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110064466.8A Active CN112910725B (zh) | 2021-01-18 | 2021-01-18 | 一种网络流量检测方法及装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910725B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113747470B (zh) * | 2021-08-09 | 2024-05-24 | 咪咕音乐有限公司 | 接口流量的分析方法、路由设备及存储介质 |
CN114598384B (zh) * | 2022-05-10 | 2022-08-02 | 天津航天中为数据系统科技有限公司 | 一种网络化加密传输的数据链业务处理系统及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753732A (zh) * | 2013-12-27 | 2015-07-01 | 郭祖龙 | 一种基于分布式的网络流量分析系统及方法 |
CN106713320B (zh) * | 2016-12-23 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 终端数据传输的方法和装置 |
CN108696452B (zh) * | 2018-05-16 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 一种容器级网络流量采集、网络质量标识方法、装置、系统 |
US11570244B2 (en) * | 2018-12-11 | 2023-01-31 | Amazon Technologies, Inc. | Mirroring network traffic of virtual networks at a service provider network |
CN110048908B (zh) * | 2019-04-15 | 2021-04-27 | 网易(杭州)网络有限公司 | 网络测试平台、网络测试方法以及装置 |
US11044184B2 (en) * | 2019-05-28 | 2021-06-22 | Servicenow, Inc. | Data packet loss detection |
CN110912943B (zh) * | 2019-12-30 | 2021-10-01 | 北京明朝万达科技股份有限公司 | 一种跨网络流量分析的系统 |
-
2021
- 2021-01-18 CN CN202110064466.8A patent/CN112910725B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112910725A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rosen | Linux kernel networking: Implementation and theory | |
CN112910725B (zh) | 一种网络流量检测方法及装置、计算机可读存储介质 | |
US9015822B2 (en) | Automatic invocation of DTN bundle protocol | |
CN111796858A (zh) | Kubernetes集群内部应用程序访问检测的方法、系统及相关设备 | |
CN107026764A (zh) | 一种远程调试方法、设备、服务器及系统 | |
CN101291343B (zh) | 一种基于透明代理设备的远程控制方法及其系统 | |
CN106330483B (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN110677432A (zh) | 一种网络协议内部代理转发方法、装置、介质及终端设备 | |
CN112838966A (zh) | 一种udp链路监控方法、系统及电子设备 | |
US11005813B2 (en) | Systems and methods for modification of p0f signatures in network packets | |
CN110120854B (zh) | 传输数据的方法和装置 | |
CN105245407A (zh) | 基于套接字的网络嗅探器及其方法 | |
CN113347258A (zh) | 云流量下的数据采集监控分析的方法及系统 | |
CN103001966B (zh) | 一种私网ip的处理、识别方法及装置 | |
CN115801629B (zh) | 双向转发侦测方法、装置、电子设备及可读存储介质 | |
US20230283694A1 (en) | Data transmission method and apparatus, device, and computer-readable storage medium | |
WO2006060908A1 (en) | Method for running an x.25-based application on a second protocol-based network | |
Xiaoguang et al. | Packet capture and protocol analysis based on Winpcap | |
CN105808425A (zh) | 一种实现移动端应用测试的方法、装置和系统 | |
CN115085953A (zh) | 一种内网访问方法、装置、设备及计算机可读存储介质 | |
CN106656813A (zh) | 数据传输方法 | |
CN108111376B (zh) | 基于桥接模式的网关无源ip访问互联网的方法 | |
CN102480493B (zh) | 网络装置及其识别点对点连接的方法 | |
CN105591723B (zh) | 一种vnf堆叠方法及装置 | |
EP4395279A1 (en) | Communication method and communication system |
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 |