路由器和系统技术方案

技术编号:25894002 阅读:19 留言:0更新日期:2020-10-09 23:40
本发明专利技术涉及一种路由器和系统。描述了使用在多播分发树的相邻节点之间建立的可靠覆盖连接冗余转发多播分发树的封装多播流量的技术。本公开的实例路由器被配置为经由多播分发树接收多播流的第一多播分组,经由与多播分发树并行实现的面向连接的分发树的传输控制协议(TCP)连接来接收多播流的第二多播分组,并且响应于确定LHR已经经由多播分发树乱序地接收到第一多播分组中的一多播分组,以便为多播流创建一个或多个第一多播分组的间隙,将第二多播分组转发到位于路由器下游的至少一个感兴趣接收方。

【技术实现步骤摘要】
路由器和系统
本公开涉及计算机网络,并且更具体地,涉及在计算机网络内转发网络流量。
技术介绍
路由协议定义了一种过程,通过这种过程,在分组交换网络中被称为路由器的网络装置相互通信,以传播允许路由器在计算机网络的任意两个节点之间选择路由的信息。一种类型的路由协议(称为链路状态协议)允许路由器交换和累积链路状态信息,即描述网络内各种链路的信息。利用典型的链路状态路由协议,路由器交换与可用接口、度量和与网络链路相关的其他变量相关的信息。这允许路由器构建自己的网络拓扑或网络映射。链路状态协议的一些实例包括开放最短路径优先(OSPF)协议和中间系统到中间系统(IS-IS)协议,这些协议是内部网关协议(IGP)。网络上两个装置之间的连接通常称为链路。不同自治系统的装置之间的连接称为外部链路,而同一自治系统内的装置之间的连接称为内部链路。许多传统的计算机网络(包括因特网)被设计成在单个链路出现故障时动态地重新路由数据分组。链路出现故障时,路由器向相邻装置传输新的连接信息,从而允许每个装置更新其本地路由表。链路可能因多种原因而出现故障,例如,装置之间的物理基础设施故障或与链路接合的装置故障。当网络中的链路或路由器出现故障时,使用传统链路状态协议(例如,OSPF和IS-IS)的路由器可能需要很长时间来响应于网络中节点和链路故障导致的拓扑变化而调整其转发表。调整转发表的过程称为收敛。出现这种时间延迟是因为从故障中恢复需要每个节点重新计算最短路径算法,来计算网络中受影响节点的下一跳。在重新计算下一跳之前,向故障链路发送的流量可能会被丢弃。有些部署需要大约500毫秒到几秒的时间来检测网络故障并从中恢复。这些较大的收敛时间可能会对互联网协议语音(VoIP)和多媒体应用程序的性能产生不利影响,这些应用程序对流量损失是极其敏感的。服务提供商要求端到端故障检测和恢复时间不超过50毫秒。使用多播,网络将多播分组分发到一组感兴趣接收方,这些接收器可以位于不同的子网中,并且被配置为多播组的成员。协议无关多播(PIM)是在网络中创建多播分发树以分发分组的协议的一个实例。多播内容的冗余多播源可以配置有公共的任播IP地址,并且每个源输出一个单独的相同多播流。由于冗余,在网络故障或一个冗余多播源故障的情况下,单播路由围绕故障收敛,并且网络建立新的多播分发树来分发多播分组,例如,来自仍然活动的多播源的多播分组。
技术实现思路
通常,描述了使用在多播分发树的相邻节点之间建立的可靠覆盖连接,冗余地将封装的多播流量从多播分发树的第一跳路由器(FHR)转发到最后一跳路由器(LHR)的技术。例如,响应于从下游路由器接收到PIM加入请求,路由器可以创建到下游路由器的传输控制协议(TCP)连接。路由器还可以在多播转发表中创建多播转发条目(或者向现有多播转发条目添加另一下一跳),以使路由器经由TCP连接将为多播分发树接收的多播分组复制到下游路由器。该过程由每个上游路由器沿PIM加入传播路径朝向多播分发树的源重复进行。以这种方式,路由器的PIM网络为多播分发树生成了面向并行连接的分发树。当多播分发树中的路由器接收到下游路由器是多播分发树和面向并行连接的分发树上的下一跳的多播分组时,路由器将多播分组封装在用于TCP连接的TCP报头中,并经由该TCP连接将封装的多播分组发送到下游路由器。(路由器可以首先去除路由器在其上接收多播分组的TCP连接的TCP报头。)路由器可以对多播分组的多播转发条目中指定的每个下游路由器执行该步骤。以这种方式,多播分发树中的每个非最后一跳路由器可以沿多播分发树的路由器可靠地分发分组。多播分发树的最后一跳路由器去除了TCP报头,并且可以将多播分组传送到多播流的所有感兴趣接收方。即,FHR截取多播数据,并且还将截取的多播数据与添加到多播流的原始UDP数据报的额外元数据(例如,包含UDP序列号和(S,G)元组信息)一起放在TCP流上。从这一点开始,本公开的技术在两个并行路径上沿树传输多播数据,即(i)正常的UDP路径(在每个UDP数据报上添加UDP序列号),和(ii)TCP路径(添加元数据,包括UDP序列号和(S,G)元组信息)。这些技术可以包括向每个多播流添加序列号。最后一跳路由器可以生成确认来指示有序接收,或者生成“选择性确认”来指示乱序接收,并且通过相应的多播路径向上游发送这些消息。如果通过多播路径接收到间隙填充的UDP分组,或者通过TCP信道以封装形式接收到间隙填充的UDP分组,则最后一跳路由器可以使用间隙填充的分组(通过这些信道中的任一信道接收的)来填充间隙,或者可以丢弃已经复制以填充间隙的任何冗余分组。在一些基于缓冲的实现中,对于多播流,最后一跳路由器可以存储乱序多播分组,即具有指示序列中的尚未接收到的先前多播分组的序列号的多播分组。响应于经由相应的面向并行连接的分发树接收到序列中的一个或多个丢失的多播分组,最后一跳路由器将最后一跳路由器在多播流序列中缓冲的下一个多播分组复制到多播流的感兴趣接收方。以这种方式,面向并行连接的树可以用于填充多播流序列中的间隙,以便于可靠、有序地向感兴趣接收方传送多播流。这些技术还可以包括路由器向多播分发树的上游路由器发送确认,以指示已经接收到多播分组。当上游路由器已经从多播分发树的下游路由器接收到确认,即已经经由多播分发树接收到多播流的多播分组时,上游路由器可以避免经由多播分发树的面向并行连接的分发树的TCP连接将确认的多播分组的对应多播分组转发到下游路由器。上游路由器可以将确认转发到多播分发树中其相应的上游路由器(如果有的话),以传播确认。上游路由器(非最后一跳路由器)可以将从相应上游TCP信道接收的数据容纳在临时缓冲器中,并将该TCP数据复制到相应下游TCP套接字缓冲器,以连续流的形式向下游转发该TCP数据。在这些实现中,非最后一跳路由器继续通过下游的TCP缓冲器中继数据。如果非最后一跳路由器从最后一跳路由器(直接或间接)接收到确认消息,该确认消息指示在多播路径上的多播分组的有序接收,则非最后一跳路由器可以丢弃直到引起确认的序列号为止的任何TCP分组,而不转发那些特定的TCP分组。在一些基于缓冲的实现中,上游路由器(非最后一跳路由器)可以在临时缓冲器中缓冲经由面向并行连接的树接收的封装多播分组,直到封装的多播分组被复制到面向连接的树上的用于下游复制的TCP套接字缓冲器。如果上游路由器从多播分发树中的所有下游路由器接收到对对应的多播分组的确认,则上游路由器可以丢弃对应的TCP分组。以这种方式,路由器可以避免向已经经由多播分发树接收到多播分组的下游路由器发送多播分组的任何不必要的副本。在一个实例中,本公开描述了一种系统,包括网络的多个非最后一跳路由器(非LHR),非LHR配置有多播分发树,以向一个或多个最后一跳路由器(LHR)传输多播流的第一多播分组。该系统还包括一个或多个LHR,所述LHR被配置为将多播流的第一多播分组分发到一个或多个感兴趣接收方。非LHR和LHR配置有针对多播分发树的并行的面向连接的分发树,所述面向连接的分发树用于可靠地并且按顺序向LHR复制多播流的第本文档来自技高网
...

