CN102137169B - 一种绑定物理网口的方法、网卡及通信*** - Google Patents

一种绑定物理网口的方法、网卡及通信*** Download PDF

Info

Publication number
CN102137169B
CN102137169B CN201110033471.9A CN201110033471A CN102137169B CN 102137169 B CN102137169 B CN 102137169B CN 201110033471 A CN201110033471 A CN 201110033471A CN 102137169 B CN102137169 B CN 102137169B
Authority
CN
China
Prior art keywords
internet ports
physical internet
physical
network interface
ports
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.)
Active
Application number
CN201110033471.9A
Other languages
English (en)
Other versions
CN102137169A (zh
Inventor
曾云刚
彭林
张忠军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201110033471.9A priority Critical patent/CN102137169B/zh
Publication of CN102137169A publication Critical patent/CN102137169A/zh
Priority to PCT/CN2012/070129 priority patent/WO2012100671A1/zh
Priority to EP12739728.9A priority patent/EP2568690B1/en
Priority to US13/711,411 priority patent/US8902731B2/en
Application granted granted Critical
Publication of CN102137169B publication Critical patent/CN102137169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种绑定物理网口的方法、网卡及通信***,其中,所述方法包括:创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;将多个需要绑定的物理网口添加到创建的所述虚端口;当所述虚端口中的物理网口通信正常时,确定为通信正常的物理网口为可用物理网口;当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发。通过本发明实施例,能够实现对物理网口进行二次绑定,从而更好地更好地满足业务需求。

Description

一种绑定物理网口的方法、网卡及通信***
技术领域
本发明涉及通信技术领域,特别涉及一种绑定物理网口的方法、网卡及通信***。
背景技术
在通信领域中,为了提高网络质量以及业务的可靠性和带宽,常常将通信设备的多个物理网口在逻辑上绑定起来作为一个网络设备使用。
参见图1,为现有技术中进行网口绑定的示意图,整个***从逻辑功能上包括两个层次:应用层以及物理层。其中,物理层包含多个物理网卡(如图1中的物理网卡0、物理网卡1),每个物理网卡上都有一些物理网口(如物理网卡0上有物理网口0、1),这里的物理网口并不仅仅表示网卡上与其他物理器件进行连接的那部分接口器件,还包括与其数据处理的功能模块(如PHY芯片),可以将这里的“物理网口”认为是一个位于网卡上具有数据处理能力的功能模块,对应着一路数据通道。
网卡中的每个网口在应用层(如操作***)通过驱动及相应软件的处理被虚拟成一个虚拟网卡(这里用Eth加数字标号表示),例如,物理网口0被虚拟成Eth0,物理网口2被虚拟成Eth2。
物理网口被虚拟成虚拟网卡后,便可以通过一定绑定策略来将这些虚拟网卡绑定成一个网络设备(该网络设备图中未示出)。由于这里每个虚拟网卡都对应着一个物理网口,因此,“对虚拟网卡进行绑定”也可以认为是“对物理网口进行绑定”,在这里并不对两种表述进行严格区分。
通过将多个物理网口进行绑定,可以方便应用层进行统一处理,实现负载均衡以及冗余备份。
发明人在实现本发明过程中,发现现有技术至少存在如下缺点:
在现有技术中,应用层的绑定只能对网口进行一次绑定,例如,采用负载均衡模式进行绑定时,就不能够再使用冗余备份的模式。而在实际应用中,为了满足更好的业务需要,往往需要能够对网口进行二次绑定,例如,对两组网口实现冗余备份,每组内的多个网口又可以实现负载均衡。因此,由于现有技术无法实现二次绑定的要求,从而不能更好地满足业务需求。
发明内容
为了能够实现二次绑定的要求以及更好地满足业务需求,本发明提供了一种绑定物理网口的方法、网卡及通信***。所述技术方案如下:
一种绑定物理网口的方法,所述方法包括:
创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;
将多个需要绑定的物理网口添加到创建的所述虚端口;
当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;
当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
一种网卡,所述网卡包括:
创建模块,用于创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;
添加模块,用于将多个需要绑定的物理网口添加到创建的所述虚端口;
确定模块,用于当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;
报文收发模块,用于当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述报文收发模块,包括:
查找单元,用于如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
选择单元,用于如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
一种通信***,所述通信***包括CPU(Central Processing Unit,中央处理器)和网卡,所述网卡包括多个物理网口;
所述CPU运行有应用层程序,用于处理业务数据;
所述网卡,用于创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;将多个需要绑定的物理网口添加到创建的所述虚端口;当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
在本发明通过创建虚端口,将多个需要绑定的物理网口添加到该虚端口中,将虚端口中的通信正常的物理网口确定为可用物理网口,当需要收发报文时根据配置的模式从可用物理网口中选择一个或多个物理网口来对报文进行收发。其中,该虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对该虚端口与其他创建的虚端口在应用层进行绑定,如此,在应用层可以将多个虚端口绑定为一个拟网卡,实现二次绑定的要求,更好地满足业务需求。
附图说明
图1是现有技术提供的一种网口绑定示意图;
图2是本发明实施例1提供的一种绑定物理网口的方法流程图;
图3是本发明实施例2提供的一种绑定物理网口的方法流程图;
图4是本发明实施例2提供的一种网口绑定示意图;
图5是本发明实施例3提供的一种绑定物理网口的方法流程图;
图6是本发明实施例3提供的一种绑定物理网口的方法流程图;
图7是本发明实施例3提供的一种绑定物理网口的方法流程图;
图8是本发明实施例4提供的一种网卡示意图;
图9是本发明实施例5提供的一种通信***示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图2所示,本发明实施例提供了一种绑定物理网口的方法,应用于网卡设备,包括:
步骤101、创建虚端口,该虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对该虚端口与其他创建的虚端口在应用层进行绑定;
步骤102、将多个需要绑定的物理网口添加到创建的该虚端口;
步骤103、当该虚端口中的物理网口通信正常时,确定为通信正常的物理网口为可用物理网口;
步骤104、当需要收发报文时,根据配置的模式从可用物理网口中选择一个或多个物理网口来对该报文进行收发。
在本发明实施例中,创建虚端口,将多个需要绑定的物理网口添加到该虚端口中,将虚端口中的通信正常的物理网口确定为可用物理网口,当需要收发报文时根据配置的模式从可用物理网口中选择一个或多个物理网口来对报文进行收发。其中,该虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对该虚端口与其他创建的虚端口在应用层进行绑定,因此,在应用层也可以将多个虚端口绑定为一个网络设备,从而实现二次绑定的要求,更好地满足业务需求。
实施例2
如图3所示,本发明实施例提供了一种绑定物理网口的方法,本实施例的执行主语为终端的网卡,该方法包括:
步骤201:当用户在终端中指定需要绑定为虚端口的多个物理网口时,创建虚端口;
其中,终端的物理层包括多个物理网口,用户需要在终端中将多个物理网口绑定成虚端口时,则在终端中指定需要绑定的多个物理网口。另外,用户还在终端配置绑定的模式,进一步,将用户配置的绑定模式记录在创建的虚端口中。其中,绑定的模式可以为负载均衡模式、冗余备份模式或SLB(Server LoadBalancing,服务器负载均衡)模式。
这里的“虚端口”可以看成是物理网口与应用层之间的中间处理模块,一方面,虚端口用于将多个物理网口进行绑定(即按某种方式对多个物理网口数据进行统一处理);另一方面,每个虚端口对应于应用层中的一个虚拟网卡,这种情况与现有技术中每个物理端口对应于应用层中的一个虚拟网卡相似,应用层将每个虚端口当作一个物理端口进行处理,因此,在应用层可以通过现有的绑定方法对物理层中创建的多个虚端口(虚拟网卡)进行绑定,得到一个网络设备。可以看到,由于虚端口已经将多个物理网口进行了一次绑定,而在应用层又可以对虚端口进行一次绑定,从而可以实现对物理网口的二次绑定,满足业务需求。
具体的,这里的虚端口用软件实现时,可以根据不同编程语言的特性通过结构体(如基于C语言),或者对象(如基于面向对象编程语言,包括Java、C++等),或者其他类似的处理手段来实现,这里并不限定。
步骤202:从需要绑定的多个物理网口中确定出物理层中存在且未被绑定的物理网口,将确定的物理网口添加到创建的虚端口中;
其中,在本实施例中,假设虚端口中可以包括绑定的物理网口,以及可用物理网口,这里的“可用物理网口”是指通信正常,可以用于收发报文的端口,实现中,为了更好地管理,又可以将其分为“可用接收网口”以及“可用发送网口”。
具体实现时,如果虚端口为一个结构体或者对象,则需要绑定的网口以及可用物理网口为其中的一个成员变量,例如,可以通过类型为数组或链表的成员变量来存储多个相关的物理网口。当然,本发明实施例也不限定用其他的软件实现方法来存储绑定的物理网口以及可用物理网口。
基于上述软件实现方法,将确定的物理网口添加到虚端口也即表示将物理网口相关的标识(如网口编号,或者网口对应的PHY的编号)添加到虚端口对象中的成员变量中。
此外,为了更好地实现动态管理,可以在设计虚端口时用容易管理的数据结构来表示相关网口,例如,用链表来管理网口,从而可以方便地实现网口的添加或删除。
为了说明方便,下文不再从软件具体实现形式对绑定的物理网口以及可用物理网口进行说明,而是认为虚端口中存在着逻辑意义上的“物理网口列表”以及“可用物理网口列表”(可用物理网口也可分为“可用接收网口列表”以及“可用发送网口列表”),这两张表中分别记录着绑定的物理网口以及可用物理网口。
步骤203:从虚端口包括的物理网口中判断出通信正常的物理网口,将通信正常的物理网口确定为可用物理网口;
具体地,根据“物理网口列表”从虚端口中的第一个物理网口开始遍历,判断遍历的物理网口的通信是否正常,如果正常,则确定遍历的物理网口为可用物理网口,如果还存在未被遍历的物理网口,则遍历下一个物理网口;如果不正常且还存在未被遍历的物理网口,则遍历下一个物理网口;通过上述过程,可以确定可用物理网口,将确定的可用物理网口添加到可用物理网口列表(或“可用接收网口列表”以及“可用发送网口列表”)当中。
其中,判断网口通信是否正常可以通过每个网口的link状态来判断。物理网卡中每个物理网口都有link状态,如果某个物理网口的通信正常,则该物理网口的link状态为link up状态,如果某个物理网口的通信不正常,则该物理网口的link状态为link down状态。
其中,如图4所示,可以将物理层中的多个物理网口绑定为一个虚端口,绑定后的虚端口位于虚端口层,虚端口层中的每个虚端口对应应用层中的虚拟网卡,可以利用现有的绑定方法对多个虚端口进行二绑定。
步骤204:当需要收发报文时,根据虚端口中配置的绑定模式从虚端口中可用物理网口中选择物理网口,通过选择的物理网口来收发报文。
这里的“绑定模式”也可以作为一个成员变量保存在虚端口中,通过判断“绑定模式”对应变量的值来根据一定的策略选择一个或多个物理网口进行收发报文。
具体的:当绑定模式为负载均衡模式时,选择虚端口中包括的每个可用物理网口,通过选择的每个物理网口来收发报文;
当绑定模式为冗余模式时,从虚端口中包括的可用物理网口中指定一个物理网口,如果指定的物理网口通信正常,则通过指定的物理网口来收发报文;如果指定的物理网口通信不正常,则从剩下的物理网口重新指定一个通信正常的物理网口,并通过指定的物理网口来收发报文。
当绑定模式为SLB模式时,从需要收发的报文中提取五元组,根据提取的五元组查找已存储的报文的五元组与物理网口的对应关系中是否存在对应的物理网口,如果存在,则通过查找到的物理网口来收发报文,如果不存在,则从虚端口包括的可用物理网口中选择报文流量最小的物理网口,通过选择的物理网口来收发报文,并将提取的五元组和选择的物理网口存储在报文的五元组与物理网口的对应关系中。
其中,报文的五元组可以包括报文源IP(Internet Protocol,互联网协议)地址、目的IP地址、源端口号、目的端口号以及协议号。
进一步地,还可以对虚端口层中的每个虚端口包括的物理网口进行检查,对每个虚端口检查的操作可以具体为:定时检查虚端口中的物理网口的通信是否正常;如果正常,则将检查的物理网口确定为可用物理网口;如果不正常,则将检查的物理网口确定为不可用物理网口,然后根据检查结果更新各个对应的列表。
在本发明实施例中,通过在物理网卡中创建一个虚端口,从而在物理网卡中对物理网口的一次绑定,同时,每个创建的虚端口与应用层中的虚拟网卡对应,因此,在应用层也可以实现对虚端口的绑定,最终实现了对物理网口的二次绑定,从而更好地满足业务需求。
另外,如果用链表等数据结构来对网口进行管理时,后续可以方便地动态增加或删除需要绑定的物理网口,从而能更好地满足业务的需求(如需要进行高带宽业务时可以增加绑定的物理网口数量)。另外,这种动态调整只是增加一些成员,并不会对与业务处理流程进行冲突,因此,这种动态调整也不会中断业务,更能满足业务的需求。
此外,通过本发明实施例,除了可以利用虚端口对各物理端口进行均衡、冗余处理之外,还可以在该端口上进行流量控制以及ACL(Access Control List,访问控制列表)控制,从而实现基于虚端口的Qos(Quality of Service,服务质量)控制,使得实现Qos的控制更好灵活。例如,可以在虚端口的成员变量中添加收发令牌计数的变量,同时添加定时往成员变量中放置令牌的定时处理函数,后续根据收发令牌计数的变量的值来判断流量的情况,从而可以灵活地实现对虚端口流量的控制。
实施例3
本发明实施例基于上述实施例提供了一种绑定物理网口的方法。在本实施例中以虚端口中至少包括物理网口列表、可用发送网口列表和可用接收网口列表为例,分几个阶段进行说明,其中,可用发送网口列表和可用接收网口列表也可统称为“可用物理网口列表”。
一、创建阶段
该阶段主要完成虚端口的创建,初始化等步骤;参见图5,包括:
步骤301:创建虚端口;
当需要将用户指定的多个物理网口按配置的绑定模式绑定为一个虚端口时,创建虚端口。其中,虚端口至少包括物理网口列表、可用发送网口列表和可用接收网口列表。其中,物理网口列表用于存储虚端口中包括的每个需要绑定的物理网口,可用发送网口列表用于存储虚端口中包括的每个用于发送报文的物理网口,可用接收网口列表用于存储虚端口中包括的每个用于接收报文的物理网口。
步骤302:添加PHY;
上文已经说明物理网口可以看成是一个功能模块,每个功能模块(物理网口)对应一个处理芯片PHY,添加物理网口也可以认为是添加PHY到虚端口的物理网口列表中;
步骤303:添加绑定模式;
具体的,在虚端口中设置有表示绑定模式的成员变量,“添加绑定模式到虚端口”即可以认为“将一个表示绑定模式的值赋给该变量”。
进一步地,在记录配置的绑定模式之前,还可以判断网卡是否支持该绑定模式,如果支持,则将该绑定模式记录在虚端口中,如果不支持,则结束绑定虚端口的步骤并释放虚端口占用的存储空间。
其中,网卡可以支持所有的绑定模式,也可以只支持几种绑定模式。对于不支持所有的绑定模式而只支持几种绑定模式的网卡还维护一个绑定模式列表,绑定模式列表用于存储网卡支持的绑定模式。
相应地,判断网卡是否支持配置的绑定模式的操作可以为:查找网卡维护的绑定模式列表中是否存在配置的绑定模式,如果存在,则判断出网卡支持配置的绑定模式,如果不存在,则判断出网卡不支持配置的绑定模式。
步骤304:遍历物理网口列表中的多个PHY,检查link状态;
本发明实施例通过检查PHY的link状态来判断物理网口是否通信正常;
步骤305:判断是否为link up状态;如果是,执行步骤306;否则执行步骤307;
步骤306:将对应的PHY加入到可用发送网口列表和可用接收网口列表;
步骤307:判断是否是最后一个;如果是,执行步骤308结束,如果否,继续执行步骤304。
通过上述步骤,即可完成虚端口的创建,并将通信正常的PHY(物理网口)加入到可用发送网口列表和可用接收网口列表。
二、维护阶段
本阶段通过定时遍历来检查可用网口列表中各网口(PHY)通信状态,使之从可用发送/接收网口列表中增加或删除。
参见图6,包括如下步骤:
步骤311:检查设定的时间是否超时;如果是,执行步骤312;如果不是,继续执行步骤311;
步骤312:遍历可用网口列表中的PHY,检查PHY状态;
步骤313:判断PHY状态是否发生变化;如果是,执行步骤314;如果否,执行步骤继续执行步骤312;
步骤314:判断PHY状态是否为link up?如果是,执行步骤315,如果否,执行步骤316;
步骤315:将PHY(物理网口)加入到可用发送网口列表和可用接收网口列表;后续执行步骤317;
如果有PHY状态有变化,且当前是link up,说明原来是通信不正常的,现在是通信正常的,因此,将其加入到可用发送/接收网口列表;
步骤316:将PHY(物理网口)从可用发送网口列表和可用接收网口中删除;后续执行步骤317;
如果PHY状态有变化,且当前不是link up,说明原来是通信正常的,现在是通信不正常的,因此,将其从可用发送/接收网口列表中删除。
步骤317:判断是否是可用网口列表中的最后一个PHY?如果是,则结束流程;如果否,则继续执行步骤312。
通过定时检测,可以随时更新各个列表的状态,以适应业务的应用需求。
三、数据处理阶段
本阶段为数据处理阶段,即当网卡接收到报文时,根据相应的模式来完成对报文数据的处理。
参见图7,包括如下步骤:
步骤321:判断是否有需要收发报文;如果是,执行步骤322;如果否,继续执行步骤321;
步骤322:判断是否是LB(负载均衡)模式,如果是,执行步骤323;如果否,执行步骤324;
步骤323:进行负载均衡模式操作,后续结束流程;
步骤324:判断是否是冗余模式,如果是,执行步骤325;如果否,执行步骤326;
步骤325:进行冗余模式操作,后续结束流程;
步骤326:判断是否是SLB(服务器负载均衡)模式,如果是,执行步骤327;如果否,结束流程。
步骤327:进行SLB(服务器负载均衡)模式操作,后续结束流程。
上述几个判断的时间顺序并不限定,也可以先判断是否冗余模式,再判定是否是LB模式,判定属于哪种模式可以通过判断虚端口中表示模式的成员变量的值来进行。
下面将分别对上述涉及到的几种模式的操作进行具体说明:
1.LB模式:
获取虚端口中的可用接收网口列表中的每个物理网口,通过获取的每个物理网口来接收报文,即通过每个物理网口都接收数据来实现负载平衡。
2.冗余模式:
从虚端口中的可用发送/接收网口列表中指定一个通信正常的物理网口,通过指定的物理网口来收发(指接收或发送或同时接收发送)报文;
具体地,从虚端口中的可用收发网口列表中指定一个物理网口,判断指定的物理网口的通信是否正常,如果是,则通过指定的物理网口来收发报文;如果否,则从可用收发网口列表中剩下的物理网口中重新指定一个物理网口,并重复执行上述过程直到指定出通信正常的物理网口来收发报文。
即在冗余模式下,先只使用一个网口,如果出现问题,再使用其他网口,从而实现了备份。
3.SLB模式:
从该报文中提取该报文的五元组,根据提取的报文的五元组查找已存储的报文的五元组与收发物理网口的对应关系;
如果查找到对应的物理网口,则利用查找到的物理网口收发报文,以保证对于同一个流用同一个端口进行收发;
如果没有查找到对应的物理网口,则从可用收发网口列表中选择报文流量最小的物理网口,利用选择的物理网口收发报文,以实现负载均衡。
此外,还可以将提取的报文的五元组和选择的物理网口存储的报文的五元组与收发物理网口的对应关系中。
通过本发明实施例,即可以实现在网卡上对各物理网口的一次绑定,同时,本发明中的虚端口可以在应用层中再一次进行绑定,从而最终实现对物理网口的二次绑定,更好地满足了业务的需求。
实施例4
如图8所示,本发明实施例提供了一种网卡,包括:
创建模块401,用于创建虚端口,该虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对该虚端口与其他创建的虚端口在应用层进行绑定;
添加模块402,用于将多个需要绑定的物理网口添加到创建的该虚端口;
确定模块403,用于当该虚端口中的物理网口通信正常时,确定为通信正常的物理网口为可用物理网口;
报文收发模块404,用于当需要收发报文时,根据配置的模式从可用物理网口中选择一个或多个物理网口来对该报文进行收发。
其中,添加模块402,具体用于从多个需要绑定的多个物理网口中确定物理层存在且未被绑定的物理网口,将确定的物理网口添加到创建的该虚端口中。
进一步地,该网卡还包括:
检查模块,用于定时检查该虚端口中的物理网口的通信是否正常;如果正常,则将检查的物理网口确定为可用物理网口;如果不正常,则将检查的物理网口确定为不可用物理网口。
其中,报文收发模块404,具体用于如果配置的模式为负载均衡模式,则通过可用的物理网口来对该报文进行收发。
其中,报文收发模块404,具体用于如果配置的模式为冗余备份模式,则从可用的物理网口中指定一个物理网口;如果指定的物理网口通信正常,则通过指定的物理网口来对报文进行收发;如果指定的物理网口通信不正常,则重新从所述可用的物理网口中指定一个通信正常的物理网口来对报文进行收发。
其中,报文收发模块404,包括:
查找单元,用于如果配置的模式为SLB模式,则根据该报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
选择单元,用于如果存在,则通过查找到的物理网口来对报文进行收发;如果不存在,则从可用物理网口中选择流量最小的物理网口,通过选择的物理网口来对该报文进行收发。
其中,如果需要增加虚端口的物理网口,则将增加的物理网口添加到虚端口中,如果需要删除虚端口的物理网口,则将删除的物理网口从虚端口中删除,如果修改虚端口的绑定模式,则将虚端口存储的绑定模式更新为修改的绑定模式,如此得到的虚端口可以根据需要更改绑定的物理网口的数目和绑定模式。
在本发明实施例中,在物理层创建虚端口,将需要绑定的多个物理网口添加到创建的虚端口中,判断出虚端口中通信正常的物理网口,将通信正常的物理网口确定为可用物理网口,当需要收发报文时,可以通过虚端口中的可用物理网口来收发报文,其中,虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对创建的虚端口与其他创建的虚端口在应用层进行绑定,如此实现了对物理网口进行二次绑定的要求,从而更好地满足业务需求。
需要说明的是,本发明实施例中中的各个模块为逻辑功能模块,并不表示具体的硬件模块。本发明实施例中的各个模块可以基于网卡现有的硬件处理单元实现,在此不再赘述。
实施例5
如图9所示,本发明实施例提供了一种通信***,包括CPU501和网卡502,网卡502包括多个物理网口;
CPU501运行有应用层程序,用于处理业务数据;
网卡502,用于创建虚端口,该虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对该虚端口与其他创建的虚端口在应用层进行绑定;将多个需要绑定的物理网口添加到创建的该虚端口;当该虚端口中的物理网口通信正常时,确定为通信正常的物理网口为可用物理网口;当需要收发报文时,根据配置的模式从可用物理网口中选择一个或多个物理网口来对该报文进行收发。
在本发明实施例中,在物理层创建虚端口,将需要绑定的多个物理网口添加到创建的虚端口中,判断出虚端口中通信正常的物理网口,将通信正常的物理网口确定为可用物理网口,当需要收发报文时,可以通过虚端口中的可用物理网口来收发报文,其中,虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对创建的虚端口与其他创建的虚端口在应用层进行绑定,如此实现了对物理网口进行二次绑定的要求,从而更好地满足业务需求。
其中,网卡设备完成上述功能可以基于现有的网卡硬件设备实现,例如,通过在现有网卡处理器中加入本发明实施例对应的程序代码来实现。具体的,网卡设备的逻辑划分可以依据实施例4中的进行,或者本领域技术人员也可以依据其他类似的方式来对网卡设备的功能模块进行划分(如通过软件创建不同的功能模块),从而实现网卡的功能。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种绑定物理网口的方法,其特征在于,所述方法包括:
创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;
将多个需要绑定的物理网口添加到创建的所述虚端口;
当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;
当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
2.如权利要求1所述的方法,其特征在于,所述将多个需要绑定的物理网口添加到创建的所述虚端口,包括:
从所述多个需要绑定的多个物理网口中确定物理层存在且未被绑定的物理网口,将所述确定的物理网口添加到创建的所述虚端口中。
3.如权利要求1所述的方法,其特征在于,所述确定通信正常的物理网口为可用物理网口之后,还包括:
定时检查所述虚端口中的物理网口的通信是否正常;
如果正常,则将所述物理网口确定为可用物理网口;
如果不正常,则将所述物理网口确定为不可用物理网口。
4.如权利要求1所述的方法,其特征在于,所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为负载均衡模式,则通过所述可用的物理网口来对所述报文进行收发。
5.如权利要求1所述的方法,其特征在于,所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为冗余备份模式,则从所述可用的物理网口中指定一个物理网口;
如果所述指定的物理网口通信正常,则通过所述指定的物理网口来对所述报文进行收发;如果所述指定的物理网口通信不正常,则重新从所述可用的物理网口中指定一个通信正常的物理网口对所述报文进行收发。
6.一种网卡,其特征在于,所述网卡包括:
创建模块,用于创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;
添加模块,用于将多个需要绑定的物理网口添加到创建的所述虚端口;
确定模块,用于当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;
报文收发模块,用于当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述报文收发模块,包括:
查找单元,用于如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
选择单元,用于如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
7.如权利要求6所述的网卡,其特征在于,所述添加模块,具体用于从所述多个需要绑定的多个物理网口中确定物理层存在且未被绑定的物理网口,将所述确定的物理网口添加到创建的所述虚端口中。
8.如权利要求6所述的网卡,其特征在于,所述网卡还包括:
检查模块,用于定时检查所述虚端口中的物理网口的通信是否正常;如果正常,则将所述物理网口确定为可用物理网口;如果不正常,则将所述物理网口确定为不可用物理网口。
9.如权利要求6所述的网卡,其特征在于,所述报文收发模块,具体用于如果所述配置的模式为负载均衡模式,则通过所述可用的物理网口来对所述报文进行收发。
10.如权利要求6所述的网卡,其特征在于,所述报文收发模块,具体用于如果所述配置的模式为冗余备份模式,则从所述可用的物理网口中指定一个物理网口;如果所述指定的物理网口通信正常,则通过所述指定的物理网口来对所述报文进行收发;如果所述指定的物理网口通信不正常,则重新从所述可用的物理网口中指定一个通信正常的物理网口来对所述报文进行收发。
11.一种通信***,其特征在于,所述通信***包括中央处理器CPU和网卡,所述网卡包括多个物理网口;
所述CPU运行有应用层程序,用于处理业务数据;
所述网卡,用于创建虚端口,所述虚端口对应于应用层中的一个虚拟网卡,可用于通过应用层软件对所述虚端口与其他创建的虚端口在应用层进行绑定;将多个需要绑定的物理网口添加到创建的所述虚端口;当所述虚端口中的物理网口通信正常时,确定通信正常的物理网口为可用物理网口;当需要收发报文时,根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发;
所述根据配置的模式从所述可用物理网口中选择一个或多个物理网口来对所述报文进行收发,包括:
如果所述配置的模式为服务器负载均衡模式,则根据所述报文的五元组,查找已存储的报文的五元组与物理网口的对应关系是否存在对应的物理网口;
如果存在,则通过所述查找到的物理网口来对所述报文进行收发;如果不存在,则从所述可用物理网口中选择流量最小的物理网口,通过所述选择的物理网口来对所述报文进行收发。
CN201110033471.9A 2011-01-30 2011-01-30 一种绑定物理网口的方法、网卡及通信*** Active CN102137169B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201110033471.9A CN102137169B (zh) 2011-01-30 一种绑定物理网口的方法、网卡及通信***
PCT/CN2012/070129 WO2012100671A1 (zh) 2011-01-30 2012-01-09 一种绑定物理网口的方法、网卡及通信***
EP12739728.9A EP2568690B1 (en) 2011-01-30 2012-01-09 Method for binding physical network ports, network card and communication system
US13/711,411 US8902731B2 (en) 2011-01-30 2012-12-11 Method, network card, and communication system for binding physical network ports

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110033471.9A CN102137169B (zh) 2011-01-30 一种绑定物理网口的方法、网卡及通信***

Publications (2)

Publication Number Publication Date
CN102137169A CN102137169A (zh) 2011-07-27
CN102137169B true CN102137169B (zh) 2016-12-14

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556625A (zh) * 2004-01-05 2004-12-22 联想(北京)有限公司 一种基于多网卡的网络设备的数据传输方法和装置
CN101330370A (zh) * 2007-05-17 2008-12-24 日本电气株式会社 节点、通信方法和用于节点的程序

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556625A (zh) * 2004-01-05 2004-12-22 联想(北京)有限公司 一种基于多网卡的网络设备的数据传输方法和装置
CN101330370A (zh) * 2007-05-17 2008-12-24 日本电气株式会社 节点、通信方法和用于节点的程序

Similar Documents

Publication Publication Date Title
US7440415B2 (en) Virtual network addresses
US11283718B2 (en) Hybrid network processing load distribution in computing systems
US7257633B2 (en) Dynamic allocation of a pool of threads
CN103685583B (zh) 一种域名解析的方法和***
CN103238301B (zh) 用于在路由器处管理话务的方法及路由器
CN108306832A (zh) 一种网络流量分流方法及装置
US20030110166A1 (en) Queue management
CN106209506A (zh) 一种虚拟化深度包检测流量分析方法及***
JP4190455B2 (ja) 負荷分散装置及びプログラム
US10439901B2 (en) Messaging queue spinning engine
EP2568690B1 (en) Method for binding physical network ports, network card and communication system
US10833952B2 (en) Introducing latency and delay for test or debug purposes in a SAN environment
US20070159960A1 (en) Method and apparatus for implementing N-way fast failover in virtualized Ethernet adapter
US20150288570A1 (en) Introducing Latency And Delay In A SAN Environment
CN109525684A (zh) 报文转发方法和装置
WO2014086193A1 (en) Data flow affinity for heterogenous virtual machines
US10715424B2 (en) Network traffic management with queues affinitized to one or more cores
CN107666401A (zh) 一种配置信息获取方法及终端
CN102137169B (zh) 一种绑定物理网口的方法、网卡及通信***
CN117130723A (zh) 分配信息的确定方法、装置、计算机设备和存储介质
CN105099942A (zh) 一种数据包处理方法及设备
CN108810143A (zh) 一种客户端负载均衡挂载虚拟ip的方法、***及装置
CN113259440B (zh) 一种基于负载均衡的虚拟网络功能动态部署方法及***
JP6586374B2 (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
CN101237407A (zh) 用于将物理适配器分配给虚拟适配器的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant