CN1894890B - 在因特网协议网络中的虚拟环上通信的系统与方法 - Google Patents

在因特网协议网络中的虚拟环上通信的系统与方法 Download PDF

Info

Publication number
CN1894890B
CN1894890B CN2004800374343A CN200480037434A CN1894890B CN 1894890 B CN1894890 B CN 1894890B CN 2004800374343 A CN2004800374343 A CN 2004800374343A CN 200480037434 A CN200480037434 A CN 200480037434A CN 1894890 B CN1894890 B CN 1894890B
Authority
CN
China
Prior art keywords
node
virtual ring
address
message
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2004800374343A
Other languages
English (en)
Other versions
CN1894890A (zh
Inventor
L·德内绍
D·埃斯特韦
P·西克斯科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1894890A publication Critical patent/CN1894890A/zh
Application granted granted Critical
Publication of CN1894890B publication Critical patent/CN1894890B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Abstract

本发明涉及包括提供端到端数据传输的传输层协议的网络内的节点中的系统、方法和计算机程序,用于在虚拟环上多播数据报,虚拟环上的每个节点根据网络传输层协议通过虚拟连接逻辑地连接到两个并且仅仅两个邻居节点,所述两个邻居节点是上游邻居节点和下游邻居节点。该方法包括以下步骤:向虚拟环上的下游邻居节点发送虚拟环数据报;所述虚拟环数据报包括:虚拟环标识符、用于标识虚拟环数据报的节点发起者的装置以及数据;接收令牌,标识出虚拟环并且将所述令牌转发到标识出的虚拟环上的下游邻居节点;如果所接收的数据报是虚拟环数据报,则:标识出虚拟环并且检查所接收虚拟环数据报的节点发起者;如果所接收的虚拟环数据报不是本地发起的,则:处理所述虚拟环数据报中包括的数据;将所述虚拟环数据报转发到标识出的虚拟环上的下游邻居节点;如果所接收的虚拟环数据报是本地发起的,则:从虚拟环中去除虚拟环数据报。

Description

在因特网协议网络中的虚拟环上通信的系统与方法
技术领域
本发明涉及数字网络上的通信,更具体地说,涉及用于在因特网协议(IP)网络中的节点之间创建虚拟环以及用于向该虚拟环的节点部分多播数据报的系统与方法。
背景技术
在本说明书中,术语“网络”指代基于因特网协议(IP)技术的普通网络。该网络可以是局域网(LAN),但也可以是企业(私用的)内联网或者甚至可以是(公共的)因特网。术语“节点”指代网络中路由通信的计算机系统(例如路由器)以及在网络上交换信息的计算机系统(例如工作站和服务器)。
在网络中,节点必须能够与同一组的其它节点交换信息。例如,向位于不同地点的多个节点广播相同信息被称作“多播”。在如图1所示的被称为多播组的一组N个节点中,每个节点(101)需要与(N-1)个其它节点通信。为此,每个节点与每个其它节点建立会话(100)。通常在IP网络中,传输控制协议(TCP)被用来在节点之间通信,因为该协议允许数据通过会话进行可靠传输并且处理流控制。这与被称为UDP(用户数据报协议)的传输协议的情形不一样,UDP是基于最优效果的并且不提供任何会话机制。
如果一组N个节点内的节点想要向该组的所有其它节点传输信息,则它需要N-1个TCP会话。如果所有节点需要以全网型(full mesh)配置在一起通信,则需要N×(N-1)/2个TCP会话。重要的是,由于TCP会话是双向的,所以所需的会话数为N×(N-1)/2而非N×(N-1)。
在包括数百或数千个节点的网络中,会话数是相当多的。这可能产生大量的开销,同时对网络中的带宽消耗和每个节点中的资源(数据处理和存储器)利用产生显著影响。在每个节点中,建立TCP会话需要数据处理资源,并且维护这些TCP会话特别需要存储器来存储TCP会话的上下文(TCP控制块)。
在没有应用级别的同步的情况下,节点可以同时在所有TCP会话上交换同一条信息(任何节点之间的通信)。这是网络级别上的带宽消耗和每个节点级别上的资源消耗。这种情况的示例是在路由器之间交换路由信息。每个路由器根据网络中使用的路由协议,周期性地或者当发生改变时向其它路由器广播路由信息。另一示例是分布式数据库中的多个服务器的同步。
存在限制节点间的会话数的若干解决方案。图2所示的解决方案是选择连接所有其它节点的“会合点”或中心节点。中心节点(200)负责向网络中的所有其它节点分发信息。这种被称为“星型网络”的配置减少了连接数(N-1个会话),但是主要缺点是中心节点是网络的最脆弱点。通常,利用备份中心节点(201)来复制中心节点。这种被称为“双星型网络”的配置需要(N-1)+(N-2)个连接。
注意:中心节点(200)连接到包括备份中心节点(201)在内的所有其它节点。结果是建立N-1个TCP会话。基于备份中心节点(201)添加的第二个星型配置需要另外的N-1个TCP会话。然而,由于在中心节点(201)和备份中心节点(201)之间已经存在TCP会话,所以该会话不需要被复制。总之,双星型配置中所需的会话数是(N-1)+(N-2)=2×N-3。
发明内容
本发明的一个目的是减少包括相互通信的节点的IP网络中带宽的使用。
本发明的另一目的是减少相互通信的节点的资源消耗。
本发明的另一目的是定义IP网络中的若干组相互通信的节点。
本发明涉及如独立权利要求中所定义的方法、系统和计算机程序,以在包括提供端到端数据传输的传输层协议的网络内的节点中使用,所述方法、系统和计算机程序用于在虚拟环上多播数据报,虚拟环上的每个节点根据网络传输层协议通过虚拟连接逻辑地连接到两个并且仅仅两个邻居节点,所述两个邻居节点是上游邻居节点和下游邻居节点。
该方法包括以下步骤:
·向虚拟环上的下游邻居节点发送虚拟环数据报;所述虚拟环数据报包括:
·虚拟环标识符;
·用于标识虚拟环数据报的节点发起者的装置;
·数据;
当接收到数据报时;
·标识出所接收的数据报;
如果所接收的数据报是令牌,则:
·标识出虚拟环;
·检查令牌是否有效;
·如果令牌是有效的,则将令牌转发到标识出的虚拟环上的下游邻居节点。
如果所接收的数据报是虚拟环数据报,则:
·标识出虚拟环;
·检查所接收的虚拟环数据报的节点发起者;
如果所接收的虚拟环数据报不是本地发起的,则:
·处理所述虚拟环数据报中包含的数据;
·将所述虚拟环数据报转发到标识出的虚拟环上的下游邻居节点;
如果所接收的虚拟环数据报是本地发起的,则:
·从虚拟环去除虚拟环数据报。
在所附从属权利要求中提供了本发明的其它实施例。
参考下面的说明书、权利要求和附图可以更好地理解本发明的前述以及其它目的、特征和优点。
附图说明
所附权利要求中阐述了本发明被认为是新颖且具有创造性的特征的特性。然而,通过参考下文对示例性详细实施例的详细描述并结合附图进行阅读,将最好地理解本发明自身及其优选使用模式、其它目的及其优点。
图1示出了“全网型网络”的示例。
图2示出了“星型网络”的示例。
图3示出了根据本发明的“虚拟环网络”的示例。
图4示出了令牌是如何根据本发明在虚拟环上从节点转发到节点的。
图5示出了根据本发明的令牌消息。
图6示出了新节点是如何根据本发明被插入到虚拟环中的。
图7示出了根据本发明的新节点插入的结果。
图8示出了根据本发明的节点经请求的去除。
图9示出了根据本发明的节点的丢失。
图10示出了根据本发明在丢失节点之后重新配置的结果。
图11描述了根据本发明当节点接收令牌时由该节点执行的算法。
图12描述了根据本发明在接收令牌时在虚拟环管理器中执行的算法。
图13描述了根据本发明在将节点插入到虚拟环中时在该节点中执行的算法。
图14描述了根据本发明在从虚拟环去除节点时在该节点中执行的算法。
图15图示出根据本发明在已经插入或去除邻居节点时在节点中执行的算法。
图16图示出根据本发明在虚拟环中插入或从虚拟环中去除节点时在虚拟环管理器中执行的算法。
图17图示出根据本发明的节点插入过程。
图18图示出根据本发明的经请求节点去除过程。
图19图示出根据本发明的未经请求节点去除过程。
具体实施方式
本发明公开了一种基于虚拟环的网络拓扑。网络中需要彼此通信的N个节点根据虚拟环而被逻辑/虚拟连接,每个节点与两个且仅仅两个邻居节点通信:上游邻居节点和下游邻居节点。
尽管本发明适用于任何类型的节点,但是本发明特别注重于何时若干节点需要在它们之间交换同一条信息。
在同一物理网络上可以实现若干虚拟环,每个虚拟环允许节点的一个子集彼此通信。同一节点可以同时参与若干虚拟环。每个虚拟环由唯一的标识符(被称为虚拟环Id)标识。虚拟环标识符被静态配置在参与虚拟环的所有节点中。下文将描述发起以及管理虚拟环的方法。
TCP/IP协议
在优选实施例中,本发明是在TCP/IP协议的TCP层的顶端实现的,TCP/IP协议是当今世界上最广泛使用的协议。然而,本发明仅仅使用TCP的传输功能。还可以在提供传输功能的任何其它协议栈(例如IPX(互联网分组交换))的顶端实现本发明。在本说明书中选择了IP,因为该协议被使用在大多数网络中。TCP的传输功能带来了某种可靠性,因为该功能处理诸如分组丢失之类的传输问题。沿着虚拟环的信息循环是基于因特网协议(IP)和传输控制协议(TCP)的。选择TCP是因为它允许在没有丢失风险的情况下发送分组。TCP还通过维护连接来告知远程节点的丢失。TCP和IP的使用允许将虚拟环扩展到IP网络(包括因特网自身)的任何部分。可以想象,在世界不同部分的节点利用这种虚拟环彼此通信。
用户数据报协议(UDP)也可以用在本发明中,例如在特定节点和虚拟环管理器之间交换环插入和环去除信息。由于这些消息仅仅是在插入或去除过程期间被交换,所以不需要使用TCP协议和建立TCP会话。
本发明在环网络的每个节点部分中需要一条新的特定代码。该代码使用为本发明预留的特定TCP端口和特定UDP端口。该代码被用来建立、维护和拆除虚拟环拓扑。
令牌
为了维护环拓扑,需要在不同节点之间周期性交换一些条信息。这些条信息中的一条被称作“令牌”,参考过去数十年间由IBM(IBM是国际商业机器公司的商标)开发的“令牌环”体系结构。图4描述了在虚拟环(400)上的节点A和节点B之间循环的令牌(401)。
令牌被用作使环拓扑有效的周期性保持激活消息。令牌由虚拟环管理器(402)周期性生成,并且被每个节点转发到其下游邻居节点。虚拟环管理器(从其上游邻居节点)接收到令牌指示出,环拓扑有效且环路没有断裂。如果由于某种原因(丢失一个节点、丢失两个邻居节点之间的连接性)环断裂,则令牌的丢失将指示环上存在问题。每个节点监视令牌的接收。如果在某个时间量之后没有接收到令牌,则每个节点将触发下文详细描述的环恢复过程。令牌从一个节点转发到另一个节点,就像任何别条信息一样。这意味着令牌使用在节点间建立的TCP会话。
使用序列号字段来标识令牌的当前拷贝。
令牌结构
  IP头部   IP头部   虚拟环令牌消息代码0x0001虚拟环标识符(2字节)序列号(4字节)
令牌在图5中被描述
IP头部(500):虚拟环中发送节点的源IP地址和下一节点的目的地IP地址
TCP头部(501):源与目的地端口=为本发明预留的公知端口
虚拟环令牌(502):该消息包含3个字段:
1.消息代码(503),被设置为0x0001,允许标识出消息的类型是令牌。
2.2字节的虚拟环标识符(504):标识虚拟环。这允许同一节点参与多个虚拟环。
3.4字节的序列号(505):其由虚拟环管理器设置和递增。这允许虚拟环管理器检测令牌的可能复制。
数据沿虚拟环的传播
当参与虚拟环的节点从其上游邻居节点接收数据报时,它处理该数据报,即,存储所接收的消息的数据部分,并且将它转发到其下游邻居节点,从而数据报可以沿着虚拟环循环。然而,连接到虚拟环的节点必须能够区别沿虚拟环循环的数据报和从另一节点接收的没有参与虚拟环的常规IP数据报。为此,在虚拟环上交换的数据报具有以下封装:
  IP头部(20字节)   TCP头部源/目的地端口(20字节)  虚拟环头部消息代码0x0000虚拟环标识符(2字节)发送者IP地址(4字节)   数据
在TCP数据报内封装数据具有以下优点:
数据报是使用可靠的TCP协议沿着虚拟环传输的。
虚拟环头部包括以下字段:
1.消息代码:指示所接收的消息是数据报
2.虚拟环标识符:指示消息必须在哪个虚拟环上被转发。节点可以属于多个虚拟环。
3.发送者IP地址:这是生成了所述数据的节点的IP地址。
虚拟环上的数据报传输
1/当节点需要在虚拟环上发送数据报时,该节点添加上述的虚拟环头部,并且在TCP数据报内部封装数据。该数据报被发送到虚拟环上的下游邻居。
2/虚拟环上的每个节点检查发送者地址以知道哪个节点生成了该数据报。每个节点随后读取数据,处理它,并且将数据报转发到其下游邻居。
3/当数据报由发送者节点接收回来时(发送者节点检查虚拟环头部中的发送者IP地址),发送者节点随后从虚拟环中去除数据报。这只是意味着数据报被删除并且没有被再次转发到下游邻居节点。
虚拟环拓扑
虚拟环是经连接形成环的节点的列表。没有任何一个节点能够看到整个环。该参与环的节点的列表没有被存储在网络中的任何地方。每个节点包括以下信息(节点环记录):
  虚拟环标识符(2字节)(经配置)
  上游邻居IP地址(4字节)
  下游邻居IP地址(4字节)
  虚拟环管理器IP地址(经配置)(4字节)
  备份虚拟环管理器IP地址(经配置)(4字节)
虚拟环管理器
参与虚拟环的节点之一扮演“虚拟环管理器”的角色。虚拟环管理器负责维护虚拟环的拓扑,更具体地说,虚拟环管理器负责插入和去除节点。
重要的是要注意,虚拟环管理器IP地址被静态配置在虚拟环的每个节点中。由于虚拟环管理器构成单个故障点,所以通常使用备份虚拟环管理器。备份虚拟环管理器的IP地址也被静态配置在每个节点中。当节点想要插入到虚拟环中并且没有接收到来自虚拟环管理器的任何响应时,该节点将联系备份虚拟环管理器。
在虚拟环中插入节点
图6描述了将新节点G(601)插入到包括节点A、B、C、D、E和F的虚拟环(600)中。当新节点G(601)想要加入虚拟环(600)的时候,发生下述情况:
注意:在优选实施例中,所有插入消息使用UDP协议和在本发明中定义的预留UDP端口。
·要在虚拟环中插入的节点(601)(节点G)使用经配置的虚拟环管理器的IP地址向虚拟环管理器(602)发送“虚拟环插入请求”消息(603)。要插入的节点(601)启动“插入请求”计时器并且等待“虚拟环插入确认”消息(604)。
·虚拟环管理器(602)接收“虚拟环插入请求”消息并且记录消息的源IP地址,该源IP地址是节点G(601)的IP地址。
·虚拟环管理器(602)向其下游邻居节点F(606)发送“虚拟环改变邻居”消息(605)。虚拟环管理器在其节点环记录中找到节点F的IP地址。“虚拟环改变邻居”消息包括作为上游邻居IP地址的节点G(601)的IP地址。消息中的下游邻居IP地址被设置为0.0.0.0,因为该地址不需要改变。
·节点F(606)接收“虚拟环改变邻居”消息(605)。节点F通过发出“TCP重置”消息,拆除与其上游邻居节点(虚拟环管理器)的TCP会话。节点F(606)在其节点环记录中存储在“虚拟环改变邻居”消息(605)中接收到的节点G(601)的IP地址(上游邻居IP地址)。
·节点F(606)建立与其新的上游邻居节点(节点G(601))的TCP会话,并且向虚拟环管理器(602)发送“虚拟环邻居已改变”消息(607)以指示节点F已经改变其上游邻居节点。
·虚拟环管理器(602)接收来自节点F(606)的“TCP重置”消息并且拆除TCP会话。虚拟环管理器建立与节点G(601)的新TCP会话并且在其节点环记录中存储节点G(601)的IP地址:下游邻居IP地址。
·虚拟环管理器(602)向节点G(601)发送“虚拟环插入确认”消息(604)。该消息包括节点F(606)的IP地址。
·节点G(601)利用下述内容更新其节点环记录:
·等同于虚拟环管理器IP地址的上游邻居IP地址,以及
·等同于节点F的IP地址的下游邻居IP地址。
节点G(601)停止“插入请求”计时器。
·如果“插入请求”计时器期满,则这意味着节点G(601)没有从虚拟环管理器(602)接收到“虚拟环插入确认”消息(604)。在这种情况下,节点G(601)联系备份虚拟环管理器(608)。该过程在下文关于备份虚拟环管理器的章节中被描述。
图7中描述了插入节点G的结果。节点G(701)现在被插入在虚拟环(700)上,在虚拟环管理器(702)和节点F(703)之间。
从虚拟环经请求去除节点
本章节中描述的经请求节点去除情况对应于下述情形,其中节点想要从虚拟环中被去除,因为它不想再参与该组。
另一节点去除情况对应于下述情形,其中节点发生故障并且虚拟环断裂。该未经请求的去除情况将在另一章节中描述。
图8描述了节点经请求去除过程。当节点C(801)想要从虚拟环中被去除时,发生下述情况:
·节点C(801)向虚拟环管理器(802)发送“虚拟环去除请求”消息(803)。该消息包括
·节点C(801)的IP地址,
·其上游邻居节点(节点B(804))的IP地址,以及
·其下游邻居节点(节点D(805))的IP地址。
节点C(801)启动“环去除”计时器并且等待“虚拟环去除确认”消息(806)
·虚拟环管理器(802)接收来自节点C(801)的“虚拟环去除请求”消息(803)并且启动去除过程。它记录节点C的上游邻居节点和下游邻居节点的IP地址。
·虚拟环管理器(802)向节点B(804)(要去除的节点(节点C(801))的上游邻居节点)发送“虚拟环改变邻居”消息(807)。该消息包括:
·未改变的上游节点IP地址0.0.0.0;
·等同于节点D(805)的IP地址的下游节点IP地址,节点D(805)是节点C(801)的下游邻居节点
·虚拟环管理器(802)向节点D(805)(要去除的节点(节点C(801))的下游邻居节点)发送“虚拟环改变邻居”消息(808)。该消息包括:
·等同于节点B(804)的IP地址的上游节点IP地址,节点B(804)是节点C(801)的上游邻居节点;
·未改变的下游节点IP地址0.0.0.0。
虚拟环管理器(802)启动例如30秒等待确认的“改变邻居”计时器。
·节点B(804)从虚拟环管理器(802)接收“虚拟环改变邻居”消息(807)并且修改其节点环记录。
消息中的上游节点IP地址是0.0.0.0。这意味着该地址不需要改变。节点B(804)保持节点A(809)作为其上游邻居节点。
另一方面,节点B(804)修改其下游邻居IP地址并且使用在消息中接收到的地址。节点B(804)拆除与作为其先前下游邻居节点的节点C(801)的TCP连接,并且建立与其新下游邻居节点(节点D(805))的新TCP连接。
节点B(804)向虚拟环管理器(802)发送“虚拟环邻居已改变”消息(810)。
·节点D(805)与节点B(804)做法相同。它更新其节点环记录,拆除与其上游邻居(节点C(801))的TCP会话,并且建立与其新上游邻居(节点B(804))的TCP会话。节点D(805)向虚拟环管理器(802)发送“虚拟环邻居已改变”消息(811)
·当虚拟环管理器从节点B和C两者接收“虚拟环邻居已改变”消息时,它停止“改变邻居”计时器并且向节点C(801)发送“虚拟环去除确认”消息(806)以指示去除过程已成功。
·节点C(801)停止“环去除”定时器。如果“环去除”定时器期满,则它意味着虚拟环管理器(802)没有完成去除过程。在该情形中,节点C(801)必须联系备份虚拟环管理器(804)。
节点的丢失
虚拟环网络中节点的丢失是由其邻居节点利用TCP连接的丢失而检测到的。当在没有利用“虚拟环去除请求”消息告知虚拟环管理器的情况下从虚拟环中去除节点的时候(这应当是发生节点故障的情形),两个邻居节点(上游和下游)失去与该节点的TCP连接一给定的时间段(在TCP超时之后)。如图9中所描述的那样,发生以下情况:
·虚拟环网络(900)中的节点C(901)发生故障或断电。
·节点B(903)(节点C(901)的上游邻居节点)失去其与节点C的TCP连接。节点B尝试重新建立其TCP连接而没有成功。
·节点D(904)(节点C(901)的下游邻居节点)失去其与节点C的TCP连接。节点D尝试重新建立其TCP连接而没有成功。
·节点B(903)向虚拟环管理器(902)发送“虚拟环邻居丢失指示”消息(907)。该消息包括:
·节点B的IP地址,和
·节点B的下游邻居IP地址,即节点C(901)的地址。
上游邻居IP地址被设置为0.0.0.0,因为节点B的上游邻居节点没有发现问题。
·节点D(904)向虚拟环管理器(902)发送“虚拟环邻居丢失指示”消息(905)。该消息包括:
·节点D的IP地址,和
·节点D的上游邻居IP地址,即节点C(901)的地址。
下游邻居IP地址被设置为0.0.0.0,因为节点D的下游邻居节点没有发现问题。
·虚拟环管理器(902)接收来自节点C上游邻居节点和节点C下游邻居节点两者的消息。虚拟环需要被重新配置。
·虚拟环管理器(903)向节点D(904)发送“虚拟环改变邻居”消息(906)。该消息包括:
·等同于节点B的IP地址的上游邻居IP地址
·等同于0.0.0.0(IP地址不需改变)的未改变的下游邻居IP地址
·节点D(904)更新其节点环记录中的上游邻居IP地址,并且建立与其新上游邻居节点(节点B(903))的TCP连接。
·节点D(904)将“虚拟环节点已改变”消息(909)发送回虚拟环管理器(902)以确认改变。
·虚拟环管理器(903)向节点B(903)发送“虚拟环改变邻居”消息(908),包括:
·等同于0.0.0.0(IP地址不需改变)的未改变的上游邻居IP地址
·等同于节点D的IP地址的下游邻居IP地址
·节点B(903)更新其节点环记录中的下游邻居IP地址。
·节点B(903)将“虚拟环节点已改变”消息(910)发送回虚拟环管理器(902)以确认改变。
图10示出了在丢失节点C(1001)后虚拟环(1000)重新配置的结果。
备份虚拟环管理器
备份虚拟环管理器执行与虚拟环管理器相同的过程。备份虚拟环管理器在没有来自虚拟环管理器的响应的条件下接收来自节点的插入、去除和恢复消息,并且象虚拟环管理器那样处理这些消息。
令牌丢失恢复
包括虚拟环管理器在内的所有节点使用计时器来检测令牌的丢失。当令牌丢失的时候,环需要被重建。该计时器的值必须大于TCP会话计时器,以允许在名为“节点的丢失”章节中描述的过程在重新配置环之前发生。当节点检测到令牌的丢失时,它向虚拟环管理器发送“虚拟环去除请求”消息,并且等待如图8所述的确认(参考名为“经请求节点去除”章节)。在给定的时间段之后,节点将向虚拟环管理器发送“虚拟环插入请求”消息以再次参与环,如图6所述(名为“节点的插入”章节)。
插入与去除消息
这些消息是使用用户数据报协议(UDP)来交换的。虚拟环标识符字段的值被用来标识当前虚拟环。虚拟环标识符被静态配置在每个参与节点中。
一般格式
  IP头部   TCP头部源/目的地端口   虚拟环消息消息代码0x..虚拟环标识符(2字节)...
虚拟环插入请求
  消息代码0x0002  虚拟环标识符(2字节)  插入节点IP地址(4字节)
虚拟环插入确认
  消息代码0x0003   虚拟环标识符(2字节)   上游邻居IP地址(4字节)   下游邻居IP地址(4字节)
虚拟环改变邻居
  消息代码0x0004   虚拟环标识符(2字节)   上游邻居IP地址(4字节)   下游邻居IP地址(4字节)
虚拟环邻居已改变
  消息代码0x0005   虚拟环标识符(2字节)   上游邻居IP地址(4字节)   下游邻居IP地址(4字节)
虚拟环去除请求
  消息代码0x0006   虚拟环标识符(2字节)  去除节点IP地址(4字节)   上游邻居IP地址(4字节)  下游邻居IP地址(4字节)
虚拟环去除确认
  消息代码0x0007  虚拟环标识符(2字节)
虚拟环邻居丢失指示
  消息代码0x0008   虚拟环标识符(2字节)  上游邻居IP地址(4字节)  下游邻居IP地址(4字节)   节点IP地址(4字节)
根据本发明的过程
节点中的令牌处理
图11描述了当节点接收到令牌时由该节点执行的算法。
·(1100)节点刚刚被插入到虚拟环中。
·(1101)节点启动等待令牌计时器(30秒)并且等待令牌的接收
·(1102)节点检查是否已经接收到令牌。
·(1103)如果没有接收到令牌,则节点检查令牌计时器是否已经期满。如果令牌计时器没有期满,则节点继续等待令牌。
·(1104)如果已经接收到令牌,则节点检查令牌序列号以验证其自从上次接收起已被递增。如果第一次接收到令牌(恰在节点插入之后),则不执行该测试。
·(1105)如果所接收的令牌中的令牌序列号是正确的,则节点将令牌转发到其下游邻居节点并且再次等待令牌。
·(1106)如果没有接收到令牌并且如果令牌计时器已经期满,或者如果所接收的令牌没有预期的令牌序列号(这意味着令牌已丢失),则执行令牌恢复程序。
虚拟环管理器中的令牌处理
图12描述了在接收到令牌时在虚拟环管理器中执行的算法。
·(1200)虚拟环管理器刚刚被插入。它将令牌序列号设置为1,启动30秒的等待令牌计时器和1秒的令牌计时器。令牌计时器被用来每秒生成一新的令牌。等待令牌计时器被用来触发环恢复。
·(1201)虚拟环管理器将令牌转发到其下游邻居节点并且等待令牌的返回。
·(1202)虚拟环管理器检查是否已经接收到令牌。
·(1203)如果没有接收到令牌,则虚拟环管理器检查令牌计时器是否已经期满。
·(1204)如果令牌计时器没有期满,则虚拟环管理器检查等待令牌计时器是否已经期满。如果没有期满,则虚拟环管理器再次等待令牌。
·(1205)如果没有接收到令牌并且如果等待令牌计时器已期满,则这意味着令牌已经丢失。随后虚拟环管理器执行环恢复程序。
·(1206)如果接收到令牌,则虚拟环管理器检查令牌中的序列号。
·(1207)虚拟环管理器重新启动等待令牌计时器,因为令牌已被接收,并且等待令牌计时器期满。
·(1208)当令牌计时器期满时,虚拟环管理器生成新的令牌,并且递增序列号。
·(1209)虚拟环管理器将令牌转发到其下游邻居节点并且等待令牌的返回。
节点插入-节点中的算法
图13描述了将节点插入到虚拟环中时在该节点中执行的算法。
·(1300)新节点想要插入到虚拟环中。该节点将“虚拟环插入请求”消息发送到虚拟环管理器。
·(1301)节点启动插入计时器并且等待来自虚拟环管理器的“虚拟环插入确认”消息。
·(1302)节点检查是否已经接收到“虚拟环插入确认”消息。
·(1303)如果没有接收到“虚拟环插入确认”消息,则节点检查插入计时器是否已经期满。如果没有期满,则节点继续等待接收“虚拟环插入确认”消息。
·(1304)如果已经接收到“虚拟环插入确认”消息,则节点停止插入计时器,更新其邻居地址并建立与其邻居节点的TCP会话。
·(1305)新节点现在被插入到虚拟环中。
·(1306)如果没有接收到“虚拟环插入确认”消息并且如果插入计时器已期满,则节点将“虚拟环插入请求”消息发送到备份管理器。
·(1307)节点再次启动插入计时器。
·(1308)节点检查是否已经接收到“虚拟环插入确认”消息。
·(1309)如果没有接收到“虚拟环插入确认”消息,则节点检查插入计时器是否已经期满。如果没有期满,则节点继续等待接收“插入确认”消息。
·(1310)如果已经接收到“虚拟环插入确认”消息,则节点停止插入计时器,更新其邻居地址并建立与其邻居节点的TCP会话。
·(1311)新节点现在被插入到虚拟环中。
·(1312)如果没有从备份管理器接收到“虚拟环插入确认”消息,则这意味着虚拟环管理器和备份管理器二者都不可用。在该情形中,用于将节点插入到环中的过程失败。
节点去除-节点中的算法
图14描述了在从虚拟环中去除节点时在该节点中执行的算法。
·(1401)节点想要从虚拟环中被去除。该节点将“虚拟环去除请求”消息发送到虚拟环管理器。
·(1402)要去除的节点启动环去除计时器。
·(1403)要去除的节点等待来自环管理器的“虚拟环去除确认”消息。
·(1404)当接收到“虚拟环去除确认”消息时,节点终止它的停机。
·(1405)如果没有接收到“虚拟环去除确认”消息,则要去除的节点检查环去除计时器。
·(1406)如果环去除计时器已经期满,则要去除的节点将“虚拟环去除请求”消息发送到备份环管理器。
·(1407)要去除的节点启动环去除计时器。
·(1408)要去除的节点等待来自环管理器的“虚拟环去除确认”消息。
·(1409)如果没有接收到“虚拟环去除确认”消息,则要去除的节点检查环去除计时器。如果该计时器期满,则要去除的节点终止它的停机而不等待来自环管理器的任何响应。
节点插入/去除-邻近节点中的算法
图15图示出当邻居节点已被插入或去除时在节点中执行的算法。
·(1501)邻近节点检查是否已从虚拟环管理器接收到“虚拟环改变邻居”消息。
·(1502)如果已经接收到“虚拟环改变邻居”消息,则邻近节点使用在消息中接收到的上游和下游地址来更新其邻居表。
·(1503)邻近节点将“虚拟环邻居已改变”消息发送回虚拟环管理器。
节点插入/去除-虚拟环管理器中的算法
图16图示出当节点被插入或从虚拟环中去除时在虚拟环管理器中执行的算法。
·(1601)虚拟环管理器检查是否已经接收到“虚拟环插入请求”消息。
·(1602)如果已经接收到“虚拟环插入请求”消息,则虚拟环管理器将“虚拟环改变邻居”消息发送到其自身的下游邻居,并且启动改变邻居计时器。
·(1603)虚拟环管理器等待“虚拟环邻居已改变”消息。如果没有接收到“虚拟环邻居已改变”消息并且改变计时器期满,则程序失败。
·(1604)虚拟环管理器用新节点的地址更新其下游地址。
·(1605)虚拟环管理器将“虚拟环插入确认”消息发送到要插入的节点。
·(1606)虚拟环管理器检查是否已接收到“虚拟环去除请求”消息。
·(1607)虚拟环管理器将“虚拟环改变邻居”消息发送到要去除的节点的下游邻居。
·(1608)虚拟环管理器将“虚拟环改变邻居”消息发送到要去除的节点的上游邻居。
·(1609)虚拟环管理器启动改变邻居计时器。
·(1610)当已从上游和下游邻居节点接收到“虚拟环邻居已改变”消息时,虚拟环管理器将“虚拟环去除确认”消息发送到要去除的节点。
·(1611)虚拟环管理器检查是否已经接收到“虚拟环邻居丢失指示”消息。
节点插入的流程
图17图示出节点插入过程。
·(1701)节点G是要插入的节点。其环表包含虚拟环和备份环管理器的地址。
·(1702)节点E是虚拟环管理器。
·(1703)节点F是虚拟环管理器的下游邻居节点。
·(1704)插入节点G将“虚拟环插入请求”消息发送到虚拟环管理器。
·(1705)虚拟环管理器将“虚拟环改变邻居”消息发送到其下游邻居节点(节点F)以便将新节点G恰好插入在节点F之前。
·(1706)节点F更新其虚拟环表。
·(1707)节点F利用“虚拟环邻居已改变”消息答复虚拟环管理器。
·(1708)虚拟环管理器更新其环表以将新节点G恰好插入在其后。
·(1709)虚拟环管理器将“虚拟环插入确认”消息发送到新插入的节点G。
·(1710)节点G用两个邻近节点的地址来更新其虚拟环表。
经请求节点去除的流程
图18图示出经请求节点去除过程。
·(1801)节点B是节点C(要去除的节点)的上游邻居节点。
·(1802)节点C是要去除的节点。
·(1803)节点D是节点C的下游邻居节点。
·(1804)节点E是虚拟环管理器。
·(1805)去除节点C将“虚拟环去除请求”消息发送到虚拟环管理器。
·(1806)虚拟环管理器将“虚拟环改变邻居”消息发送到节点D(下游邻居节点)。
·(1807)虚拟环管理器将“虚拟环改变邻居”发送到节点B(上游邻居节点)并且启动改变邻居计时器。
·(1808)节点B更新其环表。
·(1809)节点B将“虚拟环邻居已改变”消息发送到虚拟环管理器。
·(1810)节点D更新其环表。
·(1811)节点D将“虚拟环邻居已改变”消息发送到虚拟环管理器。
·(1812)虚拟环管理器停止改变邻居计时器并且将“虚拟环去除确认”消息发送到要去除的节点C。
未经请求节点去除(节点丢失)的流程
图19图示出未经请求节点去除过程。
·(1901)节点B是节点C(要去除的节点)的上游邻居节点。
·(1902)节点C是要去除的节点。
·(1903)节点D是节点C的下游邻居节点。
·(1904)节点E是虚拟环管理器。
·(1905)上游邻居节点B检测到与节点C的TCP连接的丢失,并且将“虚拟环丢失指示”消息发送到虚拟环管理器。
·(1906)下游邻居节点D检测到与节点C的TCP连接的丢失,并且将“虚拟环丢失指示”消息发送到虚拟环管理器。
·(1907)虚拟环管理器将“虚拟环改变邻居”消息发送到节点D(下游邻居节点)。
·(1908)虚拟环管理器将“虚拟环改变邻居”消息发送到节点B(上游邻居节点),并且启动改变邻居计时器。
·(1909)节点B更新其环表。
·(1910)节点B将“虚拟环邻居已改变”消息发送到虚拟环管理器。
·(1911)节点D更新其环表。
·(1912)节点D将“虚拟环邻居已改变”消息发送到虚拟环管理器。
本发明的优点
1)减少网络中TCP会话的数目
与全网型网络中的N×(N-1)/2个会话或双星型配置中的2×N-3个会话相比,本发明只需要N个TCP会话来互连N个节点。会话是两个节点之间的虚拟连接,其能够在这些节点之间交换数据并且处理诸如流控制和重传之类的传输问题。TCP会话是支持TCP/IP协议的两个节点之间会话的示例。本发明被实现在TCP/IP协议栈的TCP(传输控制协议)层的顶端,并且可以由支持TCP/IP协议的任何节点使用,TCP/IP协议是世界上最广泛使用的协议。如图1所示,在N个节点的全网型网络中,每个节点必须与N-1个其它节点的每个建立TCP会话。这意味着建立N×(N-1)/2个TCP会话。根据本发明,每个节点必须与仅仅两个其它节点建立TCP会话:上游邻居节点和下游邻居节点。这意味着N个节点的虚拟环中的总共N个会话。可以如下计算源自本发明的节省:
全网型网络中的N×(N-1)/2个会话与虚拟环配置中的N个会话相比。其差等于N×(N-1)/2-N=N2/2-N/2-N=N2/2-3N/2=N×(N-3)/2。因此,本发明允许节省网络中的N×(N-3)/2个会话。
减少节点之间会话的数目带来了若干其它优点,如将在下文解释的那样。
2)减少网络中的带宽使用
因为每个节点接收同一消息的一个且仅仅一个拷贝,所以本发明避免了多个不必要的拷贝。在如图1所述的全网型拓扑中,每个节点与所有其它节点通信。如果每个节点需要将同一条信息发送到其它节点,则每个节点将把这条信息转发到它的所有邻居节点,这将加倍网络中交换的消息的数目。这典型地是这样的情形:节点是使用诸如RIP(路由信息协议)的路由协议来交换路由信息的路由器。周期性地,每个路由器向网络中的其它路由器传输或洪泛(flood)它的路由表。另一示例是分布式数据库需要被同步并且参与分布式数据库的服务器需要交换相同记录。通常,信息的广播是由应用层管理的,其必须顾及在节点之间分发信息的方式。
本发明能够在所有节点之间交换同一条信息,从而每个节点接收该信息的一个且仅仅一个拷贝。因为节点虚拟地连接到虚拟环,并且因为信息沿着环循环并被连接到环的每个节点所知晓,所以网络不需要被在节点之间交换的消息的多条拷贝所洪泛。
3)减少每个节点中的CPU使用
建立和维护TCP会话需要计算机资源来管理流控制、重传、以及生成确认和保活信号。本发明减少了节点通信所需的TCP会话的数目,并从而减少了节点中数据处理资源的使用。
4)减少每个节点内部的存储器消耗
在每个节点中,TCP会话的维护需要保持这些会话的上下文,以及诸如所发送的最后分段的序列号或者要发送的下一确认的序列号之类的信息。该信息的存储消耗存储器。减少TCP会话的数目必然减少节点中的存储器消耗。
尽管已经参考优选实施例具体示出并描述了本发明,但是应当理解,在不背离本发明精神和范围的情况下,可以在形式和细节方面作出各种改变。

