一种单板的网卡的切换方法、分布式系统及单板的制作方法

文档序号:7928537阅读:197来源:国知局
专利名称:一种单板的网卡的切换方法、分布式系统及单板的制作方法
技术领域
本发明涉及网络通信技术,尤其涉及一种单板的网卡的切换方法、分布式 系统及单板。
背景技术
随着因特网的迅猛发展,分布式系统的应用也越来越广泛。 一般来说,分
布式系统由3个主要部分组成主控板、背板和业务板。主控板和业务板间通 过背板以以太网进行板间通讯。以分布式交换机为例,系统中包括主控板、 背板和线卡,主控板和线卡上均装有网卡用于板间通讯。
由于现在通信业务量的剧增,很难避免由于线卡上的网卡故障或网卡与主 用主控板间的链路故障,而导致板间通信链路发生故障而中断,严重的会导致 主控和线卡之间的报文交互被阻止,线卡脱离主控的控制,导致通信业务受到 影响。

发明内容
本发明的目的是提供一种单板的网卡的切换方法、分布式系统及单板,以 解决由于单板上的网卡故障或网卡与主用主控板间的链路故障导致通信业务 受到影响的问题。本发明的单板的网卡的切换方法包括所述单板上包括具有 相同的媒体接入控制地址的第一网卡和第二网卡,所述第一网卡被绑定网际协 议地址,所述方法包括发送步骤和接收步骤,其中
发送步骤包括
发送函数利用所述第 一 网卡进行数据发送;
切换条件成立时,切换到所述第二网卡,利用所述第二网卡进行数据发送; 接收步骤包括
接收数据函数将接收到的数据返回所述第一网卡的网际协议层。
4第一全局指针和第二全局指针分别指向所述第一网卡和第二网卡的控制
数据结构,所述发送步骤具体为
发送函数使用所述第一全局指针作为入口参数,利用所述第一网卡进行数 据发送;
切换条件成立时,将所述发送函数的入口参数替换为所述第二全局指针, 利用所述第二网卡进行数据发送。
在所述接收步骤中,当接收数据的中断产生时,所述接收数据函数被调用, 调用时的参数由操作系统根据实际接收数据报的网卡填充为所述第 一全局指 针或第二全局指针,在所述接收数据函数从所述第一全局指针或第二全局指针 对应的网卡上获取到数据后, 一律将数据通过所述第一全局指针返回给网际协 议层。
所述操作系统为VxWorks操作系统。
本发明还提供了一种分布式系统,包括主用主控板、备用主控板、单板; 所述单板包括具有相同的媒体接入控制地址的第一网卡和第二网卡,所 述第 一 网卡^皮绑定网际协议地址;
所述第 一 网卡与所述主用主控板之间具有第 一链路; 所述第二网卡与所述备用主控板之间具有第二链路; 所述单板还包^":
链路状态检测模块,用于检测所述第一链路和第二链路的可用性; 链路切换模块,用于在所述第 一 网卡和第二网卡间之间切换。 第一全局指针和第二全局指针分别指向所述第一网卡和第二网卡的控制 数据结构,所述链路状态检测模块检测到所述第一链路不可用时,所述链路切 换模块将发送函数的入口参数替换为所述第二全局指针,利用所述第二网卡进 行数据发送;
所述链路状态检测模块检测到所述第一链路可用时,仍然通过所述发送函 数默认的所述第 一全局指针发送数据。 本发明还提供了一种单板,包括
具有相同的媒体接入控制地址的第 一网卡和第二网卡,所述第 一 网卡被绑 定网际协议地址;所述第 一 网卡与主用主控板建立第 一链路; 所述第二网卡与备用主控板建立第二链路;
所述单板还包括
链路状态检测模块,用于检测所述第一链路和第二链路的可用性; 链路切换模块,用于在所述第 一 网卡和第二网卡间之间切换。 第一全局指针和第二全局指针分别指向所述第一网卡和第二网卡的控制 数据结构,所述链路状态检测模块检测到所述第一链路不可用时,所述链路切 换模块将发送函数的入口参数替换为所述第二全局指针,利用所述第二网卡进 行数据发送;
所述链路状态检测模块检测到所述第一链路可用时,仍然通过所述发送函 数默认的所述第 一全局指针发送数据。
与现有技术相比,本发明具有以下有益效果
1、 本发明中对线卡单方面进行网口M,在线卡的一个网卡出现故障时, 自动切换到另 一个网卡,从而提高板间通讯的稳定性和健壮性。
2、 通过将线卡上的两个网卡的MAC地址设置为相同,并将其IP地址也 设置为相同,实现透明于上层应用的网卡间的切换。本发明的网卡间的切换方 法在数据链路层实现,不会对上层应用产生影响。
3、 成本^f氐、易于实现和维护。