【技术保护点】
1.一种系统,包括:/n网络的多个非最后一跳路由器(非LHR),所述非LHR配置有多播分发树,以向一个或多个最后一跳路由器(LHR)传输多播流的第一多播分组;/n一个或多个LHR,所述LHR被配置为将所述多播流的所述第一多播分组分发到一个或多个感兴趣接收方,/n其中,所述非LHR和所述LHR配置有针对多播分发树的并行的面向连接的分发树,所述面向连接的分发树用于可靠地且按顺序向所述LHR复制所述多播流的第二多播分组,其中,所述面向连接的分发树包括一个或多个传输控制协议(TCP)连接,并且其中,所述第二多播分组中的每个分组是所述第一多播分组中的对应分组的副本,/n其中,所述LHR中的一LHR响应于确定所述LHR已经经由所述多播分发树乱序地接收到所述第一多播分组中的一多播分组而创建针对所述多播流的一个或多个所述第一多播分组的间隙,向至少一个所述感兴趣接收方转发作为所述第一多播分组中的一个或多个分组的所述间隙的副本并且由所述LHR经由所述面向连接的分发树接收到的所述第二多播分组中的分组。/n

【技术特征摘要】
20190328 US 16/367,7271.一种系统,包括:
网络的多个非最后一跳路由器(非LHR),所述非LHR配置有多播分发树,以向一个或多个最后一跳路由器(LHR)传输多播流的第一多播分组;
一个或多个LHR,所述LHR被配置为将所述多播流的所述第一多播分组分发到一个或多个感兴趣接收方,
其中,所述非LHR和所述LHR配置有针对多播分发树的并行的面向连接的分发树,所述面向连接的分发树用于可靠地且按顺序向所述LHR复制所述多播流的第二多播分组,其中,所述面向连接的分发树包括一个或多个传输控制协议(TCP)连接,并且其中,所述第二多播分组中的每个分组是所述第一多播分组中的对应分组的副本,
其中,所述LHR中的一LHR响应于确定所述LHR已经经由所述多播分发树乱序地接收到所述第一多播分组中的一多播分组而创建针对所述多播流的一个或多个所述第一多播分组的间隙,向至少一个所述感兴趣接收方转发作为所述第一多播分组中的一个或多个分组的所述间隙的副本并且由所述LHR经由所述面向连接的分发树接收到的所述第二多播分组中的分组。


