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

文档序号:9790984阅读:来源:国知局
在实施例3的基础上,本实施例所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希等算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。
[0017]该方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度。
[0018]实施例5:
在实施例4的基础上,本实施例所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。
[0019]该方法避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
[0020]实施例6:
在实施例5的基础上,本实施例所述方法的具体实施过程如下:
1)首先修改Iinux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的ne t_de V i ce结构体的私有数据中添加绑定的物理网卡结构体;
2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包;
3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去;
4)修改完内核代码,然后编程生成新的Iinux内核,将编译生成的新内核替换掉专用系统原有的Iinux内核。
[0021]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。2.根据权利要求1所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法的设计结构包括:I)物理网卡登记虚拟网卡模块、2)虚拟网卡登记其寄生物理网卡模块、3 )mac地址快速查找;其中: 1)物理网卡登记虚拟网卡模块,基于虚拟网卡绑定在物理网卡上以及虚拟网卡接收到的网络数据包来自物理网卡的特点,设计物理网卡记录其上的虚拟网卡,以便于物理网卡接收到的数据包能够快速传递到虚拟网卡; 2)虚拟网卡登记其寄生物理网卡模块,虚拟网卡的网络数据包是经过物理网卡发送出去的,设计虚拟网卡记录对应的物理网卡,以便于虚拟网卡要发送的数据包能够快速通过物理网卡发送出去; 3)mac地址快速查找,通过mac地址快速查找到虚拟网卡,以便虚拟网卡对应的驱动程序快速处理数据报文。3.根据权利要求1或2所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法通过在Iinux系统上使用Ixc容器的网桥模式,创建容器在物理网卡上添加虚拟网卡时,将虚拟网卡的信息添加到物理网卡的队列中,同时将物理网卡的信息添加到虚拟网卡中,并使用哈希队列使得通过MAC地址能够在物理网卡的队列中快速查找到虚拟网卡的信息。4.根据权利要求3所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法在专用系统上物理网卡从网络接收到数据包后,根据数据包的目标mac地址通过哈希算法快速查找到虚拟网卡,然后调用虚拟网卡的驱动接收函数将数据包快速上传到网络协议栈的上层进行处理。5.根据权利要求4所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于:所述方法当虚拟网卡需要向网络上发送数据包时,首先在虚拟网卡的私有数据找到物理网卡,然后调用物理网卡的驱动程序将数据包发送到网络上。6.根据权利要求5所述的一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,其特征在于,所述方法的具体实施过程如下: 1)首先修改Iinux内核源码,在物理网卡的net_device的结构体的私有数据中添加虚拟网卡的哈希队列,在虚拟网卡的ne t_de V i ce结构体的私有数据中添加绑定的物理网卡结构体; 2)修改物理网卡接收数据包的函数,当接收到数据包时判断物理网卡是否处于网桥模式下,若处于网桥模式下,则根据数据的目的mac快速查找虚拟网卡,然后调用虚拟网卡驱动的接收函数进行接收数据包; 3)修改虚拟网卡的发送函数,若将数据包发送到网络上时,则在私有数据中查找物理网卡,然后调用物理网卡驱动的发送函数将数据包发送出去; 4)修改完内核代码,然后编程生成新的Iinux内核,将编译生成的新内核替换掉专用系统原有的Iinux内核。
【专利摘要】本发明公开了一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法,所述方法通过修改内核网络协议栈的代码,使数据包在收发时绕过网桥模块的处理,直接在物理网卡和虚拟网卡之间进行数据包的传递,在网桥创建时分别将物理网卡和虚拟网卡进行对应,收发数据包时根据mac地址快速传递。本发明方法避免了正常网桥模式下,物理网卡接收到数据包后首先传递给网桥,网桥再将数据包发送给虚拟网卡,然后网桥再进行底层接收的复杂的过程,能够提高物理网卡传递到虚拟网卡的速度;避免了正常网桥模式下,虚拟网卡传递给物理网卡的过程中需要经过网桥的处理的过程,从而提高了虚拟网卡传递到物理网卡的速度。
【IPC分类】H04L12/935
【公开号】CN105553889
【申请号】CN201510959906
【发明人】王栋
【申请人】浪潮集团有限公司
【公开日】2016年5月4日
【申请日】2015年12月21日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1