一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法

文档序号:9790984阅读:956来源:国知局
一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法
【技术领域】
[0001]本发明涉及计算机网络技术领域,具体涉及一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法。
【背景技术】
[0002]随着计算机技术以及信息网络技术的飞速发展,互联网越来越贴近人们的日常生活,已至于带给人们工作和生活的改变越来越多。互联网带来便利的同时伴随着数据量的井喷式增长,数据量快速增长的同时带来了服务器或台式机的大量的增加,随之而来的是服务器的管理成本不断的增加,同时缺乏故障恢复及灾难保护,在这种情况下出现了虚拟化技术来解决上述问题。
[0003]LXCdinux container)是Iinux系统下的虚拟技术的一种。

【发明内容】

[0004]本发明要解决的技术问题是:本发明提供一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,本发明是在Ixc网桥模式下的一种物理网卡和虚拟网卡间快速收发包的一种方法。
[0005]本发明所采用的技术方案为:
一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。
[0006]所述方法的设计结构包括:I)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3)mac地址快速查找;其中:
1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡;
2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去;
3 )mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。
[0007]所述方法通过在Iinux系统上使用Ixc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。
[0008]所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希等算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。
[0009]所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。
[0010]所述方法的具体实施过程如下:
1)首先修改Iinux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的ne t_de V i ce结构体的私有数据中添加绑定的物理网卡结构体;
2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包;
3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去;
4)修改完内核代码,然后编程生成新的Iinux内核,将编译生成的新内核替换掉专用系统原有的Iinux内核。
[0011]本发明的有益效果为:
本发明方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度;避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
【附图说明】
[0012]图1为专用系统的物理网卡和虚拟网卡的通信示意图;
其中箭头虚线代表原有模式,箭头实线代表本发明模式。
【具体实施方式】
[0013]下面通过说明书附图,结合【具体实施方式】对本发明进一步说明:
实施例1:
如图1所示,一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。
[0014]实施例2:
在实施例1的基础上,本实施例所述方法的设计结构包括:1)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3)mac地址快速查找;其中:
1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡;
2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去;
3 )mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。
[0015]实施例2:
在实施例1或2的基础上,本实施例所述方法通过在Iinux系统上使用Ixc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。
[0016]实施例4:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1