专利名称:一种具有数据容错能力的网络传输方法
技术领域:
本发明涉 及计算机应用及网络通信领域,尤其是适用于中小型网络系统中数据传输容错的一种具有数据容错能力的网络传输方法。
背景技术:
在中小型网络系统中,网络系统由多个主机、多台交换机组成,每个主机可以配置多块网卡,每块网卡连接到一台交换机上,每个交换机上连接的各主机的网卡处于一个网段,有几台交换机,就有几个网段。但是每个主机可以不一定配置所有的网卡,每个主机的多块网卡配置IP时,组成IP地址的最后一个字节相同。这样,通过这个字节可以确定是那台主机。例如附图示意图1所示,系统中两台主机联在3台交换机上,每个主机上有三块网卡,分别配置于“168. 1.3”,“168. 1.4. ”,“168.. 1.5. ”网段并连接于三台交换机上,同交换机连接的网段一致,如交换机1上连接的均为“168. 1.3”,每个主机网卡的配置的IP地址是一致的。在运行要求苛刻的网络系统中,可以让每个主机配有多块网卡,每个网卡配置在不同网段上连接到系统中的不同交换机上,当某个主机到某个交换机的网络出现问题时,信息仍然可以通过工作正常的主机、工作正常的交换机到主机的通信线路实现数据的正常通信;显然这就就涉及到解决多主机多网段情况下的数据传输容错问题。本技术方案设计的方法可以在多台主机组成的中小型网络系统中,自动侦测网络错误并实现对数据的不间断发送,在网络修复时,可以改回原有线路进行通信,尤其适用于对网络通信容错要求较高的系统。
发明内容
本发明的目的是提供一种具有数据容错能力的网络传输方法,以期解决多主机多网段情况下的数据传输容错问题;支持多台主机组成的中小型网络系统,以期在系统运行时,最大限度保证所有主机相互间的通信畅通。实现本发明目的之技术方案如下一种具有数据容错能力的网络传输方法,包括通道检测,信息缓存、信息转发、直接通信四个步骤;所述的通道检测步骤主要用于检测本机到其它主机是否能够通信,并形成本机到系统中各主机的通信通道,这些通道有的可以直接通信,有的需要经过其它主机的转发;信息缓存步骤用于对发送的数据进行缓存,以便在发生线路故障的情况下,能够提取数据进行补发;信息转发步骤用于通过转发主机将信息转发到目标主机;直接通信步骤用于在两主机通信恢复时将通信恢复到两主机直接通信的状态。所述通道检测步骤实现的方式如下
2. 1)对各网卡发送类型为1的报文,在指定端口侦听;
2. 2)判断是否收到其它主机的心跳,如果判断是N,返回上一步;如果判断是Y,则进入下一步;
2. 3)判断主机是否在连接表link_list中,如果判断是N,将该主机IP最后一个字节加入连接表link_list中,如果判断是Y,则进入下一步;
2. 4)判断收到的心跳报文的源地址是否在通道表TabCharmel中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;
2. 5)判断主机是否在系统主机连接信息sysLinklist中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;
2. 6)判断该主机是在连接信息sysLinklist的信息是否与以前一致,如果判断是N,将新的连接表信息更新sysLinklist,更新本机发送表Transinfo的内容,如果判断是Y,则进入下一步;
2. 7)判断是否运行了 2倍心跳时间,如果判断是N,则返回步骤2. 2),如果判断是Y,则进入下一步;
2.8)定时发送类型为1的心跳报文,将本机收到的各主机连接表随心跳报文发出,同时返回到步骤2. 2)。实现本机发送表Transinfo中是否存在到达目标主机的转发通道的步骤如下
3.1)解析某个主机的连接表link_list ;
3. 2)判断是否与当前保存的一致,如果判断是Y,则返回上一步,如果判断是N,则进入下一步;
3. 3)判断主机是否在连接表link_list中,如果判断是N,将该主机IP最后一个字节加入连接表link_list中,如果判断是Y,则进入下一步;
3. 4)判断收到的心跳报文中源地址是否在通道表TabCharmel中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;
3. 5)判断该主机是否存在连接信息于sysLinklist中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;
3. 6)判断该主机是在连接信息sysLinklist的信息是否与之前一致,如果判断是N, 将新的连接表信息更新sysLinklist,更新Transinfo表的内容,如果判断是Y,则进入下一
止
少;
3. 7)判断是否运行了 2倍心跳时间,如果判断是N,返回到3. 2)步骤,如果判断是Y,则进入下一步;
3. 8)定时发送类型为1的心跳报文,将本机收到的各主机连接表随心跳报文发出,同时返回到3. 2)步骤。所述检查通道表TabCharmel时,如果发现本机最近一次收到某个主机的某个网段的心跳时间与当前时间超过心跳时间3倍时,则认为该主机的该网段连接故障,并从通道表TabCharmel中删除该网段信息。当本主机的连接表link_list连接信息发生变化时,需要重新计算连接信息;连接信息计算用于计算本机到系统中某台主机的转发通道,对于本机的连接表link_list 中的主机,因为它们和本机有直接连接的关系,可以直接选择发送,发送时查询通道表 TabCharmel,找到的第一个对方的通道即对方IP地址可以用于直接发送。如果目标主机不在本机的连接表link_list中,就需要检查发送表Transinfo中是否存在达到该主机的转发通道,如果存在,则使用该通道进行发送。所述信息转发是指根据通道检测得到的系统中各主机的连接表信息,找出可以到达目的主机需要进行数据转发的主机列表,并使用转发主机将数据最终送到目的主机;实现的步骤如下假设最坏情况下,一个有η台交换机的容错网络中,如果1号主机只有1网段网卡连接到1号交换机、2网段网卡连接到2号交换机,2号主机只有2,3两个网段的网卡工作….η-1号主机只有η-1、η这两个网段工作,那么1号主机到η_1号主机的通信需要经过2、3……n-2号机的接力转发才能最后到达η-1号主机。 与现有技术比较,本发明具有显著优点与积极效果
1、本方法的最大优点是在极端情况下,即上文提到的最坏情况,可以保证TCP报文不丢失;对系统交换机整机关闭的情况,由于原有的使用该交换机的主机仍然可以采用系统中剩余的运行良好的交换机通信,所以除故障开始时的检测时间外,以后的通信不受影响。2、解决并实现中小型网络系统中由于单台交换机或主机到某台交换机的线路故障导致的传输数据丢失问题,使系统网络传输具有一定的冗余性。3、目前使用该方法扩展的中间件在多个实际系统中稳定运行例如空中交通管制系统,运行效果良好。
图1是本发明所述一个由两台主机三台交换机组成的网络系统运行环境示意图。图2是本发明所述的通道检测步骤流程框图示意图。图3是本发明所述的发送表Transinfo形成流程框图示意图。图4是所述发送表Transinfo中存在发送通道时的发送步骤示意图。图5是本发明所述的四台主机间信息转发通道示意图。图6是本发明所述的以目标主机为单位建立信息缓存,完成丢失数据补发步骤示意图。
具体实施例方式结合附图给出实施例对本发明做进一步的说明。参见图1、图2可知,本发明所述的多主机多网卡、交换机配置的网络系统运行环境是指网络系统由多个主机、多台交换机组成,每个主机可以配置多块网卡,每块网卡连接到一台交换机上,每个交换机上连接的各主机的网卡处于一个网段,有几台交换机,就有几个网段,但每个主机可以不一定配置所有的网卡,每个主机的多块网卡配置IP时,组成IP 地址的最后一个字节相同。这样通过这个字节可以确定是那台主机。图1示意了系统中两台主机联在3台交换机上,每个主机上有三块网卡,分别配置于“168. 1.3","168. 1.4. ”,“168.. 1.5. ”网段并连接于三台交换机上,同交换机连接的网段一致,如交换机1上连接的均为“168. 1. 3”,每个主机网卡的配置的IP地址是一致的。在这种网络系统运行环境下,本发明所述的方法包括通道检测,信息缓存、信息转发、直接通信四个步骤;通道检测主要用于检测本机到其他主机是否能够通信,并形成本机到系统中各主机的通信通道,这些通道有的可以直接通信,有的需要经过其它主机的转发;信息缓存用于对发送的数据进行缓存,以便在发生线路故障的情况下,能够提取数据进行补发;信息转发用于在两主机间线路故障的情况下,对要发送的信息进行缓存,并通过转发主机将信息转发到目标主机,同时可能的丢失数据进行补发;直接通信步骤用于在两主机通信恢复时将通信恢复到两主机直接通信的状态。下面表1 表4是数据链表的功能分类
权利要求
1.一种具有数据容错能力的网络传输方法,其特征在于,包括通道检测,信息缓存、信息转发、直接通信四个步骤;所述的通道检测步骤主要用于检测本机到其它主机是否能够通信,并形成本机到系统中各主机的通信通道,这些通道有的可以直接通信,有的需要经过其它主机的转发;信息缓存步骤用于对发送的数据进行缓存,以便在发生线路故障的情况下,能够提取数据进行补发;信息转发步骤用于通过转发主机将信息转发到目标主机;直接通信步骤用于在两主机通信恢复时将通信恢复到两主机直接通信的状态。
2.根据权利要求1所述的一种具有数据容错能力的网络传输方法,其特征在于,所述通道检测步骤实现的方式如下2. 1)对各网卡发送类型为1的报文,在指定端口侦听;2. 2)判断是否收到其它主机的心跳,如果判断是N,返回上一步;如果判断是Y,则进入下一步;2. 3)判断主机是否在连接表link_list中,如果判断是N,将该主机IP最后一个字节加入连接表link_list中,如果判断是Y,则进入下一步;2. 4)判断收到的心跳报文的源地址是否在通道表TabCharmel中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;2. 5)判断主机是否在系统主机连接信息sysLinklist中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;2. 6)判断该主机是在sysLinklist的信息是否与以前一致,如果判断是N,将新的连接表信息更新sysLinklist,更新本机发送表Transinfo的内容,如果判断是Y,则进入下一止少;2. 7)判断是否运行了 2倍心跳时间,如果判断是N,则返回步骤2. 2),如果判断是Y,则进入下一步;2.8)定时发送类型为1的心跳报文,将本机收到的各主机连接表随心跳报文发出,同时返回到步骤2. 2)。
3.根据权利要求2所述的一种具有数据容错能力的网络传输方法,其特征在于,实现判断本机发送表Transinf0中是否存在到达目标主机的转发通道的步骤如下3. 1)解析某个主机的连接表link_list ;3. 2)判断是否与当前保存的一致,如果判断是Y,则返回上一步,如果判断是N,则进入下一步;3. 3)判断主机是否在连接表link_list中,如果判断是N,将该主机IP最后一个字节加入连接表link_list中,如果判断是Y,则进入下一步;3. 4)判断接收到的心跳报文的源地址是否在通道表TabCharmel中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;3. 5)判断该主机是否存在于连接信息sysLinklist中,如果判断是N,将该源地址加入通道表TabCharmel中,如果判断是Y,则进入下一步;3. 6)判断该主机是在连接信息sysLinklist的信息是否与之前一致,如果判断是N, 将新的连接表信息更新sysLinklist,更新Transinfo表的内容,如果判断是Y,则进入下一止少;3. 7)判断是否运行了 2倍心跳时间,如果判断是N,返回到3. 2)步骤,如果判断是Y,则进入下一步;·3.8)定时发送类型为1的心跳报文,将本机收到的各主机连接表随心跳报文发出,同时返回到3. 2)步骤。
4.根据权利要求2所述的一种具有数据容错能力的网络传输方法,其特征在于, 所述检查通道表TabCharmel时,如果发现本机最近一次收到某个主机的某个网段的心跳时间与当前时间超过心跳时间3倍时,则认为该主机的该网段连接故障,并从通道表 TabChannel中删除该网段信息。
5.根据权利要求2所述的一种具有数据容错能力的网络传输方法,其特征在于,当本主机的连接表link_list连接信息发生变化时,需要重新计算连接信息;连接信息计算用于计算本机到系统中某台主机的转发通道,对于本机的连接表link_list中的主机,因为它们和本机有直接连接的关系,可以直接选择发送,发送时查询通道表TabCharmel,找到的第一个对方的通道即对方IP地址可以用于直接发送。
6.根据权利要求3所述的一种具有数据容错能力的网络传输方法,其特征在于,如果目标主机不在本机的连接表link_list中,就需要检查发送表Transinfo中是否存在达到该主机的转发通道,如果存在,则使用该通道进行发送。
7.根据权利要求1所述的一种具有数据容错能力的网络传输方法,其特征在于,所述信息转发是指根据通道检测得到的系统中各主机的连接表信息,找出可以到达目标主机需要进行数据转发的主机列表,并使用转发主机将数据最终送到目标主机;实现的步骤如下 假设最坏情况下,一个有η台交换机的容错网络中,如果1号主机只有1网段网卡连接到1 号交换机、2网段网卡连接到2号交换机,2号主机只有2,3两个网段的网卡工作….η-1号主机只有η-1、η这两个网段工作,那么1号主机到η-1号主机的通信需要经过2、3……η_2 号机的接力转发才能最后到达η-1号主机。
全文摘要
本发明提供了适用于中小型网络系统的一种具有数据容错能力的网络传输方法,涉及计算机应用及网络通信领域。包括通道检测,信息缓存、信息转发、直接通信四个步骤;所述的通道检测步骤主要用于检测本机到其它主机是否能够通信,并形成本机到系统中各主机的通信通道,这些通道有的可以直接通信,有的需要经过其它主机的转发;信息缓存步骤用于对发送的数据进行缓存,以便在发生线路故障的情况下,能够提取数据进行补发;信息转发步骤用于通过转发主机将信息转发到目标主机;直接通信步骤用于在两主机通信恢复时将通信恢复到两主机直接通信的状态。解决了多主机多网段情况下的数据传输容错问题,在最大限度保证所有主机相互间的通信畅通。
文档编号H04L12/24GK102447632SQ201110452120
公开日2012年5月9日 申请日期2011年12月30日 优先权日2011年12月30日
发明者丁明, 刘宇, 刘洪 , 刘舒, 李新胜, 李晓峰, 李科磊, 殷源, 胡术, 莫思特, 邱敦国, 陈虹宇, 黄戈 申请人:四川川大智胜软件股份有限公司