链路状态路由协议邻接状态机的制作方法

文档序号:24047864发布日期:2021-02-23 19:31阅读:106来源:国知局
链路状态路由协议邻接状态机的制作方法

[0001]
本发明涉及计算机网络,并且更具体地,涉及计算机网络内网络流量的路由。


背景技术:

[0002]
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于分组的网络中,诸如互联网,计算设备通过将数据划分为被称作分组的小块来传送数据,这些分组跨网络从源设备被单独路由传送到目的设备。目的设备从分组中提取数据,并将数据组装成其原始形式。网络中称为路由器的某些设备使用路由协议来交换和累积描述网络的拓扑信息。这允许路由器构造其自身的网络路由拓扑地图。路由器在接收到传入数据分组后检查该分组内的密钥信息,并根据累积的拓扑信息转发该分组。
[0003]
许多路由协议使用基于泛洪(flooding)的分发机制将拓扑信息分发到网络中的路由器。这些路由协议可能依赖于要求每个路由器具有同步路由拓扑信息的路由算法。例如,开放式最短路径优先(ospf)和中间系统到中间系统(is-is)路由协议是链路状态协议,它们使用消息来传达链路状态表示,以确保路由拓扑相对于可用接口、度量和与网络链路相关联的其他变量是同步的。例如,ospf利用链路状态通告(lsa),而is-is使用链路状态协议数据单元(pdu)来交换信息。用于根据链路状态路由协议传达链路状态表示的消息在本文中通常被称为链路状态通告(lsa),并且osfp lsa和is-is ls pdu是此类lsa的示例。
[0004]
不根据链路状态路由协议操作的路由器可能会在整个网络中泛洪链路状态通告,使得每个其他路由器接收到链路状态通告。在路由器通过点对点连接来连接的网络拓扑中,每个路由器将链路状态通告泛洪到每个接口上可到达的邻接路由器,以确保同步。在使用多路存取介质(multi-access media)的网络(诸如以太网)中,网络中的路由器将链路状态通告泛洪到所有其他路由器。在任一种情况下,接收路由器都使用经由链路状态通告接收的信息来构建和维持其自身的网络拓扑。这些链路状态通告可以包括标识用于根据链路状态协议通过网络选择路径的约束的信息。
[0005]
根据链路状态路由协议操作的路由器可以使用不同的网络协议版本。例如,路由器可以使用互联网协议版本4(ipv4)。ipv4是32位逻辑寻址系统,其支持将分组从源主机转发到比另一网络上的预期目的地主机更近一跳(one hop)的下一路由器。作为另一示例,路由器可以使用互联网协议版本6(ipv6)。ipv6旨在替代ipv4,并且与由ipv4采用的32位地址空间相比,提供更大的地址空间(例如128位),允许分层地址分配,并简化了多播寻址。由于ipv6提供的众多优势,许多网络正在用ipv6替代ipv4。ipv6无法与ipv4互操作。然而,许多网络通过要求网络设备同时支持对使用ipv4或ipv6网络协议寻址的网络流量的处理和转发,来提供与ipv4的向后兼容性。这样,路由器可以获取并为链路分配ipv4地址和ipv6地址,从而在每次ipv4地址和ipv6地址被分配时经由链路状态路由协议通告该链路。


技术实现要素:

