CN113691572B - 一种数据转发方法、装置、设备及计算机存储介质 - Google Patents
一种数据转发方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113691572B CN113691572B CN202010423401.3A CN202010423401A CN113691572B CN 113691572 B CN113691572 B CN 113691572B CN 202010423401 A CN202010423401 A CN 202010423401A CN 113691572 B CN113691572 B CN 113691572B
- Authority
- CN
- China
- Prior art keywords
- network equipment
- space unit
- subunit
- data
- virtual network
- 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
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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
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
技术领域
本发明属于通信领域,尤其涉及一种数据转发方法、装置、设备及计算机存储介质。
背景技术
目前,各种网关设备都基本以Linux为操作系统。在Linux系统中,传统的数据平面的转发功能的实现方式是在内核空间中,但需要在内核完成系统调度、系统调用、系统中断,上下文切换等操作或各项其他功能后,才能执行数据平面的转发功能,导致数据转发效率很低。
而为了避免使用内核进行数据转发的效率低下,网关通常使用用户空间数据平面的方法。用户空间数据平面的主要方法将例如网卡等网络设备收发数据包的直接发给控制平面应用程序接管,旁路掉内核。
但这也产生了一个问题,就是原有的控制平面应用程序与用户空间数据平面进行相交互时,如果要适配不同的用户空间数据平面的接口,就需要对控制平面应用程序做出大量的修改,而修改控制平面应用程序不仅开发难度高,同时也会产生大量额外的工作。
发明内容
本发明实施例提供一种数据转发方法、装置、设备及计算机存储介质,能够避免大量修改控制平面应用单元,降低开发难度,实现减少额外的工作量。
第一方面,本发明实施例提供一种数据转发方法,方法应用于网关设备,网关设备包括用户空间单元和内核空间单元,内核空间单元包括虚拟网络设备子单元;方法包括:获取转发数据;
通过虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送转发数据,以用于用户空间单元向网络设备发送转发数据。
在第一方面的一些可实现方式中,在获取转发数据之前,方法还包括:通过用户空间单元获取从网关设备连接的网络设备,获取网络设备的设备参数;根据设备参数,在内核空间单元建立与网络设备相对应的虚拟网络设备子单元以及虚拟网络设备子单元的共享内存;以及建立虚拟网络设备子单元的共享内存与网络设备的映射关系。
在第一方面的一些可实现方式中,在建立虚拟网络设备子单元的共享内存与网络设备的映射关系之后,方法还包括:接收控制平面应用单元发送的网络设备的配置参数;
通过虚拟网络设备子单元,以及共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送配置参数,以用于用户空间单元向网络设备发送配置参数。
在第一方面的一些可实现方式中,方法还包括:通过用户空间单元获取网络设备的状态参数;
当网络设备的状态参数发生变化时,通过虚拟网络设备子单元的共享内存向虚拟网络设备子单元发送状态参数。
在第一方面的一些可实现方式中,方法还包括:通过用户空间单元获取网络设备接收的数据报文;
通过共享内存,将数据报文发送到与接收数据报文相对应的虚拟网络设备子单元,以用于内核空间单元处理数据报文。
在第一方面的一些可实现方式中,方法还包括:接收虚拟网络设备删除信息;
根据删除信息,删除虚拟网络设备子单元和预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系。
第二方面,本发明实施例提供了一种数据转发装置,装置应用于网关设备,网关设备包括用户空间单元和内核空间单元,内核空间单元包括虚拟网络设备子单元;装置包括:
数据获取模块,用于获取转发数据;
转发模块,用于通过虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送转发数据,以用于用户空间单元向网络设备发送转发数据。
在第二方面的一些可实现方式中,装置还包括:参数获取模块,用于通过用户空间单元获取从网关设备连接的网络设备,获取网络设备的设备参数;
创建模块,用于根据设备参数,在内核空间单元建立与网络设备相对应的虚拟网络设备子单元以及虚拟网络设备子单元的共享内存;以及建立虚拟网络设备子单元的共享内存与网络设备的映射关系。
第三方面,本发明提供一种数据转发设备,该设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面或者第一方面任一可实现方式中所述的数据转发方法。
第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面或者第一方面任一可实现方式中所述的数据转发方法。
本发明实施例提供了数据转发方法,通过使用在内核空间单元的虚拟网络设备子单元接收控制面服务程序发送的需要转发的转发数据,避免了为适配不同的用户空间单元接口,而需要对控制平面应用单元做出大量的修改,降低了开发难度和开发工作量。同时,通过虚拟网络设备与用户空间单元通信连接的共享内存,通过共享内存将需要转发的转发数据实时的发送到用户空间单元,能够充分利用已有的网络功能,实现与网络设备、用户空间单元以及控制平面应用单元的通信连接以及数据转发。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据转发方法的流程示意图;
图2是本发明实施例提供的一种数据转发的系统结构示意图;
图3是本发明实施例提供的一种数据转发装置的结构示意图;
图4是本发明实施例提供的一种数据转发设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
目前,各种网关设备都基本以Linux为操作系统。在Linux系统中,传统的数据平面的转发功能的实现方式是在内核空间中,但需要在内核完成系统调度、系统调用、系统中断,上下文切换等操作或各项其他功能后,才能执行数据平面的转发功能,导致数据转发效率很低。
尤其是在多核中央处理器(Central Processing Unit,CPU)的场景下,本可以有若干个核用于转发,但是由于使用系统内核的数据平面,无法发挥出多核CPU的数据处理优势,数据转发的效率低下。
而为了避免使用内核进行数据转发的效率低下,网关通常使用用户空间数据平面的方法。用户空间数据平面的主要方法将例如网卡等网络设备收发数据包的直接发给控制平面应用单元接管,旁路掉内核。
目前,网关一般的解决方案是在用户空间数据平面实现完整的传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议栈,并提供进程间通信(Inter-Process Communication,IPC)机制用于与其他应用通信,提供接口用于数据收发,各种类型的接口创建/删除/属性配置/链路通断消息,路由表增删等等机制,这基本上涵盖了内核与网络应用的网络调用接口。
但这也产生了一个问题,就是原有的控制平面应用单元与用户空间数据平面进行相交互时,如果要适配不同的用户空间数据平面的接口,就需要对控制平面应用单元做出大量的修改,而修改控制平面应用单元不仅开发难度高,同时也会产生大量额外的工作。例如,需要完成完整的开发流程,并且需要对修改后的控制平面应用单元重新稳定。
而且,如果对控制平面应用单元进行修改,不仅没有充分利用Linux内核已经提供的稳定,完善的成果,而且开发难度高,需要重新稳定时间长,投资高。
在一些实施例中,控制平面应用单元例如:路由协议、网站(Web)服务器、动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)服务器、文件传输协议(FileTransfer Protocol,FTP)服务器、域名系统服务协议(Domain Name System,DNS)服务器等。
为了解决现有技术问题,降低对开发规模和难度,同时又能够充分利用Linux已经实现的稳定的,以及完备的网络功能,本发明实施例提供了一种数据转发方法、装置、设备及计算机存储介质。下面首先对本发明实施例所提供的数据转发方法进行介绍。
本发明实施例所提供的数据转发方法可以应用于网关设备,网关设备包括用户空间单元和内核空间单元,内核空间单元包括虚拟网络设备子单元。图1示出了本发明一个实施例提供的数据转发的流程示意图。如图1所示,该方法可以包括以下步骤:
S110、获取转发数据。
在一些实施例中,网关可以从虚拟网络设备子单元获取到需要转发到网络设备的数据报文。这些需要转发的数据报文可以是从控制平面应用单元接受数据报文,也可以是网关内部产生数据报文。
S120、通过虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送转发数据,以用于用户空间单元向网络设备发送转发数据。
具体的,可以在内核空间单元先找到与网络设备相对应的虚拟网络设备子单元,将需要转发到网络设备的数据报文发送给虚拟网络设备子单元,再通过共享内存将需要转发的数据报文发送到用户空间单元,再由用户空间单元将数据报文发送到网络设备。
通过本发明实施例提供的数据转发方法,使用在内核空间单元的虚拟网络设备子单元接收控制面服务程序发送的需要转发的转发数据,避免了为适配不同的用户空间单元接口,而需要对控制平面应用单元做出大量的修改,降低了开发难度和开发工作量。同时,通过虚拟网络设备与用户空间单元通信连接的共享内存,通过共享内存将需要转发的转发数据实时的发送到用户空间单元,能够充分利用已有的网络功能,实现与网络设备、用户空间单元以及控制平面应用单元的通信连接以及数据转发。
在一些实施例中,网关设备获取到需要转发的转发数据之前还包括建立虚拟网络设备子单元,其中,建立虚拟网络设备子单元可以包括以下步骤:首先,通过用户空间单元获取从网关设备连接的网络设备,获取网络设备的设备参数;然后,根据设备参数,在内核空间单元建立与网络设备相对应的虚拟网络设备子单元以及虚拟网络设备子单元的共享内存;以及建立虚拟网络设备子单元的共享内存与网络设备的映射关系。
作为一个具体的示例,通过用户空间单元也就是在网关设备中的用户空间数据平面,对与网关连接的网络设备的进行检测,获取网络设备的设备参数。网络设备可以是硬件网络设备,例如网卡等,网络设备还可以是非硬件网络设备,例如,虚拟专用网络(VirtualPrivate Network,VPN)、虚拟局域网(Virtual Local Area Network,VLAN)等。
作为一个具体的示例,根据获取的网络设备的设备参数,内核空间单元可以创建一个相对应的,与网络设备的设备参数一致的虚拟网络设备子单元,以及,用于虚拟网络设备子单元和用户空间单元通信连接共享内存,以实现,内核空间单元的虚拟网络设备子单元和网络设备的数据同步。
在一些实施例中,共享内存至少可以执行以下操作:向网络设备通知配置参数、接收硬件状态/统计信息、发送数据报文、接受数据报文。在一些实施例中,可选的,可以创建4块共享内存用于分别执行上述不同的操作。也可以根据用户设置,创建用户所设置的数量的共享内存,用于分别或共同实现上述操作。
作为一个具体的示例,在内核空间单元建立与网络设备相对应的虚拟网络设备子单元以及虚拟网络设备子单元的共享内存之后,用户空间单元可以获取到内核空间单元创建的共享内存,并将共享内存与网络设备的映射关系,例如将共享内存和网络设备进行绑定。
在一些实施例中,为了实现对网络设备的参数设置,在建立虚拟网络设备子单元的共享内存与网络设备的映射关系之后,还包括:接收控制平面应用单元发送的网络设备的配置参数;通过虚拟网络设备子单元,以及共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送配置参数,以用于用户空间单元向网络设备发送配置参数。
通过本发明实施例所提供数据处理方法,在实现对网络设备的配置过程中,控制平面应用单元仅需要配置内核空间单元中的虚拟网络设备子单元,虚拟网络设备子单元可以通过用户空间单元向真正的网络设备发送配置参数,实现对真正的网络设备的参数配置。
如图2所示的数据转发的结构示意图。通过在用户空间单元获取与网关设备连接的网络设备的设备参数后,在内核空间单元建立与网络设备完全一致的虚拟网络设备子单元,内核空间单元可以按照原有的通信连接支持的方式与控制平面应用单元通信连接,例如支持实现完整的TCP/IP协议栈,提供IPC机制用于与其他应用通信,例如,支持使用Netlink套接字接口。其中,在内核空间单元的创建的网络设备的映射设备是一个虚拟网络设备子单元。可以通过共享内存的方式结合用户空间单元与网络设备通信连接。完成网络设备相关的配置参数,状态参数,统计参数同步,以及完成数据报文的收发。其中,用户空间单元与网络设备之间的通信连接支持外设部件互连标准(Peripheral ComponentInterconnect,PCI)。
使用在内核空间单元的虚拟网络设备子单元接收控制面服务程序发送的需要转发的转发数据,避免了为适配不同的用户空间单元接口,而需要对控制平面应用单元做出大量的修改,降低了开发难度和开发工作量。
在一些实施例中,通过用户空间单元可以获取到网络设备的状态参数;当网络设备的状态参数发生变化时,通过虚拟网络设备子单元的共享内存向虚拟网络设备子单元发送状态参数。
具体的,对于网络设备的状态参数发生变化时,用户空间单元将状态参数通过共享内存通知内核,内核将网络设备的状态参数同步到虚拟网络设备子单元上,当需要对状态参数进行处理时,同步到虚拟网络设备子单元的状态参数会引发内核进行相应的处理。
在一些实施例中,通过用户空间单元获取网络设备接收的数据报文;通过共享内存,将数据报文发送到与接收数据报文相对应的虚拟网络设备子单元,以用于内核空间单元处理数据报文。
在一些实施例中,通过网络设备可以接收或转发需要内核处理的数据报文,当网络设备接收或转发的数据报文需要内核处理时,用户空间单元通过共享内存,将数据报文发送到与接收数据报文的网络设备相对应的虚拟网络设备子单元,虚拟网络设备子单元获取到需要转发到网络设备的数据报文,可以按照Linux的处理方式处理数据报文,例如,由内核完成处理或者通过套接字(socket)发到控制平面应用单元进行处理。
在一些实施例中,通过用户空间单元获取的数据报文还可以是转发表,可以理解的是,在本发明实施例所提供的数据转发方法中,同样也可以支持通过netlink机制获取内核空间单元的转发表更新消息,同步用户平面单元和内核空间单元的转发表的更新,以保持用户平面单元和内核空间单元转发表的一致。
在一些实施例中,通过网络设备还可以接收或转发不需要内核处理的数据报文,当网络设备接收或转发的数据报文不需要内核处理时,用户空间单元可以根据所接收到的数据报文的转发逻辑,仅在用户空间单元进行数据报文转发,不经过内核处理。
在一些实施例中,根据本发明实施例提供的数据转发方法,通过用户平面单元还可以接收虚拟网络设备子单元的删除信息;根据删除信息,删除虚拟网络设备子单元和预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系。
在一些实施例中,可选的,内核空间单元可以通过netlink机制从控制平面应用单元获知非硬件的网络设备的虚拟网络设备子单元的删除信息,然后,用户平面单元通过netlink机制获知哪些虚拟网络设备子单元的删除信息,实现虚拟网络设备子单元和非硬件的网络设备的同步。
通过本发明实施例提供的数据转发方法,用户空间单元仅仅处理数据转发相关的功能,不需要实现完整的协议栈,不需要提供IPC机制与其他网络应用交互,与各种控制平面应用单元通信连接时,完全不需要改变现有连接机制,不需要修改修改控制平面应用单元的代码,同时也大的减少了用户空间单元的代码规模和复杂度。
以上为本申请实施例提供的数据转发方法的具体实现方式。基于上述数据转发方法的具体实现方式,本申请实施例还提供了一种数据转发装置。
图3是本发明实施例提供的一种数据转发装置的结构示意图,如图3所示,数据转发装置可以应用于网关设备,网关设备包括用户空间单元和内核空间单元,内核空间单元包括虚拟网络设备子单元;数据转发装置包括:
数据获取模块301,用于获取转发数据;
转发模块302,用于通过虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送转发数据,以用于用户空间单元向网络设备发送转发数据。
在一些实施例中,数据转发装置还包括:参数获取模块,用于通过用户空间单元获取从网关设备连接的网络设备,获取网络设备的设备参数,以及,创建模块,用于根据设备参数,在内核空间单元建立与网络设备相对应的虚拟网络设备子单元以及虚拟网络设备子单元的共享内存;以及建立虚拟网络设备子单元的共享内存与网络设备的映射关系。
在一些实施例中,数据获取模块301还用于接收控制平面应用单元发送的网络设备的配置参数;转发模块302还用于通过虚拟网络设备子单元,以及共享内存与网关设备连接的网络设备的映射关系,向用户空间单元发送配置参数,以用于用户空间单元向网络设备发送配置参数。
在一些实施例中,数据获取模块301还用于通过用户空间单元获取网络设备的状态参数;当网络设备的状态参数发生变化时,转发模块302还用于通过虚拟网络设备子单元的共享内存向虚拟网络设备子单元发送状态参数。
在一些实施例中,数据获取模块301还用于通过用户空间单元获取网络设备接收的数据报文;转发模块302还用于通过共享内存,将数据报文发送到与接收数据报文相对应的虚拟网络设备子单元,以用于内核空间单元处理数据报文。
在一些实施例中,数据转发装置还包括:参数模块,用于接收虚拟网络设备删除信息;根据删除信息,删除虚拟网络设备子单元和预先建立的虚拟网络设备子单元的共享内存与网关设备连接的网络设备的映射关系。
通过本发明实施例提供的数据转发装置,使用在内核空间单元的虚拟网络设备子单元接收控制面服务程序发送的需要转发的转发数据,避免了为适配不同的用户空间单元接口,而需要对控制平面应用单元做出大量的修改,降低了开发难度和开发工作量。同时,通过虚拟网络设备与用户空间单元通信连接的共享内存,通过共享内存将需要转发的转发数据实时的发送到用户空间单元,能够充分利用已有的网络功能,实现与网络设备、用户空间单元以及控制平面应用单元的通信连接以及数据转发。
在实现对网络设备的配置过程中,控制平面应用单元仅需要配置内核空间单元中的虚拟网络设备子单元,虚拟网络设备子单元可以通过用户空间单元向真正的网络设备发送配置参数,实现对真正的网络设备的参数配置。
通过本发明实施例提供的数据转发装置,用户空间单元仅仅处理数据转发相关的功能,不需要实现完整的协议栈,不需要提供IPC机制与其他网络应用交互,与各种控制平面应用单元通信连接时,完全不需要改变现有连接机制,不需要修改修改控制平面应用单元的代码,同时也大的减少了用户空间单元的代码规模和复杂度。
可以理解的是,本发明实施例的数据转发装置,可以对应于本发明实施例提供的数据转发方法的执行主体,数据转发装置的各个模块/单元的操作和/或功能的具体细节可以参见上述本发明实施例提供的数据转发方法中的相应部分的描述,为了简洁,在此不再赘述。
图4是本发明实施例提供的一种数据转发设备的硬件结构示意图。
如图4所示,本实施例中的数据转发设备400包括输入设备401、输入接口402、中央处理器403、存储器404、输出接口405、以及输出设备406。其中,输入接口402、中央处理器403、存储器404、以及输出接口405通过总线410相互连接,输入设备401和输出设备406分别通过输入接口402和输出接口405与总线410连接,进而与数据转发设备400的其他组件连接。
具体地,输入设备401接收来自外部的输入信息,并通过输入接口402将输入信息传送到中央处理器403;中央处理器403基于存储器404中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器404中,然后通过输出接口405将输出信息传送到输出设备406;输出设备406将输出信息输出到数据转发设备400的外部供用户使用。
也就是说,图4所示的数据转发设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合实施例提供的数据转发方法。
在一个实施例中,图4所示的数据转发设备400包括:存储器404,用于存储程序;处理器403,用于运行存储器中存储的程序,以执行实施例提供的数据转发方法。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的数据转发方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种数据转发方法,其特征在于,所述方法应用于网关设备,所述网关设备包括用户空间单元和内核空间单元,所述内核空间单元包括虚拟网络设备子单元;所述方法包括:
获取转发数据;
通过所述虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与所述网关设备连接的网络设备的映射关系,向所述用户空间单元发送所述转发数据,以用于所述用户空间单元向所述网络设备发送所述转发数据;
其中,在所述获取转发数据之前,所述方法还包括:
通过所述用户空间单元获取从所述网关设备连接的网络设备,获取所述网络设备的设备参数;
根据所述设备参数,在所述内核空间单元建立与所述网络设备相对应的虚拟网络设备子单元以及所述虚拟网络设备子单元的共享内存;以及
建立所述虚拟网络设备子单元的共享内存与所述网络设备的映射关系;
其中,在所述建立所述虚拟网络设备子单元的共享内存与所述网络设备的映射关系之后,所述方法还包括:
接收控制平面应用单元发送的所述网络设备的配置参数;
通过所述虚拟网络设备子单元,以及所述共享内存与所述网关设备连接的网络设备的映射关系,向所述用户空间单元发送所述配置参数,以用于所述用户空间单元向所述网络设备发送所述配置参数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述用户空间单元获取所述网络设备的状态参数;
当所述网络设备的状态参数发生变化时,通过所述虚拟网络设备子单元的共享内存向所述虚拟网络设备子单元发送所述状态参数。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述用户空间单元获取所述网络设备接收的数据报文;
通过所述共享内存,将所述数据报文发送到与接收所述数据报文相对应的虚拟网络设备子单元,以用于所述内核空间单元处理所述数据报文。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收虚拟网络设备删除信息;
根据所述删除信息,删除所述虚拟网络设备子单元和所述预先建立的虚拟网络设备子单元的共享内存与所述网关设备连接的网络设备的映射关系。
5.一种数据转发装置,其特征在于,所述装置应用于网关设备,所述网关设备包括用户空间单元和内核空间单元,所述内核空间单元包括虚拟网络设备子单元;所述装置包括:
数据获取模块,用于获取转发数据;
转发模块,用于通过所述虚拟网络设备子单元,以及预先建立的虚拟网络设备子单元的共享内存与所述网关设备连接的网络设备的映射关系,向所述用户空间单元发送所述转发数据,以用于所述用户空间单元向所述网络设备发送所述转发数据;
其中,所述装置还包括:
参数获取模块,用于通过所述用户空间单元获取从所述网关设备连接的网络设备,获取所述网络设备的设备参数;
创建模块,用于根据所述设备参数,在所述内核空间单元建立与所述网络设备相对应的虚拟网络设备子单元以及所述虚拟网络设备子单元的共享内存;以及建立所述虚拟网络设备子单元的共享内存与所述网络设备的映射关系;
所述数据获取模块,还用于接收控制平面应用单元发送的所述网络设备的配置参数;
所述转发模块,还用于通过所述虚拟网络设备子单元,以及所述共享内存与所述网关设备连接的网络设备的映射关系,向所述用户空间单元发送所述配置参数,以用于所述用户空间单元向所述网络设备发送所述配置参数。
6.一种数据转发设备,其特征在于,所述设备包括:处理器,以及存储有计算机程序指令的存储器;
所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-4任意一项所述的数据转发方法。
7.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-4任意一项所述的数据转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423401.3A CN113691572B (zh) | 2020-05-19 | 2020-05-19 | 一种数据转发方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423401.3A CN113691572B (zh) | 2020-05-19 | 2020-05-19 | 一种数据转发方法、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113691572A CN113691572A (zh) | 2021-11-23 |
CN113691572B true CN113691572B (zh) | 2023-09-22 |
Family
ID=78575800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010423401.3A Active CN113691572B (zh) | 2020-05-19 | 2020-05-19 | 一种数据转发方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113691572B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832121B1 (en) * | 2014-12-31 | 2017-11-28 | Juniper Networks, Inc. | Next hop instruction associations for forwarding unit programming within a network device |
CN108632070A (zh) * | 2017-03-23 | 2018-10-09 | 华为技术有限公司 | 虚拟网络设备的配置方法及服务器 |
CN110149231A (zh) * | 2019-05-21 | 2019-08-20 | 优刻得科技股份有限公司 | 更新虚拟交换机的方法、装置、存储介质和设备 |
CN110875844A (zh) * | 2018-08-30 | 2020-03-10 | 丛林网络公司 | 用于虚拟执行元件的多虚拟网络接口支持 |
CN110875848A (zh) * | 2018-08-30 | 2020-03-10 | 丛林网络公司 | 用于虚拟执行元件的多个网络 |
CN111131037A (zh) * | 2019-12-27 | 2020-05-08 | 网易(杭州)网络有限公司 | 基于虚拟网关的数据传输方法、装置、介质与电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US8463980B2 (en) * | 2010-09-30 | 2013-06-11 | Microsoft Corporation | Shared memory between child and parent partitions |
US10795912B2 (en) * | 2018-03-19 | 2020-10-06 | Fortinet, Inc. | Synchronizing a forwarding database within a high-availability cluster |
-
2020
- 2020-05-19 CN CN202010423401.3A patent/CN113691572B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832121B1 (en) * | 2014-12-31 | 2017-11-28 | Juniper Networks, Inc. | Next hop instruction associations for forwarding unit programming within a network device |
CN108632070A (zh) * | 2017-03-23 | 2018-10-09 | 华为技术有限公司 | 虚拟网络设备的配置方法及服务器 |
CN110875844A (zh) * | 2018-08-30 | 2020-03-10 | 丛林网络公司 | 用于虚拟执行元件的多虚拟网络接口支持 |
CN110875848A (zh) * | 2018-08-30 | 2020-03-10 | 丛林网络公司 | 用于虚拟执行元件的多个网络 |
CN110149231A (zh) * | 2019-05-21 | 2019-08-20 | 优刻得科技股份有限公司 | 更新虚拟交换机的方法、装置、存储介质和设备 |
CN111131037A (zh) * | 2019-12-27 | 2020-05-08 | 网易(杭州)网络有限公司 | 基于虚拟网关的数据传输方法、装置、介质与电子设备 |
Non-Patent Citations (3)
Title |
---|
6LoWPAN接入Internet中数据包调度的研究与实现;耿道渠,代富江;传输技术学报;第26卷(第12期);全文 * |
Portrait Analysis of power Transmission Line for Smart Grid Based on External Data Association Fusion;Qi peng Zhang;2019 Chinese Control Conference;全文 * |
基于用户空间的云网关网络文件系统设计与实现;钱文;中国优秀硕士学位论文数据库;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113691572A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3125476B1 (en) | Service function chaining processing method and device | |
CN113301166B (zh) | 服务的调用方法及装置、存储介质、电子装置 | |
CN109768908B (zh) | 一种vxlan的配置方法、设备及系统 | |
CN105227466B (zh) | 通信处理方法和装置 | |
CN112468529B (zh) | 一种会话管理方法及设备 | |
US9467374B2 (en) | Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway | |
RU2008138577A (ru) | Сетевая система | |
US20220360526A1 (en) | Routing information publishing method, apparatus, and system | |
JP2019519146A (ja) | ルーティング確立、パケット送信 | |
CN106789993B (zh) | Tcp代理方法及装置 | |
CN111541688A (zh) | 一种兼容多协议的嵌入式系统、数据处理方法及装置 | |
US20160134522A1 (en) | Data flow processing method, device, and system | |
CN103765819B (zh) | 一种数据配置方法及网络管理服务器 | |
CN113691572B (zh) | 一种数据转发方法、装置、设备及计算机存储介质 | |
US11128558B2 (en) | Automatic routing configuration between hosts and network layer devices | |
CN114650290A (zh) | 网络连通的方法、处理装置、终端及存储介质 | |
CN107733801B (zh) | 接收和发送报文的方法及设备 | |
CN109587749A (zh) | 数据发送方法和系统 | |
EP4087162A1 (en) | Method, apparatus and system for configuring transmission pipeline | |
EP4207708A1 (en) | Method for establishing session and network device | |
CN115174654B (zh) | 一种基于FPGA和InfiniBand网络的异地通信方法及系统 | |
JP5893216B2 (ja) | Faネットワーク用lsiおよび通信装置 | |
WO2015055103A1 (zh) | 一种配置点连接信息的获取方法及装置 | |
CN106464591B (zh) | 一种mpls-tp隧道中的以太接口寻址方法、装置、控制器和网元 | |
CN117459454A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |