本申请涉及电子技术领域,特别是涉及一种基于fpga实现的交换机。
背景技术:
随着计算机技术的发展,软件定义网络(softwaredefinednetwork,sdn)应运而生。sdn网络可以利用软件实现将网络设备的控制面与数据面分离开来,从而实现对网络流量的灵活控制。
可以理解的是,在网络中,交换机是一种很重要网元。但是,基于软件实现的交换机,其交换效率受制于中央处理器(centralprocessingunit,cpu)的性能,从而使得基于软件实现的交换机的性能不好。
技术实现要素:
本申请所要解决的技术问题是基于软件实现的交换机的性能不好,提供一种基于硬件描述语言实现交换机的方法及装置。
本申请实施例提供了一种基于fpga实现的交换机,所述交换机包括:
存储模块,用于存储交换机的配置信息;
接口模块,用于接收服务器发送的第一数据;
交换模块,用于根据所述配置信息确定所述第一数据的转发端口,并利用所述转发端口转发所述第一数据。
可选的,所述配置信息包括:
流表信息。
可选的,所述根据所述配置信息确定所述第一数据的转发端口,包括:
根据所述流表信息确定所述第一数据的转发端口。
可选的,所述接收服务器发送的第一数据,包括:
接收所述服务器通过高速串行计算机扩展总线标准pcie接口发送的第一数据。
可选的,所述服务器中创建有虚拟机和为所述虚拟机提供网络服务的虚拟网卡。
可选的,所述接口模块,还用于向所述服务器发送第二数据。
可选的,所述配置信息还包括:
所述交换机的端口拓扑信息和/或所述存储模块的容量信息。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例提供的基于fpga实现的交换机,包括:存储模块,用于存储交换机的配置信息;接口模块,用于接收服务器发送的第一数据;交换模块,用于根据所述配置信息确定所述第一数据的转发端口,并利用所述转发端口转发所述第一数据。现场可编程门阵列(fieldprogrammablegatearray,fpga)是一种半定制电路,上述存储模块、接口模块和交换模块的处理逻辑可以对应利用硬件描述语言所完成的电路设计,经过简单的综合与布线形成的电路。由于电路对第一数据的处理速率高于cpu对第一数据的处理速率。因此,利用本申请实施例提供的方案,可以提高交换机的性能,从而解决现有技术中基于软件实现的交换机的性能不好的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于fpga实现的交换机的结构示意图;
图2为本申请实施例提供的一种fpga板卡的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的发明人经过研究发现,现有技术中,基于软件实现的交换机,其交换效率受制于中央处理器(centralprocessingunit,cpu)的性能,从而使得基于软件实现的交换机的性能不好。例如,对数据的转发效率低,从而导致数据传输的时延比较大。
本申请的发明人还发现,fpga是一种半定制电路,可以通过硬件描述语言例如vhdl或者verilog进行编程,得到具有交换机功能的电路。而电路对数据的处理速率比cpu对数据的处理速率高。
鉴于此,本申请实施例提供一种基于fpga实现的交换机,包括:存储模块,用于存储交换机的配置信息;接口模块,用于接收服务器发送的第一数据;交换模块,用于根据所述配置信息确定所述第一数据的转发端口,并利用所述转发端口转发所述第一数据。上述存储模块、接口模块和交换模块的处理逻辑可以对应利用硬件描述语言所完成的电路设计,经过简单的综合与布线形成的电路。由于电路对第一数据的处理速率高于cpu对第一数据的处理速率。因此,利用本申请实施例提供的方案,可以提高交换机的性能,从而解决现有技术中基于软件实现的交换机的性能不好的问题。
下面结合附图,详细说明本申请的各种非限制性实施方式。
参见图1,该图为本申请实施例提供的一种基于fpga实现的交换机的结构示意图。
本申请实施例提供的基于fpga实现的交换机100,例如可以包括存储模块110、接口模块120和交换模块130。
其中,所述存储模块110,用于存储交换机的配置信息。
所述接口模块120,用于接收服务器发送的第一数据。
所述交换模块130,用于根据所述配置信息确定所述第一数据的转发端口,并利用所述转发端口转发所述第一数据。
在本申请实施例中,所述交换机的配置信息,是指,与所述交换机的属性以及实现交换机的数据交换功能的信息。
需要说明的是,本申请实施例不具体限定所述交换机的配置信息。在本申请实施例的一种可能的实现方式中,所述交换机的配置信息,例如可以包括流表信息。
需要说明的是,本申请实施例不具体贤弟所述流表信息,所述流表信息例如可以包括若干个流表和所述若干个流表各自对应的流表项。其中,一个流表项可以对应一个数据转发规则。
本申请实施例不具体限定服务器,所述服务器例如可以为数据中心的服务器。
在本申请实施例的一种可能的实现方式中,所述服务器中可以创建有虚拟机和为所述虚拟机提供网络服务的虚拟网卡。所述虚拟机可以利用所述虚拟网卡与所述交换机进行数据交互。
可以理解的是,在实际应用中,所述服务器可以为不同用户创建不同的虚拟机。也就是说,所述服务器中可以创建多个虚拟机。本申请实施例不具体限定所述虚拟机的数目,所述虚拟机的数据可以根据实际情况确定。
需要说明的是,在本申请实施例中,所述交换机与所述服务器之间通过物理接口进行通信。在本申请实施例的一种实现方式中,所述物理接口可以为高速串行计算机扩展总线标准(peripheralcomponentinterconnectexpress,pci-express)接口。
也就是说,在本申请实施例的一种实现方式中,所述接口模块为pcie接口模块,所述接口模块接收所述服务器发送的第一数据在具体实现时,可以为:接收所述服务器通过pcie接口发送的第一数据。
本申请实施例对所述第一数据不做限定,所述第一数据例如可以为报文数据。
需要说明的是,在本申请实施例中,所述交换机与服务器进行通信例如,所述交换机通过所述接口模块接收所述服务器发送的第一数据时,可以遵循相应的通信协议,例如,可以遵循标准的sdn网络南北向接口协议openflow协议。
交换机利用接口模块120接收到所述第一数据之后,即可以从所述存储模块110中读取所述配置信息,从而利用该配置信息确定所述第一数据的转发端口,进一步地,利用该转发端口转发该第一数据。
需要说明的是,在本申请实施例中,转发所述第一数据时,例如可以对所述第一数据进行封装,将所述第一数据封装成满足相应的通信协议标准要求的帧格式,然后将封装后的第一数据转发出去。
如前文,所述配置信息可以包括流表信息。在本申请实施例的一种可能的实现方式中,所述根据所述配置信息确定所述第一数据的转发端口在具体实现时,可以为:根据所述流表信息确定所述第一数据的转发端口。
由此可见,本申请实施例提供的基于fpga实现的交换机,包括:存储模块、接口模块和交换模块。上述存储模块、接口模块和交换模块的处理逻辑可以对应利用硬件描述语言所完成的电路设计,经过简单的综合与布线形成的电路。由于电路对第一数据的处理速率高于cpu对第一数据的处理速率。因此,利用本申请实施例提供的方案,可以提高交换机的性能,从而解决现有技术中基于软件实现的交换机的性能不好的问题。
除此之外,基于fpga实现的软件定义网络交换机,借助fpga可编程器件可重构的灵活性,可以实现对交换机的在线更新和扩展,大大提高网络交换机的可用性。
而且,上述基于fpga实现的交换机可以体现为fpga板卡,fpga板卡可以通过pcie插槽插入到服务器上,与服务器构成一体,交换机与服务器之间的数据传输时延小,数据传输效率高。
参见图2,该图为本申请实施例提供的一种fpga板卡的结构示意图。
在在本申请实施例中,当所述交换机体现为fpga板卡时,所述fpga板卡上可以包括一个fpga芯片210,以实现上述存储模块110、接口模块120和交换模块130的功能,所述fpga板卡上还可以包括所述fpga的外围电路220,例如外围电路例如可以包括供电电路、支持openflow协议的芯片等。
需要说明的是,本申请实施例对所述外围电路220不做具体限定,所述外围电路可以根据实际情况具体确定。
可以理解的是,所述交换机可以利用所述接口模块120与服务器之间进行数据交互。因此,在本申请实施例的一种可能的实现方式中,所述接口模块120除了用于接收服务器发送的第一数据之外,还可以用于向所述服务器发送第二数据。
与所述第一数据类似,本申请实施例对所述第二数据也不做限定,所述第二数据例如可以为报文数据。
如前文,所述交换机的配置信息,是指,与所述交换机的属性以及实现交换机的数据交换功能的信息。在本申请实施例的一种可能的实现方式中,所述交换机的配置信息除了流表信息之外,还可以包括交换机的端口拓扑信息和/或所述存储模块的容量信息。
其中,所述交换机的端口拓扑信息例如可以为所述交换机的端口与其他设备例如路由器之间的连接信息。
所述存储模块的容量信息例如可以包括所述存储模块的总容量以及所述存储模块的剩余容量等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。