一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、网络节点及存储介质与流程

2022-12-06 19:45:57 来源:中国专利 TAG:
数据传输方法、网络节点及存储介质1.本技术是向中国知识产权局提交的申请日为2019年7月12日、申请号为201910631947.5、发明名称为“数据传输方法、网络节点及存储介质”的申请的分案申请。
技术领域
:2.本技术涉及通信
技术领域
:,特别涉及一种数据传输方法、网络节点及存储介质。
背景技术
::3.分段路由(segmentrouting,sr)是基于源路由的理念而设计的在网络中转发数据包的一种协议。sr将网络路径划分为一个个段,为这些段或节点分配段标识(英文全称:segmentid,英文简称:sid),通过在数据包中携带依次排列的段标识,能够让数据包通过段标识指示的转发路径传输。基于互联网协议第6版(internetprotocolversion6,ipv6)的分段路由(srv6)是指将sr技术与ipv6协议结合起来,按照ipv6地址的格式定义为实例化的sid,基于ipv6的转发面来实现sr的功能。4.相关技术中,srv6网络中的不同节点之间可以通过互联网协议地址(英文全称:internetprotocoladdress,简称:ip)层链路相连。对于任一节点来说,该节点可以发布至少一个端点三层交叉连接段标识(end.xsid,end表示endpoint,意为端点;x表示crossing,意为三层交叉连接,sid意为段标识),每个end.xsid用于标识该节点直连的一条ip层链路,网络中的其他节点通过收发彼此发布的end.xsid,可以确定网络中每条ip层的链路对应的sid。当数据包进入srv6网络时,头节点会接收到数据包,确定数据包的转发路径,之后,在一种可能的实现中,头节点可以根据转发路径需要经过的每条ip层链路,获取每条ip层的链路对应的end.xsid,将得到的end.xsid写入到数据包,再将携带了end.xsid的数据包发送至下一节点。当任一节点接收到数据包时,节点会解析该数据包,得到数据包携带的end.xsid,将数据包从end.xsid绑定的ip层出接口发送出去,则数据包会通过该ip层出接口对应的ip层链路,到达下一节点,下一节点会通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。在另一种可能的实现中,头节点可以根据转发路径需要经过的每个节点,获取每个节点对应的端点段标识(endsid,end表示endpoint,意为端点,sid意为段标识),将得到的endsid写入到数据包,再将携带了endsid的数据包发送至下一节点。当任一节点接收到数据包时,该节点会解析该数据包,得到数据包携带的endsid,向endsid对应的节点发送数据包,则数据包会到达该endsid对应的节点,以此类推,每个节点通过执行类似的步骤,继续转发数据包,直至数据包到达目的节点。需要说明的是,上述的end.x或end构成的sidlist可以仅指明路径上的部分节点,而不是全部的节点。另外,也可以混合使用end.x和end,以及其他的srv6functions。5.目前,srv6网络中的节点只能感知到ip层的链路,而无法感知底层路径,因此,即使不同节点之间通过多条底层路径相连,节点也只能固定地通过预先配置的底层路径来传输数据包,导致传输数据包的底层路径无法根据业务需求控制,灵活性差。技术实现要素:6.本技术提供了一种数据传输方法、网络节点及存储介质,可以让分段路由网络中的节点感知底层路径,从而提高传输数据包的灵活性。所述技术方案如下:7.第一方面,提供了一种数据传输方法,应用于第一网络节点,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,所述方法包括:发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;接收携带目标底层段标识的数据包;通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。8.通过设计了与底层路径对应的底层段标识,发布底层段标识,可以让分段路由网络中的节点通过底层段标识感知到底层路径,那么在传输数据包时,能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了传输数据包的灵活性,有助于进行流量规划。尤其是,在底层路径为光路的情况下,通过发布底层段标识,srv6网络中的节点能够通过底层段标识感知到每条光路,从而支持了poi的场景,可以根据需求灵活的选择传输流量的光路。9.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。10.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、异步传输模式(asynchronoustransfermode,atm)路径、帧中继(framerelay,fr)路径、背靠背的以太网(ethernet)路径、通用路由封装(genericroutingencapsulation,gre)隧道(tunnel)、灵活以太网(flexethernet,flexe)路径、多协议标签交换资源预留协议流量工程(multi-protocollabelswitchingresourcereservationprotocoltrafficengineering,mplsrsvp-te)隧道(tunnel)、ip隧道或者用户数据报协议(userdatagramprotoco,udp)隧道。11.可选地,所述光路为密集型波分复用(densewavelengthdivisionmultiplexing,dwdm)路径或光传送网(opticaltransportnetwork,otn)路径。12.可选地,所述发布至少一个底层段标识,包括:发布至少两个底层段标识,所述至少两个底层段标识对应于同一个端点三层交叉连接段标识(end.xsid),所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。13.通过这种可选方式,由于end.xsid标识了两个网络节点之间的三层邻接关系,那么如果一个end.xsid对应于至少两个底层段标识,表明两个网络节点之间的一个邻接关系通过至少两条底层路径提供,在这种场景下,通过发布至少两个底层段标识,在数据包中携带底层段标识,可以指定数据包从至少两条底层路径中的哪条底层路径传输,从而可以灵活地调度各条底层路径,为不同流量执行不同的传输策略,因此扩展了数据传输的能力,提高了灵活性。14.可选地,所述至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,所述端点三层交叉连接段标识用于标识所述第一网络节点和所述第二网络节点之间的三层邻接关系。15.通过这种可选方式,由于end.xsid标识了两个网络节点之间的三层邻接关系,如果底层段标识没有对应的end.xsid,表明两个网络节点在ip层没有建立邻接关系,在这种场景下,通过发布底层段标识,在数据包中携带底层段标识,也能够通过底层段标识对应的底层路径传输数据包,那么,即使看不到两个网络节点的ip层路径,也能够使用底层段标识调度底层路径,因此扩展了数据传输的能力,提高了灵活性。16.可选地,所述发布至少一个底层段标识,包括:通过内部网关协议(interiorgatewayroutingprotocol,igp),发布所述至少一个底层段标识;或者,通过边界网关协议链路状态(bordergatewayprotocol-linkstate,bgp-ls),发布所述至少一个底层段标识;或者,通过路径计算单元通信协议(pathcomputationelementcommunicationprotocol,pcep),发布所述至少一个底层段标识。17.可选地,所述方法还包括:发布所述至少一条底层路径中一条或多条底层路径的路径参数。18.通过发布底层路径的路径参数,头节点或控制器能够根据路径参数,选择传输数据包的底层路径。19.可选地,所述方法还包括:发布所述第二网络节点的标识。20.通过发布第二网络节点的标识,头节点或控制器能够根据第二网络节点的标识,确定底层路径的对端节点,从而感知第一网络节点通过底层路径与哪个网络节点相连。21.可选地,所述方法还包括:发布所述至少一条底层路径中一条或多条底层路径的路径类型。22.通过发布每条底层路径的路径类型,头节点或控制器可以感知到具体发布了哪一种类型的底层路径,从而能够根据业务需求,调度特定类型的底层路径进行数据传输,因此提高了灵活性。23.可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一(typelengthvalue,tlv),每个第一tlv包括一个底层段标识。24.可选地,所述第一tlv为第二tlv的子tlv,所述第二tlv包括端点三层交叉连接段标识(end.xsid,end表示endpoint,意为端点;x表示crossing,意为三层交叉连接,sid意为段标识);或者,所述第一tlv为与所述第二tlv并列的tlv;或者,所述第一tlv为位置信息tlv的子tlv;或者,所述第一tlv是一个新的顶级tlv的子tlv,所述顶级tlv是指未嵌套在其他tlv内部的tlv。25.通过上述可选方式,为发布底层段标识提供了多种报文的格式,提高了灵活性。26.可选地,所述新的顶级tlv或位置信息tlv包括所述第一网络节点的端点三层交叉连接段标识。27.所述第一网络节点的端点三层交叉连接段标识通常会通过22tlv或者222tlv发布,而通过上述可选方式,将第一网络节点的端点三层交叉连接段标识也通过新的顶级tlv或位置信息tlv发布,因此22tlv或者222tlv可以无需携带邻居节点相关的段标识,从而降低了22tlv或者222tlv的复杂度。28.可选地,所述发布至少一个底层段标识之前,所述方法还包括:为所述至少一条底层路径分配所述至少一个底层段标识;或者,接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。29.可选地,所述方法还包括:保存底层段标识与底层出接口之间的绑定关系;所述通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,包括:根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口,通过所述底层出接口发送所述数据包。30.第二方面,提供了一种数据传输方法,应用于头节点,所述头节点是指分段路由网络入口处的节点,所述方法包括:从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;接收数据包;向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;向所述第一网络节点发送携带所述目标底层段标识的所述数据包。31.通过设计了与底层路径对应的底层段标识,在传输数据包时,向数据包添加目标底层段标识,使得第一网络节点能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了传输数据包的灵活性,有助于进行流量规划。32.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。33.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。34.可选地,所述向所述数据包添加目标底层段标识之前,所述方法还包括:根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述所述目标底层段标识;或者,从所述分段路由网络的控制器接收所述目标底层段标识,向所述数据包添加所述目标底层段标识。35.通过根据数据包承载的业务,来选择传输数据包的底层路径,对于任一业务来说,可以指定承载该业务的数据包走哪一条底层路径,从而让不同的业务可以通过不同的底层路径传输,有助于进行流量规划,能够更好地利用不同的底层路径,提升业务的服务质量(qualityofservice,qos)。36.可选地,所述从所述至少一条底层路径中,选择所述业务对应的底层路径,包括:根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。37.可选地,所述根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径之前,所述方法还包括:从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。38.可选地,所述方法还包括:从所述第一网络节点接收所述第二网络节点的标识。39.可选地,所述方法还包括:从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径类型。40.第三方面,提供了一种第一网络节点,所述第一网络节点具有实现上述第一方面或第一方面任一种可选方式中数据传输的功能。该装置包括至少一个模块,所述至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的数据传输方法。41.第四方面,提供了一种头节点,所述头节点具有实现上述第二方面或第二方面任一种可选方式数据传输的功能。该装置包括至少一个模块,所述至少一个模块用于实现上述第二方面或第二方面任一种可选方式所提供的数据传输方法。42.第五方面,提供了一种第一网络节点,所述第一网络节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;43.所述处理器用于加载所述指令,控制所述收发器发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;所述处理器还用于通过所述指令,控制所述收发器接收携带目标底层段标识的数据包;所述处理器还用于通过所述指令,控制所述收发器通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。44.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。45.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。46.可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径参数。47.可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述第二网络节点的标识。48.可选地,所述处理器还用于通过所述指令,控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径类型。49.可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值tlv,每个第一tlv包括一个底层段标识。50.可选地,所述第一tlv为第二tlv的子tlv,所述第二tlv包括端点三层交叉连接段标识;或者,所述第一tlv为与所述第二tlv并列的tlv;或者,所述第一tlv为位置信息tlv的子tlv;或者,所述第一tlv为新的顶级tlv的子tlv,所述顶级tlv是指未嵌套在其他tlv内部的tlv。51.可选地,所述处理器用于通过所述指令,为所述至少一条底层路径分配所述至少一个底层段标识;或者,52.所述处理器还用于通过所述指令,控制所述收发器接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。53.可选地,所述处理器还用于通过所述指令,控制所述存储器保存底层段标识与底层出接口之间的绑定关系;所述处理器还用于通过所述指令,根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口;所述处理器用于通过所述指令,控制所述收发器通过所述底层出接口发送所述数据包。54.第六方面,提供了一种头节点,所述头节点包括处理器、存储器以及收发器,所述存储器中存储有至少一条指令;55.所述处理器用于加载所述指令,控制所述收发器从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;56.所述处理器还用于通过所述指令,控制所述收发器接收数据包;57.所述处理器还用于通过所述指令,向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;58.所述处理器还用于通过所述指令,控制所述收发器向所述第一网络节点发送携带所述目标底层段标识的所述数据包。59.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。60.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。61.可选地,所述处理器还用于通过所述指令,根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,所述处理器还用于通过所述指令,控制所述收发器从所述分段路由网络的控制器接收所述目标底层段标识。62.可选地,所述处理器具体用于通过所述指令,以根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。63.可选地,所述处理器还用于通过所述指令,控制所述收发器从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。64.可选地,所述处理器还用于通过所述指令,控制所述收发器从所述第一网络节点接收所述第二网络节点的标识。65.可选地,所述处理器还用于通过所述指令,控制所述收发器接收所述至少一条底层路径中一条或多条底层路径的路径类型。66.第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令;67.所述指令用于供处理器加载以控制收发器发布至少一个底层段标识,每个所述底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;所述指令还用于供所述处理器控制所述收发器接收携带目标底层段标识的数据包;所述指令还用于供所述处理器控制所述收发器通过所述至少一条底层路径中所述目标底层段标识对应的底层路径发送所述数据包,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识。68.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。69.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。70.可选地,所述指令还用于供所述处理器控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径参数。71.可选地,所述指令还用于供所述处理器控制所述收发器发布所述第二网络节点的标识。72.可选地,所述指令还用于供所述处理器控制所述收发器发布所述至少一条底层路径中一条或多条底层路径的路径类型。73.可选地,所述至少一个底层段标识携带在报文中,所述报文包括至少一个第一类型长度值tlv,每个第一tlv包括一个底层段标识。74.可选地,所述第一tlv为第二tlv的子tlv,所述第二tlv包括端点三层交叉连接段标识;或者,所述第一tlv为与所述第二tlv并列的tlv;或者,所述第一tlv为位置信息tlv的子tlv;或者,所述第一tlv为新的顶级tlv的子tlv,所述顶级tlv是指未嵌套在其他tlv内部的tlv。75.可选地,所述指令还用于供所述处理器为所述至少一条底层路径分配所述至少一个底层段标识;或者,76.所述指令还用于供所述处理器控制所述收发器接收配置指令,从所述配置指令获取所述至少一个底层段标识和所述至少一条底层路径中的一条或多条底层路径的对应关系。77.可选地,所述指令还用于供所述处理器控制所述存储器保存底层段标识与底层出接口之间的绑定关系;所述指令还用于供所述处理器根据所述目标底层段标识以及所述绑定关系,确定所述目标底层段标识绑定的底层出接口;所述指令还用于供所述处理器控制所述收发器通过所述底层出接口发送所述数据包。78.第八方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令;79.所述指令用于供处理器加载以控制收发器从第一网络节点接收至少一个底层段标识,所述第一网络节点与第二网络节点之间通过至少一条底层路径相连,所述底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径,每个底层段标识对应于所述至少一条底层路径中的一条或多条底层路径;80.所述指令还用于供所述处理器控制所述收发器接收数据包;81.所述指令还用于供所述处理器向所述数据包添加目标底层段标识,所述目标底层段标识为所述至少一个底层段标识中的任一底层段标识;82.所述指令还用于供所述处理器控制所述收发器向所述第一网络节点发送携带所述目标底层段标识的所述数据包。83.可选地,所述至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。84.可选地,所述至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。85.可选地,所述指令还用于供所述处理器根据所述数据包承载的业务,从所述至少一条底层路径中,选择所述业务对应的底层路径,将所述选择出的底层路径所对应的底层段标识作为所述目标底层段标识;或者,所述指令还用于供所述处理器控制所述收发器从所述分段路用于供网络的控制器接收所述目标底层段标识。86.可选地,所述指令用于供处理器根据每条底层路径的路径参数,从所述至少一条底层路径中,选择路径参数满足所述业务的传输需求的底层路径。87.可选地,所述指令还用于供所述处理器控制所述收发器从所述第一网络节点接收所述至少一条底层路径中一条或多条底层路径的路径参数。88.可选地,所述指令还用于供所述处理器控制所述收发器从所述第一网络节点接收所述第二网络节点的标识。89.可选地,所述指令还用于供所述处理器控制所述收发器接收所述至少一条底层路径中一条或多条底层路径的路径类型。90.第九方面,提供了一种计算机程序,所述计算机程序用于执行上述第一方面或第一方面任一种可选方式所述的方法。91.第十方面,提供了一种计算机程序,所述计算机程序用于执行上述第二方面或第二方面任一种可选方式所述的方法。92.第十一方面,提供了一种数据传输系统,所述数据传输系统包括第一网络节点以及头节点,所述第一网络节点用于执行上述第一方面或第一方面任一种可选方式所述的方法,所述头节点用于执行上述第二方面或第二方面任一种可选方式所述的方法。附图说明93.图1是本技术实施例提供的一种数据传输系统的架构图;94.图2是本技术实施例提供的一种数据传输系统的架构图;95.图3是本技术实施例提供的一种数据传输系统的架构图;96.图4是本技术实施例提供的一种数据传输方法的流程图;97.图5是本技术实施例提供的一种tlv的格式示意图;98.图6是本技术实施例提供的一种tlv的格式示意图;99.图7是本技术实施例提供的一种tlv的格式示意图;100.图8是本技术实施例提供的一种tlv的格式示意图;101.图9是本技术实施例提供的一种tlv的格式示意图;102.图10是本技术实施例提供的一种tlv的格式示意图;103.图11是本技术实施例提供的一种tlv的格式示意图;104.图12是本技术实施例提供的一种tlv的格式示意图;105.图13是本技术实施例提供的一种tlv的格式示意图;106.图14是本技术实施例提供的一种tlv的格式示意图;107.图15是本技术实施例提供的一种tlv的格式示意图;108.图16是本技术实施例提供的一种第一网络节点的结构示意图;109.图17是本技术实施例提供的一种头节点的结构示意图;110.图18是本技术实施例提供的一种第一网络节点的结构示意图;111.图19是本技术实施例提供的一种头节点的结构示意图。具体实施方式112.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。113.本技术中术语“多个”的含义是指两个或两个以上,例如,多个底层段标识是指两个或两个以上的底层段标识。多条底层路径是指两条或两条以上的底层路径。114.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。115.以下对本技术涉及的术语进行解释:116.分段路由(segmentrouting,sr):是基于源路由的理念而设计的在网络中转发数据包的一种协议。sr将网络路径划分为一个个段,并且为这些段和网络节点分配分段标识(segmentid,sid),通过对sid进行有序排列,可以得到sid列表(sidlist,在sr-mpls中也称标签栈),sidlist可以指示一条转发路径。通过sr技术,可以指定携带了sidlist的数据包经过的节点以及路径,从而满足流量调优的要求。做一个类比,数据包可以比作行李,sr可以比作行李上贴的标签,如果要将行李从a地区发送到d地区,途径b地区和c地区,则可以在始发地a地区给行李贴上一个标签“先到b地区,再到c地区,最后到d地区”,这样一来,各个地区只需识别行李上的标签,依据行李的标签将行李从一个地区转发至另一个地区即可。在sr技术中,源节点会向数据包添加标签,中间节点可以根据标签转发至下一个节点,直至数据包到达目的节点。例如在数据包的包头中,插入《sid1,sid2,sid3》,则数据包(packet)会首先转发给sid1对应的节点,之后转发给sid2对应的节点,之后转发给sid3对应的节点。其中,sr-mpls的中英文全称为分段路由多协议标签交换(segmentroutingmulti-protocollabelswitching)117.基于互联网协议第6版(internetprotocolversion6,ipv6)的分段路由(srv6):是指将sr技术应用在ipv6网络中。使用ipv6地址(128bits)作为sid的表现形式。在转发数据包时,支持srv6的网络设备会按照数据包中的目的地址(destinationaddress,da),查询本地段标识表(localsidtable),当数据包的目的地址与本地段标识表中的任一sid最长匹配时,则按照本地段标识表中的sid相关的策略,执行该策略对应的操作,例如,可以将数据包从sid对应的出接口转发出去;如果数据包的目的地址与本地段标识表中的每个sid均不最长匹配,则再查询ipv6的转发表,按照ipv6的转发表进行最长匹配转发。118.分段路由头(segmentroutingheader,srh):ipv6报文是由ipv6标准头 扩展头(0...n) 负载(payload)组成。为了基于ipv6转发平面实现srv6,新增加一种ipv6扩展头,称作srh扩展头,该扩展头指定一个ipv6的显式路径,存储的是ipv6的segmentlist信息,其作用与srmpls里的segmentlist一样。头节点在ipv6报文增加一个srh扩展头,中间节点就可以按照srh扩展头里包含的路径信息转发119.绑定的sid(bindingsid,bsid):bsid会绑定到一个sidlist上。当节点收到一个合法的bsid时,会执行bsid相关的操作。在sr-mpls中,bsid相关的操作可以为:将bsid弹出,压入相应的sidlist。在srv6中,bsid相关的操作可以为:根据bsid函数的不同,插入一个新的srh头(end.b6.insert),或者是插入一个新的包含srh的外层ipv6头(end.b6.encaps)。120.bgp-ls:是收集网络拓扑的一种新的方式,由bgp协议汇总igp协议收集的拓扑信息上送给上层控制器。121.以下,示例性介绍本技术的系统架构。122.图1是本技术实施例提供的一种数据传输系统的架构图,该系统构成的网络可以提供为分段路由网络,例如为srv6网络。该系统包括多个网络节点,网络节点可以是p1、p2、p3、p4或者p5。123.图1的虚线分割线以上表示分组交换网络的拓扑,该分组交换网络也可以称为ip层的网络或者3层网络。图1的虚线分割线以下表示底层网络的拓扑。124.p1、p2、p3、p4以及p5表示互联网协议(internetprotocol,ip)层节点,ip层节点可以是路由器、三层交换机等。p1、p2、p3、p4以及p5之间的连线表示ip层路径,例如p1和p2之间的连线表示p1和p2之间的ip层路径,任两个ip层节点之间的ip层路径可以基于两个ip层节点的ip地址建立。其中,p1为头节点,头节点是指分段路由网络入口处的节点,头节点用于将sid添加至数据包。125.o1、o2、o3、o4以及o5表示底层节点,底层节点可以是数据链路层节点或物理层节点,例如可以是光层节点,光层节点可以是光传送网(opticaltransportnetwork,otn)设备、光交叉连接(opticalcross-connect,oxc)设备等。o1、o2、o3、o4以及o5之间的连线表示底层路径。126.底层路径是指数据链路层的路径、物理层的路径或者通过隧道技术构建的路径。隧道技术是指通过使用互联网络的基础设施在网络之间建立一条端到端的虚拟链路以传输数据的方式。例如,通过隧道技术构建的路径可以是ip隧道、udp隧道等。具体来讲,底层路径可以是传输光信号的路径,也可以是传输电信号的路径。底层路径可以是物理路径,也可以是虚拟路径。例如,底层路径可以为光路、atm路径、fr路径或者背靠背的以太网(ethernet)路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。其中,光路可以为dwdm路径或otn路径。背靠背是指两个节点之间直连。一条底层路径可以经过一个或多个底层节点,例如,参见图1,底层路径可以是(o1,o2,o3,o4),(o1,o2,o3,o4)可以经过底层节点o1、底层节点o2、底层节点o3以及底层节点o4。或者,底层路径可以是(o1,o6,o5,o4),(o1,o6,o5,o4)可以经过底层节点o1、底层节点o6、底层节点o5以及底层节点o4。127.其中,p2和p3处于分组交换网络和底层网络的边缘,可以视为分组交换网络与底层网络之间的网关。例如,如果底层路径为光路,则p2和p3可以称为分组和光的网关(packetopticalgateway,pog)。pog用于产生传输分段(transportsegment),生成传输分段与光路之间的映射关系,将产生的传输分段在网络中发布;如果pog接收到数据包,而数据包携带之前发布的传输分段,pog会根据映射关系,找到传输分段映射的光路,通过该光路发送数据包。pog可以是合设,也可以是分设,合设的场景指的是p2或者p3能够独立地执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤;分设是指p2需要跟o1联合,才能执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤,p3需要跟o4联合,才能执行上述根据传输分段确定映射的光路、通过光路传输数据包等步骤。128.在一种可能的场景中,p2和p3之间的1条ip层路径可以对应于多条底层路径。如图1所示,p2有两个出接口,这两个出接口分别记为intf1和intf2,p2通过intf1与p3建立了ip层路径1,p2通过intf2与p3建立了ip层路径2。ip层路径1对应了两条底层路径,分别是(o1,o2,o3,o4)和(o1,o6,o5,o4)。ip层路径2对应了一条底层路径,是(o2,o3)。129.在图1中,ip层路径1虽然对应于2条底层路径,但由于目前的ip网络并不能感知这2条底层路径,因此在通过ip层路径1传输数据包时,只能默认使用预先配置的底层路径来传输数据包,例如如果预先配置了(o1,o2,o3,o4),就会默认使用(o1,o2,o3,o4)传输数据包,而无法使用(o1,o6,o5,o4)传输数据包,更无法根据数据包承载的业务,从2条底层路径中选择适合传输该数据包的底层路径。130.而本技术实施例提出了底层段标识的概念,底层段标识可以对应一条或多条底层路径,在图1所示的分段路由网络中,通过应用下述图4实施例提供的方法,将底层段标识在分段路由网络中发布,可以让ip网络通过底层段标识感知到底层路径。引入底层段标识后,p1开始的流量可以通过携带底层段标识,来指定流量待经过的底层路径。比如说,可以指定数据包通过(o1,o2,o3,o4)传输,还是通过(o1,o6,o5,o4)传输,由p1将指定的底层路径对应的底层段标识添加到数据包,将数据包发送至p2,则p2会根据数据包中的底层段标识,通过指定的底层路径传输数据包。如此,可以让不同的业务在不同的底层路径上传输,从而实现流量调优的效果。例如,底层路径可以是光路,通过在分段路由网络中发布对应于光路的底层段标识,从而将光路也作为分段路由网络的传输分段,这样就提供了适用于ip和光的融合(packet-opticalintegration,poi)的控制面的方案,使得头节点可以根据业务选择光路。131.在这种ip层路径与底层路径是一对多的关系的场景下,一方面,可以认为底层路径是三层的邻接sid的从属,另一方面,可以认为底层路径为三层的邻接sid并列的另外一种连接提供能力,其调用方式需要使用分段路由网络为底层网络专门设计的段标识,即本实施例提出的底层段标识。132.在另一种可能的场景中,p2和p3可以没有建立ip层路径,而建立了一条或多条底层路径。例如,p2和p3可以通过100g的以太网互联。如果是合设场景,即p2即是ip层的节点,也是光层的节点,p2和o1可以采用otn或者dwdm互联。示意性地,如图2所示,p2可以通过intf2和p3建立底层路径(o2,o3),在这种场景中,目前的ip网络并不能感知底层路径(o2,o3),更无法通过这条底层路径传输数据包。133.而通过本实施例,p2可以将对应于(o2,o3)的底层段标识发布出去,则p1可以通过底层段标识,感知到底层路径(o2,o3),那么在传输数据包的过程中,p1可以向数据包中添加对应于(o2,o3)的底层段标识,p2会根据数据包中的底层段标识,通过(o2,o3)发送数据包,从而走出(o2,o3)这条底层路径来。134.需要说明的一点是,图1中p2和p3之间在3层有一条横线,这条横线表示p2和p3之间建立了一条ip层路径,而图2中p2和p3之间在3层没有连线,表示p2和p3之间没有建立ip层路径。135.其中,以p2和p3为例,p2和p3之间建立了ip层路径是指,p2和p3在ip层是igp邻居关系,即,p2是p3的igp邻居设备,并且p3也是p2的igp邻居设备。136.可选地,如图3所示,该系统中还可以包括控制器,控制器通过无线网络或有线网络与每个ip层节点相连,控制器可以用于从多条底层路径中,选择传输数据包的底层路径。控制器可以是一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。当控制器是多台时,可以存在至少两台控制器用于提供不同的服务,和/或,存在至少两台控制器用于提供相同的服务,比如以负载均衡方式提供同一种服务,本发明实施例对此不加以限定。137.本领域技术人员可以知晓,该数据传输系统中的网络节点的数量可以更多或更少。比如上述网络节点可以为几十个或几百个,或者更多数量。本技术实施例对网络节点的数量和设备类型不加以限定。138.以下,示例性介绍本技术的方法流程。139.图4是本技术实施例提供的一种数据传输方法的流程图,如图4所示,该方法的交互主体包括第一网络节点、第二网络节点以及头节点,第一网络节点与第二网络节点之间通过至少一条底层路径相连。第一网络节点可以为图1、图2或者图3所示的系统架构中的p2,第二网络节点可以是图1、图2或者图3所示的系统架构中的p3,头节点可以是图1、图2或者图3所示的系统架构中的p1,该方法可以包括以下步骤:140.步骤401、第一网络节点发布至少一个底层段标识。141.每个底层段标识对应于第一网络节点与第二网络节点之间的至少一条底层路径中的一条或多条底层路径。底层段标识可以称为end.xusid,end表示endpoint,意为端点;x表示crossing,意为三层交叉连接;u表示underlay,意为底层;sid意为段标识。底层段标识可以通过数字的形式表示,例如,底层段标识可以满足ipv6地址的格式。142.在一些可能的实施例中,底层段标识和底层路径可以是一一对应的关系,即,一个底层段标识唯一对应一条底层路径;在另一些可能的实施例中,底层段标识和底层路径也可以是一对多的关系,即,一个底层段标识可以对应多条底层路径,同一底层段标识对应的不同底层路径可以分担负载。示例性地,如果第一网络节点和第二网络节点之间连接了4条底层路径,记为底层路径1、底层路径2、底层路径3以及底层路径4,则第一网络节点可以发布2个底层段标识,记为底层段标识1和底层段标识2,底层段标识1对应于底层路径1、底层路径2以及底层路径3,底层段标识4对应于底层路径4。在此例中,底层段标识1通过同时对应3条底层路径,可以让3条底层路径分担负载。143.第一网络节点可以具有一个或多个出接口,每条底层路径可以对应于第一网络节点的一个出接口,该出接口可以是物理出接口,也可以是逻辑出接口。此处的对应的意思是,如果底层路径i与出接口j对应,数据包从出接口i发送出去后,会进入底层路径j,数据包沿着底层路径j可以到达第二网络节点。其中,i表示出接口的标识,j表示底层路径的标识。144.在一些可能的实施例中,以底层段标识记为s,网络节点记为n为例,根据底层段标识执行的操作可以如下:145.whennreceivesapacketdestinedtosandsisalocalend.xusid,ndoes:146./注释:当n接收到目的地址为s的数据包,且s为n发布的底层段标识时,n执行以下步骤/147.ifnh=srhandsl》0/注释:如果下一个头部(nextheader,nh)为分段路由头(segmentroutingheader,srh)且剩余段的数量(segmentleft,sl)大于0/148.decrementsl/注释:将sl减一/149.updatetheipv6dawithsrh[sl]/注释:使用srh[sl]更新ipv6的目的地址/[0150]forwardtounderlayinterfaceboundtothesids/注释:从sid绑定的底层出接口转发数据包/[0151]else/注释:否则/[0152]dropthepacket/注释:丢弃数据包/[0153]可选地,至少一个底层段标识中的一个或多个底层段标识可以为底层链路段标识。底层链路段标识用于标识一条底层路径,例如可以标识一条端到端的完整路径,此处的端到端是指从一个pog到另一个pog。其中,底层链路段标识与srv6网络中的end.xsid以及sr-mpls中的邻接sid(adjacencysid)类似,相区别的是,end.xsid用于标识ip层路径,邻接sid用于标识邻接关系,end.xsid以及邻接sid是三层的概念,均不涉及底层网络,也不能标识底层路径。[0154]在一些可能的实施例中,第一网络节点和第二网络节点之间的三层邻接关系可以通过end.xsid标识。底层段标识和end.xsid之间的关系包括而不限于下述两种情况:[0155]情况(1)至少两个底层段标识对应于同一个end.xsid。也即是,end.xsid和底层段标识可以是一对多的关系。在情况(1)下,第一网络节点和第二网络节点在ip层建立了邻接关系,且通过多条底层路径连接。[0156]如图1所示,p2有两个出接口,这两个出接口分别记为intf1和intf2,p2和p3建立有两个基于igp的邻接关系,其中一个邻接关系是通过intf1建立的,另一个邻接关系通过intf2建立的。intf1的邻接关系对应了两条底层路径,分别是(o1,o2,o3,o4)和(o1,o6,o5,o4)。intf2的邻接关系对应了一条底层路径,是(o2,o3)。在此例中,p2存在5个邻接类型的sid,这5个邻接类型的sid包括2个end.xsid以及3个底层段标识,其中,p2的1个end.xsid对应于intf1,这个end.xsid对应于2个底层段标识,1个底层段标识对应于底层路径(o1,o2,o3,o4),另1个底层段标识对应于底层路径(o1,o6,o5,o4);p2的另1个end.xsid对应于intf2,这个end.xsid对应于1个底层段标识,这个底层段标识对应于底层路径(o2,o3)。[0157]情况(2)至少一个底层段标识中的一个或多个底层段标识没有对应的end.xsid。也即是,end.xsid和底层段标识可以是零对一的关系,即,第一网络节点和第二网络节点在ip层没有建立邻接关系,且通过一条底层路径连接。或者,end.xsid和底层段标识可以是零对多的关系,即,第一网络节点和第二网络节点在ip层没有建立邻接关系,且在底层通过多条底层路径连接。需要说明的是,此处的没有建立邻接关系,在一种情况下,可以指第一网络节点的部分出接口没有和第二网络节点建立邻接关系,而第一网络节点的另一部分出接口和第二网络节点建立了邻接关系;在另一种情况下,可以指第一网络节点的所有出接口均没有和第二网络节点建立邻接关系。[0158]如图1所示,p2通过intf1和p3建立了1个基于igp的邻接关系,该邻接关系对应了两条底层路径,这两条底层路径分别是(o1,o2,o3,o4)和(o1,o6,o5,o4)。另外,p2通过intf2和p3建立了1条底层路径,该底层路径是(o2,o3)。在此例中,p2存在4个邻接类型的sid,这4个邻接类型的sid包括1个end.xsid以及3个底层段标识,其中,end.xsid对应于intf1,这个end.xsid对应于2个底层段标识,1个底层段标识对应于底层路径(o1,o2,o3,o4),另1个底层段标识对应于底层路径(o1,o6,o5,o4);p2除了这3个邻接类型的sid之外,还具有1个底层段标识,这个底层段标识对应于底层路径(o2,o3),而没有对应的end.xsid。[0159]关于第一网络节点如何得到底层段标识,在一些可能的实施例中,可以由第一网络节点自动分配至少一个底层段标识,也可以人工配置至少一个底层段标识。具体地,得到底层段标识的方式可以包括下述方式一至方式二中的任一项或多项。[0160]方式一、第一网络节点为至少一条底层路径分配至少一个底层段标识。[0161]在一种可能的实现中,第一网络节点可以为每条底层路径分配一个底层段标识,为不同的底层路径分配的底层段标识不同,使得分配的每一个底层段标识对应一条底层路径;在另一种可能的实现中,第一网络节点也可以为多条底层路径分配同一底层段标识,使得分配的一个底层段标识对应于多条底层路径。其中,第一网络节点可以存储有段标识空间,可以从段标识空间中选择未被占用的底层段标识,将底层段标识分配给底层路径。[0162]方式二、第一网络节点接收配置指令,第一网络节点从配置指令获取至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。其中,配置指令可以由用户在第一网络节点上的配置操作触发,配置指令可以包括至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。配置指令也可能由网管或者控制器(controller)触发。[0163]示例性地,在图1所示的网络中,p2得到的底层段标识和底层路径之间的对应关系可以如下表1所示,end.xusid1与(o1,o2,o3,o4)对应,end.xusid2与(o1,o6,o5,o4)对应,end.xusid3与(o2,o3)对应,end.xusid4与(o1,o2,o3,o4)以及(o2,o3)对应。[0164]表1[0165][0166]在一些可能的实施例中,第一网络节点得到至少一个底层段标识之后,第一网络节点可以保存底层段标识与底层出接口之间的绑定关系。在一种可能的实现中,如果底层段标识对应于一条底层路径,底层段标识和底层出接口可以是一对一的关系,即,每个底层段标识绑定一个底层出接口,数据包通过底层段标识绑定的底层出接口发出后,会进入该底层段标识对应的底层路径。在另一种可能的实现中,如果底层段标识对应于多条底层路径,底层段标识和底层出接口可以是一对多的关系,即,每个底层段标识绑定多个底层出接口,数据包通过底层段标识绑定的多个底层出接口中的任一出接口发出后,会进入该底层段标识对应的多条底层路径中的一条底层路径,从而让多条底层路径可以分担负载。[0167]关于分担负载的实现方式,在一种可能的实现中,如果底层段标识对应于多条底层路径,第一网络节点接收到携带该底层段标识的多个数据包时,可以采用负载分担算法,获取该底层段标识对应的多条底层路径中不同底层路径之间的传输比例,按照该传输比例,在每条底层路径上传输对应占比的数据包。其中,传输比例是指不同底层路径上传输的数据包的数量之间的比例。[0168]例如,如果底层段标识对应于底层路径1以及底层路径2,第一网络节点接收到携带该底层段标识的多个数据包时,可以采用负载分担算法,获取底层路径1与底层路径2之间的传输比例为3:7,则第一网络节点可以在底层路径1上传输多个数据包中30%的数据包,在底层路径2上传输多个数据包中70%的数据包。[0169]需要说明的一点是,对于任一个数据包来说,在该数据包携带的底层段标识对应于多个底层出接口的情况下,该数据包会从该多个底层出接口中的一个底层出接口发送出去,而该数据包具体从多个底层出接口中的哪一个底层出接口发送出去,可以根据负载分担算法确定,本实施例对此不做限定。此外,第一网络节点采用的负载分担算法可以根据实际需要选择,本实施例对负载分担算法的类型也不做限定。此外,第一网络节点接收到的携带同一底层段标识的多个数据包可以属于同一数据流或不同数据流,数据流可以是指五元组相同的多个数据包,本实施例对接收到的携带同一底层段标识的多个数据包是否属于相同数据流不做限定。[0170]需要说明的另一点是,本实施例中的底层出接口可以是物理接口,也可以是虚拟接口。其中,物理接口可以是图1中的intf1或intf2;虚拟接口可以通过对物理接口虚拟划分得到,一个物理接口可以对应于一个或多个虚拟接口。比如说,一个物理接口可以通过虚拟局域网(virtuallocalareanetwork,vlan)技术,划分为一个或多个vlan接口,每个vlan接口可以作为一个底层出接口,每个vlan接口和每条底层路径一一对应;又比如,一个物理接口可以通过otn技术,划分为一个或多个时隙,每个时隙可以作为一个底层出接口,每个时隙和每条底层路径一一对应;又比如,物理接口可以是光纤,一根光纤可以对应一个或多个波长,每个波长可以作为一个底层出接口,每个波长和每条底层路径一一对应。[0171]如果同一底层段标识对应于多条底层路径,则底层段标识会与多条底层路径对应的多个底层出接口绑定,底层段标识与多个底层出接口之间的绑定关系可以而不限于下述两种情况:[0172]情况一、底层段标识绑定了同一物理接口对应的多个虚拟接口。[0173]示例性地,在图1所示的网络中,p2保存的底层段标识、底层出接口以及底层路径之间的对应关系可以如下表2所示,从表2可见,end.xusid1绑定了两个底层出接口,分别为虚拟接口1以及虚拟接口2,这两个底层出接口均与物理接口intf1对应,虚拟接口1与(o1,o2,o3,o4)对应,虚拟接口2与(o1,o6,o5,o4)对应。[0174]基于表2,如果p2接收到了多个携带end.xusid3的数据包,则p2根据end.xusid3,可以查询到底层出接口为intf1对应的虚拟接口1,则p2会通过intf1对应的虚拟接口1发送该多个数据包,则多个数据包会通过一条底层路径:虚拟接口1对应的(o1,o2,o3,o4),从p2传输至p3。[0175]表2[0176][0177]而基于表2,如果p2接收到了携带end.xusid1的多个数据包,则p2根据end.xusid1,可以查询到底层出接口为intf1对应的虚拟接口1以及虚拟接口2,则p2会通过intf1对应的虚拟接口1以及虚拟接口2发送该多个数据包,则该多个数据包会通过两条底层路径:虚拟接口1对应的(o1,o2,o3,o4)以及虚拟接口2对应的(o1,o6,o5,o4),从p2传输至p3,其中,该多个数据包中的一部分数据包会从虚拟接口1,通过(o1,o2,o3,o4)从p2传输至p3,该多个数据包中的另一部分数据包会从虚拟接口2,通过(o1,o6,o5,o4)从p2传输至p3。示例性地,如果p1采用负载分担算法,获取(o1,o2,o3,o4)与(o1,o6,o5,o4)之间的传输比例为3:7,则p1可以从虚拟接口1发送30%的数据包,则30%的数据包会通过(o1,o2,o3,o4)从p2传输至p3;并且,p1可以从虚拟接口2发送剩余的70%的数据包,则70%的数据包会通过(o1,o6,o5,o4)从p2传输至p3。[0178]结合上述举例可见,end.xusid1和end.xusid3的区别之处在于,end.xusid3与一个底层出接口绑定,end.xusid3对应于一条底层路径;而end.xusid1与两个底层出接口绑定,end.xusid1对应于两条底层路径,能够产生负载分担的效果。[0179]情况二、底层段标识绑定了不同物理接口对应的多个虚拟接口。[0180]示例性地,在图1所示的网络中,p2保存的底层段标识、底层出接口以及底层路径之间的对应关系也可以如下表3所示,从表3可见,end.xusid4绑定了两个底层出接口,分别为虚拟接口1以及虚拟接口3,其中虚拟接口1与物理接口intf1对应,且虚拟接口1与(o1,o2,o3,o4)对应,虚拟接口3与物理接口intf2对应,并且虚拟接口3与(o2,o3)对应。[0181]表3[0182][0183]基于表3,如果p2接收到了携带end.xusid4的多个数据包,则p2根据end.xusid4,可以查询到底层出接口为虚拟接口1以及虚拟接口3,则p2会通过intf1对应的虚拟接口1以及intf2对应的虚拟接口3发送该多个数据包,则该多个数据包会通过两条底层路径:虚拟接口1对应的(o1,o2,o3,o4)以及虚拟接口3对应的(o2,o3),从p2传输至p3,其中,该多个数据包中的一部分数据包会从虚拟接口1,通过(o1,o2,o3,o4)从p2传输至p3,该多个数据包中的另外一部分数据包会从虚拟接口3,通过(o2,o3)从p2传输至p3。[0184]在一些可能的实施例中,第一网络节点得到至少一个底层段标识之后,第一网络节点可以将至少一个底层段标识写入本地段标识表(localsidtable),以便后续可以通过查询localsidtable转发数据包。其中,本地段标识表用于记录第一网络节点的每个段标识。[0185]发布底层段标识的方式可以而不限于下述方式一至方式三中的任意一项:[0186]方式一、第一网络节点可以通过igp,发布至少一个底层段标识。[0187]具体来讲,第一网络节点可以通过igp,向分组交换网络泛洪至少一个底层段标识。其中,泛洪(flooding)是指一个节点向相邻节点通告某种信息后,相邻节点再将同样的信息传送给发送该信息的节点之外的其它邻居节点,并这样逐级将该信息传送到整个网络内所有节点的一种方式。通过泛洪,整个网络内的每一个节点可以共享信息。在方式一中,通过泛洪至少一个底层段标识,分组交换网络中每个ip层的节点均可以接收到底层段标识。示例性地,参见图1,p2泛洪底层段标识后,p1、p3、p4以及p5均可以接收到底层段标识。[0188]方式二、第一网络节点可以通过bgp-ls,发布至少一个底层段标识。[0189]具体来讲,第一网络节点可以通过bgp-ls,向控制器发送至少一个底层段标识,控制器可以通过bgp-ls,接收第一网络节点发送的至少一个底层段标识,将至少一个底层段标识发送至头节点。示例性地,参见图3,p2可以通过bgp-ls向控制器发送底层段标识,控制器可以通过bgp-ls将底层段标识发送至p1。[0190]方式三、第一网络节点可以通过pcep,发布至少一个底层段标识。[0191]具体来讲,第一网络节点可以通过pcep,向控制器发送至少一个底层段标识,控制器可以通过pcep,接收第一网络节点发送的至少一个底层段标识,将至少一个底层段标识发送至头节点。示例性地,参见图3,p2可以通过pcep向控制器发送底层段标识,控制器可以通过pcep将底层段标识发送至p1。[0192]可选地,第一网络节点还可以发布至少一条底层路径中一条或多条底层路径的路径参数,以便头节点或控制器根据路径参数,选择传输数据包的底层路径。其中,路径参数可以是底层路径的时延(latency)、带宽(bandwidth)、质量、方向、保护中的任一项或多项。在一种可能的实现中,第一网络节点可以将底层路径的路径参数以及底层路径对应的底层段标识一起发布,例如,可以在同一报文中携带底层路径的路径参数以及底层路径对应的底层段标识,发布该报文。[0193]可选地,第一网络节点还可以发布第二网络节点的标识,以便头节点或控制器根据第二网络节点的标识,确定底层路径的对端节点是哪一个网络节点。例如,参见图1,p2可以不仅发布底层路径(o1,o2,o3,o4)对应的底层段标识end.xusid1,还发布p3的id,以便p1感知到底层路径(o1,o2,o3,o4)的对端节点是p2。在一种可能的实现中,第一网络节点可以将第二网络节点的标识以及底层路径对应的底层段标识一起发布,例如,可以在同一报文中携带第二网络节点的标识以及底层路径对应的底层段标识,发布该报文。在另一种可能的实现中,第一网络节点也可以将第二网络节点的标识以及底层路径对应的底层段标识分别发布,例如可以先发布底层路径对应的底层段标识,再发布第二网络节点的标识,本实施例对发布第二网络节点的标识以及发布底层路径对应的底层段标识的时序不做限定。[0194]可选地,第一网络节点还可以发布至少一条底层路径中一条或多条底层路径的路径类型。路径类型用于指示底层路径的类型,例如,路径类型可以是dwdm路径、otn路径、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。通过在发布底层路径的基础上,还发布路径类型,头节点或者控制器能够确定发布的底层路径具体是哪一种类型,从而可以区分不同类型的底层路径,便于根据业务需求,调度特定类型的底层路径进行数据传输。[0195]关于发布底层段标识的方式,在一些可能的实施例中,至少一个底层段标识可以携带在报文中,第一网络节点可以通过发布报文,来发布至少一个底层段标识,报文包括至少一个第一类型长度值(typelengthvalue,tlv),每个第一tlv包括一个底层段标识。关于报文的发送对象,在一种可能的实现中,第一网络节点可以向分组交换网络泛洪报文,例如通过igp泛洪报文,则分组交换网络中的每个ip层的节点可以接收到泛洪的报文。在另一种可能的实现中,第一网络节点可以向控制器发送报文,则控制器可以接收到报文。[0196]tlv:是一种编码格式,主要通过类型(type)、长度(length)和值(value)这三种信息定义。第一tlv是指携带底层段标识的tlv。在一种可能的实现中,第一tlv可以是嵌套在其他tlv内部的tlv,即其他tlv的子tlv(sub-tlv)或者子子tlv(sub-sub-tlv)。在另一种可能的实现中,第一tlv也可以是新的顶级tlv(toptlv)的子tlv,顶级tlv是指未嵌套在其他tlv内部的tlv。第一tlv的类型可以是为发布底层段标识新申请的类型,例如可以是90,第一tlv的值可以包括底层段标识,例如,第一tlv可以包括sid字段,该字段可以占128比特,可以向该字段写入底层段标识。另外,第一tlv还可以包括标志(flag)、算法(algorithm)、权重(weight)等,标志可以为空,权重可以默认为0。第一tlv还可以包括srv6端点功能(srv6endpointfunction)字段,该字段的取值为32比特的数字,该字段用于指示sid的功能,可以预先为底层段标识注册对应的end.xufunction,得到end.xufunction的取值,向srv6endpointfunction字段写入该取值,从而通过srv6endpointfunction字段的取值,指明sid字段承载的sid是底层段标识,而不是end.xsid、节点sid或者其他类型的sid。[0197]第一tlv中可以包括底层路径的路径参数,例如,第一tlv中可以包括子tlv,第一tlv的子tlv中包括底层路径的路径参数。具体地,第一tlv的子tlv可以包括类型、长度和值,第一tlv的子tlv的类型可以是未被使用的新类型,第一tlv的子tlv的值可以是底层路径的路径参数。例如,第一tlv的子tlv的type可以是1,1表示1个未使用的新类型,第一tlv的子tlv的value可以是32比特的数值,代表带宽;又如,第一tlv的子tlv的type可以是2,2表示1个未使用的新类型,第一tlv的子tlv的value可以是32比特的数值,代表时延。当然,带宽和时延这两种路径参数仅是举例,路径参数也可以是带宽或时延之外的参数,本实施例对此不做限定。[0198]可选地,第一tlv还可以包括第一网络节点的每个与邻居节点相关的段标识。具体地,第一网络节点可以具有一个或多个段标识,这些段标识中部分段标识与第一网络节点的邻居节点相关,例如是用于标识第一网络节点与邻居节点之间的邻接关系,另外一部分段标识与第一网络节点的邻居节点无关。相关技术中,例如常用的igp协议isis中,会在22tlv或者222tlv中发布与邻居节点相关的段标识,而本实施例中,可以将与邻居节点相关的段标识也携带在第一tlv中,从而通过第一tlv发布与邻居节点相关的段标识,从而降低22tlv或者222tlv的复杂度。其中,22tlv或222tlv是用来发布邻接信息的tlv,具体地,22tlv用来携带isis的邻接信息,222tlv用来携带isis的多拓扑场景的邻接信息。[0199]可选地,第一tlv还可以包括底层路径的路径类型。具体地,第一tlv可以包括路径类型字段,该路径类型字段可以记为underlaytype(底层类型)字段,该路径类型字段的取值用于指示底层路径的路径类型。示意性地,如果路径类型字段的取值为1,表示底层路径的路径类型是otn路径;如果路径类型字段的取值为2,表示底层路径的路径类型是dwdm路径;如果路径类型字段的取值为3,表示底层路径的路径类型是背靠背的以太网路径;如果路径类型字段的取值为4,表示底层路径的路径类型是gre隧道;如果路径类型字段的取值为5,表示底层路径的路径类型是mplsrsvp-te隧道;如果路径类型字段的取值为6,表示底层路径的路径类型是ip隧道;如果路径类型字段的取值为7,表示底层路径的路径类型是ip隧道或者udp隧道;如果路径类型字段的取值为8,表示底层路径的路径类型是atm路径;如果路径类型字段的取值为9,表示底层路径的路径类型是fr路径;如果路径类型字段的取值为10,表示底层路径的路径类型是flexe路径。[0200]在一些可能的实施例中,底层段标识的发布格式具体可以包括下述方式(1)至方式(4):[0201]方式(1)第一tlv为第二tlv的子tlv。[0202]第二tlv是指包括end.xsid的tlv。第一tlv和第二tlv可以是从属(或称主子)的关系,一个第二tlv也可以包括一个或多个第一tlv。示例性地,第二tlv可以是中间系统到中间系统(intermediatesystemtointermediatesystem,is-is)的22tlv的子tlv,第一tlv为第二tlv的子子tlv。或者,第二tlv可以是is-is的222tlv的子tlv,第一tlv为第二tlv的子子tlv。[0203]参见图5和图6,图5和图6均为第二tlv的格式示意图。图5或图6中类型字段表示第二tlv的类型,类型字段的取值可以表示第二tlv是用于发布end.xsid的tlv。图5或图6中长度字段的取值为第二tlv的长度。图5或图6中srv6端点功能(srv6endpointfunction)字段用于指示sid的功能,具体可以指示end.xfunction。图5和图6中的sid字段用于承载end.xsid,图5和图6中的sid字段共占128比特(bit),该sid字段分为4段,每段sid字段占32比特。其中,第1段sid字段承载end.xsid的第1个比特至第32个比特,第2段sid字段、第3段sid字段以及第4段sid字段是第1段sid字段的持续,第2段sid字段承载end.xsid的第33个比特至第64个比特,第3段sid字段承载end.xsid的第65个比特至第96个比特,第4段sid字段承载end.xsid的第97个比特至第128个比特。另外,图5或图6中还包括标志(flag)字段、算法(algorithm)字段、权重(weight)字段等,标志字段可以为空,权重字段的取值可以默认为0。图5和图6相区别的是,图5所示的第二tlv可以用于点到点(point-to-point,p2p)的链路,图6所示的第二tlv可以用于局域网(localareanetwork,lan)的链路。[0204]图5和图6所示的“子子tlv(变长)”字段占8个字节,子子tlv(变长)字段能够指明该字段之后存在一个或多个子子tlv,子子tlv(变长)字段的取值为一个或多个子子tlv的长度。具体地,子子tlv(变长)字段的取值根据一个或多个子子tlv的数量以及每个子子tlv的长度确定。图5和图6所示的“一个或多个子子tlv(变量)”表示一个或多个子子tlv,子子tlv的格式可以如图7所示。[0205]参见图7,图7为基于方式(1)的第一tlv的格式示意图,图5或图6中一个或多个子子tlv(变量)就是一个或多个图7,每一个图7是一个子子tlv。其中,由于图5或图6所示的第一tlv是end.xtlv,end.x本身是type是22的22tlv或type是222的222tlv的一种子tlv,所以图5或图6中嵌套的tlv会称为子子tlv。图7中的sid字段用于承载底层段标识,图7中的sid字段共占128比特(bit),该sid字段[0206]分为4段,每段sid字段占32比特。其中,第1段sid字段承载底层段标识的第1个比特至第32个比特,第2段sid字段、第3段sid字段以及第4段sid字段是第1段sid字段的持续,第2段sid字段承载底层段标识的第33个比特至第64个比特,第3段sid字段承载底层段标识的第65个比特至第96个比特,第4段sid字段承载底层段标识的第97个比特至第128个比特。[0207]图7中的类型字段的值可以为新申请的sub-sub-tlv类型,例如90,图7中的flags字段的值可以为空,weight字段的值为权重,默认为0。srv6endpointfunction字段的值表示底层段标识的功能,sid字段的取值为节点的一个sid,格式上与ipv6地址相同。sub-sub-sub-tlv字段的取值可以包含带宽,延时等路径参数。sub-sub-sub-tlv的type字段可以取1,为一个未使用的新类型,sub-sub-sub-tlv的length字段可以取sub-sub-sub-tlv字段的长度,sub-sub-sub-tlv的value字段占32比特,代表底层路径的带宽;sub-sub-sub-tlv的type字段也可以取2,为一个未使用的新类型,sub-sub-sub-tlv的value字段也可以占另1个32比特,代表底层路径的时延。图7中的underlaytype字段描述底层路径的类型。[0208]以底层路径为光路为例,方式(1)可以通过end.xsid或邻接sid扩展的发布方式,来描述ip和光的融合场景中底层的光路。由于底层段标识通过携带end.xsid的tlv的子tlv发布,可以通过两种tlv的主子关系,直观地指明底层段标识和end.xsid之间的对应关系。[0209]方式(2)第一tlv为与第二tlv并列的tlv。[0210]第一tlv和第二tlv也可以是并列的关系,即,这两种tlv是同级的。示例性地,如果第二tlv是is-is的22tlv的子tlv,那么,第一tlv可以也是22tlv的子tlv。或者,如果第二tlv是is-is的222tlv的子tlv,那么,第一tlv可以也是222tlv的子tlv。[0211]需要说明的是,在不同类型的网络中第一tlv的格式可以不同。参见图8和图9,图8和图9为基于方式(2)的第一tlv的格式示意图。图8和图9相区别的是,图8所示的第一tlv可以用于点到点的链路,图9所示的第一tlv可以用于局域网的链路。图9中,系统标识(systemid)字段为第二网络节点的标识。图8和图9中子子tlv可以包括底层路径的路径参数。[0212]通过方式(2),可以在第一网络节点没有对应的end.xsid的场景下发布底层段标识。[0213]方式(3)第一tlv为位置信息tlv的子tlv。[0214]位置信息(locator)以及功能(function):srv6sid是ipv6地址的形式,srv6sid可以由locator和function两部分组成,格式是locator:function。其中,locator占据ipv6地址的高比特位,function占据ipv6地址的低比特位。其中,locator可以具有定位功能,可以在sr域唯一,function代表设备的指令,这些指令由设备预先设定,function部分用于指示srv6sid的生成节点执行相应的功能操作。locator需要通过igp发布出去,接收到locator的节点需要按需生成转发表项。通常来讲,srv6中,除了与邻居节点相关的sid之外的每个sid都应该在locator中发布。[0215]srv6位置信息tlv(srv6locatortlv)用于发布srv6locator以及locator相关的endsid,位置信息tlv是一个toptlv,类型(type)为27,srv6locatortlv的格式可以如图10所示。其中,如图10所示,位置信息tlv可以包括第一部分以及一个或多个第二部分,第一部分为位置信息tlv的头部,第二部分可以在位置信息tlv出现一次,或者在位置信息tlv重复出现。需要说明的是,图10仅是以位置信息tlv包含两个第二部分为例绘制,应理解,位置信息tlv中的第二部分的数量可以更多或更少,本实施例对位置信息tlv包含的第二部分的数量并不做限定。[0216]在方式(3)中,底层段标识可以在srv6locatortlv的子tlv中发布。例如,参见图11,srv6locatortlv可以包括图11所示的子tlv,底层段标识可以承载于图11的sid字段中。在一种可能的实现中,参见图12,locator的子tlv中还可以携带系统标识(systemid)来指示邻居,则srv6endpointfunction应该指向end.xu的分配值。另外,图11和图12中的子子tlv可以包括底层路径的路径参数,例如带宽等。通过方式(3),由于目前的22tlv已经比较复杂,通过将底层段标识在除22tlv之外的tlv发布,可以避免干扰目前的22tlv。其中,底层段标识可以在27tlv(即srv6locatortlv)中发布,27tlv是一个较新的tlv,专用于srv6网络。[0217]在方式(3)中,位置信息tlv可以包括第一网络节点的端点三层交叉连接段标识。现有技术中,第一网络节点的端点三层交叉连接段标识通常会通过22tlv或者222tlv发布,而通过上述可选方式,将端点三层交叉连接段标识也通过位置信息tlv发布,因此22tlv或者222tlv可以无需携带第一网络节点的端点三层交叉连接段标识,从而降低了22tlv或者222tlv的复杂度。[0218]方式(4)第一tlv为新的顶级toptlv的子tlv。[0219]底层段标识可以在一个新的toptlv的子tlv中发布,该toptlv的类型(type)是未使用的新类型。示意性地,该toptlv可以是28tlv,即类型为28的tlv。图13示出了这种新的toptlv的格式示意图,可以将第一网络节点的与邻居节点无关的sid都在27tlv中发布,第一网络节点的与邻居节点相关的sid都在28tlv中发布。其中,如图13所示,新的toptlv可以包括第一部分以及一个或多个第二部分,第一部分为新的toptlv的头部,第二部分为sid组,第二部分以systemid打头,每个第二部分中包含一些28tlv的子tlv。可以理解,该子tlv,即第一tlv,从systemid后的类型开始;或者,第一tlv也可以从systemid开始。通过方式(4),可以适用于发布的底层段标识较多的场景。需要说明的是,图13仅是以toptlv包含两个第二部分为例绘制,应理解,toptlv中的第二部分的数量可以更多或更少,本实施例对toptlv包含的第二部分的数量并不做限定。[0220]在方式(4)中,新的顶级tlv可以包括第一网络节点的端点三层交叉连接段标识。现有技术中,第一网络节点的端点三层交叉连接段标识通常会通过22tlv或者222tlv发布,而通过上述可选方式,将端点三层交叉连接段标识也通过新的顶级tlv发布,因此22tlv或者222tlv可以无需携带第一网络节点的端点三层交叉连接段标识,从而降低了22tlv或者222tlv的复杂度。[0221]示例性地,在bgp-ls中,参见图14和图15,图14示出了srv6end.xtlv的格式示意图,图15示出了srv6lanend.xtlv的格式示意图,可以对图14或图15进行扩充,定义一个新的子tlv,比如说将类型置为100,从而定义100子tlv,该100tlv即为第一tlv示例性地,第一子tlv的格式可以如图8所示。当然,也可以在bgp-ls中,将底层路径作为一个单独的类似于end.x的函数对待,例如,第一tlv的格式可以如图8或图9所示。[0222]另外,在pcep中,也可以做类似的扩展来携带底层段标识或者其他底层路径的信息,本实施例在此不做赘述。[0223]需要说明的一点是,图5、图6至图15均仅是对报文进行示意性绘制,图5、图6至图15所示的每个字段的位置以及长度仅是示例,应理解,报文中每个字段的位置以及长度可以根据实际需要进行适应性的改变,本实施例不对报文中每个字段的位置进行限定,也不对每个字段的长度进行限定。[0224]需要说明的另外一点是,图5、图6至图15涉及的每个报文的每一行可以为32个字节,在实施中,图5、图6至图15绘制的报文中每一行的空缺之处可以设置一个或多个保留字段,当然也可以设置其他字段,本实施例对报文是否包括保留字段、保留字段的位置以及保留字段的长度不做限定。[0225]步骤402、头节点从第一网络节点接收至少一个底层段标识。[0226]接收底层段标识的方式可以而不限于下述方式一至方式三中的任意一项:[0227]方式一、头节点可以通过igp,接收至少一个底层段标识。[0228]具体来讲,第一网络节点通过igp,向分组交换网络泛洪至少一个底层段标识后,由于头节点处于分组交换网络中,且支持igp,因此头节点可以通过igp,接收至少一个底层段标识。[0229]通过igp的发布方式,可支持分布式控制的场景,该分布式控制的场景是指没有控制器的场景。对于将光路抽象为bsid、发布bsid来支持poi的方案来说,由于按照srv6网络目前的设计,bsid只能通过bgp-ls或pcep发布,而bgp-ls和pcep又要求网络中存在控制器,pog需要将bsid上报至控制器,由控制器将bsid下发给头节点,这就导致分布式控制的场景中无法应用这种方案支持poi。而本实施例中,可以无需要求网络中必须存在控制器,并由控制器转发底层段标识,而是可以由pog通过igp,直接将底层段标识发送给头节点,因此能够适用于分布式控制的场景中,扩展了应用范围,提高了灵活性。[0230]方式二、头节点通过bgp-ls,接收至少一个底层段标识。[0231]具体来讲,控制器可以通过bgp-ls向头节点发送至少一个底层段标识,头节点可以通过bgp-ls,接收控制器发送的至少一个底层段标识。[0232]方式三、头节点可以通过pcep,接收至少一个底层段标识。[0233]具体来讲,控制器可以通过bgp-ls向头节点发送pcep,头节点可以通过pcep,接收控制器发送的至少一个底层段标识。[0234]关于接收底层段标识的具体过程,在一些可能的实施例中,头节点可以从第一网络节点接收报文,从报文中的至少一个第一tlv中,获取至少一个底层段标识。其中,如果报文中包括多个第一tlv,可以从每一个第一tlv中获取一个底层段标识。示意性地,头节点可以读取第一tlv的end.xufunction字段,根据end.xufunction字段的取值,确定sid字段的取值为底层段标识,则头节点读取sid字段的取值,将sid字段的取值作为底层段标识。[0235]具体地,与上述底层段标识的发布方式(1)对应,头节点可以从第二tlv的子tlv中,获取底层段标识;与上述底层段标识的发布方式(2)对应,头节点可以从与第二tlv并列的tlv中,获取底层段标识;与上述底层段标识的发布方式(3)对应,头节点可以从位置信息tlv的子tlv中,获取底层段标识;与上述底层段标识的发布方式(4)对应,头节点可以从toptlv中,获取底层段标识。[0236]头节点接收到至少一个底层段标识后,可以保存至少一个底层段标识,以便后续向数据包中添加底层段标识。可选地,头节点还可以从第一网络节点接收至少一条底层路径中一条或多条底层路径的路径参数,保存一条或多条底层路径的路径参数。头节点还可以从第一网络节点接收第二网络节点的标识,保存第二网络节点的标识。[0237]步骤403、头节点接收数据包。[0238]步骤404、头节点向数据包添加目标底层段标识。[0239]为了区分描述,在此将向数据包中添加的底层段标识称为目标底层段标识,目标底层段标识可以为至少一个底层段标识中的任一底层段标识。[0240]具体来讲,步骤404可以而不限于下述方式一至方式二中的任一项。[0241]方式一、头节点可以确定数据包所承载的业务,根据数据包承载的业务,从至少一条底层路径中,选择业务对应的底层路径,头节点可以将选择出的底层路径所对应的底层段标识作为目标底层段标识,向数据包添加目标底层段标识。[0242]通过根据数据包承载的业务,来选择传输数据包的底层路径,对于任一业务来说,可以指定承载该业务的数据包走哪一条底层路径,从而让不同的业务可以通过不同的底层路径传输,有助于进行流量规划,能够更好地利用不同的底层路径,提升业务的服务质量(qualityofservice,qos)。其中,头节点可以选择一条底层路径,也可以选择多条底层路径,以使多条底层路径分担负载,本实施例对选择的底层路径的数量不做限定。[0243]关于选择底层路径的具体方式,在一些可能的实施例中,头节点可以根据每条底层路径的路径参数,从至少一条底层路径中,选择路径参数满足业务的传输需求的底层路径。其中,业务的传输需求可以是时延需求、带宽需求等。示例性地,如果数据包所承载的业务的时延需求是时延低于n毫秒,头节点可以根据每条底层路径的时延,从至少一条底层路径中,选择时延低于n毫秒的底层路径;如果数据包所承载的业务的带宽需求是带宽大于m兆,头节点可以根据每条底层路径的带宽,从至少一条底层路径中,选择带宽大于m兆的底层路径。其中,n和m为正整数。[0244]方式二、头节点从分段路由网络的控制器接收目标底层段标识,向数据包添加目标底层段标识。[0245]与方式一相区别的是,目标底层段标识可以不是由头节点选择,而是由控制器选择。具体地,控制器可以确定数据包所承载的业务,根据数据包承载的业务,从至少一条底层路径中,选择业务对应的底层路径,控制器可以向头节点发送与选择出的底层路径所对应的目标底层段标识,头节点可以接收目标底层段标识。其中,控制器选择底层路径的具体方式可以和头节点选择底层路径的具体方式同理,在此不做赘述。[0246]步骤405、头节点向第一网络节点发送携带目标底层段标识的数据包。[0247]步骤406、第一网络节点接收携带目标底层段标识的数据包。[0248]步骤407、第一网络节点通过至少一条底层路径中目标底层段标识对应的底层路径发送数据包。[0249]第一网络节点可以从数据包获取目标底层段标识,根据目标底层段标识以及底层段标识与底层路径之间的对应关系,确定目标底层段标识对应的一条或多条底层路径,通过该一条或多条底层路径发送数据包。其中,如果目标底层段标识对应多条底层路径,第一网络节点可以通过多条底层路径中的不同底层路径发送不同数据包,从而分担负载。[0250]示例性地,参见图1和表1,如果数据包携带的底层段标识为end.xusid1,p2可以根据表1所示的对应关系,确定底层路径(o1,o2,o3,o4),通过(o1,o2,o3,o4)发送数据包。如果数据包携带的底层段标识为end.xusid4,p2可以根据表1所示的对应关系,确定底层路径(o1,o2,o3,o4)以及底层路径(o2,o3),通过底层路径(o1,o2,o3,o4)以及底层路径(o2,o3)发送数据包。[0251]在一些可能的实施例中,第一网络节点可以从数据包获取目标底层段标识,第一网络节点可以根据目标底层段标识以及绑定关系,确定目标底层段标识绑定的底层出接口,通过底层出接口发送数据包。[0252]示例性地,如果数据包携带的底层段标识为end.xusid2,p2可以根据表2所示的绑定关系,确定底层出接口为虚拟接口3,通过虚拟接口3发送数据包,以使数据包通过一条底层路径传输。如果数据包携带的底层段标识为end.xusid1,p2可以根据表2所示的绑定关系,确定底层出接口为虚拟接口1以及虚拟接口2,通过虚拟接口1或者虚拟接口2发送数据包,以使数据包通过两条底层路径中的一条底层路径传输。[0253]其中,第一网络节点可以对底层段标识与本地段标识表中的段标识进行最长匹配;当底层段标识与本地段标识表中的任一段标识最长匹配时,通过底层段标识绑定的底层出接口发送数据包。[0254]步骤408、第二网络节点接收数据包。[0255]第二网络节点接收到数据包后,可以根据数据包中的段标识,继续向分段路由网络的其他网络节点发送数据包,直至数据包到达目的节点。例如参见图1,p3从p2接收到数据包后,可以向p4发送数据包。[0256]本实施例提供的方法,通过设计了与底层路径对应的底层段标识,发布底层段标识,可以让srv6网络中的节点通过底层段标识感知到底层路径,那么在传输数据包时,能够根据数据包携带的底层段标识,通过底层段标识对应的底层路径发送数据包,因此可以根据业务需求,指定数据包通过哪条底层路径传输数据包,让不同数据包能够通过不同的底层路径传输,提高了灵活性,有助于进行流量规划。尤其是,在底层路径为光路的情况下,通过发布底层段标识,srv6网络中的节点能够通过底层段标识感知到每条光路,从而支持了poi的场景,可以根据需求灵活的选择传输流量的光路。[0257]以上介绍了本技术实施例的数据传输方法,以下介绍本技术实施例提供的第一网络节点和头节点。[0258]图16是本技术实施例提供的一种第一网络节点的结构示意图,如图16所示,该第一网络节点包括:发布模块1601,用于执行步骤401;接收模块1602,用于执行步骤406;发送模块1603,用于执行步骤407。[0259]可选地,至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0260]可选地,至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0261]可选地,发布模块1601,用于发布至少两个底层段标识,至少两个底层段标识对应于同一个端点三层交叉连接段标识,端点三层交叉连接段标识用于标识第一网络节点和第二网络第一网络节点之间的三层邻接关系。[0262]可选地,至少一个底层段标识中的一个或多个底层段标识没有对应的端点三层交叉连接段标识,端点三层交叉连接段标识用于标识第一网络节点和第二网络第一网络节点之间的三层邻接关系。[0263]可选地,发布模块1601,具体用于:通过igp,发布至少一个底层段标识;或者,通过bgp-ls,发布至少一个底层段标识;或者,通过pcep,发布至少一个底层段标识。[0264]可选地,发布模块1601,还用于发布至少一条底层路径中一条或多条底层路径的路径参数。[0265]可选地,发布模块1601,还用于发布第二网络节点的标识。[0266]可选地,至少一个底层段标识携带在报文中,报文包括至少一个第一类型长度值tlv,每个第一tlv包括一个底层段标识。[0267]可选地,发送模块1603还用于:发布至少一条底层路径中一条或多条底层路径的路径类型。[0268]可选地,第一tlv为第二tlv的子tlv,第二tlv包括端点三层交叉连接段标识;或者,第一tlv为与第二tlv并列的tlv;或者,第一tlv为位置信息tlv的子tlv;或者,第一tlv为新的顶级tlv的子tlv,顶级tlv是指未嵌套在其他tlv内部的tlv。[0269]可选地,第一tlv还包括第一网络节点的每个与邻居节点相关的段标识。[0270]可选地,第一网络节点还包括分配模块,用于为至少一条底层路径分配至少一个底层段标识;或者,接收模块1602,还用于接收配置指令,从配置指令获取至少一个底层段标识和至少一条底层路径中的一条或多条底层路径的对应关系。[0271]可选地,第一网络节点还包括:保存模块,用于保存底层段标识与底层出接口之间的绑定关系;发送模块1603,具体用于根据目标底层段标识以及绑定关系,确定目标底层段标识绑定的底层出接口,通过底层出接口发送数据包。[0272]需要说明的一点是,图16实施例提供的第一网络节点在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第一网络节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的第一网络节点与上述数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。[0273]图17是本技术实施例提供的一种头节点的结构示意图,如图17所示,该头节点包括:接收模块1701,用于执行步骤402以及步骤403;添加模块1702,用于执行步骤404;发送模块1703,用于执行步骤405。[0274]可选地,至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0275]可选地,至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0276]可选地,该装置还包括:选择模块,用于执行步骤404中方式一;或者,该接收模块,还用于执行步骤404中方式二。[0277]可选地,该选择模块,还用于根据每条底层路径的路径参数,从至少一条底层路径中,选择路径参数满足业务的传输需求的底层路径。[0278]可选地,接收模块1701,还用于从第一网络节点接收至少一条底层路径中一条或多条底层路径的路径参数。[0279]可选地,接收模块1701,还用于从第一网络节点接收第二网络节点的标识。[0280]可选地,接收模块1701,还用于从第一网络节点接收至少一条底层路径中一条或多条底层路径的路径类型。[0281]需要说明的一点是,图17实施例提供的头节点在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将头节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的头节点与上述数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。[0282]上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。[0283]以上介绍了本技术实施例的第一网络节点和头节点,以下介绍该第一网络节点和头节点可能的产品形态。应理解,但凡具备上述图16中的第一网络节点的特征的任何形态的产品,和但凡具备上述图17中的头节点的特征的任何形态的产品,都落入本技术的保护范围。还应理解,以下介绍仅为举例,不限制本技术实施例的第一网络节点和头节点的产品形态仅限于此。[0284]作为一种可能的产品形态,本技术实施例提供的第一网络节点或者头节点,可以由一般性的总线体系结构来实现。[0285]如图18所示,本技术实施例提供了一种第一网络节点,该第一网络节点1800包括处理器1801、存储器1802以及收发器1803,该存储器1802中存储有至少一条指令,该处理器1801、存储器1802以及收发器1803可以通过总线连接。[0286]该处理器1801用于通过该指令,控制该收发器1803执行步骤401、步骤406以及步骤407;[0287]可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0288]可选地,该至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0289]可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该至少一条底层路径中一条或多条底层路径的路径参数。[0290]可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该第二网络节点的标识。[0291]可选地,该处理器1801还用于通过该指令,控制该收发器1803发布该至少一条底层路径中一条或多条底层路径的路径类型。[0292]可选地,该处理器1801具体用于通过该指令,控制该收发器1803发送报文,该报文包括至少一个第一类型长度值tlv,每个第一tlv包括一个底层段标识。[0293]可选地,该第一tlv为第二tlv的子tlv,该第二tlv包括端点三层交叉连接段标识;或者,该第一tlv为与该第二tlv并列的tlv;或者,该第一tlv为位置信息tlv的子tlv;或者,该第一tlv为新的顶级tlv的子tlv。[0294]可选地,该处理器1801用于通过该指令,为该至少一条底层路径分配该至少一个底层段标识;或者,该处理器1801还用于通过该指令,控制该收发器1803接收配置指令,从该配置指令获取至少一个底层段标识和该至少一条底层路径中的一条或多条底层路径的对应关系。[0295]可选地,该处理器1801还用于通过该指令,控制该存储器1802保存底层段标识与底层出接口之间的绑定关系;该处理器1801还用于通过该指令,根据该目标底层段标识以及该绑定关系,确定该目标底层段标识绑定的底层出接口;该处理器1801用于通过该指令,控制该收发器1803通过该底层出接口发送该数据包。[0296]处理器1801可以是一个通用中央处理器(centralprocessingunit,cpu)、特定应用集成电路(application-specificintegratedcircuit,asic)或一个或多个用于控制本技术方案程序执行的集成电路。[0297]存储器1802可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。[0298]如图19所示,本技术实施例提供了一种头节点,头节点1900包括处理器1901、存储器1902以及收发器1903,该存储器1902中存储有至少一条指令,该处理器1901、存储器1902以及收发器1903可以通过总线连接。处理器1901的产品形态与处理器1801同理,存储器1902的产品形态与存储器1802同理,在此不做赘述。[0299]该处理器1901用于加载该指令,控制该收发器1903执行步骤402、步骤403以及步骤405;该处理器1901还用于通过该指令,执行步骤404;[0300]可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0301]可选地,该至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0302]可选地,该处理器1901还用于通过该指令,执行步骤404中方式一;或者,该处理器1901还用于通过该指令,控制该收发器1903执行步骤404中方式二。[0303]可选地,该处理器1901具体用于通过该指令,以根据每条底层路径的路径参数,从该至少一条底层路径中,选择路径参数满足该业务的传输需求的底层路径。[0304]可选地,该处理器1901还用于通过该指令,控制该收发器1903从该第一网络节点接收该至少一条底层路径中一条或多条底层路径的路径参数。[0305]可选地,该处理器1901还用于通过该指令,控制该收发器1903从该第一网络节点接收该第二网络节点的标识。[0306]可选地,该处理器1901还用于通过该指令,控制该收发器1903接收该至少一条底层路径中一条或多条底层路径的路径类型。[0307]作为一种可能的产品形态,本技术实施例提供的第一网络节点或者头节点,可以由通用处理器来实现。[0308]实现该第一网络节点的通用处理器包括处理电路和与该处理电路内部连接通信的输出接口以及输入接口;该处理电路用于控制该输出接口执行步骤401;该处理电路用于控制该输入接口执行步骤406;该处理电路还用于控制该输出接口执行步骤407。可选地,该通用处理器还可以包括存储介质,该存储介质用于存储处理电路执行的指令。[0309]可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0310]可选地,该至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0311]可选地,该处理电路还用于通过该指令,控制该输出接口发布该至少一条底层路径中一条或多条底层路径的路径参数。[0312]可选地,该处理电路还用于通过该指令,控制该输出接口发布该第二网络节点的标识。[0313]可选地,该处理电路还用于通过该指令,控制该输出接口发布该至少一条底层路径中一条或多条底层路径的路径类型。[0314]可选地,该处理电路具体用于通过该指令,控制该输出接口发送报文,该报文包括至少一个第一类型长度值tlv,每个第一tlv包括一个底层段标识。[0315]可选地,该第一tlv为第二tlv的子tlv,该第二tlv包括端点三层交叉连接段标识;或者,该第一tlv为与该第二tlv并列的tlv;或者,该第一tlv为位置信息tlv的子tlv;或者,该第一tlv为新的顶级tlv的子tlv。[0316]可选地,该处理电路用于通过该指令,为该至少一条底层路径分配该至少一个底层段标识;或者,该处理电路还用于通过该指令,控制该输入接口接收配置指令,从该配置指令获取至少一个底层段标识和该至少一条底层路径中的一条或多条底层路径的对应关系。[0317]可选地,该处理电路还用于通过该指令,控制该存储介质保存底层段标识与底层出接口之间的绑定关系;该处理电路还用于通过该指令,根据该目标底层段标识以及该绑定关系,确定该目标底层段标识绑定的底层出接口;该处理电路用于通过该指令,控制该输出接口通过该底层出接口发送该数据包。[0318]实现头节点的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于控制该输入接口执行步骤402以及步骤403;该处理电路执行步骤404;该处理电路用于控制该输出接口执行步骤405;可选地,该通用处理器还可以包括存储介质,该存储介质用于存储处理电路执行的指令。[0319]可选地,该至少一个底层段标识中的一个或多个底层段标识为底层链路段标识。[0320]可选地,该至少一条底层路径中的一条或多条底层路径为光路、atm路径、fr路径、背靠背的以太网路径、gre隧道、flexe路径、mplsrsvp-te隧道、ip隧道或者udp隧道。[0321]可选地,该处理电路还用于通过该指令,执行步骤404中方式一;或者,该处理电路还用于通过该指令,控制该输入接口执行步骤404中方式二。[0322]可选地,该处理电路具体用于通过该指令,以根据每条底层路径的路径参数,从该至少一条底层路径中,选择路径参数满足该业务的传输需求的底层路径。[0323]可选地,该处理电路还用于通过该指令,控制该输入接口从该第一网络节点接收该至少一条底层路径中一条或多条底层路径的路径参数。[0324]可选地,该处理电路还用于通过该指令,控制该输入接口从该第一网络节点接收该第二网络节点的标识。[0325]可选地,该处理电路还用于通过该指令,控制该输入接口接收该至少一条底层路径中一条或多条底层路径的路径类型。[0326]作为一种可能的产品形态,本技术实施例中的第一网络节点或者头节点,还可以使用下述来实现:一个或多个现场可编程门阵列(英文全称:field-programmablegatearray,英文简称:fpga)、可编程逻辑器件(英文全称:programmablelogicdevice,英文简称:pld)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本技术通篇所描述的各种功能的电路的任意组合。[0327]应理解,上述各种产品形态的第一网络节点或者头节点,分别具有上述方法实施例中第一网络节点或者头节点的任意功能,此处不再赘述。[0328]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0329]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。[0330]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。[0331]该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。[0332]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0333]该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0334]以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。[0335]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideodisc,dvd)、或者半导体介质(例如固态硬盘)等。[0336]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0337]以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献