专利名称::数据通信方法、系统、主控卡及线卡的制作方法
技术领域:
:本发明涉及数据通信
技术领域:
,具体涉及数据通信方法、系统、主控卡及线卡。
背景技术:
:分布式路由器上包含多个线卡和一个主控卡,线卡和线卡之间、以及线卡和主控卡之间都可进行板间数据通信。对于基于交换网方式的分布式路由器来说,主控卡和线卡之间、以及线卡相互之间进行数据通信时,发送方只需将数据直接发送给接收方即可,无需预先建立通信连接。但是,随着网络环境的多样化,出现了基于非交换网方式的分布式路由器,例如基于外设部件互联升级(PCI-E,PeripheralComponentsInterconnectExpress)协议的分布式路由器,此时主控卡和线卡之间、以及线卡相互之间进行数据通信时,发送方必须预先得知发送方可操作的接收方的緩冲区地址或包地址,然后将数据发到该地址对应的緩冲区或包中,接收方从该緩冲区或包中读取该数据。因此,现有的基于交换网方式的数据通信方式无法适用于该基于非交换网方式的分布式路由器中,现有技术未给出该方面的解决方案。
发明内容本发明提供数据通信方法、系统、主控卡和线卡,以实现基于非交换网环境下的数据通信。本发明的技术方案是这样实现的一种数据通信方法,包括主控卡接收在位线卡发来的通信属性信息,并将所有在位线卡的通信属性信息通知给该在位线卡;该在位线卡根据主控卡发来的所有在位线卡的通信属性信息,与其它在位线卡建立数据通道连接,并通过该数据通道连接与其它在位线卡进行数据通信。所述在位线卡的通信属性信息至少包括各在位线卡的槽位号和板卡类型;所述主控卡接收在位线卡发来的通信属性信息之前进一步包括在位线卡向主控卡发送携带自身通信属性信息的查询请求。所述在位线卡与其它在位线卡建立数据通道连接包括在位线卡分别向其它在位线卡发送携带其它在位线卡可操作的自身存储地址信息的连接建立请求,并将自身与返回连接建立响应的在位线卡之间的连接状态记录为连接建立状态;在位线卡与其它在位线卡进行数据通信包括在位线卡判断自身记录的与其它在位线卡之间的连接状态是否为连接建立状态,若是,与其它在位线卡进行数据通信;否则,不与其它在位线卡进行数据通信。所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括该在位线卡收到该通信属性信息,向主控卡发送携带主控卡可操作的该在位线卡的存储地址信息的连接建立请求,若收到主控卡返回的该在位线卡可操作的主控卡的存储地址信息的连接建立响应,则将自身记录的与主控卡之间的连接状态设置为连接建立状态;且,该设置为连接建立状态的在位线卡与主控卡进行数据通信。所述该在位线卡向主控卡发送连接建立请求之后进一步包括主控卡收到该在位线卡发来的连接建立请求,则在自身保存该连接建立请求携带的地址信息与该在位线卡标识的对应关系,并将自身记录的与该在位线卡之间的连接状态设置为连接建立状态,并向该在位线卡返回连接建立响应;且,该设置为连接建立状态的主控卡与该在位线卡进行数据通信。所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括主控卡确定有在位线卡被释放,则释放与该被释放线卡之间的数据通道连接,并将自身记录的与该被释放线卡之间的连接状态设置为不在位状态,并向各在位线卡发送携带该被释放线卡通信属性信息的连接删除请求,收到该请求的各在位线卡,释放自身与该被释放线卡之间的数据通道连接,并将自身记录的与该被释放线卡之间的连接状态设置为不在位状态。所述主控卡接收在位线卡发来的通信属性信息之后、将所有在位线卡的通信属性信息通知给该在位线卡之前进一步包括主控卡在自身与备用主控卡都可访问的存储空间中记录该在位线卡的通信属性信息;所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括在主控卡工作异常时,备用主控卡从所述存储空间中读取所有在位线卡的通信属性信息,将该备用主控卡和所有在位线卡的通信属性信息通知各在位线卡,各在位线卡根据该备用主控卡和所有在位线卡的通信属性信息,更改自身记录的主控卡及所有在位线卡的通信属性信息。所述各在位线卡更改自身记录的主控卡及所有在位线卡的通信属性信息之后进一步包括各在位线卡与新主用主控卡建立数据通信连接,并在建立成功时,将在自身记录的与该新主用主控卡之间的连接状态设置为连接建立状态;同时,各在位线卡比较备用主控卡发来的所有在位线卡的通信属性信息与自身记录的与各线卡的连接状态信息,若检测到有新在位线卡加入,与该新在位线卡建立数据通道连接,并在建立成功时,将在自身记录的与该新在位线卡之间的连接状态设置为连接建立状态;若检测到有在位线卡释放,则将自身记录的与该被释放线卡之间的连接状态由连接建立状态更改为不在位状态。一种数据通信系统,包括主控卡和线卡,其中主控卡,接收并记录在位线卡上报的通信属性信息,将所有在位线卡的通信属性信息发送给该在位线卡;线卡,成为在位线卡后,向主控卡上报自身的通信属性信息,根据主控卡发来的所有在位线卡的通信属性信息,与其它在位线卡建立数据通道连接,根据所建立的数据通道连接与其它在位线卡进行数据通信。所述主控卡包括线卡状态维护模块,记录各在位线卡的通信属性信息,以及主控卡与各在位线卡之间的连接状态信息;线卡状态通知模块,接收在位线卡上报的通信属性信息,在线卡状态维护模块中保存该在位线卡的通信属性信息,并将主控卡和所有在位线卡的通信属性信息发送给该在位线卡;连接建立模块,接收到在位线卡发来的连接建立请求,在线卡状态维护模块中将主控卡与该在位线卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取主控卡与在位线卡之间的连接状态,若该连接状态为连接建立状态,则开始与该在位线卡进行数据通信;否则,不与该在位线卡进行数据通信。所述线卡包括在位状态上报模块,在上电时,向主控卡发送本在位线卡的通信属性信息;线卡状态维护模块,用于保存主控卡和所有在位线卡的通信属性信息,以及本在位线卡与其它在位线卡之间、以及本在位线卡与主控卡之间的连接状态信息;连接建立模块,接收到主控卡发来的主控卡和所有在位线卡的通信属性信息,将该主控卡和所有在位线卡的通信属性信息保存在线卡状态维护模块中,向各在位线卡和主控卡发送连接建立请求,若收到在位线卡和/或主控卡返回的连接建立响应,则在线卡状态维护模块中将本在位线卡与该在位线卡和/或主控卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取本在位线卡与其它在位线卡或主控卡之间的连接状态,判断该连接状态是否为连接建立,若是,开始与其它在位线卡或主控卡进行数据通信;否则,不与其它在位线卡或主控卡进行数据通信。一种主控卡,包括线卡状态维护模块、线卡状态通知模块、连接建立模块和数据通信模块,其中线卡状态维护模块,记录所有在位线卡的通知属性信息,以及主控卡与各在位线卡之间的连接状态信息;线卡状态通知模块,接收在位线卡发来的通信属性信息,在线卡状态维护模块中记录该在位线卡的通知属性信息,将主控卡和所有在位线卡的通知属性信息发送给该在位线卡;连接建立模块,接收到在位线卡发来的连接建立请求,在线卡状态维护模块中将主控卡与该在位线卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取主控卡与在位线卡之间的连接状态,若该连接状态为连接建立状态,则开始与该在位线卡进行数据通信;否则,不与该在位线卡进行数据通信。该主控卡进一步包括线卡释放处理模块和连接删除模块,其中线卡释放处理模块,接收到携带被释放线卡通信属性信息的释放通知,在线卡状态维护模块中将主控卡与该被释放线卡之间的连接状态更改为不在位状态,并在线卡状态维护模块中将主控卡与该被释放线卡之间的释放状态设置为删除中状态,将主控卡与各在位线卡之间的释放通知状态设置为发送删除中状太.连接删除模块,在状态检测周期中,检测到线卡状态维护模块中记录的主控卡与被释放线卡之间的释放状态为删除中状态,则将该释放状态更改为删除完成状态;检测到主控卡与各在位线卡之间的释放通知状态为发送删除中状态,则向各在位线卡发送携带被释放线卡标识的连接删除请求,并在收到在位线卡返回的连接删除响应后,将线卡状态维护^t块中记录的主控卡与该在位线卡之间的释放通知状态由发送删除中状态更改为发送删除完成状态。该主控卡进一步包括主备倒换处理模块,检测到本主控卡由备用主控卡升级为主用主控卡,则从线卡状态维护模块读取所有在位线卡的通信属性信息,向各在位线卡分别发送本主控卡和所有在位线卡的通信属性信息。一种线卡,该线卡包括在位状态上报模块、线卡状态维护模块、连接建立模块和数据通信模块,其中在位状态上报模块,在上电时,向主控卡发送本在位线卡的通信属性信息,将主控卡返回的所有在位线卡的通信属性信息保存在线卡状态维护模块,向连接建立模块发送建立连接指示;线卡状态维护模块,用于保存本在位线卡与其它在位线卡之间的连接状态信息、以及本在位线卡与主控卡之间的连接状态信息;连接建立模块,接收到在位状态上报模块发来的建立连接指示,从线卡状态维护模块读取所有在位线卡的通信属性信息,向各在位线卡和主控卡发送连接建立请求,若收到在位线卡和/或主控卡返回的连接建立响应,则在线卡状态维护模块中将本在位线卡与该线卡和/或主控卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取本在位线卡与其它在位线卡和/或主控卡的连接状态,若该连接状态为连接建立状态,则开始与其它在位线卡和/或主控卡进行数据通信;否则,不与其它在位线卡和/或主控卡进行数据通信。该线卡进一步包括连接删除模块,接收主控卡发来的携带被释放线卡通信属性信息的连接删除请求,在线卡状态维护模块中将本在位线卡与该被释放线卡之间的连接状态更改为不在位状态,同时向主控卡返回连接删除响应。该线卡进一步包括主备倒换处理模块,接收主控卡发来的所有在位线卡的通信属性信息,确定该主控卡为主备倒换后的新主用主控卡,将新主用主控卡标识发送给连接建立模块,根据该所有在位线卡的通信属性信息以及线卡状态维护模块中保存的本在位线卡与各线卡之间的连接状态信息,若检测到有新在位线卡加入,则将该新在位线卡标识发送给连接建立^f莫块;若纟企测到有在位线卡被释放,则将该被释放线卡通信属性信息发送给连接删除模块;所述连接建立模块收到主备倒换处理模块发来的新主用主控卡标识和新在位线卡标识后,向新主用主控卡和新在位线卡发送连接建立请求,若收到该新主用主控卡和/或新在位线卡返回的连接建立响应,则在线卡状态维护模块中将本在位线卡与新主用主控卡和/或该新在位线卡之间的连接状态设置为连接建立状态;所述连接删除模块收到主备倒换处理模块发来的被释放线卡通信属性信息后,释放本在位线卡与该被释放线卡之间的数据通道连接,并在线卡状态维护模块中将本在位线卡与该被释放线卡之间的连接状态更改为不在位状态。与现有技术相比,本发明实施例通过主控卡在收到在位线卡发来的通信属性信息如线卡槽位号和板卡类型后,将所有在位线卡上报的通信属性信息如线卡槽位号和板卡类型发送给该在位线卡,然后该在位线卡根据其它在位线卡的通信属性信息如线卡槽位号和板卡类型,与其它在位线卡分别建立数据通道连接,实现了基于非交换网环境下的数据通信。另外,本发明实施例中,主控卡和线卡之间以及线卡相互之间传输的消息报文采用了定时重传机制,提高了板间数据通信的稳定性。图1为本发明实施例提供的分布式路由器的板间数据通信的示意图2为发明实施例提供的实现板间数据通信的流程图3为本发明实施例提供的当在位线卡被释放时,更改FSM中的板间数据通道连接状态的流程图4为本发明实施例提供的当主控卡进行主备倒换时,板间数据通道连接更新的流程图5为本发明实施例提供的板间数据通信系统的组成图。具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。分布式路由器上的每个线卡都有可能和主控卡或者其它线卡发生数据通信,且通信都是双向的。图1给出了分布式路由器的板间数据通信的示意图,如图l所示,可以把分布式路由器的板间数据通信看作一个端到端的全连接网络,每个线卡AD和主控卡都可以看作一个端设备。每一个连接即主控卡与各线卡AD之间的连接、线卡AD相互之间的连接都是端到端的单向连接,彼此独立。本发明的核心思想是当线卡在位时,向主控卡上报自身的槽位号和板卡类型,主控卡将所有在位线卡的槽位号和板卡类型发送给该在位线卡,之后该在位线卡根据其它在位线卡的槽位号,将自身的板卡类型和对方可操作自身的存储地址信息发送给其它在位线卡,从而与其它在位线卡建立数据通道连接,当该在位线卡要与另一个线卡进行数据通信时,首先判断自身是否已与该另一线卡建立连接,若是,则向该另一线卡发送数据。本发明实施例中,分布式路由器的主控卡和每个线卡上都分别具有一个有限状态机(FSM,FiniteStateMachine)。对于主控卡上的FSM来说,该FSM用于维护主控卡与各线卡之间的连接状态;且,当有线卡被释放时,维护主控卡与被释放线卡间的释放状态,以及维护主控卡与各在位线卡之间的释放通知状态;且,当主控卡发生主备倒换时,维护新主控卡和各在位线卡之间的通知状态。对于线卡上的FSM来说,该FSM用于维护该线卡和其它各线卡之间的连接状态。其中,连接状态包括连接建立状态和不在位状态,释放状态包括删除中状态和删除完成状态,释放通知状态包括发送删除中状态和发送删除完成状态,通知状态包括通知下发中状态和通知下发完成状态。本发明实施例中,板间数据通信采用PCI-E协议,提到的消息报文都为远程过程调用通讯(RPC,RemoteProgressCommunication)消息寺艮文,因此,首先对RPC消息报文的格式进行说明RPC消息报文为请求/回应报文,即发送方发出一个RPC消息报文,接收方收到该报文必须向发送方返回一个回应报文。表1给出了RPC消息报文头格式<table>tableseeoriginaldocumentpage15</column></row><table>头消息类型请求/回应标识数据域长度保留表1RPC消息报文头才各式RPC消息报文主要由报文头和数据域两部分构成,如表1所示,报文头包括错误标志,用于指示报文是否产生传输错误。当发送方发出一个RPC消息报文时,将错误标志置为0,当接收方收到该报文时,若检测到错误标志为0,则确认报文传输正常,进行后续处理;若检测到错误标志为1,则确认该报文传输异常,构造回应报文,并将回应报文中的错误标志置1,发送方收到该回应报文后,检测到错误标志为1,则重复向接收方发送RPC消息报文。源槽位号发送方的槽位号。目的槽位号接收方的槽位号。消息类型用于指示RPC消息报文的类型。本发明实施例中的RPC消息报文共分为4种类型查询消息报文、连接建立消息报文、连接删除消息报文和通知消息报文。例如当消息类型值为0x00时,表示该报文为查询消息报文;当消息类型值为0x01时,表示该报文为连接建立消息报文;当消息类型值为0x02时,表示该报文为连接删除消息报文;当消息类型值为0x03时,表示该报文为通知消息报文。请求/回应标识用于表示该报文为请求报文还是回应报文。例如当值为0时,表示请求报文;当值为l时,表示响应报文。数据域长度用于指示该报文的数据域部分所包含数据的长度。数据域即数据部分。图2为本发明实施例提供的实现板间数据通信的流程图,如图2所示,其具体步骤如下步骤201:线卡上电,线卡上的FSM进行初始化,初始化完毕,线卡向主控卡发送查询请求消息报文,同时启动重传定时器。查询请求消息报文的错误标志置为无错误标志,源槽位号为该线卡的槽位号,目的槽位号为主控卡的槽位号,消息类型为查询消息报文类型,请求/回应标识置为请求标识,数据域部分包含主控卡和各线卡的板卡类型信息。不同类型的线卡之间的数据通道不同。例如板卡类型分为A类和B类,若其它线卡可操作A类线卡的存储地址为缓冲区地址,则其它线卡向A类线卡发送数据时,需要将数据发往A类线卡的緩冲区中;若其它线卡可操作B类线卡的存储地址为包地址,则其它线卡向B类线卡发送数据时,需要将数据发往B类线卡的包中。线卡上电包括两种情形一、分布式路由器初始上电而使得线卡上电;二、分布式路由器初始上电完毕后,线卡新插入分布式路由器而使得线卡上电。步骤202:主控卡收到该查询请求消息报文,确定该报文中携带的源槽位号对应槽位上的线卡在位,在FSM中记录该线卡的槽位号与板卡类型信息的对应关系。步骤203:主控卡向发来该查询请求消息报文的该线卡返回查询响应消息报文,该报文携带主控卡的槽位号和板卡类型信息的对应关系,以及所有线卡的槽位号与板卡类型信息的对应关系。查询响应消息报文中的错误状态置为无错误标志,源槽位号为主控卡的槽位号,目的槽位号为线卡的槽位号,消息类型为查询消息报文类型,请求/回应标识置为回应标识,数据域部分则携带主控卡的槽位号和板卡类型信息的对应关系,以及各线卡的槽位号与板卡类型信息的对应关系。本实施例中,数据域部分可只携带主控卡的槽位号和板卡类型信息的对应关系,以及在位线卡的槽位号与板卡类型信息的对应关系,或者也可携带主控卡的槽位号和板卡类型信息的对应关系,以及所有线卡的槽位号与板卡类型信息的对应关系,并将不在位线卡的板卡类型信息置为空,以表示该线卡不在位。在分布式路由器上电时,各在位线卡会同时向主控卡发送查询请求消息报文,主控卡会同时收到各在位线卡发来的查询请求消息报文,并对所有查询请求消息报文并行处理即并行保存各报文携带的在位线卡的槽位号和板卡类型信息的对应关系,然后并行向各在位线卡返回查询响应消息报文。步骤204:线卡判断是否在重传定时器超时前收到主控卡发来的查询响应消息报文,若是,执行步骤206;否则,执行步骤205。步骤205:线卡重复向主控卡发送查询请求消息报文,并重启重传定时器,转至步骤204。步骤206:线卡收到查询响应消息报文,在FSM中记录该报文携带的主控卡的槽位号与板卡类型信息的对应关系,以及所有线卡的槽位号与板卡类型信息的对应关系。具体地,若查询响应消息报文只携带了主控卡的槽位号和板卡类型信息的对应关系,以及在位线卡的槽位号和板卡类型信息的对应关系,则线卡可只在FSM中记录主控卡的槽位号和板卡类型信息的对应关系,以及在位线卡的槽位号和板卡类型信息的对应关系;若查询响应消息报文携带了主控卡的槽位号和板卡类型信息的对应关系,以及所有线卡的槽位号和板卡类型信息的对应关系,则线卡可以在FSM中记录主控卡的槽位号和板卡类型信息的对应关系,以及所有线卡的槽位号和板卡类型信息的对应关系,也可只保存主控卡的槽位号和板卡类型信息的对应关系,以及板卡类型信息不为空的在位线卡的槽位号和板卡类型信,t的对应关系。步骤207:在位线卡向其它在位线卡和主控卡发送连接建立请求消息报文,并启动重传定时器。连接建立请求消息报文中的错误状态置为无错误标志,源槽位号为发送该报文的线卡的槽位号,目的槽位号为其它在位线卡或主控卡的槽位号,消息类型为连接建立消息报文类型,请求/回应标识置为请求标识;数据域部分则携带其它在位线卡或主控卡可操作的发送该报文的线卡的存储地址信息,其它在位线卡或主控卡收到该连接建立请求消息报文后,要保存该地址信息和发送该报文的板卡类型信息。接收到连接建立请求消息报文的其它在位线卡或主控卡,可根据该报文中携带的板卡类型,得知该报文携带的地址为緩沖区地址还是包地址。步骤208:线卡判断是否在重传定时器超时前收到各在位线卡和主控卡返回的连接建立响应消息报文,若是,执行步骤210;否则,执行步骤209。其它在位线卡和主控卡收到该在位线卡发来的连接建立请求消息报文后,会向该在位线卡返回携带该其它在位线卡或主控卡的板卡类型和该在位线卡可操作的自身的存储地址信息的连接建立响应消息报文,该在位线卡根据该响应消息报文携带的其它在位线卡和/或主控卡的板卡类型以及自身可操作的其它在位线卡和/或主控卡的地址信息,建立与其它在位线卡和/或主控卡之间的数据通道连接。步骤209:线卡重复向未返回连接建立响应消息报文的其它在位线卡和/或主控卡发送连接建立请求消息报文,并重启重传定时器,转至步骤208。步骤210:线卡保存返回连接建立响应消息报文的其它在位线卡和/或主控卡的槽位号、板卡类型与自身可操作该其它在位线卡或主控卡的存储地址信息的对应关系,确定与返回连接建立响应消息报文的其它在位线卡和/或主控卡之间的数据通道连接建立,在自身的FSM中将自身与返回连接建立响应消息报文的其它在位线卡和/或主控卡之间的连接状态记录为连接建立状态,即记录其它在位线卡和/或主控卡的槽位号、板卡类型与连接建立状态信息的对应关系。主控卡收到在位线卡发来的连接建立请求消息报文后,保存该在位线卡的槽位号、板卡类型与自身可操作该在位线卡的存储地址信息的对应关系,确定与该在位线卡之间的数据通道连接建立,在自身的FSM中记录自身与该在位线卡的连接状态为连接建立状态,即保存该在位线卡的槽位号、板卡类型与连接建立状态信息的对应关系。步骤211:在位线卡要与另一在位线卡或主控卡进行数据通信,根据自身的FSM中记录的自身与该另一在位线卡或主控卡之间的连接状态,判断行步骤212;否则,执行步骤213。步骤212:该线卡开始与该另一在位线卡或主控卡进行数据通信,本流程结束。步骤213:该线卡不与该另一在位线卡或主控卡进行数据通信。同样,当主控卡要与在位线卡进行数据通信时,也要根据自身的FSM中记录的自身与该在位线卡之间的连接状态,判断自身与该在位线卡之间的连接状态是否为连接建立状态,若是,开始与该在位线卡进行数据通信;否则,不与该在位线卡进行数据通信。在实际应用中,在位线卡可能被释放,例如可热插拔的线卡可能在分布式路由器的运行过程中被拔出、在位线卡被异常复位等,此时,主控卡和各在位线卡需要及时更改FSM中记录的与该被释放线卡之间的连接状态。图3为本发明实施例提供的当在位线卡被释放时,更改板间数据通道连接状态的流程图,如图3所示,其具体步骤如下步骤301:分布式路由器上的线卡管理模块检测到有在位线卡被释放,向主控卡发送线卡释放通知,该通知携带被释放线卡的槽位号。分布式路由器上的热插拔接口模块可检测到线卡被拔出,复位检测模块可检测到线卡被异常复位。步骤302:主控卡收到该线卡释放通知,释放自身与被释放线卡之间的数据通道连接如释放自身保存的自身可操作该被释放线卡的存储地址信息等,并将FSM中记录的自身与该被释放线卡之间的连接状态由连接建立状态更改为不在位状态,在FSM中记录自身与该被释放线卡之间的释放状态为删除中状态,在FSM中记录自身与各在位线卡之间的通知释放状态为发送删除中状态。步骤303:主控卡确定FSM检测周期到来,检测到FSM中记录的自身与被释放线卡之间的释放状态为删除中状态,则将该自身与被释放线卡之间的释放状态更改为删除完成状态。主控卡会预先设定一个FSM检测周期,即每隔一个FSM检测周期检测一次FSM中记录的各种状态信息,以确定是否有线卡的状态发生了改变。免主控卡反复释放主控卡与被释放线卡之间的数据通道连接。步骤304:主控卡同时^r测到FSM中记录的自身与各在位线卡之间的通知释放状态为发送删除中状态,则向各在位线卡发送连接删除请求消息报文,该报文携带被释放线卡的槽位号,并启动重传定时器。连接删除请求消息报文的错位标志置为无错误标志,源槽位号为主控卡的槽位号,目的槽位号为在位线卡的槽位号,消息类型为连接删除消息报文类型,请求/回应标识置为请求标识,数据域部分为被释放线卡的槽位号。步骤305:在位线卡收到该连接删除请求消息报文,根据该报文中携带的被释放线卡的槽位号,释放自身与被释放线卡间的数据通道连接,并将FSM中记录的自身与该被释放线卡之间的连接状态由连接建立状态更改为不在位状态,然后向主控卡返回连接删除响应消息报文。步骤306:主控卡判断是否在重传定时器超时前,收到各在位线卡返回的连接删除响应消息报文,若是,执行步骤308;否则,执行步骤307。步骤307:主控卡重复向未返回连接删除响应消息报文的各在位线卡发送连接删除请求消息报文,转至步骤306。步骤308:主控卡将FSM中记录的自身与各返回连接删除响应消息报状态。在实际应用中,为了避免主控卡异常而导致的分布式路由器的板间数据通信无法正常进行情形的发生,可以在分布式路由器上同时设置两个主控卡主用主控卡和备用主控卡,当主用主控卡异常时,可由备用主控卡接替原主用主控卡继续工作,成为新主用主控卡。由于在主控卡进行主备倒换期间,线卡的在位状态可能发生更改,为了使得各在位线卡能够获得最新的在位线卡信息,同时,也为了使得各在位线卡能够及时得知新主用主控卡的槽位号,新主用主控卡在主备倒换完成时需要将最新的在位线卡信息及自身的槽位号通知给各在位线卡,以保证板间数据通信的正常进行。接更新的流程图,如图4所示,其具体步骤如下步骤401:分布式路由器上的主备倒换模块检测到主用主控卡异常,启动备用主控卡。步骤402:备用主控卡启动,成为新主用主控卡,获取原主用主控卡在位线卡的槽位号、板卡类型及连接状态信息的对应关系。原主用主控卡可将在FSM中记录的原主用主控卡与各在位线卡的连接状态信息存储在原主用主控卡和新主用主控卡都可访问的存储空间中,以方便新主用主控卡获取该信息。具体地,该存储空间的地址信息可预先配置在原主用主控卡和新主用主控卡上,或者,原主用主控卡在确定该存储空间的地址信息后,将该地址信息发送给新主用主控卡。步骤403:新主用主控卡根据原主用主控卡与各在位线卡之间的连接状态信息,确定在位的线卡,向各在位线卡发送通知消息报文,并启动重传定时器,该通知消息报文携带新主用主控卡的槽位号与板卡类型信息的对应关系,以及各线卡的槽位号与板卡类型信息的对应关系,同时将自身FSM中记录的自身与各在位线卡之间的通知状态为通知下发中状态。通知消息报文中的错误标志置为无错误标志,源槽位号为新主用主控卡的槽位号,目的槽位号为在位线卡的槽位号,消息类型为通知消息报文,请求/回应标识置为请求标识;数据域部分可只携带新主用主控卡的槽位号与板卡类型信息的对应关系,以及各在位线卡的槽位号与板卡类型信息的对应关系,也可携带新主用主控卡的槽位号与板卡类型信息的对应关系,以及所有线卡的槽位号与板卡类型信息的对应关系,并将不在位线卡的板卡类型信息置为空。步骤404:各在位线卡收到该通知消息报文,向主控卡返回通知响应消息报文。步骤405:各在位线卡根据该通知消息报文携带的各线卡的槽位号与板卡类型,以及自身的FSM中记录的自身与各线卡之间的连接状态,判断是否有新在位线卡加入或有在位线卡释放,若有新在位线卡加入,执行步骤406;若有在位线卡释放,执行步骤407;否则,不作处理,转至步骤408。由于各在位线卡未保存新主用主控卡的槽位号,因此,各在位线卡收到通知消息报文后,根据该报文携带的源槽位号,会确定主控卡发生了主备倒换,从而与新主用主控卡建立数据通道连接。步骤406:在位线卡与该新在位线卡建立数据通道连接,转至步骤408。该步骤的具体过程与步骤207210相同。步骤407:该在位线卡释放与该被释放线卡间的数据通道连接,并将自身FSM中记录的自身与该被释放线卡之间的连接状态由连接建立状态更改为不在位状态。步骤408:主控卡判断是否在重传定时器超时前,收到各在位线卡返回的通知响应消息报文,若是,执行步骤410;否则,执行步骤409。步骤409:主控卡重复向未返回通知响应消息报文的各在位线卡发送通知消息报文,并重启重传定时器,转至步骤408。步骤410:主控卡将自身FSM中记录的自身与返回通知响应消息报文的线卡之间的通知状态由通知下发中状态更改为通知下发完成状态。图5为本发明实施例提供的板间数据通信系统的组成图,如图5所示,其主要包括主控卡和线卡,其中主控卡包括线卡状态维护模块511、线卡状态通知模块512、连接建立模块513和数据通信模块514,各模块的功能具体如下线卡状态维护模块511:用于记录各线卡的槽位号与板卡类型信息的对应关系,记录主控卡与各线卡之间的连接状态信息,主控卡与被移出线卡之间的释放状态信息、主控卡与各在位线卡之间的释放通知状态信息、主控卡与各在位线卡之间的通知状态信息。线卡状态通知模块512:接收线卡发来的查询请求消息报文,在线卡状态维护模块511中记录该查询请求消息报文中携带的线卡的槽位号与板卡类型信息的对应关系,将线卡状态维护模块511中记录的所有线卡的槽位号和板卡类型信息的对应关系、以及主控卡的槽位号与板卡类型信息的对应关系携带在查询响应消息报文中发送给该发来查询请求消息报文的线卡。线卡状态通知模块512也可将不在位线卡的槽位号和板卡类型信息的对应关系记录在线卡状态维护模块511中,并将不在位线卡的板卡类型信息置为空,以表示该线卡不在位。连接建立模块513:接收到线卡发来的连接建立请求消息报文,在线卡状态维护模块511中记录主控卡与该线卡之间的连接状态为连接建立状态,并向该线卡返回携带该线卡可操作的主控卡的存储地址信息的连接建立响应消息报文。数据通信模块514:当要与线卡进行数据通信时,从线卡状态维护模块511读取自身与该线卡的连接状态,判断该连接状态是否为连接建立,若是,开始与该线卡进行数据通信;否则,不与该线卡进行数据通信。本实施例中的主控卡还可包括线卡释放处理模块515和连接删除模块516,其中线卡释放处理模块515:接收到线卡管理模块发来的携带被释放线卡的槽位号的释放通知,将线卡状态维护模块511中记录的主控卡与该线卡的连接状态由连接建立状态更改为不在位状态,并在线卡状态维护模块511中将主控卡与该被释放线卡之间的释放状态设置为删除中状态,将主控卡与各在位线卡的释放通知状态设置为发送删除中状态。连接删除模块516:确定FSM检测周期到来,检测到线卡状态维护模块511中记录的主控卡与被释放线卡之间的释放状态为删除中状态,则释放与该被释放线卡间的数据通道连接,并将线卡状态维护模块511中记录的主控卡与被释在位线卡之间的释放通知状态设置为发送删除中状态,则向各在位线卡发送携带被释放线卡的槽位号的连接删除请求消息报文,并在收到在位线卡返回的连接删除响应消息报文后,将线卡状态维护模块511中记录的主控卡与该在位线卡之间的释放通知状态由发送删除中状态更改为发送删除完成状态。本实施例中的主控卡还可包括主备倒换处理模块517:检测到自身升级取原主用主控卡与各线卡的连接状态信息,确定在位线卡,向各在位线卡发送通知消息报文,该报文携带自身的槽位号与板卡类型的对应关系,以及各线卡的槽位号与板卡类型的对应关系,在线卡状态维护模块511中将自身与各在位线卡之间的通知状态设置为通知下发中状态;接收到在位线卡返回的通知响应消息报文,将线卡状态维护模块511中记录的自身与各在位线卡之间的通知状态更改为通知下发完成状态。若通知消息报文中携带不在位线卡的槽位号和板卡类型信息的对应关系,则将该不在位线卡的板卡类型信息置为空。线卡包括在位状态上报模块521、线卡状态维护模块522、连接建立模块523和数据通信模块524,其中在位状态上报模块521:用于在上电时,向主控卡发送携带本线卡槽位号和板卡类型信息的查询请求消息报文,接收主控卡返回的携带主控卡的槽位号与板卡类型信息的对应关系、以及所有线卡的槽位号与板卡类型信息的对应关系的查询响应报文,将该主控卡的槽位号与板卡类型信息的对应关系、以及所有线卡的槽位号与板卡类型信息的对应关系保存在线卡状态维护模块522中,并向连接建立模块523发送建立连接指示。线卡状态维护模块522:用于保存本线卡与其它各线卡之间的连接状态信息,以及本线卡与主控卡之间的连接状态信息。连接建立模块523:接收到在位状态上报模块521发来的建立连接指示,从线卡状态维护模块522中读取主控卡的槽位号与板卡类型信息的对应关系、以及各线卡的槽位号与板卡类型信息的对应关系,确定在位的线卡,向各在位线卡和主控卡发送连接建立请求消息报文,若收到在位线卡和/或主控卡返回的连接建立响应消息报文,则在线卡状态维护模块522中将本线卡与该线卡和/或主控卡之间的连接状态设置为连接建立状态。数据通信模块524:当要与另一线卡或主控卡进行数据通信时,从线卡状态维护模块522读取本线卡与该另一线卡状态的连接状态,判断该连接状态是否为连接建立状态,若是,开始与该另一线卡或主控卡进行数据通信;否则,不与该另一线卡或主控卡进行数据通信。本实施例中的线卡还可包括连接删除模块525:接收主控卡发来的携带被释放线卡槽位号的连接删除请求消息报文,释放与该被释放线卡间的数据通道连接,并在钱卡状态维护模主控卡返回连接删除响应消息报文。本实施例中的线卡还可包括主备倒换处理模块526:接收新主用主控卡发来的携带新主用主控卡的槽位号和板卡类型信息的对应关系、以及各线卡的槽位号和板卡类型信息的对应关系的通知消息报文,向新主用主控卡返回通知响应消息报文,并根据该新主用主控卡的槽位号和板卡类型信息的对应关系、以及各线卡的槽位号和板卡类型的对应关系,以及线卡状态维护模块522中保存的本线卡与各线卡的连接状态、以及本线卡与原主用主控卡的连接状态,确定主控卡发生了主备倒换,将新主用主控卡的槽位号发送给连接建立模块523,并判断是否有新在位线卡加入或有在位线卡释放,若有新在位线卡加入,将该新在位线卡的槽位号发送给连接建立模块523;若有在位线卡释放,则将该被释放线卡的槽位号发送给连接删除模块525。连接建立模块523收到主备倒换处理模块526发来的新主用主控卡的槽位号后,在线卡状态维护模块522中保存该新主用主控卡的槽位号和板卡类型信息的对应关系,并向该新主用主控卡发送携带新主用主控卡可操作的本线卡的存储地址信息的连接建立请求消息报文,若收到该新主用主控卡返回的携带自身可操作的新主用主控卡的存储地址信息的连接建立响应消息报文,则在线卡状态维护模块522中将本线卡与该新主用主控卡之间的连接状态设置为连接建立状态;收到主备倒换处理模块526发来的新在位线卡的槽位号后,在线卡状态维护模块522中保存该新在位线卡的槽位号和板卡类型信息的对应关系,并向该新在位线卡发送携带该新在位线卡可操作的本线卡的存储地址信息的连接建立请求消息报文,若收到该新在位线卡返回的携带本线卡可操作的该新在位线卡的存储地址信息的连接建立响应消息报文,则在线卡状态维护模块522中将本线卡与该新在位线卡之间的连接状态设置为连接建立状态。连接删除模块525收到主备倒换处理模块526发来的被释放线卡的槽位号后,释放本线卡与该被释放线卡间的数据通道连接,并在线卡状态维护模块522以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种数据通信方法,其特征在于,包括主控卡接收在位线卡发来的通信属性信息,并将所有在位线卡的通信属性信息通知给该在位线卡;该在位线卡根据主控卡发来的所有在位线卡的通信属性信息,与其它在位线卡建立数据通道连接,并通过该数据通道连接与其它在位线卡进行数据通信。2、如权利要求l所述的方法,其特征在于,所述在位线卡的通信属性信息至少包括各在位线卡的槽位号和板卡类型;所述主控卡接收在位线卡发来的通信属性信息之前进一步包括在位线卡向主控卡发送携带自身通信属性信息的查询请求。3、如权利要求l所述的方法,其特征在于,所述在位线卡与其它在位线卡建立数据通道连接包括在位线卡分别向其它在位线卡发送携带其它在位线卡可操作的自身存储地址信息的连接建立请求,并将自身与返回连接建立响应的在位线卡之间的连接状态记录为连接建立状态;在位线卡与其它在位线卡进行数据通信包括在位线卡判断自身记录的与其它在位线卡之间的连接状态是否为连接建立状态,若是,与其它在位线卡进行数据通信;否则,不与其它在位线卡进行数据通信。4、如权利要求l所述的方法,其特征在于,所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括该在位线卡收到该通信属性信息,向主控卡发送携带主控卡可操作的该在位线卡的存储地址信息的连接建立请求,若收到主控卡返回的该在位线卡可操作的主控卡的存储地址信息的连接建立响应,则将自身记录的与主控卡之间的连接状态设置为连接建立状态;且,该设置为连接建立状态的在位线卡与主控卡进行数据通信。5、如权利要求4所述的方法,其特征在于,所述该在位线卡向主控卡发送连接建立请求之后进一步包括主控卡收到该在位线卡发来的连接建立请求,则在自身保存该连接建立请求携带的地址信息与该在位线卡标识的对应关系,并将自身记录的与该在位线卡之间的连接状态设置为连接建立状态,并向该在位线卡返回连接建立响应;且,该设置为连接建立状态的主控卡与该在位线卡进行数据通信。6、如权利要求l所述的方法,其特征在于,所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括主控卡确定有在位线卡被释放,则释放与该被释放线卡之间的数据通道连接,并将自身记录的与该被释放线卡之间的连接状态设置为不在位状态,并向各在位线卡发送携带该被释放线卡通信属性信息的连接删除请求,收到该请求的各在位线卡,释放自身与该被释放线卡之间的数据通道连接,并将自身记录的与该被释放线卡之间的连接状态设置为不在位状态。7、如权利要求l所述的方法,其特征在于,所述主控卡接收在位线卡发来的通信属性信息之后、将所有在位线卡的通信属性信息通知给该在位线卡之前进一步包括主控卡在自身与备用主控卡都可访问的存储空间中记录该在位线卡的通信属性信息;所述主控卡将所有在位线卡的通信属性信息通知给该在位线卡之后进一步包括在主控卡工作异常时,备用主控卡从所述存储空间中读取所有在位线卡的通信属性信息,将该备用主控卡和所有在位线卡的通信属性信息通知各在位线卡,各在位线卡根据该备用主控卡和所有在位线卡的通信属性信息,更改自身记录的主控卡及所有在位线卡的通信属性信息。8、如权利要求7所述的方法,其特征在于,所述各在位线卡更改自身记录的主控卡及所有在位线卡的通信属性信息之后进一步包括各在位线卡与新主用主控卡建立数据通信连接,并在建立成功时,将在自身记录的与该新主用主控卡之间的连接状态设置为连接建立状态;同时,各在位线卡比较备用主控卡发来的所有在位线卡的通信属性信息与自身记录的与各线卡的连接状态信息,若检测到有新在位线卡加入,与该新在位线卡建立数据通道连接,并在建立成功时,将在自身记录的与该新在位线卡之间的连接状态设置为连接建立状态;若检测到有在位线卡释放,则将自身记录的与该被释放线卡之间的连接状态由连接建立状态更改为不在位状态。9、一种数据通信系统,其特征在于,包括主控卡和线卡,其中主控卡,接收并记录在位线卡上报的通信属性信息,将所有在位线卡的通信属性信息发送给该在位线卡;线卡,成为在位线卡后,向主控卡上报自身的通信属性信息,根据主控卡发来的所有在位线卡的通信属性信息,与其它在位线卡建立数据通道连接,根据所建立的数据通道连接与其它在位线卡进行数据通信。10、如权利要求9所述的系统,其特征在于,所述主控卡包括线卡状态维护模块,记录各在位线卡的通信属性信息,以及主控卡与各在位线卡之间的连接状态信息;线卡状态通知模块,接收在位线卡上报的通信属性信息,在线卡状态维护模块中保存该在位线卡的通信属性信息,并将主控卡和所有在位线卡的通信属性信息发送给该在位线卡;连接建立模块,接收到在位线卡发来的连接建立请求,在线卡状态维护模块中将主控卡与该在位线卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取主控卡与在位线卡之间的连接状态,若该连接状态为连接建立状态,则开始与该在位线卡进行数据通信;否则,不与该在位线卡进行数据通信。11、如权利要求9所述的系统,其特征在于,所述线卡包括在位状态上报模块,在上电时,向主控卡发送本在位线卡的通信属性信息;线卡状态维护模块,用于保存主控卡和所有在位线卡的通信属性信息,以及本在位线卡与其它在位线卡之间、以及本在位线卡与主控卡之间的连接状态4吕息;连接建立模块,接收到主控卡发来的主控卡和所有在位线卡的通信属性信息,将该主控卡和所有在位线卡的通信属性信息保存在线卡状态维护模块中,向各在位线卡和主控卡发送连接建立请求,若收到在位线卡和/或主控卡返回的连接建立响应,则在线卡状态维护模块中将本在位线卡与该在位线卡和/或主控卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取本在位线卡与其它在位线卡或主控卡之间的连接状态,判断该连接状态是否为连接建立,若是,开始与其它在位线卡或主控卡进行数据通信;否则,不与其它在位线卡或主控卡进行数据通信。12、一种主控卡,其特征在于,包括线卡状态维护模块、线卡状态通知模块、连接建立模块和数据通信模块,其中线卡状态维护模块,记录所有在位线卡的通知属性信息,以及主控卡与各在位线卡之间的连接状态信息;线卡状态通知模块,接收在位线卡发来的通信属性信息,在线卡状态维护模块中记录该在位线卡的通知属性信息,将主控卡和所有在位线卡的通知属性信息发送给该在位线卡;连接建立模块,接收到在位线卡发来的连接建立请求,在线卡状态维护模块中将主控卡与该在位线卡之间的连接状态设置为连接建立状态;数据通信模块,从线卡状态维护模块读取主控卡与在位线卡之间的连接状态,若该连接状态为连接建立状态,则开始与该在位线卡进行数据通信;否则,不与该在位线卡进行数据通信。13、如权利要求12所述的主控卡,其特征在于,该主控卡进一步包括线卡释放处理模块和连接删除模块,其中线卡释放处理模块,接收到携带被释放线卡通信属性信息的释放通知,在线卡状态维护模块中将主控卡与该被释放线卡之间的连接状态更改为不在位状态,并在线卡状态维护模块中将主控卡与该被释放线卡之间的释放状态设置为删除中状态,将主控卡与各在位线卡之间的释放通知状态设置为发送删除中状态;连接删除模块,在状态检测周期中,检测到线卡状态维护模块中记录的主控卡与被释放线卡之间的释放状态为删除中状态,则将该释放状态更改为删除完成状态;检测到主控卡与各在位线卡之间的释放通知状态为发送删除中状态,则向各在位线卡发送携带被释放线卡标识的连接删除请求,并在收到在位线卡返回的连接删除响应后,将线卡状态维护模块中记录的主控卡与该在位线卡之间的释放通知状态由发送删除中状态更改为发送删除完成状态。14、如权利要求12或13所述的主控卡,其特征在于,该主控卡进一步包括主备倒换处理模块,检测到本主控卡由备用主控卡升级为主用主控卡,则从线卡状态维护模块读取所有在位线卡的通信属性信息,向各在位线卡分别发送本主控卡和所有在位线卡的通信属性信息。15、一种线卡,其特征在于,该线卡包括在位状态上报模块、线卡状态维护模块、连接建立模块和数据通信模块,其中在位状态上报模块,在上电时,向主控卡发送本在位线卡的通信属性信息,将主控卡返回的所有在位线卡的通信属性信息保存在线卡状态维护模块,向连接建立模块发送建立连接指示;信息、以及本在位线卡与主控卡之间的连接状态信息;连接建立模块,接收到在位状态上报模块发来的建立连接指示,从线卡状态维护模块读取所有在位线卡的通信属性信息,向各在位线卡和主控卡发送连接建立请求,若收到在位线卡和/或主控卡返回的连接建立响应,则在线卡状态立状态;数据通信模块,从线卡状态维护模块读取本在位线卡与其它在位线卡和/或主控卡的连接状态,若该连接状态为连接建立状态,则开始与其它在位线卡和/或主控卡进行数据通信;否则,不与其它在位线卡和/或主控卡进行数据通信。16、如权利要求15所述的线卡,其特征在于,该线卡进一步包括连接删除模块,接收主控卡发来的携带被释放线卡通信属性信息的连接删除请求,在线卡状态维护模块中将本在位线卡与该被释放线卡之间的连接状态更改为不在位状态,同时向主控卡返回连接删除响应。17、如权利要求16所述的线卡,其特征在于,该线卡进一步包括主备倒换处理模块,接收主控卡发来的所有在位线卡的通信属性信息,确定该主控卡为主备倒换后的新主用主控卡,将新主用主控卡标识发送给连接建立模块,根据该所有在位线卡的通信属性信息以及线卡状态维护模块中保存的本在位线卡与各线卡之间的连接状态信息,若检测到有新在位线卡加入,则将该新在位线卡标识发送给连接建立模块;若检测到有在位线卡被释放,则将该被释放线卡通信属性信息发送给连接删除模块;所述连接建立模块收到主备倒换处理模块发来的新主用主控卡标识和新在位线卡标识后,向新主用主控卡和新在位线卡发送连接建立请求,若收到该新主用主控卡和/或新在位线卡返回的连接建立响应,则在线卡状态维护;溪块中将本在位线卡与新主用主控卡和/或该新在位线卡之间的连接状态设置为连接建立状态;所述连接删除模块收到主备倒换处理模块发来的被释放线卡通信属性信息模块中将本在位线卡与该被释放线卡之间的连接状态更改为不在位状态。全文摘要本发明公开了数据通信方法、系统及主控卡和线卡,包括主控卡接收在位线卡发来的通信属性信息,并将所有在位线卡的通信属性信息通知给该在位线卡;该在位线卡根据主控卡发来的所有在位线卡的通信属性信息,与其它在位线卡建立数据通道连接,并通过该数据通道连接与其它在位线卡进行数据通信。本发明实现了基于非交换网环境下的数据通信。文档编号H04L12/02GK101110768SQ20071011764公开日2008年1月23日申请日期2007年6月20日优先权日2007年6月20日发明者余永飞,刘玉印,向邦柱,耀张,张国良,莉易申请人:杭州华三通信技术有限公司