Claims (46)

1.一种在包括提供端到端数据传输的传输层协议的网络内的节点中使用的方法,用于在虚拟环上多播数据报,虚拟环上的每个节点根据网络传输层协议通过虚拟连接被逻辑地连接到两个并且仅仅两个邻居节点,所述两个邻居节点是上游邻居节点和下游邻居节点,所述方法包括以下步骤:
·向虚拟环上的下游邻居节点发送虚拟环数据报;所述虚拟环数据报包括:
·虚拟环标识符;
·用于标识虚拟环数据报的节点发起者的装置;
·数据;
当接收到数据报时,
·标识出所接收的数据报;
如果所接收的数据报是令牌,则:
·标识出虚拟环;
·检查所述令牌是否有效;
·如果所述令牌是有效的,则将令牌转发到标识出的虚拟环上的下游邻居节点;
如果所接收的数据报是虚拟环数据报,则:
·标识出虚拟环;
·检查所接收的虚拟环数据报的节点发起者;
如果所接收的虚拟环数据报不是本地发起的,则:
·处理所述虚拟环数据报中包括的数据;
·将所述虚拟环数据报转发到标识出的虚拟环上的下游邻居节点;
如果所接收的虚拟环数据报是本地发起的,则:
·从虚拟环中去除所述虚拟环数据报。
2.如权利要求1所述的方法,其中
·当接收到令牌时标识出虚拟环的步骤包括以下进一步的步骤:
·检查出已经由所标识出的虚拟环上的上游邻居节点发送了所述令牌;
·当接收到虚拟数据报时标识出虚拟环的步骤包括以下进一步的步骤:
·检查出已经由所标识出的虚拟环上的上游邻居节点发送了所述虚拟环数据报。
3.如权利要求1所述的方法,其中:
·虚拟环上的节点被定义为虚拟环管理器节点;
·所述令牌包括序列号,序列号在每次令牌被虚拟环管理器节点接收时递增;
·检查所述令牌是否有效的步骤包括以下进一步的步骤:
·检查令牌序列号自从上次接收起是否已经递增。
4.如权利要求1所述的方法,其中检查所述令牌是否有效的步骤包括以下进一步的步骤:
·如果令牌不是有效的,则执行恢复程序。
5.如权利要求1所述的方法,其中:
·将所述令牌转发到标识出的虚拟环上的下游邻居节点的步骤包括以下进一步的步骤:
·启动计时器并且等待令牌的返回;
·当计时器期满时执行恢复程序;
·当接收到令牌时:
·停止计时器。
6.如权利要求1所述的方法,其中节点是:
·在网络中路由数据报的计算机系统,或者
·在网络上交换数据报的计算机系统。
7.如权利要求6所述的方法,其中在网络中路由数据报的计算机系统是路由器。
8.如权利要求6所述的方法,其中在网络中交换数据报的计算机系统是客户端或服务器。
9.如权利要求5所述的方法,其进一步包括在虚拟环管理器节点中执行以下预备步骤:
·生成令牌;
·将令牌序列号设置为初始值;
·将所述令牌转发到虚拟环上的下游邻居节点;
将所述令牌转发到标识出的虚拟环上的下游邻居节点的步骤包括以下进一步的步骤:
·递增所述令牌序列号;
当计时器期满时执行恢复程序的步骤包括以下进一步的步骤:
·生成新令牌;
·将所述新令牌转发到虚拟环上的下游邻居节点。
10.如权利要求1所述的方法,其中所述令牌是数据报,包括:
·第一头部,包括:
·发送节点的源地址;和
·虚拟环上的下一节点的目的地地址;
·第二头部,包括:
·源端口;和
·目的地端口;
·用于将数据报标识为令牌的装置;
·用于标识出虚拟环的装置;
·序列号,所述序列号在每次所述令牌被虚拟环管理器节点接收到时被递增。
11.如权利要求1所述的方法,其中在虚拟环上循环的每个虚拟环数据报包括:
·第一头部,包括:
·虚拟环上的发送节点的源地址;和
·虚拟环上的下一节点的目的地地址;
·第二头部,包括:
·源端口;和
·目的地端口;
·虚拟环头部,包括:
·用于标识出虚拟环上的虚拟环数据报的装置;
·用于标识出虚拟环的装置;
·用于标识出虚拟环数据报的节点发起者的装置;
·数据。
12.如权利要求1所述的方法,其中包括以下进一步的步骤:
·维护和更新以下信息:
·用于标识出虚拟环的装置;
·上游邻居节点的地址;
·下游邻居节点的地址;
·虚拟环管理器节点的地址。
13.如权利要求12所述的方法,其中包括以下进一步的步骤:备份虚拟环管理器节点的地址。
14.如权利要求1所述的方法,包括加入虚拟环的预备步骤,所述步骤包括以下步骤:
·向虚拟环上预先定义的虚拟环节点管理器节点发送插入请求消息,所述插入请求消息包括:
·节点的地址;
·用于标识出虚拟环的装置;
·从虚拟环管理器节点接收插入确认消息,所述插入确认消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址。
15.如权利要求14所述的方法,
其中发送插入请求消息的步骤包括以下进一步的步骤:
·启动插入计时器;
其中接收插入确认消息的步骤包括以下进一步的步骤:
·停止插入计时器;
并且其中,如果所述插入计时器期满,则所述方法包括以下进一步的步骤:
·向虚拟环上预先定义的备份虚拟环管理器节点发送插入请求消息,所述插入请求消息包括:
·节点的地址;
·用于标识出虚拟环的装置;
·重新启动所述插入计时器;
·从备份虚拟环管理器节点接收插入确认消息,所述插入确认消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·停止插入计时器。
16.如权利要求1所述的方法,还包括离开虚拟环的进一步的步骤,所述步骤包括以下步骤:
·向虚拟环上预先定义的虚拟环管理器节点发送去除请求消息,所述去除请求消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·该节点的地址;
·从虚拟环管理器节点接收去除确认消息。
17.如权利要求16所述的方法,
其中发送去除请求消息的步骤包括以下进一步的步骤:
·启动去除计时器;
其中接收去除确认消息的步骤包括以下进一步的步骤:
·停止去除计时器;
并且其中,如果所述去除计时器期满,则所述方法包括以下进一步的步骤:
·向虚拟环上预先定义的备份虚拟环管理器节点发送去除请求消息,所述去除请求消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·该节点的地址;
·重新启动所述去除计时器;
·从备份虚拟环管理器节点接收去除确认消息;
·停止去除计时器。
18.如权利要求1所述的方法,包括以下进一步的步骤:
·从虚拟环上定义的虚拟环管理器节点接收改变邻居消息,所述改变邻居消息包括:
·新的上游邻居节点的地址;或/和
·新的下游邻居节点的地址;
·维护:
·新的上游邻居节点的地址;或/和
·新的下游邻居节点的地址;
·向虚拟环管理器节点发送邻居已改变确认消息。
19.如权利要求1所述的方法,其包括以下进一步的在虚拟环管理器节点中执行的步骤:
·接收插入请求消息,所述插入请求消息包括要插入到虚拟环中的新节点的IP地址;
·向下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·被认为是所述下游邻居节点的新的上游邻居节点的新节点的地址;
·接收邻居已改变确认消息;
·用所述新节点的地址来更新所述下游邻居节点的地址;
·向所述新节点发送插入确认消息,所述插入确认消息包括:
·所述新节点的上游邻居节点的地址;
·所述新节点的下游邻居节点的地址。
20.如权利要求1所述的方法,其包括以下进一步的在虚拟环管理器节点中执行的步骤:
·从虚拟环上的节点接收去除请求消息,所述去除请求消息包括:
·要去除的节点的上游节点的地址;
·要去除的节点的下游节点的地址;
·要去除的节点的地址;
·向要去除的节点的下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·要去除的节点的上游邻居节点的地址;
·向要去除的节点的上游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·要去除的节点的下游邻居节点的地址;
·从要去除的节点的上游邻居节点和下游邻居节点接收邻居已改变确认消息;
·向要去除的节点发送去除确认消息。
21.如权利要求1所述的方法,其包括以下进一步的在虚拟环管理器节点中执行的步骤:
·接收指示与虚拟环上的上游邻居节点的连接丢失的邻居丢失指示消息;所述邻居丢失指示消息包括:
·发生故障的上游邻居节点的地址;
·发起邻居丢失指示消息且检测到与其上游邻居节点的连接丢失的节点的地址;
·向发生故障的节点的下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·新的上游邻居节点的地址;
·从发生故障的节点的下游邻居节点接收邻居已改变消息;
·接收指示与虚拟环上的下游邻居节点的连接丢失的邻居丢失指示消息;所述邻居丢失指示消息包括:
·发生故障的下游邻居节点的地址;
·发起邻居丢失指示消息且检测到与其下游邻居节点的连接丢失的节点的地址;
·向发生故障的节点的上游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·新的下游邻居节点的地址;
·从发生故障的节点的上游邻居节点接收邻居已改变消息。
22.如权利要求1所述的方法,其中:
·所述网络是传输控制协议/因特网协议网络,
·虚拟环的节点部分之间的逻辑连接是传输控制协议会话;
·节点在虚拟环上通过所述传输控制协议会话与它们的邻居节点多播数据报;
·地址是因特网协议地址。
23.如权利要求1所述的方法,其中在节点之间交换的用于插入节点或去除节点的消息是用户数据报协议消息。
24.一种在包括提供端到端数据传输的传输层协议的网络内的节点中使用的设备,用于在虚拟环上多播数据报,虚拟环上的每个节点根据网络传输层协议通过虚拟连接被逻辑地连接到两个并且仅仅两个邻居节点,所述两个邻居节点是上游邻居节点和下游邻居节点,所述设备包括:
·用于向虚拟环上的下游邻居节点发送虚拟环数据报的装置;所述虚拟环数据报包括:
·虚拟环标识符;
·用于标识虚拟环数据报的节点发起者的装置;
·数据;
当接收到数据报时,
·用于标识出所接收的数据报的装置;
如果所接收的数据报是令牌,则:
·用于标识出虚拟环的装置;
·用于检查所述令牌是否有效的装置;
·如果所述令牌是有效的,则用于将令牌转发到标识出的虚拟环上的下游邻居节点的装置;
如果所接收的数据报是虚拟环数据报,则:
·用于标识出虚拟环的装置;
·用于检查所接收的虚拟环数据报的节点发起者的装置;
如果所接收的虚拟环数据报不是本地发起的,则:
·用于处理所述虚拟环数据报中包括的数据的装置;
·用于将所述虚拟环数据报转发到标识出的虚拟环上的下游邻居节点的装置;
如果所接收的虚拟环数据报是本地发起的,则:
·用于从虚拟环中去除所述虚拟环数据报的装置。
25.如权利要求24所述的设备,其中
·当接收到令牌时用于标识出虚拟环的装置进一步包括:
·用于检查出已经由所标识出的虚拟环上的上游邻居节点发送了所述令牌的装置;
·当接收到虚拟数据报时用于标识出虚拟环的装置进一步包括:
·用于检查出已经由所标识出的虚拟环上的上游邻居节点发送了所述虚拟环数据报的装置。
26.如权利要求24所述的设备,其中:
·虚拟环上的节点被定义为虚拟环管理器节点;
·所述令牌包括序列号,序列号在每次令牌被虚拟环管理器节点接收时递增;
·用于检查所述令牌是否有效的装置进一步包括:
·用于检查令牌序列号自从上次接收起是否已经递增的装置。
27.如权利要求24所述的设备,其中用于检查所述令牌是否有效的装置进一步包括:
·在令牌不是有效的情况下,用于执行恢复程序的装置。
28.如权利要求24所述的设备,其中:
·用于将所述令牌转发到标识出的虚拟环上的下游邻居节点的装置进一步包括:
·用于启动计时器并且等待令牌的返回的装置;
·用于当计时器期满时执行恢复程序的装置;
·当接收到令牌时,所述设备进一步包括:
·用于停止计时器的装置。
29.如权利要求24所述的设备,其中节点是:
·在网络中路由数据报的计算机系统,或者
·在网络上交换数据报的计算机系统。
30.如权利要求29所述的设备,其中在网络中路由数据报的计算机系统是路由器。
31.如权利要求29所述的设备,其中在网络中交换数据报的计算机系统是客户端或服务器。
32.如权利要求28所述的设备,其进一步包括用于在虚拟环管理器节点中执行以下预备步骤的装置:
·生成令牌;
·将令牌序列号设置为初始值;
·将所述令牌转发到虚拟环上的下游邻居节点;
用于将所述令牌转发到标识出的虚拟环上的下游邻居节点的装置进一步包括:
·用于递增所述令牌序列号的装置;
用于当计时器期满时执行恢复程序的装置进一步包括:
·用于生成新令牌的装置;
·用于将所述新令牌转发到虚拟环上的下游邻居节点的装置。
33.如权利要求24所述的设备,其中所述令牌是数据报,包括:
·第一头部,包括:
·发送节点的源地址;和
·虚拟环上的下一节点的目的地地址;
·第二头部,包括:
·源端口;和
·目的地端口;
·用于将数据报标识为令牌的装置;
·用于标识出虚拟环的装置;
·序列号,所述序列号在每次所述令牌被虚拟环管理器节点接收到时被递增。
34.如权利要求24所述的设备,其中在虚拟环上循环的每个虚拟环数据报包括:
·第一头部,包括:
·虚拟环上的发送节点的源地址;和
·虚拟环上的下一节点的目的地地址;
·第二头部,包括:
·源端口;和
·目的地端口;
·虚拟环头部,包括:
·用于标识出虚拟环上的虚拟环数据报的装置;
·用于标识出虚拟环的装置;
·用于标识出虚拟环数据报的节点发起者的装置;
·数据。
35.如权利要求24所述的设备,其进一步包括:
·用于维护和更新以下信息的装置:
·用于标识出虚拟环的装置;
·上游邻居节点的地址;
·下游邻居节点的地址;
·虚拟环管理器节点的地址。
36.如权利要求35所述的设备,其进一步包括:用于备份虚拟环管理器节点的地址的装置。
37.如权利要求24所述的设备,其进一步包括用于实现加入虚拟环的预备步骤的装置,其包括:
·用于向虚拟环上预先定义的虚拟环节点管理器节点发送插入请求消息的装置,所述插入请求消息包括:
·节点的地址;
·用于标识出虚拟环的装置;
·用于从虚拟环管理器节点接收插入确认消息的装置,所述插入确认消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址。
38.如权利要求37所述的设备,
其中用于发送插入请求消息的装置进一步包括:
·用于启动插入计时器的装置;
其中用于接收插入确认消息的装置进一步包括:
·用于停止插入计时器的装置;
并且其中,如果所述插入计时器期满,则所述设备进一步包括:
·用于向虚拟环上预先定义的备份虚拟环管理器节点发送插入请求消息的装置,所述插入请求消息包括:
·节点的地址;
·用于标识出虚拟环的装置;
·用于重新启动所述插入计时器的装置;
·用于从备份虚拟环管理器节点接收插入确认消息的装置,所述插入确认消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·用于停止插入计时器的装置。
39.如权利要求24所述的设备,其进一步包括用于离开虚拟环的装置,包括:
·用于向虚拟环上预先定义的虚拟环管理器节点发送去除请求消息的装置,所述去除请求消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·该节点的地址;
·用于从虚拟环管理器节点接收去除确认消息的装置。
40.如权利要求39所述的设备,
其中用于发送去除请求消息的装置进一步包括:
·用于启动去除计时器的装置;
其中用于接收去除确认消息的装置进一步包括:
·用于停止去除计时器的装置;
并且其中,如果所述去除计时器期满,则所述设备进一步包括:
·用于向虚拟环上预先定义的备份虚拟环管理器节点发送去除请求消息的装置,所述去除请求消息包括:
·上游邻居节点的地址;
·下游邻居节点的地址;
·该节点的地址;
·用于重新启动所述去除计时器的装置;
·用于从备份虚拟环管理器节点接收去除确认消息的装置;
·用于停止去除计时器的装置。
41.如权利要求24所述的设备,其进一步包括:
·用于从虚拟环上定义的虚拟环管理器节点接收改变邻居消息的装置,所述改变邻居消息包括:
·新的上游邻居节点的地址;或/和
·新的下游邻居节点的地址;
·用于维护以下内容的装置:
·新的上游邻居节点的地址;或/和
·新的下游邻居节点的地址;
·用于向虚拟环管理器节点发送邻居已改变确认消息的装置。
42.如权利要求24所述的设备,其进一步包括用于在虚拟环管理器节点中执行以下步骤的装置:
·接收插入请求消息,所述插入请求消息包括要插入到虚拟环中的新节点的IP地址;
·向下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·被认为是所述下游邻居节点的新的上游邻居节点的新节点的地址;
·接收邻居已改变确认消息;
·用所述新节点的地址来更新所述下游邻居节点的地址;
·向所述新节点发送插入确认消息,所述插入确认消息包括:
·所述新节点的上游邻居节点的地址;
·所述新节点的下游邻居节点的地址。
43.如权利要求24所述的设备,其进一步包括在虚拟环管理器节点中执行以下步骤的装置:
·从虚拟环上的节点接收去除请求消息,所述去除请求消息包括:
·要去除的节点的上游节点的地址;
·要去除的节点的下游节点的地址;
·要去除的节点的地址;
·向要去除的节点的下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·要去除的节点的上游邻居节点的地址;
·向要去除的节点的上游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·要去除的节点的下游邻居节点的地址;
·从要去除的节点的上游邻居节点和下游邻居节点接收邻居已改变确认消息;
·向要去除的节点发送去除确认消息。
44.如权利要求24所述的设备,其进一步包括用于在虚拟环管理器节点中执行以下步骤的装置:
·接收指示与虚拟环上的上游邻居节点的连接丢失的邻居丢失指示消息;所述邻居丢失指示消息包括:
·发生故障的上游邻居节点的地址;
·发起邻居丢失指示消息且检测到与其上游邻居节点的连接丢失的节点的地址;
·向发生故障的节点的下游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·新的上游邻居节点的地址;
·从发生故障的节点的下游邻居节点接收邻居已改变消息;
·接收指示与虚拟环上的下游邻居节点的连接丢失的邻居丢失指示消息;所述邻居丢失指示消息包括:
·发生故障的下游邻居节点的地址;
·发起邻居丢失指示消息且检测到与其下游邻居节点的连接丢失的节点的地址;
·向发生故障的节点的上游邻居节点发送改变邻居消息,所述改变邻居消息包括:
·新的下游邻居节点的地址;
·从发生故障的节点的上游邻居节点接收邻居已改变消息。
45.如权利要求24所述的设备,其中:
·所述网络是传输控制协议/因特网协议网络,
·虚拟环的节点部分之间的逻辑连接是传输控制协议会话;
·节点在虚拟环上通过所述传输控制协议会话与它们的邻居节点多播数据报;
·地址是因特网协议地址。
46.如权利要求24所述的设备,其中在节点之间交换的用于插入节点或去除节点的消息是用户数据报协议消息。
CN2004800374343A 2003-12-19 2004-11-30 在因特网协议网络中的虚拟环上通信的系统与方法 Expired - Fee Related CN1894890B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03368121 2003-12-19
EP03368121.4 2003-12-19
PCT/EP2004/053185 WO2005060156A1 (en) 2003-12-19 2004-11-30 System and method for communicating on a virtual ring in an internet protocol network