2.根据权利要求1所述的系统,其中,所述非LHR的第一跳路由器(FHR)被配置为向所述第一多播分组和所述第二多播分组中的每个分组添加相应的序列号。


3.根据权利要求2所述的系统,其中,为了将相应的序列号添加到所述第一多播分组和所述第二多播分组中的每个分组,所述FHR被配置为在所述第一多播分组和所述第二多播分组中的每个分组的相应的报头和相应的有效载荷之间插入所述相应的序列号。


4.根据权利要求2所述的系统,其中,为了确定所述LHR已经乱序地接收到所述第一多播分组中的所述多播分组而创建所述间隙,所述LHR被配置为确定所述第一多播分组中的最后接收分组的相应序列号大于所述第一多播分组中的一个或多个未接收分组的相应序列号。


5.根据权利要求1-4中任一项所述的系统,其中,所述非LHR被配置为在所述非LHR的一个或多个本地缓冲器中缓冲所述第二多播分组。


6.根据权利要求5所述的系统,
其中,所述LHR被配置为响应于确定所述LHR已经乱序地接收到所述第一多播分组中的所述多播分组而创建所述间隙,向所述非LHR中的一非LHR发送选择性确认(SACK)消息,并且
其中,所述非LHR被配置为通过所述面向连接的分发树的相应的TCP连接将分组中的作为所述间隙的副本的相应分组重传到所述LHR。


7.根据权利要求6所述的系统,
其中,所述LHR被配置为响应于确定所述LHR已经接收到重传的分组而关闭所述间隙,向所述非LHR发送确认(ACK)消息,并且
其中,所述非LHR被配置为响应于从所述LHR接收到所述确认消息,而清除所存储的第二多播分组的一个或多个所述本地缓冲器。


8.根据权利要求1-4中任一项所述的系统,其中,所述非LHR中的每个非LHR被配置为在每个非LHR的相应内核中生成可靠的多播转发条目,所述多播转发条目包括作为所述第一多播分组中的相应分组的副本的所述第二多播分组。


9.根据权利要求1-4中任一项所述的系统,
其中,所述LHR被配置为向所述非LHR中的上游非LHR发送协议无关多播(PIM)加入消息,所述PIM加入消息指定所述多播流的组标识符,以及
其中,所述上游非LHR被配置为响应于从所述LHR接收到所述PIM加入消息,而生成将所述LHR标识为所述多播分发树和所述面向连接的分发树两者的下一跳路由器的多播转发条目。


10.根据权利要求1-4中任一项所述的系统,其中,所述非LHR包括多个中间跳路由器(MHR),所述中间跳路由器被配置为:
经由所述面向连接的分发树的相应的TCP连接,接收封装形式的所述第二多播分组中的每个分组;
通过去除第一TCP报头来解封装所述第二多播分组中的每个接收到的分组;
将每个...

【专利技术属性】
技术研发人员:萨米尔·塞思阿南达·库马·M·R
申请(专利权)人:瞻博网络公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1