电子通信装置的制造及其应用技术1.本技术实施例涉及通信网络技术领域,特别涉及一种转发报文的方法及相关设备。背景技术:2.为了应对第六代网络协议(internet protocol version 6,ipv6)网络中链路或节点出现故障时,ipv6报文丢包时间长的问题,需要将网络协议快速重路由(internet protocol fast reroute,ip frr)应用到ipv6网络中。其中,ip frr的工作原理是由转发节点预先确定一条转发报文的备份路径,然后转发节点在检测到链路或节点故障时基于该备份路径转发报文。3.目前,将应用于ipv6网络中的ip frr称为ipv6 frr。ipv6 frr的工作原理为:转发节点根据全网链路状态数据库利用无环备份路径(loop-free alternate,lfa)算法预先计算出备份路径,该备份路径具体是指从该转发节点至报文中携带的上层协议数据需要到达的目的节点的备份下一跳,并将该目的节点的ip地址和该备份下一跳之间的对应关系保存至转发表。当转发节点检测到链路或节点发生故障时,基于报文中的上层协议数据所对应的目的地址查找转发表以将流量转发至备份下一跳。这种流量保护方式需要备份路径上各个节点在转发流量时均需依据报文中的上层协议数据的目的地址查表,使得在流量保护场景中,转发节点仅仅关心流量的目的地址,如此在基于流量的目的地址从转发表中无法查找到备份下一跳的情况下(比如基于ip frr算法没有成功计算出备份下一跳的情况),ipv6报文将无法成功转发至目的地。技术实现要素:4.本技术实施例提供了一种转发报文的方法、装置、计算机设备及存储介质,可以解决提高ipv6网络故障场景中转发报文的灵活性。技术方案如下:5.第一方面,提供了一种转发报文的方法,该方法由第一节点执行。在该方法中,第一节点接收第六代网络协议ipv6报文,ipv6报文的目的地为第二节点;在第一节点至第二节点之间的主路径故障的情况下,第一节点在ipv6报文的外层封装一个或多个扩展ipv6报文头;第一节点转发封装有这一个或多个扩展ipv6报文头的ipv6报文。其中,这一个或多个扩展ipv6报文头分别和一个或多个节点对应,这一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的路径中除主路径之外的路径。6.在本技术实施例中,在主路径故障的情况下,可以通过第一备份路径转发该ipv6报文。为了避免后续第一备份路径上的每个节点均需要依据报文中的上层协议数据所对应的目的ip地址(也即是该ipv6报文的目的地第二节点的ip地址)来转发该ipv6报文,第一节点可以直接在该ipv6报文的外层封装能够指示第一备份路径上的一个节点或节点的一个或多个扩展ipv6报文头,如此,后续第一备份路径上的各个节点根据这一个或多个扩展ipv6报文头指示的一个或多个节点便可转发该ipv6报文,而不是必须基于ipv6报文的目的地第二节点来转发该ipv6报文,这样可以使得ipv6报文经过指定的一些节点,从而提高了主路径故障场景下该ipv6报文的转发成功率。7.基于第一方面提供的方法,在一种可能的实现方式中,这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在该ipv6报文的外层,一个或多个扩展ipv6报文头中的第一扩展ipv6报文头包括一个标准报头以及一个扩展报头,标准报头中携带的目的地址为相应节点的ipv6地址,标准报头中的下一报头字段的值指示位于第一扩展ipv6报文头中的扩展报头的类型,扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉第一扩展ipv6报文头,第一扩展ipv6报文头为一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头。8.通过上述对扩展ipv6报文头的定义,这一个或多个扩展ipv6报文头中的标准报头能够指示第一备份路径上的一个或多个节点。且通过这一个或多个扩展ipv6报文头中的扩展报头能够使得第一备份路径上的各个节点在接收到该ipv6报文时,依次剥掉最外层的各个扩展ipv6报文头,以便于基于下个扩展ipv6报文头继续转发该ipv6报文。提高了本技术实施例提供的方法在转发报文时的效率。9.基于第一方面提供的方法,在一种可能的实现方式中,所述扩展报头中携带有下一报头字段和长度字段,所述扩展报头中下一报头字段的值指示下一个报文头为ipv6报文头,所述长度字段的值指示所述扩展报头的长度。10.通过上述对扩展报头的定义,可以使得节点在剥掉扩展ipv6报文头能够明确具体剥掉到报文的什么位置,并确定出剥掉之后下一个报文头仍为ipv6报文头,以便于基于ipv6报文头的相关协议标准解析下一个报文头,从而基于解析出来的目的地址继续转发ipv6报文。11.基于第一方面提供的方法,在一种可能的实现方式中,第一备份路径为基于拓扑无关的无环备份路径ti-lfa算法得到的备份路径。这种场景下,第一备份路径上的一个或多个节点可以有以下几种情况。12.在基于ti-lfa算法确定的p空间和q空间存在交集的情况下,一个或多个节点为pq节点,pq节点为p空间和q空间的交集节点,p空间是指以第一节点为根节点建立最短路径spf树中,所有从根节点不经过保护链路可达的节点集合,保护链路为主路径,q空间是指以第二节点为根节点建立反向spf树中,所有从根节点不经过保护链路可达的节点集合;或者,13.在基于ti-lfa算法确定的p空间和q空间不存在交集的情况下,且p节点到q的链路上没有其他节点的情况下,一个或多个节点包括p节点以及q节点,p节点是指p空间的一个节点,q节点是指q空间的一个节点;或者,14.在基于ti-lfa算法确定的p空间和q空间不存在交集,且p节点到q的链路上存在其他节点的情况下,一个或多个节点包括p节点、q节点、以及p节点和q节点之间的链路上每个节点。15.在第一备份路径为基于ti-lfa算法得到的备份路径的情况下,第一备份路径上的一个或多个节点具体可以通过上述实现方式实现,也即是,在本技术实施例中,可以在ipv6网络中使能ti-lfa算法,使得本技术实施例提供的方法能够适用于更多类型的组网。16.基于第一方面提供的方法,在一种可能的实现方式中,在该方法中,还可以响应于ti-lfa算法使能指令,根据ti-lfa算法确定第一备份路径上的一个或多个节点。17.在本技术实施例中,可以在网络初始化或更新时通过上述方式得到第一备份路径,以便在出现故障时,快速基于已经确定的第一备份路径对ipv6报文进行封装。18.基于第一方面提供的方法,在一种可能的实现方式中,在该方法中,第一备份路径为基于拓扑无关的无环备份路径ti-lfa算法得到的备份路径。这种场景下,在主路径故障的情况下,第一节点利用无环备份路径lfa算法确定第二备份路径;在第二备份路径确定失败的情况下,第一节点执行在ipv6报文的外层封装一个或多个扩展ipv6报文头的步骤。19.基于第一方面提供的方法,在一种可能的实现方式中,在该方法中,第二备份路径确定成功的情况下,第一节点通过第二备份路径转发ipv6报文。20.在主路径故障的情况下,先基于lfa算法进行故障消除,在lfa算法失败的情况下,再通过ti-lfa算法得到的第一备份路径封装多个扩展ipv6报文头以转发ipv6报文。提高了本技术实施例提供的报文转发方法和现有的ipv6网络中流量保护方式之间的兼容性。21.第二方面、提供了一种转发报文的方法,该方法由第三节点执行。22.在该方法中,第三节点接收来自第一节点的第六代网络协议ipv6报文,ipv6报文中封装有一个或多个扩展ipv6报文头,一个或多个扩展ipv6报文头分别和一个或多个节点对应,一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的一条路径;第三节点基于一个或多个扩展ipv6报文头中的至少一个扩展ipv6报文头转发ipv6报文。23.基于第二方面提供的方法,在一种可能的实现方式中,该ipv6报文是第一节点在第一节点至第二节点之间的主路径故障的情况下,将接收到的ipv6报文封装上一个或多个扩展ipv6报文头后得到的。24.基于第二方面提供的方法,在一种可能的实现方式中,这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在该ipv6报文的外层,这一个或多个扩展ipv6报文头中的第一扩展ipv6报文头包括一个标准报头以及一个扩展报头,标准报头中携带的目的地址为相应节点的ipv6地址,标准报头中的下一报头字段的值指示位于第一扩展ipv6报文头中的扩展报头的类型,扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉第一扩展ipv6报文头,第一扩展ipv6报文头为一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头。25.这种场景下,前述第三节点基于一个或多个扩展ipv6报文头中的至少一个扩展ipv6报文头转发ipv6报文的实现方式可以为:第三节点确定ipv6报文最外层的ipv6报文头;如果最外层的ipv6报文头中的标准报头携带的ip地址为第三节点的ipv6地址、最外层的ipv6报文头中的标准报头中的下一报头字段的值指示最外层的ipv6报文头中的扩展报头的类型,且扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉相应ipv6报文头,则剥掉最外层的ipv6报文头,转发剥掉最外层报文头的ipv6报文。26.基于第二方面提供的方法,在一种可能的实现方式中,第一扩展ipv6报文头中扩展报头中携带有下一报头字段和长度字段,第一扩展ipv6报文头中扩展报头中的下一报头字段的值指示下一个报文头为ipv6报文头,长度字段的值指示第一扩展ipv6报文头中扩展报头的长度。27.这种场景下,前述剥掉最外层的ipv6报文头的实现方式可以为:基于最外层的ipv6报文头中的扩展报头中下一报头字段的值确定最外层的ipv6报文头后的下一个报文头为ipv6报文头,并基于最外层的ipv6报文头中扩展报头中的长度字段剥掉最外层的ipv6报文头。相应地,前述转发剥掉最外层报文头的ipv6报文的实现方式可以为:基于最外层的ipv6报文头后的下一个ipv6报文头转发剥掉最外层报文头的ipv6报文。28.基于第二方面提供的方法,在一种可能的实现方式中,第三节点确定ipv6报文最外层的ipv6报文头之后,在该方法中,如果最外层的ipv6报文头中的标准报头携带的ip地址不是第三节点的ip地址,则获取和最外层的ipv6报文头中携带的ip地址对应的下一跳;基于和最外层的ipv6报文头中携带的ip地址对应的下一跳转发ipv6报文。29.上述第二方面提供的报文转发方法的技术效果可以参考第一方面提供的报文转发方法的技术效果,在此不再赘述。30.第三方面,提供了一种第一节点,所述第一节点具有实现上述第一方面中转发报文的方法行为的功能。所述第一节点包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的转发报文的方法。31.第四方面,提供了一种第三节点,所述第三节点具有实现上述第二方面中转发报文的方法行为的功能。所述第三节点包括至少一个模块,该至少一个模块用于实现上述第二方面所提供的转发报文的方法。32.第五方面,提供了一种转发节点,所述转发节点的结构中包括处理器和存储器,所述存储器用于存储支持转发节点执行上述第一方面或第二方面所提供的转发报文的方法的程序,以及存储用于实现上述第一方面或第二方面所提供的转发报文的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述转发节点还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。33.第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的转发报文的方法。34.第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的转发报文的方法。35.上述第二方面至第七方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。附图说明36.图1是本技术实施例提供的一种网络系统的架构示意图;37.图2是本技术实施例提供的一种转发报文的方法流程图;38.图3是本技术实施例提供的一种扩展ipv6报文头的格式示意图;39.图4是本技术实施例提供的另一种网络系统的架构示意图;40.图5是本技术实施例提供的另一种网络系统的架构示意图;41.图6是本技术实施例提供的另一种转发报文的方法流程图;42.图7是本技术实施例提供的一种基于扩展ipv6报文头转发报文的流程示意图;43.图8是本技术实施例提供的一种第一节点的结构示意图;44.图9是本技术实施例提供的一种第三节点的结构示意图;45.图10是本技术实施例提供的一种转发节点的结构示意图。具体实施方式46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。47.应当理解的是,本文提及的“多个”是指两个或两个以上。在本技术的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。48.在转发报文的过程中,当报文转发路径上的某段链路或某个节点发生故障时,需要重新获取另一个转发路径,以基于另一个转发路径来转发报文,以使故障得以消除。其中,重新获取另一个转发路径的过程可以称为路由收敛。需要说明的是,在路由收敛前网络会暂停报文的转发流程,也即是网络流量会发生中断。而内部网关协议(interior gateway protocols,igp)网络的故障消除需要经历“故障感知、链路状态协议(link state protocol,lsp)更新、lsp泛洪、路由计算和下发转发信息库(forward information base,fib)”等流程,因此igp网络故障消除的时间远远超过了用户感知流量中断的时间,如此便不能满足此类网络业务的实时性要求。49.为了满足网络内各类业务的实时性要求,目前提出了ip frr技术。ip frr技术利用全网链路状态数据库,预先计算出备份路径,保存在转发表中,当检测到转发路径上的链路或节点故障时,马上切换到备份路径进行数据转发,大大缩短了流量中断时间。50.在ipv6网络中,ipv6流量转发时同样可以使用ipv6 frr技术进行保护。本技术实施例提供的转发报文的方法就应用于ipv6网络中对流量进行保护的场景中。目的在于提供一种灵活的转发ipv6报文的方式。51.为了后续便于说明,在此对本技术实施例涉及的网络系统进行详细解释说明。52.图1是本技术实施例提供的一种网络系统的架构示意图。如图1所示,该网络系统100包括源节点101、中间节点102以及目的节点103。其中,源节点101和中间节点102之间通过有线或无线方式连接以进行通信,中间节点102和目的节点103之间通过有线或无线方式连接以进行通信。53.图1中的源节点101标记为节点s,目的节点103标记为节点d,中间节点102可以为多个节点,图1中示例地为节点x、节点n、节点y以及节点z。54.在图1所示的网络系统中,由于中间节点102的数量通常为多个,且这多个中间节点有多种网络拓扑,因此,在源节点101和目的节点103之间通常有多条转发报文的路径。这多条转发报文的路径中一条为主路径,其他可以作为备份路径。其中,主路径和备份路径可以依据各条路径上的代价值(metric)来确定,本技术实施例并不限定如何确定主路径和备份路径。55.如图1所示,在节点s至节点d之间多条转发报文的路径,一条路径为节点s→节点x→节点d,另一条路径为节点s→节点n→节点y→节点z→节点x→节点d。其中,节点s→节点x→节点d这条路径为节点s至节点d之间转发报文的主路径。56.需要说明的是,图1所示的组网仅仅是本技术实施例涉及的网络系统的一种示例的组网,本技术实施例涉及的报文转发方法可以应用于任意类型的组网中,本技术实施例在此就不再一一详细说明。57.下面对本技术实施例提供的报文转发方法进行详细解释说明。58.图2是本技术实施例提供的一种报文转发方法流程示意图。如图2所示,该方法包括如下几个步骤。59.步骤201:第一节点接收ipv6报文,该ipv6报文的目的地为第二节点。60.第一节点在接收到该目的地为第二节点的ipv6报文后,第一节点会优先基于第一节点至第二节点之间的主路径转发该ipv6报文。换句话说,在主路径上的任一节点接收到ipv6报文时,便可基于该ipv6报文中携带的目的ip地址(该目的ip地址即为第二节点的ip地址),从本地转发表中获取到达该目的ip地址所指示的节点所对应的下一跳,然后基于确定的下一跳转发该ipv6报文,从而实现第一节点基于主路径发送该ipv6报文。61.如图1所示,第一节点可以为节点s,节点s接收ipv6报文,该ipv6报文携带的目的ip地址为节点d的ip地址。节点s基于转发表确定与节点d的ip地址对应的下一跳为节点x,因此,节点s便可将该ipv6报文转发至节点x,从而实现节点s基于主路径转发该ipv6报文。62.第一节点在基于主路径转发该ipv6报文后,如果第一节点通过出接口的接口状态或者下一跳邻居关联的双向转发检测机制(bidirectional forwarding detection,bfd)会话状态感知到该主路径上某段链路或某个节点发生故障,此时第一节点便可通过下述步骤202中的第一备份路径来转发该ipv6报文。63.可选地,第一节点在基于主路径转发该ipv6报文之前,如果已经预先确定出该主路径上某段链路或某个节点发生故障,此时第一节点便可直接通过下述步骤202中的第一备份路径转发该ipv6报文。64.也即是,无论第一节点在哪种场景下感知到主路径故障,第一节点便可基于下述步骤202通过第一备份路径转发该ipv6报文。65.步骤202:在第一节点至第二节点之间的主路径故障的情况下,第一节点在该ipv6报文的外层封装一个或多个扩展ipv6报文头,一个或多个扩展ipv6报文头分别和一个或多个节点对应,这一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的路径中除主路径之外的路径。66.在本技术实施例中,在主路径故障的情况下,可以通过第一备份路径转发该ipv6报文。为了避免后续第一备份路径上的每个节点必须通过报文中的上层协议数据所对应的目的ip地址(该目的ip地址也即为第二节点的ip地址)来转发该ipv6报文,第一节点可以直接在该ipv6报文的外层封装能够指示第一备份路径的一个或多个扩展ipv6报文头,如此,后续第一备份路径上的各个节点只需要根据这一个或多个扩展ipv6报文头便可转发该ipv6报文,这样可以使得ipv6报文经过指定的一些节点,从而提高了主路径故障场景下该ipv6报文的转发成功率。67.在一种可能的实现方式中,这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层。其中,对于一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头,假设为第一扩展ipv6报文头,第一扩展ipv6报文头可以包括一个标准报头以及一个扩展报头,第一扩展ipv6报文头中的标准报头中携带的目的地址为相应节点的ipv6地址,该标准报头中的下一报头字段的值指示位于第一扩展ipv6报文头中的扩展报头的类型,该扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉第一扩展ipv6报文头。前述相应节点均是指与第一扩展ipv6报文头对应的节点。68.通过上述对扩展ipv6报文头的定义,这一个或多个扩展ipv6报文头中的标准报头能够指示第一备份路径上的一个或多个节点。且通过这一个或多个扩展ipv6报文头中的扩展报头能够使得第一备份路径上的各个节点在接收到该ipv6报文时,依次剥掉最外层的各个扩展ipv6报文头,以便于基于下个扩展ipv6报文头继续转发该ipv6报文。69.另外,为了便于节点在剥掉最外层的扩展ipv6报文头之后,能够快速明确出下一个报文头为ipv6报文头,以便于基于ipv6报文头的相关标准解析下一个报文头中的携带的信息。在一种可能的实现方式中,该扩展报头中携带有下一报头字段,该扩展报头中下一报头字段的值指示下一个报文头为ipv6报文头。可选地,在另一种可能的实现方式中,该扩展报头中也可以不指示下一个报文头的类型,在应用本技术实施例时,各个节点默认下一个报文头为ipv6报文头。70.另外,为了便于节点在剥掉最外层的扩展ipv6报文头的过程中能够明确剥离到ipv6报文的具体什么位置,在一种可能的实现方式中,该扩展报头中还可以携带有长度字段,该长度字段的值指示扩展报头的长度。由于扩展ipv6报文头中的标准报头的长度是协议是固定的长度,因此,基于标准报头的长度和扩展报头的长度便可确定剥离到ipv6报文的具体什么位置来实现剥掉最外层的扩展ipv6报文头。可选地,在另一种可能的实现方式中,如果各个扩展ipv6报文头中的扩展报头的长度预先在协议中也明确固定,此时,则可以不用在扩展ipv6报文头中的扩展报头中指定扩展报头的长度。71.需要说明的是,上述扩展报头中可以携带下一报头字段和长度字段中的一者或两者,本技术实施例对此不做具体限定,具体实现时,可以基于协议的相关要求来定制扩展报头中的具体信息。72.另外,扩展报头通常为一个类型-长度-值(type-length-value,tlv)。这种场景下,在一种可能的实现方式中,上述长度字段便可为携带在该tlv的l字段中,上述下一报头字段便可携带在该tlv的v字段中,当然也可以携带在其他字段中,本技术实施例对此不做限定。73.图3是本技术实施例提供的一种扩展ipv6报文头的格式示意图。如图3所示,节点s在接收到ipv6报文后,如果感知到节点s至节点x之间的链路出现故障,则节点s便可在该ipv6报文的外层封装两个扩展ipv6报文头。其中,节点s接收到的ipv6报文的目的地为节点d,图3中标记为:ipv6报文中的dest=d。74.如图3所示,最外层的扩展ipv6报文头中的标准报头中携带的目的ip地址为节点y的ipv6地址,图3中标记为:最外层的扩展ipv6报文头中的标准报头的dest=y。该标准报头中的下一报头(next header)指示位于同一扩展ipv6报文头中的扩展报头的类型,最外层的扩展ipv6报文头的类型指示的操作为节点y在接收到该ipv6报文后,剥掉最外层的扩展ipv6报文头。比如,最外层的扩展ipv6报文头的类型为“pop”,此时最外层的扩展ipv6报文头中的标准报头中的下一报头的值指示“pop”,pop即为弹出的意思,在应用本技术实施例时,可以针对下一报头(next header)扩展一个数值或字符出来,该扩展出来的数值或字符能够代表扩展报头的类型为“pop”,图3中是以下一报头的值等于“pop”为例进行说明。另外,最外层的扩展ipv6报文头中的扩展报头中的下一报头(next header)指示下一个报文头的类型为ipv6报文头。如图3所示,最外层的扩展ipv6报文头中的扩展报头中的下一报头(next header)的值为41,表征下一个报文头的类型为ipv6报文头。75.如图3所示,下一层的扩展ipv6报文头中的标准报头中携带的目的ip地址为节点z的ipv6地址,图3中标记为:下一层的扩展ipv6报文头中的标准报头的dest=z。该标准报头中的下一报头(next header)指示位于同一扩展ipv6报文头中的扩展报头的类型,下一层的扩展ipv6报文头中的扩展报头的类型同样为“pop”,下一层的扩展ipv6报文头中的扩展报头的类型指示节点z在接收到该ipv6报文后,剥掉最外层的扩展ipv6报文头。另外,下一层的扩展ipv6报文头中的扩展报头中的下一报头(next header)指示下一个报文头的类型为ipv6报文头。如图3所示,下一层的扩展ipv6报文头中的扩展报头中的下一报头(next header)的值为41,表征下一个报文头的类型为ipv6报文头。76.需要说明的是,图3所示的扩展ipv6报文头的格式是本技术实施例提供的一种示例的扩展ipv6报文头的格式。本技术实施例并不限定扩展ipv6报文头的具体格式,只需封装上的一个或多个扩展ipv6报文头能够指示第一备份路径即可。77.示例地,对于一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头,假设为第一扩展ipv6报文头,第一扩展ipv6报文头可以只包括一个标准报头,第一扩展ipv6报文头中的标准报头中携带的目的地址为相应节点的ipv6地址。如此,第一备份路径上的各个节点便可基于各个扩展ipv6报文头中的携带的ip地址来转发该ipv6报文。78.在上述场景中,为了便于后续节点确定依据哪个扩展ipv6报文头来转发ipv6报文,可以在封装后的ipv6报文中扩展一个指针字段,该指针字段用于指示当前移动到哪个扩展ipv6报文头,后续节点基于该指针字段所指示的扩展ipv6报文头便可转发该ipv6报文。此时,后续节点无需剥掉各个扩展ipv6报文头,可以仅仅在第一备份路径上的最后一个节点上执行剥掉所有扩展ipv6报文头的操作即可。这种情况下,一个或多个扩展ipv6报文头可以按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,也可以不按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层。当一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层时,指针字段的值依据一个或多个扩展ipv6报文头的顺序依次变化即可。当一个或多个扩展ipv6报文头没有按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层时,需要在ipv6报文中通过其他扩展字段来指示各个扩展ipv6报文头的顺序,以使指针字段的值依据一个或多个扩展ipv6报文头的顺序依次变化。79.可选地,在上述场景中,为了便于后续节点确定依据哪个扩展ipv6报文头来转发ipv6报文,也可以在扩展ipv6报文头中扩展一个类型字段,该类型字段指示该扩展ipv6报文头为需要剥掉的ipv6报文头,且一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,如此,后续节点在确定最外层的ipv6报文头为扩展ipv6报文头,且该扩展ipv6报文头携带的ip地址为自身的ipv6地址时,便可直接剥掉该扩展ipv6报文头,并基于下一个ipv6报文头转发该ipv6报文。80.需要再次说明的是,上述两种扩展ipv6报文头仅仅是本技术实施例提供的扩展ipv6报文头的示例说明,并不构成对本技术实施例提供的扩展ipv6报文头的格式的限定。81.此外,为了提高故障消除的效率,上述第一备份路径可以是预先确定的。在一种可能的实现方式中,第一备份路径为基于拓扑无关的无环备份路径(technology-independent loop-free alternate,ti-lfa)算法得到的备份路径。82.这种场景下,第一备份路径上的一个或多个节点可以有以下几种情况。83.(1)在基于ti-lfa算法确定的p空间和q空间存在交集的情况下,第一备份路径上的一个或多个节点为pq节点,pq节点为p空间和q空间的交集节点,p空间是指以第一节点为根节点建立最短路径(shortest path first,spf)树中,所有从根节点不经过保护链路可达的节点集合,保护链路为第一节点至第二节点之间的主路径,q空间是指以第二节点为根节点建立反向spf树中,所有从根节点不经过保护链路可达的节点集合。84.也即是,在情况(1)中,只需要在ipv6报文的外层封装一个和pq节点对应的扩展ipv6报文头。换句话说明,封装后的ipv6报文中只有一个扩展ipv6报文头。85.需要说明的是,当p空间和q空间的交集节点为多个时,可以从多个交集节点中随机选择一个交集节点作为上述pq节点。本技术实施例并不限定如何从多个交集节点中确定一个pq节点的具体实现方式。86.图4是本技术实施例提供的另一种网络系统的架构示意图。如图4所示,第一节点为节点s,第二节点为节点d。p空间为节点n和节点m组成的节点集合,q空间为节点m组成的节点集合。因此,p空间和q空间的交集节点为节点m。对于图4所示的组网,节点s感知到节点s→节点d这个路径出现故障时,便可在接收到的ipv6报文的最外层封装上和节点m对应的扩展ipv6报文头。87.为了便于理解ti-lfa算法,在此对上述p空间和q空间进行详细解释说明。后续关于p空间以及q空间的相关内容均可以参考下述解释,后续均不在重复解释。88.上述以第一节点为根节点建立spf树,所有从根节点不经过保护链路可达的节点集合具体满足如下公式:89.distance_opt(n,p)《distance_opt(n,s)+distance_opt(s,p)90.也即是,p空间中的节点满足上述公式。上述公式中的p表示p空间内任一节点。91.上述以第二节点为根节点建立反向spf树,所有从根节点不经过保护链路可达的节点集合具体满足如下公式:92.distance_opt(q,d)《distance_opt(q,s)+distance_opt(s,d)93.也即是,q空间中的节点满足上述公式。上述公式中的q表示q空间内任一节点。94.在图4中,计算p空间,可以到达s节点的节点有n节点、m节点和d节点。n节点到达s节点的路径有n→s和n→m→d→s,其中n→s路径的开销值为10,n→m→d→s路径的开销值为10+15+10=35,10<35,所以n→s为n节点到达s节点的最短路径且不经过故障链路,因此n节点为p空间内的一个节点。因为p表示p空间内任一节点,所以n节点也可以称之为p节点。m节点到达s节点的路径有m→n→s和m→d→s,其中m→n→s路径的开销值为10+10=20,m→d→s路径的开销值为15+10=25,20<25,所以m→n→s为n节点到达s节点的最短路径且不经过故障链路,因此m节点为p空间内的一个节点,m节点也可以称之为p节点。d节点到达s节点的路径有d→s和d→m→n→s,其中d→s路径的开销值为10,d→m→n→s路径的开销值为15+10+10=35,10<35,因此d→s路径为d节点到达s节点的最短路径,但是d→s路径经过故障链路,所以d节点不能组成p空间,也就不能成为p节点。所以p空间为n节点和m节点的集合。95.在图2中,计算q空间,可以到达d节点的节点有m节点、n节点和s节点。m节点到达d节点的路径有m→d和m→n→s→d,其中m→d路径的开销值为10,m→n→s→d路径的开销值为10+10+10=30,10<30,所以m→d为m节点到达d节点的最短路径且不经过故障链路,因此m节点为q空间内的一个节点,m节点也可以称之为q节点。n节点到达d节点的路径有n→m→d和n→s→d,其中n→m→d路径的开销值为10+15=25,n→s→d路径的开销值为10+10=20,20<25,所以n→s→d为n节点到达d节点的最短路径,但是n→s→d路径经过故障链路,所以n节点不能组成q空间,也就不能成为q节点。s节点到达d节点的路径有s→d和s→n→m→d,其中s→d路径的开销值为10,s→n→m→d路径的开销值为10+10+15=35,10<35,所以s→d为s节点到达d节点的最短路径,但是s→d路径经过故障链路,所以s节点不能组成q空间,也就不能成为q节点。所以q空间为m节点的集合。96.(2)在基于ti-lfa算法确定的p空间和q空间不存在交集的情况下,且p节点到q的链路上没有其他节点的情况下,第一备份路径上的一个或多个节点包括p节点以及q节点,p节点是指p空间的一个节点,q节点是指q空间的一个节点。97.也即是,在情况(2)中,只需要在ipv6报文的外层封装一个和p节点对应的扩展ipv6报文头、以及一个和q节点对应的扩展ipv6报文头。换句话说明,封装后的ipv6报文中只有两个扩展ipv6报文头。98.图5是本技术实施例提供的另一种网络系统的架构示意图。如图5所示,第一节点为节点s,第二节点为节点d。p空间为节点n和节点y组成的节点集合,q空间为节点x和节点z组成的节点集合。其中,p节点可以为节点y,q节点可以为节点z。对于图5所示的组网,节点s感知到节点s→节点x→节点d这个路径出现故障时,便可在接收到的ipv6报文的最外层封装上和节点y对应的扩展ipv6报文头、以及和节点z对应的扩展ipv6报文头。99.(3)在基于ti-lfa算法确定的p空间和q空间不存在交集,且p节点到q的链路上存在其他节点的情况下,第一备份路径上的一个或多个节点包括p节点、q节点、以及p节点和q节点之间的链路上每个节点。100.也即是,在情况(3)中,除了需要在ipv6报文的外层封装一个和p节点对应的扩展ipv6报文头、以及一个和q节点对应的扩展ipv6报文头,还需封装上和p节点以及q节点之间的每个节点对应的扩展ipv6报文头。换句话说,封装后的ipv6报文中由两个以上的扩展ipv6报文头。101.比如,对于图5所示的组网,假设,p节点可以为节点n,q节点可以为节点z。此时,节点s感知到节点s→节点x→节点d这个路径出现故障时,便可在接收到的ipv6报文的最外层封装上和节点n对应的扩展ipv6报文头、和节点y对应的扩展ipv6报文头、以及和节点z对应的扩展ipv6报文头。102.此外,在情况(2)和情况(3)中,p节点可以为p空间内距离第一节点最远的节点,q节点可以q空间内距离第一节点最近的节点。这样设置的目的在于:尽量减少p节点和q节点之间的节点的数量,这样就可以减少第一备份路径上的一个或多个节点的数量,从而避免需要封装过多的扩展ipv6头。103.需要说明的是,上述从p空间中确定p节点、以及从q空间中确定q节点仅仅是一种示例,本技术实施例并不限定如何确定p节点以及q节点的实现方式。比如,上述p节点也可以为p空间内任一节点,q节点也可以为q空间内任一节点。104.上述第一备份路径是预先确定的。在一种可能的实现方式中,在网络系统初始化之后,对于网络中任一节点,可以使能该节点ti-lfa算法,以便于该节点能够基于ti-lfa算法,确定出达到某个节点之间的备份路径。105.具体地,对于第一节点,第一节点可以响应于ti-lfa算法使能指令,根据ti-lfa算法确定第一备份路径上的一个或多个节点。其中,ti-lfa算法使能指令可以由控制器自动下发,也可以由用户通过预设操作基于控制器下发,本技术实施例对此不做限定。106.上述是以第一备份路径为基于ti-lfa算法得到的备份路径为例进行说明,在本技术实施中,第一备份路径也可以为通过其他算法确定的备份路径,在此就不再一一举例说明。107.另外,考虑到目前ipv6网络中已经支持通过lfa算法进行流量保护,因此在第一备份路径为基于ti-lfa算法得到的备份路径的情况下,第一节点在接收到ipv6报文之后,如果主路径故障,第一节点还可以先利用lfa算法确定第二备份路径,在第二备份路径确定失败的情况下,第一节点执行在ipv6报文的外层封装一个或多个扩展ipv6报文头的步骤。相应地,在第二备份路径确定成功的情况下,第一节点通过第二备份路径转发ipv6报文。108.也即是,在主路径故障的情况下,先基于lfa算法进行故障消除,在lfa算法失败的情况下,再通过ti-lfa算法得到的第一备份路径封装多个扩展ipv6报文头以转发ipv6报文。在lfa算法成功的情况下,将第二备份路径上的下一跳作为目的地然后查找转发表,从而转发该ipv6报文。提高了本技术实施例提供的报文转发方法和现有的ipv6网络中流量保护方式之间的兼容性。109.步骤203:第一节点转发封装有一个或多个扩展ipv6报文头的ipv6报文。110.由于一个或多个扩展ipv6报文头和第一备份路径上的一个或多个节点一一对应,而这一个或多个节点在第一备份路径上有顺序的,因此,第一节点便可基于这一个或多个节点中最近的节点对应的扩展ipv6报文头转发该封装后的ipv6报文。具体地,第一节点查表确定达到最近的节点的下一跳,然后将封装后的ipv6报文通过下一跳转发即可。111.在一种可能的实现方式中,在扩展ipv6报文头为图3所示的格式的情况下,由于这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,因此,第一节点便可基于最外层的扩展ipv6报文头包括的标准报头中的目的ip地址,查找本地转发表,得到和最外层的扩展ipv6报文头包括的标准报头中的目的ip地址对应的下一跳,然后便可将封装后的ipv6报文通过查找到的下一跳转发。112.上述步骤201至步骤203用于解释说明在第一节点至第二节点之间的主路径存在故障的情况下,第一节点如何对ipv6报文进行处理,以便后续第一备份路径上的节点基于扩展ipv6报文头转发该ipv6报文。下面对第一备份路径上的任一节点接收到封装有一个或多个扩展ipv6报文头的ipv6报文时,如何转发报文进行详细解释说明。113.图6是本技术实施例提供的一种转发报文的方法流程图。具体地,如图6所示,该转发报文的流程除了包括上述步骤201至步骤203,还进一步地包括下述步骤204和步骤205。114.步骤204:第三节点接收来自第一节点的ipv6报文,该ipv6报文中封装有一个或多个扩展ipv6报文头,这一个或多个扩展ipv6报文头分别和一个或多个节点对应,这一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的一条路径。115.如步骤202所述,该ipv6报文是第一节点在第一节点至第二节点之间的主路径故障的情况下,将接收到的ipv6报文封装上前述一个或多个扩展ipv6报文头后得到的。116.基于步骤201至步骤203可知,在第一节点至第二节点之间的主路径存在故障的情况下,第一备份路径上的任一第三节点便可接收到封装有一个或多个扩展ipv6报文头的ipv6报文。如此,第三节点便可通过下述步骤205继续转发该ipv6报文,从而实现在主路径故障的情况下,将ipv6报文转发至第二节点。117.步骤205:第三节点基于一个或多个扩展ipv6报文头中的至少一个扩展ipv6报文头转发该ipv6报文。118.在一种可能的实现方式中,在扩展ipv6报文头为图3所示的格式的情况下,由于这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,因此,在步骤205中,第三节点可以先确定ipv6报文最外层的ipv6报文头,如果最外层的ipv6报文头中的标准报头携带的ip地址为第三节点的ipv6地址、最外层的ipv6报文头中的标准报头中的下一报头字段的值指示最外层的ipv6报文头中的扩展报头的类型,且最外层的ipv6报文头中扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉相应ipv6报文头,则剥掉最外层的ipv6报文头,然后,转发剥掉最外层报文头的ipv6报文。119.在一种可能的实现方式中,如果预先定义了扩展ipv6报文头中扩展报头中携带有下一报头字段和长度字段,该扩展ipv6报文头中扩展报头中的下一报头字段的值指示下一个报文头为ipv6报文头,该长度字段的值指示该扩展ipv6报文头中扩展报头的长度。此时,剥掉最外层的ipv6报文头的实现方式可以为:基于最外层的ipv6报文头中的扩展报头中下一报头字段的值确定最外层的ipv6报文头后的下一个报文头为ipv6报文头,并基于最外层的ipv6报文头中扩展报头中的长度字段剥掉最外层的ipv6报文头。其中,基于最外层的ipv6报文头中扩展报头中的长度字段剥掉最外层的ipv6报文头具体是指:将最外层的ipv6报文头中扩展报头中的长度字段所指示的长度和标准报头的长度相加,得到需要剥离掉的报文头的长度,按照确定的长度剥掉ipv6报文的外层,即可实现剥掉最外层的ipv6报文头。120.相应地,转发剥掉最外层报文头的ipv6报文的实现方式可以为:基于最外层的ipv6报文头后的下一个ipv6报文头转发剥掉最外层报文头的ipv6报文。由于已经确定出下一个报文头为ipv6报文头,因此可以基于ipv6报文头的相关标准解析出下一个ipv6报文头中携带的目的地址,然后基于该目的地址查表得到与该目的地址对应的下一跳,以便通过查找到的下一跳转发剥掉最外层报文头的ipv6报文。121.上述是以扩展报头中携带有下一报头字段和长度字段为例说明如何剥掉最外层的ipv6报文头以及如何转发剥掉最外层报文头的ipv6报文。可选地,在扩展报头中没有携带有下一报头字段和长度字段的情况下,第三节点可以通过其他途径获取扩展报头的长度以及下一个报文头的类型,前述步骤202已经说明,在此不再赘述。122.另外,如果最外层的ipv6报文头中的标准报头携带的ip地址不是第三节点的ip v6地址,则获取和最外层的ipv6报文头中携带的ip地址对应的下一跳;基于和最外层的ipv6报文头中携带的ip地址对应的下一跳转发ipv6报文。123.其中,获取和最外层的ipv6报文头中携带的ip地址对应的下一跳可以通过查找转发表来确定,在此不再详细说明。124.比如,对于3所示的组网,节点s在向初始的ipv6报文中封装上两个扩展ipv6报文头之后,基于最外层的扩展ipv6报文头中携带的节点y的ip地址,通过查表将封装后的ipv6报文转发给节点n。如图7所示,节点n接收到该封装后的ipv6报文后,确定最外层的扩展ipv6报文头的标准报头中携带的ip地址不是自身的ip地址,此时节点n通过查表将封装后的ipv6报文继续转发给节点y。节点y接收到该封装后的ipv6报文后,确定最外层的扩展ipv6报文头的标准报头中携带的ip地址是自身的ip地址,然后通过该标准报头中的指示的下一报头字段的值,确定最外层的扩展ipv6报文头中的扩展报头的类型为“pop”,并从该扩展报头的下一头字段的值中确定出下一个报文头为ipv6报文头,此时则节点y则剥掉最外层的ipv6报文头,剥掉最外层的ipv6报文头后的ipv6报文中还有一个扩展ipv6报文头和初始的ipv6报文。然后节点y将基于剩余的一个扩展ipv6报文头,将经过剥掉处理后的ipv6报文转发给节点z。节点z接收到ipv6报文后,确定最外层的扩展ipv6报文头的标准报头中携带的ip地址是自身的ip地址,然后通过该标准报头中的指示的下一报头字段的值,确定最外层的扩展ipv6报文头中的扩展报头的类型为“pop”,并从该扩展报头的下一头字段的值中确定出下一个报文头为ipv6报文头,此时则节点z则剥掉最外层的ipv6报文头,剥掉最外层的ipv6报文头后的ipv6报文只有初始的ipv6报文。然后节点z将基于初始的ipv6报文的ipv6报文头中的携带的目的地址(也即是节点d的ip地址),将经过剥掉处理后的ipv6报文转发给节点x,由节点x将该ipv6报文转发给节点d。125.需要说明的是,初始的ipv6报文的ipv6报文头中同样包括标准报头(图3中未示出),该标准报头中目的地址即为节点d的ip地址,该标准报头中的下一报头(next header)的值可以为6或17,分别用于指示初始的ipv6报文中的数据报文所使用的协议为传输控制协议(transmission control protocol,tcp)或用户数据报文协议(user datagram protocol,udp)。此外,初始的ipv6报文的ipv6报文头中同样可以包括扩展报头,本技术实施例并不限定初始的ipv6报文的ipv6报文头中的扩展报头的具体功能。126.需要说明的是,上述是以扩展ipv6报文头为图3所示的格式为例进行说明,在扩展ipv6报文头为其他格式的情况下,第一备份路径上的各个节点按照相应规则转发ipv6报文即可,在此不再一一举例说明。127.综上所述,在本技术实施例中,在主路径故障的情况下,可以通过第一备份路径转发该ipv6报文。为了避免后续第一备份路径上的每个节点必须通过报文中的上层协议数据所对应的目的ip地址来转发该ipv6报文,第一节点可以直接在该ipv6报文的外层封装能够指示第一备份路径上的一个或多个节点的一个或多个扩展ipv6报文头,如此,后续第一备份路径上的各个节点只需要根据这一个或多个扩展ipv6报文头指示的一个或多个节点便可转发该ipv6报文,而不是必须基于ipv6报文的目的地第二节点来转发该ipv6报文,这样可以使得ipv6报文经过指定的一些节点,从而提高了主路径故障场景下该ipv6报文的转发成功率。128.进一步地,还可以通过上述对扩展ipv6报文头中的标准报头和扩展报头的定义,使得这一个或多个扩展ipv6报文头中的标准报头能够指示第一备份路径上的一个或多个节点。且通过这一个或多个扩展ipv6报文头中的扩展报头能够使得第一备份路径上的各个节点在接收到该ipv6报文时,依次剥掉最外层的各个扩展ipv6报文头,以便于基于下个扩展ipv6报文头继续转发该ipv6报文。129.图8是本技术实施例提供的一种第一节点的结构示意图。如图8所示,第一节点800包括:130.接收模块801,用于接收第六代网络协议ipv6报文,ipv6报文的目的地为第二节点。具体实现方式可以参考图2实施例中的步骤201。131.封装模块802,用于在第一节点至第二节点之间的主路径故障的情况下,在ipv6报文的外层封装一个或多个扩展ipv6报文头,一个或多个扩展ipv6报文头分别和一个或多个节点对应,一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的路径中除主路径之外的路径。具体实现方式可以参考图2实施例中的步骤202。132.发送模块803,用于转发封装有一个或多个扩展ipv6报文头的ipv6报文。具体实现方式可以参考图2实施例中的步骤203。133.可选地,这一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,这一个或多个扩展ipv6报文头中的第一扩展ipv6报文头包括一个标准报头以及一个扩展报头,标准报头中携带的目的地址为相应节点的ipv6地址,标准报头中的下一报头字段的值指示位于第一扩展ipv6报文头中的扩展报头的类型,扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉第一扩展ipv6报文头,第一扩展ipv6报文头为一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头。134.可选地,扩展报头中携带有下一报头字段和长度字段,扩展报头中下一报头字段的值指示下一个报文头为ipv6报文头,长度字段的值指示扩展报头的长度。135.可选地,第一备份路径为基于拓扑无关的无环备份路径ti-lfa算法得到的备份路径;136.在基于ti-lfa算法确定的p空间和q空间存在交集的情况下,一个或多个节点为pq节点,pq节点为p空间和q空间的交集节点,p空间是指以第一节点为根节点建立最短路径spf树中,所有从根节点不经过保护链路可达的节点集合,保护链路为主路径,q空间是指以第二节点为根节点建立反向spf树中,所有从根节点不经过保护链路可达的节点集合;或者,137.在基于ti-lfa算法确定的p空间和q空间不存在交集的情况下,且p节点到q的链路上没有其他节点的情况下,一个或多个节点包括p节点以及q节点,p节点是指p空间的一个节点,q节点是指q空间的一个节点;或者,138.在基于ti-lfa算法确定的p空间和q空间不存在交集,且p节点到q的链路上存在其他节点的情况下,一个或多个节点包括p节点、q节点、以及p节点和q节点之间的链路上每个节点。139.可选地,第一节点还包括:140.第一确定模块,用于响应于ti-lfa算法使能指令,根据ti-lfa算法确定第一备份路径上的一个或多个节点。141.可选地,第一备份路径为基于拓扑无关的无环备份路径ti-lfa算法得到的备份路径;142.第一节点还包括:143.第二确定模块,用于在主路径故障的情况下,利用无环备份路径lfa算法确定第二备份路径;144.封装模块,用于在第二备份路径确定失败的情况下,执行在ipv6报文的外层封装一个或多个扩展ipv6报文头的步骤。145.可选地,发送模块,用于在第二备份路径确定成功的情况下,通过第二备份路径转发ipv6报文。146.综上,在本技术实施例中,在主路径故障的情况下,可以通过第一备份路径转发该ipv6报文。为了避免后续第一备份路径上的每个节点均需要依据报文中的上层协议数据所对应的目的ip地址(也即是该ipv6报文的目的地第二节点的ip地址)来转发该ipv6报文,第一节点可以直接在该ipv6报文的外层封装能够指示第一备份路径上的一个节点或节点的一个或多个扩展ipv6报文头,如此,后续第一备份路径上的各个节点根据这一个或多个扩展ipv6报文头指示的一个或多个节点便可转发该ipv6报文,而不是必须基于ipv6报文的目的地第二节点来转发该ipv6报文,这样可以使得ipv6报文经过指定的一些节点,从而提高了主路径故障场景下该ipv6报文的转发成功率。147.进一步地,还可以通过上述对扩展ipv6报文头中的标准报头和扩展报头的定义,使得这一个或多个扩展ipv6报文头中的标准报头能够指示第一备份路径上的一个或多个节点。且通过这一个或多个扩展ipv6报文头中的扩展报头能够使得第一备份路径上的各个节点在接收到该ipv6报文时,依次剥掉最外层的各个扩展ipv6报文头,以便于基于下个扩展ipv6报文头继续转发该ipv6报文。148.需要说明的是:上述实施例提供的第一节点在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将转发节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供第一节点与转发报文方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。149.图9是本技术实施例提供的一种第三节点的结构示意图。如图9所示,第三节点900包括:150.接收模块901,用于接收来自第一节点的第六代网络协议ipv6报文,ipv6报文中封装有一个或多个扩展ipv6报文头,一个或多个扩展ipv6报文头分别和一个或多个节点对应,一个或多个节点为第一备份路径上的节点,第一备份路径为从第一节点到第二节点的一条路径。具体实现方式可以参考图6实施例中的步骤204。151.发送模块902,用于基于一个或多个扩展ipv6报文头中的至少一个扩展ipv6报文头转发ipv6报文。具体实现方式可以参考图6实施例中的步骤205。152.可选地,该ipv6报文是第一节点在第一节点至第二节点之间的主路径故障的情况下,将接收到的ipv6报文封装上一个或多个扩展ipv6报文头后得到的。153.可选地,一个或多个扩展ipv6报文头按照相应节点在第一备份路径上的顺序依次封装在ipv6报文的外层,一个或多个扩展ipv6报文头中的第一扩展ipv6报文头包括一个标准报头以及一个扩展报头,标准报头中携带的目的地址为相应节点的ipv6地址,标准报头中的下一报头字段的值指示位于第一扩展ipv6报文头中的扩展报头的类型,扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉第一扩展ipv6报文头,第一扩展ipv6报文头为一个或多个扩展ipv6报文头中的任一个扩展ipv6报文头;154.发送模块用于:155.确定ipv6报文最外层的ipv6报文头;156.如果最外层的ipv6报文头中的标准报头携带的ip地址为第三节点的ipv6地址、最外层的ipv6报文头中的标准报头中的下一报头字段的值指示最外层的ipv6报文头中的扩展报头的类型,且扩展报头的类型指示相应节点在接收到封装后的ipv6报文后剥掉相应ipv6报文头,则剥掉最外层的ipv6报文头,转发剥掉最外层报文头的ipv6报文。157.可选地,第一扩展ipv6报文头中扩展报头中携带有下一报头字段和长度字段,第一扩展ipv6报文头中扩展报头中的下一报头字段的值指示下一个报文头为ipv6报文头,长度字段的值指示第一扩展ipv6报文头中扩展报头的长度;158.发送模块用于:159.基于最外层的ipv6报文头中的扩展报头中下一报头字段的值确定最外层的ipv6报文头后的下一个报文头为ipv6报文头,并基于最外层的ipv6报文头中扩展报头中的长度字段剥掉最外层的ipv6报文头;160.基于最外层的ipv6报文头后的下一个ipv6报文头转发剥掉最外层报文头的ipv6报文。161.可选地,发送模块还用于:162.如果最外层的ipv6报文头中的标准报头携带的ip地址不是第三节点的ip地址,则获取和最外层的ipv6报文头中携带的ip地址对应的下一跳;163.基于和最外层的ipv6报文头中携带的ip地址对应的下一跳转发ipv6报文。164.综上所述,在本技术实施例中,在主路径故障的情况下,可以通过第一备份路径转发该ipv6报文。为了避免后续第一备份路径上的每个节点均需要依据报文中的上层协议数据所对应的目的ip地址(也即是该ipv6报文的目的地第二节点的ip地址)来转发该ipv6报文,第一节点可以直接在该ipv6报文的外层封装能够指示第一备份路径上的一个节点或节点的一个或多个扩展ipv6报文头,如此,后续第一备份路径上的各个节点根据这一个或多个扩展ipv6报文头指示的一个或多个节点便可转发该ipv6报文,而不是必须基于ipv6报文的目的地第二节点来转发该ipv6报文,这样可以使得ipv6报文经过指定的一些节点,从而提高了主路径故障场景下该ipv6报文的转发成功率。165.进一步地,还可以通过上述对扩展ipv6报文头中的标准报头和扩展报头的定义,使得这一个或多个扩展ipv6报文头中的标准报头能够指示第一备份路径上的一个或多个节点。且通过这一个或多个扩展ipv6报文头中的扩展报头能够使得第一备份路径上的各个节点在接收到该ipv6报文时,依次剥掉最外层的各个扩展ipv6报文头,以便于基于下个扩展ipv6报文头继续转发该ipv6报文。166.需要说明的是:上述实施例提供的第三节点在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将转发节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供第三节点与转发报文方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。167.图10是本技术施例提供的一种转发节点的结构示意图。前述网络系统中任一节点均可以通过图10所示的转发节点来实现。参见图10,该转发节点包括至少一个处理器1001,通信总线1002、存储器1003以及至少一个通信接口1004。168.处理器1001可以是一个通用中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)或一个或多个用于控制本技术方案程序执行的集成电路。169.通信总线1002可包括一通路,在上述组件之间传送信息。170.存储器1003可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1003可以是独立存在,通过通信总线1002与处理器1001相连接。存储器1003也可以和处理器1001集成在一起。171.其中,存储器1003用于存储执行本技术方案的程序代码,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的程序代码。程序代码中可以包括一个或多个软件模块。前述实施例中任一节点可以通过处理器1001以及存储器1003中的程序代码中的一个或多个软件模块,来确定用于开发应用的数据。172.通信接口1004,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。173.在具体实现中,作为一种实施例,转发节点可以包括多个处理器,例如图10中所示的处理器1001和处理器1005。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。174.上述的转发节点可以是一个通用转发节点或者是一个专用转发节点。在具体实现中,转发节点可以是路由器、网关等任意能够转发报文的设备。本技术实施例不限定转发节点的类型。175.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))、或者半导体介质(例如:固态硬盘(solid state disk,ssd))等。176.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。177.以上所述为本技术提供的实施例,并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
转发报文的方法及相关设备与流程
作者:admin
2022-08-02 20:40:42
785
关键词:
电子通信装置的制造及其应用技术
专利技术
- 下一篇: 一种植物核心种质的抽样新策略
- 上一篇: 可变电阻式存储器装置及其形成方法与流程