容错的数据通信的方法和系统的制作方法

文档序号:7885024阅读:223来源:国知局
专利名称:容错的数据通信的方法和系统的制作方法
技术领域
本发明的相关申请本发明要求No.60/351,717,提交于2002年1月24日的美国临时申请的权益。上述申请的全部内容合并作为本文的基础。
本发明的现有技术Internet(国际互联网)是由个人计算机网络通过连接构成的国际互连网络,这些连接诸如SONET(同步光纤网)和GigE(吉比特以太网)。如

图1中所示,路由器10终接连接15的末端,提供前向转发输入网络数据包到其最终目的地的复用端口。
互连网络传输的数据是通过格式化的传输单元,通常是指数据包。数据包的格式是由一种网络传输协议定义的,例如TCP/IP(传输控制协议、国际互联网协议)。例如,TCP/IP数据包包括IP表头和TCP程序段。IP表头区分数据源和目的主机的IP地址,路由器10用IP表头引导TCP/IP数据包在链接15上指向目的主机。TCP程序段进一步包括TCP表头和被传输到最终目的地的应用数据。TCP表头通过指定与数据源和目的主机的执行的应用相关的互联网接口地址来区分TCP连接的终点。而且,由于TCP是连接-导向的协议,TCP表头还包括用于区分和识别TCP数据段的序列号。
为了完成数据路由选择,路由器10保持互联网路由表单12,路由表单是用于计算与网络标识相关的“下一跳”的数据结构。“下一跳”通常导致中间路由器,提供指向至少一个目的网络的网关。当路由器10试图在适当的链接15上传送数据包时,路由器10路由选择表单12。数据包通常包括数据包表头和数据载荷。路由器10运用数据包表头解压缩的目的数据包检索下一跳的地址的路由选择表单。一旦下一跳被辨别,路由器10沿着指向其最终目的的路径,在适合的链接15上传送数据包到下一跳。
通过互联网路由选择,例如,在路由表单上的每一个接入具有至少两个域值,IP地址前缀14a和下一跳14b。下一跳14b是另一个主机或路由器的IP地址,另一个主机或路由器通过以太网、串行连接或其它物理连接方式直接接入的。IP地址前缀14a是网络标识,指定一组路由选择有效的目的地。为了在这一组之中,目的地地址的开头必须匹配IP地址前缀14a,可以是从0到32有效的比特。例如,任何一个从128.8.X.X的IP目标地址应与IP地址前缀14a,128.8.0/16匹配。通过与其它在线网络连接传送交换路由表单更新,路由器10动态的“清除”和传送路由选择表单的入口。国际互联网路由器通常由TCP/IP连接交换路由选择表单更新。通过这种交换,收到一个更新的路由器10可以动态的结合其内部的国际互联网路由选择表单12的修正和传送更新到国际互连网络1内的更深一层的路由器。
例如,如图1,假设路由器10b与新的网络30连接到国际互联网1。路由器10b可以,按顺序,与路由器10a建立网络连接来交换路由选择表单。从路由器10b的路由选择表单更新会将路由器10b识别为网络30的“下一跳”。路由器10a会与路由器10c,10d建立网络连接,以更新它们的路由选择表单12。在共同更新它们的路由选择表单12后,路由器10可向前转发数据包至新加入的目的网络30。
国际互联网路由器执行用于路由选择操作的服务器进程,包括交换路由选择表单更新。一些国际互联网路由器例如AvicTSR系列的路由器,在主服务器进程失败的情况下,执行后备服务器进程的路由选择操作。
本发明的概述对于适当的数据包路由选择,路由选择表单的更新必须与网络中的路由器可靠的交换。在主服务器进程失败的情况下,后备服务器进程被执行以使路由器高度有效。一些执行后备服务器进程的路由器定期的复制它们的路由选择表单到持久存储器。因此,如果主服务器进程失败,后备服务器进程可以承担路由选择操作,通过保存的路由选择表单的入口生成内部的路由选择表单。
然而,如果主服务器进程在交换路由选择表单的更新时失败,更新不会被永久存储器取得,并不可能经过存储的服务器路由选择表单的入口来启动后备服务器进程。更糟的是,交换失败的远程路由器可以被认为是不可用的路由器,并从内部的路由选择表单上删除远程路由器入口,即使失败的路由器可以从主服务器进程转到后备服务器进程。结果是,该路由器被从系统中有效的删除了,直到执行重新初始化的进程。
本发明的实施方案提供一种容错的数据通信的系统和方法,该系统和方法让后备进程与远程进程持续通信,所述远程进程是主服务器进程在以前建立的网络连接。本实施方案保持了通信程序的连续性,防止通信中断和数据丢失。
本发明的实施方案提供与远程进程通信的主进程,传输内容信息和通信状态。主进程将内容信息和通信状态存入数据存储器,在主进程失败的情况下,存储器可以被后备进程读取。在发生失败的情况下,与远程进程的通信转到后备进程,后备进程通过检索数据存储器中的内容信息和通信状态镜像主进程。因而,后备进程可以用从数据存储器检索的通信状态与远程进程持续的通信。
通信状态包括网络连接状态,通过网络连接,例如TCP连接,更新被传输。对于TCP连接,主进程还包括容错的、连接-导向的传输协议,传输协议支持与远程进程实施通信控制协议(TCP)通信。根据本发明的一个实施方案,容错传输协议是TCP协议的改进版本,容错传输协议将通信状态存入数据存储器,后备进程可利用数据存储器保持已建立的网络连接的通信。
本发明的实施方案可以被适用于不同应用,包括在网络环境下路由器交换路由选择表单的更新。这样的路由器包括与至少一个的外部的连接相连接的主路由选择进程。主路由选择进程可以通过外部连接与远程服务器通信,传输路由选择数据和通信状态。主路由选择进程存储路由选择信息和通信状态于数据存储器,在主进程失败的情况下数据存储器可以被后备路由选择进程利用。根据本发明的一个实施方案,通信状态是用于传输更新的网络连接的状态。
在失败的情况下,与远程路由器的通信转到后备路由选择进程,后备路由选择进程通过检索数据存储器中的路由选择数据和通信状态来镜像主路由选择进程。这样,后备路由选择进程可以用从数据存储器检索的通信状态与远程路由器持续通信。
根据本发明的一个实施方案,主路由选择进程可以执行互联网路由选择协议,例如BGP(边界网关协议),路由选择协议通常在TCP(传输控制协议)上交换路由选择表单的更新。在这样的方案中,通信状态是TCP连接的当前状态,包括TCP接口地址、TCP状态标识(例如关闭的、听、已建立的等)、发送和接收序列号、确认序列号等。
主路由选择进程在数据存储器中储存存储的状态,存储状态得到通信状态。例如,当TCP数据段被接收,TCP数据段具有发送序列号(例如,通信状态),TCP接收序列号(例如,存储的状态)是得自发送序列号并存在该连接的存储数据中。对于一些TCP连接状态,通信状态与存储状态是相同的。
然而,TCP不允许应用-应用的传输TCP数据段。相反,TCP传输确认,通常指ACKs,作为对接收TCP数据段的回应。TCP确认不能保证数据被传输到终端用户进程,只有TCP接收进程有权这么做。这样,通过标准TCP,当收到TCP确认时,路由选择表单的更新被处理和被主服务器进程备份都是没有保证的。
本发明的实施方案还提供一种系统和方法,用于提供应用-应用的数据通信,以保证内容信息和通信状态都被存入数据存储器,并在收到确认之前,确认是由通信的发送终端(例如读取)或传送数据到通信的接收终端(例如些)。这样,当后备程序被初始化,在从主进程到后备进程的转换过程就避免了丢失数据。
这样的方案对于周围的不能执行本发明的容错数据通信的路由器(例如,执行标准TCP的路由器)是透明的。这样,不需要对现有路由器进行改动就能使其与本发明的容错数据通信的路由器共同工作。
附图简要说明如附图中展示的本发明的各部分的不同视图,本发明的目标、特征和优点将由以下的详尽描述而变得更为清晰。附图不必限于比例,附图的重点是展示本发明的机理。
图1展示了路由器通过连接相互联结计算机网络;图2展示了本发明的一个实施方案中的可实施容错数据通信的路由转换器的硬件部分;图3A是本发明的一个实施方案中的容错数据通信的路由器在一般操作状态下的示意图;图3B是本发明的一个实施方案中的容错数据通信的路由器在后备模式状态下的示意图;图4展示了本发明的一个实施方案中与远程同级执行容错TCP连接的软件组成部分;图5A展示了本发明的一个实施方案中的在容错TCP连接上的读取进程;图5B展示了本发明的一个实施方案中的在容错TCP连接上的写入进程;图6是本发明的一个实施方案中,当数据通信的后备模式从主应用进程到后备应用进程,重建FTTCP连接的过程的流程图。本发明的详细描述本发明的优选的实施方案的详细描述如下。
本发明的实施方案提供一种用于容错的数据通信的系统和装置。在一个实施方案中,实施容错的传输协议,为建立与远程的同级应用进程的网络连接和保持当前联结状态于存储器。在应用进程失败的情况下,网络连接的本地端可从存储器内存储的状态被重新更新。这样,应用进程的备份可在那些网络联结上持续通信。本发明的方案可适用于不同的应用,以提高数据交换的可靠性。根据本发明的一个方案,路由器,例如国际互联网路由器,可以执行交换路由选择表单的容错的数据通信。
图2展示了本发明的一个实施方案中的可实施容错数据通信的路由转换器的硬件部分。路由交换器200可以是国际互联网路由器,国际互联网路由器在指向最终目的地的外部连接前向传输TCP/IP数据包。路由交换器200包括一些由主服务器220a管理的路由器模块230。后备服务期模块220b与路由交换器200结合,以管理路由选择操作,在主服务器模块220a失败的情况下。
主服务器模块220a在整个系统200指挥路由选择操作。而且,主服务器模块220a保存一些IP路由选择协议的路由选择表单,包括BGP(边界网关协议)。BGP在“边界网关协议4(BGP-4)”Internet标准(草案)1771,Y.Rekhter和T.Li,1995年3月中更详尽的描述,该文的全部内容合并作为本发明的基础。路由选择表单是由主服务器模块220a动态更新的,通过更新与通过外部连接联结在路由交换器200上的上游和下游路由器交换路由选择表单。
每一个路由模块230是联结在中止于远程路由器的外部连接,例如国际互联网路由器。路由器模块230也相互联结,产生路由器200内的国际互联网拓扑,称为结构。然而,其它路由器构成,例如那些基于纵横交换和总线的,可以为了内部联结路由器模块230而使用。根据本发明的一个实施方案,结构防止通过内部联结路由器模块230的内部死锁和树饱和,以提供从任何源到任何目的地的结构的多路径。根据本发明的一个实施方案,每个路由器模块230包括一个整合的开关和线路卡,用于结构内部和外部的从结构到远程路由器的路由选择数据包。
这样的结构包括多维环形结构和伽马曲线结构。多维环形结构在美国专利6,285,679,公布于2001年9月4日,名称为“事件-驱动的路由选择的方法和装置”中详更细的描述,该文的全部内容合并作为本发明的基础。
主服务器和后备服务器220a,220b通过不同的路由器模块230进入结构,称为粘贴的模块或SAM。经过SAM接入结构,活动的服务器模块可发送和接收在外部连接上的路由选择表单的更新。
主服务器模块220a连接于后备服务器模块220b,提高传送数据和控制信息的通道。根据本发明的一个实施方案,主服务器模块220a是经过控制模块250的机架的以太网转发器直接联结在后备服务器模块220b上或经过横渡的线路直接联结在后备服务器模块220b上。
图3A是本发明的一个实施方案中的容错数据通信的路由器在一般操作状态下的示意图。在普通模式下,主服务器进程310,在主服务器模块220a内,发起或接收于远程路由器330的网络联结,以交换路由选择表单的更新。如果表单的更新改变了路由选择表单315a的状态(例如,加入,删除或修改表单的入口),主服务器进程310传送路由选择状态的变化存储于后备服务器模块220b的储存器350。这样,当主服务器进程310失败,在普通操作中不工作的后备服务器进程370可产生路由选择表单,由与路由选择表单315a相关的储存的路由选择状态355a。
除了复制路由选择表单状态的改变,主服务器进程310也复制与远程路由器330建立的网络连接的连接状态315b。这样,如果主服务器进程310失败(1)当交换路由选择表单的更新时或(2)路由选择表单的更新交换后,但被存储器350确认前,本地的网络连接可以从存储在储存器350内的连接状态355b产生。这样,后备服务器进程370可以在以前建立的网络连接从主服务器进程310失败的一点上进行当前的继续交换。
图3B是本发明的一个实施方案中的容错数据通信的路由器在后备模式状态下的示意图。当主服务器进程310失败,路由选择操作的控制转移到后备服务器进程370,后备服务器进程370示例于后备服务器模块220b。从存储器350检索出的存储的路由选择状态355a,后备服务器进程370产生路由选择表单375a。而且,由主服务器进程310建立的网络连接的本地方是由存储器350内储存的连接状态355b产生的,网络连接的本地方允许后备服务器进程370可以持续的交换当前与远程路由器330在路由选择表单的更新。这一方案防止在从主服务器进程310到后备服务器进程370传输失败时导致路由选择表单的更新的丢失。
关于国际互联网路由器,BGP是IP路由选择协议,BGP在TCP(传输控制协议)上交换路由选择表单的更新。TCP是连接-导向的传输层协议,该协议在“Internet标准(草案)793-传输控制协议”防御提升研究计划办事处,1981中做出更为详细的描述,该文全部内容合并作为本发明的基础。当TCP传输确认,通常指ACK,作为收到TCP数据段的响应。TCP确认不允许数据被传送到终端用户进程,只是接收TCP进程有责怪这样做。这样,通过标准TCP,当收到TCP确认时,没有路由选择表单的更新被处理和备份的保证。
根据本发明的一个实施方案,TCP协议被修改,以提供容错的数据通信,以保证应用-应用的数据通信。修改不要求改变TCP数据段的格式。这样,这些方案使现有的执行标准TCP的路由器能够协调,避免了修改现有路由器,以使其参与运作。
图4展示了本发明的一个实施方案中与远程同级执行容错TCP连接的软件组成部分。容错TCP(FTTCP)可以在主服务器和后备服务器模块220a和220b被执行,通过(1)TCP-协调FTTCP协议驱动器450a和450b;(2)FTTCP网络界面接口层接口420a和420b;(3)FTTCP任务430;以及(4)存储进程490。TCP协议驱动器460a、460b和TCP网络界面接口层接口440a、440b也可用于传送到存储器490和从存储器490传出。应用处理410a、410b接口和用于与上游和下游路由器可靠交换路由选择表单的更新的具有FTTCP的接口。IP协议驱动器470a、470b和网络接口驱动器480a、480b支持上述传输和应用层。
根据本发明的一个实施方案,FTTCP协议驱动器450a、450b是TCP的修改版本,通过修改内部与远程TCP同级的数据读写的语义提供容错功能,如图5A和5B中所示。如主/后备服务器进程410a、410b的应用进程要求网络服务(例如,读和写服务),从FTTP协议驱动器450a、450b,通过为FTTCP修改的网络界面接口层接口420a、420b。根据本发明的一个实施方案,FTTCP网络界面接口层接口420a、420b提供网络界面接口系统呼叫的API(应用程序接口),类似于标准TCP协议驱动器460a、460b的TCP网络界面接口层接口440a、440b。FTTCP网络界面接口422代表传输层联结的终点,并且是特殊的文件类型,用于从内核的要求网络服务的应用进程。FTTCP网络界面接口422是与在传输中暂时存储TCP数据段的接收缓冲器423和发送缓冲器424结合的。
FTTCP任务430和存储进程490可以是在TCP/IP上的内核的通信进程,传输从FTTCP协议驱动器450a的FTTCP的连接状态。存储进程490可以是用户模式,在后备服务器模块220b上执行。存储进程490提供API接口,以保持当前的路由选择表单的状态和已建立的FTTCP连接的状态。存储进程490也提供从存储的状态重生成网络连接的路由选择表单的状态的API接口。根据本发明的一个方案,存储进程490执行状态存储的相对排列或无意义的表单。
FTTCP的方案执行TCP语义的读取和写入的修改,以保证当服务器失败时两个FTTCP终点的同步。例如TCP通常发送确认作为TCP数据段的收条。然而,在传送确认后,应用进程可在读取和处理数据(例如,路由选择表单的更新)前失败。这样,当后备应用进程被初始化,从存储器重建的路由选择表单可能不包括路由选择表单的更新。重新传输路由选择表单的更新不大可能,如果包含更新的TCP数据段被确认。
图5A展示了本发明的一个实施方案中的在容错TCP连接上的读取进程。通常,FTTCP不确认TCP数据段的收到,直到被明确的引导这样做。根据本发明的一个实施方案,当数据被处理并成功的从存储器取得,应用进程引导FTTCP传输一个确认。如果应用进程在从存储器取得之前失败,确认就不会被传输。这样,远程TCP等同可以持续重新传送数据,允许传输至后备应用进程以处理和确认重新传输的数据。尽管FTTCP可以被适用于不同应用,图5A展示了在路由器环境下容错TCP连接的读入处理。
在510,在FTTCP连接上传输的TCP/IP数据包被IP协议驱动器470a接收。TCP数据段,包括至少一部分的路由选择表单的更新,从数据包被解压缩并且经过修改的tcp_input系统呼叫被前向传输至FTTCP协议驱动器450a。
在515,FTTCP协议驱动器450a设置从TCP数据段到FTTCP网络界面接口422的网络界面接口接收缓存器423数据文件的搜索路径,这一过程与TCP数据段表头中确定的目的地TCP端口相关。对于BGP,公知的TCP端口确认是179。相对于TCP,FTTCP协议驱动器的修改的TCP输入系统呼叫即不确认TCP数据包的收到也不更新在这一阶段的连接的状态(例如,增加下一序列数的接收)。
在520,应用进程410a(例如,GateDTM从NextHopTechnologyTM的主服务器进程)读取动网络界面接口接收缓存器423读取的数据,通过唤醒读取系统呼叫。相对于TCP,在被读取后数据从网络界面接口接收缓冲器423不是被立即“降下”(例如,删除)。在网络界面接口接收缓冲器423中降下数据,主服务器进程必须发出明确的请求到网络界面接口层420a的FTTCP网络界面接口422。
在525,主服务器进程410a处理从网络界面接口接收缓冲器423读取的数据,通过经路由选择表单的更新合并到BGP路由选择表单并存储处理过的路由选择表单的更新于存储器490。根据本发明的一个方案,经过TCP/IP层460a、470a,主服务器进程传输处理过的路由选择表单的更新到存储器490。
在530,从存储进程490发回的确认信息确认处理过的路由选择表单的更新的存储。
在535,在消耗数据之上,主服务器进程410a引导网络界面接口422从网络界面接口接收缓冲器423降下数据。根据本发明的一个实施方案,主服务器进程410a引导网络界面接口422降下数据,通过调用修改的setsockopt()系统呼叫的一个新的网络界面接口水平选择,SO_FTDROP,和字节的数量被降下。
在540,修改的setsockopt()系统呼叫处理SO_FTDROP选择,发出信息到与FTTCP任务430结合的任务排列。SO_FTDROP信息要求任务430更新存储器490内的FTTCP连接状态。根据本发明的一个实施方案,连接状态包括接收下一序列数,提供当前FTTCP连接的接收状态。
在545,setsockopt()系统呼叫返回主服务器进程410a,允许进一步应用水平的处理。
在550,经过连接到存储器490的TCP/IP连接,FTTCP任务430发送更新的连接状态,并等待确认指示是否更新被成功提交给存储器490。
在555,从存储器进程490的确认被接收。
在560,依据成功的确认,FTTCP任务430引导从网络界面接口接收缓存器423读取的数据的删除。根据本发明的一个实施方案,经过标准sbdrop()系统呼叫,数据被从接收缓存器423删除,规定网络界面接口接收缓存器423的地址和被降下的数据的字节数。
在565,FTTCP任务430引导FTTCP协议驱动器450a更新FTTCP连接的状态(例如,从FTTCP连接接收下一序列数)。根据本发明的一个实施方案,FTTCP任务430引导接收的下一序列数的更新是通过调用修改的sbdrop()系统呼叫、确定FTTCP的新的协议水平并确定新的TCP_FT_DROP选择。这个选择被过滤进入FTTCP协议驱动器450a,并在那里被tcp_ctloutput()系统呼叫控制,为FTTCP连接更新下一序列数的接收。
在570,依据接收的下一序列数的更新,FTTCP协议驱动器450a发送TCP数据段至远程FTTCP连接的同级、确认已接收的TCP数据段并确定预期被接收的下一TCP数据段的序列数。
通过在确认TCP数据段之前提交接收下一序列数至存储器,本地接收窗口会总是等同或前于同级的发送窗口。在失败的情况下,存储器或者具有与TCP同级相同的信息或比客户更多的近期信息。更多的近期信息通过前于同级发送窗口的接收窗口反映在TCP。
图5B展示了本发明的一个实施方案中的在容错TCP连接上的写入进程。通常,FTTCP支持“自动”写入。这样,当应用进程在FTTCP连接上发出写入数据的系统呼叫,FTTCP试图向存储器确认传输的数据(例如,发送数据)的入口的备份。如果有足够的空间来存储所有发送的数据,写入系统呼叫返回一个错误。否则,数据被提交至存储器并且FTTCP根据标准TCP进程传输数据。如果在传输发送数据时应用进程失败,在通过后备应用进程重新传输的发送数据的备份是有效的。为了避免在后备应用进程重新传输整个发送数据,任何部分的可以被远程同级确认的发送数据被从存储器删除,以及相关的更新的FTTCP连接状态被删除。图5B展示在路由器环境中的FTTCP连接上的写入进程。
在610,主服务器进程410a调用写入系统呼叫来初始化在FTTCP连接上的发送数据的传输。在发送数据被写入FTTCP网络界面接口422的网络界面接口发送缓存器424之前,写入系统呼叫决定是否网络界面接口发送缓存器424有足够的空间保存所有内容信息。根据本发明的一个实施方案,网络界面接口发送缓存器424的空间被定义为与发送数据加当前发送缓存器424中等待发送的数据的和相等。如果没有足够的空间,写入系统呼叫返回一个错误。否则,写入进程进到615。
在615,信息被接入FTTCP任务430,请求存储发送信息于存储器490,并更新存储器内网络界面接口发送缓存器424的状态。根据本发明的一个实施方案,网络界面接口发送缓存器424的状态还包括发送下一序列数和发送未确认的序列数。
在620,写入系统呼叫转回主服务器进程,允许进一步的应用水平进程。
在625,FTTCP任务430经过TCP/IP连接发送数据和网络界面接口发送缓存器的状态至存储器490。并等待从存储器的确认,指示是否数据被成功提交给存储器490。
在630,存储器发送确认给FTTCP任务430。
在635,依据成功的确认,FTTCP任务430要求FTTCP协议驱动器450a初始化FTTCP连接上的数据传输。根据本发明的一个实施方案,此系统呼叫是tcp_usrreq(PRU_SEND)。
在640,根据对传输请求的回应,FTTCP协议驱动器450a从写缓存器传送数据,这一过程与些如系统呼叫被检查,数据经sbappend()系统呼叫至网络界面接口发送缓存器424。
在645,产生TCP数据段的进程和在FTTCP连接上发送数据段是经tcp_output系统呼叫初始化的。尤其,FTTCP协议驱动器450a分割当前信息为数据片断,数据片断被加入多TCP/IP数据包的数据流量。每个被传送的TCP片断包括发送序列数,根据TCP协议的定义。
在650,接收TCP片断的结束确认,确定要求被接收的下一序列数。
在655,FTTCP协议驱动器450a前向发送TCP数据段,TCP数据段包括网络界面接口层420a内的FTTCP网络界面接口422的网络界面接口接收缓存器423的确认。
在660,FTTCP网络界面接口422引导FTTCP任务430更新存储器490内网络界面接口发送缓存器424的状态,通过更新发送下一序列数和发送未确认序列数,有效的删除存储器490内的发送数据的确认部分。
在665,FTTCP任务430传送网络界面接口发送缓存器424的更新的状态,并等待从存储器490的确认信息。
在670,存储器490发送确认信息,指示存储请求是否成功。
645至670步重复直至整个发送数据被传送并通过接收FTTCP连接的结束来确认。
主服务器进程410a在哪里失败,存储器490保持可被重新传送的、除了已被确认的整个信息的备份。即使主服务器进程在从接收结束的TCP确认前失败,可重新传送已被接收和确认的BGP数据。尤其,BGP协议接受从未被接收的数据包的内容信息,但忽视已被接收的信息。
图6是本发明的一个实施方案中,当数据通信的后备模式从主应用进程到后备应用进程,重建FTTCP连接的过程的流程图。依据被激活的、后备服务器进程220b、后备服务器进程410b、例如GateDTM后备服务器进程与储存进程490通信,以重新建立主服务器进程410a失败时本地方的FTTCP连接。一旦连接重新建立,后备服务器进程410b可以持续交换数据避免数据丢失。
重建FTTCP连接意味着TCP控制程序(TCPCB)和互联网控制程序(INPCB)必须重建失败前的同样状态。创建这些数据结构全部的相关信息储存在存储器内的连接信息内。内核占用连接的数据结构并重新注入tcpcb和inpcb。网络界面接口发送缓存器424可以轻松的被重建,通过附加存储器内的发送缓存器424至新建的网络界面接口和缓存器。图6展示了在路由器环境中重建FTTCP连接。
在710,GateDTM后备服务器410b发送请求至存储进程490,要求对FTTCP连接的控制(例如,网络界面接口确定)。根据本发明的一个实施方案,后备服务器进程410b被预设置,具有国外地址/接口列表的成对的确定路由器来交换路由选择信息。这样,后备服务器进程410b通过请求FTTCP连接的列表累接,确定请求累接的国外地址/接口对。
在720,存储进程490搜索内部数据存储,例如无意义的表单或相关排列,匹配请求的标准的FTTCP连接数据结构。如果,在730,发现了匹配,进程进到740。否则,存储进程490发回错误,允许后备服务器进程410b与其它FTTCP连接的请求。
在740,存储进程490创建FTTCP网络界面接口,通过网络界面接口层420b发送系统呼叫。例如,系统呼叫可如下表示so=socket(AF_INET,SOCK_STREAM,IPPROTO_FTTCP)
so是发回FTTCP的网络界面接口确认。
在750,响应FTTCP的网络界面接口的请求,TCP和IP控制程序(例如tcpcb和inpcb)为网络界面接口而产生。
在760,存储器490得到全部FTTCP连接的网络界面接口发送缓存器424的数据并经过网络界面接口层420b前向发送至网络界面接口,并被附加至FTTCP网络界面接口的网络界面接口发送缓存器424。例如,系统呼叫可以被如下表示setsockopt(so,SOL_SOCKET,SO_FTCONNDATA,buffer,size)网络界面接口发送缓存器的数据被存入buffer.
在770,存储器490得到FTTCP的连接状态并前向发送至网络界面接口。例如,系统呼叫可以如下表示setsockopt(so,SOL_SOCKET,SO_FTCONNSTATE,&connd,sizeof(rep_connection_t))connd保存FTTCP连接的状态数据结构(例如,structrep_connettion_t)。根据本发明的一个实施方案,FTTCP连接的状态数据结构可储存以下i.连接类型,连接是否被接受;ii.由存储器提供的检索用的统一的FTTCP连接确定;iii.表示FTTCP网络界面接口(例如,本地和国外地址/接口对)的连接字节组;iv.如TCP协议定义的TCP状态;
v.接收和发送下一序列数;vi.发送的未确认的下一序列数;vii.发送最大窗口序列数;以及viii.初始发送和接收系列数。
在780,TCP和IP控制程序与FTTCP连接状态被提供,并且加入IP控制程序至inpcb无意义的表单以保证本地方的连接在790,存储器返回控制(例如,网络界面接口确定)至后备服务器进程410b,以持续在FTTCP网络界面接口连接交换路由选择表单的更新。
在800,后备服务器进程410b通过预设置的FTTCP连接字节组累连,前向传输其它请求直至列表用尽。
本发明通过以上优选的实施方案进行了详尽的展示和说明,本领域普通技术人员应该理解,本发明的以上的不同形式的变化和细节的变化都在本发明的权利要求范围之内。
权利要求
1.一种容错的数据通信的方法,包括参与通信,包括与源传送数据和通信状态;从源接收数据;处理收到的信息;以及其后,向源确认收到数据。
2.根据权利要求1的方法,其中处理收到的数据包括存储或应用收到的数据于一个以上用于备份的数据存储器。
3.根据权利要求2的方法,进一步包括存储通信状态于一个以上数据存储器,以致通信状态与存储的数据联合或应用于一个以上数据存储器。
4.根据权利要求3的方法,进一步包括失败时激活备份;从存储在一个以上数据存储器的数据和通信状态重建数据和通信状态;以及用由备份重建的数据和通信状态持续恢复的通信。
5.根据权利要求4的方法,其中用备份持续通信包括要求从源接收相应于失败前存储在一个以上数据存储器通信状态的数据。
6.根据权利要求3的方法,其中通信状态是得自以前得通信状态和收到的数据。
7.根据权利要求3的方法,其中通信状态包括TCP对话数据。
8.根据权利要求1的方法,其中通信是TCP/IP通信。
9.根据权利要求1的方法,其中收到的数据是路由选择信息。
10.根据权利要求9的方法,其中路由选择信息是BGP(边界网关协议)路由选择信息。
11.根据权利要求1的方法,源是国际互联网路由器。
12.一种容错的数据通信的方法,包括参与通信,包括与源传送数据和通信状态;从源接收数据;储存或应用收到的数据于一个以上用于备份的数据存储器;以及存储通信状态于一个以上数据存储器,以致通信状态与存储的数据联合或应用于一个以上数据存储器。
13.根据权利要求12的方法,进一步包括失败时激活备份;从存储在一个以上数据存储器的数据和通信状态重建数据和通信状态;以及用由备份重建的数据和通信状态持续恢复的通信。
14.根据权利要求13的方法,其中通过备份持续通信包括要求从源接收相应于失败前存储在一个以上数据存储器的通信状态的数据。
15.一种容错的数据通信的方法,包括参与通信,包括与目的地传送数据和通信状态;为传送到目的地发送的数据存储于一个以上的数据存储器;以及存储通信状态于一个以上数据存储器,以致通信状态与发送的数据结合。
16.根据权利要求15的方法,进一步包括传输分段的发送的数据到目的地;以及更新在一个以上数据存储器内的通信状态,以致通信状态反映发送的数据段。
17.根据权利要求16的方法,进一步包括接收相应于传送的数据段的确认;以及更新在一个以上数据存储器内的通信状态以反映传输的数据段的确认。
18.根据权利要求17的方法,进一步包括删除相应于确认的传送的数据段的储存在一个以上数据存储器内的发送的数据。
19.一种容错的数据通信的系统,包括参与通信的控制单元,包括与源传送数据和通信状态;控制单元从源接收数据;控制单元处理接收的数据;以及其后,控制单元确认收到回到源的数据。
20.根据权利要求19的系统,进一步包括一个以上数据存储器;以及收到的数据的处理包括控制单元储存或应用收到的数据于用于备份的一个以上的数据存储器。
21.根据权利要求20的系统,进一步包括控制单元储存通信状态于一个以上数据存储器,以致通信状态与储存的数据结合或应用于一个以上数据存储器。
22.根据权利要求21的系统,进一步包括控制单元失败时激活后备控制单元;后备控制单元从一个以上的数据存储器内的数据和通信状态重建数据和通信状态;以及后备控制单元用重建的数据和通信状态持续恢复的通信。
23.根据权利要求22的系统,其中的通过备份持续通信包括后备控制单元要求从源接收相应于失败前将通信状态储存于一个以上的数据存储器的数据。
24.根据权利要求21的系统,其中通信状态得自以前的通信状态和收到的数据。
25.根据权利要求21的系统,其中通信状态包括TCP通话数据。
26.根据权利要求19的系统,其中通信是TCP/IP通信。
27.根据权利要求19的系统,其中收到的数据是路由选择信息。
28.根据权利要求27的系统,其中路由选择信息是BGP(边界网关协议)路由选择信息。
29.根据权利要求19的系统,所述源是国际互联网路由器。
30.一种容错的数据通信的系统,包括参与通信的控制单元,包括与源传送数据和通信状态;控制单元从源接收数据;控制单元储存和应用收到的数据于一个以上用于备份的数据存储器;以及控制单元储存收到的数据于一个以上数据存储器,以致通信状态与储存的数据结合或应用于一个以上数据存储器。
31.根据权利要求30的系统,进一步包括后备控制单元,控制单元失败时被激活;后备控制单元从一个以上数据存储器内的数据和通信状态重建数据和通信状态;以及后备控制单元保持与请求的数据和通信状态产生的通信。
32.根据权利要求31的系统,其中通过后备控制单元的持续通信包括后备控制单元要求从源接收相应于失败前储存在一个以上数据存储器的通信状态的数据。
33.一种容错的数据通信的系统,包括参与通信的控制单元,包括与目的地传送数据和通信状态;控制单元存储为了传输到目的地发送的数据于一个以上数据存储器;以及控制单元储存通信状态于一个以上数据存储器,以致通信状态与发送的数据联合。
34.根据权利要求33的系统,进一步包括控制单元传输发送的分段的数据的至目的地;以及控制单元更新一个以上数据存储器内的通信状态,以致通信状态反映发送的数据段。
35.根据权利要求34的系统,进一步包括控制单元接收相应于传输的数据段的确认;以及控制单元更新一个以上数据存储器内的通信状态以反映传输的数据段的确认。
36.根据权利要求35的系统,进一步包括控制单元删除相应于传输的数据段的确认的一个以上数据存储器内的发送数据部分。
37.根据权利要求19的系统,其中的控制单元包括应用进程;连接-导向的传输协议进程;通过传输协议进程,与源通信的应用进程;以及数据被应用进程处理后,传输协议进程确认收到返回源的数据。
38.据权利要求37的系统,其中传输协议进程储存通信状态于一个以上数据存储器,以致通信状态与储存的收到的数据结合或应用于一个以上数据存储器。
39.据权利要求33的系统,其中的控制单元包括应用进程;连接-导向的传输协议进程;通过传输协议进程,与目的地通信的应用进程;以及传输协议进程储存从应用进程传输至目的地一个以上数据存储器的发送的数据;传输协议进程储存通信状态于一个以上数据存储器,以致通信状态与发送的数据结合。
40.一种国际互连网路由器包括控制单元,与一个以上外部连接电气联结,控制单元参与通信,包括经过其中一个外部连接与远程路由器传输数据和通信状态;控制单元接收从远程路由器的路由选择表单;控制进程处理收到的路由选择数据;以及其后,控制单元确认收到返回远程路由器的数据。
41.根据权利要求40的国际互联网路由器,其中处理收到的数据包括控制单元储存或应用收到的数据于一个以上用于备份的数据存储器。
42.根据权利要求41的国际互联网路由器,进一步包括控制单元储存通信状态一个以上数据存储器内,以致通信状态与储存的路由选择数据结合或应用于一个以上数据存储器。
43.根据权利要求42的国际互联网路由器,进一步包括后备控制单元,控制单元失败时被激活;后备控制单元从一个以上数据存储器内的数据和通信状态重建数据和通信状态;以及后备控制单元保持与重建的数据和通信状态的恢复的通信。
44.一种国际互连网路由器包括参与通信的控制单元,包括与远程路由器传送数据和通信状态;控制单元从远程路由器接收路由选择数据;控制单元储存和应用收到的数据于一个以上用于备份的数据存储器;以及控制单元储存通信状态于一个以上数据存储器,以致通信状态与储存的路由选择数据或结合或应用于一个以上数据存储器。
45.一种国际互连网路由器包括控制单元与远程路由器通信,包括传输数据和通信状态;控制单元储存发送的数据于一个以上数据存储器以传送至远程路由器;以及控制单元储存通信状态于一个以上数据存储器内,以致通信状态与发送的数据结合。
46.根据权利要求45的国际互联网路由器,进一步包括控制单元传输分段的发送的数据至目的地;以及控制单元更新一个以上数据存储器内的通信状态,以致通信状态反映传输的数据段。
47.根据权利要求46的国际互联网路由器,进一步包括控制单元接收相应于发送的数据段的确认;以及控制单元更新一个以上数据存储器内的通信状态,以反映传输的数据段的确认。
48.根据权利要求47的国际互联网路由器,进一步包括控制单元删除一个以上数据存储器内的发送的数据部分,相应于确认的传输的数据段。
全文摘要
容错的数据通信的系统和方法。本发明的优选的方案适用于不同的应用,包括在网络环境中交换路由选择表单的更新的路由器。主进程与远程进程通信,包括传输内容信息和通信状态。主进程将内容信息和通信状态存入数据存储器。在主进程失败的情况下,与远程进程通信转到后备进程,后备进程通过检索数据存储器中的内容信息和通信状态镜像主进程。因而,后备进程使用从数据存储器检索的通信状态来继续与远程进程通信。
文档编号H04L12/56GK1714545SQ03802636
公开日2005年12月28日 申请日期2003年1月24日 优先权日2002年1月24日
发明者阿修克·拉姆珀里尔, 普拉迪佩·达拉 申请人:艾维西系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1