图1为本发明的分布式系统的结构示意图; 图2为本发明的线卡中的切换装置示意图; 图3为实现数据链路层切换的方法流程图; 图4为从应用角度看本发明的示意图。
具体实施例方式
本发明提供了 一种透明于上层应用的网卡间的切换方法,该网卡是线卡上 用于板间通信的网卡。本发明的切换方法在链路层实现,线卡上的主备网口可 以根据链路好坏实现自动的切换。本发明是以分布式交换机为例进行的说明,当然也可以是路由器,在路由器上,线卡被称为业务板,都是属于单板。
下面结合附图对本发明的分布式系统及切换方法进行说明。本发明以在
VxWorks操作系统下的切换进行说明。在VxWorks操作系统下,相同类型的 网卡使用相同的驱动程序,网卡之间由驱动程序提供的句柄来区别, MUX(multiplex layer,复合层)调用网卡的驱动程序接口时,会把网卡的句柄 传入函数中,这为驱动层实现网卡的切换成为可能。
参考图1,图1为本发明的分布式系统结构示意图(图中显示了线卡与主 控板间的连接方式),包括
主用主控板3、备用主控板4、线卡5。其中线卡5上包括有双网卡,分 别为经过背板10与主用主控板3的Switch (交换机)8连接的主通讯网卡1 和经过背板10与备用主控板4的Switch9连接的备通讯网卡2。网卡1和网卡 2 1: l备份。网卡1与主用主控板3形成主用通讯通道6,网卡2与备用主控 板4形成备用通讯通道7。
默认情况下,线卡5使用主通讯网卡1,经由主用主控板3上的Switch8 与主用主控板3通讯,备用主控板4经由主用主控板3上的Switch8与网卡1 通讯。
当主通讯网卡1故障或主通讯网卡1与主用主控板3间链路故障时,线卡 5中的切换装置将当前使用的网卡从网卡1切换到网卡2,使备通讯网卡2经 由与备用主控板4的Switch9之间的通道7 (虚线所示),以及经由备用主控板 4的Switch9与主用主控板3的Switch8之间的链路,与主用主控板3通讯。
线卡5中的切换装置参考图2所示。图2包括初始化模块、IP (Internet Protocol,网际协议)地址绑定模块、调用模块、链路状态检测模块和链路切 换模块。
当分布式系统启动后,由初始化模块对网卡1和2初始化,使这2个网卡 有相同的MAC(Media Access Control,媒体访问控制)地址,并用2个全局指针 pl、 p2分别指向2个网卡的控制数据结构。
初始化完成后,IP地址绑定模块为网卡1绑定IP地址,网卡1开始工作。 然后,发送函数和接收数据函数等待被调用模块调用,本实施例中的发送 函数由MUX调用。接收函数是中断处理函数,中断产生时候,操作系统就调用接收函数。在发送函数和接收数据函数等待被调用时,链路状态检测模块对 主用通讯通道和备用通讯通道的可用性进行检测,如果链路满足预先设定的切
换条件,则将flag的值赋为l,如果不满足切换条件,则将flag的值赋为0。
一旦发送函数和接收数据函数被调用,则由链路切换模块根据调用的函数 决定如何执行切换操作。
当MUX层发送数据时,网卡的发送函数被调用,如果链路状态检测模块 判断当前flag=l,链路切换模块就将发送函数的入口参数替换为p2,然后发 送数据,如果链路状态检测模块判断当前flag-O,则链路切换模块仍然使用发 送函数默认的入口参数pl发送数据。
当接收数据的中断产生时,中断处理函数(网卡的接收数据函数)4皮调用。 调用时的参数由操作系统根据实际接收数据报的网卡填充为pl或者p2, 接 收数据函数中,不论参数值是pl还是p2,在从pl或p2对应的网卡上获取到 数据后, 一律将数据通过pl返回给IP层。
上述收发数据的过程中,应用程序自始至终只看见网卡1,其IP地址为
预先绑定的IP地址。线卡5与主用主控板3之间的通信并没有因为链路状态
的变化而受到影响。
本发明的系统中,线卡5上的两个网卡虽然使用了两个通道,但是由于这 两个网卡具有相同的物理地址和IP地址,因此,对于高层应用来说,仍然呈
现单网卡的特点,不会对高层应用产生影响。
参考图3,图3为本发明的实现数据链路层切换的方法流程图,包括以下 步骤
系统启动后,初始4匕网卡1和2, -使2个网卡有相同的MAC(Media Access Control, 士某体访问控制)地址,并用2个全局指针pl、 p2指向2个网卡的控制 数据结构;
通过定义这2个指针,使得在MUX调用网卡驱动程序的接口时,就可以 根据需要选择相应网卡的数据结构,以实现网卡间的切换。 为网卡1绑定IP地址,网卡l开始工作; 检测链路状态,并根据链路状态对flag (标记)赋值; 假设满足切换条件时,使flag-l,不满足切换条件时,使flag-0。在检测链路状态的过程中,网卡的发送函数和接收数据函数等待被调用, 发送和接收例程一旦被调用,将进入到以下具体的切换过程。
对于发送例程,如果判断当前flag=l,就将发送函数的入口参数替换为 p2,然后发送数据,如果判断当前flag-0,则仍然使用发送函数默认的入口参 数pl发送数据。
对于接收例程,只有与高层绑定的网卡1收到的凄t据才能向上传递。也就 是说,在双网卡用于备份的驱动程序中,不是由MUX指定的网卡2的句柄p2 向上传递数据(即使数据是由网卡2接收的),而是根据与IP层绑定的网卡1 向上传递数据。
本实施例中,收到的数据一律通过pl返回给IP层,应用程序自始至终只 看见网卡l,其IP地址为预先绑定的IP地址。线卡与主用主控板的通信并没 有因为链路状态的变化而受到影响。
根据分层的网络模型,也可以将本发明的系统用分层的概念来描述。参考 图4,图4为从应用角度看本发明的示意图。图4中,层与层之间都是调用的 关系。应用程序通过Socket (套)接口可以使用TCP/IP协议族通讯,TCP/IP 协议族与MUX层的调用关系被VxWorks封装,MUX对网口驱动程序的调用 使用了 Vxworks网卡驱动的标准接口 ,网卡驱动对以太网卡的操作遵循802.3 标准。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰, 这些改进和润饰也应^L为本发明的保护范围。
权利要求
1. 一种单板的网卡的切换方法,其特征在于,所述单板上包括具有相同的媒体接入控制地址的第一网卡和第二网卡,所述第一网卡被绑定网际协议地址,所述方法包括发送步骤和接收步骤,其中发送步骤包括发送函数利用所述第一网卡进行数据发送;切换条件成立时,切换到所述第二网卡,利用所述第二网卡进行数据发送;接收步骤包括接收数据函数将接收到的数据返回所述第一网卡的网际协议层。
2. 如权利要求1所述的单板的网卡的切换方法,其特征在于,第一全局 指针和第二全局指针分别指向所述第一网卡和第二网卡的控制数据结构,所述发送步骤具体为发送函数使用所述第一全局指针作为入口参数,利用所述第一网卡进行数 据发送;切换条件成立时,将所述发送函数的入口参数替换为所述第二全局指针, 利用所述第二网卡进行数据发送。
3. 如权利要求1所述的单板的网卡的切换方法,其特征在于,在所述接 收步骤中,当接收数据的中断产生时,所述接收数据函数被调用,调用时的参 数由操作系统根据实际接收数据报的网卡填充为所述第 一全局指针或第二全 局指针,在所述接收数据函数从所述第 一全局指针或第二全局指针对应的网卡上获取到数据后, 一律将数据通过所述第一全局指针返回给网际协议层。
4. 如权利要求3所述的单板的网卡的切换方法,其特征在于,所述操作系统为VxWorks操作系统。
5. —种分布式系统,包括主用主控板、备用主控板、单板; 其特征在于,所述单板包括具有相同的媒体接入控制地址的第一网卡和第二网卡,所 述第一网卡^皮绑定网际协i义地址;所述第 一 网卡与所述主用主控板之间具有第 一链路;所述第二网卡与所述备用主控板之间具有第二链路; 所述单板还包括链路状态检测模块,用于检测所述第一链路和第二链路的可用性; 链路切换模块,用于在所述第 一 网卡和第二网卡间之间切换。
6. 如权利要求5所述的分布式系统,其特征在于,第一全局指针和第二 全局指针分别指向所述第一网卡和第二网卡的控制数据结构,所述链路状态检 测模块检测到所述第一链路不可用时,所述链路切换模块将发送函数的入口参 数替换为所述第二全局指针,利用所述第二网卡进行数据发送;所述链路状态检测模块检测到所述第一链路可用时,仍然通过所述发送函 数默认的所述第 一全局指针发送数据。
7. —种单板,其特征在于,包括具有相同的々某体接入控制地址的第 一 网卡和第二网卡,所述第 一 网卡被绑 定网际协议地址;所述第 一 网卡与主用主控板建立第 一链路; 所述第二网卡与备用主控板建立第二链路; 所述单板还包括链路状态检测模块,用于检测所述第一链路和第二链路的可用性; 链路切换模块,用于在所述第 一 网卡和第二网卡间之间切换。
8. 如权利要求7所述的单板,其特征在于,第一全局指针和第二全局指 针分别指向所述第一网卡和第二网卡的控制数据结构,所述链路状态检测模块 检测到所述第一链路不可用时,所述链路切换模块将发送函数的入口参数替换 为所述第二全局指针,利用所述第二网卡进行数据发送;所述链路状态检测模块检测到所述第一链路可用时,仍然通过所述发送函 数默认的所述第 一全局指针发送数据。
全文摘要
本发明提供了一种单板的网卡的切换方法、分布式系统及单板,其中,单板的网卡的切换方法包括单板上包括具有相同的媒体接入控制地址的第一网卡和第二网卡,所述第一网卡被绑定网际协议地址,所述方法包括发送步骤和接收步骤,其中发送步骤包括发送函数利用第一网卡进行数据发送;切换条件成立时,切换到第二网卡,利用第二网卡进行数据发送;接收步骤包括接收数据函数将接收到的数据返回第一网卡的网际协议层。本发明中对线卡单方面进行网口备份,在线卡的一个网卡出现故障时,自动切换到另一个网卡,从而提高板间通讯的稳定性和健壮性,实现透明于上层应用的网卡间的切换,不会对上层应用产生影响。成本低、易于实现和维护。
文档编号H04L12/26GK101436963SQ20081023892
公开日2009年5月20日 申请日期2008年12月4日 优先权日2008年12月4日
发明者潜 仇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1