CN105553889A - 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 - Google Patents
一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 Download PDFInfo
- Publication number
- CN105553889A CN105553889A CN201510959906.0A CN201510959906A CN105553889A CN 105553889 A CN105553889 A CN 105553889A CN 201510959906 A CN201510959906 A CN 201510959906A CN 105553889 A CN105553889 A CN 105553889A
- Authority
- CN
- China
- Prior art keywords
- network card
- microsoft loopback
- loopback adapter
- physical network
- packet
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。本发明方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度;避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
Description
技术领域
本发明涉及计算机网络技术领域,具体涉及一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法。
背景技术
随着计算机技术以及信息网络技术的飞速发展,互联网越来越贴近人们的日常生活,已至于带给人们工作和生活的改变越来越多。互联网带来便利的同时伴随着数据量的井喷式增长,数据量快速增长的同时带来了服务器或台式机的大量的增加,随之而来的是服务器的管理成本不断的增加,同时缺乏故障恢复及灾难保护,在这种情况下出现了虚拟化技术来解决上述问题。
LXC(linuxcontainer)是linux系统下的虚拟技术的一种。
发明内容
本发明要解决的技术问题是:本发明提供一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,本发明是在lxc网桥模式下的一种物理网卡和虚拟网卡间快速收发包的一种方法。
本发明所采用的技术方案为:
一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。
所述方法的设计结构包括:1)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3)mac地址快速查找;其中:
1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡;
2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去;
3)mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。
所述方法通过在linux系统上使用lxc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。
所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希等算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。
所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。
所述方法的具体实施过程如下:
1)首先修改linux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的net_device结构体的私有数据中添加绑定的物理网卡结构体;
2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包;
3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去;
4)修改完内核代码,然后编程生成新的linux内核,将编译生成的新内核替换掉专用系统原有的linux内核。
本发明的有益效果为:
本发明方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度;避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
附图说明
图1为专用系统的物理网卡和虚拟网卡的通信示意图;
其中箭头虚线代表原有模式,箭头实线代表本发明模式。
具体实施方式
下面通过说明书附图,结合具体实施方式对本发明进一步说明:
实施例1:
如图1所示,一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。
实施例2:
在实施例1的基础上,本实施例所述方法的设计结构包括:1)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3)mac地址快速查找;其中:
1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡;
2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去;
3)mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。
实施例2:
在实施例1或2的基础上,本实施例所述方法通过在linux系统上使用lxc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。
实施例4:
在实施例3的基础上,本实施例所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希等算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。
该方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度。
实施例5:
在实施例4的基础上,本实施例所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。
该方法避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
实施例6:
在实施例5的基础上,本实施例所述方法的具体实施过程如下:
1)首先修改linux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的net_device结构体的私有数据中添加绑定的物理网卡结构体;
2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包;
3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去;
4)修改完内核代码,然后编程生成新的linux内核,将编译生成的新内核替换掉专用系统原有的linux内核。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。
2.根据权利要求1所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法的设计结构包括:1)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3)mac地址快速查找;其中:
1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡;
2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去;
3)mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。
3.根据权利要求1或2所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法通过在linux系统上使用lxc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。
4.根据权利要求3所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。
5.根据权利要求4所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。
6.根据权利要求5所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于,所述方法的具体实施过程如下:
1)首先修改linux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的net_device结构体的私有数据中添加绑定的物理网卡结构体;
2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包;
3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去;
4)修改完内核代码,然后编程生成新的linux内核,将编译生成的新内核替换掉专用系统原有的linux内核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510959906.0A CN105553889A (zh) | 2015-12-21 | 2015-12-21 | 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510959906.0A CN105553889A (zh) | 2015-12-21 | 2015-12-21 | 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105553889A true CN105553889A (zh) | 2016-05-04 |
Family
ID=55832825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510959906.0A Pending CN105553889A (zh) | 2015-12-21 | 2015-12-21 | 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553889A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020942A (zh) * | 2016-05-05 | 2016-10-12 | 四川安嵌科技有限公司 | 一种基于多系统的WiFi设备复用方法及装置 |
CN106789756A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种基于操作系统内核网桥的数据发送方法和装置 |
CN107071932A (zh) * | 2017-03-09 | 2017-08-18 | 南京耀泽电子科技有限公司 | 用于数据处理的无线网关虚拟化多通道构建及控制方法 |
CN109412864A (zh) * | 2018-11-26 | 2019-03-01 | 江苏华邦网络科技有限公司 | 一种非docker网络环境外部访问docker容器环境的方法 |
CN111030980A (zh) * | 2019-08-09 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种Linux透明网络设备平台实现方法、装置及存储介质 |
CN111209087A (zh) * | 2020-01-15 | 2020-05-29 | 南京中新赛克科技有限责任公司 | 一种基于Docker的大数据学习平台搭建方法 |
CN113791864A (zh) * | 2021-09-08 | 2021-12-14 | 国电南瑞科技股份有限公司 | 一种基于容器和微服务化功能的监控系统及其构建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272246A (zh) * | 2008-04-09 | 2008-09-24 | 西安西电捷通无线网络通信有限公司 | 一种虚网卡与物理网卡的数据安全传输方法及其系统 |
CN101873337A (zh) * | 2009-04-22 | 2010-10-27 | 电子科技大学 | 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术 |
CN102480420A (zh) * | 2010-11-29 | 2012-05-30 | 北京系统工程研究所 | 报文发送方法以及报文接收方法、装置及系统 |
-
2015
- 2015-12-21 CN CN201510959906.0A patent/CN105553889A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272246A (zh) * | 2008-04-09 | 2008-09-24 | 西安西电捷通无线网络通信有限公司 | 一种虚网卡与物理网卡的数据安全传输方法及其系统 |
CN101873337A (zh) * | 2009-04-22 | 2010-10-27 | 电子科技大学 | 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术 |
CN102480420A (zh) * | 2010-11-29 | 2012-05-30 | 北京系统工程研究所 | 报文发送方法以及报文接收方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
孙江,兰巨龙,李高鹏: "Linux环境下普适性零拷贝平台的研究与实现", 《计算机应用研究》 * |
钟明: "嵌入式linux下网卡驱动的实现与数据转发性能优化分析", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020942B (zh) * | 2016-05-05 | 2019-03-26 | 四川安嵌科技有限公司 | 一种基于多系统的WiFi设备复用方法及装置 |
CN106020942A (zh) * | 2016-05-05 | 2016-10-12 | 四川安嵌科技有限公司 | 一种基于多系统的WiFi设备复用方法及装置 |
CN106789756A (zh) * | 2016-12-26 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种基于操作系统内核网桥的数据发送方法和装置 |
WO2018121373A1 (zh) * | 2016-12-26 | 2018-07-05 | 腾讯科技(深圳)有限公司 | 基于操作系统内核网桥的数据转发方法和装置 |
US11201760B2 (en) | 2016-12-26 | 2021-12-14 | Tencent Technology (Shenzhen) Company Limited | Data forwarding method and apparatus based on operating system kernel bridge |
CN107071932B (zh) * | 2017-03-09 | 2020-10-23 | 南京耀泽电子科技有限公司 | 用于数据处理的无线网关虚拟化多通道构建及控制方法 |
CN107071932A (zh) * | 2017-03-09 | 2017-08-18 | 南京耀泽电子科技有限公司 | 用于数据处理的无线网关虚拟化多通道构建及控制方法 |
CN109412864B (zh) * | 2018-11-26 | 2021-08-10 | 江苏华邦网络科技有限公司 | 一种非docker网络环境外部访问docker容器环境的方法 |
CN109412864A (zh) * | 2018-11-26 | 2019-03-01 | 江苏华邦网络科技有限公司 | 一种非docker网络环境外部访问docker容器环境的方法 |
CN111030980A (zh) * | 2019-08-09 | 2020-04-17 | 哈尔滨安天科技集团股份有限公司 | 一种Linux透明网络设备平台实现方法、装置及存储介质 |
CN111209087A (zh) * | 2020-01-15 | 2020-05-29 | 南京中新赛克科技有限责任公司 | 一种基于Docker的大数据学习平台搭建方法 |
CN111209087B (zh) * | 2020-01-15 | 2024-01-30 | 南京中新赛克科技有限责任公司 | 一种基于Docker的大数据学习平台搭建方法 |
CN113791864A (zh) * | 2021-09-08 | 2021-12-14 | 国电南瑞科技股份有限公司 | 一种基于容器和微服务化功能的监控系统及其构建方法 |
CN113791864B (zh) * | 2021-09-08 | 2024-03-26 | 国电南瑞科技股份有限公司 | 一种基于容器和微服务化功能的监控系统及其构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553889A (zh) | 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法 | |
CN102648455B (zh) | 服务器和流控制程序 | |
US20110145471A1 (en) | Method for efficient guest operating system (os) migration over a network | |
CN104428752A (zh) | 将虚拟机流卸载至物理队列 | |
CN104246733A (zh) | 用于通用串行总线设备的数据重定向 | |
CN103733574A (zh) | 虚拟化与非虚拟化网络之间的虚拟化网关 | |
RU2014150504A (ru) | Назначение локального идентификатора устройства при связи от устройства к устройству, осуществляемой при содействии сети | |
CN108228309B (zh) | 基于虚拟机的数据包发送和接收方法及装置 | |
CN101741912A (zh) | 一种处理计算任务的方法、网络设备及分布式网络系统 | |
CN105103493A (zh) | 实现网络虚拟化的方法及相关装置和通信系统 | |
CN103905526A (zh) | 一种调度方法及服务器 | |
US20170019304A1 (en) | Method and system for virtualizing network cards on network processing platform | |
CN102035751A (zh) | 一种数据的传输方法和设备 | |
CN107133109B (zh) | 一种模块间通信的方法、装置及计算设备 | |
CN104158868B (zh) | 一种文件传输方法和管理服务器 | |
WO2018004953A1 (en) | Technologies for scalable packet reception and transmission | |
CN105162673A (zh) | 数据传输接口及方法 | |
CN112769794B (zh) | 一种数据转换方法及装置 | |
CN111405590B (zh) | 一种虚拟化网元数据流量导出方法、装置和存储介质 | |
CN104883302A (zh) | 一种数据包转发的方法、装置及系统 | |
CN204117142U (zh) | 提供主机即时切换分享通用串行总线电子设备的电子装置 | |
US10353857B2 (en) | Parallel processing apparatus and method for controlling communication | |
CN107977260A (zh) | 任务提交方法及装置 | |
CN104811431A (zh) | 基于并行协议栈实例的数据包处理方法和装置 | |
CN104184729A (zh) | 一种报文处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160504 |