CN102263660A - 双网卡冗余切换方法及装置 - Google Patents
双网卡冗余切换方法及装置 Download PDFInfo
- Publication number
- CN102263660A CN102263660A CN2011102017785A CN201110201778A CN102263660A CN 102263660 A CN102263660 A CN 102263660A CN 2011102017785 A CN2011102017785 A CN 2011102017785A CN 201110201778 A CN201110201778 A CN 201110201778A CN 102263660 A CN102263660 A CN 102263660A
- Authority
- CN
- China
- Prior art keywords
- network interface
- interface card
- card
- backup
- network card
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及电子信息领域,具体涉及到一种电子设备的双网卡冗余切换方法及装置。双网卡冗余切换方法及装置通过Wvxorks特有的MUX层,利用MUX提供的NIC的句柄来提交请求,在MUX层调用网卡驱动程序中的接口函数,实现高层协议驱动程序的请求;在工作网卡异常时,先判断备份网卡的状态,只有当备份网卡连接正常时,才执行冗余切换;这样一来,连接异常时的不会频繁切换,减少了连接异常时的系统开销,增加系统稳定性。本发明编程实现容易,没有底层驱动开发经验的人士也容易实施。利用MUX加载网卡,可以同时加载不同类型的网卡,通用性高;可以在不同类型的网卡之间实现冗余备份,还可实现多冗余备份。成本低,便于推广应用。
Description
技术领域
本发明涉及电子信息领域,具体涉及到一种电子设备的双网卡冗余切换方法及装置。
背景技术
服务器作为企业信息平台的核心,其稳定性和安全性至关重要,连接服务器的网络链路是尤为重要的一环。冗余备份技术是对容易出错的硬件设备进行冗余备份,当其中一个设备由于某种原因不能正常工作时,另一个设备马上就可以代替这个设备完成相同的功能。在对网络通信可靠性要求高的系统中,需要对网卡进行双冗余备份。当正常通信的网卡或线路出现故障时能自动地切换到备份网卡,这样可以强化系统网络链路,减少故障率。
双冗余切换一般采用两种方法实现:一是在底层实现双冗余的切换;二是在应用层实现双冗余的切换。
第一种方法,需要重新开发网卡的驱动程序,要求编程人员对网卡硬件有较深了解,难度大,且不同的网卡需要不同的驱动程序,适应性差。
第二种方法,是修改BSP(Board Support Packet,板级支持包)中网卡的驱动程序以及参数,在加载驱动程序时能支持双网卡,然后在应用程序中发起一个进程,监测网卡的连接情况,当工作网卡连接不畅时,立即切换到备份网卡。这种方法,在网上广播报文较多时,可能会导致如下问题:
1)网络阻塞,不能自恢复;
2)连接异常时,网络切换过于频繁,系统开销大;
3)设备死机;
4)仅适用于同一类型的双网卡,通用性较差。
VxWorks操作系统是一种具有工业领导地位的高性能嵌入式实时操作系统,是嵌入式开发环境Tornado的关键组成部分,它为程序员提供了良好的可靠性和卓越的实时性,因此被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。在VxWorks系统中,相同类型的网卡使用同一个驱动程序,网卡之间由NDIS提供的句柄来区别。NDIS调用NIC驱动程序的接口函数时,都会把网卡的句柄传入函数中。这就为在驱动程序中实现冗余备份提供了基础。双网卡驱动程序实现后与高层协议驱动程序绑定在一起,对应用程序完全透明。(每个节点都采用多块网卡或多个网口,中间用集线器或交换机互连,当正常通信的网卡或线路出现故障时,该节点能自动地切换到备份网卡,网络仍能正常工作。具有冗余网卡的节点虽然有多块网卡,多条通道,但对于高层应用系统来说,仍呈现单网卡的特征。具体来讲,多块网卡共有1个IP地址,1个报文处理程序。)但是如果采取这样的方式我们必须要有VxWorks下的所用网卡的驱动程序,而对于一般的用户而言,开发这样一个驱动程序的难度是很大的。目前也有一些研究单位完成了这些工作,但是它们要求的价格过高,对于一般小型用户承受不起。
因此,我们迫切需要一种价格低廉、能解决双网卡冗余切换的方法,以保证服务器网络链路的持续稳定工作。
发明内容
本发明所要解决的技术问题是提供一种双网卡冗余切换方法及装置,该方法成本低,且使双网卡的切换变得容易,保证了系统的正常运行;该装置能保证系统的通用性。
本发明为解决上述提出的问题所采用的技术方案是:
一种双网卡冗余切换方法,包括如下步骤:
(1)用网卡的配置程序,设置网卡的基本参数;
(2)在应用程序中定义两个网卡的装载参数,该参数与(1)中的设置一致;
(3)在程序中利用MUX函数启动两个网卡,对默认优先工作的网卡进行配置;
(4)在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换。
按上述方案,所述的步骤(4)的具体步骤为:
(4.1)查询当前工作网卡的状态;
(4.2)判断接口正常与否:正常,则回到(4.1);若连接故障,则执行(4.3);
(4.3)查询备份网卡的状态;
(4.4)若备份网卡连接正常,则解除工作网卡的协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡,回到(4.1);若备份网卡连接故障,则直接回到(4.1)。
按上述方案,所述的两个网卡为同一类型网卡或不同类型的网卡。
按上述方案,所述的方法也适用于多个网卡之间的切换。
本发明还提供一种双网卡冗余切换装置,它包括:
用于设置网卡的基本参数的网卡配置装置;
用于在应用程序中定义两个网卡的装载参数,且使该参数与网卡配置装置中的设置相一致的定义装置;
用于在程序中利用MUX函数(muxDevLoad,muxDevStart)启动两个网卡,并对默认优先工作的网卡进行配置的启动装置;
用于在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换的查询执行装置。
按上述方案,所述的查询执行装置包括:
用于查询当前工作网卡状态的装置;
用于判断接口正常与否的装置;
用于查询备份网卡状态的装置;
用于当备份网卡连接正常,解除工作网卡协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡的装置。
按上述方案,所述的两个网卡为同一类型网卡或不同类型的网卡。
按上述方案,所述的装置也适用于多个网卡之间的切换。
原理:VxWorks操作系统中的END驱动程序是基于MUX模式,网络驱动程序被划分为协议组件和硬件组件。MUX数据链路层和网络层之间的接口,它管理网络协议接口和低层硬件接口之间的交互;将硬件从网络协议的细节中隔离出来;删除使用输入钩例程来过滤接收从协议来的数据包,和删除了使用输出钩例程来过滤协议包的发送;并且链路层上的驱动程序需要访问网络层(IP或其他协议)时,也会调用相关的MUX例程。且网络层协议和数据链路层驱动程序不能直接通讯,它们必须通过MUX。MUX调用NIC驱动程序的接口函数时,都会把网卡的句柄传入函数中。这就为在驱动程序中实现双网卡冗余备份提供了基础。对于网卡设备,编写驱动程序的目的就是要能够进行数据发送和接收。在数据发送时,帧头、帧起始定界符与校验和都是由NIC自动填加的。
本发明的有益效果在于:1、通过Wvxorks特有的MUX层,利用MUX提供的NIC的句柄来提交请求,在MUX层调用网卡驱动程序中的接口函数,实现高层协议驱动程序的请求。不需修改BSP,不用改写网卡的驱动,有效提高网卡驱动效率,从而提高了设备的可靠性;编程实现容易,没有底层驱动开发经验的人士也容易实施。2、在工作网卡异常时,先判断备份网卡的状态,只有当备份网卡连接正常时,才执行冗余切换;这样一来,连接异常时的不会频繁切换,减少了连接异常时的系统开销,增加系统稳定性。3、利用MUX加载网卡,可以同时加载不同类型的网卡,通用性高;可以在不同类型的网卡之间实现冗余备份,还可实现多冗余备份。4、成本低,便于推广应用。
附图说明
图1是本发明的流程框图。
具体实施方式
下面结合附图进一步说明本发明的实施例。
一种双网卡冗余切换方法,包括如下步骤:
(1)用网卡的配置程序,设置网卡的基本参数;
(2)在应用程序中定义两个网卡的装载参数,该参数与(1)中的设置一致;
(3)在程序中利用MUX函数启动两个网卡,对默认优先工作的网卡进行配置;
(4)在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换,具体步骤为:
(4.1)查询当前工作网卡的状态;
(4.2)判断接口正常与否:正常,则回到(4.1);若连接故障,则执行(4.3);
(4.3)查询备份网卡的状态;
(4.4)若备份网卡连接正常,则解除工作网卡的协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡,回到(4.1);若备份网卡连接故障,则直接回到(4.1)。
以上所述的两个网卡可以为同一类型网卡也可以为不同类型的网卡。且以上所述的方法也适用于多个网卡之间的切换。
一种双网卡冗余切换装置,它包括:
用于设置网卡的基本参数的网卡配置装置;
用于在应用程序中定义两个网卡的装载参数,且使该参数与网卡配置装置中的设置相一致的定义装置;
用于在程序中利用MUX函数启动两个网卡,并对默认优先工作的网卡进行配置的启动装置;
用于在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换的查询执行装置。所述的查询执行装置包括:
用于查询当前工作网卡状态的装置;
用于判断接口正常与否的装置;
用于查询备份网卡状态的装置;
用于当备份网卡连接正常,解除工作网卡协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡的装置。
以上所述的两个网卡可以为同一类型网卡也可以为不同类型的网卡。且以上所述的装置也适用于多个网卡之间的切换。
下面以NE2000型以太网卡RTL8019为例对本发明的实施作一具体说明。
参见图1,首先用网卡的配置程序,设置网卡的基地址与中断,避免与系统中其他资源发生冲突。然后在应用程序中定义两个网卡的装载参数,注意必须与刚才设置的一致。
#define ENE0_LOAD_SIRING″300:2a:a:0:1:0″
/*第一块网卡的基地址:中断向量:中断等参数*/
#define ENE1_LOAD_STRING″380:25:5:0:1:0″/*第二块网卡参数*/
接着在程序中启动两个网卡:
pCookie[0]=muxDevLoad(0,sysNe2000EndLoad,ENE0_LOAD_STRING,1,0);/*装载第一块网卡*/
muxDevStart(pCookie[0]);/*启动第一块网卡*/
pCookie[1]=muxDevLoad(1,sysNe2000EndLoad,ENE0_LOAD_STRING,1,0);/*装载第二块网卡*/
muxDevStart(pCookie[1]);/*启动第二块网卡*/
默认第一块网卡优先工作,先对第一块网卡进行配置:
ipAttach(0,″ene″);/*绑定TCP/IP协议*/
ifAddrSet(″ene0″,″192.168.0.1″);/*设置网卡的IP地址*/
现在两个网卡均已启动,第一块网卡已配置完毕,可以进行收发报文了。下面就是在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换。RTL8019具有自我判断连接状态的能力,并根据连接状态对其内部寄存器(PAGE3中的CONFIG0,其他类型的网卡的寄存器情况请参考其说明书)的值进行相应的修改。我们可以通过VxWorks的底层函数sysOutByte()与sysInByte()以查询的方式不断来读取接口的内部寄存器的值来判断网卡的连接状态。如果该网络接口出现异常,这时先检查备份网卡的状态,只有当备份网卡处于正常状态时,才卸载当前网卡绑定的协议,配置备份网卡,切换到备份网卡上进行工作。
完成上述步骤之后,两网卡实现了冗余备份,上层用户可用同一程序进行报文的收发工作。
经在PC104、intel x86平台上充分测试,该方法具有良好的通用性。
该方法已在NE2000型网卡和intel网卡上经过充分测试,具有良好的通用性。
Claims (4)
1.一种双网卡冗余切换方法,其特征在于包括如下步骤:
(1)用网卡的配置程序,设置网卡的基本参数;
(2)在应用程序中定义两个网卡的装载参数,该参数与(1)中的设置一致;
(3)在程序中利用MUX函数启动两个网卡,对默认优先工作的网卡进行配置;
(4)在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换。
2.如权利要求1所述的双网卡冗余切换方法,其特征在于:所述的步骤(4)的具体步骤为:
(4.1)查询当前工作网卡的状态;
(4.2)判断接口正常与否:正常,则回到(4.1);若连接故障,则执行(4.3);
(4.3)查询备份网卡的状态;
(4.4)若备份网卡连接正常,则解除工作网卡的协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡,回到(4.1);若备份网卡连接故障,则直接回到(4.1)。
3.一种双网卡冗余切换装置,其特征在于:包括:
用于设置网卡的基本参数的网卡配置装置;
用于在应用程序中定义两个网卡的装载参数,且使该参数与网卡配置装置中的设置相一致的定义装置;
用于在程序中利用MUX函数启动两个网卡,并对默认优先工作的网卡进行配置的启动装置;
用于在应用程序中发起一个任务,查询当前工作网卡的状态以及需要时执行网卡的冗余切换的查询执行装置。
4.如权利要求3所述的双网卡冗余切换装置,其特征在于:所述的查询执行装置包括:
用于查询当前工作网卡状态的装置;
用于判断接口正常与否的装置;
用于查询备份网卡状态的装置;
用于当备份网卡连接正常,解除工作网卡协议族,将工作网卡设为备份网卡,将原备份网卡配置为工作网卡的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102017785A CN102263660A (zh) | 2011-07-19 | 2011-07-19 | 双网卡冗余切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102017785A CN102263660A (zh) | 2011-07-19 | 2011-07-19 | 双网卡冗余切换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102263660A true CN102263660A (zh) | 2011-11-30 |
Family
ID=45010129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102017785A Pending CN102263660A (zh) | 2011-07-19 | 2011-07-19 | 双网卡冗余切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102263660A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684946A (zh) * | 2012-05-25 | 2012-09-19 | 中国舰船研究设计中心 | 用于信息集成系统的双网卡切换性能测试方法 |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN104503775A (zh) * | 2014-12-02 | 2015-04-08 | 中国航天科工集团第三研究院第八三五七研究所 | 一种Windows下双冗余网络切换方法 |
CN107968724A (zh) * | 2017-11-19 | 2018-04-27 | 中国船舶重工集团公司第七六研究所 | 千兆、百兆双冗余以太网卡互为备件系统及方法 |
CN108155978A (zh) * | 2017-11-27 | 2018-06-12 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN110677283A (zh) * | 2019-09-24 | 2020-01-10 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
CN111817892A (zh) * | 2020-07-10 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种网络管理方法、系统、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567858A (zh) * | 2003-06-19 | 2005-01-19 | 联想(北京)有限公司 | 一种基于双网卡的通信方法 |
CN101436963A (zh) * | 2008-12-04 | 2009-05-20 | 中兴通讯股份有限公司 | 一种单板的网卡的切换方法、分布式系统及单板 |
CN102104470A (zh) * | 2009-12-17 | 2011-06-22 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
-
2011
- 2011-07-19 CN CN2011102017785A patent/CN102263660A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567858A (zh) * | 2003-06-19 | 2005-01-19 | 联想(北京)有限公司 | 一种基于双网卡的通信方法 |
CN101436963A (zh) * | 2008-12-04 | 2009-05-20 | 中兴通讯股份有限公司 | 一种单板的网卡的切换方法、分布式系统及单板 |
CN102104470A (zh) * | 2009-12-17 | 2011-06-22 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
Non-Patent Citations (2)
Title |
---|
余程鹏: "在Vxworks下实现基于MUX接口的驱动程序", 《舰船电子对抗》 * |
韩礼红等: "VxWorks下双网卡冗余备份及智能切换技术", 《单片机与嵌入式系统应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684946A (zh) * | 2012-05-25 | 2012-09-19 | 中国舰船研究设计中心 | 用于信息集成系统的双网卡切换性能测试方法 |
CN102684946B (zh) * | 2012-05-25 | 2014-08-27 | 中国舰船研究设计中心 | 用于信息集成系统的双网卡切换性能测试方法 |
CN104503775A (zh) * | 2014-12-02 | 2015-04-08 | 中国航天科工集团第三研究院第八三五七研究所 | 一种Windows下双冗余网络切换方法 |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN107968724B (zh) * | 2017-11-19 | 2021-02-12 | 中国船舶重工集团公司第七一六研究所 | 千兆、百兆双冗余以太网卡互为备件系统及方法 |
CN107968724A (zh) * | 2017-11-19 | 2018-04-27 | 中国船舶重工集团公司第七六研究所 | 千兆、百兆双冗余以太网卡互为备件系统及方法 |
CN108155978A (zh) * | 2017-11-27 | 2018-06-12 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN108155978B (zh) * | 2017-11-27 | 2021-08-10 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN110677283A (zh) * | 2019-09-24 | 2020-01-10 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110677283B (zh) * | 2019-09-24 | 2022-06-24 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
CN111817892A (zh) * | 2020-07-10 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种网络管理方法、系统、电子设备及存储介质 |
CN111817892B (zh) * | 2020-07-10 | 2023-04-07 | 济南浪潮数据技术有限公司 | 一种网络管理方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102263660A (zh) | 双网卡冗余切换方法及装置 | |
CN103200026B (zh) | 固件的升级方法及系统 | |
CN102739799B (zh) | 一种分布式应用中的分布式通讯方法 | |
WO2017152633A1 (zh) | 一种端口绑定实现方法及装置 | |
CN102244669B (zh) | 一种堆叠设备中软件升级的方法和堆叠设备 | |
US20020107966A1 (en) | Method and system for maintaining connections in a network | |
CN111917846A (zh) | 一种Kafka集群切换方法、装置、系统、电子设备及可读存储介质 | |
CN103139039A (zh) | 一种实现流量隔离控制的虚拟网络及构建方法 | |
CN111935286A (zh) | 一种用于软件开发的微服务框架及其构建方法 | |
CN109194497B (zh) | 面向软件无线电系统的双srio网络备份系统 | |
WO2022063032A1 (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN109828856A (zh) | 基于Dubbo的安全性自动熔断方法及系统、存储介质及终端 | |
CN116881053B (zh) | 数据处理方法及交换板、数据处理系统、数据处理装置 | |
CN112416969A (zh) | 分布式数据库中的并行任务调度系统 | |
CN105763488B (zh) | 数据中心汇聚核心交换机及其背板 | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
CN106789497A (zh) | Wtb/mvb列车通信网关 | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN102984055B (zh) | 一种issu的软重启升级方法和设备 | |
CN101217293B (zh) | 媒体业务托管切换系统及方法 | |
CN103795603A (zh) | 一种基于多网卡的边缘虚拟桥接的实现方法和设备 | |
CN104092661A (zh) | 虚拟机串口的通信方法及装置 | |
JP7147065B2 (ja) | 通信ネットワークを介して接続された複数の電子デバイスが例外を正しく処理するか否かの同時試験 | |
CN112073499A (zh) | 一种多机型云物理服务器的动态服务方法 | |
CN101958783A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111130 |