Publications (2)

Publication Number Publication Date
CN1894890A CN1894890A (zh) 2007-01-10
CN1894890B true CN1894890B (zh) 2011-06-22

Family

ID=34684636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800374343A Expired - Fee Related CN1894890B (zh) 2003-12-19 2004-11-30 在因特网协议网络中的虚拟环上通信的系统与方法

Country Status (8)

Country Link
US (1) US7733810B2 (zh)
EP (1) EP1695481B1 (zh)
JP (1) JP4678878B2 (zh)
CN (1) CN1894890B (zh)
AT (1) ATE495603T1 (zh)
DE (1) DE602004031048D1 (zh)
TW (1) TWI351852B (zh)
WO (1) WO2005060156A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI351852B (en) * 2003-12-19 2011-11-01 Ibm System and method for communicating on a virtual r
US7606199B2 (en) * 2005-07-14 2009-10-20 Sharp Laboratories Of America, Inc. Central coordinator selection, handover, backup and failure recovery
US7715330B2 (en) * 2005-10-06 2010-05-11 International Business Machines Corporation System and method for optimizing the topology of a virtual ring based upon a TCP/IP network
US7483440B2 (en) 2005-11-01 2009-01-27 Ericsson Ab Ring LSP topology for supporting VPNs over MPLS-based networks
US8570857B2 (en) * 2006-04-07 2013-10-29 At&T Intellectual Property I, Lp Resilient IP ring protocol and architecture
EP1909436A1 (en) * 2006-10-03 2008-04-09 International Business Machines Corporation System and method of integrating a node into a virtual ring
US8090256B2 (en) * 2006-10-04 2012-01-03 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona, Acting For And On Behalf Of Arizona State University Optical network architectures and optical communication schemes
US8295700B2 (en) * 2007-05-14 2012-10-23 Intune Technologies Distributed packet switch for use in a network
US8345576B2 (en) * 2007-06-19 2013-01-01 Red Hat, Inc. Methods and systems for dynamic subring definition within a multi-ring
CN102265560B (zh) 2008-12-25 2014-07-09 三菱电机株式会社 通信管理装置、通信装置以及通信方法
CN102594592B (zh) * 2008-12-25 2015-03-25 三菱电机株式会社 通信管理装置、通信节点、通信系统以及数据通信方法
CN102265562B (zh) * 2008-12-25 2014-11-26 三菱电机株式会社 通信管理装置、通信系统以及数据通信方法
GB0900667D0 (en) * 2009-01-16 2009-02-25 Univ Reading The Processors
US8630837B2 (en) * 2010-06-17 2014-01-14 The Aerospace Corporation Multicast emulation
WO2012042623A1 (ja) * 2010-09-29 2012-04-05 富士通株式会社 リングネットワークを構築する方法
US9331861B2 (en) * 2010-12-17 2016-05-03 Telefonaktiebolaget Lm Ericsson (Publ) Ethernet ring node with improved recovery time after a link failure
US8509061B2 (en) * 2011-03-23 2013-08-13 Ciena Corporation Systems and methods for scaling performance of Ethernet ring protection protocol
CN104040959B (zh) 2011-11-21 2017-10-31 瑞典爱立信有限公司 环保护状态感知的带宽自适应
US9515944B2 (en) * 2011-12-12 2016-12-06 Mitsubishi Electric Corporation Train information management apparatus and train information management method
US9350629B2 (en) 2012-08-22 2016-05-24 Oracle International Corporation System and method for ensuring internet protocol (IP) address and node name consistency in a middleware machine environment
US9559894B2 (en) * 2012-08-22 2017-01-31 Oracle International Corporation System and method for supporting high available (HA) network communication in a middleware machine environment
CN107276774B (zh) * 2016-04-08 2020-07-24 华为技术有限公司 一种组播报文传输方法以及转发设备
US10608840B2 (en) * 2016-09-19 2020-03-31 Simmonds Precision Products, Inc. Automatic addressing of networked nodes
US11483209B2 (en) * 2019-11-19 2022-10-25 Advanced Micro Devices, Inc. Forward progress mechanisms for a communications network having multiple nodes
US11463326B2 (en) * 2021-02-24 2022-10-04 Cisco Technology, Inc. Lightweight ring manager with distributed policies

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0561381A2 (en) * 1992-03-18 1993-09-22 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
CN1178620A (zh) * 1995-03-10 1998-04-08 国际商业机器公司 用于令牌环网络的多端口局域网切换器
US5802056A (en) * 1995-07-12 1998-09-01 Bay Networks, Inc. Configuration of virtual rings in a token ring local area network

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4538147A (en) * 1982-03-05 1985-08-27 Burroughs Corp. Bandwidth allocation in a token controlled loop communications network
US4590468A (en) * 1983-03-10 1986-05-20 Western Digital Corporation Token access controller protocol and architecture
DE3572103D1 (en) * 1985-02-28 1989-09-07 Ibm Communication system comprising overlayed multiple-access transmission networks
US5107490A (en) * 1985-04-24 1992-04-21 Artel Communications Corporation Ring-type communication network
GB2175774B (en) * 1985-05-24 1988-09-01 Stc Plc Intelligence transmission system of the local area network type
US4780871A (en) * 1985-07-09 1988-10-25 Canon Kabushiki Kaisha Data Transmission system
US4736368A (en) * 1985-12-16 1988-04-05 Texas Instruments Incorporated Priority token protocol circuit for a token ring local area network adaptor
JPS62284538A (ja) * 1986-06-03 1987-12-10 Yaskawa Electric Mfg Co Ltd 伝送方式
US4766530A (en) * 1986-11-24 1988-08-23 Westinghouse Electric Corp. Token passing scheme for a predetermined configuration local area network
US4860284A (en) * 1988-04-20 1989-08-22 American Telephone And Telegraph Company, At&T Bell Laboratories Method and apparatus for identifying location of a lost token signal in a data communication network
JP2650961B2 (ja) * 1988-04-28 1997-09-10 株式会社日立製作所 分散制御ネットワークの制御方法
US5053946A (en) * 1988-05-26 1991-10-01 Digital Equipment Corporation Token ring network having token request mechanism
US5253252A (en) * 1989-01-10 1993-10-12 The Foxboro Company Token device for distributed time scheduling in a data processing system
US5289390A (en) * 1992-05-22 1994-02-22 Hewlett-Packard Company Method for determining the electrical cable length of an active ring of a token ring local area network
US5383186A (en) * 1993-05-04 1995-01-17 The Regents Of The University Of Michigan Apparatus and method for synchronous traffic bandwidth on a token ring network
GB2278258A (en) * 1993-05-17 1994-11-23 Ibm Token ring network
US5490145A (en) * 1993-05-25 1996-02-06 Matsushita Electric Industrial Company, Ltd. Communication system for a ring-type network
EP0719009B1 (de) * 1994-12-23 1999-06-30 Hewlett-Packard GmbH Datennetzwerk und Verfahren zur zeitrichtigen Übertragung von Datenpaketen in einem Datennetzwerk
US5886992A (en) * 1995-04-14 1999-03-23 Valtion Teknillinen Tutkimuskeskus Frame synchronized ring system and method
US5604742A (en) * 1995-05-31 1997-02-18 International Business Machines Corporation Communications system and method for efficient management of bandwidth in a FDDI station
US5752003A (en) * 1995-07-14 1998-05-12 3 Com Corporation Architecture for managing traffic in a virtual LAN environment
EP0802655A3 (en) * 1996-04-17 1999-11-24 Matsushita Electric Industrial Co., Ltd. Communication network
US6108713A (en) * 1997-02-11 2000-08-22 Xaqti Corporation Media access control architectures and network management systems
US6154462A (en) * 1997-08-21 2000-11-28 Adc Telecommunications, Inc. Circuits and methods for a ring network
TW419917B (en) * 1998-03-30 2001-01-21 Toshiba Corp Communication network system
US6366556B1 (en) * 1998-06-22 2002-04-02 Lucent Technologies Inc. Self-healing networks using virtual rings
US6563833B1 (en) * 1999-01-05 2003-05-13 Lucent Technologies Inc. Combinatorial design method and apparatus for multi-ring networks with combined routing and flow control
US6460101B1 (en) * 1999-11-09 2002-10-01 International Business Machines Corporation Token manager for execution of global operations utilizing multiple tokens
US6880017B1 (en) * 2000-03-20 2005-04-12 International Business Machines Corporation System and method for providing an adaptive streaming flow control mechanism between the TCP and IP layers of the TCP/IP suite of protocols
JP2002009800A (ja) * 2000-06-19 2002-01-11 Fujitsu Ltd リング型ネットワークシステムのブロードキャスト方法及びそのノード装置
US7047319B2 (en) * 2001-02-15 2006-05-16 International Business Machines Corporation System and method for enabling a collision-free protocol over ethernet
US7106695B2 (en) * 2001-05-29 2006-09-12 International Business Machines Corporation Method of allocating bandwidth to the stations of a local area network
US7181547B1 (en) * 2001-06-28 2007-02-20 Fortinet, Inc. Identifying nodes in a ring network
US7130927B2 (en) * 2001-07-05 2006-10-31 International Business Machines Corporation Method of bandwidth management between the stations of a local area network
US7248601B2 (en) * 2001-08-09 2007-07-24 International Business Machines Corporation Method of allocating bandwidth on request to the stations of a local area network
US20030154285A1 (en) * 2002-02-13 2003-08-14 International Business Machines Corporation Method and system for assigning network addreses
US7287170B2 (en) * 2002-05-14 2007-10-23 Ati Technologies Inc. Method and apparatus for power management using system and request tokens
US7269731B2 (en) * 2003-01-29 2007-09-11 Hewlett-Packard Development Company, L.P. Message authorization system and method
US7366109B2 (en) * 2003-10-29 2008-04-29 Nortel Networks Limited Virtual private networks within a packet network having a mesh topology
TWI351852B (en) * 2003-12-19 2011-11-01 Ibm System and method for communicating on a virtual r

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0561381A2 (en) * 1992-03-18 1993-09-22 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
CN1178620A (zh) * 1995-03-10 1998-04-08 国际商业机器公司 用于令牌环网络的多端口局域网切换器
US5802056A (en) * 1995-07-12 1998-09-01 Bay Networks, Inc. Configuration of virtual rings in a token ring local area network

