CN111431757B - 虚拟网络的流量采集方法及装置 - Google Patents

虚拟网络的流量采集方法及装置 Download PDF

Info

Publication number
CN111431757B
CN111431757B CN202010098775.2A CN202010098775A CN111431757B CN 111431757 B CN111431757 B CN 111431757B CN 202010098775 A CN202010098775 A CN 202010098775A CN 111431757 B CN111431757 B CN 111431757B
Authority
CN
China
Prior art keywords
acquisition module
kernel
address
ring buffer
buffer area
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
Application number
CN202010098775.2A
Other languages
English (en)
Other versions
CN111431757A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010098775.2A priority Critical patent/CN111431757B/zh
Publication of CN111431757A publication Critical patent/CN111431757A/zh
Priority to PCT/CN2020/119067 priority patent/WO2021164262A1/zh
Application granted granted Critical
Publication of CN111431757B publication Critical patent/CN111431757B/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
    • 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/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种虚拟网络的流量采集方法及装置,涉及虚拟机技术领域,为解决现有技术中采集流量开销过大的问题而发明。该方法主要包括:初始化流量采集的软件运行环境;建立通信通道;用户态采集模块申请大页内存,在大页内存上创建环形缓存区;内核采集模块接收大页内存的物理地址,并将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址;内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区;用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量。本发明主要应用于流量采集的过程中。

Description

