CN111182063A - 应用于电子设备的数据处理方法、电子设备及介质 - Google Patents
应用于电子设备的数据处理方法、电子设备及介质 Download PDFInfo
- Publication number
- CN111182063A CN111182063A CN201911402221.0A CN201911402221A CN111182063A CN 111182063 A CN111182063 A CN 111182063A CN 201911402221 A CN201911402221 A CN 201911402221A CN 111182063 A CN111182063 A CN 111182063A
- Authority
- CN
- China
- Prior art keywords
- kernel
- interface
- network interface
- protocol stack
- mode
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 206
- 238000013507 mapping Methods 0.000 claims abstract description 64
- 238000012545 processing Methods 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012544 monitoring process Methods 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种应用于电子设备的数据处理方法、电子设备及介质,所述电子设备包括位于操作***内核的内核态网络接口和位于所述电子设备的用户态协议栈转发平面的虚拟接口,所述虚拟接口与所述内核态网络接口具有对应的映射关系,所述方法包括:建立所述操作***内核和所述用户态协议栈转发平面之间的数据传输通道;响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口;以及将要传输的数据包通过所述数据传输通道传输至所述实际要进行操作的接口进行处理。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种应用于电子设备的数据处理方法、电子设备及介质,还涉及一种计算机程序产品。
背景技术
当前,使用用户态协议栈转发平面(DP)来进行高速转发的网络安全设备已经较为普及。一般常见厂商网卡芯片如因特尔(Intel)已经有对应的用户态驱动运行于用户态转发平面。用户态协议栈循环缓冲区(Ring Buffer)及数据包的协议栈处理都处于用户态,与内核没有关联。因而驱动处于内核态的网络络接口与驱动处于用户态的网络接口不能实现转发的互通。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:目前仍有部分特殊网络接口,如3G、4G、点对点协议(PPP)、WIFI以及一些逻辑接口等,这些网络的接口驱动高度依赖于复杂的内核态框架,只能运行在内核态,无法直接与用户态协议栈的网络接口实现转发互通。
发明内容
有鉴于此,本公开提供了一种应用于电子设备的数据处理方法、电子设备及介质,以及一种计算机程序产品。
本公开的一个方面提供了一种应用于电子设备的数据处理方法,所述电子设备包括位于所述电子设备的操作***内核的内核态网络接口,位于所述电子设备的用户态协议栈转发平面上的用户态网络接口,以及位于所述电子设备的用户态协议栈转发平面的虚拟接口,所述虚拟接口与所述内核态网络接口具有对应的映射关系,所述方法包括:
建立所述操作***内核和所述用户态协议栈转发平面之间的数据传输通道;
响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口;以及
将要传输的数据包通过所述数据传输通道传输至所述实际要进行操作的接口进行处理。
根据本公开的实施例,所述建立所述操作***内核和所述用户态协议栈转发平面之间的数据传输通道,包括:
建立第一数据传输通道,所述第一数据传输通道用于缓存由所述内核态网络接口向所述用户态协议栈转发平面发送的数据包参数;
建立第二数据传输通道,所述第二数据传输通道用于缓存由所述用户态协议栈转发平面向所述内核态网络接口发送的数据包参数;
其中所述第一数据传输通道与所述第二数据传输通道相互独立,所述用户态协议栈转发平面对第一数据传输通道开启轮询收包处理,所述操作***内核对所述第二数据传输通道开启轮询收包处理。
根据本公开的实施例,所述响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口,并将要传输的数据包通过所述数据传输通道传输至所述实际进行操作的接口进行处理,包括:
响应于监测到所述用户态协议栈转发平面由用户态网络接口接收到的第一数据包需要在内核进行处理的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为内核态网络接口,将所述第一数据包通过所述第二数据传输通道转发至所述内核态网络接口,在内核态协议栈进行处理;和/或,
响应于监测到所述用户态协议栈转发平面的第二数据包需要通过所述内核态网络接口进行发出的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为内核态网络接口,将所述第二数据包通过所述第二数据传输通道转发至所述内核态网络接口,由该内核态网络接口发出;和/或,
响应于监测到所述内核态网络接口接收到的第三数据包需要在所述用户态协议栈转发平面进行处理的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为虚拟接口,将所述第三数据包通过所述第一数据传输通道转发至所述虚拟接口,在用户态协议栈进行处理;和/或,
响应于监测到所述内核态网络接口准备发送的第四数据包需要在所述用户态协议栈转发平面进行处理后再进行发送的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为虚拟接口,将所述第四数据包通过所述第一数据传输通道转发至所述虚拟接口进行处理,将处理后的第四数据包通过所述第二数据传输通道转发至内核态网络接口,由该内核态网络接口发送。
根据本公开的实施例,所述方法还包括:
所述用户态协议栈转发平面监测所述内核态网络接口是否发生网络事件;
响应于监测到所述网络事件发生,所述用户态协议栈转发平面根据所述映射关系在虚拟接口同步更新所述网络事件。
根据本公开的实施例,所述网络事件包括如下情况的至少一种:接口状态变化、配置参数变化。
本公开的另一个方面提供了一种电子设备,包括:位于所述电子设备的操作***内核的内核态网络接口;位于所述电子设备的用户态协议栈转发平面上的用户态网络接口;数据传输通道,用于所述操作***内核与所述用户态协议栈转发平面之间的数据传输;设置于用户态协议栈转发平面上的虚拟接口,其中所述虚拟接口与所述内核态网络接口具有对应的映射关系;确定模块,用于响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口;以及传输模块,用于将要传输的数据包通过所述数据传输通道传输至所述确定模块确定的实际要进行操作的接口进行处理。
根据本公开的实施例,该电子设备为网络安全设备。
根据本公开的实施例,该电子设备中,所述数据传输通道包括:
第一数据传输通道,所述第一数据传输通道用于缓存由所述内核态网络接口向所述用户态协议栈转发平面发送的数据包参数;以及
第二数据传输通道,所述第二数据传输通道用于缓存由所述用户态协议栈转发平面向所述内核态网络接口发送的数据包参数;
其中所述第一数据传输通道与所述第二数据传输通道相互独立,所述用户态协议栈转发平面用于读写所述第一数据传输通道与所述第二数据传输通道。
根据本公开的实施例,所示电子设备还包括:
第一轮询模块,设置于所述用户态协议栈转发平面中,用于对第一数据传输通道进行轮询收包处理;
第二轮询模块,设置于所述操作***内核中,用于对所述第二数据传输通道进行轮询收包处理。
根据本公开的实施例,所述电子设备还包括:
监测模块,设置于所述用户态协议栈转发平面中,用于监测所述内核态网络接口是否发生网络事件;
配置模块,设置于所述用户态协议栈转发平面中,用于响应于监测到所述网络事件发生,根据所述映射关系在虚拟接口同步更新所述网络事件。
本公开的又一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的再一方面提供了一种计算机程序产品,包括计算机可读指令,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,可以至少部分地解决处于内核态的网络接口与处于用户态协议栈转发平面(DP)的用户态的网络接口不能进行数据包的互相转发的问题,至少具有如下技术效果:通过在DP建立对应内核态网络接口的虚拟接口,并建立内核态网络接口和虚拟接口的映射关系;建立内核与DP的数据传输通道,可以实现处于用户态的网络接口与处于内核态的网络接口的数据传输,从而实现了操作***内核与DP的转发互通。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据处理方法的应用场景;
图2示意性示出了现有技术中电子设备的结构示意图;
图3示意性示出了根据本公开实施例的应用于电子设备的数据处理方法的流程图;
图4示意性示出了根据本公开实施例的步骤S12的实施流程图;
图5示意性示出了根据本公开一实施例的电子设备的结构框图;以及
图6示意性示出了根据本公开另一实施例的电子设备的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开提供了一种应用于电子设备的数据处理方法、电子设备及介质,还提供了一种计算机程序产品,可以至少部分地解决处于内核态的网络接口与处于用户态协议栈转发平面(DP)的用户态的网络接口不能进行数据包的互相转发的问题,通过在DP建立对应内核态网络接口的虚拟接口,并建立内核态网络接口和虚拟接口的映射关系;建立内核与DP的数据传输通道,可以实现处于用户态的网络接口与处于内核态的网络接口的数据传输,从而实现了操作***内核与DP的转发互通。全文中,“内核”为“操作***内核”的简称。
本公开的第一个示例性实施例提供了一种应用于电子设备的数据处理方法。
图1示意性示出了根据本公开实施例的数据处理方法的应用场景;图2示意性示出了现有技术中电子设备的结构示意图。需要说明的是,图1中示意的仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他场景。
参照图1所示,作为一个示例性的应用场景,有一网络安全设备,与用户内网连接,该网络安全设备使用USB 4G网卡接入互联网。
由于USB 4G上网卡不同于物理以太网卡,USB 4G上网卡需要封装实现USB,PPP等多个协议及4G通信模块等硬件驱动,对外则表现为一个以太网卡。USB 4G上网卡驱动涉及的协议及驱动较为庞大复杂,需要在内核态实现,而无法在用户态中直接实现,所以一般在Linux中实现为一个内核态驱动的设备。
参照图2所示,现有技术中,电子设备包括:位于操作***内核的内核态网络接口和位于用户态协议栈转发平面上的用户态网络接口。图2中示意了两个用户态网络接口,这两个用户态网络接口分别以名称ge1和ge2进行示意,其中,ge1和ge2网络接口之间可以进行数据包的相互转发。图2还示意了一个内核态网络接口,以接口名称k-ethx进行示意。
由于在用户态网络接口ge1与内核态网络接口k-ethx之间不存在数据通路,在用户态网络接口ge2与内核态网络接口k-ethx之间也不存在数据通路,因此在用户态协议栈转发平面11和操作***内核12之间不能进行数据转发。
因此,如何将USB 4G上网卡在用户态协议栈转发平面进行配置,从而实现数据包在互联网与用户内网之间传递与转发成为需要解决的一个技术问题。当然,不仅限于上述应用场景的示例,在其它应用场景中,也存在内核态网络接口与用户态网络接口的转发互通需求。
图3示意性示出了根据本公开实施例的应用于电子设备的数据处理方法的流程图。图5示意性示出了根据本公开一实施例的电子设备的结构框图
参照图3和图5所示,本实施例的数据处理方法,应用于电子设备1,该电子设备1包括位于操作***内核12的内核态网络接口121和位于电子设备的用户态协议栈转发平面11上的用户态网络接口110。所述数据处理方法包括以下步骤S11、步骤S12和步骤S13,进一步的,还可以包括步骤S11-1和步骤S11-2。
在步骤S11中,在用户态协议栈转发平面建立虚拟接口,虚拟接口与内核态网络接口具有对应的映射关系。
需要说明的是,本实施例中,通过建立虚拟接口,建立起内核12与DP 11之间的关联,在具有多个数据传输需求的过程中,每次执行数据处理方法的过程中,只要虚拟接口与内核态网络接口是对应的映射关系,可以直接采用上一次预先建立的虚拟接口进行后续操作,无需再重复建立虚拟接口。在内核态网络接口发生网络事件的情况下,参照后续要介绍的步骤S11-1和步骤S11-2对虚拟接口进行更新即可。
本实施例中,在用户态协议栈转发平面(DP)11建立虚拟接口111,参照图3所示,虚拟接口111以名称u-ethx进行示意,与内核态网络接口121对应,内核态网络接口的名称以k-ethx进行示意。虚拟接口与内核态网络接口具有对应的映射关系表示为:(u-ethx,k-ethx),该映射关系在DP 11和操作***内核12中同时都进行建立和记录。
参照3所示,本公开的实施例通过建立虚拟接口111,建立了虚拟接口111与内核态网络接口121之间的映射关系,从而在不同的数据传输需求场景下,上述虚拟接口111提供了用户态协议栈转发平面(DP)11与操作***内核12之间的关联,通过建立虚拟接口111与内核态网络接口121之间的一一映射关系,使得在收发数据包的场景中,通过基于收发包数据流中的数据钩子提取映射关系(或者称为绑定关系,虚拟接口也可以称为内核态网络接口的影子接口),结合该映射关系以及根据收发包数据流中上下文的内容(后面描述为数据包传输需求)便可以识别是将虚拟接口111对应的DP11中的数据包传输至内核态网络接口121进行处理,还是由内核态网络接口121对应的操作***内核12中的数据包传输至DP 11处理。例如在一场景中,内核态网络接口进行收发包时,需要将数据包封装后传输给DP的虚拟接口进行处理;或者在另一场景中,DP的数据包如果需要通过内核中的数据接口进行收发,则需要将数据包封装后交给内核态的数据接口处理。用于数据传输的通道将在步骤S12中进行介绍。
需要说明的是,步骤S11和下面要介绍的步骤S12二者在执行上不存在先后顺序。步骤S11、步骤S12和步骤S13能够解决操作***内核与DP之间无法进行数据包转发互通的技术问题。另外,后续要介绍的步骤S11-1和步骤S11-2存在逻辑的先后顺序,步骤S11-1和步骤S11-2整体与步骤S11具有递进关系,步骤S11-1和步骤S11-2确定了步骤S11中虚拟接口建立、删除以及状态或设置更改的时机。
在步骤S12中,建立操作***内核和用户态协议栈转发平面之间的数据传输通道。
图4示意性示出了根据本公开实施例的步骤S12的实施流程图;
参照图4和图5所示,在一示例性实施例中,建立操作***内核和用户态协议栈转发平面之间的数据传输通道,包括:建立第一数据传输通道131,第一数据传输通道131用于缓存由内核态网络接口121向用户态协议栈转发平面11发送的数据包参数;以及建立第二数据传输通道132,第二数据传输通道132用于缓存由用户态协议栈转发平面11向内核态网络接口121发送的数据包参数。
其中,第一数据传输通道131与第二数据传输通道132相互独立,用户态协议栈转发平面11用于读写第一数据传输通道131与第二数据传输通道132,用户态协议栈转发平面11对第一数据传输通道131开启轮询收包处理,操作***内核12对第二数据传输通道132开启轮询收包处理。
参照图5所示,本实施例中,数据传输通道13包括:第一数据传输通道131与第二数据传输通道132,第一数据传输通道131用于缓存由内核态网络接口121向用户态协议栈转发平面11发送的数据包参数;第二数据传输通道132用于缓存由用户态协议栈转发平面11向内核态网络接口121发送的数据包参数。其中,数据包参数包括如下参数:数据包数据、收发包接口以及收发包标志。
在收发数据包的场景中,通过基于收发包数据流中的数据钩子提取映射关系(或者称为绑定关系,虚拟接口也可以称为内核态网络接口的影子接口),基于该映射关系结合收发包数据流中上下文的内容(后面描述为数据包传输需求)便可以识别是将虚拟接口111对应的DP 11中的数据包传输至内核态网络接口121进行处理,还是由内核态网络接口121对应的操作***内核12中的数据包传输至DP 11处理。
在一实例中,建立第一数据传输通道和第二数据传输通道的过程可以按照以下方式:在内核启动时建立两块预分配内存,并分别初始化为两个环形缓冲区。第一环形缓冲区作为第一数据传输通道131,用于内核12发送数据包给DP 11使用,第二环形缓冲区作为第二数据传输通道132,用于DP 11发送数据包给内核12使用。参照图5所示,内核12中具有第二轮询模块122,用于对第二环形缓冲区进行轮询收包处理。对应的,DP11中具有第一轮询模块112,用于对第一环形缓冲区进行轮询收包处理。
用户态协议栈转发平面11能够读写第一数据传输通道131与第二数据传输通道132,具体实施方式例如为:DP11启动时从内核12读取两个环形缓冲区的相关参数,并且请求内核12将两个环形缓冲区的内存重新映射到DP的内存虚拟地址空间,使得DP 11能够读写这两个环形缓冲区(即第一数据传输通道131和第二数据传输通道132)。
在步骤S13中,响应于监测到内核态网络接口与用户态协议栈转发平面之间存在数据包传输需求,根据传输需求和映射关系确定虚拟接口与内核态网络接口之一为实际要进行操作的接口,并将要传输的数据包通过数据传输通道传输至实际要进行操作的接口进行处理。
根据本公开的实施例,响应于监测到内核态网络接口与用户态协议栈转发平面之间存在数据包传输需求,根据传输需求和映射关系确定虚拟接口与内核态网络接口之一为实际要进行操作的接口,并将要传输的数据包通过数据传输通道传输至实际进行操作的接口进行处理,包括以下四种情形之一或者兼具以下情况的几种。
情形一:响应于监测到用户态协议栈转发平面由用户态网络接口接收的第一数据包需要在内核进行处理的传输需求,根据传输需求和映射关系确定实际进行操作的接口为内核态网络接口,将第一数据包通过第二数据传输通道转发至内核态网络接口,在内核协议栈进行处理。
具体而言,在一场景中,存在如下传输需求:用户态协议栈转发平面由用户态网络接口接收到第一数据包,第一数据包需要在内核进行处理,即需要将第一数据包转发至内核态网络接口,并在内核协议栈处理。根据上述传输需求和映射关系可以确定实际进行操作的接口为内核态网络接口,用户态协议栈转发平面将第一数据包参数(包括:第一数据包数据、收包接口(对应为内核态网络接口)、收包标志等参数)封装后缓存至第二数据传输通道,内核态网络接口通过在第二数据传输通道轮询以提取第一数据包参数,由内核态网络接口将第一数据包接收并送入至内核协议栈处理。该方式搭建了用户态与内核态之间进行数据传输的途径。
比如在一实例中,当DP需要通过内核k-ethx接口将数据包送入内核协议栈时,将数据包数据及收包接口k-ethx,收包标志等参数复制到第二数据传输通道(例如为第二环形缓冲区)中。内核此时通过轮询模块收到包后,提取出数据包数据及收包接口k-ethx,从接口k-ethx将数据包注入内核网络协议栈进行处理。
情形二:响应于监测到用户态协议栈转发平面的第二数据包需要通过内核态网络接口进行发出的传输需求,根据传输需求和映射关系确定实际进行操作的接口为内核态网络接口,将第二数据包通过第二数据传输通道转发至内核态网络接口,由该内核态网络接口发出。
具体而言,在一场景中,存在如下传输需求:用户态协议栈转发平面有第二数据包需要通过内核态网络接口发出,比如该第二数据包可以是经过用户态网络接口接收后在内核协议栈处理之后的数据包,在DP不具备发送权限,需要调用硬核态的硬件或者其他权限才能发送;当然该DP上的第二数据包也可以是经过其他方式获取的需要通过内核态发出的数据包。根据上述传输需求和映射关系确定实际进行操作的接口为内核态网络接口,用户态协议栈转发平面将第二数据包参数(包括:第二数据包数据、发包接口(对应为内核态网络接口)、发包标志等参数)封装后缓存至第二数据传输通道,内核态网络接口通过在第二数据传输通道轮询以提取第二数据包参数,由内核态网络接口将第二数据包进行发出。该方式搭建了用户态与内核态之间进行数据传输的途径。
比如在一实例中,当DP有包需要通过接口u-ethx发出数据包(用户态数据接口无法发出的情形,ge1和ge2无法发出,需要通过内核态发出),根据映射关系得知实际需要使用内核k-ethx发出数据包,则将数据包数据及发包接口k-ethx,发包标志等参数封装并复制到第二数据传输通道(例如为第二环形缓冲区)中。内核此时通过轮询模块收到数据包参数后,提取出数据包参数,包括数据包数据以及发包接口k-ethx,从k-ethx接口发送。
情形三:响应于监测到内核态网络接口接收到的第三数据包需要在用户态协议栈转发平面进行处理的传输需求,根据传输需求和映射关系确定实际进行操作的接口为虚拟接口,将第三数据包通过第一数据传输通道转发至虚拟接口,在用户态协议栈进行处理。
具体而言,在一场景中,存在如下传输需求:内核态网络接口接收到第三数据包,第三数据包需要转发至用户态协议栈转发平面进行处理。根据上述传输需求和映射关系确定实际进行操作的接口为虚拟接口,内核态网络接口将接收到的第三数据包参数(包括第三数据包数据、收包接口(对应为虚拟接口)以及收包标志等参数)封装后缓存至第一数据传输通道,用户态协议栈转发平面通过在第一数据传输通道轮询以提取第一数据包参数,由虚拟接口接收第三数据包参数,并将提取的第三数据包参数注入至用户态协议栈进行处理。该方式搭建了用户态与内核态之间进行数据传输的途径。
比如在一实例中,当内核k-ethx收到数据包时,此时无法确定数据包的出接口,因为数据包的处理流程在DP,所以需要将数据包转给DP进行处理。内核根据映射关系,得知DP对应接口为u-ethx,将数据包数据及收包接口u-ethx,收包标志等参数复制到第一数据传输通道中。DP此时通过轮询收到数据包后,提取出数据包数据及收包接口u-ethx,将数据包注入DP协议栈处理,执行完二三层转发查找,会话及安全检查后等即可完成包的转发。
情形四:响应于监测到内核态网络接口准备发送的第四数据包需要在用户态协议栈转发平面进行处理后再进行发送的传输需求,根据传输需求和映射关系确定实际进行操作的接口为虚拟接口,将第四数据包通过第一数据传输通道转发至虚拟接口,并在用户态协议栈进行处理,将处理后的第四数据包通过第二数据传输通道转发至内核态网络接口,由该内核态网络接口发出。
具体而言,在一场景中,存在如下传输需求:内核态网络接口准备发送第四数据包,第四数据包需要在用户态协议栈转发平面进行处理后再由内核态网络接口发送。根据上述传输需求和映射关系确定实际进行操作的接口为虚拟接口,内核态网络接口将准备发送的第四数据包参数(包括第四数据包数据、发包接口(对应为虚拟接口)以及发包标志等参数)封装后缓存至第一数据传输通道,用户态协议栈转发平面通过在第一数据传输通道轮询以提取第四数据包参数,并将提取的第四数据包参数在用户态协议栈进行处理,处理之后的第四数据包参数再经由第二数据传输通道缓存,通过在第二数据传输通道轮询以提取处理之后的第四数据包参数,由内核态网络接口接收第四数据包参数,并将处理之后的第四数据包参数发出。该方式搭建了用户态与内核态之间进行数据传输的途径。
比如在一实例中,当本机内核k-ethx发包时,此时数据包需要进入DP进行会话及安全处理,数据包应进行DP处理后再返回内核发送。内核根据映射关系,得知DP对应接口为u-ethx,将数据包数据及发包接口u-ethx,发包标志等参数复制到第一数传输通道中。DP此时通过轮询收到数据包后,提取出数据包数据及发包接口u-ethx,将数据包注入DP协议栈处理。DP处理完成后,再将数据包数据、发包接口以及发包标志复制到第二数据传输通道中,交给内核k-ethx做最终的数据包发送。
根据本公开的实施例,参照图1所示,该数据处理方法还包括:步骤S11-1和步骤S11-2。
在步骤S11-1中,用户态协议栈转发平面监测内核态网络接口是否发生网络事件。
根据本公开的实施例,网络事件包括如下情况的至少一种:接口状态变化、配置参数变化。
其中接口状态变化包括但不限于如下情况的至少一种:接口建立、接口删除、接口链路状态变化等;配置参数变化包括但不限于如下情况的至少一种:最大传输单元(MTU)、互联网通信协议第四版/第六版(IPv4/IPv6)地址的变化等。
参照图1所示,在步骤S11-2中,响应于监测到网络事件发生,用户态协议栈转发平面根据映射关系在虚拟接口同步更新网络事件。
在一实施例中,参照图5所示,DP 11利用netlink机制监测内核态网络接口是否发生网络事件,网络事件诸如:接口建立、接口删除、接口链路状态变化、MTU、IPv4/IPv6地址等配置参数变化等。在内核态网络接口k-ethx 121有事件发生后,DP 11基于监测模块113接收到事件发生的信息,例如监测模块113为Netlink监测模块,通过与内核Netlink通信模块123进行通信,以监测内核12是否发生网络事件并同步相应的状态及配置到DP 11的虚拟接口111,这里虚拟接口111为u-ethx接口。
下面结合具体实例来介绍发生网络事件对应的虚拟接口进行更新的过程。
在一实例中,当操作***内核12建立k-ethx网络接口时,DP 11监测到内核12发生了网络事件——建立网络接口,并响应于发生的网络事件,按照相同的方式建立一个与k-ethx网络接口存在一一映射关系的虚拟接口u-ethx,并在内核12和DP 11同时都建立并记录上述映射关系,即(k-ethx,u-ethx)或(u-ethx,k-ethx),绑定关系中二者的前后顺序不作要求,在具体执行时,会根据收发数据包对应的数据流的上下文判断出数据传输的方向。
在一实例中,当内核netdevice(网络设备)状态及配置参数发生变化后,DP接收到内核网络事件,同步相关状态及配置参数到DP的u-ethx接口上,相关状态发生变化例如为接口链路状态、MTU或者IPv4/IPv6地址等参数至少之一发生变化。
在一实例中,当内核删除k-ethx后,则将在DP中删除u-ethx接口及相关配置,并在内核和DP分别删除上述映射关系。
下面结合图1的应用场景来介绍本实施例的数据处理方法的实施过程。该实例中,该电子设备为一网络安全设备,该网络安全设备使用USB 4G网卡接入互联网作为一个示例性的应用场景。
参照图1所示,电子设备1为一网络安全设备,用户内网连接至网络安全设备,该网络安全设备通过***USB 4G上网卡连接到互联网。由于USB 4G上网卡不同于物理以太网卡,USB 4G上网卡需要封装实现USB,PPP等多个协议及4G通信模块等硬件驱动,对外则表现为一个以太网卡。USB 4G上网卡驱动涉及的协议及驱动较为庞大复杂,无法在用户态中直接中实现,所以一般在Linux中实现为一个内核态驱动的设备。因此,如何将USB 4G上网卡在用户态协议栈转发平面进行配置,从而实现数据包在互联网与用户内网之间传递与转发的问题,可以利用本申请前述提及的数据处理方法来解决。
将USB 4G上网卡***网络安全设备并通过上述数据处理方法实现在用户态协议栈转发平面对该USB 4G上网卡进行配置的具体操作过程如下:
步骤(a),用户在网络安全设备的数据接口(U口)***USB 4G网卡;
步骤(b),操作***内核识别并添加网卡接口eth-4g1(此处为ethx的示例),并且广播网卡注册事件;
步骤(c),用户态协议栈转发平面收到内核广播的网卡注册事件,在用户态协议栈转发平面生成一个虚拟网卡接口4g1;
步骤(d),用户态转发平面建立网卡接口eth-4g1和虚拟网卡接口4g1的映射关系;并通知内核建立相同的映射关系;
步骤(e),内核USB 4G网卡接口eth-4g1通过协议DHCP(动态主机配置协议)或PPP(点对点协议)获得地址;并且广播网卡地址配置事件;以及
步骤(f),用户态转发平面收到内核的网卡接口eth-4g1广播的网卡地址配置事件,提取其中的地址,根据映射关系将地址配置在用户态协议栈转发平面上虚拟网卡接口4g1上。
上述步骤(a)~(f)描述了具体场景下步骤S11的实施过程,包括步骤S11-1和步骤S11-2的具体实施方式示例,用户态协议栈转发平面上的虚拟网卡接口已经按照与操作***内核识别的网卡状态和配置相同的方式,完成了网卡配置。之后,采用步骤S12建立数据传输通道,以及采用步骤S13中的数据处理流程,在存在数据包传输需求的情况,将数据包在内核态数据接口与用户态数据接口之间进行传输,从而实现数据包在互联网与用户内网之间的传递与转发。
本实施例提供的数据处理方法可以至少部分地解决处于内核态的网络接口与处于用户态协议栈转发平面(DP)的用户态的网络接口不能进行数据包的互相转发的问题,通过在DP建立对应内核态网络接口的虚拟接口,并建立内核态网络接口和虚拟接口的映射关系;建立内核与DP的数据传输通道,可以实现处于用户态的网络接口与处于内核态的网络接口的数据传输,从而实现了操作***内核与DP的转发互通,在一些应用场景中,方便了使用内核驱动的网络接口(比如3G、4G、PPP接口)嵌入安全处理流程,提高了防火墙的适应性和接入能力。
本公开的第二个示例性实施例提供了一种电子设备,用于执行本公开提及的任一种数据处理方法。
参照图5所示,本实施例的电子设备1包括:位于电子设备的操作***内核12的内核态网络接口121;位于电子设备的用户态协议栈转发平面11上的用户态网络接口110;数据传输通道13,用于操作***内核12与用户态协议栈转发平面11之间的数据传输;设置于用户态协议栈转发平面11的虚拟接口111,其中虚拟接口111与内核态网络接口121具有对应的映射关系;确定模块14,用于响应于监测到内核态网络接口121与用户态协议栈转发平面11之间存在数据包传输需求,根据传输需求和映射关系确定虚拟接口111与内核态网络接口121之一为实际要进行操作的接口;以及传输模块15,用于将要传输的数据包通过数据传输通道13传输至由确定模块14确定的实际要进行操作的接口进行处理。
图5中,以箭头框示意数据传输通道13,该数据传输通道13可以是配置的内存,两个数据传输通道131和132为相互独立的两块内存;以方框示意分别存储于操作***内核12和DP 11中的映射关系,以虚线示意确定模块14与映射关系之间的连接关系,以虚线示意确定模块14与传输模块15之间的连接关系,还以虚线示意了传输模块15分别与操作***内核12和DP 11之间的连接关系,上述连接关系可以为通信连接或者电学连接。
在监测到内核态网络接口121与用户态协议栈转发平面11之间存在数据包传输需求的情况下,根据传输需求和映射关系确定虚拟接口111与内核态网络接口121之一为实际要进行操作的接口,并将要传输的数据包通过数据传输通道13传输至实际要进行操作的接口进行处理,从而实现了处于用户态的网络接口与处于内核态的网络接口的数据传输,实现了操作***内核与DP的转发互通。
在一实施例中,例如图1所示的场景中,该电子设备1为网络安全设备。
在一实施例中,该电子设备1中,数据传输通道13包括:第一数据传输通道131和第二数据传输通道132。其中第一数据传输通道131用于缓存由内核态网络接口121向用户态协议栈转发平面11发送的数据包参数;第二数据传输通道132用于缓存由用户态协议栈转发平面11向内核态网络接口121发送的数据包参数。
其中,第一数据传输通道131与第二数据传输通道132相互独立,用户态协议栈转发平面11用于读写第一数据传输通道131与第二数据传输通道132。
在一实施例中,参照图5所示,电子设备1还包括:第一轮询模块112和第二轮询模块122。第一轮询模块112设置于用户态协议栈转发平面11中,用于对第一数据传输通道131进行轮询收包处理。第二轮询模块122设置于操作***内核12中,用于对第二数据传输通道132进行轮询收包处理。
在一实施例中,参照图5所示,电子设备1还包括:监测模块113和配置模块14。其中监测模块113设置于用户态协议栈转发平面11中,用于监测内核态网络接口121是否发生网络事件。配置模块114设置于用户态协议栈转发平面11中,用于响应于监测到网络事件发生,根据映射关系在虚拟接口111同步更新网络事件。
在一实例中,如图5所示,通过netlink机制实现网络事件的监测,在操作***内核12中设置有内核Netlink通信模块123,监测模块113对应为Netlink监测模块,Netlink监测模块通过与内核Netlink通信模块123进行通信监测内核是否发生网络事件。当然,在其它实施例中,还可以是其它形式的网络事件监测方式,例如在发生网络事件时,内核可以通过广播的形式进行网络事件的传递。这里不以示例为限,可以是其他类型的监测方式。
本实施例的电子设备可以至少部分地解决处于内核态的网络接口与处于用户态协议栈转发平面(DP)的用户态的网络接口不能进行数据包的互相转发的问题,通过在DP建立对应内核态网络接口的虚拟接口,并建立内核态网络接口和虚拟接口的映射关系;建立内核与DP的数据传输通道,可以实现处于用户态的网络接口与处于内核态的网络接口的数据传输,从而实现了操作***内核与DP的转发互通,方便了使用内核驱动的网络接口(比如3G、4G、PPP接口)嵌入安全处理流程,提高了防火墙的适应性和接入能力。
上述第二个示例性实施例介绍了一种电子设备的示例,接下来结合图6来介绍电子设备的另一种示例。
图6示意性示出了根据本公开另一实施例的电子设备的结构框图。
参照图6所示,本公开的第三个示例性实施例提供了一种电子设备。该实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器本公开提及的任一种数据处理方法。
本实施例中的电子设备2包括处理器201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。处理器201例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器201还可以包括用于缓存用途的板载存储器。处理器201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 203中,存储有电子设备2操作所需的各种程序和数据。处理器201、ROM 202以及RAM 203通过总线204彼此相连。处理器201通过执行ROM 202和/或RAM 203中的程序来执行根据本公开实施例的数据处理方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 202和RAM 203以外的一个或多个存储器中。处理器201也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备2还可以包括输入/输出(I/O)接口205,输入/输出(I/O)接口205也连接至总线204。电子设备2还可以包括连接至I/O接口205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行图3和图4所示流程图中方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被处理器201执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的电子设备可以通过计算机程序模块来实现。
本公开的第四个示例性实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现本公开提及的数据处理方法。
该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
本公开的实施例还提供了一种计算机程序产品,包括计算机可读指令,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
综上所述,本公开提供了一种应用于电子设备的数据处理方法、电子设备及介质,可以至少部分地解决处于内核态的网络接口与处于用户态协议栈转发平面(DP)的用户态的网络接口不能进行数据包的互相转发的问题,通过在DP建立对应内核态网络接口的虚拟接口,并建立内核态网络接口和虚拟接口的映射关系;建立内核与DP的数据传输通道,可以实现处于用户态的网络接口与处于内核态的网络接口的数据传输,从而实现了操作***内核与DP的转发互通,方便了使用内核驱动的网络接口(比如3G、4G、PPP接口)嵌入安全处理流程,提高了防火墙的适应性和接入能力。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,确定模块14可以通过软件的形式实现,或者通过硬件的形式实现,或者通过软件和硬件结合的方式实现,比如确定模块14为处理器加上内置计算机程序;第一轮询模块112、监测模块113以及配置模块114中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一轮询模块112、第二轮询模块122、监测模块113以及配置模块114中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一轮询模块112、第二轮询模块122、监测模块113、配置模块114、确定模块14以及传输模块15中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。电要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种应用于电子设备的数据处理方法,所述电子设备包括位于所述电子设备的操作***内核的内核态网络接口,位于所述电子设备的用户态协议栈转发平面上的用户态网络接口,以及位于所述电子设备的用户态协议栈转发平面的虚拟接口,所述虚拟接口与所述内核态网络接口具有对应的映射关系,所述方法包括:
建立所述操作***内核和所述用户态协议栈转发平面之间的数据传输通道;
响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口;以及
将要传输的数据包通过所述数据传输通道传输至所述实际要进行操作的接口进行处理。
2.根据权利要求1所述的方法,其中,所述建立所述操作***内核和所述用户态协议栈转发平面之间的数据传输通道,包括:
建立第一数据传输通道,所述第一数据传输通道用于缓存由所述内核态网络接口向所述用户态协议栈转发平面发送的数据包参数;
建立第二数据传输通道,所述第二数据传输通道用于缓存由所述用户态协议栈转发平面向所述内核态网络接口发送的数据包参数;
其中所述第一数据传输通道与所述第二数据传输通道相互独立,所述用户态协议栈转发平面对第一数据传输通道开启轮询收包处理,所述操作***内核对所述第二数据传输通道开启轮询收包处理。
3.根据权利要求2所述的方法,其中,所述响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口,并将要传输的数据包通过所述数据传输通道传输至所述实际进行操作的接口进行处理,包括:
响应于监测到所述用户态协议栈转发平面由所述用户态网络接口接收的第一数据包需要在所述内核进行处理的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为内核态网络接口,将所述第一数据包通过所述第二数据传输通道转发至所述内核态网络接口,在内核态协议栈进行处理;和/或,
响应于监测到所述用户态协议栈转发平面的第二数据包需要通过所述内核态网络接口进行发出的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为内核态网络接口,将所述第二数据包通过所述第二数据传输通道转发至所述内核态网络接口,由所述内核态网络接口发出;和/或,
响应于监测到所述内核态网络接口接收到的第三数据包需要在所述用户态协议栈转发平面进行处理的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为虚拟接口,将所述第三数据包通过所述第一数据传输通道转发至所述虚拟接口,在用户态协议栈进行处理;和/或,
响应于监测到所述内核态网络接口准备发送的第四数据包需要在所述用户态协议栈转发平面进行处理后再进行发送的传输需求,根据所述传输需求和所述映射关系确定实际进行操作的接口为虚拟接口,将所述第四数据包通过所述第一数据传输通道转发至所述虚拟接口,由用户态协议栈进行处理,将处理后的第四数据包通过所述第二数据传输通道转发至所述内核态网络接口,由所述内核态网络接口发送。
4.根据权利要求1所述的方法,还包括:
所述用户态协议栈转发平面监测所述内核态网络接口是否发生网络事件;
响应于监测到所述网络事件发生,所述用户态协议栈转发平面根据所述映射关系在虚拟接口同步更新所述网络事件。
5.根据权利要求4所述的方法,其中:
所述网络事件包括如下情况的至少一种:接口状态变化、配置参数变化。
6.一种电子设备,包括:
位于所述电子设备的操作***内核的内核态网络接口;
位于所述电子设备的用户态协议栈转发平面上的用户态网络接口;
位于用户态协议栈转发平面上的虚拟接口,其中所述虚拟接口与所述内核态网络接口具有对应的映射关系;
数据传输通道,用于所述操作***内核与所述用户态协议栈转发平面之间的数据传输;
确定模块,用于响应于监测到所述内核态网络接口与所述用户态协议栈转发平面之间存在数据包传输需求,根据所述传输需求和所述映射关系确定所述虚拟接口与所述内核态网络接口之一为实际要进行操作的接口;以及
传输模块,用于将要传输的数据包通过所述数据传输通道传输至所述确定模块确定的实际要进行操作的接口进行处理。
7.根据权利要求6所述的电子设备,其中,所述数据传输通道包括:
第一数据传输通道,所述第一数据传输通道用于缓存由所述内核态网络接口向所述用户态协议栈转发平面发送的数据包参数;以及
第二数据传输通道,所述第二数据传输通道用于缓存由所述用户态协议栈转发平面向所述内核态网络接口发送的数据包参数;
其中所述第一数据传输通道与所述第二数据传输通道相互独立。
8.根据权利要求7所述的电子设备,还包括:
第一轮询模块,设置于所述用户态协议栈转发平面中,用于对第一数据传输通道进行轮询收包处理;
第二轮询模块,设置于所述操作***内核中,用于对所述第二数据传输通道进行轮询收包处理。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1~5中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令用于执行权利要求1-5中任一项所述的方法。
11.一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行根据权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911402221.0A CN111182063B (zh) | 2019-12-30 | 2019-12-30 | 应用于电子设备的数据处理方法、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911402221.0A CN111182063B (zh) | 2019-12-30 | 2019-12-30 | 应用于电子设备的数据处理方法、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111182063A true CN111182063A (zh) | 2020-05-19 |
CN111182063B CN111182063B (zh) | 2022-09-09 |
Family
ID=70658314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911402221.0A Active CN111182063B (zh) | 2019-12-30 | 2019-12-30 | 应用于电子设备的数据处理方法、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111182063B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422453A (zh) * | 2020-12-09 | 2021-02-26 | 新华三信息技术有限公司 | 一种报文处理的方法、装置、介质及设备 |
CN112860489A (zh) * | 2021-02-20 | 2021-05-28 | 杭州迪普科技股份有限公司 | 设备配置恢复方法及装置 |
WO2023284699A1 (zh) * | 2021-07-12 | 2023-01-19 | 北京字节跳动网络技术有限公司 | 基于Linux***的协议栈数据传输方法、计算机设备和存储介质 |
CN116599917A (zh) * | 2023-05-31 | 2023-08-15 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227424A (zh) * | 2015-10-20 | 2016-01-06 | 成都广达新网科技股份有限公司 | 一种eoc局端通过级联网桥虚拟接口的方法及*** |
CN106302199A (zh) * | 2016-08-10 | 2017-01-04 | 成都广达新网科技股份有限公司 | 一种基于三层交换机设备的用户态协议栈实现方法及*** |
CN108268328A (zh) * | 2013-05-09 | 2018-07-10 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
US20180329743A1 (en) * | 2017-05-12 | 2018-11-15 | Solarflare Communications, Inc. | Data processing system |
CN109361606A (zh) * | 2018-09-28 | 2019-02-19 | 新华三技术有限公司 | 一种报文处理***及网络设备 |
-
2019
- 2019-12-30 CN CN201911402221.0A patent/CN111182063B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268328A (zh) * | 2013-05-09 | 2018-07-10 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN105227424A (zh) * | 2015-10-20 | 2016-01-06 | 成都广达新网科技股份有限公司 | 一种eoc局端通过级联网桥虚拟接口的方法及*** |
CN106302199A (zh) * | 2016-08-10 | 2017-01-04 | 成都广达新网科技股份有限公司 | 一种基于三层交换机设备的用户态协议栈实现方法及*** |
US20180329743A1 (en) * | 2017-05-12 | 2018-11-15 | Solarflare Communications, Inc. | Data processing system |
CN109361606A (zh) * | 2018-09-28 | 2019-02-19 | 新华三技术有限公司 | 一种报文处理***及网络设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422453A (zh) * | 2020-12-09 | 2021-02-26 | 新华三信息技术有限公司 | 一种报文处理的方法、装置、介质及设备 |
CN112422453B (zh) * | 2020-12-09 | 2022-05-24 | 新华三信息技术有限公司 | 一种报文处理的方法、装置、介质及设备 |
CN112860489A (zh) * | 2021-02-20 | 2021-05-28 | 杭州迪普科技股份有限公司 | 设备配置恢复方法及装置 |
CN112860489B (zh) * | 2021-02-20 | 2024-02-09 | 杭州迪普科技股份有限公司 | 设备配置恢复方法及装置 |
WO2023284699A1 (zh) * | 2021-07-12 | 2023-01-19 | 北京字节跳动网络技术有限公司 | 基于Linux***的协议栈数据传输方法、计算机设备和存储介质 |
CN116599917A (zh) * | 2023-05-31 | 2023-08-15 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
CN116599917B (zh) * | 2023-05-31 | 2024-03-01 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111182063B (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111182063B (zh) | 应用于电子设备的数据处理方法、电子设备及介质 | |
US7961733B2 (en) | Method and apparatus for performing network processing functions | |
CN110971586B (zh) | 网络接口设备和网络接口设备中的方法 | |
US7924868B1 (en) | Internet protocol (IP) router residing in a processor chipset | |
US8094670B1 (en) | Method and apparatus for performing network processing functions | |
TWI504193B (zh) | 用於在雲計算中卸載隧道資料包的方法和系統 | |
US20190306087A1 (en) | Methods and apparatus for dynamic packet pool configuration in networking stack infrastructures | |
US20090296685A1 (en) | User-Mode Prototypes in Kernel-Mode Protocol Stacks | |
US7751401B2 (en) | Method and apparatus to provide virtual toe interface with fail-over | |
CN110048963B (zh) | 虚拟网络中的报文传输方法、介质、装置和计算设备 | |
WO2015058699A1 (en) | Data forwarding | |
US8458366B2 (en) | Method and system for onloading network services | |
US11048535B2 (en) | Method and apparatus for transmitting data packet based on virtual machine | |
US11570045B2 (en) | Network interface device | |
US9288287B2 (en) | Accelerated sockets | |
US11792446B2 (en) | Methods and apparatus to reduce audio streaming latency between audio and gigabit ethernet subsystems | |
US9515963B2 (en) | Universal network interface controller | |
US20190354387A1 (en) | Accelerating para-virtualization network using interface using direct memory access (dma) remapping | |
CN113055269B (zh) | 虚拟专用网络数据的传输方法及装置 | |
US7188250B1 (en) | Method and apparatus for performing network processing functions | |
US11822494B2 (en) | Network switch with DMA controller for independent direct memory access of host system | |
EP4068708A1 (en) | Network operation method, apparatus, and device and storage medium | |
US20060047784A1 (en) | Method, apparatus and system for remotely and dynamically configuring network elements in a network | |
CN103607442B (zh) | 一种网络数据的转发方法、模块及*** | |
CN111147520B (zh) | 由防火墙执行的信息处理方法和装置 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: QAX Technology Group Inc. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: QAX Technology Group Inc. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |