CN107483346A - 自治系统内的消息传递方法、装置及相应的消息传递系统 - Google Patents
自治系统内的消息传递方法、装置及相应的消息传递系统 Download PDFInfo
- Publication number
- CN107483346A CN107483346A CN201710676673.2A CN201710676673A CN107483346A CN 107483346 A CN107483346 A CN 107483346A CN 201710676673 A CN201710676673 A CN 201710676673A CN 107483346 A CN107483346 A CN 107483346A
- Authority
- CN
- China
- Prior art keywords
- node
- computer room
- routing table
- section point
- route
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据传输领域,具体涉及一种自治系统内的消息传递方法、装置及相应的消息传递系统。所示方法包括步骤:第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。通过各机房的节点实时探测节点之间网络状况得到全网各机房的节点之间的最优路径,将消息通过实时最优路径发给目标机房的目标节点,保证系统消息传递的可用性和实时性。
Description
【技术领域】
本发明涉及数据传输领域,具体涉及一种自治系统内的消息传递方法、装置及相应的消息传递系统。
【背景技术】
现有的分布式系统中,不同机房服务器之间网络通信的稳定性、实时性对系统服务的质量起到了至关重要的作用,实际应用中,服务器之间的通信,一般还是之间通过TCP连接收发数据,当发生网络拥塞、网络波动时,消息通常不能及时到达,严重影响服务的质量。目前现有的解决方法主要是使用第三方质量较好的机房作为固定的消息中转机房,通过固定的三方机房做消息中转固然能解决大部分时候的跨机房通信问题,但是当中转的机房自己也出现网络问题时,消息依然不能保证准时到达。这时只能依赖人工干预的方式切换到别的中转机房传递消息。很明显但是这样的系统不具备很好的可用性和实时性,人工维护成本很高。
【发明内容】
本发明的目的在于提供一种自治系统内的消息传递方法及相应的消息传递系统,保证系统消息传递的可用性和实时性。
为实现该目的,本发明采用如下技术方案:
第一方面,本发明提供一种自治系统内的消息传递方法,该方法由机房内的节点执行,包括如下步骤:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;
第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
进一步的,所述第二机房的第二节点的第二路由表由第二机房的第二节点ping至少一个相邻的第三机房的第三节点所形成,所述第二机房的第二节点还包括:
第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表以形成全网路由表。
具体的,所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表的步骤,包括:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,得到与每一个第二节点之间通信的丢包率及往返时间,并根据丢包率及往返时间确定第一路由表中的每一条路由记录的权值。
较佳的,所述第一机房的第一节点按照第一时间间隔ping至少一个相邻的第二机房的第二节点;所述第一机房的第一节点按照第二时间间隔获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表。
较佳的,所述第二机房的第二节点按照第一时间间隔ping至少一个相邻的第三机房的第三节点;所述第二机房的第二节点按照第二时间间隔获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表。
具体的,所述第一路由表、第二路由表及全网路由表的路由表字段包括:目标机房的目标节点、到达目标机房的目标节点的整条路径及该路径上的所有节点、以及到达所述目标机房的目标节点的权值。
具体的,所述并根据所述第二路由表更新本地的第一路由表以形成全网路由表的步骤,包括:
当第二路由表的路由记录中到达目标节点的路径中包含第一机房的第一节点时,第一节点对第二路由表中的该条路由记录不作处理;
当第二路由表的路由记录中到达目标节点的路径中不包含第一机房的第一节点时,判断第一路由表中是否存在到达该目标机房的目标节点的路由记录:
如果第一路由表中不存在到达该目标机房的目标节点的路由记录,则将第二路由表中的该条路由记录添加到第一路由表中,并更新该条路由记录中到达目标机房的目标节点的整条路径的下一跳地址为第二节点,以及更新该路由记录相应的权值;
如果第一路由表中存在到达该目标机房的目标节点的路由记录,判断第二路由表中到达该目标节点的路由记录的权值与第一路由表中到达该目标节点的路由记录的权值大小:
若第二路由表中到达该目标节点的路由记录的权值比第一路由表中到达该目标节点的路由记录的权值小,则将第一路由表中到达所述目标节点的路径更改为:下一跳为第二节点加上第二路由表中的该条路由记录的路径,同时更新第一路由表中该条路由记录的权值。
进一步的,所述第一节点将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点,包括:
第一节点判断所述消息数据包的TTL值是否为0;
当所述消息的TTL值为0时,通过预配置的静态路径上的节点转发该消息数据包。
第二方面,本发明还提供一种自治系统内的消息传递装置,包括:
网络探测模块:用于第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
路由表更新模块:用于第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;
消息中转模块:用于第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
第三方面,本发明还提供一种消息传递系统,包括第一机房的第一节点、第二机房的第二节点,所述第一节点、第二节点执行包括自治系统内的消息传递方法任一所述的步骤,具体的:
所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
所述第二机房的第二节点ping至少一个相邻的第三机房的第三节点,形成第二路由表;
所述第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表;
所述第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表;
所述第一机房的第一节点与第二机房的第二节点交换各自路由表以形成全网路由表;
所述第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
与现有技术相比,本发明具备如下优点:
本发明通过各机房的节点实时探测各机房的节点之间网络状况,然后根据距离向量算法计算出全网各机房的节点之间的最优路径,形成全网路由表,中转机房的中转节点(第一机房的第一节点)根据所述全网路由表,将消息通过实时最优路径发给目标机房的目标节点(业务节点),保证系统消息传递的可用性和实时性。
再者,本发明考虑到传统的距离向量算法由于路由的收敛过程需要一些时间,形成的路由表会有一定概率成环的情况,通过改进RIP协议中路由表的字段及优化相应的距离向量算法,将路由记录中的下一跳节点地址更改为到达目标节点的整条路径上的所有节点地址,极大减少了路由表成环的可能性。
同时,本发明为每一个消息数据包配置一个TTL值,当消息未到达目标节点且在中间节点处时,若中间节点判断该消息的TTL值为0,则将该消息数据包丢弃,并向源节点发送时间超过报文,源节点接收到该时间超过报文后,将消息通过预配置的静态路径上的节点进行转发,其中,静态路径上的节点为备用机房的节点,通过配置一个/一组默认节点以及相应的一条备用的静态路径,避免消息在普通机房间传递时由于网络原因而导致数据传输延迟和失败的问题,保证了数据的实时到达。
显然,上述有关本发明优点的描述是概括性的,更多的优点描述将体现在后续的实施例揭示中,以及,本领域技术人员也可以本发明所揭示的内容合理地发现本发明的其他诸多优点。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
图1为本发明自治系统内的消息传递方法的一实施例流程示意图。
图2为本发明消息传递系统中第一机房、第二机房、第三机房的网络拓扑图的一实施例示意图。
图3为本发明自治系统内的消息传递装置的一实施例示意图。
【具体实施方式】
下面结合附图和示例性实施例对本发明作进一步地描述,其中附图中相同的标号全部指的是相同的部件。此外,如果已知技术的详细描述对于示出本发明的特征是不必要的,则将其省略。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面先对本发明中所涉及到的部分术语进行解释,包括:
分组网间探测PING(Packet InterNet Croper)是用来测试两个主机之间的连通性,PING使用了ICMP回送请求与回送回答报文,是应用层直接使用网络层ICMP的一种实施例。在Windows操作系统中,用户可以在MS DOS中键入“ping hostname”,hostname是要测试连通性的主机名或它的IP地址,然后按回车键就可以看到结果,例如在MS DOS输出pingwww.baidu.com,得到的结果包括:发送到哪个机器(目标机器),发送的、收到的和丢失的分组数,往返时间的最小值、最大值和平均值,还有到达目标机器的TTL值。
TTL是Time To Live的缩写,TTL指定数据包在被丢弃之前允许通过的最大网络节点数量。
自治系统(autonomous system,AS)的定义是指在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。在一个AS内的路由使用的路由协议称为内部网关协议IGP(Interior Gateway Protocol),IGP包括RIP和OSPF协议。
路由信息协议RIP(Routing Information Protocol)是一种分布式的基于距离向量的路由选择协议,RIP协议要求一个网络中的每一个路由器都要维护从它自己到其它每一个目的网络的距离记录,因此,这是一组距离,即“距离向量”,RIP协议将“距离”定义为:从一路由器到直接连接的网络的距离为1,从一路由器到非直接连接的网络的距离定义为所经过的路由器数加1。RIP协议的“距离”也称为“跳数(hop count)”,每经过一个路由器,跳数就加1。
本实施例所述的第一节点、第二节点、目标节点具体为网络中的网络设备,可以是路由器、交换机、PC机或服务器等,当网络设备接入网络后便成为网络拓扑中的一个网络节点,在本发明实施例中,所述第一节点、第二节点、目标节点等优选为路由器。
本发明实施例所述的第一节点、第二节点、目标节点均属于同一个自治系统(autonomous system,AS)内的网络节点,自治系统AS是指在单一的技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量以确定分组在该自治系统内的路由,同时还使用一种不同自治系统之间的路由选择协议用以确定分组自治系统之间的路由,即一个自治系统对其它自治系统表现出的是一个单一的和一致的路由选择策略。在一个自治系统内的路由使用的路由协议称为内部网关协议IGP(Interior GatewayProtocol),内部网关协议IGP包括路由信息协议RIP(Rounting Information Protocol)和开放最短路径优先OSPF(Open Shortest Path First)协议,在本发明实施例的自治系统内优选使用RIP协议。
第一方面,当本发明实施例的自治系统工作时,以自治系统内的第一机房的第一节点为执行主体,第一节点执行包括如下步骤:
步骤S100:第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表。
在本发明实施例中,第一机房的第一节点包括执行网络探测功能及消息中转功能,当本自治系统工作时,第一机房的第一节点首先执行网络探测功能:ping至少一个相邻的第二机房的第二节点。所述相邻的第二机房的第二节点与第一机房的第一节点为直接连接,即两者之间的通信不需要再经过另一个网络节点而是直接进行交付,第一机房的第一节点ping与其相邻的第二机房的第二节点后,每ping一个第二机房的第二节点的结果形成一条路由记录,具体包括:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,得到与每一个第二节点之间通信的丢包率及往返时间,并根据丢包率及往返时间确定第一路由表中的每一条路由记录的权值。
具体的,ping的结果表征第一节点与所ping的第二节点之间的连通性,ping的结果包含第一节点与每一个第二节点之间通信的丢包率rate和往返时间RTT,丢包率是指第一节点ping第二节点时所丢失数据包数量占所发送数据包的比率,往返时延RTT(Round-Trip Time)是计算机网络中一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延,在本实施例中即表示第一节点与第二节点通信的时延,对应的时间单位为毫秒(ms)。
进一步的,根据丢包率rate及往返时间RTT即可确定第一路由表中的每一条路由记录的权值value,在本实施例中,
丢包率rate=(100*(send-recv))/send,其中send表示发送的数据包数量,recv表示收到回复的数据包数量;
权值value=RTT*10+rete*100,可以理解的是,权值只是一个用以表示一条路由记录的特征量,本领域技术人员可以利用其它特征量作为路由记录的权值。
在一种实施例中,第一节点以R1表示,第二节点以R2表示,当第一机房的第一节点R1ping了一个相邻的第二机房的第二节点R2后,形成的一条路由记录为<R2,[1],VALUE1>,R2为该条路由记录的目标节点,[1]表示R1到R2为直接交付,VALUE1为该条路由记录的权值。
当第一机房的第一节点ping完与其相邻的所有第二机房的第二节点后形成了第一机房的第一节点的路由表,本实施例中,将其定义为第一路由表。
步骤S200:第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表。
第一机房的第一节点形成第一路由表后与相邻的第二机房的第二节点交换路由信息,即第一节点获取相邻的第二机房的第二节点所形成的第二路由表。在本实施例中,所述第二机房的第二节点同样ping与其相邻的网络节点并形成自身的路由表,具体的,第二机房的第二节点ping至少一个与其相邻的第三机房的第三节点,可以知道的是,因为第一节点与第二节点为相邻节点,故第二节点同样会ping上述第一机房的第一节点,而后形成第二机房的第二节点的路由表,本实施例中将其定义为第二路由表,如图2所示是消息传递系统中第一机房、第二机房、第三机房的网络拓扑图的一实施例示意图,图中第一节点与第二节点为相邻节点,第二节点与第三节点为相邻节点。
进一步的,在第二节点形成第二路由表后,第一机房的第一节点获取第二机房的第二节点的第二路由表,并根据该第二路由表更新本地的第一路由表形成新的路由表,同样的,第二机房的第二节点获取第一机房的第一节点的第一路由表,并更新本地的第二路由表;再者,第二机房的第二节点与第三机房的第三节点也相互交换各自的路由表,即第二节点获取第三节点的第三路由表并更新本地的第二路由表,第三节点获取第二节点的第二路由表并更新本地的第三路由表,至此,第一节点即可以知道到达第三节点的路径。例如更新后的第一路由表中表示第一节点到达第三节点的路由记录为<R3,[R2],VALUE2>,其中R3表示第三节点,R2表示第二节点,该条路由记录表示了从R1到达R3的路径且下一跳为R2,权值为VALUE2。在经过多次节点路由表的交换后,各个节点的路由表得到相应的延展,第一机房的第一节点所更新形成的第一路由表为全网路由表,即第一路由表中已经包含第一节点到达本自治系统中任何一个网络节点的路径及下一跳应该经过的网络节点的地址,故称之为全网路由表。
本发明的一种实施例中,所述第一路由表、第二路由表、第三路由表及全网路由表的路由记录字段包括目标机房的目标节点、到达目标机房的目标节点的整条路径及该路径上的所有节点、以及到达所述目标机房的目标节点的权值。例如第一路由表中有一条路由记录为<R7,[R3,R5,R6],VALUE3>,表示第一节点R1达到节点R7需要相继经过节点R3、R5、R6,该路由记录的权值为VALUE3。
在本实施例中,为了得到本自治系统的全网路由表,第一节点根据第二路由表更新本地的第一路由表及其他相邻网络节点在交换路由表以更新自身的路由表时,遵从如下规则,该原则在现有的RIP协议的距离向量算法上根据本实施例中路由记录字段的变化作优化,下述以第一节点根据第二路由表以优化后的距离向量算法更新本地的第一路由表为例进行说明:
①当第二路由表的路由记录中到达目标节点的路径中包含第一机房的第一节点时,第一节点对第二路由表中的该条路由记录不作处理。
具体的,如果第二路由表到达目标节点的路由记录中的路径中包含第一机房的第一节点时,此时表示第一路由表中已有该条记录,则第一节点对第二路由表中的该条路由记录不作处理。例如,第一节点R1,第二节点R2,第二路由表中包含一条路由记录<R7,[R3,R1,R5],VALUE1>,该条路由记录表示从第二节点R2到目标节点R7需要经过节点R3、R1、R5,权值为VALUE1,第一节点获取了该条路由记录后,发现该条路由记录到达目标节点R7的路径中包含自身节点R1,说明第一路由表中存在该路径,此时,不对第二路由表中的该路由记录作处理。
②当第二路由表的路由记录中到达目标节点的路径中不包含第一机房的第一节点时,判断第一路由表中是否存在到达该目标机房的目标节点的路由记录:
如果第一路由表中不存在到达该目标机房的目标节点的路由记录,则将第二路由表中的该条路由记录添加到第一路由表中,并更新该条路由记录中到达目标机房的目标节点的整条路径的下一跳地址为第二节点,以及更新该路由记录相应的权值。
具体的,如果到达目标机房的目标节点的路由记录存在于第二路由表而不存在于第一路由表中时,则将第二路由表中的该条路由记录添加到第一路由表中,并更新该条路由记录的相应字段。例如,第一节点R1,第二节点R2,第二路由表中包含一条路由记录<R7,[R3,R5,R6],VALUE1>,而第一路由表中不包含到达节点R7的路由记录,则第一节点将该条路由记录添加到第一路由表中并更新相应的字段,具体的,更新后的第一路由表中到达节点R7的路由记录为<R7,[R2,R3,R5,R6],VALUE2>,VALUE2根据VALUE1及第一节点到第二节点的权值VALUE0决定,一种实施例中VALUE2=VALUE1+VALUE0。
③如果第一路由表中存在到达该目标机房的目标节点的路由记录,判断第二路由表中到达该目标节点的路由记录的权值与第一路由表中到达该目标节点的路由记录的权值大小:
若第二路由表中到达该目标节点的路由记录的权值比第一路由表中到达该目标节点的路由记录的权值小,则将第一路由表中到达所述目标节点的路径更改为:下一跳为第二节点加上第二路由表中的该条路由记录的路径,同时更新第一路由表中该条路由记录的权值。
具体的,当第二路由表的路由记录中到达目标节点的路径中不包含第一机房的第一节点时,且第二路由表中到达该目标节点的路由记录的权值比第一路由表中到达该目标节点的路由记录的权值小,则将第一路由表中到达所述目标节点的路径更改为:下一跳为第二节点加上第二路由表中的该条路由记录的路径,同时更新第一路由表中该条路由记录的权值。例如,第一节点R1,第二节点R2,第二路由表中包含一条路由记录<R7,[R4,R6,R8],VALUE1>,该条路由记录表示从第二节点R2到目标节点R7需要经过节点R4、R6、R8,权值为VALUE1,第一节点获取了该条路由记录后,如果第一路由表中存在到达R7的路径但权值大于VALUE1,则将第二路由表该条路由信息整合至第一路由表中,具体的,整合后的第一路由表中的该条路由信息为<R7,[R2,R4,R6,R8],VALUE2>,其中VALUE2根据VALUE1及第一节点到第二节点的权值VALUE0决定,一种实施例中VALUE2=VALUE1+VALUE0。
较佳的,在本自治系统中,所述第一机房的第一节点按照第一时间间隔ping至少一个相邻的第二机房的第二节点;所述第一机房的第一节点按照第二时间间隔获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表。同样的,所述第二机房的第二节点按照第一时间间隔ping至少一个相邻的第三机房的第三节点;所述第二机房的第二节点按照第二时间间隔获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表。也即是自治系统中的每一个节点按照预设时间间隔ping与其相邻的节点,以检测节点之间的连通性并相应的更新自身的路由表,如第一节点每隔3秒ping相邻的第二节点,然后根据最新ping的结果更新本地的第一路由表;同时,自治系统中的每一个节点也同样按照预设时间间隔与其相邻的节点交互各自的路由表,以更新得到本自治系统最新的全网路由表,即各节点最新的连通信息,如第一节点每隔30秒与相邻的第二节点交互各自的路由表,即第一节点每隔30秒获取第二节点的第二路由表,第二节点同样地每隔30秒获取第一节点的第一路由表,然后第一节点根据获取的第二路由表更新本地的第一路由表,第二节点也同样地根据第一路由表更新本地的第二路由表。至此,循环反复,第一机房的第一节点便可以实时得到自治系统内的所有路由信息,即得到自治系统的全网路由表,自治系统内的其它节点也同样得到该自治系统内的所有路由信息,即自治系统内的每一个节点均可以知道到达该自治系统中的任何一个机房的任何一个节点的路径及相应权值。
本实施例通过优化后的距离向量算法更新路由表,可以极大减少了路由表成环的可能性,避免数据包不停在网络上循环发送而造成网络资源的严重浪费的问题。
步骤S300:第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的中转节点。
当第一机房的第一节点接收到其他机房的中转节点发来的消息数据包时,解析所述消息数据包确定该消息数据包所要发往的目标节点,然后在本地的第一路由表中查找到达该目标节点的路由记录,然后将所述消息转发至下一跳机房的下一跳节点。例如一条消息所要到达的目标节点为R7,第一节点在第一路由表中查找到的路由记录为<R7,[R3,R5,R6],VALUE3>,其中R3、R5,R6均为自治系统中的网络节点,第一节点R1要将消息发送至R7需要依次经过节点R3,R5,R6,故第一节点将所述消息数据包转发至下一跳节点R3,然后下一跳节点R3也同第一节点R1一样,解析所述消息数据包确定所述消息数据包所要发往的目标节点R7,再从本地的路由表中查找到相应的路由记录,然后将消息数据包传递至下一跳节点R5,依次传递直到所述消息数据包到达目标机房的目标节点。
本发明的一种实施例中,所述第一节点将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点,包括:
第一节点判断所述消息的TTL值是否为0;
当所述消息的TTL值为0时,通过预配置的静态路径上的节点转发该消息。
具体的,当一条消息从源节点向目标节点开始传递时,源节点均会为每一条消息设置一个TTL值,对于每一条消息的TTL值在本自治系统可以是统一的数值,TTL是Time ToLive的缩写,TTL指定数据包在被丢弃之前允许通过的最大网络节点数量,具体的,消息每经过一个网络节点,其TTL值减1,当消息未到达目标节点且在中间节点处时,若中间节点判断该消息的TTL值为0,则将该消息数据包丢弃,并向源节点发送时间超过报文,源节点接收到该时间超过报文后,将消息通过预配置的静态路径上的节点进行转发。例如,在本自治系统中设置有一个/一组默认节点R0以及相应的一条备用的默认通道<Rx,[R0...],VALUE0>,Rx表示本自治系统内任一网络节点,[R0...]表示经过默认节点R0到达目标节点Rx的备用静态路径,当一条消息通过常规路径传递但未到达目标节点时其TTL值为0,则通过该备用静态路径上的节点进行中转消息。本实施例中,备用静态路径上的节点为备用机房的节点,通过配置一个/一组默认节点以及相应的一条备用的静态路径,避免消息在普通机房间传递时由于网络原因而导致数据传输延迟和失败的问题,保证了数据的实时到达。
本发明的一种实施例,若在应用层(本实施例中为业务机房的服务器)所发送的消息大于预设大小时,则服务器向同机房的中转节点发送消息时告知中转节点使用专用TCP连接发送该消息,否则,使用常用TCP连接发送该消息。例如,如果服务器发送的消息大于10000个字节时,则中转节点使用专用TCP连接发送该消息,否则,使用常用TCP连接发送该消息,防止大的消息数据包阻塞中转节点间的TCP连接。
本发明的一个应用场景:在自治系统中包括多个消息中转机房及业务处理机房,上述的第一机房为消息中转机房,第二机房为业务处理机房,当位于不同业务机房间的服务器需要互相通信时,例如第二机房的服务器与目标机房的服务器需要进行通信,第二机房的服务器先将消息发送给第二机房内的第二节点,第二节点再将消息转发至与其相邻连接的消息中转机房的节点如第一机房的第一节点,第一节点已根据上述方法得到本自治系统的全网路由表,然后第一节点根据全网路由表将消息经过第三机房的第三节点、第四机房的第四节点等一个或多个中间节点的中转将消息发送给目标机房的目标节点。
第二方面,如图3所示是本发明自治系统内的消息传递装置的一实施例示意图,包括:
网络探测模块100:用于第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
路由表更新模块200:用于第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;
消息中转模块300:用于第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
当本自治系统工作时,第一机房的第一节点首先执行网络探测模块100功能:ping至少一个相邻的第二机房的第二节点。所述相邻的第二机房的第二节点与第一机房的第一节点为直接连接,即两者之间的通信不需要再经过另一个网络节点而是直接进行交付,第一机房的第一节点ping与其相邻的第二机房的第二节点后,每ping一个第二机房的第二节点的结果形成一条路由记录,具体包括:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,得到与每一个第二节点之间通信的丢包率及往返时间,并根据丢包率及往返时间确定第一路由表中的每一条路由记录的权值。
当第一机房的第一节点ping完与其相邻的所有第二机房的第二节点后形成了第一机房的第一节点的路由表,本实施例中,将其定义为第一路由表。
第一机房的第一节点形成第一路由表后利用路由表更新模块200与相邻的第二机房的第二节点交换路由信息,即第一节点获取相邻的第二机房的第二节点所形成的第二路由表,并根据该第二路由表更新本地的第一路由表形成新的路由表。
在经过多次节点路由表的交换后,各个节点的路由表得到相应的延展,第一机房的第一节点所更新形成的第一路由表为全网路由表,即第一路由表中已经包含第一节点到达本自治系统中任何一个网络节点的路径及下一跳应该经过的网络节点的地址,故称之为全网路由表。
当第一机房的第一节点接收到其他机房的中转节点发来的消息数据包时,消息中转模块300:解析所述消息数据包确定该消息数据包所要发往的目标节点,然后在本地的第一路由表中查找到达该目标节点的路由记录,然后将所述消息转发至下一跳机房的下一跳节点。
第三方面,本发明还提供一种消息传递系统,包括第一机房的第一节点、第二机房的第二节点,所述第一节点、第二节点执行包括自治系统内的消息传递方法任一所述的步骤,具体的:
所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
所述第二机房的第二节点ping至少一个相邻的第三机房的第三节点,形成第二路由表;
所述第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表;
所述第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表;
所述第一机房的第一节点与第二机房的第二节点交换各自路由表以形成全网路由表;
所述第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
当本消息传递系统工作时,第一机房的第一节点首先执行网络探测功能:ping至少一个相邻的第二机房的第二节点,得到与每一个第二节点之间通信的丢包率及往返时间,并根据丢包率及往返时间确定第一路由表中的每一条路由记录的权值,当第一机房的第一节点ping完与其相邻的所有第二机房的第二节点后形成第一路由表。
所述第二机房的第二节点同样地ping至少一个与其相邻的第三机房的第三节点,可以知道的是,因为第一节点与第二节点为相邻节点,故第二节点同样会ping上述第一机房的第一节点,而后形成第二路由表。
可以知道的是,若消息传递系统中存在第三、第四、第五等节点,均会ping至少一个与其相邻的网络节点后形成自身的路由表。
第二节点形成第二路由表后,第一机房的第一节点获取第二机房的第二节点的第二路由表,并根据该第二路由表更新本地的第一路由表形成新的路由表,同样的,第二机房的第二节点获取第一机房的第一节点的第一路由表,并更新本地的第二路由表;再者,第二机房的第二节点与第三机房的第三节点也相互交换各自的路由表,即第二节点获取第三节点的第三路由表并更新本地的第二路由表,第三节点获取第二节点的第二路由表并更新本地的第三路由表,至此,第一节点即可以知道到达第三节点的路径,在经过多次节点路由表的交换后,各个节点的路由表得到相应的延展,第一机房的第一节点所更新形成的第一路由表为全网路由表,即第一路由表中已经包含第一节点到达本消息传递系统中任何一个网络节点的路径及下一跳应该经过的网络节点的地址。
所述第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。当第一机房的第一节点接收到其他机房的中转节点发来的消息数据包时,解析所述消息数据包确定该消息数据包所要发往的目标节点,然后在本地的第一路由表中查找到达该目标节点的路由记录,然后将所述消息转发至下一跳机房的下一跳节点。
本发明通过各机房的节点实时探测各机房的节点之间网络状况,然后根据距离向量算法计算出全网各机房的节点之间的最优路径,形成全网路由表,中转机房的中转节点(第一机房的第一节点)根据所述全网路由表,将消息通过实时最优路径发给目标机房的目标节点(业务节点),保证系统消息传递的可用性和实时性;再者,本发明考虑到传统的距离向量算法由于路由的收敛过程需要一些时间,形成的路由表会有一定概率成环的情况,通过改进RIP协议中路由表的字段及优化相应的距离向量算法,将路由记录中的下一跳节点地址更改为到达目标节点的整条路径上的所有节点地址,极大减少了路由表成环的可能性;同时,本发明为每一个消息数据包配置一个TTL值,当消息未到达目标节点且在中间节点处时,若中间节点判断该消息的TTL值为0,则将该消息数据包丢弃,并向源节点发送时间超过报文,源节点接收到该时间超过报文后,将消息通过预配置的静态路径上的节点进行转发,其中,静态路径上的节点为备用机房的节点,通过配置一个/一组默认节点以及相应的一条备用的静态路径,避免消息在普通机房间传递时由于网络原因而导致数据传输延迟和失败的问题,保证了数据的实时到达。
虽然上面已经示出了本发明的一些示例性实施例,但是本领域的技术人员将理解,在不脱离本发明的原理或精神的情况下,可以对这些示例性实施例做出改变,本发明的范围由权利要求及其等同物限定。
Claims (10)
1.一种自治系统内的消息传递方法,其特征在于,包括如下步骤:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;
第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
2.根据权利要求1所述的方法,其特征在于,所述第二机房的第二节点的第二路由表由第二机房的第二节点ping至少一个相邻的第三机房的第三节点所形成,所述第二机房的第二节点还包括:
第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表以形成全网路由表。
3.根据权利要求1所述的方法,其特征在于,所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表的步骤,包括:
第一机房的第一节点ping至少一个相邻的第二机房的第二节点,得到与每一个第二节点之间通信的丢包率及往返时间,并根据丢包率及往返时间确定第一路由表中的每一条路由记录的权值。
4.根据权利要求1所述的方法,其特征在于,所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点的步骤,包括:
所述第一机房的第一节点按照第一时间间隔ping至少一个相邻的第二机房的第二节点;
所述第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表的步骤,包括:
所述第一机房的第一节点按照第二时间间隔获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表。
5.根据权利要求2所述的方法,其特征在于,所述第二节点ping至少一个相邻的第三机房的第三节点的步骤,包括:
所述第二机房的第二节点按照第一时间间隔ping至少一个相邻的第三机房的第三节点;
所述第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表以形成全网路由表的步骤,包括:
所述第二机房的第二节点按照第二时间间隔获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表。
6.根据权利要求1所述的方法,其特征在于,所述第一路由表、第二路由表及全网路由表的路由表字段包括:目标机房的目标节点、到达目标机房的目标节点的整条路径及该路径上的所有节点、以及到达所述目标机房的目标节点的权值。
7.根据权利要求6所述的方法,其特征在于,所述并根据所述第二路由表更新本地的第一路由表以形成全网路由表的步骤,包括:
当第二路由表的路由记录中到达目标节点的路径中包含第一机房的第一节点时,第一节点对第二路由表中的该条路由记录不作处理;
当第二路由表的路由记录中到达目标节点的路径中不包含第一机房的第一节点时,判断第一路由表中是否存在到达该目标机房的目标节点的路由记录:
如果第一路由表中不存在到达该目标机房的目标节点的路由记录,则将第二路由表中的该条路由记录添加到第一路由表中,并更新该条路由记录中到达目标机房的目标节点的整条路径的下一跳地址为第二节点,以及更新该路由记录相应的权值;
如果第一路由表中存在到达该目标机房的目标节点的路由记录,判断第二路由表中到达该目标节点的路由记录的权值与第一路由表中到达该目标节点的路由记录的权值大小:
若第二路由表中到达该目标节点的路由记录的权值比第一路由表中到达该目标节点的路由记录的权值小,则将第一路由表中到达所述目标节点的路径更改为:下一跳为第二节点加上第二路由表中的该条路由记录的路径,同时更新第一路由表中该条路由记录的权值。
8.根据权利要求1所述的方法,其特征在于,所述第一节点将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点,包括:
第一节点判断所述消息数据包的TTL值是否为0;
当所述消息数据包的TTL值为0时,通过预配置的静态路径上的节点转发该消息数据包。
9.一种自治系统内的消息传递装置,其特征在于,包括:
网络探测模块:用于第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
路由表更新模块:用于第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表以形成全网路由表;
消息中转模块:用于第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
10.一种消息传递系统,包括第一机房的第一节点、第二机房的第二节点,其特征在于,所述第一节点、第二节点执行包括所述权利要求1-8任一所述方法的步骤,具体的:
所述第一机房的第一节点ping至少一个相邻的第二机房的第二节点,形成第一路由表;
所述第二机房的第二节点ping至少一个相邻的第三机房的第三节点,形成第二路由表;
所述第一机房的第一节点获取至少一个相邻的第二机房的第二节点所形成的第二路由表,并根据所述第二路由表更新本地的第一路由表;
所述第二机房的第二节点获取至少一个相邻的第三机房的第三节点所形成的第三路由表,并根据所述第三路由表更新本地的第二路由表;
所述第一机房的第一节点与第二机房的第二节点交换各自路由表以形成全网路由表;
所述第一机房的第一节点根据所述全网路由表将需要经过第一节点而到达目标机房的目标节点的消息数据包转发至下一跳机房的下一跳节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710676673.2A CN107483346A (zh) | 2017-08-09 | 2017-08-09 | 自治系统内的消息传递方法、装置及相应的消息传递系统 |
PCT/CN2017/103324 WO2019028979A1 (zh) | 2017-08-09 | 2017-09-26 | 自治系统内的消息传递方法、装置及相应的消息传递系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710676673.2A CN107483346A (zh) | 2017-08-09 | 2017-08-09 | 自治系统内的消息传递方法、装置及相应的消息传递系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107483346A true CN107483346A (zh) | 2017-12-15 |
Family
ID=60599847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710676673.2A Pending CN107483346A (zh) | 2017-08-09 | 2017-08-09 | 自治系统内的消息传递方法、装置及相应的消息传递系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107483346A (zh) |
WO (1) | WO2019028979A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935009A (zh) * | 2020-08-05 | 2020-11-13 | 广州市百果园信息技术有限公司 | 数据包路由方法、装置、设备、系统及存储介质 |
CN114650254A (zh) * | 2021-12-10 | 2022-06-21 | 中国联合网络通信集团有限公司 | 一种确定业务路径的方法、装置以及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286931A (zh) * | 2008-05-27 | 2008-10-15 | 华中科技大学 | 光网络自动发现方法和基于其的光链路建立方法 |
CN101984605A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 路由发现方法及非直连直径系统中的直径节点 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304378A (zh) * | 2008-05-29 | 2008-11-12 | 北京星网锐捷网络技术有限公司 | 提高路由信息协议路由收敛速度的方法、装置和系统 |
CN105407516B (zh) * | 2015-10-23 | 2018-11-13 | 中央军委装备发展部第六十三研究所 | 基于链路质量因子的多跳自组网络抗干扰路由方法 |
-
2017
- 2017-08-09 CN CN201710676673.2A patent/CN107483346A/zh active Pending
- 2017-09-26 WO PCT/CN2017/103324 patent/WO2019028979A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286931A (zh) * | 2008-05-27 | 2008-10-15 | 华中科技大学 | 光网络自动发现方法和基于其的光链路建立方法 |
CN101984605A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 路由发现方法及非直连直径系统中的直径节点 |
Non-Patent Citations (4)
Title |
---|
全国计算机等级考试命题研究组: "《全国计算机等级考试全能教程—四级网络工程师》", 31 January 2013, 北京邮电大学 * |
刘广钟等: "《计算机网络》", 28 February 2003, 中国矿业大学出版社 * |
海涛等: "《计算机网络通信技术》", 30 September 2015, 重庆大学出版社 * |
郑丽英等: "《计算机算法设计与分析》", 30 June 2009, 中国铁道出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935009A (zh) * | 2020-08-05 | 2020-11-13 | 广州市百果园信息技术有限公司 | 数据包路由方法、装置、设备、系统及存储介质 |
CN114650254A (zh) * | 2021-12-10 | 2022-06-21 | 中国联合网络通信集团有限公司 | 一种确定业务路径的方法、装置以及计算机可读存储介质 |
CN114650254B (zh) * | 2021-12-10 | 2023-10-20 | 中国联合网络通信集团有限公司 | 一种确定业务路径的方法、装置以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2019028979A1 (zh) | 2019-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8634308B2 (en) | Path detection in trill networks | |
KR101445470B1 (ko) | L2 이더넷 노드로의 통신 가용 전송 네트워크 대역폭 | |
CN105337857B (zh) | 一种基于软件定义网络的多路径传输方法 | |
EP2690823A1 (en) | Multi-hop reflector sessions | |
CN101640645B (zh) | 报文传输方法和系统 | |
EP3025453B1 (en) | Probe routing in a network | |
EP3627770B1 (en) | Network performance monitoring using an active measurement protocol and relay mechanism | |
US6950424B2 (en) | OSPF autonomous system with a backbone divided into two sub-areas | |
CN111771359A (zh) | 用于连接通信网络的方法和系统 | |
US11463349B2 (en) | Fault diagnosis method and apparatus thereof | |
JP2004159146A (ja) | 通信ネットワーク及びパケット転送装置 | |
EP3025459B1 (en) | Probe routing in a network | |
CN107483346A (zh) | 自治系统内的消息传递方法、装置及相应的消息传递系统 | |
CN101931560B (zh) | 网络设备间的连接关系获取方法及其装置 | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | ISO CLNS Commands | |
Cisco | DECnet Commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |