CN101645832A - 一种基于fpga的虚拟机网络数据包处理方法 - Google Patents
一种基于fpga的虚拟机网络数据包处理方法 Download PDFInfo
- Publication number
- CN101645832A CN101645832A CN200910083646A CN200910083646A CN101645832A CN 101645832 A CN101645832 A CN 101645832A CN 200910083646 A CN200910083646 A CN 200910083646A CN 200910083646 A CN200910083646 A CN 200910083646A CN 101645832 A CN101645832 A CN 101645832A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data packets
- packet
- fpga
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA硬件的虚拟机网络数据包处理方法,使用FPGA硬件对数据包进行卸载过滤,将数据包从网卡的PHY传送给MAC和网络滤波引擎,MAC和网络滤波引擎对数据包进行过滤和分派,将同虚拟机编号的数据包存放到相应内存队列中,协议处理器对内存队列中的数据包进行卸载过滤,将同队列中数据包按端口号、IP地址、线程序号重新排列、整合成大数据包,并将大数据包存放到内存的大包队列中,当内存大包队列中的大数据包达到预定长度后,DMA控制器将大数据包通过PCIe传给虚拟机;本方法将数据包卸载过滤工作放到硬件中完成,完全解放了CPU,减少CPU资源占用,同时由于硬件处理速度远高于软件处理速度,大大提高了网络吞吐速度,缩短了数据处理的响应时间,减少丢包情况的出现。
Description
技术领域
本实用新型提供了一种网络数据包的处理方法,具体涉及一种基于FPGA硬件的虚拟机网络数据包处理方法。
技术背景
在虚拟机网络应用领域,传输给不同虚拟机的数据包绝大部分都是1.5KB左右的小数据包,这些数据包最终的目的地是操作***中不同端口的应用程序,应用程序收到每个数据包都要进行响应来处理这个数据包。为了减少应用程序的响应次数,软件中将序号连续的同一个端口的数据包组合成一个大的数据包,然后再交给应用程序进行响应处理。但在每一个操作***中会同时存在几个甚至几十上百个应用程序在同时工作,而在虚拟机网络环境下,又存在几十甚至上百个操作***。这样,为了组合这些大包需要消耗大量的CPU资源,由于CPU资源大量被消耗,也使得数据包的响应时间增长,通讯性能降低。尤其是在10G以太网逐渐普及的今天,CPU对虚拟机网络中的数据包组合大包已经成为网络通讯的瓶颈。
发明内容
为了解决上述缺点,降低CPU的使用率和数据包响应时间,本发明提供了一种基于FPGA的虚拟机网络数据包处理方法,在网卡上设有FPGA,所述FPGA包括:MAC模块、网络滤波引擎、协议处理器、内存模块、描述器引擎、DMA控制器、PCIe模块、flash模块;特征在于,所述内存模块内创建一组原数据包队列和一组新数据包队列,所述原数据包队列给个虚拟机划分一个接收区,所述新数据打包队列给每个虚拟机划分一个接收区,所述方法采用如下步骤:
A、网卡将接收的数据包由网卡的物理层端口传给所述MAC模块和网络滤波引擎。
B、所述MAC模块和网络滤波引擎对接收到的数据包进行过滤和派分,所述MAC模块过滤出数据包的虚拟机编号,所述网络滤波引擎按照虚拟机编号对接收到的数据包进行分派,将同虚拟机编号的数据包存放到内存模块的原数据包队列的相应虚拟机接收区中。
C、所述协议处理器对内存模块的原数据包收队列中数据包进行卸载过滤,卸载过滤出所述数据包的端口号、IP地址、线程序号,将所述原数据包队列中同一虚拟机接收区内的数据包根据端口号、IP地址、线程序号信息重新排列整合,并将整合后的新数据包存放所述内存模块的新数据包队列的相应虚拟机接收区中。
D、当所述内存模块的新数据包队列中的新数据包数到达预定长度数目后,所述DMA控制器将所述新数据包通过PCIe模块上传给相应的虚拟机。
本发明的进一步优选技术方案为:所述基于FPGA的虚拟机网络数据包处理方法中的网络滤波引擎还连接有SMBus,由SMBus对FPGA实现远程控制。
本发明的进一步优选技术方案为:所述基于FPGA的虚拟机网络数据包处理方法中的Flash模块与PCIe模块连接,所述FPGA的初始配置信息存放在Flash模块中。
本发明的进一步优选技术方案为:所述基于FPGA的虚拟机网络数据包处理方法中的FPGA的内存模块采用DDR2存储器。
本发明的进一步优选技术方案为:所述基于FPGA的虚拟机网络数据包处理方法中的Flash模块采用EEPROM存储器。
本发明的有益效果:利用FPGA硬件快速、高效的特点,将数据包卸载过滤的工作放到FPGA内部完成,完全解放了CPU的操作,降低了CPU的资源占用,同时由于硬件级别的处理速度远高于软件层次的处理速度,所以大大提高了网络吞吐的速度,同时缩短了数据的响应时间,提高数据包传输速度,避免了由于数据包处理响应时间过长出现的丢包情况,提高了通讯性能,尤其在虚拟机应用网络中大大节省了***资源的浪费,提高虚拟机网络中整体的数据处理速率。
附图及附图说明
图1本发明中FPGA内部功能模块结构示意图;
图2本发明方法与现有技术的效果对比图。
图3本发明中FPGA的内存模块分区示意图
具体实施方式
本发明在现有技术的基础上利用FPGA硬件快速、高效的特点,将数据包卸载过滤的工作直接放到FPGA内部完成的思路,使用FPGA内部逻辑,对接收到的数据包按照不同的端口、IP地址等信息进行重新排序,将满足条件的数据包放到同一个数据队列中,到达一定数目的数据长度后,上传给相应的虚拟机。
如图1所示,本发明提供一种基于FPGA的虚拟机网络数据包处理方法,在网卡上设置FPGA,FPGA包括:MAC模块、网络滤波引擎、协议处理器、内存模块、描述器引擎、DMA控制器、PCIe模块、Flash模块;如图3所示,在内存模块内创建一组原数据包队列和一组新数据包队列,原数据包队列给每个虚拟机划分一个接收区,新数据打包队列给每个虚拟机划分一个接收区。
其中A、首先网卡将接收的数据包由网卡的物理层端口传给MAC模块和网络滤波引擎。
B、MAC模块和网络滤波引擎对接收到的数据包进行过滤和派分,MAC模块过滤出数据包的虚拟机编号,网络滤波引擎按照虚拟机编号对接收到的数据包进行分派,将同虚拟机编号的数据包存放到内存模块的原数据包队列的相应虚拟机接收区中。
C、协议处理器对内存模块的原数据包收队列中数据包进行卸载过滤,卸载过滤出所述数据包的端口号、IP地址、线程序号,将所述原数据包队列中同一虚拟机接收区内的数据包根据端口号、IP地址、线程序号信息重新排列整合,并将整合后的新数据包存放到内存模块的新数据包队列的相应虚拟机接收区中。
D、当所述内存模块的新数据包队列中的新数据包数到达预定长度数目后,所述DMA控制器将所述新数据包通过PCIe模块上传给相应的虚拟机。
FPGA的网络滤波引擎还连接有SMBus(System Management Bus),由SMBus对FPGA实现远程控制,Flash模块与PCIe模块连接,FPGA的初始配置信息存放在Flash模块中,本发明的FPGA的内存模块可采用DDR2存储器,Flash模块可采用EEPROM存储器。
如图2所示,是本发明与现有技术的效果对比图,实心柱表示有硬件大包卸载的吞吐率,空心柱表示没有硬件大包卸载的吞吐率;实线表示有硬件大包卸载的CPU利用率,虚线表示没有硬件大包卸载的CPU利用率。从图2中可以看出,在有FPGA硬件的情况下,网络的吞吐率提高了近100%,而CPU的利用率却下降为原来的1/3。
Claims (5)
1、一种基于FPGA的虚拟机网络数据包处理方法,在网卡上设有FPGA,所述FPGA包括:MAC模块、网络滤波引擎、协议处理器、内存模块、描述器引擎、DMA控制器、PCIe模块、flash模块;特征在于,所述内存模块内创建一组原数据包队列和一组新数据包队列,所述原数据包队列给每个虚拟机划分一个接收区,所述新数据打包队列给每个虚拟机划分一个接收区,所述方法采用如下步骤:
A、网卡将接收的数据包由网卡的物理层端口传给所述MAC模块和网络滤波引擎;
B、所述MAC模块和网络滤波引擎对接收到的数据包进行过滤和派分,所述MAC模块过滤出数据包的虚拟机编号,所述网络滤波引擎按照虚拟机编号对接收到的数据包进行分派,将同虚拟机编号的数据包存放到内存模块的原数据包队列的相应虚拟机接收区中;
C、所述协议处理器对内存模块的原数据包收队列中数据包进行卸载过滤,卸载过滤出所述数据包的端口号、IP地址、线程序号,将所述原数据包队列中同一虚拟机接收区内的数据包根据端口号、IP地址、线程序号信息重新排列整合,并将整合后的新数据包存放到所述内存模块的新数据包队列的相应虚拟机接收区中;
D、当所述内存模块的新数据包队列中的新数据包数到达预定长度数目后,所述DMA控制器将所述新数据包通过PCIe模块上传给相应的虚拟机。
2、如权利要求1所述的一种基于FPGA的虚拟机网络数据包处理方法,其特征在于,所述网络滤波引擎还连接有SMBus,由SMBus对FPGA实现远程控制。
3、如权利要求1所述的一种基于FPGA的虚拟机网络数据包处理方法,其特征在于,所述Flash模块与PCIe模块连接,所述FPGA的初始配置信息存放在Flash模块中。
4、如权利要求1所述的一种基于FPGA的虚拟机网络数据包处理方法,其特征在于:所述FPGA的内存模块采用DDR2存储器。
5、如权利要求3所述的一种基于FPGA的虚拟机网络数据包处理方法,其特征在于:所述Flash模块采用EEPROM存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910083646XA CN101645832B (zh) | 2009-05-07 | 2009-05-07 | 一种基于fpga的虚拟机网络数据包处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910083646XA CN101645832B (zh) | 2009-05-07 | 2009-05-07 | 一种基于fpga的虚拟机网络数据包处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101645832A true CN101645832A (zh) | 2010-02-10 |
CN101645832B CN101645832B (zh) | 2011-09-28 |
Family
ID=41657556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910083646XA Active CN101645832B (zh) | 2009-05-07 | 2009-05-07 | 一种基于fpga的虚拟机网络数据包处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101645832B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185672A (zh) * | 2011-03-02 | 2011-09-14 | 浪潮(北京)电子信息产业有限公司 | 进程间通信方法和高速网络设备 |
CN103338230A (zh) * | 2013-06-03 | 2013-10-02 | 广州天宁信息技术有限公司 | 一种业务数据的处理方法及*** |
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
WO2016004781A1 (zh) * | 2014-07-11 | 2016-01-14 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
CN105260332A (zh) * | 2015-09-09 | 2016-01-20 | 北京三未信安科技发展有限公司 | 一种对cpld数据包进行有序存储的方法及*** |
CN108540982A (zh) * | 2017-03-06 | 2018-09-14 | 上海诺基亚贝尔股份有限公司 | 用于虚拟基站的通信方法和设备 |
CN108885566A (zh) * | 2016-03-31 | 2018-11-23 | 日本电气株式会社 | 网络***中的控制方法、控制设备以及服务器 |
WO2020029619A1 (zh) * | 2018-08-07 | 2020-02-13 | 华为技术有限公司 | 数据处理的方法、设备和服务器 |
US10802870B2 (en) | 2013-12-31 | 2020-10-13 | Huawei Technologies Co., Ltd. | Virtual machine live migration method, virtual machine memory data processing method, server, and virtual machine system |
CN113810791A (zh) * | 2021-09-22 | 2021-12-17 | 浙江锐文科技有限公司 | 一种提高智能网卡/dpu网络遥测技术性能的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398769B (zh) * | 2008-10-28 | 2012-09-05 | 华为技术有限公司 | 一种对操作***透明的处理器资源整合利用方法 |
-
2009
- 2009-05-07 CN CN200910083646XA patent/CN101645832B/zh active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185672A (zh) * | 2011-03-02 | 2011-09-14 | 浪潮(北京)电子信息产业有限公司 | 进程间通信方法和高速网络设备 |
CN103338230A (zh) * | 2013-06-03 | 2013-10-02 | 广州天宁信息技术有限公司 | 一种业务数据的处理方法及*** |
CN103338230B (zh) * | 2013-06-03 | 2016-03-30 | 广州天宁信息技术有限公司 | 一种业务数据的处理方法及*** |
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
CN104753813B (zh) * | 2013-12-27 | 2018-03-16 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
US10802870B2 (en) | 2013-12-31 | 2020-10-13 | Huawei Technologies Co., Ltd. | Virtual machine live migration method, virtual machine memory data processing method, server, and virtual machine system |
US10511479B2 (en) | 2014-07-11 | 2019-12-17 | Huawei Technologies Co., Ltd. | Service deployment method and network functions acceleration platform |
WO2016004781A1 (zh) * | 2014-07-11 | 2016-01-14 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
CN105306241A (zh) * | 2014-07-11 | 2016-02-03 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
US10979293B2 (en) | 2014-07-11 | 2021-04-13 | Huawei Technologies Co., Ltd. | Service deployment method and network functions acceleration platform |
CN105306241B (zh) * | 2014-07-11 | 2018-11-06 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
CN105260332A (zh) * | 2015-09-09 | 2016-01-20 | 北京三未信安科技发展有限公司 | 一种对cpld数据包进行有序存储的方法及*** |
CN105260332B (zh) * | 2015-09-09 | 2018-04-20 | 北京三未信安科技发展有限公司 | 一种对cpld数据包进行有序存储的方法及*** |
CN108885566A (zh) * | 2016-03-31 | 2018-11-23 | 日本电气株式会社 | 网络***中的控制方法、控制设备以及服务器 |
CN108540982A (zh) * | 2017-03-06 | 2018-09-14 | 上海诺基亚贝尔股份有限公司 | 用于虚拟基站的通信方法和设备 |
CN108540982B (zh) * | 2017-03-06 | 2021-10-22 | 上海诺基亚贝尔股份有限公司 | 用于虚拟基站的通信方法和设备 |
WO2020029619A1 (zh) * | 2018-08-07 | 2020-02-13 | 华为技术有限公司 | 数据处理的方法、设备和服务器 |
US11636062B2 (en) | 2018-08-07 | 2023-04-25 | Huawei Technologies Co., Ltd. | Data processing method and device, and server |
CN113810791A (zh) * | 2021-09-22 | 2021-12-17 | 浙江锐文科技有限公司 | 一种提高智能网卡/dpu网络遥测技术性能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101645832B (zh) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101645832B (zh) | 一种基于fpga的虚拟机网络数据包处理方法 | |
CN207683370U (zh) | 一种基于菊花链式级联通讯的电动汽车电池管理*** | |
JP5640234B2 (ja) | マネージド・ネットワークでのレイヤ2のパケット集約及び断片化 | |
CN105577567A (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN101227402B (zh) | 聚合链路流量分担方法及装置 | |
CN103078895B (zh) | 一种基于mcf52233芯片的工业以太网多功能双串口服务器 | |
CN106375175A (zh) | 一种汽车诊断刷写电子控制单元的方法及*** | |
CN101873269B (zh) | 数据转发设备和端口缓存的分配方法 | |
CN101599966A (zh) | 一种多虚拟机应用的数据过滤方法 | |
CN1838011A (zh) | 基于can总线的分布式控制网络智能管理装置及管理方法 | |
CN104572574A (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
CN101707544A (zh) | E1信道多向网桥透传装置及方法 | |
CN106657029A (zh) | 一种基于白名单实现多网口共享ip地址的冗余通信方法 | |
CN104767697A (zh) | 一种航空全双工交换式以太网控制器及其控制方法 | |
CN102811152B (zh) | 一种多主总线网络通讯实时交易数据交换实现方法 | |
CN104348783B (zh) | 一种多联机***内外机多种协议快速通信的方法及装置 | |
CN114070758A (zh) | 一种基于sdn网络的流表优化方法及装置 | |
CN115061973A (zh) | 一种基于非对称多处理模式的网卡映射方法及设备 | |
CN203590251U (zh) | 基于串行RapidIO总线的FlexRay控制*** | |
CN110995507B (zh) | 一种网络加速控制器及方法 | |
CN100469055C (zh) | 转发报文的处理方法及处理装置 | |
CN107957971A (zh) | 一种基于fpga的多处理器之间的通信***及通信方法 | |
CN103874241A (zh) | 支持各种射频通讯融合工作的网关 | |
CN102843380A (zh) | 一种解决基于modbus的串口通信瓶颈的方法 | |
CN105847294A (zh) | 基于w5500的高频静电除尘电源***通讯协议转换器及通讯方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220727 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |