CN104468238A - 基于vxworks系统的双网卡冗余切换方法 - Google Patents
基于vxworks系统的双网卡冗余切换方法 Download PDFInfo
- Publication number
- CN104468238A CN104468238A CN201410829538.3A CN201410829538A CN104468238A CN 104468238 A CN104468238 A CN 104468238A CN 201410829538 A CN201410829538 A CN 201410829538A CN 104468238 A CN104468238 A CN 104468238A
- Authority
- CN
- China
- Prior art keywords
- network interface
- interface card
- connection status
- 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
Abstract
本发明提出了一种基于vxworks系统的双网卡冗余切换方法,包括:系统进行初始化;将第一网卡或者第二网卡注册至系统中;配置第一网卡与第二网卡,其中,第一网卡与第二网卡配置相同的MAC地址与IP地址;以及当第一网卡或者第二网卡连接状态改变时,则在驱动层对第一网卡与第二网卡进行冗余切换。本发明所提出的基于vxworks系统的双网卡冗余切换方法,只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,从而可以大大减少网路切换的时间开销。
Description
技术领域
本发明涉及通信领域,特别是涉及一种基于vxworks系统的双网卡冗余切换方法。
背景技术
VxWorks操作系统是一种具有工业领导地位的高性能嵌入式实时操作系统,是嵌入式开发环境Tornado的关键组成部分,它为程序员提供了良好的可靠性和卓越的实时性,因此被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。Vxworks实现了在同一操作系统中对多个网卡的支持,但是没有实现对网卡的冗余功能。
随着网络技术的成熟,以太网已成为各种控制系统接口互连的主要媒介。在某些特殊的应用场合,为了提高系统的可靠性和抗毁性,需采用双冗余网络技术。在双冗余网络中,每个节点都采用两块网卡(或单板双卡),中间用两个HUB或交换机互连。当某个节点一块网卡故障,或网线损坏,或其中一个HUB或交换机故障时,网络仍能正常运作。
双冗余网络虽有两块网卡,两条通道,但对于高层应用系统来说,仍呈现单网卡的特征。具体来讲,每个节点的两块网卡只能有一个物理地址,一个IP地址,否则网络就不能进行正常通信。
目前已发布的基于vxworks的双网卡冗余备份设计方案都是基于应用层的,它们实现的方案是:利用vxworks提供的上层接口函数,实现对系统中网卡的动态加载与删除,其实质是将需要冗余的两路网络适配器设置为相同的mac地址,并采用同一IP地址,但这样势必产出地址冲突的问题。因此在网卡初始化过程中,只设置当前工作的网卡的ip地址,当网络需要切换时,必须先去掉当前网络接口的IP地址,并在主机列表中删除它,然后用同一IP地址来驱动第二个网络接口。
采用现有的技术方案在进行网络切换时,由于需要在上层协议层进行网络设备的配置与命令下发,中间涉及的模块较多,影响网络间相互切换的速度,达不到工控指标上对切换时间上的要求。例如当系统检测到当前网路连接状态断掉,它会执行如下一系列操作:
以上操作需要经由操作系统的API,经过上层协议层多级处理,大大增加了网路切换的时间开销。
发明内容
鉴于上述,本发明提出了一种基于vxworks系统的双网卡冗余切换方法,包括:系统进行初始化;将第一网卡或者第二网卡注册至系统中;配置所述第一网卡与所述第二网卡,其中,所述第一网卡与所述第二网卡配置相同的MAC地址与IP地址;以及当所述第一网卡或者所述第二网卡连接状态改变时,则在驱动层对所述第一网卡与所述第二网卡进行冗余切换。
可选地,在驱动层对所述第一网卡与所述第二网卡进行冗余切换包括:
记录发生连接状态改变的网卡的连接状态;
判断发生连接状态改变的网卡是否为当前正在使用的网卡;
当发生连接状态改变的网卡为当前正在使用的网卡时,则判断发生连接状态改变的网卡连接状态是否为断开;
当发生连接状态改变的网卡连接状态为断开时,则判断备份的网卡的连接状态是否为断开;以及
当备份的网卡的连接状态为断开时,则将当前使用网卡标志更新为备份的网卡。
可选地,在驱动层对所述第一网卡与所述第二网卡进行冗余切换还包括:预先设置连接状态标志与当前使用网卡标志。
可选地,在所述驱动层中,通过收发函数来实现发送数据与接收数据。
综上,本发明所提出的基于vxworks系统的双网卡冗余切换方法,只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,从而可以大大减少网路切换的时间开销。
附图说明
图1绘示了vxworks系统网络模块结构图;
图2绘示了本发明的一实施方式的基于vxworks系统的双网卡冗余切换方法的流程示意图;以及
图3绘示了本发明的一实施方式的在驱动层对第一网卡与第二网卡进行冗余切换的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参照图1,图1绘示了vxworks系统网络模块结构图。
如图1所示,vxworks系统网络模块,包括应用层、协议层、MUX层、驱动层及双网卡(第一网卡与第二网卡),层与层间需要传递指示使用哪个网卡的设备指针(Device Pointer)和要传递的数据的buffer地址。
再参照图2,图2绘示了本发明的一实施方式的基于vxworks系统的双网卡冗余切换方法的流程示意图。
首先,在步骤S110中,系统进行初始化,vxworks系统初始化。
然后,在步骤S120中,将第一网卡或者第二网卡注册至系统中,这里只需将一个网卡进行注册,比如,注册第一网卡。
之后,在步骤S130中,配置第一网卡与第二网卡,其中,第一网卡与第二网卡配置相同的MAC地址与IP地址。
继而,在步骤S140中,当第一网卡或者第二网卡连接状态改变时,则在驱动层对第一网卡与第二网卡进行冗余切换。
关于在驱动层对第一网卡与第二网卡进行冗余切换,请参考图3,图3绘示了本发明的一实施方式的在驱动层对第一网卡与第二网卡进行冗余切换的流程示意图。
首先,在步骤S141中,记录发生连接状态改变的网卡的连接状态,比如假设是第一网卡的连接状态改变。
然后,在步骤S142中,判断发生连接状态改变的网卡是否为当前正在使用的网卡,当发生连接状态改变的网卡为当前正在使用的网卡时,则进入步骤S143,否则,进入步骤S146,退出切换。
之后,在步骤S143中,当发生连接状态改变的网卡为当前正在使用的网卡时,则判断发生连接状态改变的网卡连接状态是否为断开,当发生连接状态改变的网卡连接状态为断开时,则进入步骤S144,否则,进入步骤S146。
继而,在步骤S144中,当发生连接状态改变的网卡连接状态为断开时,则判断备份的网卡的连接状态是否为断开,当备份的网卡的连接状态为断开时,如当第二网卡的连接状态为断开时,则进入步骤S145,否则进入步骤S146。
然后,在步骤S145中,当备份的网卡的连接状态为断开时,则将当前使用网卡标志更新为备份的网卡,比如,将当前使用的网卡标志更新为第二网卡。
本实施方式中,还包括:预先设置连接状态标志与当前使用网卡标志,从而标志出第一网卡、第二网卡的连接状态,及,当前使用的哪个网卡。
关于具体的驱动层实现,主要集中在驱动的网卡数据收发函数上。从图1中可以看到vxworks的网络模块的层次模式,从mux层到底层驱动,层与层间需要传递指示使用哪个网卡的设备指针(设备指针所对应的结构体中记录了网卡所需的各种的状态与配置信息)和要传递的数据的buffer地址,那么在网卡接收数据与发送数据时就可以利用这些特性完成对上层应用的欺骗,实现底层网卡切换的透明化,具体如下:
发送:发送数据时,协议层会向MUX层提交发送数据所需要的两个参数,一个为需要用哪个网卡发送的设备指针,(由于先前提到过,系统中只注册了一个网卡的信息,假设第一网卡,所以协议层向MUX提交的设备指针永远都是第一网卡的)和一个指向欲发送的数据的指针。驱动程序的发送函数会根据这两个指针所对应的信息,配置网卡相应寄存器发起发送数据的动作。为了实现切换网卡的目的,在发送函数的开始位置需要进行一个判断,判断当前正在使用的网卡是否就是为第一网卡,如果是,即当前使用网卡标志currentDev=第一网卡,继续执行,正常向网第一网卡各寄存器进行设置,下发发送数据的命令。如果不是第一网卡而是第二网卡,那么丢弃掉上层传进来的设备指针,换成第二网卡的设备指针,向网第二网卡各寄存器进行设置,下发发送数据的命令。至此,发送时可以完成底层设备切换对上层应用的欺骗,即应用层只操作第一网卡但实际上可能由第二网卡完成了发送的任务。
接收:接收数据时,网卡接收到数据后,驱动层会根据从哪个网卡接收到的数据,向MUX层传递设备指针和数据buffer指针,以便对应的网卡服务取走数据给应用层使用。同发送一样,由于系统中注册了只有第一网卡的各种信息,在驱动程序的数据接收函数中就需要做判断,如果当前连接的是第一网卡,那么正常向MUX层传递数据没有问题。但如果当前连接的是第二网卡,由于MUX层不认识第二网卡的设备指针,那么此时再向MUX传递数据时,就要将第二网卡的设备指针替换为第一网卡的设备指针。至此,接收时也可以完成底层设备切换对上层应用的欺骗了。
综上,本发明所提出的基于vxworks系统的双网卡冗余切换方法,只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,从而可以大大减少网路切换的时间开销。
上文中,参照附图描述了本发明的具体实施方式。但是,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
Claims (4)
1.一种基于vxworks系统的双网卡冗余切换方法,其特征在于,包括:
系统进行初始化;
将第一网卡或者第二网卡注册至系统中;
配置所述第一网卡与所述第二网卡,其中,所述第一网卡与所述第二网卡配置相同的MAC地址与IP地址;以及
当所述第一网卡或者所述第二网卡连接状态改变时,则在驱动层对所述第一网卡与所述第二网卡进行冗余切换。
2.根据权利要求1所述的双网卡冗余切换方法,其特征在于,在驱动层对所述第一网卡与所述第二网卡进行冗余切换包括:
记录发生连接状态改变的网卡的连接状态;
判断发生连接状态改变的网卡是否为当前正在使用的网卡;
当发生连接状态改变的网卡为当前正在使用的网卡时,则判断发生连接状态改变的网卡连接状态是否为断开;
当发生连接状态改变的网卡连接状态为断开时,则判断备份的网卡的连接状态是否为断开;以及
当备份的网卡的连接状态为断开时,则将当前使用网卡标志更新为备份的网卡。
3.根据权利要求2所述的双网卡冗余切换方法,其特征在于,还包括:预先设置连接状态标志与当前使用网卡标志。
4.根据权利要求1所述的双网卡冗余切换方法,其特征在于,在所述驱动层中,通过收发函数来实现发送数据与接收数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829538.3A CN104468238A (zh) | 2014-12-22 | 2014-12-22 | 基于vxworks系统的双网卡冗余切换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829538.3A CN104468238A (zh) | 2014-12-22 | 2014-12-22 | 基于vxworks系统的双网卡冗余切换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104468238A true CN104468238A (zh) | 2015-03-25 |
Family
ID=52913647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410829538.3A Pending CN104468238A (zh) | 2014-12-22 | 2014-12-22 | 基于vxworks系统的双网卡冗余切换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468238A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105282742A (zh) * | 2015-10-30 | 2016-01-27 | 努比亚技术有限公司 | 移动终端及其无线网络连接方法 |
CN106301836A (zh) * | 2015-05-25 | 2017-01-04 | 北京视联动力国际信息技术有限公司 | 一种冗余备份的方法、终端以及视联网系统 |
CN108155978A (zh) * | 2017-11-27 | 2018-06-12 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN108494534A (zh) * | 2018-03-12 | 2018-09-04 | 西安电子工程研究所 | 一种自行防空武器系统双冗余以太网设计方法 |
CN109445862A (zh) * | 2018-10-31 | 2019-03-08 | 天津七所精密机电技术有限公司 | Windows系统下基于MUX的网卡冗余驱动方法 |
CN109474475A (zh) * | 2018-12-07 | 2019-03-15 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换系统 |
CN109728915A (zh) * | 2018-12-07 | 2019-05-07 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换方法 |
CN110677283A (zh) * | 2019-09-24 | 2020-01-10 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
CN111628891A (zh) * | 2020-05-25 | 2020-09-04 | 中车青岛四方车辆研究所有限公司 | 一种基于qnx的双以太网冗余的实现方法 |
CN112165446A (zh) * | 2020-08-17 | 2021-01-01 | 河北汉光重工有限责任公司 | 一种VxWorks系统网络侦听方法 |
CN113612621A (zh) * | 2021-06-21 | 2021-11-05 | 天津津航计算技术研究所 | 一种VxWorks下双冗余网卡切换时间的精确计算方法 |
CN113626094A (zh) * | 2021-06-21 | 2021-11-09 | 天津津航计算技术研究所 | 一种VxWorks下网卡MAC地址的操作方法 |
CN114157402A (zh) * | 2021-11-15 | 2022-03-08 | 天津市英贝特航天科技有限公司 | 一种双冗余网卡通讯方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436963A (zh) * | 2008-12-04 | 2009-05-20 | 中兴通讯股份有限公司 | 一种单板的网卡的切换方法、分布式系统及单板 |
US20090158300A1 (en) * | 2007-12-13 | 2009-06-18 | Moxa Technologies Co., Ltd. | Network redundancy check application program management method |
CN102104470A (zh) * | 2009-12-17 | 2011-06-22 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
CN102263660A (zh) * | 2011-07-19 | 2011-11-30 | 中国舰船研究设计中心 | 双网卡冗余切换方法及装置 |
-
2014
- 2014-12-22 CN CN201410829538.3A patent/CN104468238A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158300A1 (en) * | 2007-12-13 | 2009-06-18 | Moxa Technologies Co., Ltd. | Network redundancy check application program management method |
CN101436963A (zh) * | 2008-12-04 | 2009-05-20 | 中兴通讯股份有限公司 | 一种单板的网卡的切换方法、分布式系统及单板 |
CN102104470A (zh) * | 2009-12-17 | 2011-06-22 | 研祥智能科技股份有限公司 | 一种VxWorks系统下的多网卡双冗余装置及系统 |
CN102263660A (zh) * | 2011-07-19 | 2011-11-30 | 中国舰船研究设计中心 | 双网卡冗余切换方法及装置 |
Non-Patent Citations (1)
Title |
---|
《应用科技》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301836A (zh) * | 2015-05-25 | 2017-01-04 | 北京视联动力国际信息技术有限公司 | 一种冗余备份的方法、终端以及视联网系统 |
CN106301836B (zh) * | 2015-05-25 | 2019-03-12 | 视联动力信息技术股份有限公司 | 一种冗余备份的方法、终端以及视联网系统 |
WO2017071582A1 (zh) * | 2015-10-30 | 2017-05-04 | 努比亚技术有限公司 | 移动终端及其无线网络连接方法、存储介质 |
CN105282742A (zh) * | 2015-10-30 | 2016-01-27 | 努比亚技术有限公司 | 移动终端及其无线网络连接方法 |
CN108155978B (zh) * | 2017-11-27 | 2021-08-10 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN108155978A (zh) * | 2017-11-27 | 2018-06-12 | 北京机电工程研究所 | 一种VxWorks环境下冗余网卡热备份的方法 |
CN108494534A (zh) * | 2018-03-12 | 2018-09-04 | 西安电子工程研究所 | 一种自行防空武器系统双冗余以太网设计方法 |
CN109445862A (zh) * | 2018-10-31 | 2019-03-08 | 天津七所精密机电技术有限公司 | Windows系统下基于MUX的网卡冗余驱动方法 |
CN109728915A (zh) * | 2018-12-07 | 2019-05-07 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换方法 |
CN109728915B (zh) * | 2018-12-07 | 2020-12-01 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换方法 |
CN109474475B (zh) * | 2018-12-07 | 2020-12-01 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换系统 |
CN109474475A (zh) * | 2018-12-07 | 2019-03-15 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换系统 |
CN110677283A (zh) * | 2019-09-24 | 2020-01-10 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110677283B (zh) * | 2019-09-24 | 2022-06-24 | 北京计算机技术及应用研究所 | 一种网络双冗余快速切换的方法 |
CN110690994A (zh) * | 2019-09-25 | 2020-01-14 | 天津津航计算技术研究所 | 一种通用双冗余网卡切换的方法 |
CN111628891A (zh) * | 2020-05-25 | 2020-09-04 | 中车青岛四方车辆研究所有限公司 | 一种基于qnx的双以太网冗余的实现方法 |
CN112165446A (zh) * | 2020-08-17 | 2021-01-01 | 河北汉光重工有限责任公司 | 一种VxWorks系统网络侦听方法 |
CN113612621A (zh) * | 2021-06-21 | 2021-11-05 | 天津津航计算技术研究所 | 一种VxWorks下双冗余网卡切换时间的精确计算方法 |
CN113626094A (zh) * | 2021-06-21 | 2021-11-09 | 天津津航计算技术研究所 | 一种VxWorks下网卡MAC地址的操作方法 |
CN114157402A (zh) * | 2021-11-15 | 2022-03-08 | 天津市英贝特航天科技有限公司 | 一种双冗余网卡通讯方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468238A (zh) | 基于vxworks系统的双网卡冗余切换方法 | |
US8954785B2 (en) | Redundancy and load balancing in remote direct memory access communications | |
CN101651559B (zh) | 一种存储服务在双控制器存储系统中故障切换的方法 | |
US7827251B2 (en) | Fast write operations to a mirrored volume in a volume manager | |
DE112011102415B4 (de) | Registerzugriff in einer verteilten virtuellen Brückenumgebung | |
CN100541365C (zh) | 一种工业以太网的嵌入式实时控制系统 | |
US11023406B2 (en) | Preservation of port control block information related to logins and states of remote ports during a code load in an embedded port | |
USRE46770E1 (en) | Computer managing method | |
US10372673B2 (en) | Storage network element discovery method and apparatus | |
CN103746927A (zh) | 基于优先级的流控pfc方法及发送设备、接收设备 | |
CN105652851A (zh) | 冗余自动化系统和运行方法 | |
CN105007307A (zh) | 一种存储控制方法和系统 | |
CN107430584B (zh) | 经由具有完全连接网格拓扑的pci express结构从存储读取数据 | |
CN104782081A (zh) | 套接字状态转移 | |
US10623341B2 (en) | Configuration of a set of queues for multi-protocol operations in a target driver | |
US10659348B2 (en) | Holding of a link in an optical interface by a lower level processor until authorization is received from an upper level processor | |
CN104144130A (zh) | 虚拟机系统互联的方法、系统和接入交换机 | |
US20140056175A1 (en) | Integrated device managment over ethernet network | |
CN105450432A (zh) | 一种用于定位端口连接错误的方法和相关设备 | |
US9288267B2 (en) | Handling of data transfer in a LAN-free environment | |
CN104933001A (zh) | 一种基于RapidIO技术的双控制器数据通信方法 | |
CN106411616B (zh) | 一种通过1553b总线管理以太网终端的装置及方法 | |
CN108121496B (zh) | 数据的存储方法、装置和系统 | |
CN102118327A (zh) | 一种多主机网关 | |
WO2019015268A1 (zh) | 一种网络系统及其网络配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150325 |
|
RJ01 | Rejection of invention patent application after publication |