Also Published As

Publication number Publication date
EP1695481A1 (en) 2006-08-30
JP4678878B2 (ja) 2011-04-27
JP2007515117A (ja) 2007-06-07
EP1695481B1 (en) 2011-01-12
CN1894890A (zh) 2007-01-10
US7733810B2 (en) 2010-06-08
US20070268913A1 (en) 2007-11-22
DE602004031048D1 (de) 2011-02-24
WO2005060156A1 (en) 2005-06-30
TW200527856A (en) 2005-08-16
TWI351852B (en) 2011-11-01
ATE495603T1 (de) 2011-01-15

Similar Documents

Publication Publication Date Title
CN1894890B (zh) 在因特网协议网络中的虚拟环上通信的系统与方法
US7065059B1 (en) Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network
US7859992B2 (en) Router redundancy in data communication networks
CN1969491B (zh) 在路由器中的控制故障期间保护多播数据转发的设备和方法
US7715330B2 (en) System and method for optimizing the topology of a virtual ring based upon a TCP/IP network
US7362700B2 (en) Methods and systems for hitless restart of layer 3 packet forwarding
US7707457B2 (en) Completing an interrupted data replication operation
US7542432B2 (en) Resource matched topology database synchronization in communications networks having topology state routing protocols
CN101499976B (zh) 具备自动建立机制的堆叠管理器协议
JP2006101471A (ja) マルチキャスト冗長経路ルータ、マルチキャスト冗長化方式
US7248579B1 (en) System and method for providing a link state database (LSDB) snapshot for neighbor synchronization
EP1697843B1 (en) System and method for managing protocol network failures in a cluster system
JP2007515117A5 (zh)
US10439929B2 (en) Graceful recovery of a multicast-enabled switch
US10666558B2 (en) Automatic alignment of roles of routers in networks
CN110677282A (zh) 一种分布式系统的热备份方法及分布式系统
KR101075462B1 (ko) 서브넷에서 마스터 노드를 선출하는 방법
CN102769571B (zh) 一种平滑重启实现方法及设备
US7184394B2 (en) Routing system providing continuity of service for the interfaces associated with neighboring networks
US7554990B2 (en) Static address reservation protocol in a data network
CN110716827A (zh) 适用于分布式系统的热备份方法及分布式系统
CN110493292B (zh) 能力通告方法及装置、系统、存储介质、电子装置
CN117118912A (zh) 报文传输方法、网络设备和通信系统
Dommel et al. Efficient group coordination in multicast trees
CN115695340A (zh) 报文转发方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110622

Termination date: 20201130

CF01 Termination of patent right due to non-payment of annual fee