虚拟网络的流量采集方法及装置
技术领域
本发明涉及一种虚拟机技术领域,特别是涉及一种虚拟网络的流量采集方法及装置。
背景技术
对数据中心网络性能管理和网络优化,需要对流量进行采集分析,把网络流量从不可见变为可见。随着虚拟化和云应用越来越广,更多的网络流量发生在同一主机上的虚拟机之间,甚至虚拟机之间的网络流量已占据到数据中心总流量的80%。
现有技术中,首选用户态采集单元通过***调用AF_PACKET套接字接口,在共享内存中对目标虚拟网卡进行网包监控,然后内核采集单元对收到的网包通过mmap放个把新增的网包映射到共享内存中,最后用户态单元检测到共享内存中存在新增的网包,则采集新增的网包,完成流量采集。
上述现有技术,用户态单元对每个网包调用AF_PACKET接口,***调用开销大,调用频率高,消耗资源多,每个网包的内存mmap到共享内存,开销大且内存零散难于管理。由于虚拟机之间的网络流传流量过多,导致采集流量时开销过大。
发明内容
有鉴于此,本发明提供一种虚拟网络的流量采集方法及装置,主要目的在于解决现有技术中采集流量开销过大的问题。
依据本发明一个方面,提供了一种虚拟网络的流量采集方法,包括:
初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
依据本发明另一个方面,提供了一种虚拟网络的流量采集装置,包括:
初始化单元,用于初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
通道建立单元,用于建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
缓存创建单元,用于所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
地址获取单元,用于所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
数据存储单元,用于所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
流量统计单元,用于所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述虚拟网络的流量采集方法对应的操作。
依据本发明又一个方面,提供了一种计算机设备,包括:
处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述虚拟网络的流量采集方法对应的操作。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供了一种虚拟网络的流量采集方法及装置,首先初始化流量采集的软件运行环境,然后建立用户态采集模块和内核采集模块之间的通信通道,再然后用户态采集模块申请大页内存,在大页内存上创建环形缓存区,并将大页内存的物理地址通过所述通信通道传输至所述内核采集模块,再然后内核采集模块将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址,然后内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区,同时更新环形缓冲区的写指针位置,最后用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量,同时更新环形缓冲区的读指针位置。与现有技术相比,本发明实施例通过用户态采集模块通过环形缓冲区直接读取采集数据包,无复制开销,无***调用开销,消耗资源极低。内核采集模块通过环形缓冲区传递采集数据包到用户态采集模块,与用户态采集模块通过环形缓冲区中的写指针位置和读指针位置的同步,降低***开销。在流量采集过程中,监控对象的最小粒度为虚拟交换机,在不侵入虚拟机保证虚拟网络安全和性能的情况下监控虚拟机和网络性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种虚拟网络的流量采集方法流程图;
图2示出了本发明实施例提供的另一种虚拟网络的流量采集方法流程图;
图3示出了本发明实施例提供的一种虚拟网络的流量采集装置组成框图;
图4示出了本发明实施例提供的另一种虚拟网络的流量采集装置组成框图;
图5本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明是实施例的流量采集环境,可以为同一宿主机上的虚拟机之间,也可以为不用宿主机上的虚拟机之间。本发明实施例是一种运行于宿主机上的软件方法,主要包括用户态采集模块、环形缓冲区和内核采集模块。内核采集模块主要用于采集虚拟交换机接收到的数据包,并将数据包保存至环形缓冲区,用户态采集模块主要用于获取环形缓冲区中的数据包,以统计流经虚拟交换机的流量。本发明实施例提供了一种虚拟网络的流量采集方法,如图1所示,该方法包括:
101、初始化用户态采集模块和内核采集模块的流量采集的软件运行环境。
初始化软件运行环境,是指加载用户态采集模块和内核采集模块所使用的软件环境、函数库和搭载运行环境。
102、建立通信通道。
通信通道是数据传输的通路,在本发明实施例中通信通道是一种逻辑通道,具体指在物理信道的基础上发送与接收信号的双方通过中间节点所实现的逻辑通路。通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道。建立通信通道,也就是建立用户态采集模块和内核采集模块之间的逻辑通路。
103、用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块。
如果在***中使用大页内存,则内存页的数量会减少,从而需要更少的页表,节约了页表所占用的内存数量,并且所需的地址转换也减少了,TLB缓存失效的次数就减少了,从而提高了内存访问的性能。另外,由于地址转换所需的信息一般保存在CPU的缓存中,大页内存的使用让地址转换信息减少,从而减少了CPU缓存的使用,减轻了CPU缓存的压力,让CPU缓存能更多地用于应用程序的数据缓存,也能够在整体上提升***的性能。尤其是在内存访问密集型的虚拟机的宿主机中使用大页内存可以明显提高宿主机的性能。大页内存有助于Linux***进行虚拟内存管理,可以定义1GB的页面大小,能够为应用程序预留部分内存。预留的大页内存会一直保留,不会被交换出内存,除非修改了内存配置。用户态采集模块申请的大页内存,也就是大页内存属于用户态采集模块。
环形缓冲区是一种用于表示固定尺寸、头尾向量的缓冲区的数据结构,适合缓存数据流,用于存放通信中发送和接收的数据。环形缓冲区是先进先出的循环缓存区,可以向通信程序提供对缓冲区的互斥访问。在大页内存上创建环形缓冲区,环形缓冲区的位置可以跟大页内存与环形缓冲区的相对位置关系确定。如果能够确定大页内存的物理地址,在创建环形缓冲区后,就能确定环形缓冲区的物理地址。通过通信通道将用户态采集模块申请的大页内存的物理地址传输至内核采集模块,相当于内核采集模块能够接收到大页内存的物理地址,同时能够推算出环形缓冲区的物理地址。
104、内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址。
内核采集模块接收大页内存的物理地址,并根据大页内存的物理地址、环形缓冲区的物理地址,以及内核地址空间,将大页内存映射成线性地址,将环形缓冲区映射成缓冲区地址。
105、内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置。
内核采集模块在采集虚拟交换机接收到的数据包时,其采样比例可以为1:1,或者1:n,采样比例根据后续流量采集的作用确定,在本发明实施例中对采样比例不做限定。内核采集模块采集虚拟交换机接收到的数据包并保存至环形缓冲区,每个数据包对应一条采集记录,占用环形缓冲区的一块固定大小的空间。在采集数据包的过程中,可以值采集数据包的包头,也可采集整个数据包。
106、用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
用户态采集模块获取环形缓冲区中的数据包之后,可以统计数据流量,统计数据包个数,还可以对数据流量做详细分析。根据数据流量监控虚拟网络,以提高网络性能、提高网络传输能力、分析网络信道利用率等等。
本发明提供了一种虚拟网络的流量采集方法,首先初始化流量采集的软件运行环境,然后建立用户态采集模块和内核采集模块之间的通信通道,再然后用户态采集模块申请大页内存,在大页内存上创建环形缓存区,并将大页内存的物理地址通过所述通信通道传输至所述内核采集模块,再然后内核采集模块将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址,然后内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区,同时更新环形缓冲区的写指针位置,最后用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量,同时更新环形缓冲区的读指针位置。与现有技术相比,本发明实施例通过用户态采集模块通过环形缓冲区直接读取采集数据包,无复制开销,无***调用开销,消耗资源极低。内核采集模块通过环形缓冲区传递采集数据包到用户态采集模块,与用户态采集模块通过环形缓冲区中的写指针位置和读指针位置的同步,降低***开销。在流量采集过程中,监控对象的最小粒度为虚拟交换机,在不侵入虚拟机保证虚拟网络安全和性能的情况下监控虚拟机和网络性能。
本发明实施例提供了另一种虚拟网络的流量采集方法,如图2所示,该方法包括:
201、初始化用户态采集模块和内核采集模块的流量采集的软件运行环境。
初始化软件运行环境,是指加载用户态采集模块和内核采集模块所使用的软件环境、函数库和搭载运行环境。
202、建立通信通道。
通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道。建立通信通道,也就是建立用户态采集模块和内核采集模块之间的逻辑通路。通信通道可以为Netlink通道,管道通道,或Socket通道。其中Netlink通道是一种特殊的Socket通道,其两种通道的建立方式类似。
如果通信通道是Netlink通道,那么建立通信通道,包括:根据套接字创建函数,创建套接字;设置所述套接字的本地地址和目的地址,所述本地地址为所述用户态采集模块的物理地址,所述目的地址为所述内核采集模块的物理地址;如果第一监听函数监听到所述套接字接收到连接请求,则建立所述通信通道。
Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC),也是网络应用程序与内核通信的最常用的接口。通过socket(),bind(),connect(),listen(),sendmsg(),recvmsg()和close()很容易地应用到netlink通道。netlink包含于头文件linux/netlink.h中。其中socket()用于创建套接字。bind()用于指定本地地址。一个套接字用socket()创建后,它其实还没有与任何特定的本地或目的地址相关联。一旦创建了一个套接字,就必须使用bind()***调用为套接字建立一个本地地址。connect()用于将套接字连接到目的地址。listen()用于设置等待连接状态。对于一个服务器的程序,当申请到套接字,并调用bind()与本地地址绑定后,就应该等待某个客户机的程序来要求连接。listen()就是把一个套接字设置为这种状态的函数。sendmsg()和recvmsg()用于发送和接收数据。在数据流方式中,一个连接建立以后,或者在数据报方式下,调用了connect()进行了套接字与目的地址的绑定后,就可以调用sendmsg()和recvmsg()函数进行数据传输。closesocket()用于关闭套接字。
如果通信通道是管道通道,那么建立通信通道,包括:在所述用户态采集模块,根据创建函数建立所述管道通道;如果第二监听函数监听到所述内核采集模块发送连接请求,则通过所述管道通道连接所述用户态采集模块和所述内核采集模块。
管道通道创建时,为缓冲区分配一个页面大小,管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式。其创建过程使用管道通道所属的特定函数创建,例如创建函数CreateNamedPipe(),监听函数ConnectNamedPipe(),数据传输函数ReadFile()和WriteFile(),关闭函数CloseHandle()。
203、用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块。
在多核及NUMA架构服务器中,可以为每个NUMA在本地内存分配大页内存,为每个CPU核创建单独的环形缓冲区。在虚拟内存管理中,内核维护一个将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要加载相关的映射。如果内存页很小,那么需要加载的页就会很多,导致内核会加载更多的映射表,会降低性能。使用“大内存页”,所需要的页变少了。从而大大减少由内核加载的映射表的数量,提高了内核级别的性能最终有利于应用程序的性能。简而言之,通过启用“大内存页”,***具只需要处理较少的页面映射表,从而减少访问/维护它们的开销。
查找与通信通道的类型对应的数据传输函数,根据数据传输函数将大页内存的物理地址传输至内核采集模块。示例性的,Netlink套接字中的sendmsg(),管道通信中的WriteFile,以及socket中的send()和sendto(),用于发送物理地址。
204、内核采集模块接收所述大页内存的物理地址,获取宿主机和虚拟机之间的内存分配关系。
在用户态采集模块和内核采集模块收发数据时,可以设置应答机制,也确保物理地址的有效传输。例如,在内核采集模块接收到大页内存的物理地址后,需要给用户态采集模块反馈已接收消息,已接收消息可以携带物理地址的数据头信息,用户态模块接收到内核采集模块的反馈消息后可以校正接收信息是否正确。
为了在大页内存中存储数据包,在本步骤中还需要获取宿主机和虚拟机之间的内存分配关系,其分配关系在宿主机建立虚拟机时已经形成,只需要在保存其分配关系的路径中获取即可。
205、内核采集模块根据所述内存分配关系,将所述大页内存的物理地址映射成所述内核地址空间的线性地址。
206、内核采集模块根据所述线性地址、所述大页内存和所述环形缓冲区的地址分配关系,计算所述环形缓冲区的在所述内核采集模块的缓冲区地址。
内核采集模块根据大页内存的物理地址、环形缓冲区的物理地址,以及内核地址空间,将大页内存映射成线性地址,将环形缓冲区映射成缓冲区地址。
207、内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置。
内核采集模块在采集虚拟交换机接收到的数据包时,其采样比例可以为1:1,或者1:n,采样比例根据后续流量采集的作用确定,在本发明实施例中对采样比例不做限定。内核采集模块采集虚拟交换机接收到的数据包并保存至环形缓冲区,每个数据包对应一条采集记录,占用环形缓冲区的一块固定大小的空间。在采集数据包的过程中,可以值采集数据包的包头,也可采集整个数据包。
实际上,虚拟交换器具有多种类型,所以内核采集模块采集虚拟交换机接收到的数据包,具体包括:判断所述虚拟交换机的类型,所述类型包括Linux Bridge和OpenvSwitch;如果所述虚拟交换机的类型为Linux Bridge,则所述内核采集模块注册钩子函数,并根据所述钩子函数切入所述内核采集模块,采集所述虚拟交换机接收到的数据包;如果所述虚拟交换机的类型为OpenvSwitch,则所述内核采集模块利用流表结构ovsdatapath执行管理操作flow中的采集动作action,采集所述虚拟交换机接收到的数据包。
在保存数据包时,具体包括:获取所述写指针位置;从所述缓冲区地址中的所述写指针位置开始,在所述环形缓冲区存储所述数据包,并更新所述写指针位置。写指针是指环形缓冲区中待写入数据的位置。
208、用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
获取数据包具体包括:获取当前的所述写指针位置,并存储当前的所述写指针位置;如果所述当前的所述写指针位置与前一次存储的所述写指针位置不同,则访问并获取所述环形缓冲区中的数据包,所述数据包保存在所述环形缓冲区的所述读指针位置到当前的所述写指针位置之间。
通过检测环形缓冲区中写指针的位置监测环形缓冲区是否存在更新数据包。通过读指针的位置指示尚未统计的环形缓冲区中数据包位置。通过写指针和读指针的方式,在减小***开销的前提下,保证数据包存储过程中不被覆盖,读取过程中不被重复读取,提高统计数量流量的准确性。
本发明提供了一种虚拟网络的流量采集方法,首先初始化流量采集的软件运行环境,然后建立用户态采集模块和内核采集模块之间的通信通道,再然后用户态采集模块申请大页内存,在大页内存上创建环形缓存区,并将大页内存的物理地址通过所述通信通道传输至所述内核采集模块,再然后内核采集模块将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址,然后内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区,同时更新环形缓冲区的写指针位置,最后用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量,同时更新环形缓冲区的读指针位置。与现有技术相比,本发明实施例通过用户态采集模块通过环形缓冲区直接读取采集数据包,无复制开销,无***调用开销,消耗资源极低。内核采集模块通过环形缓冲区传递采集数据包到用户态采集模块,与用户态采集模块通过环形缓冲区中的写指针位置和读指针位置的同步,降低***开销。在流量采集过程中,监控对象的最小粒度为虚拟交换机,在不侵入虚拟机保证虚拟网络安全和性能的情况下监控虚拟机和网络性能。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种虚拟网络的流量采集装置,如图3所示,该装置包括:
初始化单元31,用于初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
通道建立单元32,用于建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
缓存创建单元33,用于所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
地址获取单元34,用于所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
数据存储单元35,用于所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
流量统计单元36,用于所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
本发明提供了一种虚拟网络的流量采集装置,首先初始化流量采集的软件运行环境,然后建立用户态采集模块和内核采集模块之间的通信通道,再然后用户态采集模块申请大页内存,在大页内存上创建环形缓存区,并将大页内存的物理地址通过所述通信通道传输至所述内核采集模块,再然后内核采集模块将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址,然后内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区,同时更新环形缓冲区的写指针位置,最后用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量,同时更新环形缓冲区的读指针位置。与现有技术相比,本发明实施例通过用户态采集模块通过环形缓冲区直接读取采集数据包,无复制开销,无***调用开销,消耗资源极低。内核采集模块通过环形缓冲区传递采集数据包到用户态采集模块,与用户态采集模块通过环形缓冲区中的写指针位置和读指针位置的同步,降低***开销。在流量采集过程中,监控对象的最小粒度为虚拟交换机,在不侵入虚拟机保证虚拟网络安全和性能的情况下监控虚拟机和网络性能。
进一步的,作为对上述图2所示方法的实现,本发明实施例提供了另一种虚拟网络的流量采集装置,如图4所示,该装置包括:
初始化单元41,用于初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
通道建立单元42,用于建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
缓存创建单元43,用于所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
地址获取单元44,用于所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
数据存储单元45,用于所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
流量统计单元46,用于所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
进一步地,所述通信通道是Netlink通道;
所述通道建立单元42,包括:
创建子单元421,用于根据套接字创建函数,创建套接字;
设置子单元422,用于设置所述套接字的本地地址和目的地址,所述本地地址为所述用户态采集模块的物理地址,所述目的地址为所述内核采集模块的物理地址;
连接子单元423,用于如果第一监听函数监听到所述套接字接收到连接请求,则建立所述通信通道。
进一步地,所述通信通道是管道通道;
所述通道建立单元42,包括:
所述创建子单元421,还用于在所述用户态采集模块,根据创建函数建立所述管道通道;
所述连接子单元423,用于如果第二监听函数监听到所述内核采集模块发送连接请求,则通过所述管道通道连接所述用户态采集模块和所述内核采集模块。
进一步地,所述缓存创建单元43,包括:
查找子单元431,用于查找与所述通信通道对应的传输函数;
传输子单元432,用于根据所述传输函数,将所述大页内存的物理地址传输至所述内核采集模块。
进一步地,所述地址获取单元44,包括:
获取子单元441,用于获取宿主机和虚拟机之间的内存分配关系;
映射子单元442,用于根据所述内存分配关系,将所述大页内存的物理地址映射成所述内核地址空间的线性地址;
计算子单元443,用于根据所述线性地址、所述大页内存和所述环形缓冲区的地址分配关系,计算所述环形缓冲区的在所述内核采集模块的缓冲区地址。
进一步地,所述数据存储单元45,包括:
判断子单元451,用于判断所述虚拟交换机的类型,所述类型包括Linux Bridge和OpenvSwitch;
采集子单元452,用于如果所述虚拟交换机的类型为Linux Bridge,则所述内核采集模块注册钩子函数,并根据所述钩子函数切入所述内核采集模块,采集所述虚拟交换机接收到的数据包;
所述采集子单元452,用于如果所述虚拟交换机的类型为OpenvSwitch,则所述内核采集模块利用流表结构ovs datapath执行管理操作flow中的采集动作action,采集所述虚拟交换机接收到的数据包。
进一步地,所述数据存储单元45,包括:
获取子单元453,用于获取所述写指针位置;
存储子单元454,用于从所述缓冲区地址中的所述写指针位置开始,在所述环形缓冲区存储所述数据包,并更新所述写指针位置。
进一步地,所述流量统计单元46,用于:
获取当前的所述写指针位置,并存储当前的所述写指针位置;
如果所述当前的所述写指针位置与前一次存储的所述写指针位置不同,则访问并获取所述环形缓冲区中的数据包,所述数据包保存在所述环形缓冲区的所述读指针位置到当前的所述写指针位置之间。
本发明提供了一种虚拟网络的流量采集装置,首先初始化流量采集的软件运行环境,然后建立用户态采集模块和内核采集模块之间的通信通道,再然后用户态采集模块申请大页内存,在大页内存上创建环形缓存区,并将大页内存的物理地址通过所述通信通道传输至所述内核采集模块,再然后内核采集模块将大页内存的物理地址映射成内核地址空间的线性地址,并获取环形缓冲区在内核采集模块的缓冲区地址,然后内核采集模块采集虚拟交换机接收到的数据包,并根据缓冲区地址将数据包保存至环形缓冲区,同时更新环形缓冲区的写指针位置,最后用户态采集模块如果监测到环形缓冲区更新,则访问环形缓冲区并获取数据包,统计流经虚拟交换机的数据流量,同时更新环形缓冲区的读指针位置。与现有技术相比,本发明实施例通过用户态采集模块通过环形缓冲区直接读取采集数据包,无复制开销,无***调用开销,消耗资源极低。内核采集模块通过环形缓冲区传递采集数据包到用户态采集模块,与用户态采集模块通过环形缓冲区中的写指针位置和读指针位置的同步,降低***开销。在流量采集过程中,监控对象的最小粒度为虚拟交换机,在不侵入虚拟机保证虚拟网络安全和性能的情况下监控虚拟机和网络性能。
根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的虚拟网络的流量采集方法。
进一步地,图5示出了根据本发明一个实施例提供的一种虚拟网络的流量采集装置的结构示意图,本发明具体实施例并不对虚拟网络的流量采集装置的具体实现做限定。
如图5所示,该虚拟网络的流量采集装置可以包括:处理器(processor)502、通信接口(Commun i cat i ons I nterface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述虚拟网络的流量采集方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路AS I C(App l i cat ion Spec i f i c I ntegrated Ci rcu it),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASI C。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-vo l at i l e memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (10)

1.一种虚拟网络的流量采集方法,其特征在于,包括:
初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
2.如权利要求1所述的方法,其特征在于,所述通信通道是Netlink通道;
所述建立通信通道,包括:
根据套接字创建函数,创建套接字;
设置所述套接字的本地地址和目的地址,所述本地地址为所述用户态采集模块的物理地址,所述目的地址为所述内核采集模块的物理地址;
如果第一监听函数监听到所述套接字接收到连接请求,则建立所述通信通道。
3.如权利要求1所述的方法,其特征在于,所述通信通道是管道通道;
所述建立通信通道,包括:
在所述用户态采集模块,根据创建函数建立所述管道通道;
如果第二监听函数监听到所述内核采集模块发送连接请求,则通过所述管道通道连接所述用户态采集模块和所述内核采集模块。
4.如权利要求1所述的方法,其特征在于,所述将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块,包括:
查找与所述通信通道对应的传输函数;
根据所述传输函数,将所述大页内存的物理地址传输至所述内核采集模块。
5.如权利要求1所述的方法,其特征在于,所述将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址,包括:
获取宿主机和虚拟机之间的内存分配关系;
根据所述内存分配关系,将所述大页内存的物理地址映射成所述内核地址空间的线性地址;
根据所述线性地址、所述大页内存和所述环形缓冲区的地址分配关系,计算所述环形缓冲区的在所述内核采集模块的缓冲区地址。
6.如权利要求1所述的方法,其特征在于,所述内核采集模块采集虚拟交换机接收到的数据包,包括:
判断所述虚拟交换机的类型,所述类型包括Linux Bridge和OpenvSwitch;
如果所述虚拟交换机的类型为Linux Bridge,则所述内核采集模块注册钩子函数,并根据所述钩子函数切入所述内核采集模块,采集所述虚拟交换机接收到的数据包;
如果所述虚拟交换机的类型为OpenvSwitch,则所述内核采集模块利用流表结构ovsdatapath执行管理操作flow中的采集动作action,采集所述虚拟交换机接收到的数据包。
7.如权利要求1所述的方法,其特征在于,所述根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置,包括:
获取所述写指针位置;
从所述缓冲区地址中的所述写指针位置开始,在所述环形缓冲区存储所述数据包,并更新所述写指针位置。
8.一种虚拟网络的流量采集装置,其特征在于,包括:
初始化单元,用于初始化用户态采集模块和内核采集模块的流量采集的软件运行环境;
通道建立单元,用于建立通信通道,所述通信通道是所述用户态采集模块和所述内核采集模块之间的数据传输通道;
缓存创建单元,用于所述用户态采集模块申请大页内存,在所述大页内存上创建环形缓存区,并将所述大页内存的物理地址通过所述通信通道传输至所述内核采集模块;
地址获取单元,用于所述内核采集模块接收所述大页内存的物理地址,并将所述大页内存的物理地址映射成内核地址空间的线性地址,并获取所述环形缓冲区在所述内核采集模块的缓冲区地址;
数据存储单元,用于所述内核采集模块采集虚拟交换机接收到的数据包,并根据所述缓冲区地址将所述数据包保存至所述环形缓冲区,同时更新所述环形缓冲区的写指针位置;
流量统计单元,用于所述用户态采集模块如果监测到所述环形缓冲区更新,则访问所述环形缓冲区并获取所述数据包,统计流经所述虚拟交换机的数据流量,同时更新所述环形缓冲区的读指针位置。
9.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的虚拟网络的流量采集方法对应的操作。
10.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的虚拟网络的流量采集方法对应的操作。
CN202010098775.2A 2020-02-18 2020-02-18 虚拟网络的流量采集方法及装置 Active CN111431757B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010098775.2A CN111431757B (zh) 2020-02-18 2020-02-18 虚拟网络的流量采集方法及装置
PCT/CN2020/119067 WO2021164262A1 (zh) 2020-02-18 2020-09-29 虚拟网络的流量采集方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010098775.2A CN111431757B (zh) 2020-02-18 2020-02-18 虚拟网络的流量采集方法及装置

Publications (2)

Publication Number Publication Date
CN111431757A CN111431757A (zh) 2020-07-17
CN111431757B true CN111431757B (zh) 2023-03-24

Family

ID=71551573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010098775.2A Active CN111431757B (zh) 2020-02-18 2020-02-18 虚拟网络的流量采集方法及装置

Country Status (2)

Country Link
CN (1) CN111431757B (zh)
WO (1) WO2021164262A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431757B (zh) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN113132349A (zh) * 2021-03-12 2021-07-16 中国科学院信息工程研究所 一种免代理云平台虚拟流量入侵检测方法及装置
CN113300917B (zh) * 2021-07-27 2021-10-15 苏州浪潮智能科技有限公司 Open Stack租户网络的流量监控方法、装置
CN113794605B (zh) * 2021-09-10 2023-03-14 杭州谐云科技有限公司 一种基于eBPF的内核丢包检测方法、***和装置
CN113986811B (zh) * 2021-09-23 2022-05-10 北京东方通网信科技有限公司 一种高性能内核态网络数据包加速方法
CN115033407B (zh) * 2022-08-09 2022-11-04 微栈科技(浙江)有限公司 一种适用于云计算的采集识别流量的***和方法
CN116915667B (zh) * 2023-07-19 2024-03-08 上海螣龙科技有限公司 网络流量采集方法、装置、电子设备及存储介质
CN117579386B (zh) * 2024-01-16 2024-04-12 麒麟软件有限公司 网络流量安全管控方法、装置及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
CN1925465A (zh) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 基于共享内存实现的数据包捕获方法
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
CN103034684A (zh) * 2012-11-27 2013-04-10 北京航空航天大学 一种基于内容寻址存储的虚拟机镜像存储优化方法
CN104063267A (zh) * 2014-07-11 2014-09-24 孙强强 一种虚拟机流量监控方法及***
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端
CN108989151A (zh) * 2018-07-20 2018-12-11 北京云杉世纪网络科技有限公司 用于网络或应用性能管理的流量采集方法
CN109889403A (zh) * 2019-01-30 2019-06-14 北京云端智度科技有限公司 一种基于轮询机制的cdn网络流量检测方法
CN109981403A (zh) * 2019-03-05 2019-07-05 北京勤慕数据科技有限公司 虚拟机网络数据流量监控方法及装置
CN110380992A (zh) * 2019-07-24 2019-10-25 南京中孚信息技术有限公司 报文处理方法、装置及网络流量采集设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351791B1 (en) * 1998-06-25 2002-02-26 International Business Machines Corporation Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
CN108964959B (zh) * 2017-05-27 2022-02-25 阿里巴巴集团控股有限公司 一种用于虚拟化平台的网卡直通***及数据包监管方法
CN107294869A (zh) * 2017-06-22 2017-10-24 郑州云海信息技术有限公司 一种虚拟网卡报文抓取的方法及***
CN111431757B (zh) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
CN1925465A (zh) * 2006-09-22 2007-03-07 中国科学院计算技术研究所 基于共享内存实现的数据包捕获方法
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
CN103034684A (zh) * 2012-11-27 2013-04-10 北京航空航天大学 一种基于内容寻址存储的虚拟机镜像存储优化方法
CN104063267A (zh) * 2014-07-11 2014-09-24 孙强强 一种虚拟机流量监控方法及***
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端
CN108989151A (zh) * 2018-07-20 2018-12-11 北京云杉世纪网络科技有限公司 用于网络或应用性能管理的流量采集方法
CN109889403A (zh) * 2019-01-30 2019-06-14 北京云端智度科技有限公司 一种基于轮询机制的cdn网络流量检测方法
CN109981403A (zh) * 2019-03-05 2019-07-05 北京勤慕数据科技有限公司 虚拟机网络数据流量监控方法及装置
CN110380992A (zh) * 2019-07-24 2019-10-25 南京中孚信息技术有限公司 报文处理方法、装置及网络流量采集设备

Also Published As

Publication number Publication date
CN111431757A (zh) 2020-07-17
WO2021164262A1 (zh) 2021-08-26

Similar Documents

Publication Publication Date Title
CN111431757B (zh) 虚拟网络的流量采集方法及装置
US11500689B2 (en) Communication method and apparatus
US8484307B2 (en) Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8234407B2 (en) Network use of virtual addresses without pinning or registration
US7797588B2 (en) Mechanism to provide software guaranteed reliability for GSM operations
US7966454B2 (en) Issuing global shared memory operations via direct cache injection to a host fabric interface
Anderson et al. Cheating the I/O Bottleneck: Network Storage with Trapeze/Myrinet.
US7873879B2 (en) Mechanism to perform debugging of global shared memory (GSM) operations
US8239879B2 (en) Notification by task of completion of GSM operations at target node
CN110119304B (zh) 一种中断处理方法、装置及服务器
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
US8275947B2 (en) Mechanism to prevent illegal access to task address space by unauthorized tasks
CN109857545B (zh) 一种数据传输方法及装置
US8214604B2 (en) Mechanisms to order global shared memory operations
Tianhua et al. The design and implementation of zero-copy for linux
CN109101439B (zh) 一种报文处理的方法及装置
CN110737530B (zh) 一种提升handle标识解析***收包能力的方法
US8200910B2 (en) Generating and issuing global shared memory operations via a send FIFO
Afsahi et al. Efficient communication using message prediction for cluster of multiprocessors
US20240211392A1 (en) Buffer allocation
Marques et al. The distributed operating system of the SMD project
Khunjush et al. Comparing direct-to-cache transfer policies to TCP/IP and M-VIA during receive operations in mpi environments
JP2971119B2 (ja) 複数プロセッサシステムにおける高速データ転送方式
CN118093225A (zh) 订阅消息的传输方法及装置、存储介质及电子设备
Yamada et al. Implementation and performance evaluation of a memory‐coupled scalable node architecture MESCAR for parallel and distributed processing

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