CN114448859B - 支持用于边界网关协议的多传输选项 - Google Patents
支持用于边界网关协议的多传输选项 Download PDFInfo
- Publication number
- CN114448859B CN114448859B CN202111209875.9A CN202111209875A CN114448859B CN 114448859 B CN114448859 B CN 114448859B CN 202111209875 A CN202111209875 A CN 202111209875A CN 114448859 B CN114448859 B CN 114448859B
- Authority
- CN
- China
- Prior art keywords
- router
- transport layer
- bgp
- message
- protocol
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 15
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 241000220479 Acacia Species 0.000 description 1
- 235000010643 Leucaena leucocephala Nutrition 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000001668 ameliorated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011867 re-evaluation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
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
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- 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/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
第一路由器发送包括标识由第一路由器所支持的传输层协议的第一集合的信息的第一消息。第一路由器接收包括标识由第二路由器所支持的传输层协议的第二集合的信息的第二消息。公共传输层协议是从对于传输层协议的第一集合和传输层协议的第二集合是公共的传输层协议的子集中被选择的。第一路由器随后通过公共传输层协议建立与第二路由器的边界网关协议(BGP)会话。第一消息被单播到第二路由器或通过多条链路被广播/多播到包括第二路由器的多个路由器。在一些情况下,公共传输层协议由具有较高优先级的路由器基于偏好或其组合而被选择。
Description
技术领域
本公开总体上涉及通信,并且具体地涉及支持用于边界网关协议的多传输选项。
背景技术
边界网关协议(BGP)是用于例如在自主系统(AS)之间通过网络来交换路由信息的控制平面协议。一对BGP路由器之间的BGP对等操作被称为BGP会话,并且对等的BGP路由器可以直接被连接或通过网络中的多跳而被连接。相同AS中的两个路由器之间的BGP会话被称为内部BGP(i-BGP),并且不同AS中的路由器之间的BGP会话被称为外部BGP(e-BGP),其被用作外部网关协议以在不同AS之中交换路由信息。BGP会话在传输控制协议(TCP)上作为应用运行,其在BGP会话中提供无损的、可靠的和有序的BGP消息的传递。对等BGP路由器以预确定的时间间隔交换保持活动消息,以维持会话的活跃度。许多不同类型的信息使用BGP会话而被传输。例如,BGP会话可以交换三十个或更多不同类型的网络层可达性信息(NLRI),包括被用于建立层3通信、层2虚拟专用网络(VPN)、通过标签交换路径(LSP)的多协议标签交换(MPLS)等的NLRI类型。通过BGP会话传送的不同NLRI的分组的分布和特性不一定是统一的,例如,NLRI针对不同的应用服务不同的目的,并且在收敛时间内需要不同的优先级级别。
发明内容
根据本公开的第一方面,提供了一种方法,包括:从对于传输层协议的第一集合的和传输层协议的第二集合是公共的传输层协议的子集中,选择公共传输层协议,传输层协议的第一集合和传输层协议的第二集合分别由第一路由器和第二路由器支持;以及在第一路由器处,通过公共传输层协议建立与第二路由器的边界网关协议BGP会话。
根据本公开的第二方面,提供了一种第一路由器,包括:收发器,收发器被配置为发送第一消息,第一消息包括标识由第一路由器支持的传输层协议的第一集合的信息,并且接收第二消息,第二消息包括标识由第二路由器支持的传输层协议的第二集合的信息,其中公共传输层协议从对于传输层协议的第一集合和传输层协议的第二集合是公共的传输层协议的子集中被选择;以及处理器,处理器被配置为通过公共传输层协议建立与所述第二路由器的边界网关协议(BGP)会话。
根据本公开的第三方面,提供了一种装置,包括至少一个处理器;以及至少一个存储器,包括计算机程序代码;至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使装置至少执行第一方面的方法
附图说明
通过参考附图,可以更好地理解本公开,并且对于本领域技术人员来说其众多特征和优点是明显的。在不同的附图中使用相同的附图标记来指示类似或相同的项。
图1是根据一些实施例的支持用于边界网关协议(BGP)会话的多个传输层协议的网络的框图。
图2是根据一些实施例的支持通过QUIC连接的来自的多个层的多个协议的隧道传输的数据的通信系统的框图。
图3是图示了根据一些实施例的包括传输层安全(TLS)协议栈的协议栈的框图。
图4是根据一些实施例的边界网关协议(BGP)用户数据报协议(UDP)消息的消息报头。
图5是根据一些实施例的BGP Hello消息。
图6是根据一些实施例的标志字段。
图7是根据一些实施例的通用类型-长度-值(TLV)格式。
图8是根据一些实施例的用以传达所支持的传输层集的传输选项TLV。
图9是根据一些实施例的通用传输单元。
图10是根据一些实施例的传输选项TLV的备选编码。
图11是根据一些实施例的在BGP Hello消息中发送传输选项TLV的方法的流程图。
图12是根据一些实施例的处理被包括在从对等BGP路由器接收到的BGP Hello消息中的传输选项TLV的方法的第一部分的流程图。
图13是根据一些实施例的处理被包括在从对等BGP路由器接收到的BGP Hello消息中的传输选项TLV的方法的第二部分的流程图。
图14是根据一些实施例的支持BGP会话的多个传输层协议的网络功能虚拟化(NFV)架构的框图。
具体实施方式
线路端部(HOL)阻塞是常规BGP部署中的显著问题。例如,在发送针对传输一种NLRI类型的TCP分组中的延迟或拥塞会影响通过BGP会话传达的全部其他NLRI类型的TCP分组,因为BGP会话使用单个TCP连接。此外,单个TCP连接允许低优先级NLRI分组以阻塞更高优先级的NLRI分组,这导致了HOL阻塞。该问题可以通过针对每个NLRI类型通过不同的TCP连接建立不同的BGP会话来改善。然而,由于形成了大量BGP会话和相应的TCP连接,该方法不可扩展。例如,如果路由器支持12种NLRI类型并且具有与50个对等方的BGP会话,则针对每种NLRI类型提供分离的BGP会话和TCP连接将需要600个BGP会话和600个TCP连接。
若干个协议比TCP更有效。例如,使用QUIC协议(注意QUIC不是首字母缩写词)或流控制传输协议(SCTP)通过两个端点之间的单个连接以建立复用的子连接(本文中也称为流)集来提高面向连接应用的性能。通过单个连接支持多个流允许由不同流传达的数据独立地到达连接的端点,并且因此独立于分组丢失或涉及其他流的延迟。QUIC和SCTP协议不需要排序流中分组之间的依赖性,并且这些协议对不同的流独立地执行误差校正和丢失恢复。因此,TCP中经历的HOL阻塞延迟不出现在不同的流之间,因为在一个流中丢失或延迟的分组不影响在连接的其他流中传达的分组。拥塞和流程控制独立地应用于QUIC或SCTP连接中的流。QUIC或SCTP连接的端点可以在任何时间在连接中发起流,而无需任何握手来开始流。流可以是双向的或单向的。除基于在每个流的基础上的可靠递送和拥塞控制之外,QUIC集成了安全协议。最初的QUIC握手过程包括交换安全密钥和所支持的安全协议,从而加速连接建立过程。
尽管除TCP之外的传输层协议(诸如QUIC和SCTP)的潜在的好处,但是常规的BGP会话不能使用除TCP之外的协议来实现,并且不支持协议协商以从协议集之中选择偏好的协议选项。这些约束还阻止常规BGP会话通过安全协议(诸如传输层安全(TLS)加密协议)传输。常规BGP的上述缺点影响了许多网络场景,包括用于基于云计算的服务提供商网络和数据中心。
许多数据中心利用BGP作为底层路由协议,支持在互连路由器集之间灵活的基于策略的路由,该路由器从客户端接收信息,将信息分发到适当的服务器,从服务器收集信息,并且将所收集到的信息转发返回给客户端。例如,路由器可以部署在Clos拓扑中,该拓扑创建互连的叶子路由器(leaf router)和主干路由器(spine router)的叶子和主干系统。BGP优于其他链路状态路由协议,诸如开放最短路径优先(OSPF、OSPFv3)和中间系统到中间系统(IS-IS),因为这些链路状态协议强制源与目的地之间的全部业务遵循同一路径。叶子路由器被分配不同的自主系统号(ASN),并且单个ASN被分配到主干中的全部主干路由器。BGP会话在与每个ASN相关联的实体之间形成。为了形成BGP会话,BGP路由器执行相邻发现,以针对BGP路由器的全部链路上的每个BGP相邻确定相邻互联网协议(IP)地址和AS,以及生成和分发诸如路由器的AS、相邻路由器/主干的活跃度、诸如地址的链路属性、最大传输单元(MTU)等的信息。BGP路由器通过在其全部链路上多播“Hello”消息来发起相邻发现。Hello消息包括路由器的ASN和BGP标识符、Hello消息的保持时间,以及在一些情况下,一个或多个类型长度值(TLV)来表示其他参数。相邻的BGP路由器建立TCP连接,以响应于BGP路由器中的一个路由器从另一BGP路由器接收到Hello消息并且在BGP路由器之间建立邻接。随后在TCP连接的顶部建立BGP会话。
服务提供方网络通常在由多跳分离的路由器之间建立BGP会话。多跳BGP相邻发现是由执行目标相邻发现的路由器使用单播的目标相邻发现消息来执行的。例如,第一路由器从距离第一路由器多跳的第二路由器接收单播的目标相邻发现消息。目标相邻发现消息包括由第一路由器和传输层参数监测的IP地址,以及第二路由器的ASN和BGP标识符。传输层参数的示例包括针对第一路由器和第二路由器之间的传输层连接的IP地址。
第一路由器评估传输层参数,并且如果这些参数是可接受的,则与第二路由器形成目标邻接。如本文所使用的,术语“可接受的”是指参数由第一路由器和第二路由器的操作共享或兼容。例如,第二路由器可以发送指示参数(诸如超时间隔)的信息,并且如果所提出的参数与第一路由器中所实施的参数相同,或者可以用于配置第一路由器的操作,则第一路由器确定所提出的参数是可接受的。响应于目标邻接的形成,传输层连接基于所协商的传输层参数被建立。
图1至图14公开了用于通过在相邻发现期间交换消息来从传输层协议的候选集中选择传输层协议以支持边界网关协议(BGP)会话的技术,该消息包括标识可用作BGP会话中涉及的路由器的候选传输层协议的传输层协议集的信息。在一些实施例中,第一路由器发送第一相邻发现消息(有时称为Hello消息),该消息包括标识由第一路由器支持的传输层协议的第一集合的信息。该消息通过第一路由器与网络中的其他路由器(包括第二路由器)之间的全部链路上广播或多播,或者该消息使用目标Hello消息经由单个链路/跳或多个链路/跳单播到第二路由器。第一路由器从第二路由器接收第二相邻发现消息。第二相邻发现消息包括标识由第二路由器支持的传输层协议的第二集合的信息。传输层协议是从传输层协议的第一集合和传输层协议的第二集合公共的传输层协议的子集中选择的。在一些实施例中,传输层协议的第一集合和传输层协议的第二集合相应地基于第一路由器和第二路由器的偏好而被排序,并且针对BGP会话选择公共传输层协议子集中具有最高偏好的传输层协议。在一些实施例中,第一路由器和第二路由器相应地基于第一和第二标识符而被优先化,并且最高优先级路由器选择传输层协议。例如,如果第一路由器具有比第二路由器更高的BGP标识符,则第一路由器针对第一路由器选择具有最高优先级的传输层协议以支持BGP会话。作为针对BGP会话的底层协议操作的传输层协议的示例包括但不限于传输控制协议(TCP)、QUIC、流控制传输协议(SCTP)和传输层安全(TLS)协议。
响应于成功协商传输层协议,路由器通过所协商的传输层协议建立BGP会话。BGP会话的配基于所协商的传输层协议的参数而被执行。例如,如果所协商的传输层协议是支持多个流的QUIC协议或SCTP协议,则路由器映射不同的NLRI类型、特征集或其他特性以在QUIC或SCTP连接中分离流。与不同NLRI类型或特征集相关联的传输层分组基于映射通过不同的流而被传达。流独立地将分组丢失/恢复技术和拥塞控制应用于分组。不同NLRI类型或特征集之间的HOL阻塞因此被消除。此外,安全协议可以基于由QUIC连接的流传达的NLRI类型或特征集的要求有选择地应用于流。
在一些实施例中,BGP被用作外部网关协议来交换AS之间的路由信息。在其他实施例中,BGP被用作大规模数据中心中的控制平面协议以支持网络虚拟化覆盖,例如虚拟可扩展LAN(VXLAN)、使用通用路由封装(NVGRE)的网络虚拟化和基于MPLS用户数据报协议(MPLSoUDP)的覆盖。BGP还可以被用作底层路由协议,而不是某些大规模数据中心中的如IS-IS和OSPF的链路状态路由协议。常规的链路状态协议使用最短路径优先(SPF)算法计算路径。因此,源与目的地之间的全部业务遵循相同的SPF路径,这不提供数据中心内所需的路由灵活性。在数据中心中,由于不断向网络中添加服务器和其他系统,网络拓扑结构频繁地增长(水平扩展)。BGP支持基于策略的路由,以便业务可以基于与不同类型业务相关联的策略沿不同路径而被路由。BGP的该方面是针对其被部署为数据中心中的底层路由协议的一个原因。BGP的一些实施例还支持链路状态和SPF能力,如IS-IS和OSPF。
图1是根据一些实施例的支持用于边界网关协议(BGP)会话的多个传输层协议的网络100的框图。网络100包括路由器集101、102、103、104、105、106、107、108、109,它们在本文中统称为“路由器101-109”。路由器101-109基于BGP建立针对通信的会话,BGP是广泛使用的控制平面协议以交换路由信息,尤其是在自主系统(AS)之间。BGP的一些实施例被扩展以支持网络层可达性信息(NLRI)的交换,网络层可达性信息被用于建立不同类型的层3、层2虚拟专用网络(VPN)、通过标签交换路径(LSP)的多协议标签交换(MPLS)等。BGP的扩展版本被称为多协议BGP(MP-BGP),
路由器101至109使用经由BGP交换的信息在一对BGP路由器之间建立BGP对等。BGP对等也被称为BGP会话。对等BGP路由器可以直接地连接,或者可以相距多跳。在所示实施例中,路由器101与路由器102之间的BGP会话110是单跳会话,因为路由器101、路由器102通过链路直接连接。路由器102与路由器108之间的BGP会话115是多跳会话,因为BGP会话115遍历多个路由器,例如路由器104、路由器106。
BGP会话110、115作为应用运行在在BGP会话110、115的设置期间所协商的传输层协议上。可以在BGP会话110、115的设置期间被协商的传输层协议的示例包括但不限于QUIC协议、流控制传输协议(SCTP)、传输控制协议(TCP)、传输层安全(TLS)等。
为了协商针对BGP会话110的传输层协议,路由器101发送包括标识由路由器101支持的传输层协议的第一集合的信息的第一消息。第一消息可以单播到路由器102或广播/多播到包括路由器102的路由器集。响应于接收到第一消息,路由器102生成包括标识由路由器102支持的传输层协议的第二集合的信息的第二消息。第二消息被发送到路由器101。公共传输层协议是从传输层协议的第一集合和传输层协议的第二集合公共的传输层协议的子集中选择的。在一些实施例中,发起路由器101选择公共传输层协议,并且在其他实施例中,接收路由器102(例如,基于与如本文所讨论的路由器101、路由器102相关联的优先级或偏好)选择公共传输层协议。随后路由器101通过公共传输层协议与第二路由器建立BGP会话110。为了协商针对BGP会话115的传输层协议,路由器101可以向路由器108发送标识传输层协议的第一集合的目标消息。由BGP会话115使用的传输层协议随后从传输层协议的子集中选择,该子集对于由路由器108支持的传输层协议的第一集合和传输层协议的第三集合是公共的。
在BGP会话被建立后,对等路由器通过BGP会话交换可达性信息(作为消息)。在一些实施例中,BGP路由器每60秒周期性地发送19字节的保持活动消息以维持会话。相同的自主系统(AS)中两个路由器之间的BGP会话的称为内部BGP或内部边界网关协议(i-BGP)。不同AS中的路由器之间的BGP会话被称为外部BGP或外部边界网关协议(e-BGP)。
图2是根据一些实施例的支持通过QUIC连接在多个层对来自多个协议的数据进行隧道传输的通信系统200的框图。通信系统200包括经由网络215通信的客户端205和服务器210。客户端205和服务器210已经建立了包括流221、222、223的QUIC连接220,流221、222、223在本文中统称为“流221至223。”注意,与QUIC连接220相关联的附图标记指代网络215两侧上的QUIC连接220的部分。尽管在图2中示出了三个流221至223,但是在图1中示出了三个流221-223。如图2所示,QUIC连接220可以包括任何数目的流,并且流可以由或客户端205或服务器210在QUIC连接220的寿命期间的任何时间建立。
流标识符由客户端205和服务器210分配给流。在一些实施例中,客户端205和服务器210观察流标识符奇偶性。例如,客户端205使用偶数作为流标识符并且服务器210使用奇数作为流标识符。流标识符的奇偶性允许QUIC在客户端205或服务器210产生新的流,而无需经历每一方之间的协商来决定流标识符。QUIC流支持单向和双向流,并且流221至223的方向性通过将流标识符中的第二至最低有效比特设置为指示方向性的值来确定。例如,(0)的比特值指示单向流,并且(1)的比特值指示双向流。比特预留允许流221至223在连接220的寿命期间的任何时间被开始而无需协商。客户端205和服务器210被限于流标识符的非重叠范围,从而避免流标识符协商以避免冲突。
流221至223中的信息在每分组单个流的基础上(数据报模式)或通过将来自多个流221至223的字节聚合成分组而被发送。如果通过QUIC连接220发送的QUIC分组被丢弃,则该分组中的每个流都被阻塞。例如,如果通过QUIC连接220发送的分组包括来自流221和流222的字节,则如果分组被丢弃,则流221和流222两者都被阻塞。客户端205和服务器210中的QUIC实现确定每个分组发送的流的数目以限制阻塞的发生。QUIC实现利用发生丢弃分组时多个流被阻塞的可能性权衡了在单个分组中针对多个流发送数据的灵活性。一旦流的端点已经完成发送数据,端点在其最后的流帧或最后的流帧之后的帧上设置FIN比特,以指示该流在端点方向上是关闭的,导致半关闭流。一旦两个端点都发送了具有FIN比特设置的流帧,流被完全关闭。
在一些实施例中,QUIC连接220的流221至223中的一个或多个流被用于支持BGP会话230。为了建立BGP会话230,客户端205和服务器210协商支持客户端205与服务器210之间的QUIC连接220的QUIC协议的版本。客户端生成加密握手(例如,根据TLS)并且在加密握手中嵌入扩展。该扩展包括指示由客户端205在层集所支持的协议集的结构。如本文所讨论的,客户端205和服务器210协商BGP会话230的参数,并且随后基于协商的参数建立BGP会话230。
图3是图示了根据一些实施例的包括TLS协议栈305的协议栈300的框图。在所示实施例中,TLS协议栈305在包括多个协议层的开放系统互连(OSI)模型310的上下文中实现。应用层315最接近终端用户并且可以直接与软件应用或程序交互。应用层执行包括标识通信伙伴、确定资源可用性和同步通信的功能。表示层316在应用层实体之间建立上下文,并且在一些情况下提供由不同实体使用的句法和语义之间的映射。会话层317建立、管理和终止本地和远程应用之间的连接。在所示实施例中,TLS协议栈305被实现为会话层317的一部分。传输层318在维持服务质量(QoS)、可靠性和空中控制的同时提供功能以支持从源到目的地主机的可变长度数据序列的传递。网络层319提供在连接到不同网络的节点之间传递可变长度数据序列的功能。数据链路层320支持在直接连接的节点之间的节点到节点数据传递。数据链路层320的一些实施例被细分为媒体访问控制(MAC)层和逻辑链路控制(LLC)层。物理层321负责在设备和物理传输介质之间传输和接收非结构化原始数据,例如,通过将数字比特转换成电、无线电或光信号。
TLS是设计用于通过计算机网络提供通信安全性的加密协议。TLS在诸如Web浏览、电子邮件、即时消息、IP语音(VoIP)等应用中得到广泛使用。网站可以使用TLS来保护其服务器与Web浏览器之间的通信。TLS落入计算机网络的七层OSI模型中的会话层。然而,在一些实施例中,TLS被认为是针对BGP会话的传输层协议。TLS在可靠的传输层协议(诸如TCP)上操作,并且还适用于在数据报协议(诸如UDP)上运行。数据报传输层安全(DTLS)协议基于TLS协议,并在保留数据报递送模型的同时提供类似的安全保证。
TLS协议被设计为向在TLS协议上运行的应用提供三个服务:加密、认证和数据完整性。
·加密:模糊从一个计算机发送到另一计算机的内容的机制。
·认证:验证所提供身份资料有效性的机制。
·完整性:检测消息篡改和伪造的机制。
TLS协议栈305包括协议栈325,协议栈325包括应用层326、报警层327、用于改变密码规范的层328和握手层329。TLS协议栈305还包括记录330,记录330包括指示分段331、压缩332、完整性333、认证334和加密335的信息或参数。记录330中的参数的值被用于根据TLS协议创建针对传输的消息。
如本文所讨论的,BGP相邻发现技术被利用以支持用于BGP会话的多个传输协议选项。在一些实施例中,BGP路由器使用基于UDP的Hello消息直接发现由链路或跳所连接的BGP相邻,该消息在连接到BGP路由器的每条链路上广播/多播。在消息中,UDP目的端口被编码为“179”,并且消息的IP报头中的目的地址编码被为“该子网上全部路由器”组多播地址(例如,在IPv4情况下使用目的地址224.0.0.2并且在IPv6情况下使用FF02::2)。IP源地址设置为发送出消息的接口地址。在一些实施例中,BGP路由器使用目标BGP Hello消息发现相距多跳的BGP相邻。BGP路由器在本地IP地址上侦听来自多个路由跳之外的潜在相邻的Hello消息。对于每个潜在的多跳相邻,BGP路由器被配置为向相邻中的IP地址单播周期性的Hello消息,该相邻正在侦听Hello消息。这些Hello消息称为“目标Hellos”。目标Hello消息承载针对多跳BGP会话的协商的各种参数。
BGP Hello消息包括以下:
·发送方路由器的ASN和BGP标识符。
·保持时间指定接收BGP路由器维持其来自发送BGP路由器的Hello记录而不接收另一Hello的时间。
·(可选)TLV(类型-长度-值格式)描述各种其他参数,诸如TCP连接特定参数等。
在从相邻接收到Hello消息后,BGP路由器协商该消息中包括的参数。如果参数可接受,则与相邻形成目标邻接。在形成目标邻接后,BGP连接通过协商的传输层协议(诸如TCP、QUIC、TLS或TCP)被建立。因此,无论相邻是直接连接还是相距多跳,相邻发现都可以被执行。为了支持传输层协议协商,从BGP路由器发送的Hello消息包括称为“传输选项”的附加参数。传输选项参数包括按其偏好排序的可靠传输协议列表。可以包含在Hello消息中的传输选项参数的示例是{quic,sctp,tls,tcp},这指示QUIC是第一偏好,SCTP是第二偏好,TLS是第三偏好并且TCP是第四/最后的偏好。
当第一BGP路由器从第二BGP路由器接收到包括传输选项字段的Hello消息时,基于相对于具有较低BGP标识符的BGP路由器的传输偏好的最高公共偏好来选择传输协议。例如,如果第一BGP路由器与第二BGP路由器相比具有较低的BGP标识符,并且第一BGP路由器在其Hello中发送传输选项{quic,sctp,tls,tcp}。响应于发送Hello消息,第一BGP路由器从第二BGP路由器接收包括传输选项字段{sctp,quic,tls,tcp}的Hello消息。在这种情况下,全部列出的协议在第一BGP路由器和第二BGP路由器之间是公共的。由于第一BGP路由器具有较低的BGP标识符,因此关于其隧道首选项的公共偏好集是:{quic,sctp,tls,tcp}。因此,两个BGP路由器都选择最高偏好协议(QUIC)作为针对BGP会话的传输协议。对于另一示例,假设第一BGP路由器在其Hello消息中发送传输选项{quic,sctp,tls,tcp}并且在来自第二BGP路由器的Hello消息中接收{sctp,tcp}。第一BGP路由器具有较低的BGP标识符,因此关于其传输选项的公共偏好的集合是{sctp,tcp}。在这种情况下,SCTP由两个BGP路由器选择用于建立BGP会话。
响应于成功协商传输层协议,通过所协商的传输层协议在BGP路由器之间建立连接。传输协议指示BGP作为用户应用。如果传输协议支持多流(例如QUIC或SCTP),则每个BGP路由器独立地将NLRI类型或功能集映射到连接中的独立流(在这种情况下,流是单向的)。这消除了NLRI类型或竞争特征之间的HOL。本文所公开的技术的一些实施例与先前的BGP实现向后兼容。在一对对等BGP路由器中,如果第一BGP路由器已经实现了传输层协议的协商,并且在从第一BGP路由器发送的Hello消息中包含了传输选项,但是第二BGP路由器在从第二BGP路由器发送的Hello消息中没有包含传输选项,则传输协议协商机制回退到使用TCP作为传输协议。
图4是根据一些实施例的BGP用户数据报协议(UDP)消息的消息报头400。BGP相邻发现机制使用具有目的地端口“179”的UDP消息进行操作,并且使用消息报头400中所示的格式。消息报头400中的字段是:
·版本:该1-八位字节的无符号整数指示消息的协议版本号。当前BGP版本号是4。
·类型:BGP消息的类型。Hello消息被指派为类型1。
·消息长度:该2-八位字节的无符号整数指定了包括报头400的整个BGP UDP消息的八位字节长度。
·AS号:UDP消息发送方的AS号。
·BGP标识符:UDP消息发送方的BGP标识符。
BGP UDP消息可以取决于地址而使用IPv4或IPv6被发送。
图5是根据一些实施例的BGP Hello消息500。BGP Hello消息500的第一12-八位字节是图4中所示的公共报头400。BGP Hello消息500中的其余字段是:
·邻接保持时间:以秒为单位的Hello邻接保持时间。邻接保持时间指定接收BGP相邻路由器应当为其保持邻接状态的时间,而不接收另一Hello。值为0意味着接收BGP对等体应当立即标记与发送方的邻接正在下降。
·标志:当前定义的比特如图6所示,其他位应当由发送方清除并且由接收方忽略。
·预留:该字段应由发送方设置为0,并且由接收方忽略。
·TLVs:该字段包含一个或多个TLV(类型-长度-值)。
图6是根据一些实施例的标志字段600。标志字段600被用在图5所示的BGP hello消息500的一些实施例中。在所示实施例中,标志字段600包括指示SET时这是的状态改变Hello消息以及在CLEAR时是正常周期性Hello消息的S比特。基于S标志的设置,Hello消息存在两个变型:
1)状态改变Hello消息:这些Hello消息包括TLV,这些TLV向链路上的其他路由器传递本地接口和邻接的状态和参数。它们仅在响应邻接状态或接口级别的一些参数改变时生成。
2)周期性Hello消息:这些是正常的周期性Hello消息,不包括TLV,并且被用于在稳态条件期间维持链路上的邻接。
图7是根据一些实施例的通用类型-长度-值(TLV)格式700。TLV格式700被用在图5所示的BGP hello消息500的一些实施例中。
TLV格式700中的字段是:
·类型——指示TLV的类型的16-八位字节的字段。
·长度——指示以八位字节为单位值字段的长度的16-八位字节的字段。
·值:取决于可变大小的类型的值字段。Hello消息承载以下6个TLV中的一个或多个TLV。
所接受的ANS列表TLV
可选的TLV被用于发送AS号的无序列表的信号,BGP路由器将从中接受BGP会话。如果未发出信号,则指示路由器将接受来自其相邻的任何ASN的BGP对等。指示ASN列表,帮助避免相邻发现过程陷入单向状态,其中一方保持尝试建立邻接,而其他方由于ASN不正确而不接受。
对等地址TLV
对等地址TLV被用于向相邻指示被用于建立BGP TCP会话的地址。连同对等地址一起,路由器可以指定其支持的路由类型(AFI/SAFI(s))。当AFI/SAFI值被指定为0/0时,则它指示相邻可以尝试针对任何AFI/SAFI的协商。该TLV的多个实例可以被包含在Hello消息中,每个对等地址对应一个(例如IPv4和IPv6或针对不同AFI/SAFI会话的多个IPv4地址)。
本地前缀TLV
在特定情况下,BGP相邻发现机制需要BGP路由器在其本地路由表中针对属于其相邻路由器的前缀编程路由。当在相邻路由器上的环回地址之间建立BGP TCP对等时是这种情况。这要求路由器在TCP会话提出之前可以到达彼此的环回地址。本地前缀TLV是可选的TLV,它使BGP路由器能够明确地将其本地前缀发送至其相邻用于建立这样的本地路由条目,该条目指向正在发送信号的底层链路。
链接属性TLV
链路属性TLV是状态改变Hello消息中的强制性TLV,该消息向相邻发送本地路由器上的接口的链路属性的信号。该TLV的一个且仅一个实例必须包含在状态改变Hello消息中。没有包含该TLV的状态改变Hello消息必须被丢弃,并且针对相同错误记录。该TLV使BGP路由器能够了解其在特定链路上的全部相邻的IP地址及其链路标识符。
相邻TLV
由BGP路由器所使用的相邻TLV来指示其在特定链路上与其(多个)相邻路由器的Hello邻接状态。相邻由其AS号和BGP标识符标识。路由器必须包括它在该链路上所发现的每个相邻的相邻TLV,而不管其状态如何。
加密认证TLV
加密认证TLV是可选的TLV,其通过防止欺骗攻击被用作针对BGP Hello消息的认证机制的一部分。
图8是根据一些实施例的被用于传达所支持的传输层协议集的传输选项TLV 800。传输选项TLV 800被用于图5中所示的BGP hello消息500和图7所示的TLV格式700的一些实施例中。TLV中的字段如下:
·类型:该字段被设置为针对传输选项TLV指派的类型值。在一些实施例中,值0x8被指派至类型字段。其他实施例分配其他可用值。如果发明是标准化的,则该值被预留在IANA中。
·长度:该字段编码传输元素1至n的总长度。
·传输元素1至传输元素n:按偏好排序的传输协议列表。可以存在几种类型的传输元素,每种类型携带关于特定传输协议类型的信息。传输元素的编码取决于类型。传输元素被编码为指定元素类型的1-八位字节字段,以及依赖于类型的元素值的可变长度字段。
图9是根据一些实施例的通用传输元件900。通用传输元件900在图8所示的传输选项TLV 800的一些实施例中被使用。通用传输元素900被编码为:
传输元素 类型 值
类型名称 通用 0x01
该值部分具有1-八位字节的协议类型字段。该字段指示特定的传输协议类型。在通用传输元件900的一些实施例中使用以下类型:
1=TCP,2=SCTP,3=QUIC,4=TLS.
一些传输协议类型可以被指派4-255范围内的值。注意,被用于建立通用传输元素900中所编码的协议类型的传输连接的IP地址的选择遵循常规的BGP相邻发现,如下所示:
·如果对等地址TLV存在,则在打开BGP会话的TCP连接时对要被用于发送BGP路由器的(多个)地址进行编码。如果该可选TLV不存在,则BGP Hello消息的IP报头中的源地址应当被使用。
·与上述相同的规则适用于通用传输元素900。如果存在对等地址TLV,则当打开针对通用传输元素900中的协议类型的(多个)连接时,它指定(多个)地址被用于发送BGP路由器。如果对等地址TLV不存在,则Hello消息的IP报头的源地址应当被用于连接通用传输元素900中的协议类型。
图10是根据一些实施例的传输选项TLV 1000的备选编码。传输选项TLV 1000的备选编码被用于在图5所示的BGP hello消息500和图7所示的TLV格式700的一些实施例中。在所示的实施例中,值字段是比特串并且每个传输协议类型被指派特定的比特位置。
偏好在被指派给传输选项TLV 1000中的协议的比特位置中是隐式的。例如,比特位置越高,偏好越高。在这种情况下,BGP路由器不具有更改协议的相对优先级的灵活性。例如,TCP被指派比特位置1,SCTP被指派比特位置2,TLS被指派比特位置3,以及QUIC被指派比特位置4。因此,相对于TLS、SCTP和TCP协议,QUIC总是获得更高的偏好。传输选项TLV 1000的备选编码简单并且紧凑。接收BGP路由器在接收到的传输比特串和包含由在BGP路由器所发送出的Hello消息中的传输比特串之间执行按比特的与运算。随后接收BGP路由器选择最高比特位置作为针对BGP会话的传输协议。
图11是根据一些实施例的在Hello消息中发送传输选项TLV的方法1100的流程图。该方法在诸如图1所示的通信系统100和图2所示的通信系统200的一些实施例中的路由器之类的路由器中实现。
方法1100在框1101处开始。路由器接收包括Hello消息和由路由器支持的传输层协议列表的输入1105。在一些实施例中,基于传输协议的偏好或优先级对传输协议列表进行排序。例如,传输协议列表可以按偏好的降序显示。如适用,Hello消息利用其他TLV或针对BGP相邻发现程序的参数进行编码。
在框1110处,路由器建立空的传输选项TLV。在框1115处,路由器获取传输协议的有序列表中的第一条目。在框1120处,路由器将协议类型编码到传输选项TLV的值中。该值被编码为传输单元、传输比特串或另一格式。
在决定框1125处,路由器确定在传输协议选项的有序列表中是否存在附加条目。如果是,则方法1100进行到框1130。如果有序列表中不存在附加条目,则方法1100进行到框1135。
在框1130处,路由器获取传输协议的有序列表中的下一条目。方法1100随后流向框1120。
在框1135处,路由器将传输选项TLV推送到hello消息上。在框1140处,路由器通过适当的链路或向目标对等BGP路由器发送Hello消息。方法1100在框1145处结束。
在一对对等BGP路由器之间的Hello消息交换期间,如果第一BGP路由器在发送至第二BGP路由器的Hello消息中包含传输选项TLV,并且则第一BGP路由器从第二BGP路由器接收不包括传输选项TLV的Hello消息,第一BGP路由器在第二BGP路由器打算使用TCP作为传输协议的假设下继续。因此,第一BGP路由器就像第二BGP路由器在其Hello消息中发送传输偏好TLV一样操作。因此,实现传输选项TLV与常规BGP实现向后兼容。然而,如果第一BGP路由器没有将TCP编码为传输选项TLV中的选项,那么相邻BGP路由器之间不存在公共选择,并且因此不可能进行对等。在这种情况下,如果第二BGP路由器向第一BGP路由器发起TCP连接请求,则第一BGP路由器应当拒绝该连接。如果BGP会话通过所选传输协议已经开始运行并且BGP路由器检测到对等BGP路由器已经修改其Hello消息中的传输选项之后,,则BGP路由器重新评估偏好。如果重新评估后所选择的协议与当前活动的协议不同,则任一个BGP路由器都不应当采取任何行动。在当前BGP会话由于操作故障或由管理操作而终止后,新协议被采用。
图12是根据一些实施例处理包括在从对等BGP路由器接收的Hello消息中的传输选项TLV的方法1200的第一部分的流程图。方法1200在诸如图1所示的通信系统100和图2所示的通信系统200的一些实施例中的路由器之类的路由器中实现。方法1200使用图5所示的Hello消息500的一些实施例来实现。然而,方法1200的其他实施例使用如本文所讨论的备选编码来实现。
方法1200在框1201处开始。路由器接收包括从对等BGP路由器接收到的Hello消息的输入1205。
在决定框1210处,路由器确定传输选项TLV是否被包括在接收到的Hello消息中。如果是,则方法1200流向框1215。否则,方法1200流向框1220。
在框1215处,路由器从接收到的传输选项TLV中提取接收到的传输协议的有序列表。方法1200随后流向决定框1225。
在框1220处,路由器创建表示传输协议的有序列表的伪列表,该列表仅包括TCP作为传输协议选项,因为没有从对等BGP路由器接收到传输选项TLV。该方法随后流向决定框1225。
在决定框1225处,路由器确定传输选项TLV是否包括在由路由器发送的Hello消息中。如果是,则方法1200流向框1230。否则,方法1200流向框1235。
在框1230处,路由器从被发送到对等BGP路由器的Hello消息中的传输选项TLV中提取所发送的传输协议的有序列表。方法1200随后流向节点1,节点1连接到图13中的节点1。
在框1235处,路由器创建表示传输协议的有序列表的伪列表,该列表仅包括TCP作为传输协议选项,因为没有传输选项TLV被发送至对等BGP路由器。方法1200随后流向节点1,节点1连接到图13中的节点1。
图13是根据一些实施例处理包括在从对等BGP路由器接收的Hello消息中的传输选项TLV的方法1200的第二部分的流程图。决定框1305经由节点1连接到图12中的块1230、1235。
在决定框1305处,路由器确定路由器的BGP标识符是否低于对等BGP路由器的BGP标识符。BGP标识符在由路由器和对等BGP路由器交换的hello消息中被编码。如果是,由路由器发送的传输协议的有序列表是用于由BGP会话使用的传输协议协商的基础,并且方法1300流至框1310。如果路由器的BGP标识符高于对等GPU路由器的BGP标识符,则从对等BGP路由器接收到的传输协议的有序列表是针对传输协议的协商的基础,并且方法1300流至1315。
在框1310处,路由器通过标识对于传输协议的传输和接收的有序列表非公共的传输协议来计算公共传输选项。路由器随后重置所发送的有序列表中对于传输协议的传输和接收的有序列表非公共的协议。方法1300随后流至决定框1320。
在框1315处,路由器通过标识对于传输协议的传输和接收的有序列表非公共的传输协议来计算公共传输选项。路由器随后重置所发送的有序列表中对于传输协议的传输和接收的有序列表非公共的协议。方法1300随后流至决定框1320。
在决定框1320,路由器确定是否不存在由路由器发送的有序列表与从对等BGP路由器接收到的有序列表共享的传输协议。如果存在至少一个传输协议与发送/接收的有序列表是公共的,则方法1300流至框1325。否则,该方法流至框1330。
在框1325处,路由器选择具有最高偏好或优先级的公共传输协议作为针对路由器与对等BGP路由器之间的BGP会话的传输协议。例如,路由器可以选择由发送和接收的有序列表共享的协议有序列表中的第一协议。方法1300随后流至框1335并且方法1300结束。
在框1330处,路由器确定连接是不可能的,因为在路由器和对等BGP路由器之间不存在公共传输协议,即,所发送的有序列表中所指示的传输选项集与接收到的有序列表中所指示的传输选项集是互斥的。方法1300随后流至框1335并且方法1300结束。
图14是根据一些实施例的支持针对BGP会话的多个传输层协议的网络功能虚拟化(NFV)架构1400的框图。NFV架构1400被用于实施图1所示的网络100和图2所示的清洁相思系统200的一些实施例。NFV架构1400包括硬件资源1401,包括计算硬件1402、存储硬件1403和网络硬件1404。计算硬件1402使用一个或多个处理器来实施,存储硬件1403使用一个或多个存储器来实施,以及网络硬件1404使用一个或多个收发器、发送器、接收器、接口等来实施。
虚拟化层1405提供硬件资源1401的抽象表示。由虚拟化层1405所支持的抽象表示可以使用虚拟化基础设施管理器1410来管理,该管理器是NFV管理和编排(M&O)模块1415的一部分。管理器1410的一些实施例被配置为收集和转发可能发生在NFV架构1400中的性能测量和事件。例如,性能测量可以转发到在NFV M&O 1415中被实施的编排器(ORCH)1417。硬件资源1401和虚拟化层1405可以被用于实施包括虚拟计算资源1421、虚拟存储器资源1422和虚拟网络资源1423的虚拟资源1420,。
虚拟网络功能(VNF1、VNF2、VNF3)在NFV基础设施(例如,硬件资源1801)上运行并且利用虚拟资源1420。例如,虚拟网络功能(VNF1、VNF2、VNF3)可以使用由虚拟计算资源1421支持的虚拟机、由虚拟存储资源1422支持的虚拟存储器,或由虚拟网络资源1423支持的虚拟网络来实施。元素管理系统(EMS1、EMS2、EMS3)负责管理虚拟网络功能(VNF1、VNF2、VNF3)。例如,元素管理系统(EMS1、EMS2、EMS3)可以负责故障和性能管理。在一些实施例中,每个虚拟网络功能(VNF1、VNF2、VNF3)由相应的VNF管理器1425来控制,该管理器1425与管理器1410或编排器1417交换信息并且协调动作。
NFV架构1400可以包括操作支持系统(OSS)/业务支持系统(BSS)1430。OSS/BSS1430处理包括使用OSS功能的故障管理的网络管理,。OSS/BSS 1430还使用BSS功能处理客户和产品管理。NFV架构1400的一些实施例使用描述符集1435用于存储由NFV架构1400所支持的服务、虚拟网络功能或基础设施的描述。描述符1435中的信息可以由NFV M&O 1415更新或修改。
NFV架构1400实施提供控制平面功能或用户平面功能的网络切片。网络切片是提供可以因切片而异的通信服务和网络功能的完整的逻辑网络。用户设备可以同时接入支持核心网与用户设备之间的多种业务流的多个切片。用户设备的一些实施例向网络提供网络切片选择辅助信息(NSSAI)参数以辅助选择针对用户设备的切片实例。单个NSSAI可以导致选择多个切片。NFV架构1800还可以使用设备能力、订阅信息和本地运营商策略来进行选择。NSSAI是较小组件的集合,每个单个NSSAI(S-NSSAI)都包括切片服务类型(SST)和可能的切片区分器(SD)。切片服务类型指代在特征和服务(例如,专门用于宽带或大规模IoT)方面的预期网络行为,而切片区分符可以帮助在多个相同类型的网络切片实例中进行选择,例如将与不同服务相关的流量隔离到不同的切片中。
在一些实施例中,上述技术的特定方面可以由执行软件的处理系统的一个或多个处理器来实施。该软件包括被存储或以其他方式有形地体现在非瞬态计算机可读存储介质上的一个或多个可执行指令集。该软件可以包括指令和特定数据,当指令和特定数据由一个或多个处理器执行时,操纵该一个或多个处理器以执行上述技术的一个或多个方面。非瞬态计算机可读存储介质可以包括例如磁盘或光盘存储设备、固态存储设备(诸如闪存、高速缓存、随机存取存储器(RAM)或其他非易失性存储设备)等设备。存储在非瞬态计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释或以其他方式可执行的其他指令格式。
计算机可读存储介质可以包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这种存储介质可以包括但不限于光学介质(例如,致密光盘(CD)、数字多功能盘(DVD)、蓝光光盘)、磁介质(例如,软盘、磁带或磁硬盘驱动器)、易失性存储器(例如随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如只读存储器(ROM)或闪存)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以被嵌入在计算系统中(例如,系统RAM或ROM),固定地附接到计算系统(例如,磁性硬盘驱动器),可移动地附接到计算系统(例如,光盘或通用基于串行总线(USB)的闪存),或经由有线或无线网络(例如,网络可存取存储(NAS))耦合到计算机系统。
如本文中所用,术语“电路系统”可以指代以下一项或多项或全部:
a)仅硬件电路实现(诸如实现和仅模拟和/或数字电路系统)以及
b)硬件电路和软件的组合,诸如(如适用):
i.模拟和/或(多个)数字硬件电路与软件/固件的组合以及
ii.具有软件的(多个)硬件处理器的任何部分(包括(多个)数字信号处理器、软件和(多个)存储器一起工作使装置(诸如移动电话或服务器)执行各种功能)以及
c)(多个)硬件电路和/或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,需要针对操作的软件(例如,固件),但是当不需要操作时软件可以不存在。
该电路系统的定义应用于该术语在本申请中的包括在任何权利要求中的全部使用。作为另一示例,如本申请中所使用的,术语电路系统还涵盖仅硬件电路或处理器(或多个处理器)或硬件电路或处理器的一部分及其(或它们的)伴随软件和/或固件的实现。术语电路系统还涵盖例如并且如果适用于特定权利要求元素、针对移动设备的基带集成电路或处理器集成电路或服务器、蜂窝网络设备或其他计算或网络设备中的类似集成电路。
注意,并非一般描述中的上述全部活动或要素都是必需的,特定活动或设备的一部分可以不需要,并且除了描述的那些,一个或多个进一步的活动或所包括的要素可以被执行。更进一步,所列出活动的顺序不一定是它们被执行的顺序。此外,已经参考特定实施例描述了这些概念。然而,本领域的普通技术人员理解,在不脱离如以下权利要求书中阐述的本公开的范围的情况下,可以作各种修改和改变。因此,说明书和图被认为是说明性的而不是限制性的,并且全部这些修改都旨在被包括在本公开的范围内。
益处、其他优点和问题的解决方案已经在上文关于特定实施例进行了描述。然而,益处、优点、问题的解决方案以及可以引起任何益处、优点、或解决方案出现或变得更加明显的任何特征,不应被解释为任何或全部的权利要求的(多个)关键、所要求的或基本特征。此外,以上公开的特定实施例仅是说明性的,因为可以以不同但等效的方式修改和实践所公开的主题,这对于受益于本文教导的本领域技术人员而言是显然的。除了在下面的权利要求中描述的之外,不旨在限制本文中所示的构造或设计的细节。因此很明显,上面公开的特定实施例可以被改变或修改并且全部这样的变化都被认为在所公开的主题的范围内。因此,本文中所寻求的保护如以下权利要求中所阐述。
Claims (22)
1.一种通信方法,包括:
基于以下项来确定第一路由器和第二路由器支持的传输层协议的子集:
从所述第一路由器发送第一消息,所述第一消息包括标识由所述第一路由器支持的传输层协议的第一集合的信息;以及
在所述第一路由器处接收第二消息,所述第二消息包括标识由所述第二路由器支持的传输层协议的第二集合的信息;
从所述传输层协议的子集中,选择所述第一路由器和所述第二路由器支持的公共传输层协议,其中选择所述公共传输层协议包括:基于所述第一路由器和所述第二路由器的偏好来相应地对所述传输层协议的第一集合和所述传输层协议的第二集合进行排序;以及
在所述第一路由器处,通过所述公共传输层协议建立与所述第二路由器的边界网关协议(BGP)会话。
2.根据权利要求1所述的方法,其中发送所述第一消息包括向所述第二路由器单播所述第一消息。
3.根据权利要求2所述的方法,其中单播所述第一消息包括使用目标消息经由单跳或多跳向所述第二路由器单播所述第一消息。
4.根据权利要求1所述的方法,其中发送所述第一消息包括通过多个链路向包括所述第二路由器的多个路由器广播或多播所述第二消息。
5.根据权利要求1所述的方法,其中选择所述公共传输层协议包括:在对于所述传输层协议的第一集合和所述传输层协议的第二集合是公共的所述传输层协议的子集中选择最高偏好的传输层协议。
6.根据权利要求5所述的方法,其中所述第一路由器和第二路由器基于第一标识符和第二标识符相应地被优先化。
7.根据权利要求6所述的方法,其中选择所述公共传输层协议包括:在所述第一路由器和所述第二路由器中的最高优先级路由器处选择所述公共传输层协议。
8.根据权利要求7所述的方法,其中所述第一路由器是所述最高优先级路由器,并且其中所述第一路由器选择所述传输层协议的子集中的所述最高偏好传输层协议作为所述公共传输层协议。
9.根据权利要求1至8中任一项所述的方法,其中建立所述BGP会话包括基于所述公共传输层协议的参数来配置所述BGP会话。
10.根据权利要求9所述的方法,其中配置所述BGP会话包括:将所述公共传输层协议的流映射到以下至少一项:由所述BGP会话传送的信息的网络层可达性信息(NLRI)类型、特征或特性。
11.一种第一路由器,包括:
收发器,所述收发器被配置为发送第一消息,所述第一消息包括标识由所述第一路由器支持的传输层协议的第一集合的信息,并且所述收发器被配置为接收第二消息,所述第二消息包括标识由第二路由器支持的传输层协议的第二集合的信息;以及
处理器,所述处理器被配置为:
基于被包括在所述第一消息中的所述信息和被包括在所述第二消息中的所述信息,确定所述第一路由器和所述第二路由器支持的传输层协议的子集;
从所述传输层协议的子集选择所述第一路由器和所述第二路由器支持的公共传输层协议,其中所述传输层协议的第一集合和所述传输层协议的第二集合基于所述第一路由器和所述第二路由器的偏好被相应地排序;
通过所述公共传输层协议建立与所述第二路由器的边界网关协议(BGP)会话。
12.根据权利要求11所述的第一路由器,其中所述收发器被配置为向所述第二路由器单播所述第一消息。
13.根据权利要求12所述的第一路由器,其中所述收发器被配置为在目标消息中经由单跳或多跳将所述第一消息单播到所述第二路由器。
14.根据权利要求11所述的第一路由器,其中所述收发器被配置为通过多个链路向包括所述第二路由器的多个路由器广播或多播所述第二消息。
15.根据权利要求11所述的第一路由器,其中最高偏好传输层协议从对于所述传输层协议的第一集合和传输层协议的第二集合是公共的所述传输层协议的子集中被选择。
16.根据权利要求15所述的第一路由器,其中所述第一路由器和所述第二路由器基于第一标识符和第二标识符相应地被优先化。
17.根据权利要求16所述的第一路由器,其中所述公共传输层协议由所述第一路由器和所述第二路由器中的最高优先级路由器所选择。
18.根据权利要求17所述的第一路由器,其中所述第一路由器是所述最高优先级路由器,并且其中所述处理器选择所述传输层协议的子集中的所述最高偏好传输层协议作为所述公共传输层协议。
19.根据权利要求11至18中任一项所述的第一路由器,其中所述处理器基于所述公共传输层协议的参数来配置所述BGP会话。
20.根据权利要求19所述的第一路由器,其中所述处理器将所述BGP会话的流映射到以下至少一项:由所述BGP会话传送的信息的网络层可达性信息(NLRI)类型、特征或特性。
21.一种用于通信的装置,包括:
至少一个处理器;以及
至少一个存储器,包括计算机程序代码;
所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行以下操作:
基于以下项来确定第一路由器和第二路由器支持的传输层协议的子集:
从所述第一路由器发送第一消息,所述第一消息包括标识由所述第一路由器支持的传输层协议的第一集合的信息;以及
在所述第一路由器处接收第二消息,所述第二消息包括标识由所述第二路由器支持的传输层协议的第二集合的信息;
从所述传输层协议的子集中,选择所述第一路由器和所述第二路由器支持的公共传输层协议,其中选择所述公共传输层协议包括:基于所述第一路由器和所述第二路由器的偏好来相应地对所述传输层协议的第一集合和所述传输层协议的第二集合进行排序;以及
通过所述公共传输层协议建立与所述第二路由器的边界网关协议(BGP)会话。
22.根据权利要求21所述的装置,其中所述至少一个存储器和所述计算机程序代码被配置为所述至少一个处理器一起使所述装置至少执行以下至少一项:
发送第一消息,所述第一消息包括标识由第一路由器支持的传输层协议的第一集合的信息;以及
接收第二消息,所述第二消息包括标识由第二路由器支持的传输层协议的第二集合的信息。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/075,471 US11770465B2 (en) | 2020-10-20 | 2020-10-20 | Supporting multiple transport options for border gateway protocol |
| US17/075,471 | 2020-10-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114448859A CN114448859A (zh) | 2022-05-06 |
| CN114448859B true CN114448859B (zh) | 2024-10-11 |
Family
ID=77897496
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111209875.9A Active CN114448859B (zh) | 2020-10-20 | 2021-10-18 | 支持用于边界网关协议的多传输选项 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11770465B2 (zh) |
| EP (1) | EP3989511A1 (zh) |
| CN (1) | CN114448859B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11799910B2 (en) * | 2021-07-09 | 2023-10-24 | Cujo LLC | Network connection management |
| US12494985B2 (en) * | 2024-02-13 | 2025-12-09 | Cisco Technology, Inc. | Optimized multicast transport migration procedures |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2437684C (en) | 2002-08-21 | 2014-12-09 | Nortel Networks Limited | Routing method and apparatus for optimising auto-tunnelling in a heterogeneous network |
| ATE430428T1 (de) * | 2004-06-10 | 2009-05-15 | France Telecom | Verfahren zur steuerungsverwaltung auf der basis eines routing-protokolls |
| US7801135B2 (en) * | 2005-05-19 | 2010-09-21 | Cisco Technology, Inc. | Transport protocol connection synchronization |
| US7940649B2 (en) | 2006-08-01 | 2011-05-10 | Cisco Technology, Inc. | Techniques for graceful restart in a multi-process operating system |
| WO2008089303A1 (en) * | 2007-01-17 | 2008-07-24 | Nortel Networks Limited | Border gateway protocol procedures for mpls and layer-2 vpn using ethernet-based tunnels |
| US7885294B2 (en) * | 2007-08-23 | 2011-02-08 | Cisco Technology, Inc. | Signaling compression information using routing protocols |
| US8806032B2 (en) * | 2010-12-15 | 2014-08-12 | At&T Intellectual Property I, L.P. | Methods and apparatus to migrate border gateway protocol sessions between routers |
| US9014028B2 (en) * | 2012-03-08 | 2015-04-21 | International Business Machines Corporation | Identifying and transitioning to an improved VOIP session |
| US9729414B1 (en) * | 2012-05-21 | 2017-08-08 | Thousandeyes, Inc. | Monitoring service availability using distributed BGP routing feeds |
| US9391885B1 (en) * | 2013-09-05 | 2016-07-12 | Juniper Networks, Inc. | MPLS label usage in Ethernet virtual private networks |
| CN105556899B (zh) * | 2013-09-17 | 2019-08-13 | 思科技术公司 | 用于执行位索引显式复制的系统和方法 |
| US9437022B2 (en) * | 2014-01-27 | 2016-09-06 | Splunk Inc. | Time-based visualization of the number of events having various values for a field |
| CN104883267B (zh) * | 2014-02-28 | 2018-07-20 | 新华三技术有限公司 | 网络配置访问方法及装置 |
| US9660898B2 (en) * | 2014-12-19 | 2017-05-23 | Juniper Networks, Inc. | Enhanced protocol independent multicast source registration over a reliable transport |
| CN108432194B (zh) * | 2016-04-28 | 2022-02-25 | 华为技术有限公司 | 一种拥塞处理的方法、主机及系统 |
| CN105915457B (zh) * | 2016-04-29 | 2018-12-11 | 清华大学 | 一种基于路由校验的边界网关协议的路由更新方法 |
| WO2018188068A1 (en) * | 2017-04-14 | 2018-10-18 | Intel Corporation | Server-and network-assisted dynamic adaptive streaming over hypertext transport protocol signaling |
| US11477289B2 (en) | 2018-10-09 | 2022-10-18 | Nokia Solutions And Networks Oy | Supporting a routing protocol with a transport layer protocol |
| CN111756674B (zh) * | 2019-03-28 | 2021-07-27 | 上海哔哩哔哩科技有限公司 | 网络通信方法、系统、设备及计算机可读存储介质 |
| US11509575B2 (en) * | 2020-08-11 | 2022-11-22 | Nokia Solutions And Networks Oy | Selection of a transport protocol for supporting a label distribution protocol |
-
2020
- 2020-10-20 US US17/075,471 patent/US11770465B2/en active Active
-
2021
- 2021-09-21 EP EP21198093.3A patent/EP3989511A1/en active Pending
- 2021-10-18 CN CN202111209875.9A patent/CN114448859B/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3989511A1 (en) | 2022-04-27 |
| US20220124186A1 (en) | 2022-04-21 |
| US11770465B2 (en) | 2023-09-26 |
| CN114448859A (zh) | 2022-05-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7596368B2 (ja) | データ伝送制御方法及び装置 | |
| EP4000231B1 (en) | Method and system for in-band signaling in a quic session | |
| US10003531B2 (en) | Method for establishing tunnel, method for allocating label, device and network system | |
| US7440438B2 (en) | Refresh and filtering mechanisms for LDP based VPLS and L2VPN solutions | |
| CN102195865B (zh) | 多宿网络中的通信网络路径和状态信息 | |
| US7499445B2 (en) | System and method for routing ISIS traffic through unidirectional links of a computer network | |
| US9900242B2 (en) | Performance-based routing method and device | |
| US11317272B2 (en) | Method and system for enabling broadband roaming services | |
| JP2017529713A (ja) | コンピュータネットワークパケットフローコントローラ | |
| WO2022194023A1 (zh) | 报文处理的方法、网络设备及控制器 | |
| CN114301824B (zh) | 多接入网络中的边界网关协议的邻居发现 | |
| US12009984B2 (en) | Targeted neighbor discovery for border gateway protocol | |
| CN113472622A (zh) | 一种网络中传输业务的方法和设备 | |
| CN114448859B (zh) | 支持用于边界网关协议的多传输选项 | |
| CN114978975A (zh) | 以太网虚拟私有网络中的bum业务的快速重路由 | |
| CN113285877B (zh) | 一种报文转发的控制方法及相关装置 | |
| US20220052946A1 (en) | Selection of a transport protocol for supporting a label distribution protocol | |
| US20240364515A1 (en) | Securing multi-path tcp (mptcp) with wireguard protocol | |
| WO2012084626A1 (en) | Method for inter-domain communications | |
| WO2025099732A1 (en) | Methods and systems to include multiple border gateway protocol (bgp) network layer reachability information (nlri) prefixes within a single bgp update message | |
| Yussuf | Performance Comparisons of Internetwork Protocols |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |