当前位置:文档之家› 网络双冗余快速切换的方法与制作流程

网络双冗余快速切换的方法与制作流程

本技术涉及一种网络双冗余快速切换的方法,涉及网络通信技术领域。

该方法只在驱动层就可实现网卡切换的动作,不需要更高层的模块协助处理,因此该方法只需要更改网卡的驱动即可实现,而对TCP/IP层的网络协议不做任何的变动,从而可以大大提高网络切换的速度,减少网路切换的时间开销,具体地,切换速度最大可达2倍的任务周期时间,切换时间稳定可调。

该方法在Windows、VxWorks、Linux操作系统中均已实现,满足性能要求。

权利要求书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地址设置为与第一块网卡一致;第二网卡添加模块,用于将第二块网卡加到冗余组中;网卡切换模块,用于启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。

技术说明书一种网络双冗余快速切换的方法技术领域本技术涉及网络通信技术领域,具体涉及一种网络双冗余快速切换的方法。

背景技术随着网络技术的成熟,以太网已成为各种控制系统互连的主要媒介。

在某些特殊的应用场景中,为了提高系统的可靠性和抗毁性,需采用双冗余网络技术。

在双冗余网络中,每个节点都采用两块网卡,中间用两个交换机互连。

开始工作后,只有一个链路保持通讯,当某一个链路出现故障时(网卡工作、网线损坏或交换机故障),操作系统自动将连接切换到另外一路没有故障的链路,网络通讯仍能正常运作,这一过程对用户来说是不可见的。

目前很多双冗余网卡的驱动都是基于应用层的,它们实现的方案是:利用操作系统提供的上层接口函数,实现对系统中网卡的动态加载与删除,其实质是将需要冗余的两路网络适配器设置为相同的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,启动网络监视任务,在此任务中实现网卡连接状态的监视和网卡的切换。

相关主题