CN110677283A - 一种网络双冗余快速切换的方法 - Google Patents
一种网络双冗余快速切换的方法 Download PDFInfo
- Publication number
- CN110677283A CN110677283A CN201910903254.7A CN201910903254A CN110677283A CN 110677283 A CN110677283 A CN 110677283A CN 201910903254 A CN201910903254 A CN 201910903254A CN 110677283 A CN110677283 A CN 110677283A
- Authority
- CN
- China
- Prior art keywords
- network card
- network
- working
- switching
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网络双冗余快速切换的方法,涉及网络通信技术领域。该方法只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,因此该方法只需要更改网卡的驱动即可实现,而对TCP/IP层的网络协议不做任何的变动,从而可以大大提高网络切换的速度,减少网路切换的时间开销,具体地,切换速度最大可达2倍的任务周期时间,切换时间稳定可调。该方法在Windows、VxWorks、Linux操作系统中均已实现,满足性能要求。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种网络双冗余快速切换的方法。
背景技术
随着网络技术的成熟,以太网已成为各种控制系统互连的主要媒介。在某些特殊的应用场景中,为了提高系统的可靠性和抗毁性,需采用双冗余网络技术。
在双冗余网络中,每个节点都采用两块网卡,中间用两个交换机互连。开始工作后,只有一个链路保持通讯,当某一个链路出现故障时(网卡工作、网线损坏或交换机故障),操作系统自动将连接切换到另外一路没有故障的链路,网络通讯仍能正常运作,这一过程对用户来说是不可见的。
目前很多双冗余网卡的驱动都是基于应用层的,它们实现的方案是:利用操作系统提供的上层接口函数,实现对系统中网卡的动态加载与删除,其实质是将需要冗余的两路网络适配器设置为相同的MAC地址,并采用同一IP地址。如果在系统启动时将两个网卡同时配置好,则会带来地址上的冲突,通常的实现方法是将其中一块网卡关闭,当需要切换时,先将当前网卡从系统列表中删除,再将第二块网卡加载到系统中,并配置相同的IP地址和MAC地址,由于经过的中间环节较多,势必会影响网络间相互切换的速度,切换时间上达不到工控指标上的要求。
同时在某些操作系统(如VxWorks)下,这样在上层进行切换,点对点通讯没有问题,但是会导致组播和广播失败。此时就需要更改TCP/IP协议层的驱动,以适应这种情况。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现一种网络双冗余快速切换的方法,以提高网络切换的速度,减少网路切换的时间开销。
(二)技术方案
为了解决上述技术问题,本发明提供了一种网络双冗余快速切换的方法,包括以下步骤:
步骤S1,系统进行初始化阶段,获取各网卡的硬件资源,并对各网卡做硬件初始化;
步骤S2,将第一块网卡注册至系统中;
步骤S3,将第一块网卡的注册数据记录到冗余组中的第一个位置;
步骤S4,将工作网卡设定为第一块网卡;
步骤S5,将第二块网卡注册到系统中;
步骤S6,将第二块网卡的IP地址、MAC地址设置为与第一块网卡一致;
步骤S7,将第二块网卡加到冗余组中;
步骤S8,启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。
优选地,步骤S8中在驱动层实现网卡的切换。
优选地,步骤S8中实现网卡的切换时,在发送时,网络层向驱动层通知从哪个设备指针发送数据,驱动层接到发送命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据发送,并返回发送状态;在接收时,网络层向驱动层通知从哪个设备指针接收数据,驱动层接到接收命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据接收,并返回发送状态。
优选地,步骤S8中实现网卡的切换时,在层间的通讯通过返回状态来确认,只要实现网络层接口调用返回值的正确即可实现伪装欺骗。
优选地,步骤S8中采用定期判断物理状态变化寄存器中网卡的连接状态,实现网卡的切换。
优选地,步骤S8具体包括以下步骤:
步骤S801,从当前冗余组中各个网卡的物理状态寄存器中读取各个网卡的连接状态,判断当前网卡状态是从断开Down到连接Up,还是从连接Up到断开Down,若是前者,则执行步骤S802,否则执行步骤S806;
步骤S802,当前网卡状态是从断开Down到连接Up,此时检查当前网卡是否为工作网卡,若是,则工作网卡转到步骤S805;否则执行步骤S803;
步骤S803,当前网卡不是工作网卡,此时检查工作网卡是否断线,若工作网卡连线,则不需要进行切换,转到步骤S810,否则执行步骤S804;
步骤S804,工作网卡断线,则将工作网卡切换到当前网卡,通知交换机连接状态发生变化,转到步骤S810;
步骤S805,此时网卡状态从Down到Up,且当前网卡是工作网卡,即前次网络断开两个网卡都是断线,通知网络层网卡连线,转到步骤S810;
步骤S806,当前网卡连接状态从连接Up到断开Down,判断当前网卡是否为工作网卡;若不是则检查下一个网卡的工作状态,否则执行步骤S807;
步骤S807,断开的是工作网卡,检查备份网卡是否连接;
步骤S808,若备份网卡连接,则将工作网卡切换到备份网卡上,转到步骤S810,否则执行步骤809;
步骤S809,判断备份网卡断线,通知网络层网卡断线;
步骤S810,更新各个网卡的前次连接状态,以备下次判断使用。
优选地,所述方法在Windows、VxWorks、Linux操作系统中实现。
本发明还提供了一种网络双冗余快速切换的系统,包括:
系统初始化模块,用于获取各网卡的硬件资源,并对各网卡做硬件初始化;
第一网卡注册模块,用于将第一块网卡注册至系统中;
第一网卡添加模块,用于将第一块网卡的注册数据记录到冗余组中的第一个位置;
工作网卡设定模块,用于将工作网卡设定为第一块网卡;
第二网卡注册模块,用于将第二块网卡注册到系统中;
信息设置模块,用于将第二块网卡的IP地址、MAC地址设置为与第一块网卡一致;
第二网卡添加模块,用于将第二块网卡加到冗余组中;
网卡切换模块,用于启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。
(三)有益效果
本发明提出了一种基于驱动的双冗余网卡切换方法,该方法只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,因此该方法只需要更改网卡的驱动即可实现,而对TCP/IP层的网络协议不做任何的变动,从而可以大大提高网络切换的速度,减少网路切换的时间开销,具体地,切换速度最大可达2倍的任务周期时间,切换时间稳定可调。该方法在Windows、VxWorks、Linux操作系统中均已实现,满足性能要求。
附图说明
图1为TCP/IP四层模型中网络各个层次的关系图;
图2为本发明的双网卡冗余切换方法的总体流程示意图;
图3为本发明的实施方式的在驱动层进行冗余切换的流程示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示给出的TCP/IP四层模型中网络各个层次的关系,包括应用层、传输层、网络层和物理层(实际网卡中,驱动层包含在物理层中,因此双冗余网卡驱动层冗余切换功能在这里实现),各层间需要传递指示使用哪个网络设备指针进行操作。
图2绘示了本发明的实施方式的双网卡冗余切换方法的流程示意图,如图2所示,包括以下步骤:
步骤S1,系统进行初始化阶段,获取各网卡的硬件资源,并对各网卡做基本的硬件初始化;
步骤S2,将第一块网卡注册至系统中;
步骤S3,将第一块网卡的注册数据记录到冗余组中的第一个位置;
步骤S4,将工作网卡设定为第一块网卡;
步骤S5,将第二块网卡注册到系统中;
步骤S6,将第二块网卡的IP地址、MAC地址设置为与第一块网卡一致;
步骤S7,将第二块网卡加到冗余组中;
步骤S8,启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。
步骤S8中在驱动层上实现冗余切换(双冗余)的思路是,网络层与驱动层间的数据传输主要是通过注册网卡设备时的设备指针实现的,那么在网卡驱动可以通过这些特性实现对网络层进行伪装欺骗。具体思路为:发送时,网络层向驱动层通知从哪个设备指针发送数据,驱动层接到发送命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据发送,并返回发送状态;同理,在接收时,网络层向驱动层通知从哪个设备指针接收数据,驱动层接到接收命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据接收,并返回发送状态;由于网络协议栈是分层结构的,因此在层间的通讯主要通过返回状态来确认,只要实现网络层接口调用返回值的正确即可实现伪装欺骗。
步骤S8中双冗余切换的具体方法参见图3,图3中给出了本发明网卡快速切换的具体实施方式。
在网络连接速度是100M时,网络断线(Down)时,中断上报是实时的,但是在网络连接速度是1000M时,网络断线有一个300ms的延时,不能满足冗余切换的实时性,因此网卡断线判断不能采用中断后读取中断事件寄存器的方式实现,因此采用定期判断物理状态变化寄存器中网卡的连接状态,实现网卡的切换。
在双冗余切换的具体方法包括以下步骤:
步骤S801,从当前冗余组中各个网卡的物理状态寄存器中读取各个网卡的连接状态,判断当前网卡状态是从断开(Down)到连接(Up),还是从连接(Up)到断开(Down),若是前者,则执行步骤S802,否则执行步骤S806;
步骤S802,当前网卡状态是从断开(Down)到连接(Up),此时检查当前网卡是否为工作网卡,若是,则工作网卡转到步骤S805;否则执行步骤S803;
步骤S803,当前网卡不是工作网卡,此时检查工作网卡是否断线,若工作网卡连线,则不需要进行切换,转到步骤S810,否则执行步骤S804;
步骤S804,工作网卡断线,则将工作网卡切换到当前网卡,通知交换机连接状态发生变化,转到步骤S810;
步骤S805,此时网卡状态从Down到Up,且当前网卡是工作网卡,即前次网络断开(两个网卡都是断线),通知网络层网卡连线,转到步骤S810;
步骤S806,当前网卡连接状态从连接(Up)到断开(Down),判断当前网卡是否为工作网卡;若不是则检查下一个网卡的工作状态,否则执行步骤S807;
步骤S807,断开的是工作网卡,检查备份网卡是否连接;
步骤S808,若备份网卡连接,则将工作网卡切换到备份网卡上,转到步骤S810,否则执行步骤809;
步骤S809,判断备份网卡断线,通知网络层网卡断线;
步骤S810,更新各个网卡的前次连接状态,以备下次判断使用。
综上,本发明所提出的双网卡冗余快速切换方法,切换速度最大为2倍的任务周期时间,切换时间稳定可调,在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,从而可以大大减少网路切换的时间开销。此方法在Windows、VxWorks、Linux和道系统中均已实现,满足性能要求。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种网络双冗余快速切换的方法,其特征在于,包括以下步骤:
步骤S1,系统进行初始化阶段,获取各网卡的硬件资源,并对各网卡做硬件初始化;
步骤S2,将第一块网卡注册至系统中;
步骤S3,将第一块网卡的注册数据记录到冗余组中的第一个位置;
步骤S4,将工作网卡设定为第一块网卡;
步骤S5,将第二块网卡注册到系统中;
步骤S6,将第二块网卡的IP地址、MAC地址设置为与第一块网卡一致;
步骤S7,将第二块网卡加到冗余组中;
步骤S8,启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。
2.如权利要求1所述的方法,其特征在于,步骤S8中在驱动层实现网卡的切换。
3.如权利要求2所述的方法,其特征在于,步骤S8中实现网卡的切换时,在发送时,网络层向驱动层通知从哪个设备指针发送数据,驱动层接到发送命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据发送,并返回发送状态;在接收时,网络层向驱动层通知从哪个设备指针接收数据,驱动层接到接收命令时,抛弃网络层传递的设备指针,而使用当前工作网卡的设备指针作为物理设备完成数据接收,并返回发送状态。
4.如权利要求3所述的方法,其特征在于,步骤S8中实现网卡的切换时,在层间的通讯通过返回状态来确认,只要实现网络层接口调用返回值的正确即可实现伪装欺骗。
5.如权利要求4所述的方法,其特征在于,步骤S8中采用定期判断物理状态变化寄存器中网卡的连接状态,实现网卡的切换。
6.如权利要求5所述的方法,其特征在于,步骤S8具体包括以下步骤:
步骤S801,从当前冗余组中各个网卡的物理状态寄存器中读取各个网卡的连接状态,判断当前网卡状态是从断开Down到连接Up,还是从连接Up到断开Down,若是前者,则执行步骤S802,否则执行步骤S806;
步骤S802,当前网卡状态是从断开Down到连接Up,此时检查当前网卡是否为工作网卡,若是,则工作网卡转到步骤S805;否则执行步骤S803;
步骤S803,当前网卡不是工作网卡,此时检查工作网卡是否断线,若工作网卡连线,则不需要进行切换,转到步骤S810,否则执行步骤S804;
步骤S804,工作网卡断线,则将工作网卡切换到当前网卡,通知交换机连接状态发生变化,转到步骤S810;
步骤S805,此时网卡状态从Down到Up,且当前网卡是工作网卡,即前次网络断开两个网卡都是断线,通知网络层网卡连线,转到步骤S810;
步骤S806,当前网卡连接状态从连接Up到断开Down,判断当前网卡是否为工作网卡;若不是则检查下一个网卡的工作状态,否则执行步骤S807;
步骤S807,断开的是工作网卡,检查备份网卡是否连接;
步骤S808,若备份网卡连接,则将工作网卡切换到备份网卡上,转到步骤S810,否则执行步骤809;
步骤S809,判断备份网卡断线,通知网络层网卡断线;
步骤S810,更新各个网卡的前次连接状态,以备下次判断使用。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述方法在Windows、VxWorks、Linux操作系统中实现。
8.一种网络双冗余快速切换的系统,其特征在于,包括:
系统初始化模块,用于获取各网卡的硬件资源,并对各网卡做硬件初始化;
第一网卡注册模块,用于将第一块网卡注册至系统中;
第一网卡添加模块,用于将第一块网卡的注册数据记录到冗余组中的第一个位置;
工作网卡设定模块,用于将工作网卡设定为第一块网卡;
第二网卡注册模块,用于将第二块网卡注册到系统中;
信息设置模块,用于将第二块网卡的IP地址、MAC地址设置为与第一块网卡一致;
第二网卡添加模块,用于将第二块网卡加到冗余组中;
网卡切换模块,用于启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910903254.7A CN110677283B (zh) | 2019-09-24 | 2019-09-24 | 一种网络双冗余快速切换的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910903254.7A CN110677283B (zh) | 2019-09-24 | 2019-09-24 | 一种网络双冗余快速切换的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110677283A true CN110677283A (zh) | 2020-01-10 |
CN110677283B CN110677283B (zh) | 2022-06-24 |
Family
ID=69077564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910903254.7A Active CN110677283B (zh) | 2019-09-24 | 2019-09-24 | 一种网络双冗余快速切换的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110677283B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124667A (zh) * | 2021-10-13 | 2022-03-01 | 北京国科天迅科技有限公司 | 一种双网口冗余备份方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263660A (zh) * | 2011-07-19 | 2011-11-30 | 中国舰船研究设计中心 | 双网卡冗余切换方法及装置 |
EP2698964A1 (de) * | 2012-08-14 | 2014-02-19 | Giesecke & Devrient GmbH | Verfahren zum Betreiben eines Teilnehmeridentitätsmoduls |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN109728915A (zh) * | 2018-12-07 | 2019-05-07 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换方法 |
CN109831341A (zh) * | 2019-03-19 | 2019-05-31 | 中国电子科技集团公司第三十六研究所 | 一种冗余双网卡的快速切换方法及装置 |
-
2019
- 2019-09-24 CN CN201910903254.7A patent/CN110677283B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263660A (zh) * | 2011-07-19 | 2011-11-30 | 中国舰船研究设计中心 | 双网卡冗余切换方法及装置 |
EP2698964A1 (de) * | 2012-08-14 | 2014-02-19 | Giesecke & Devrient GmbH | Verfahren zum Betreiben eines Teilnehmeridentitätsmoduls |
CN104468238A (zh) * | 2014-12-22 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 基于vxworks系统的双网卡冗余切换方法 |
CN109728915A (zh) * | 2018-12-07 | 2019-05-07 | 天津津航计算技术研究所 | windows XPE下双冗余网卡的切换方法 |
CN109831341A (zh) * | 2019-03-19 | 2019-05-31 | 中国电子科技集团公司第三十六研究所 | 一种冗余双网卡的快速切换方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124667A (zh) * | 2021-10-13 | 2022-03-01 | 北京国科天迅科技有限公司 | 一种双网口冗余备份方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110677283B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166356B (zh) | 发送报文的方法和网络设备 | |
US10708132B2 (en) | Technique for handling a status change in an interconnect node | |
CN110912780A (zh) | 一种高可用集群检测方法、系统及受控终端 | |
US10764119B2 (en) | Link handover method for service in storage system, and storage device | |
CN107465613B (zh) | 链路聚合接口通信状态切换方法及装置 | |
CN101488918A (zh) | 一种多网卡服务器的接入方法和系统 | |
US20140185429A1 (en) | Communication system, path switching method and communication device | |
CN114500161A (zh) | 基于车载以太环网的冗余链路切换方法及可读存储介质 | |
CN101989953A (zh) | 双向转发检测报文的发送方法及设备 | |
CN111988222A (zh) | 数据传输方法及装置、电子设备和计算机可读存储介质 | |
CN105141493A (zh) | 环网故障时的业务帧处理方法及系统 | |
CN110278094B (zh) | 链路恢复方法及装置、系统、存储介质、电子装置 | |
CN110677283B (zh) | 一种网络双冗余快速切换的方法 | |
US10819628B1 (en) | Virtual link trunking control of virtual router redundancy protocol master designation | |
CN104427012A (zh) | 端口协商方法和设备 | |
WO2022217786A1 (zh) | 多总线网络跨网通信方法、装置、系统、设备和存储介质 | |
CN102244589A (zh) | 处理虚拟交换单元系统中链路故障的方法及对端设备 | |
CN115499270B (zh) | 网络控制方法及装置、车辆及计算机可读存储介质 | |
US9323629B2 (en) | Method for managing path failures of OSEK networks | |
CN110875880B (zh) | 一种数据传输方法、相关设备、系统及计算机存储介质 | |
CN102271049B (zh) | 通信设备状态设置方法、装置和系统 | |
CN112543113A (zh) | 一种灵活以太网响应链路故障的方法、装置、设备及介质 | |
CN102857423A (zh) | 一种分布式链路聚合系统中业务流转发方法及节点 | |
CN113037622B (zh) | 一种防止bfd震荡的系统及方法 | |
CN111224803B (zh) | 一种堆叠系统中多主检测方法及堆叠系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |