为数据分组选择路由的方法和系统 一般地说,本发明涉及一种通过分组通信网为数据分组选择路由的方法,更确切地说,涉及一种在其中各节点之间的最佳路径被存储在在每个节点生成的路由选择表中的网络中为数据分组选择路由的方法。
分组通信是一种数据通信形式,利用这种通信形式通过误差检验和接收确认为数据段或分组选择路由。数据分组可直接在一个源节点和一个目标节点之间传送,或经多个中继节点中继。已知有几种数据分组路由选择方法。
公知的方法之一是基于号码簿的路由选择方法。按照该方法,分组信标中的地址被用作存储在一个源节点中的分组路由选择表的号码簿的索引。分组路由选择表由一个顺序排列的分组节点标识符或呼号的列表构成,所述的呼号代表从源节点到目标节点的完整传输路径。一旦该数据分组从源节点被送出,其通过网络的路径就由存储在源节点中的分组路由选择表确定。分组路由选择表必须利用关于网络中每个节点的连通性的知识来准备,并且在一个典型的基于号码簿地路由选择方案中,每个节点必须为该网络中其发送数据分组到达的每个其他节点保持一个完整的路由选择表。基于号码簿的路由选择方案需要不断的维护和在号码簿中使用的网络互联信息的通信。这些功能的每一种都要消耗网络资源,并会大大地降低大网络中的性能。然而,基于号码簿的路由选择技术具有相对于包括数据延迟,通过率,稳定性,优先权等的各种网络参数使路由选择最佳化的优点。
路由选择技术的另一基本方案是非基于号码簿的路由选择技术。在非基于号码簿的路由选择中,避免了与基于号码簿的路由选择技术相关的复杂性。在网络中不必为每个发送节点存储连通性信息,从而降低了为保持网络连接必须由网络执行的处理开销量。然而,非基于号码簿的路由选择技术一般不允许网络参数最佳化。
在授权给Baran等人并已转让给本发明受让人的美国专利4,939,726中,公开了一种允许网络参数最佳化的非基于号码簿的路由选择方法和系统。根据其中描述的方法,网络中的每个节点由在一外部的基于坐标的参考系统中的绝对地理坐标或由一个指示绝对位置的码(节点坐标)唯一地确定,并且所述绝对地理坐标或等效物被作为每个分组的分组标识符的一部分使用。为每个数据分组做出路由选择决定,即使该分组被指向该节点已为其接收了一个分组的目标。按照预定的准则,路由选择可被优先化,最好实现最佳前向过程,即-使用最少量的功率并考虑系统的特征的最大前向过程。
因此,Baran等人的分组路由选择方法不使用路由选择号码簿或表执行数据路由选择。网络的每个节点收集或反之被提供有关该节点的通信区域内其自身和相邻节点间的通信质量的信息。当在一节点处一个数据分组已被接收到时,根据从该本地节点与其相邻节点间通信的记录中获得的准则通过网络进一步为该分组进行路由选择。该准则包括距离,功率要求,重试记录(可靠性),通过量记录,转发速度(纯数据速率),网络延迟,和数据优先权。典型地,具有一个初始化程序,执行该程序以确定在一目标象限内各相邻节点的纬度和经度,且根据预选的优先权对该准则加权,以在每个从属节点为每个可能的属于该从属节点的目标地点建立一链路质量因数(LQ)。对于被接收和需要被前向发送的每个分组,Baran系统中的节点生成一个可能的中继节点表,为该表排序,然后对相邻节点进行查询,看看哪个节点是可用的。
虽然Baran中描述的系统表明执行的很好,且具有高于非基于号码簿的路由选择方案的优点,但由于网络中的每个节点对其接收的每个分组必须做出路由选择确定,所以在Baran网络中存在着费用和延迟问题。所需要的是这样一种网络和路由选择方法,其保留了Baran的基于坐标的选址方案的优点,但不要求开销和在Baran系统中为做出关于每个分组的路由选择决定所需的每个分组的处理。
按照本发明,在其中各节点被指定了一个独立的基于坐标的地址,且在每个节点处做出路由选择决定,而无需使用基于号码簿的路由选择的分组通信系统中,利用最终目标为一特定分组做出的路由选择决定被存储在每个节点处,以便由该节点发送到该同一最终目标的下一分组能根据该最初为该目标做出的路由选择决定被前向发送。路由选择决定被存储在每个节点处的一个本地路由选择表中。在一个实施例中,各节点还为分组存储有关源节点的路由选择信息,以便当原始的源接收到一返回分组时,中继节点已计算出了合适的路由选择决定。
在网络工作期间,每个节点将构造和保持一个为将各数据分组指向朝着其最终目标的下一节点而有用的路由选择表。按照根据本发明的方法,仅必须对第一次到达最终目标或从该最终目标接收的分组做出有关到达该最终目标的分组的路由选择决定。对为目标节点接收分组的中继节点根据该目标节点的独立的基于坐标的地址为该分组确定下一中继节点。一旦一中继节点已为最终目标确定了下一中继节点,则存储在一路由选择表的信息和在该中继节点接收的连续的分组就立即被传送到在该路由选择表中列出的该下一中继节点。在本发明的一个实施例中,中继节点还存储对于各分组源节点的下一中继节点,它通过假设其刚刚接收了分组的中继节点是用于分组返回该源节点的最佳下一节点来进行接收。以这种方式,当中继节点从返回源的目标接收到一个返回分组时,将不必为该分组做出路由选择决定,而是将沿其来的路径返回。
根据本发明构造的网络系统不同于基于号码簿的路由选择系统,其不同之处在于在每个节点处局部地为分组做出每个路由选择决定。一个源节点并没有给定一个到达目标节点的完整路径,而仅可以最终节点方向将该分组发送到一相邻节点,该相邻节点确定在到达该最终节点的路径上的下一中继节点。根据本发明构造的网络系统与Baran系统的不同之处在于关于路由选择的局部决定被局部地存储,然后可供为其他分组进行路由选择时使用。与Baran不同,节点并不需要为每次接收的数据分组做出路由选择决定,这就大大提高了网络的速度与效率。
通过参考下面结合附图做出的详细描述,将会更好地理解本发明。
图1是说明根据本发明总的数据网络拓扑的框图。
图2是描述当接收到一选址到目标节点的数据分组时一中继节点工作的流程图。
图1示出了根据本发明的一个数据网络。该网络由通过12条路径互连的标记了O至Z的节点构成。12条路径代表各节点之间允许通信的链路。由箭头16代表的路由选择表的各项存在于某些节点之间,以加速各分组向以对其做出路由选择决定的目标的传送。
源节点和目标节点之间的数据传送按如下方式进行。如果节点W希望向节点O发送一信息分组,则节点W将准备该数据分组以及将节点W标识为源、将节点O标识为目标的信标。然后,节点W将检查其路由选择表,查看是否存在用于节点O的项。如果不存在用于节点O的项,节点W将象Baran系统中那样,通过检查其能够与之通信的所有节点做出路由选择决定(在这种情况下,Z和Y也称作W的相邻节点),按照哪个节点在节点O的方向发送最有力对这些节点进行排序,和向该最有力节点发送一询问分组,以确定接收数据分组是否可行。一旦节点W已经确定一相邻节点可用于将数据分组中继到节点O,节点W则将该数据分组连同标识该分组的源和目标以及标识其自身为发送机的信标发送给该所选的节点(在这种情况下为节点Y)。按照本发明,一旦节点W确定节点Y是中继节点,它将把按顺序得到的分组发送到最终目标O,节点W将该信息存储在一个路由选择表中。下次节点W希望向节点O发送一信息分组时,它将检查其路由选择表,找出用于节点O的项,并立即将该分组发送给节点Y,而不必进行上述的做出路由选择决定的过程。
当节点Y接收到该分组时,它也检查其自己的路由选择表,以看看其是否具有用于目标节点O的项。如果存在,该分组将被立即中继到在该路由选择表中作为下一节点列出的节点上。如果不存在,节点Y执行上述的做出路由选择决定的过程,然后在其路由选择表中存储该下一节点(在这种情况下为节点V)作为用于节点O的项,然后将该分组发送给该下一节点。
当节点V接收该分组时,它将在其路由选择表中查找用于节点O的项,如果它找到一项,就将该分组向前发送到该项中列出的节点。如果没有找到用于节点O的项,节点V如上所述做出路由选择决定,然后生成一个用于节点O的路由选择表项。同时,节点V也检查其路由选择表和一相邻节点表,以查看是否存在用于节点W(即,该分组的原始源节点)的项。如果不存在用于节点W的项,节点V则生成一个用于节点W的路由选择表,并利用其从W接收该分组的节点(在这种情况下为节点Y)作为分组返回到W的下一中继节点。以这种方式,如果节点V接收了一个从O到W返回的响应分组,它将立即把该分组传送到节点Y,而无需为该分组做出新的路由选择决定。下表是节点V在已接收并从节点W向节点O发送该分组后其高速缓冲器路由选择表的表示。
路由选择表项 目标节点 下一中继节点
1 O P
2 W Y
按照本发明的各节点被指定,以便路由选择表保持对上次每项被使用的跟踪。当该路由选择表已满时,当前最少使用的项就被弃掉,每次节点为分组做出新的路由选择决定和生成一个新的项。
图2描述了说明根据本发明的一个实施例其一中继节点工作的流程图。虽然该过程的步骤以一特定的顺序示出,但对于本领域的普通技术人员来说,该过程中包含的一些子步骤的顺序可被改变以及该过程的一些步骤能并行处理是显而易见的。当该中继节点接收到一数据分组进行路由选择时该过程开始(步骤S1)。如上所述,该分组包含源节点,目标节点的绝对地址,和发送该分组的相邻节点的地址。中继节点首先检查该分组的源节点标识符,以确定该源节点是否是其能直接发送到一个相邻节点(步骤S2)。如果它不是,中继节点检查其路由选择表,查看是否具有一个用于该源节点的项(步骤S3)。如果不存在这样一项,该源节点检查查看该路由选择表是否已满(步骤S4),如果是,则删除目前很少使用的项(步骤S5)。然后该中继节点为该源节点生成一个路由选择表项(步骤S6)。
一旦源节点标识符的处理完成,该中继节点检查该分组的目标节点标识符。如果该目标节点是该中继节点能够直接与之通信的相邻节点(步骤S7),它发送该分组(步骤S8)。如果其不是,则中继节点检查其路由选择表以确定是否已存在用于该目标节点的项(步骤S9)。如果不存在用于该分组之目标节点的路由选择表项,该中继节点检查,以察看在该路由选择表中是否存在供新项使用的空间(步骤S10)。如果在该路由选择表中没有供新项使用的空间,该节点删除目前很少使用的项,以为新的项腾出空间(步骤S11)。该中继节点然后为目标生成一个新的路由选择表项(步骤S12)。通过上述和Baran专利描述的做出路由选择决定的过程生成了该目标项。一旦已为目标节点生成了路由选择表项,中继节点就利用该项(步骤S13)将该分组传送到其目标(步骤S8)。
对于本领域的普通技术人员来说,对于该过程所做的多种改进将是显而易见。例如,处理源节点标识符和生成源节点项的步骤可在分组被发送之后执行或在该分组被发送的同时执行。另一个例子是该源节点路由选择表项总可以被更新,即使是当存在用于该源节点的旧项时。
通过参考特定的实施例已对本发明进行了描述。对于本领域的普通技术人员来