一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、装置、网络设备及介质与流程

2022-04-16 13:26:46 来源:中国专利 TAG:
1.本公开涉及计算机通信
技术领域
:,尤其涉及一种数据处理方法、装置、网络设备及介质。
背景技术
::2.随着互联网技术的不断发展,人们对网络的使用越来越频繁。与此同时,网络环境中可能存在着一些不符合网络环境规范的内容,这些内容很容易对用户的身心健康产生不良影响。此外,家长可能需要对孩子使用各个应用的时长进行监督。因此,亟需一种数据处理方法,来对网络内容进行识别。3.相关技术中,主要是通过在linux内核网络协议栈中,劫持要返回给终端的数据包,进而对劫持到的数据包所包括的数据进行识别。4.在上述实现过程中,需要等待已劫持到的数据包识别完成后,根据识别结果,来对数据包进行放行或阻断,从而导致数据传输效率较低。技术实现要素:5.有鉴于此,本公开提供一种数据处理方法、装置、网络设备及介质,可以有效提高数据传输效率。6.根据本公开实施例的第一方面,提供了一种数据处理方法,该方法包括:7.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;8.传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。9.在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:10.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。11.在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:12.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。13.在本公开的一些实施例中,响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,包括:14.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,基于第一数据包生成内核连接表;15.基于内核连接表,获取第一数据包的地址信息、目标连接的连接信息以及第一数据包对应的深度包检测dpi标识,目标连接为用于传输第一数据包的连接;16.在地址信息为目标地址信息,且基于连接信息确定目标连接为新建立的连接,且dpi标识指示第一数据包待进行数据检测的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。17.在本公开的一些实施例中,地址信息包括网际协议ip地址和/或媒体存取控制mac地址,ip地址包括源ip地址和/或目的ip地址,mac地址包括源mac地址和/或目的mac地址。18.在本公开的一些实施例中,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包之后,该方法还包括:19.基于内核连接表和第二数据包,生成用户态连接表和连接标识;20.将连接标识分别添加至内核连接表和用户态连接表中;21.基于包括连接标识的内核连接表和包括连接标识的用户态连接表,对位于用户空间的第二数据包进行数据识别。22.在本公开的一些实施例中,传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别之后,该方法还包括:23.在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包。24.在本公开的一些实施例中,在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包,包括下述至少一项:25.在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输第一数据包;26.在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停止传输第一数据包。27.在本公开的一些实施例中,传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别之后,该方法还包括下述任一项:28.基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包的连接;29.基于第二数据包识别完成的时间以及第一数据包传输完成的时间,确定第二数据包对应的目标应用的应用使用时长。30.根据本公开实施例的第二方面,提供了一种数据处理装置,该装置包括:31.复制模块,用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;32.数据传输模块,用于传输位于内核空间的第一数据包;33.数据识别模块,用于对位于用户空间的第二数据包进行数据识别。34.在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,用于:35.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。36.在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,用于:37.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。38.在本公开的一些实施例中,该复制模块,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,包括生成单元、获取单元和复制单元;39.生成单元,用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,基于第一数据包生成内核连接表;40.获取单元,用于基于内核连接表,获取第一数据包的地址信息、目标连接的连接信息以及第一数据包对应的深度包检测dpi标识,目标连接为用于传输第一数据包的连接;41.复制单元,用于在地址信息为目标地址信息,且基于连接信息确定目标连接为新建立的连接,且dpi标识指示第一数据包待进行数据检测的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。42.在本公开的一些实施例中,地址信息包括网际协议ip地址和/或媒体存取控制mac地址,ip地址包括源ip地址和/或目的ip地址,mac地址包括源mac地址和/或目的mac地址。43.在本公开的一些实施例中,该装置还包括:44.生成模块,用于基于内核连接表和第二数据包,生成用户态连接表和连接标识;45.添加模块,用于将连接标识分别添加至内核连接表和用户态连接表中;46.该数据识别模块,还用于基于包括连接标识的内核连接表和包括连接标识的用户态连接表,对位于用户空间的第二数据包进行数据识别。47.在本公开的一些实施例中,该数据传输模块,还用于在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包。48.在本公开的一些实施例中,该数据传输模块,在用于在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包时,用于下述至少一项:49.在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输第一数据包;50.在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停止传输第一数据包。51.在本公开的一些实施例中,该装置还包括:52.确定模块,用于基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包的连接;53.该确定模块,还用于基于第二数据包识别完成的时间以及第一数据包传输完成的时间,确定第二数据包对应的目标应用的应用使用时长。54.根据本公开实施例的第三方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面及第一方面的任一实施例所提供的数据处理方法的步骤。55.根据本公开实施例的第四方面,提供了一种网络设备,该网络设备包括:56.处理器;57.用于存储处理器可执行指令的存储器;58.其中,该处理器被配置为:59.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;60.传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。61.根据本公开实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,程序被处理器执行时实现上述第一方面及第一方面的任一实施例所提供的数据处理方法的步骤。62.本公开实施例提供的技术方案可以包括以下有益效果:63.通过在网络设备的操作系统的内核空间中获取到待传输的第一数据包之后,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,以便在传输位于内核空间的第一数据包的同时,可以对位于用户空间的第二数据包进行数据识别,从而使得数据识别过程不会影响数据包的正常传输,进而可以在保证实现网络内容识别的基础上,提高数据传输效率。64.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明65.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。66.图1是本公开根据一示例性实施例示出的一种数据处理方法的实施环境示意图;67.图2是本公开根据一示例性实施例示出的一种数据处理方法的流程图;68.图3是本公开根据一示例性实施例示出的一种pf_ring技术的实现原理图;69.图4是本公开根据一示例性实施例示出的一种内核连接表的结构示意图;70.图5是本公开根据一示例性实施例示出的一种数据包处理过程的流程示意图;71.图6是本公开根据一示例性实施例示出的一种用户态连接表的结构示意图;72.图7是本公开根据一示例性实施例示出的一种pf_ring报文的结构示意图;73.图8是本公开根据一示例性实施例示出的一种实现内核连接表和用户态连接表的连接的原理示意图;74.图9是本公开根据一示例性实施例示出的一种用户策略的设置过程的示意图;75.图10是本公开根据一示例性实施例示出的一种数据处理方法的原理示意图;76.图11是本公开根据一示例性实施例示出的一种数据处理装置的框图;77.图12是本公开根据一示例性实施例示出的一种网络设备的结构示意图。具体实施方式78.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。79.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”ꢀ也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。80.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。81.本公开提供了一种数据处理方法,用于对待传输的数据包进行数据识别,从而保证待传输的数据包所包括的数据中不存在不符合网络环境规范的内容,或者,保证待传输的数据包满足家长对孩子使用网络的时长的限制。该数据处理方法可以由网络设备执行,参见图1,图1是本公开根据一示例性实施例示出的一种数据处理方法的实施环境示意图,该实施环境包括终端101、网络设备102和服务器103。82.终端101可以为智能手机、智能手表、台式计算机、平板电脑、笔记本电脑等;网络设备102可以为路由器,可选地,网络设备102还可以为其他类型的网关设备;服务器103可以为一台服务器、多台服务器、服务器集群、云计算平台等,本公开对终端101、网络设备102和服务器103的设备数量和设备类型均不加以限定。83.本公开所提供的数据处理方法,可以应用在终端101和服务器103的上行数据传输过程中,还可以应用在终端101和服务器103的下行数据传输过程中,下面分别对这两种情况进行说明。84.在终端101和服务器103的上行数据传输过程中,终端101可以生成待传输的数据包,进而将待传输的数据包发送给网络设备102,以便通过网络设备102,来将待传输的数据包发送给服务器103,实现终端101和服务器103的上行数据传输。85.在终端101和服务器103的下行数据传输过程中,服务器103在获取到待传输的数据包后,将待传输的数据包发送给网络设备102,以便通过网络设备102,将待传输的数据包发送给终端101,实现终端101和服务器103的下行数据传输。86.在上述两种传输过程中,网络设备102均可以在传输待传输的数据包时,通过本公开所提供的数据处理方法,来对待传输的数据包进行数据识别。也即是,该数据处理方法可以由如图1所示的实施环境中的网络设备102执行。87.其中,待传输的数据包可以为多种类型的数据对应的数据包,如网页数据对应的数据包、文本数据对应的数据包、图像数据对应的数据包、视频数据对应的数据包、音频数据对应的数据包等,可选地,待传输的数据包还可以为其他类型的数据对应的数据包,本公开对数据包的类型不加以限定。88.通过以路由器作为网络设备,从而通过路由器来执行本公开所提供的数据处理方法,来对待传输的数据包进行数据识别,可以做到一机部署,整个家庭受用。89.需要说明的是,上述仅为对本公开的实施环境的示例性说明,并不构成对本公开的实施环境的限定,在更多可能的实现方式中,本公开所提供的数据处理方法,还可以应用到其他类型的实施环境中。90.在介绍了本公开的实施环境后,下面结合本公开对应的多个实施例,对本公开所提供的数据处理方法进行详细说明。91.图2是本公开根据一示例性实施例示出的一种数据处理方法的流程图,参见图2,应用于网络设备,该数据处理方法包括:92.步骤201、响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将述第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。93.在网络设备的操作系统中,每个进程都运行在属于自己的虚拟内存中,这块空间被称为虚拟地址空间(virtualaddressspace)。94.进一步地,操作系统可以将虚拟地址空间分为内核空间(kernelspace)和用户空间(userspace),在不同类型的操作系统中,用户空间和内核空间的大小比例不同。以linux操作系统为例,在linux操作系统的虚拟地址空间中,用户空间和内核空间的大小比例为3:1;以windows操作系统为例,在windows操作系统的虚拟地址空间中,用户空间和内核空间的大小比例为2:2。95.在程序运行在内核空间的情况下,进程处于内核态,在程序运行在用户空间的情况下,进程处于用户态。96.在对数据包进行传输时,进程处于内核态,从而在内核空间对数据包进行传输;而在对数据包进行识别时,进程处于用户态,从而在用户空间对数据包进行识别。97.步骤202、传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。98.在一种可能的实现方式中,在获取到待传输的第一数据包时,在通过内核空间对第一数据包进行传输的同时,在用户空间对基于第一数据包复制得到的第二数据包进行识别。99.其中,在对第一数据包进行传输时,可以通过linux协议栈,实现第一数据包的传输。100.本公开所提供的方案,通过在网络设备的操作系统的内核空间中获取到待传输的第一数据包之后,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包,以便在传输位于内核空间的第一数据包的同时,可以对位于用户空间的第二数据包进行数据识别,从而使得数据识别过程不会影响数据包的正常传输,进而使得进行数据识别时的数据传输时延,与不进行数据识别时的数据传输时延相同,从而可以保证进行数据识别时数据传输的低时延,也即是,可以在保证实现网络内容识别的基础上,提高数据传输效率。101.在介绍了本公开的基本实现过程之后,下面介绍本公开几个非限制性的可选实施例。102.在一些实施例中,网络设备可以通过设备驱动,来获取待传输的第一数据包。103.其中,设备驱动可以作为网络设备的操作系统与终端和服务器之间的接口,从终端或服务器接收待传输的第一数据包,从而通过网络设备的操作系统,来对第一数据包进行处理。104.需要说明的是,网络设备在通过设备驱动接收待传输的第一数据包时,网络设备中的进程处于内核态,从而使得所获取到的第一数据包是位于内核空间中的。105.在一些实施例中,在获取到位于操作系统的内核空间的第一数据包后,可以将第一数据包从内核空间复制到用户空间。而在将第一数据包从内核空间复制到用户空间时,可以先将第一数据包缓存至位于内核空间的目标缓存区域中,再基于目标缓存区域中所存储的第一数据包,实现第一数据包的复制,或者说,实现第一数据包的镜像。106.也即是,对于上述步骤201,在响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,可以通过如下方式实现:107.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。108.可选地,响应于接收到待传输的第一数据包,可以先采用套接字缓存(socketbuffer,skb)技术,来对第一数据包进行缓存,以便基于所缓存的第一数据包继续进行处理。也即是,将基于skb技术所缓存的第一数据包存储至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。109.在一种可能的实现方式中,可以通过高效数据包捕获技术(pf_ring),来对第一数据包进行缓存和复制。110.其中,pf_ring可以作为一种实现内核态和用户态之间的数据镜像的技术,采用环形缓存区(circularbuffer,还可以称为环形缓冲区、圆形缓冲区等)作为目标缓存区域,从而在获取到待传输的第一数据包之后,将第一数据包缓存到环形缓存区中,并将环形缓存区所缓存的数据包,复制到用户空间,得到位于用户空间的第二数据包。需要说明的是,第一数据包和第二数据包所包括的数据相同。111.通过采用pf_ring技术,来进行第一数据包的缓存和复制,可以大大减少内存拷贝和内核态用户态的切换次数,而且,pf_ring技术占用的系统资源较少,从而可以有效降低系统负载。112.需要说明的是,在将环形缓存区所缓存的数据包,复制到用户空间时,可以采用内存映射技术(mmap),实现数据包的复制。113.在一种可能的实现方式中,从环形缓存区获取第一数据包,从而通过mmap技术,将第一数据包从内核空间映射到用户空间,得到位于用户空间的第二数据包,实现数据包的复制。需要说明的是,在将第一数据包从内核空间映射到用户空间后,内核空间仍存在原始的第一数据包,以便后续可以直接传输位于内核空间的第一数据包。114.需要说明的是,环形缓存区中可能存在多个待传输的第一数据包,在对这多个第一数据包进行数据包的复制时,可以采用轮询的方式,逐个对这多个第一数据包进行处理,各个第一数据包的处理过程与上述过程同理,此处不再赘述。115.参见图3,图3是本公开根据一示例性实施例示出的一种pf_ring技术的实现原理图,网络设备在通过设备驱动获取到待传输的第一数据包后,采用napi轮询机制,将获取到的第一数据包存储至环形缓存区中,并通过pf_ring轮询机制,从环形缓存区中获取待传输的第一数据包,从而通过mmap技术,将获取到的第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。其中,napi是linux操作系统下的新的网卡数据处理应用程序接口(applicationprogramminginterface,api)。116.通过将位于内核空间的数据包复制到用户空间,从而实现数据包的镜像,以便可以对镜像得到的第二数据包进行数据识别,而不会影响原始的第一数据包的传输。117.可选地,可以在协议栈入口,将第一数据包从内核空间复制到用户空间。其中,协议栈用于对第一数据包进行传输,相应地,在协议栈入口对第一数据包进行复制,也即是在对第一数据包进行传输之间,对第一数据包进行复制。118.在一些实施例中,在对第一数据包进行复制之前,可以对第一数据包进行检测,从而在第一数据包满足第二目标条件的情况下,再进行第一数据包的复制。119.也即是,对于上述步骤201,在响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间镜像到用户空间,得到位于用户空间的第二数据包时,可以有如下实现方式:120.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。121.其中,第二目标条件可以为第一数据包的地址信息为目标地址信息,且用于传输第一数据包的连接为新建立的连接,且第一数据包对应的深度包检测(deeppacketinspection,dpi)标识指示所述第一数据包待进行数据包检测。122.需要说明的是,网络设备可以维护有一个设备过滤表,该设备过滤表中记录有需要进行复制及识别的数据包对应的地址信息。可选地,该设备过滤表中所记录的地址信息可以为源ip地址、目的ip地址、源mac地址、目的mac地址中的至少一项。123.通过维护一个设备过滤表,以便网络设备在获取到第一数据包的地址信息后,可以基于设备过滤表,确定是否需要对第一数据包进行复制,从而根据所确定的结果,对第一数据包进行相应的处理。124.基于上述实施例,在响应于获取到待传输的第一数据包,响应于在内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,可以包括如下步骤:125.步骤2011、响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,基于第一数据包生成内核连接表。126.其中,内核连接表中可以包括连接跟踪模块(nf_conntrack)字段、镜像标识字段和阻断标识字段,下面分别对内核连接表所包括的各个字段进行介绍。127.nf_conntrack字段中可以包括连接信息和深度包检测(deeppacketinspection,dpi)标识,基于连接信息即可确定用于传输第一数据包的连接是否是新建立的连接,基于dpi标识即可确定第一数据包是否需要进行数据检测。128.需要说明的是,对于网络设备与其他设备之间所建立的连接,在一次数据传输过程中,待传输的数据可能被分为多个数据包,因此,在一次数据传输过程中,一个连接可能用于传输多个数据包,而在对数据包进行识别时,可以无需对一个连接所传输的所有数据包进行识别,而仅识别目标数量的数据包即可,基于此,可以通过对数据包的dpi标识进行设置,以便可以基于dpi标识,确定哪些是需要进行数据识别的数据包。可选地,目标数量可以为任意正整数值,例如,目标数量可以为8-16中的任意正整数值。129.通过识别目标数量的数据包,可以有效减少网络设备的处理压力,从而降低网络设备的系统负载,提高网络设备的处理速度。130.镜像标识字段可以用于承载镜像标识,该镜像标识可以用于指示第一数据包是否需要进行镜像处理,镜像标识可以包括需要进行镜像处理和无需进行镜像处理两种。可选地,该镜像标识采用二进制形式表示,例如,在第一数据包不需要进行镜像处理时,将该镜像标识设置为0,在第一数据包需要进行镜像处理时,将该镜像标识设置为1。131.阻断标识字段可以用于承载阻断标识,该阻断标识可以用于指示目标连接是否被拒绝使用,阻断标识可以包括连接被允许使用和连接被拒绝使用两种,可以用“pass”来表示连接被允许使用,用“reject”来表示连接被拒绝使用。可选地,该阻断标识还可以采用二进制形式表示,例如,在目标连接被允许使用的情况下,将阻断标识设置为0,在目标连接被拒绝使用的情况下,将阻断标识设置为1。132.该内核连接表的结构可以参见图4,图4是本公开根据一示例性实施例示出的一种内核连接表的结构示意图,一个第一数据包对应有一个五元组哈希值(五元组hashid,nf_hashid),而一个五元组hashid即对应有一个内核连接表,每个内核连接表中包括nf_conntrack、镜像标识和阻断标识。133.其中,五元组为源网际协议(internetprotocol,ip)地址、源端口、目的ip地址、目的端口和传输层协议这五个量组成的集合,五元组hashid也即是源ip地址、源端口、目的ip地址、目的端口和传输层协议这五个量的哈希值所组成的集合。根据五元组hashid,可以快速定位到内核连接表对应的虚拟桶(hashslot),从而根据定位到的hashslot,确定对应的内核连接表。相应地,根据内核连接表,也可以确定出对应的五元组hashid。134.需要说明的是,端口可以预先与媒体存取控制(mediaaccesscontrol,mac)地址绑定,从而使得基于源端口即可确定出源mac地址,基于目的端口即可确定出目的mac地址。135.步骤2012、基于内核连接表,获取第一数据包的地址信息、目标连接的连接信息以及第一数据包对应的dpi标识,目标连接为用于传输第一数据包的连接。136.在一种可能的实现方式中,可以通过内核连接表所包括的nf_conntrack,获取连接信息和dpi标识,并从内核连接表对应的五元组hashid中,获取地址信息。137.可选地,地址信息包括ip地址和/或mac地址,ip地址包括源ip地址和/或目的ip地址,mac地址包括源mac地址和/或目的mac地址。138.步骤2013、在地址信息为目标地址信息,且基于连接信息确定目标连接为新建立的连接,且dpi标识指示第一数据包待进行数据包检测的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。139.其中,将第一数据包从内核空间复制到用户空间的过程可以参见上述实施例,此处不再赘述。140.上述确定第一数据包是否满足第二目标条件,从而在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间的过程可以参见图5,图5是本公开根据一示例性实施例示出的一种数据包处理过程的流程示意图,以源ip地址为8.8.8.8、源端口为88、目的ip地址为10.1.1.1、目的端口为10000的数据包为例,在通过skb技术缓存数据包后,通过查询内核连接表,可以确定经过网络地址转换(networkaddresstranslation,nat)处理后,该数据包在进行下行传输时的源ip地址为8.8.8.8、源端口为88、目的ip地址为192.168.31.77、目的端口为10000,并从内核连接表中获取nf_conntrackid、hashid、镜像标识和阻断标识,并通过查询包括目的ip地址的设备过滤表,以确定该数据包是否需要进行复制,若镜像标识指示该数据包需要进行镜像处理,且阻断标识指示用于传输该数据包的连接被允许使用,且该数据包的目标ip地址存在于设备过滤表中,则通过pf_ring技术,对数据包进行镜像处理,也即是,将数据包从内核空间复制到用户空间。141.在一些实施例中,在将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包之后,该方法还包括以下步骤:142.步骤一、基于内核连接表和第二数据包,生成用户态连接表和连接标识。143.其中,连接(identity,id)用于代表一个连接,该连接id可以由内核的nf_conntrack生成并记录,并将所生成的连接id传递到用户态,可选地,该连接id可以为一个随机数,用于唯一性标识一个连接。144.用户态连接表中可以包括五元组hashid字段、五元组字段、应用识别信息字段、时间信息字段和计数信息字段,下面分别对用户态连接表所包括的各个字段进行介绍。145.五元组hashid字段可以用于承载五元组hashid,五元组字段可以用于承载五元组,关于五元组和五元组hashid的介绍可以参见内核连接表中关于五元组和五元组hashid的介绍,此处不再赘述。需要强调的是,用户态连接表中所包括的五元组为上行五元组,该五元组仅用于调试和日志记录,而不会用于代表一个连接。146.应用识别信息字段可以用于承载应用识别信息,该应用识别信息可以用于指示第一数据包对应的应用程序(application,app),以便基于该应用识别信息可以获知用户正在访问的是哪个应用程序。147.时间信息字段可以用于承载时间信息,该时间信息可以用于确定用户态连接表的老化情况,以及用于对第一数据包的传输和处理过程进行调试。148.计数信息字段可以用于承载计数信息,该计数信息可以用于指示已复制的报文数量,网络设备中可以预先设置有报文数量阈值,该报文数量阈值用于指示可处理的最大报文数量,在计数信息超过该报文数量阈值的情况下,通知内核不再进行数据包的复制。其中,该报文数量阈值可以通过sniper模拟器预先设置。149.步骤二、将连接标识分别添加至内核连接表和用户态连接表中。150.在一种可能的实现方式中,在内核连接表的阻断标识字段后新增连接id字段,在用户态连接表的五元组hashid字段后新增连接id字段,并将所生成的连接id分别添加至内核连接表中的连接id字段和用户态连接表中的连接id字段。151.参见图6,图6是本公开根据一示例性实施例示出的一种用户态连接表的结构示意图,如图6所示,增加连接id字段后的用户态连接表中包括五元组hashid字段、连接id字段、五元组字段、应用识别信息字段、时间信息字段和计数信息字段。152.通过将连接id分别添加至内核连接表和用户态连接表中,使得通过连接标id可以实现内核连接表和用户态连接表的连接,以便内核连接表和用户态连接表之间可以通过连接id相互进行查找。153.可选地,在通过连接id实现内核连接表和用户态连接表的连接后,可以对pf_ring报文进行扩展,以实现第一数据包和第二数据包的关联,方便后续对第二数据包的查找。154.在一种可能的实现方式中,可以在pf_ring报文的报文头(pf_ringhead)字段后增加五元组hashid字段和连接id字段,从而将内核连接表中的五元组hashid添加至五元组hashid字段,将通过内核所生成的连接id添加至连接id字段,实现pf_ring报文的扩展。155.参见图7,图7是本公开根据一示例性实施例示出的一种pf_ring报文的结构示意图,如图7所示,扩展后的pf_ring报文包括pf_ringhead字段、五元组hashid字段、连接id字段和skb字段,其中,skb字段包括待传输的第一数据包对应的报文。156.上述通过连接id实现内核连接表和用户态连接表的连接的过程可以参见图8,图8是本公开根据一示例性实施例示出的一种实现内核连接表和用户态连接表的连接的原理示意图,在通过内核生成连接id后,内核连接表和用户态连接表中分别新增连接id字段,从而将所生成的连接id分别添加至内核连接表的连接id字段以及用户态连接表的连接id字段中,从而基于连接id,实现内核连接表和用户态连接表的关联,以便后续可以在对应的内核连接表和用户态连接表中进行相互查找。157.步骤三、基于包括连接标识的内核连接表和包括连接标识的用户态连接表,对位于用户空间的第二数据包进行数据识别。158.在一种可能的实现方式中,可以基于连接标识,确定相对应的第一数据包和第二数据包,从而在对第二数据包进行数据识别的同时,对第一数据包进行传输。159.在一些实施例中,通过对第二数据包进行识别,即可确定第二数据包是否满足第一目标条件,从而可以根据识别结果,来进行相应的处理。160.在一种可能的实现方式中,在第二数据包满足第一目标条件的情况下,停止传输第一数据包。161.在另一种可能的实现方式中,在第二数据包不满足第一目标条件的情况下,无需对第一数据的传输进行处理,保持第一数据包的正常传输即可。162.其中,第一目标条件可以为待传输的数据包所包括的数据中存在目标类型的数据,第一目标条件还可以为待传输的数据包所包括的数据对应的数据流量超过流量阈值,第一目标条件还可以为上述两种条件的结合,也即是,第一目标条件还可以为待传输的数据包所包括的数据中存在目标类型的数据,且待传输的数据包所包括的数据对应的数据流量超过流量阈值,可选地,第一目标条件还可以包括其他类型条件,本公开对第一目标条件的具体类型不加以限定。163.基于上述两种示例性的第一目标条件,对于上述步骤203,在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包时,可以包括下述至少一种实现方式:164.在一种可能的实现方式中,在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输第一数据包。165.其中,目标类型的数据可以为包含敏感信息的数据、不符合网络环境规范的数据等等,本公开对此不加以限定。166.在另一种可能的实现方式中,在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停止传输第一数据包。167.其中,流量阈值可以为用户在网络设备上预先设置的取值,该流量阈值可以为任意取值,本公开对流量阈值的具体取值不加以限定。168.可选地,在停止传输第一数据包时,可以通过linuxiptables防火墙,实现对第一数据包的数据传输的阻断。此外,还可以采用其他方式,本公开对具体采用哪种方式来停止传输第一数据包不加以限定。169.在一些实施例中,在传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别之后,除可以对满足第一目标条件的第二数据包对应的第一数据包的传输进行阻断外,还可以统计流经目标连接的数据流量,目标连接为用于传输第一数据包的连接,以便可以基于统计得到的数据流量进行日志记录、日志分析和流量统计等。170.可选地,可以结合统计得到的数据流量和预先设置的用户策略,来实现数据传输阻断、日志记录、日志分析和流量统计等过程。171.例如,可以通过用户配置表和策略管理表来对用户策略进行设置。用户配置表可以基于app、全球广域网(worldwideweb,web)前端的用户配置生成,用户配置表可以包括多个ip地址、各个ip地址对应的应用id、允许应用使用的起始时间和截止时间以及对该应用对应的数据流量要采取的处理方式(action),可选地,action可以包括阻断、复制(也即是镜像)等。172.策略管理表可以包括对第二数据包进行数据识别所得到的结果,经过用户配置表查询后生成的策略。策略管理表可以包括nf_conntrackid、nf_conntrack槽位id、应用id、action和时间,nf_conntrackid和nf_conntrack槽位id可以基于用户配置表所包括的ip地址确定,应用id可以基于用户配置表所包括的应用id确定,action可以基于用户配置表所包括的对该应用对应的数据流量要采取的action确定,时间可以基于用户配置表所包括的允许应用使用的起始时间和截止时间确定。173.参见图9,图9是本公开根据一示例性实施例示出的一种用户策略的设置过程的示意图,用户可以通过app、web前端对用户配置进行设置,网络设备可以基于所设置的用户配置,在用户空间生成用户配置表,并基于所生成的用户配置表,在用户空间生成策略管理表,从而基于所生成的用户配置表,对内核空间的设备过滤表进行同步更新,并基于所生成的策略管理表,对内核空间的内核连接表中的五元组、阻断标识、镜像标识等进行设置。174.此外,在基于统计得到的数据流量进行日志记录、日志分析时,由于日志记录主要关注第二数据包识别完成的时间和第一数据包传输完成的时间,而第二数据包识别完成的时间要从用户空间获取,且确定出第二数据包的识别结果后,即无需对后续通过目标连接所接收到的数据包进行复制(也即是镜像)。此外,还可以在第一数据包传输完成的时间,删除目标连接并输出日志,从而实现日志记录,并基于所输出的日志进行日志分析。175.通过日志分析,可以确定出应用的使用时长。在进行日志分析时析过程,可以采用预估分析和精确分析两种分析方式,下面分别对这两种分析方式进行介绍。176.在一种可能的实现方式中,在采用预估分析方式确定应用的使用时长时,可以基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包的连接。177.在上述预估分析方式中,可以在输出日志后,按照日志中应用种类进行预估。以分析应用使用时间为例,对于一个连接,视频类应用对应的使用时间一般为2分钟,游戏类应用对应的使用时间一般为5分钟,web类应用对应的使用时间一般为20秒。178.在另一种可能的实现方式中,在采用精确分析方式确定应用的使用时长时,可以基于第二数据包识别完成的时间以及第一数据包传输完成的时间,确定第二数据包对应的目标应用的应用使用时长。179.在上述精确分析方式中,可以确定第二数据包识别完成的时间以及第一数据包传输完成的时间的时间差,从而将所确定的时间差作为目标应用的应用使用时长。180.可选地,在获取到日志分析结果(如应用使用时长)后,可以分析结果上报云端,以便云端对接收到的分析结果进行整合和进一步分析,从而向用户输出日报、周报、通知等。181.上述各个实施例所涉及的过程可以参见图10,图10是本公开根据一示例性实施例示出的一种数据处理方法的原理示意图,在通过设备驱动获取到待传输的数据包后,通过采样保持电路(s/h),将获取到的数据包压入网络设备的内核空间,实现硬件快转,进而按照内核连接表,来对数据包进行协议栈转发。此外,在数据包需要进行镜像处理时,基于内核连接表和设备过滤表,通过pf_ring技术,实现数据包的镜像,从而基于镜像数据包对应的用户态连接表,来进行数据识别(如应用识别),从而在得到sniper识别结果后,基于用户配置表生成对于数据包的处理策略,并将所生成的策略发送至内核空间,以便基于所生成的策略,来对正在传输的数据包进行如阻断之类的处理。此外,还可以基于用户配置表,对设备过滤表进行同步更新。182.上述图10仅为关于本公开的原理性说明,具体实现过程可以参见上述各个实施例,此处不再赘述。183.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。184.其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。185.与前述数据处理方法实施例相对应,本公开还提供了数据处理装置及相应的网络设备的实施例。186.图11是本公开根据一示例性实施例示出的一种数据处理装置的框图,参见图11,该装置包括:187.复制模块1101,用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;188.数据传输模块1102,用于传输位于内核空间的第一数据包;189.数据识别模块1103,用于对位于用户空间的第二数据包进行数据识别。190.在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,用于:191.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包缓存至内核空间的目标缓存区域中,并将第一数据包从目标缓存区域复制到用户空间,得到位于用户空间的第二数据包。192.在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,用于:193.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。194.在一些实施例中,该复制模块1101,在用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,在第一数据包满足第二目标条件的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包时,包括生成单元、获取单元和复制单元;195.生成单元,用于响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,基于第一数据包生成内核连接表;196.获取单元,用于基于内核连接表,获取第一数据包的地址信息、目标连接的连接信息以及第一数据包对应的深度包检测dpi标识,目标连接为用于传输第一数据包的连接;197.复制单元,用于在地址信息为目标地址信息,且基于连接信息确定目标连接为新建立的连接,且dpi标识指示第一数据包待进行数据检测的情况下,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包。198.在一些实施例中,地址信息包括网际协议ip地址和/或媒体存取控制mac地址,ip地址包括源ip地址和/或目的ip地址,mac地址包括源mac地址和/或目的mac地址。199.在一些实施例中,该装置还包括:200.生成模块,用于基于内核连接表和第二数据包,生成用户态连接表和连接标识;201.添加模块,用于将连接标识分别添加至内核连接表和用户态连接表中;202.该数据识别模块,还用于基于包括连接标识的内核连接表和包括连接标识的用户态连接表,对位于用户空间的第二数据包进行数据识别。203.在一些实施例中,该数据传输模块1102,还用于在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包。204.在一些实施例中,该数据传输模块1102,在用于在第二数据包所包括的数据满足第一目标条件的情况下,停止传输第一数据包时,用于下述至少一项:205.在第二数据包所包括的数据中存在目标类型的数据的情况下,停止传输第一数据包;206.在第二数据包所包括的数据对应的数据流量超过流量阈值的情况下,停止传输第一数据包。207.在一些实施例中,该装置还包括:208.确定模块,用于基于第二数据包对应的目标应用,确定流经目标连接的目标应用的数据流量对应的应用使用时长,目标连接为用于传输第一数据包的连接;209.该确定模块,还用于基于第二数据包识别完成的时间以及第一数据包传输完成的时间,确定第二数据包对应的目标应用的应用使用时长。210.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块或单元来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。211.本公开实施例还提供了一种网络设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,上述处理器被配置为执行以下步骤:212.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;213.传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。214.参见图12,图12是本公开根据一示例性实施例示出的一种网络设备的结构示意图。例如,网络设备1200可以被提供为一路由器。如图12所示,网络设备1200包括处理组件1201,其进一步包括一个或多个处理器,以及由存储器1202所代表的存储器资源,用于存储可由处理组件1201的执行的指令,例如应用程序。存储器1202中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1201被配置为执行指令,以执行上述数据处理方法的方法步骤。215.网络设备1200还可以包括一个电源组件1203被配置为执行网络设备1200的电源管理,一个有线或无线网络接口1204被配置为将网络设备1200连接到网络,和一个输入输出(i/o)接口1205。网络设备1200可以操作基于存储在存储器1202的操作系统,例如android、ios、windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。216.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1202,上述指令可由网络设备1200的处理组件1201执行以完成上述数据处理方法。例如,该非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。217.其中,当存储器1202中的指令由处理组件1201执行时,使得网络设备1200能够执行一种数据处理方法,包括:218.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;219.传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。220.在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,程序被处理组件1201执行时,使得网络设备1200能够执行一种数据处理方法,包括:221.响应于在网络设备的操作系统的内核空间中获取到待传输的第一数据包,将第一数据包从内核空间复制到用户空间,得到位于用户空间的第二数据包;222.传输位于内核空间的第一数据包,并对位于用户空间的第二数据包进行数据识别。223.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。224.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献