[0006]
本文公开了用于链路状态路由协议邻接状态机(在下文中也称为“邻接状态机”)
的技术。在一些示例中,链路状态路由协议邻接状态机是运行默认单播拓扑的双栈is-is网络中改进的中间系统到中间系统(is-is)邻接状态机。双栈is-is网络在网络设备之间的每个物理链路上同时使用ipv4和ipv6网络协议。链路状态路由协议邻接状态机确保在指示两个网络设备之间的邻接之前,用于两个网络设备之间的单个物理链路的第一逻辑链路和第二逻辑链路是活动的。在一些示例中,根据第一网络协议建立第一逻辑链路,并且根据第二网络协议建立第二逻辑链路。例如,第一逻辑链路使用ipv4网络协议,而第二逻辑链路使用ipv6网络协议。
[0007]
本文所描述的邻接状态机可以避免在基于物理链路的针对ipv4逻辑链路的邻接路径计算、但是在将ipv6地址分配给两个网络设备的ipv6接口以用于ipv6逻辑链路之前而将两个网络设备之间的物理链路选择为针对ipv4和ipv6流量两者的最短路径的情况下丢弃网络流量。例如,当两个网络设备之间的物理链路被禁用和重新启用时,或者在链路“摆动(flapping)”期间,可能会出现这种情况。可以相对快速地分配用于ipv4逻辑链路的网络设备的ipv4接口的ipv4地址,而在ipv6逻辑链路的地址分配操作解析时,网络设备的ipv6接口可能不会在预期时间段内被分配ipv6地址。本文所描述的邻接状态机可以确保已为ipv4和ipv6逻辑链路的网络设备的接口分配了地址,使得在指示两个网络设备邻接之前,ipv4和ipv6逻辑链路都处于“活动”状态,而不是仅依赖于ipv4逻辑链路的“活动”状态来指示两个网络设备之间的邻接。以这种方式,使用本文中描述的邻接状态机的网络设备可以在ipv6逻辑链路尚未“活动”的情况下避免尝试跨ipv6逻辑链路转发ipv6流量,从而减少了ipv6流量黑洞。
[0008]
邻接状态机可以响应于确定两个网络设备已经针对第一逻辑链路和第二逻辑链路彼此输出了问候(hello)消息(根据链路状态路由协议),来确定两个逻辑链路都处于活动状态。例如,邻接状态机响应于确定两个网络设备已经相互输出了ipv4is-is问候(iih)协议数据单元(pdu),来确定第一逻辑链路是活动的。另外,邻接状态机可以响应于确定两个网络设备已经相互输出了ipv6iih pdu来确定第二逻辑链路是活动的。在另一示例中,邻接状态机在预定时间量期满时确定第一逻辑链路和第二逻辑链路都处于活动状态。预定时间量可以对应于使第二逻辑链路变为活动通常所需的时间量。作为根据ipv6建立第二逻辑链路的示例,预定时间量对应于使两个网络设备之间的第二逻辑链路完成重复地址检测(dad)操作所需的时间。
[0009]
在一个示例中,本公开描述了一种方法,该方法包括:由链路状态路由协议邻接状态机确定根据第一网络协议的第一逻辑链路是活动的,该链路状态路由协议邻接状态机由网络中根据链路状态路由协议操作的多个网络设备中的第一网络设备的处理电路执行,其中第一逻辑链路建立在多个网络设备中的第一网络设备与第二网络设备之间的第一物理链路上;由邻接状态机确定根据第二网络协议的第二逻辑链路是活动的,其中在第一网络设备与第二网络设备之间的第一物理链路上建立第二逻辑链路,并且其中第一网络协议和第二网络协议不同;以及响应于确定第一逻辑链路是活动的并且确定第二逻辑链路是活动的:输出通告第一逻辑链路的第一链路状态路由通告;以及输出通告第二逻辑链路的第二链路状态路由通告。
[0010]
在另一示例中,本公开描述了根据链路状态路由协议操作的网络中多个网络设备中的第一网络设备,该第一网络设备包括处理电路,其被配置为:执行链路状态路由协议邻
接状态机,其被配置为:确定根据第一网络协议的第一逻辑链路是活动的,其中第一逻辑链路建立在多个网络设备中的第一网络设备与第二网络设备之间的第一物理链路上;并且确定根据第二网络协议的第二逻辑链路是活动的,其中第二逻辑链路建立在第一网络设备与第二网络设备之间的第一物理链路上,并且其中第一网络协议和第二网络协议不同;以及响应于确定第一逻辑链路是活动的并且确定第二逻辑链路是活动的:输出通告第一逻辑链路的第一链路状态路由通告;并且输出通告第二逻辑链路的第二链路状态路由通告。
[0011]
在另一示例中,本公开描述了一种包括指令的非瞬态计算机可读介质,该指令在被执行时被配置为使得网络中根据链路状态路由协议操作的多个网络设备中的第一网络设备的处理电路:执行链路状态路由协议邻接状态机,其被配置为:确定根据第一网络协议的第一逻辑链路是活动的,其中第一逻辑链路建立在多个网络设备中的第一网络设备与第二网络设备之间的第一物理链路上;并且确定根据第二网络协议的第二逻辑链路是活动的,其中第二逻辑链路建立在第一网络设备与第二网络设备之间的第一物理链路上,并且其中第一网络协议和第二网络协议不同;以及响应于确定第一逻辑链路是活动的并且确定第二逻辑链路是活动的:输出通告第一逻辑链路的第一链路状态路由通告;并且输出通告第二逻辑链路的第二链路状态路由通告。
[0012]
在附图和以下描述中阐述了本公开的技术的一个或多个示例的细节。
附图说明
[0013]
图1是图示根据本公开的技术操作的示例网络的框图。
[0014]
图2是图示根据本发明的技术的被配置为实现链路状态路由协议邻接状态机的示例网络设备的框图。
[0015]
图3a-图3b描绘了可以在其上实现本公开的技术的示例is-is网络300。
[0016]
图4描绘了根据本公开的技术的操作。
[0017]
贯穿附图和说明书,相同的附图标记指代相同的元件。
具体实施方式
[0018]
图1是图示根据本公开中描述的技术的各种方面操作的示例网络10的框图。在图1的示例中,网络10包括通过一个或多个物理链路22互连的路由器16a-16d(“路由器16”)。在图1的示例中并且如下面更详细地描述的,路由器16a和路由器16b已经向彼此在单个物理链路22上建立了第一逻辑链路20a和第二逻辑链路20b。在一些示例中,网络10是共享媒体访问网络。
[0019]
在该示例中,网络10的路由器16实现链路状态路由协议以交换路由信息并促进整个网络端点设备之间的分组或其他数据单元的转发。作为一个示例,网络10可以是耦合路由器16的以太网网络。网络10可以被耦合到由其他提供者管理的一个或多个网络,并且因此可以形成例如互联网的大规模公共网络基础设施的一部分。
[0020]
每个路由器16根据链路状态路由协议操作,以交换携带路由信息的链路状态通告。例如,路由器16可以执行开放式最短路径优先(ospf)路由协议或中间系统到中间系统(is-is)路由协议,每个协议都是链路状态路由协议的示例,该链路状态路由协议使用链路状态通告来传达与网络链路相关联的可用接口、度量和其他变量。例如,ospf利用链路状态
通告(lsa),而is-is使用链路状态协议数据单元(pdu)来交换信息。用于根据链路状态路由协议来传达链路状态表示的消息在本文中通常被称为链路状态通告(lsa),并且osfp lsa和is-is ls pdu是这种lsa的示例。
[0021]
一般,由路由器16输出的链路状态通告指定到网络10内其他路由器的网络链路。基于所传送的链路状态通告,路由器16以反映网络10的拓扑的方式构造图形或其他数据结构。例如,路由器16可以形成图形数据结构,其中图形的每个节点表示路由器16或共享访问网络中的不同的一个,并且互连图形的两个节点的每个边缘表示路由器16中的对应的两个路由器之间或路由器与共享访问网络之间的不同链路。该图形的每个边缘可以与成本或其他边缘值相关联,该成本或其他边缘值反映了经由lsa为每个相关联的链路通告的成本。路由器16然后可以实现路径选择算法,以确定针对数据分组的每个源和目的地通过网络的路径。例如,路由器16可以实现最短路径优先(spf)或受约束的最短路径优先(cspf)路径选择算法,以找到从每个节点到每个其他节点的最低成本路径。
[0022]
在执行路径选择之后,路由器16根据所选择的路径转发分组。随着网络状况改变(诸如,当路由器16中的一个变为不可操作时,链路转变为“关闭”或“不活动”状态或变得消耗过多且缓慢),一个或多个路由器16可以检测网络状况的变化并输出链路状态通告以将变化传送给路由器16中的其他路由器。路由器16处理链路状态通告以更新它们各自的链路状态数据库,并且基于更新的图形数据结构执行路径选择以选择通过网络10的新路径。
[0023]
在图1的示例中,路由器16执行is-is协议。例如,网络10实现了运行例如默认单播拓扑的双栈is-is网络。is-is是一种内部网关协议,旨在用于在管理域或网络中使用。与ospf相比,is-is是osi模型层2链路状态路由协议。is-is在其可以路由传送的网络地址类型方面是中立的,因此可以支持ipv4或ipv6网络协议。is-is路由器(诸如路由器16)可以被指定为:级别1(区域内);级别2(区域间);或级别1-2(两者)。路由信息在同一区域的级别1路由器和其他级别1路由器之间交换,而级别2路由器只能与其他级别2路由器形成关系并交换信息。级别1-2的路由器与两个级别交换信息,并被用以将区域间路由器与区域内路由器连接。有关is-is的实现的附加信息被描述在以下文献中:国际标准化组织iso 10589(1992年4月30日)的intermediate system to intermediate system routing exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service(《用于与用于提供无连接模式网络服务的协议一起使用的中间系统到中间系统路由交换协议》);以及在r.callon的“use of osi is-is for routing in tcp/ip and dual environments(使用osi is-is以用于在tcp/ip和双重环境中进行路由传送)”,rfc 1195(1990年12月),其可从https://tools.ietf.org/html/rfc1195获得。
[0024]
多拓扑(mt)is-is网络是用于将网络从ipv4网络协议的使用迁移到ipv6网络协议的一种解决方案。mt is-is是针对is-is的可选机制,它允许在单个is-is域内使用称为多拓扑(mt)的独立ip拓扑集。mt扩展可以被用于多种用途,诸如原始igp拓扑“上”的带内管理网络,为骨干网中的隔离多播或ipv6岛维持分离的igp路由域,或强制使用遵循不同拓扑的地址空间的子集。例如,mt is-is在单个is-is域中允许第一mt使用ipv4网络协议,以及允许第二mt使用ipv6网络协议。mt is-is消除了配置is-is的网络设备的所有接口必须支持相同网络协议集的限制。mt is-is还消除了以下限制:is-is区域(用于级别1路由)或域(用
于级别2路由)中的所有网络设备必须支持相同的网络协议集。
[0025]
因为执行了多个最短路径优先(spf)操作(针对每个配置的拓扑进行一次操作),所以mt is-is网络仅要求区域或域中网络设备的子集中间存在连接性,才能使给定的网络地址族变得可路由传送。有关多拓扑(mt)is-is的实现的附加信息被描述在t.przygienda等人的“m-isis:multi topology(mt)routing in intermediate system to intermediate systems(is-iss)(m-isis:中间系统到中间系统(is-iss)的多拓扑(mt)路由)”中,rfc 5120(2008年2月),可从https://tools.ietf.org/html/rfc5120获得。虽然mt is-is在用于支持ipv4和ipv6网络协议方面提供了比is-is更高的灵活性,但客户可能更倾向于不采用mt is-is。例如,mt is-is的使用增加了网络的管理负担,因为mt is-is为ipv4和ipv6网络协议实现了分离的网络拓扑,从而增加了管理员必须配置、维持和升级网络的网络拓扑的数目。
[0026]
用于将网络从ipv4迁移到ipv6的另一种解决方案是双栈is-is网络。在双栈is-is网络中,所有网络设备都根据ipv4和ipv6网络协议操作,使得网络设备能够处理ipv4和ipv6流量。为了启用双栈is-is网络,每个路由器16的每个接口被分配ipv4地址和ipv6地址。双栈is-is网络比mt is-is网络更流行,因为双栈is-is网络更便宜且易于实现。例如,双栈is-is网络不需要隧道机制或内部网络。另外,ipv4和ipv6转发和路由可以彼此独立执行。此外,双栈is-is网络允许将端点、网络和应用从使用过时的ipv4网络协议逐步迁移到较新的ipv6网络协议。有关双栈is-is的实现的附加信息在y.shirasaki等人的“a model of ipv6/ipv4dual stack internet access service(ipv6/ipv4双栈互联网访问服务模型)”中被描述,rfc 4241(2005年12月),可从https://tools.ietf.org/html/rfc4241获得。
[0027]
如图1的示例中所示,第一逻辑链路20a和第二逻辑链路20b通过单个物理链路22在路由器16a和路由器16b之间建立。在一些示例中,第一逻辑链路20a根据第一网络协议操作,并且第二逻辑链路20a根据与第一网络协议不同的第二网络协议操作。在一些示例中,第一网络协议是ipv4,并且第二网络协议是ipv6。
[0028]
根据本公开的技术,每个路由器16实现链路状态路由协议邻接状态机80。路由器16a的链路状态路由协议邻接状态机80(以下称为“邻接状态机80”)确保在指示路由器16a与路由器16b之间的邻接之前,第一逻辑链路20a和第二逻辑链路20b处于“活动”状态。例如,邻接状态机80通过确定根据第一网络协议已经为第一逻辑链路20a的路由器16a和路由器16b的接口分配了地址,来确定第一逻辑链路20a处于“活动”状态。作为另一示例,邻接状态机80通过确定用于第一逻辑链路20b的路由器16a和路由器16b的接口已经根据第二网络协议被分配了地址,来确定第二逻辑链路20b处于“活动”状态。
[0029]
在一些示例中,链路状态路由协议邻接状态机80是运行默认单播拓扑的双栈is-is网络10中的改进的is-is邻接状态机。例如,双栈is-is网络10在逻辑链路20a上使用ipv4网络协议,以及在逻辑链路20b上使用ipv6网络协议,其中逻辑链路20a和20b两者都建立在路由器16a和16b之间的单个物理链路22上。在一些示例中,邻接状态机80确定在预定时间量期满时第一逻辑链路20a和第二逻辑链路20b均处于活动状态。预定时间量可以对应于地址分配过程解析构成第二逻辑链路20b的路由器16a和16b的接口所需的时间。例如,在第二逻辑链路20b根据ipv6网络协议操作的情况下,预定时间量可以对应于使dhcp服务器执行
重复地址检测(dad)操作以确保在同一网络内没有分配重复地址所需的时间量。
[0030]
在一些示例中,邻接状态机80响应于确定路由器16a和路由器16b都已经针对逻辑链路20a和20b向彼此输出了问候(hello)消息,来确定路由器16a和路由器16b之间的第一逻辑链路20a和第二逻辑链路20b均处于活动状态。例如,邻接状态机80响应于确定两个网络设备16a、16b已经向彼此输出了ipv4is-is问候(iih)协议数据单元(pdu)来确定第一逻辑链路20a是活动的。在一些示例中,邻接状态机80响应于确定两个网络设备16a,16b已经向彼此输出了ipv6 iih pdu来确定第二逻辑链路20b是活动的。
[0031]
本文所描述的邻接状态机可以避免在以下情况下丢弃网络流量:路由器16a和路由器16b之间的物理链路22基于仅针对根据第一网络协议的逻辑链路20a的邻接路径计算而被选择为针对例如根据第一网络协议的流量和根据第二网络协议的流量的最短路径。在逻辑链路20b尚未处于“活动”状态的情况下,沿着逻辑链路20b转发根据第二网络协议的流量可能会导致丢弃流量。
[0032]
例如,在逻辑链路20a根据ipv4网络协议操作并且逻辑链路20b根据ipv6网络协议操作的网络中可能出现这种情况。路由器16a、16b之间的物理链路22可能会被禁用和重新启用,或者换言之,可能会经历链路“摆动”。用于根据ipv4网络协议操作的逻辑链路20a的网络设备16a、16b的接口可以相对较快地接收ipv4地址,使得逻辑链路20a可以转变为“活动”或“向上”状态。相比之下,用于根据ipv6网络协议操作的逻辑链路20b的网络设备16a、16b的接口可能由于插入地址分配过程中的延迟而无法从dhcp服务器获取ipv6地址,以确保没有在同一网络内分配重复地址。例如,在逻辑链路20b的重复地址检测(dad)操作解析时,该延迟可以是9秒或更长。
[0033]
如本文所述,邻接状态机80可以确保在指示路由器16a和路由器16b彼此邻接之前,为逻辑链路20a和逻辑链路20b两者的网络设备16a、16b的接口分配地址,而不是仅依赖于逻辑链路20a的接口的地址分配(根据ipv4操作)来指示路由器16a与路由器16b之间的邻接。以这种方式,本文描述的邻接状态机可以避免沿着逻辑链路20b转发根据第二网络协议的流量,其中逻辑链路20b的网络设备16a、16b的接口尚未接收到地址,从而减少了根据第二网络协议的流量的流量黑洞。
[0034]
图2是图示根据本发明的技术的被配置为实现链路状态路由协议邻接状态机80的实例网络设备40的框图。网络设备40可以操作为图1的网络10的任何路由器16。
[0035]
在图2所示的示例中,网络设备40包括控制单元42,该控制单元42具有为网络设备提供控制平面功能性的路由引擎44以及转发引擎46,其为网络设备提供转发或数据平面功能性,以通过通常具有一个或多个物理网络接口端口的接口卡集合48a-48n(统称为“ifc 48”)发送和接收流量。转发引擎46执行传入数据分组的分组交换和转发以用于通过网络传输。
[0036]
如图2所示,转发引擎46包括转发信息库(fib)72,其存储将网络目的地与下一跳和传出接口相关联的转发数据结构。尽管在图2中未示出,但是转发引擎46可以包括中央处理单元(cpu)、存储器和一个或多个可编程分组转发专用集成电路(asic)。
[0037]
路由引擎44包括执行网络设备40的路由功能的各种协议50。在图2的所图示的示例中,协议50包括ipv4 52、ipv6 54和is-is 56作为被用来与网络中的其他网络设备交换路由信息的路由协议,以便发现网络拓扑并更新路由信息库(rib)66。例如,控制单元42可
以使用is-is 56或其他类型的路由协议,诸如bgp、ebgp或ibgp,来配置网络设备40与网络中的其他网络设备之间的路由会话。
[0038]
rib 66可以描述网络设备40所驻留的网络的拓扑,并且还可以描述网络内的各种路由以及针对每个路由的适当的下一跳,即,沿着每个路由的相邻路由设备。路由引擎44分析存储在rib 66中的信息以生成fib 72。路由引擎44将转发数据结构安装到转发引擎46内的fib 72中。fib 72将网络目的地与数据平面内的特定下一跳和对应的接口端口相关联。
[0039]
在图2的示例中,路由引擎44包括命令行界面(cli)60,该命令行界面60为管理员(未示出)提供访问以监视、配置或以其他方式管理网络设备40。另外,路由引擎44包括作为用户级过程的路由协议守护程序(rpd)64,其执行路由协议以与对等路由器或交换机通信、维持和更新路由引擎44中的一个或多个路由表,以及创建一个或多个用于安装在转发引擎46中的转发表,以及其他功能。
[0040]
ipv4 52和ipv6 54在网络设备40的ifc 48的所有物理网络接口端口上被启用。例如,ipv4链路本地地址被分配给ifc 48的一个或多个物理接口端口。另外,ipv6链路本地地址被分配给ifc 48的一个或多个物理接口端口。在一些示例中,在网络设备40上启用相邻者发现。例如,网络设备40可以执行is-is相邻者发现,以发现根据ipv4网络协议操作的一个或多个相邻者,以及根据ipv6网络协议操作的一个或多个相邻者。
[0041]
路由引擎44还可以针对每个启用的网络协议(例如,ipv4和/或ipv6)为网络设备40配置回送(loopback)地址。网络设备40的回送地址可以从被分配给网络设备40所驻留的子网的ip地址范围中被选择。
[0042]
路由引擎44还包括链路状态路由协议邻接状态机80。邻接状态机80操作以确定与网络设备40邻接的其他网络设备,以便以从网络设备40的角度反映网络拓扑的方式来构建图形或其他数据结构。路由引擎44可以使用由邻接状态机80生成的邻接信息作为用于实现路径选择算法的基础,以为由转发引擎46转发的数据分组确定通过网络的路径。
[0043]
邻接状态机80通过确定是否已经跨物理链路建立了到与网络设备40邻接的网络设备的一个或多个逻辑链路,来标识该网络设备。当根据用于逻辑链路的网络协议为网络设备40的接口分配了地址时,认为逻辑链路在网络设备40与相邻设备之间建立并且可用于运输网络流量,根据用于逻辑链路的网络协议为相邻设备的接口分配了地址,并且网络设备40和相邻设备已经交换了问候消息。问候消息用以向接收方设备通知发送设备的接口地址。在一些示例中,问候消息是is-is问候(iih)pdu。
[0044]
逻辑链路可能具有三个邻接状态:向下、初始化和向上。“向下”(在本文中也称为“不活动”)是初始状态,并且指示尚未从相邻设备接收到问候消息。“初始化”指示网络设备40已成功从相邻设备接收到“问候”消息,但是不确定相邻设备是否也已经成功从网络设备40接收到了“问候”消息。“向上”(在本文中也称为“活动”)指示网络设备40已确认相邻设备正在从网络设备40接收“问候”消息。有关is-is邻接状态机的实现的附加信息在以下文献中被描述:上面引用的iso 10589和rfc 1195以及d.katz的“three-way handshake for is-is point-to-point adjacencies(用于is-is点对点邻接的三向握手)”,rfc 5303(2008年10月),可从https://tools.ietf.org/html/rfc5303获得。
[0045]
通常,网络设备40可以大约每10秒与相邻设备,诸如图1的路由器16交换问候消息。一旦网络设备40发现相邻设备并且形成了邻接,则网络设备40可以将问候消息用作“存
活(keepalive)”消息以维持该邻接并通知邻接参数的改变。作为问候消息的示例,iih pdu可以包括例如发起iih消息的网络设备的系统id,针对指定转发器(df)选择的优先级,lan id和/或本地电路id。在网络设备40被配置为is-is层1设备的情况下,网络设备40通过ifc 48仅发送层1 iih pdu。在网络设备40被配置为is-is层1/层2设备的情况下,网络设备40通过ifc 48发送层1 iih pdu和层2 iih pdu。
[0046]
如上所述,网络设备40实现ipv4和ipv6网络协议两者,使得一个或多个ifc 48被分配ipv4地址,并且一个或多个ifc 48被分配ipv6地址。网络设备40可以经由物理链路被连接到相邻设备。物理链路可以终止于网络设备40的一个或多个ifc 48处。网络设备40根据第一网络协议在物理链路上建立第一逻辑链路。例如,将ipv4地址分配给网络设备40的ifc 48a,并且网络设备40经由ifc 48a泛洪ipv4 iih pdu。在经由ifc 48a从相邻设备接收到ipv4iih pdu之后,网络设备40根据ipv4通过ifc 48a与相邻设备建立第一逻辑链路。
[0047]
此外,网络设备40根据第二网络协议在物理链路上建立第二逻辑链路。例如,将ipv6地址分配给网络设备40的ifc 48b,并且网络设备40经由ifc 48b泛洪ipv6iih pdu。在经由ifc 48b从相邻设备接收到ipv6iih pdu之后,网络设备40根据ipv6通过ifc 48b与相邻设备建立第二逻辑链路。
[0048]
不使用本公开的技术的邻接状态机仅可以响应于确定ifc 48a上的第一逻辑链路是“向上”或“活动”的,而指示相邻设备与网络设备40邻接,即使在ifc 48b上的第二逻辑链路仍处于“初始化”状态的情况下。例如,在ifc 48a根据ipv4网络协议建立第一逻辑链路的情况下,可以相对快速地向ifc 48a分配ipv4地址,使得第一逻辑链路可以转变为“活动”或“向上”状态。相比之下,在ifc 48b根据ipv6网络协议建立第二逻辑链路的情况下,dhcp服务器可以在第二逻辑链路的dad操作解析的时间段内不向ifc 48b分配地址。
[0049]
不使用本公开的技术的邻接状态机仅可以使用网络设备40和相邻设备之间的第一逻辑链路来确定网络设备40和相邻设备是邻接的。这可以引起路由引擎44使用网络设备40与相邻设备之间的第二逻辑链路,该第二逻辑链路将被用在用于根据第二网络协议转发网络流量的spf计算中,如果在第二逻辑链路尚未“活动”时沿着网络设备40与相邻设备之间的第二逻辑链路转发流量,则这可能导致流量丢失或黑洞。
[0050]
根据本公开的技术,邻接状态机80确保在指示网络设备40和相邻设备彼此邻接之前,网络设备40与相邻网络设备之间的物理链路上建立的每个逻辑链路处于“活动”状态。例如,在网络设备40和相邻设备之间建立了根据第一网络协议的第一逻辑链路和根据第二网络协议的第二逻辑链路。在一个示例中,第一网络协议是ipv4,b并且第二网络协议是ipv6。
[0051]
为了确定第一逻辑链路是否处于“活动”状态,邻接状态机80确定网络设备40是否已经由ifc 48为第一逻辑链路输出了一个或多个ipv4iih pdu,以及相邻设备是否已为第一逻辑链路输出了一个或多个ipv4iih pdu。在一些示例中,ipv4iih pdu包括类型长度值(tlv),该类型长度值指定相应的网络设备40和相邻设备根据第一网络协议操作的能力(例如,网络设备40和相邻设备都与ipv4网络协议兼容)。通过确保网络设备40和相邻设备都已经为第一逻辑链路输出了iih pdu,邻接状态机80可以确保已经将ipv4地址分配给网络设备40的ifc 48并且分配给相邻设备的接口。由此,邻接状态机80可以确定第一逻辑链路处于“活动”状态。
[0052]
此外,为了确定是否建立了第二逻辑链路,邻接状态机80确定网络设备40是否已经由ifc 48为第二逻辑链路输出了一个或多个ipv6 iih pdu,以及相邻设备是否已为第二逻辑链路输出了一个或多个ipv6 iih pdu。在一些示例中,ipv6iih pdu包括tlv,该tlv指定相应网络设备40和相邻设备根据第二网络协议操作的能力(例如,网络设备40和相邻设备均与ipv6网络协议兼容)。通过确保网络设备40和相邻设备都已经为第二逻辑链路输出了iih pdu,邻接状态机80可以确保已将ipv6地址分配给网络设备40的ifc 48和相邻设备的接口。由此,邻接状态机80可以确定第二逻辑链路处于“活动”状态。
[0053]
在一些示例中,邻接状态机80确定在预定时间量期满时第二逻辑链路是活动的。预定时间量可以对应于地址分配过程解析网络设备40的一个或多个ifc 48和相邻网络设备的接口所需的时间。例如,在第二逻辑链路根据ipv6网络协议操作的情况下,预定时间量可以对应于dhcp服务器执行重复地址检测(dad)操作所需的时间,以确保在同一网络内没有分配重复的地址。在一些示例中,邻接状态机80基于对以下各项的组合中的一个或多个的确定来确定第二逻辑链路是活动的:1)网络设备40已经输出了用于第二逻辑链路的iih pdu;2)相邻设备40已经输出了用于第二逻辑链路的iih pdu;或3)预定时间量已过。预定时间量的使用可以为第二逻辑链路的dad操作解析或超时提供足够的时间,从而确保第二逻辑链路在指示网络设备40和相邻设备邻接之前处于“活动”状态。在一些示例中,邻接状态机80可以将包括预定时间量的通知输出以用于显示给用户。
[0054]
响应于确定第一逻辑链路处于“活动”状态并且第二逻辑链路处于“活动”状态,邻接状态机80确定相邻设备与网络设备40邻接。例如,邻接状态机80通过确保网络设备40和相邻设备针对两个逻辑链路都已经向彼此输出问候消息,来确保针对两个逻辑链路将地址分配给网络设备40和相邻设备的接口。例如,邻接状态机80在指示网络设备40和另一路由器16彼此邻接之前,确定网络设备40和相邻设备各自输出了ipv4iih pdu和ipv6iih pdu。
[0055]
邻接状态机80输出相邻设备与网络设备40邻接的指示。响应于网络设备40和相邻设备彼此邻接的指示,路由引擎44可以经由ifc 48泛洪通告网络设备40和相邻设备之间的第一逻辑链路的第一链路状态通告和通告网络设备40与相邻设备之间的第二逻辑链路的第二链路状态通告。在一些示例中,第一链路状态通告通告网络设备40与相邻设备之间的ipv4逻辑链路,并且第二链路状态通告通告网络设备40与相邻设备之间的ipv6逻辑链路。此外,路由引擎44将根据第一网络协议的第一逻辑链路和根据第二网络协议的第二逻辑链路添加到rib 66。在将第一逻辑链路和第二逻辑链路添加到rib 66之后,路由引擎44可以基于rib 66更新用于转发由网络设备40服务的网络流量的路径选择。在更新用于转发由网络设备40服务的网络流量的路径选择之后,路由引擎44可以解析rib 66以提供用于转发由网络设备40服务的网络流量的路径。以这种方式,如本文所述,邻接状态机80可以允许网络设备40避免沿着第二逻辑链路根据第二网络协议转发流量,其中第二逻辑链路还不能运输流量。因此,本文所述的邻接状态机可以减少流量黑洞的发生,诸如对于双栈is-is网络中的ipv6网络流量可能发生的情况,其中两个网络设备之间的物理链路被禁用和重新启用或经历链路“摆动”。
[0056]
图3a-图3b描绘了可以在其上实现本公开的技术的示例is-is网络300。is-is网络300包括网络设备302a-302e(以下称为“网络设备302”)。例如,网络设备302可以是图1的路由器16或图2的网络设备40的示例。
[0057]
is-is被设计为与国际标准化组织(iso)地址族一起使用的无连接网络服务(clns)链路状态路由协议。is-is后来被增强,以支持用于ipv4和ipv6网络协议的双栈is-is。is-is的邻接状态机可能仅取决于物理链路上的iso地址族。随着双栈is-is的引入,大多数邻接状态机都要求,如果逻辑接口通告ipv4接口地址,则该逻辑链路的两个接口应通告至少一个匹配ipv4子网,以建立邻接。
[0058]
is-is可以通过两种方式支持双栈is-is。首先,is-is支持默认的单播拓扑。在默认的单播拓扑中,所有物理链路都可以支持根据ipv4或ipv6网络协议建立的逻辑链路。未实现本公开的技术的is-is邻接状态机通常执行单个最短路径优先(spf)操作,并使用相同的最短路径以用于根据ipv4和ipv6网络协议来路由传送网络流量,不管路径中的所有网络设备是否支持ipv4和ipv6网络协议两者,或者根据ipv6建立的逻辑链路是否处于“活动”状态。如果网络中的所有逻辑链路支持ipv4和ipv6两者,则通常使用默认单播拓扑。
[0059]
其次,is-is支持mt is-is。在mt is-is中,网络设备分别通告ipv4和ipv6功能,使得所有网络设备都基于由相应逻辑链路支持的协议对网络具有多个视图。mt is-is邻接状态机对ipv4和ipv6网络协议执行分离的spf操作。这意味着ipv4路由遵循支持ipv4网络协议的路径,而ipv6路由遵循支持ipv6网络协议的路径,并且ipv4路由不一定与ipv6路由相同。
[0060]
在所有网络设备上同时启用了ipv4和ipv6网络协议的网络中,客户很可能不愿意部署mt is-is。例如,mt is-is的使用增加了网络的管理负担,因为mt is-is为ipv4和ipv6网络协议实现了分离的网络拓扑,从而增加了管理员必须配置、维持和升级网络的网络拓扑的数目。然而,在不使用mt is-is的情况下,在链路摆动期间,对于同一物理链路,可能会出现针对根据第一网络协议的接口的地址和针对根据第一网络协议的该接口的地址可能不会被同时分配。很有可能将ipv4地址快速分配给接口,而在dad操作解析时,接口的ipv6地址的分配可能会延迟。例如,当将ipv6地址分配给接口时,典型的dad实现会将ipv6地址保持在“初始化”状态(其中流量可能不会在接口上转发),直到完成dad检测为止。dad操作可能需要9秒钟或更长时间才能完成。在这样的部署中,当添加新的物理链路或具有更好成本度量的冗余物理链路(或摆动)时,可以立即分配针对在物理链路上建立的ipv4逻辑链路的接口的ipv4地址。一旦分配了ipv4地址,不使用本公开的技术的邻接状态机就可以确定新物理链路的两个网络设备之间的邻接。然而,如果在物理链路上也建立了ipv6逻辑链路,则分配给两个网络设备的接口的ipv6地址在挂起dad解析时可能尚未向上。即使ipv6地址仍处于“初始化”状态,spf计算仍可以使用ipv4邻接来选择新的物理链路(或摆动链路)作为ipv4和ipv6网络流量的较短路径。这可能会导致ipv6网络流量沿ipv6逻辑链路转发的流量黑洞,直到ipv6地址被分配给新链路的网络设备的接口为止。
[0061]
图3a描绘了示例is-is网络300,其包括经由多个物理链路304a-304e(以下称为“物理链路304”)连接的多个网络设备302a-302e(以下称为“网络设备302”)。在图3a的示例中,考虑所有链路304具有相等成本度量的场景。从网络设备302a到网络设备302e的最短路径将是:1)经由物理链路304a从网络设备302a到网络设备302b;2)经由物理链路304c从网络设备302b到网络设备302d;以及3)经由物理链路304e从网络设备302d到网络设备302e。
[0062]
在图3b中,网络设备302b和网络设备302d之间的物理链路304c被禁用(如由物理链路304c的虚线所描绘)。图3b描绘了收敛后的(post-convergence)拓扑。现在从302a到
302e的最短路径是:1)经由物理链路304a从网络设备302a到网络设备302b;2)经由物理链路304b从网络设备302b到网络设备302c;3)经由物理链路304d从网络设备302c到网络设备302d;以及4)经由物理链路304e从网络设备302d到网络设备302e。
[0063]
一段时间后,网络设备302b和302d之间的物理链路304c被恢复。立即分配网络设备302b和302d的ipv4接口的ipv4地址,以通过物理链路304c建立ipv4逻辑链路,并且由于网络设备302b和302d之间的匹配ipv4地址,未实现本公开的技术的邻接状态机可以确定网络设备302b和302d是邻接的。然而,在用于ipv6接口的dad操作解析时,用于网络设备302b和302d的ipv6接口的ipv6地址可能仍处于初始化状态。spf计算可以选择网络设备302b和302d之间的链路304c作为到网络设备302e的最短路径,并且网络设备302b可以切换所有路由,以使用网络设备302b和302d之间的物理链路304c作为到网络设备302e的主要下一跳。即使由于网络设备302b和302d的ipv6接口的ipv6地址仍未向上,网络设备302b和302d之间的ipv6逻辑链路未处于活动状态,这也可能发生。即使存在活动的冗余路径(例如,来自网络302b->302c->302d)可用,这种场景也会导致转发到通过物理链路304c建立的ipv6逻辑链路的ipv6网络流量丢失。
[0064]
通过使用is-is mt可以防止上述ipv6流量丢失问题。然而,如果客户在所有链路上都已同时拥有ipv4和ipv6,则is-is mt解决此问题会是麻烦、昂贵且难以实现的。此外,从客户的角度来看,在到网络设备302d的冗余路径(例如,经由物理链路304b从网络设备302b到网络设备302c,以及经由物理链路304d从网络设备302c到网络设备302d)已经可用的情况下,流量下降是不直观和不希望的。
[0065]
根据本公开的技术,每个网络设备302实现如本文所述的链路状态路由协议邻接状态机。在一些示例中,链路状态路由协议邻接状态机是修改的is-is邻接状态机。当新的冗余物理链路可用时,邻接状态机用以防止流量下降。邻接状态机等待物理链路的两个网络设备302向彼此输出根据第一网络协议的问候消息以及根据第二网络协议的问候消息,然后再确定两个网络设备302彼此邻接。在一些示例中,第一网络协议是ipv4网络协议,并且第二网络协议是ipv6网络协议。
[0066]
在一些示例中,可以经由配置旋钮来调整邻接状态机,以在以下各项之间切换:1)在确定两个网络设备302彼此邻接之前,等待仅来自两个网络设备302的ipv4接口的iih问候消息;2)在确定两个网络设备302彼此邻接之前,等待来自两个网络设备302的ipv4接口和ipv6接口的iih问候消息。
[0067]
在一个示例中,物理链路304c将在网络设备302b与相邻网络设备302d之间建立。网络设备302b的邻接状态机确定网络设备302b和网络设备302d是否都支持ipv4和ipv6网络协议。在一些示例中,邻接状态机通过检查由网络设备302输出的iih消息的协议支持的tlv(tlv 129)来确定网络设备302所支持的网络协议。
[0068]
如果网络设备302b和网络设备302d都支持ipv4和ipv6网络协议,则邻接状态机将等待以下任一项:1)预定时间量;或2)直到每个网络设备302在iih pdu中通告ipv4链路地址(tlv 132)和ipv6链路地址(tlv 232)。在满足以上(1)或(2)中的任一个之后,邻接状态机确定网络设备302b和网络设备302d彼此邻接。在一些示例中,预定时间量(例如,以秒为单位的strict_adjacency_wait值)与ipv6 dad重试计时器实现相关联,以确保在确定网络设备302b和网络设备302d彼此邻接之前,邻接状态机等待dad操作完成。预定时间量的使用
允许邻接状态机确定:即使没有将地址分配给所有逻辑链路的接口,在物理链路304c上建立的至少一个逻辑链路也是活动的。例如,邻接状态机可以确定:即使在物理链路304c上建立的ipv6逻辑链路无法解析,网络设备302b和网络设备302d经由在物理链路304c上建立的ipv4逻辑链路彼此邻接。
[0069]
在一些示例中,本公开的技术可以仅实现形成物理链路304c的两个节点中的单个节点(例如,网络设备302b和网络设备302d之一)。这是因为spf中的双向性检查会防止网络设备302b和302d中的任一个选择最短路径计算的新物理链路,直到网络设备302b确定网络设备302d是邻接的并且网络设备302d确定网络设备302b为止。这可能会防止选择流量只能单向流动的物理链路。此外,本文描述的邻接状态机未将任何种类的路由回路引入路由路径计算中。
[0070]
在一些示例中,邻接状态机向用户输出指定等待周期的通知。在一些示例中,邻接状态机向用户输出指示两个网络设备302之间的邻接处于“初始化”状态的通知,因为本文所述的严格邻接检查仍在进行中。在一些示例中,通知是系统日志消息或其他显示命令输出。在一些示例中,通知可配置为可调试性增强。
[0071]
因此,本公开的技术可以防止在对运行默认单播拓扑(例如,不使用is-is mt的情况)的双栈is-is网络中的物理链路进行邻接检查期间ipv6网络流量的可能丢弃。此外,本公开的技术描述了一种邻接状态机,其可以实现基于计时器的更严格的邻接状态机,其避免了在所有物理链路均支持ipv4和ipv6网络协议的网络中部署mt is-is的需要。本文描述的邻接状态机可以容易地实现到现有网络中,并且不需要现有链路状态路由协议或网络协议的附加扩展。此外,邻接状态机可以解决双栈is-is网络中拓扑改变期间这种流量下降的常见实例。
[0072]
图4描绘了根据本公开的技术的操作。为了方便起见,相对于图1描述了图4。具体地,图4描绘了用于基于确定路由器16a(例如,第一网络设备)和路由器16b(例如,第二网络设备)经由物理链路22彼此邻接,来更新路径选择度量的操作,该路径选择度量用于将由路由器16a服务的流量转发到路由器16b。例如,路由器16a的邻接状态机80确保在确定路由器16a和路由器16b彼此邻接之前,根据第一网络协议的路由器16a与路由器16b之间的第一逻辑链路20a以及根据第二网络协议的路由器16a与路由器16b之间的第二逻辑链路20b处于“活动”状态。在一些示例中,邻接状态机80是运行默认单播拓扑的双栈is-is网络10中的修改的is-is邻接状态机。
[0073]
如图4的示例中所描绘的,路由器16a的邻接状态机80确定路由器16a和路由器16b之间的根据第一网络协议的第一逻辑链路20a是否是活动的。在一些示例中,第一逻辑链路20a在物理链路22上建立并且根据ipv4路由协议操作。
[0074]
在一个示例中,路由器16a的邻接状态机80通过确定以下内容来确定第一逻辑链路20a是否处于“活动”状态:路由器16a是否已经向路由器16b输出了根据第一网络协议的第一问候消息,以及路由器16b是否已经向路由器16a输出了根据第一网络协议的第二问候消息(400)。在一些示例中,第一和第二问候消息是ipv4iih pdu。在一些示例中,第一和第二问候消息包括tlv,其指定相应路由器16a和路由器16b根据第一网络协议操作的能力。例如,tlv可以规定对应的路由器16与ipv4网络协议兼容。通过等待直到路由器16a和16b都已经输出了根据第一网络协议的第一和第二问候消息,路由器16a的邻接状态机80可以确保
已经将根据第一网络协议的地址分配给用于第一逻辑链路20a的路由器16a和16b的接口。
[0075]
响应于确定路由器16a和路由器16b都尚未根据第一网络协议输出相应的第一和第二问候消息(例如,框400的“否”路径),路由器16a的邻接状态机80可以继续监视以确定是否已输出第一和第二问候消息。在一些示例中,如果在预定时间量内尚未输出第一和第二问候消息,则邻接状态机80可以确定路由器16a和路由器16b彼此不邻接。
[0076]
响应于确定路由器16a和路由器16b都已经根据第一网络协议输出了相应的第一和第二问候消息(例如,框400的“是”路径),路由器16a的邻接状态机80确定是否预定时间量已过去(402)。在第二网络协议是ipv6网络协议的示例中,预定时间量类似于dad操作解析分配给支持第二逻辑链路20b的路由器16a和16b的接口的地址所需的时间长度。预定时间量的使用可以为ipv6接口的dad操作解析提供足够的时间,从而在指示路由器16a和16b彼此邻接之前确保第二逻辑链路20b处于“活动”状态。此外,预定时间量的到期可以允许邻接状态机80确定路由器16a和16b经由第一逻辑链路20a彼此邻接,根据ipv4协议操作,即使根据ipv6协议操作的第二逻辑链路20b未能建立。在一些示例中,路由器16a的邻接状态机80输出包括预定时间量的通知以用于显示给用户。
[0077]
响应于确定尚未过预定时间量(例如,框402的“否”路径),路由器16a的邻接状态机80通过确定路由器16a已将根据第二网络协议的第三问候消息输出到路由器16b,并且路由器16b已将根据第二网络协议的第四问候消息输出到路由器16a,来确定第二逻辑链路20a是否处于“活动”状态(404)。在一些示例中,第三和第四问候消息是ipv6iih pdu。在一些示例中,第三和第四问候消息包括tlv,其指定相应路由器16a和路由器16b根据第二网络协议操作的能力。例如,tlv可以规定对应的路由器16与ipv6网络协议兼容。通过等待直到路由器16a和16b都已经输出了根据第二网络协议的第三和第四问候消息,路由器16a的邻接状态机80可以确保已经将根据第二网络协议的地址分配给第二逻辑链路20a的路由器16a和16b的接口。
[0078]
响应于确定路由器16a和路由器16b都已经根据第二网络协议输出了相应的第三和第四问候消息(例如,框404的“是”路径),或者响应于确定预定时间量已过之后(例如,框402的“是”路径),路由器16a的邻接状态机80确定路由器16a和路由器16b彼此邻接(406)。因此,邻接状态机80在确定路由器16a和16b彼此邻接之前,确定路由器16a和16b之间的第一逻辑链路20a是活动的,并且路由器16a和16b之间的第二逻辑链路20b是活动的。响应于确定路由器16a和16b彼此邻接,路由器16a可以输出第一链路状态通告和第二链路状态通告,第一链路状态通告经由第一逻辑链路20a向其他路由器16通告路由器16a和16b之间的邻接,第二链路状态通告经由第二逻辑链路20b向其他路由器16通告路由器16a和16b之间的邻接(408)。
[0079]
响应于确定路由器16a和路由器16b彼此邻接,路由器16a向路由器16a的rib添加根据第一网络协议操作的第一逻辑链路20a和根据第二网络协议操作的第二逻辑链路20b(410)。在将第一和第二逻辑链路20a、20b添加到路由器16a的rib之后,路由器16a基于路由器16a的更新后的rib来更新用于转发由路由器16a服务的网络流量的路径选择(412)。
[0080]
在更新用于转发由路由器16a服务的网络流量的路径选择之后,路由器16a解析路由器16a的rib以提供用于转发由路由器16a服务的网络流量的路径(414)。以这种方式,如本文所述的路由器16a的邻接状态机80可以允许路由器16a避免根据第二网络协议在第二
逻辑链路20b上转发流量,其中地址尚未被分配给支持第二逻辑链路20b的网络设备16a和16b的接口。因此,本文所述的邻接状态机可以减少流量黑洞的发生,尤其是对于在双栈is-is网络中观察到ipv6网络流量的情况,其中两个网络设备之间的物理链路被禁用和重新启用,或者在链路“摆动”期间。
[0081]
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各种方面可以被实现在一个或多个处理器内,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效的集成或离散逻辑电路、以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以单独或与其他逻辑电路或任何其他等效电路组合地指代任何前述逻辑电路。包括硬件的控制单元还可以执行本公开的一种或多种技术。
[0082]
这样的硬件、软件和固件可以在同一设备内或在分离的设备内被实现以支持本公开中描述的各种操作和功能。另外,所描述的任何单元、模块或组件可以一起或分离地被实现为离散但可互操作的逻辑设备。将不同特征描绘为模块或单元旨在突出不同的功能方面,并且不一定暗示此类模块或单元必须通过分离的硬件或软件组件来实现。而是,可以通过分离的硬件或软件组件来执行与一个或多个模块或单元相关联的功能性,或者可以将其集成在通用的或分离的硬件或软件组件内。
[0083]
本公开中描述的技术还可以被实施或编码在包含指令的计算机可读介质,诸如计算机可读存储介质中。被嵌入或编码在计算机可读存储介质中的指令可以使得可编程处理器或其他处理器例如在执行指令时执行该方法。计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读介质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1