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

SRv6业务链中转发报文的方法、SFF及SF设备与流程

2021-11-24 21:34:00 来源:中国专利 TAG:
srv6业务链中转发报文的方法、sff及sf设备
技术领域
:1.本技术涉及通信
技术领域
:,特别涉及一种srv6业务链中转发报文的方法、sff及sf设备。
背景技术
::2.分段路由(英文:segmentrouting,简称:sr)是基于源路由的理念来转发报文的技术,互联网协议第6版(英文:internetprotocolversion6,简称:ipv6)的分段路由(简称:srv6)是一种将sr技术与ipv6协议结合起来的技术。具体来讲,在普通的ipv6报文里,ipv6报文的目的地址(destinationaddress,da)是固定不变的。而在srv6领域中,ipv6报文的da是srv6段标识(英文:segmentid,简称:sid),ipv6报文的da标识下一跳节点,srv6节点通过对da不断进行更新,来完成逐跳转发。3.在srv6技术中,为了基于ipv6转发平面实现sr,新增加了一种ipv6扩展头,称作分段路由头(英文:segmentroutingheader,简称:srh)。srh本质上是一种路由类型的ipv6扩展头。srh包括sid列表(英文:sidlist,也称segmentlist)。sid列表中包含一个或多个依次排列的sid。srv6报文是指携带srh的ipv6报文。4.业务链(英文:servicefunctionchain,简称:sfc)是一个有序的业务功能集合,能够让流量按照指定的顺序经过多个业务功能(英文:servicefunction,简称:sf设备)设备,通过多个sf设备对报文依次进行处理,来完成业务处理流程。5.sfc正逐渐朝向srv6sfc演进。然而,时下的很多sf设备仍然不支持srv6,也就是说,sf设备是不感知srv6的(英文:srv6-unaware)设备,sf设备无法识别srv6报文中的srh。有鉴于此,sf设备通常会接入一个或多个业务功能转发设备(英文:servicefunctionforwarder,简称:sff)。在srv6业务链中转发报文的过程中,sff通过实现sr代理(英文:srproxy)的功能,以剥离srh的方式向sf设备转发srv6报文,从而保证srv6报文能正常地被sf设备业务处理。6.其中,sr代理包括动态代理、静态代理、共享内存代理以及伪代理等类型。以动态代理的处理流程为例,sff转发报文的过程是:sff接收srv6报文,根据srv6报文的目的地址,查询本地sid表;当目的地址为本地sid表中的端点动态代理sid(end.ad.sid,end表示endpoint,意为端点;d表示dynamic,意为动态,sid意为段标识)时,sff执行end.ad.sid对应的动态代理操作,即,sff从srv6报文剥离srh,得到不包含srh的报文,将不包含srh的报文发送给sf设备,并且,sff会缓存srh;sf设备会接收到不包含srh的报文,对报文进行处理,将处理后的报文返回给sff;sff接收到sf设备返回的不包含srh的报文后,会从缓存中获取srh,向处理后的报文恢复srh,使得报文恢复为srv6报文,再转发srv6报文。7.采用上述方法时,在转发过程中sff要剥离srv6报文的srh,并向sf设备返回的报文恢复srh,导致sff实现复杂,sff的开销较大。技术实现要素:8.本技术实施例提供了一种srv6业务链中转发报文的方法、sff及sf设备,能够降低sff的实现复杂度。所述技术方案如下:9.第一方面,提供了一种srv6业务链中转发报文的方法,在该方法中,10.业务功能转发设备sff接收第一互联网协议第6版分段路由srv6报文,所述第一srv6报文的目的地址包括端点穿透段标识end.pt.sid,所述end.pt.sid用于指示所述sff以不剥离分段路由头srh的方式向业务功能sf设备转发所述第一srv6报文;11.所述sff根据所述end.pt.sid以及所述第一srv6报文,生成第二srv6报文,所述第二srv6报文包括控制标识,所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中所述控制标识之后的互联网协议第6版ipv6扩展头,所述第二srv6报文的ipv6扩展头包括srh;12.所述sff向所述sf设备发送所述第二srv6报文。13.以上提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,sff通过在srv6报文中携带控制标识,以便利用控制标识来标识要偏移ipv6扩展头的场景。sf设备接收到srv6报文后,根据控制标识,会直接偏移过srv6报文的ipv6扩展头,从而跳过srh。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。14.可选地,所述控制标识还用于指示所述sf设备在向所述sff返回报文的过程中返回所述ipv6扩展头,所述sff向所述sf设备发送所述第二srv6报文之后,所述方法还包括:15.所述sff从所述sf设备接收第三srv6报文,所述第三srv6报文包括所述ipv6扩展头,所述第三srv6报文和所述第二srv6报文具有相同的srh;16.所述sff根据所述第三srv6报文的srh,对所述第三srv6报文进行转发处理。17.可选地,所述第三srv6报文是所述sf设备进行业务处理所得到的报文。18.可选地,所述第二srv6报文包括逐跳选项报头,所述逐跳选项报头包括所述控制标识。19.由于逐跳选项报头始终会作为ipv6报文中的第一个ipv6扩展头,因而逐跳选项报头容易被sf设备解析,使得sf设备能够根据逐跳选项报头,识别出控制标识和目标信息,从而执行相关的处理。20.可选地,所述逐跳选项报头包括类型长度值tlv,所述tlv用于携带所述控制标识。21.可选地,所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中的srh;或者,所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中的srh以及所述srh之外的其他ipv6扩展头,所述其他ipv6扩展头在所述第二srv6报文中位于所述控制标识之后。22.可选地,所述第二srv6报文还包括目标信息,所述目标信息为sf设备在进行业务处理时需要用到的信息,所述目标信息采用以下方式得到:所述sff从所述第一srv6报文的srh获取所述目标信息。23.出于业务处理的需要,sf设备可能需要感知封装在srh中的某些信息,但是sf设备通常无法识别srh,导致无法得到srh中的业务信息,也就不能利用srh中的业务信息进行业务处理。而由sff解析srh,sff将srh包括的业务信息传递给了sf设备,使得sf设备能得到srh包括的业务信息。并且,sf设备无需解析srh。因该可选方式既满足了sf设备根据srh中的业务信息进行业务处理的需求,并且srv6-unaware的sf设备也可以通过这种方式根据srh中的业务信息进行业务处理,因此扩展了应用范围。24.可选地,所述sff从所述第一srv6报文的srh获取业务信息,根据所述业务信息,查询映射关系信息,得到所述目标信息,所述映射关系信息保存有所述业务信息和所述目标信息之间的对应关系。25.sff通过将srh中的业务信息映射为sf设备可识别的目标信息,将目标信息携带在第二srv6报文发送给sf设备,使得业务信息以sf设备能够理解的形式传递给了sf设备,sf设备可以根据目标信息进行业务处理,避免sf设备由于不识别srh中的业务信息而导致无法利用业务信息进行业务处理的情况,满足了sf设备根据srh中的业务信息进行业务处理的需求,并且方式二可以应用于srv6-unaware的sf设备,因此扩展了应用范围。26.可选地,所述目标信息包括业务链sfc元数据或者虚拟专用网络标识vpnid中的至少一项;或者,所述业务信息包括sfc元数据或者vpnid中的至少一项。27.可选地,所述目标信息和所述控制信息位于所述第二srv6报文中的同一个tlv。28.第二方面,提供了一种srv6业务链中处理报文的方法,在该方法中,29.sf设备从业务功能转发设备sff接收第二互联网协议第6版分段路由srv6报文,所述第二srv6报文包括控制标识,所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中所述控制标识之后的互联网协议第6版ipv6扩展头,所述第二srv6报文的ipv6扩展头包括分段路由头srh;30.所述sf设备根据所述控制标识,偏移过所述第二srv6报文的ipv6扩展头。31.可选地,所述控制标识还用于指示所述sf设备在向所述sff返回报文的过程中返回所述ipv6扩展头,所述方法还包括:32.所述sf设备根据所述控制标识,向所述sff发送第三srv6报文,所述第三srv6报文包括所述ipv6扩展头,所述第三srv6报文和所述第二srv6报文具有相同的srh。33.可选地,所述第三srv6报文是所述sf设备进行所述业务处理所得到的报文。34.可选地,所述第二srv6报文包括逐跳选项报头,所述逐跳选项报头包括所述控制标识。35.可选地,所述逐跳选项报头包括类型长度值tlv,所述tlv用于携带所述控制标识。36.可选地,所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中的srh;或者,37.所述控制标识用于指示所述sf设备偏移过所述第二srv6报文中的srh以及所述srh之外的其他ipv6扩展头,所述其他ipv6扩展头在所述第二srv6报文中位于所述控制标识之后。38.可选地,所述第二srv6报文还包括目标信息,所述目标信息为sf设备在进行所述业务处理时需要用到的信息,所述进行业务处理,包括:根据所述目标信息进行业务处理。39.可选地,所述目标信息包括业务链sfc元数据或者虚拟专用网络标识vpnid中的至少一项。40.可选地,所述目标信息和所述控制信息位于所述第二srv6报文中的同一个tlv。41.第三方面,提供了一种srv6业务链中转发报文的方法,所述方法包括:42.业务功能转发设备sff接收第一互联网协议第6版分段路由srv6报文,所述第一srv6报文的目的地址包括端点穿透段标识end.pt.sid,所述end.pt.sid用于指示所述sff以不剥离分段路由头srh的方式向业务功能sf设备转发所述第一srv6报文;43.所述sff根据所述end.pt.sid以及所述第一srv6报文,生成第二srv6报文,所述第二srv6报文的互联网协议第6版ipv6扩展头包括所述srh;44.所述sff将所述第二srv6报文发送至所述sf设备的第一接口,所述sf设备被配置为对从所述第一接口接收的报文偏移过ipv6扩展头。45.以上提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,利用sf设备上指定的输入接口标识要偏移ipv6扩展头的场景。sff会将srv6报文发送至sf设备上指定的输入接口,sf设备从指定的入接口接收到srv6报文后,会直接偏移过srv6报文的ipv6扩展头,从而跳过srh进行业务处理。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。46.第四方面,提供了一种srv6业务链中处理报文的方法,所述方法包括:47.业务功能sf设备通过第一接口,从业务功能转发设备sff接收第二互联网协议第6版分段路由srv6报文,所述sf设备被配置为对从所述第一接口接收的报文偏移过互联网协议第6版ipv6扩展头,所述第二srv6报文的ipv6扩展头包括分段路由头srh;48.所述sf设备偏移过所述第二srv6报文的ipv6扩展头。49.第五方面,提供了一种srv6业务链中转发报文的方法,所述方法包括:50.业务功能转发设备sff接收第一互联网协议第6版分段路由srv6报文,所述第一srv6报文的目的地址包括端点穿透段标识end.pt.sid,所述end.pt.sid用于指示所述sff以不剥离分段路由头srh的方式向业务功能sf设备转发所述第一srv6报文;51.所述sff根据所述end.pt.sid以及所述第一srv6报文,生成第二srv6报文,所述第二srv6报文的互联网协议第6版ipv6扩展头包括所述srh;52.所述sff将所述第二srv6报文发送至所述sf设备,所述sf设备被配置为对满足访问控制列表acl中的匹配条件的报文偏移过ipv6扩展头。53.以上提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,利用sf设备上配置的acl标识要偏移ipv6扩展头的场景。sf设备接收到srv6报文后,如果判定srv6报文满足acl中的匹配条件,则直接偏移过srv6报文的ipv6扩展头,从而跳过srh。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。54.第六方面,提供了一种srv6业务链中处理报文的方法,所述方法包括:55.业务功能sf设备从业务功能转发设备sff接收第二互联网协议第6版分段路由srv6报文,所述sf设备被配置为对满足访问控制列表acl中的匹配条件的报文偏移过互联网协议第6版ipv6扩展头,所述第二srv6报文的ipv6扩展头包括分段路由头srh;56.所述sf设备确定所述第二srv6报文满足所述acl中的所述匹配条件;57.所述sf设备偏移过所述第二srv6报文的ipv6扩展头。58.第七方面,提供了一种sff,该sff具有实现上述第一方面或第一方面任一种可选方式中srv6业务链中转发报文的功能。该sff包括至少一个模块,至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的srv6业务链中转发报文的方法。第七方面提供的sff的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。59.第八方面,提供了一种sf设备,该sf设备具有实现上述第二方面或第二方面任一种可选方式中srv6业务链中转发报文的功能。该sf设备包括至少一个模块,至少一个模块用于实现上述第二方面或第二方面任一种可选方式所提供的srv6业务链中转发报文的方法。第八方面提供的sf设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。60.第九方面,提供了一种sff,该sff具有实现上述第三方面或第三方面任一种可选方式中srv6业务链中转发报文。该sff包括至少一个模块,至少一个模块用于实现上述第三方面或第三方面任一种可选方式所提供的srv6业务链中转发报文的方法。第九方面提供的sff的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。61.第十方面,提供了一种sf设备,该sf设备具有实现上述第四方面或第四方面任一种可选方式中srv6业务链中转发报文。该sf设备包括至少一个模块,至少一个模块用于实现上述第四方面或第四方面任一种可选方式所提供的srv6业务链中转发报文的方法。第十方面提供的sf设备的具体细节可参见上述第四方面或第四方面任一种可选方式,此处不再赘述。62.第十一方面,提供了一种sff,该sff具有实现上述第五方面或第五方面任一种可选方式中srv6业务链中转发报文。该sff包括至少一个模块,至少一个模块用于实现上述第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。第十一方面提供的sff的具体细节可参见上述第五方面或第五方面任一种可选方式,此处不再赘述。63.第十二方面,提供了一种sf设备,该sf设备具有实现上述第六方面或第六方面任一种可选方式中srv6业务链中转发报文。该sf设备包括至少一个模块,至少一个模块用于实现上述第六方面或第六方面任一种可选方式所提供的srv6业务链中转发报文的方法。第十二方面提供的sf设备的具体细节可参见上述第六方面或第六方面任一种可选方式,此处不再赘述。64.第十三方面,提供了一种sff,该sff包括处理器和物理接口,该处理器用于执行指令,使得该sff执行上述第一方面或第一方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文或发送报文。第十三方面提供的sff的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。65.第十四方面,提供了sf设备,该sf设备包括处理器和物理接口,该处理器用于执行指令,使得该sf设备执行上述第二方面或第二方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文。第十四方面提供的sf设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。66.第十五方面,提供了一种sff,该sff包括处理器和物理接口,该处理器用于执行指令,使得该sff执行上述第三方面或第三方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文或发送报文。第十五方面提供的sff的具体细节可参见上述第三方面或第三方面任一种可选方式,此处不再赘述。67.第十六方面,提供了sf设备,该sf设备包括处理器和物理接口,该处理器用于执行指令,使得该sf设备执行上述第四方面或第四方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文。第十六方面提供的sf设备的具体细节可参见上述第四方面或第四方面任一种可选方式,此处不再赘述。68.第十七方面,提供了一种sff,该sff包括处理器和物理接口,该处理器用于执行指令,使得该sff执行上述第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文或发送报文。第十七方面提供的sff的具体细节可参见上述第五方面或第五方面任一种可选方式,此处不再赘述。69.第十八方面,提供了sf设备,该sf设备包括处理器和物理接口,该处理器用于执行指令,使得该sf设备执行上述第六方面或第六方面任一种可选方式所提供的srv6业务链中转发报文的方法,所述物理接口用于接收报文。第十八方面提供的sf设备的具体细节可参见上述第六方面或第六方面任一种可选方式,此处不再赘述。70.第十九方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sff执行上述第一方面或第一方面任一种可选方式所提供的srv6业务链中转发报文的方法。71.第二十方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sf设备执行上述第二方面或第二方面任一种可选方式所提供的srv6业务链中转发报文的方法。72.第二十一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sff执行上述第三方面或第三方面任一种可选方式所提供的srv6业务链中转发报文的方法。73.第二十二方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sf设备执行上述第四方面或第四方面任一种可选方式所提供的srv6业务链中转发报文的方法。74.第二十三方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sff执行上述第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。75.第二十四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使sf设备执行上述第六方面或第六方面任一种可选方式所提供的srv6业务链中转发报文的方法。76.第二十五方面,提供了一种计算机程序产品,当该计算机程序产品在sff上运行时,使得sff执行上述第一方面或第一方面任一种可选方式、第三方面或第三方面任一种可选方式、第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。77.第二十六方面,提供了一种计算机程序产品,当该计算机程序产品在sf设备上运行时,使得sf设备执行上述第二方面或第二方面任一种可选方式、第四方面或第四方面任一种可选方式、第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。78.第二十七方面,提供了一种芯片,当该芯片在sff上运行时,使得sff执行上述第一方面或第一方面任一种可选方式、第三方面或第三方面任一种可选方式、第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。79.第二十八方面,提供了一种芯片,当该芯片在sf设备上运行时,使得sf设备执行上述第二方面或第二方面任一种可选方式、第四方面或第四方面任一种可选方式、第五方面或第五方面任一种可选方式所提供的srv6业务链中转发报文的方法。80.第二十九方面,提供了一种网络系统,该网络系统包括sff以及sf设备,该sff用于执行上述第一方面或第一方面任一种可选方式所述的方法,该sf设备用于执行上述第二方面或第二方面任一种可选方式所述的方法。81.第三十方面,提供了一种网络系统,该网络系统包括sff以及sf设备,该sff用于执行上述第三方面或第三方面任一种可选方式所述的方法,该sf设备用于执行上述第四方面或第四方面任一种可选方式所述的方法。82.第三十一方面,提供了一种网络系统,该网络系统包括sff以及sf设备,该sff用于执行上述第五方面或第五方面任一种可选方式所述的方法,该sf设备用于执行上述第六方面或第六方面任一种可选方式所述的方法。附图说明83.图1是本技术实施例提供的一种srv6报文的示意图;84.图2是本技术实施例提供的一种srh的示意图;85.图3是本技术实施例提供的一种报文的ipv6目的地址变换的示意图;86.图4是本技术实施例提供的一种srv6sid的示意图;87.图5是本技术实施例提供的一种srv6endsid的示意图;88.图6是本技术实施例提供的一种基于endsid的转发流程示意图;89.图7是本技术实施例提供的一种srv6sfc实现原理的示意图;90.图8是本技术实施例提供的一种sr代理的示意图;91.图9是本技术实施例提供的一种sr静态代理的示意图;92.图10是本技术实施例提供的一种转发场景的示意图;93.图11是本技术实施例提供的一种srv6sfc的困境分析示意图;94.图12是本技术实施例提供的一种系统架构100的示意图;95.图13是本技术实施例提供的一种srv6业务链中转发报文的方法200的流程图;96.图14是本技术实施例提供的一种srv6报文的插入模式和封装模式的示意图;97.图15是本技术实施例提供的一种srv6业务链中转发报文的示意图;98.图16是本技术实施例提供的一种包括控制标识的逐跳选项报头的示意图;99.图17是本技术实施例提供的一种包括控制标识和目标信息的逐跳选项报头的示意图;100.图18是本技术实施例提供的一种srv6业务链中转发报文的方法300的流程图;101.图19是本技术实施例提供的一种srv6业务链中转发报文的方法400的流程图;102.图20是本技术实施例提供的一种sff的结构示意图;103.图21是本技术实施例提供的一种sf设备的结构示意图;104.图22是本技术实施例提供的一种sff的结构示意图;105.图23是本技术实施例提供的一种sf设备的结构示意图;106.图24是本技术实施例提供的一种网络系统的结构示意图。具体实施方式107.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。108.本技术实施例提供的基于互联网协议第6版的分段路由(英文:internetprotocolversion6forsegmentrouting,简称:srv6)业务链中转发报文的方法能够应用在分段路由(英文:segmentrouting,简称:sr)领域中业务功能链(英文:servicefunctionchain,简称:sfc,也称业务链)的场景中。下面分别对sr技术、sfc技术和srsfc技术分别进行简单的介绍。109.sr是一种基于源路由转发模式的隧道技术。sr技术包括多协议标签交换(multi-protocollabelswitching,mpls)和互联网协议第6版(英文:internetprotocolversion6,简称:ipv6)两个数据面,这两个数据面分别称为srmpls和srv6。srv6通常使用分段路由头(英文:segmentroutingheader,简称:srh)携带段列表(sidlist,也称segmentlist或sid列表)。sidlist用来指定ipv6报文的转发路径。其中,srh是一种ipv6路由头部(ipv6routingheader)。srh的路由类型(routingtype)的取值例如是4。110.sr的设计思想包括:在业务流的头节点维护基于流(per-flow)状态,无需在中间节点和尾节点维护per-flow状态。其中,业务流的头节点即sr隧道的头节点。维护per-flow状态的功能即为sr策略(srpolicy)。111.段(segment,也称分段)或段标识(segmentid,sid)是sr的核心要素。segment的定义包括:segment表示任意拓扑、指令或服务。112.sr隧道(srtunnel)是指在头节点上将segmentlist封装到报文头中形成的隧道。一个sr隧道既可用于流量工程(trafficengineering,te)隧道的应用,也可用于操作维护管理(operations,administration,andmaintenance,oam)检测、快速重路由(fastreroute,frr)等目的。sr隧道的建立可以使用分布式方式,也可以使用集中式方式。分布式方式是指使用中间系统到中间系统(intermediatesystemtointermediatesystem,is-is)、开放式最短路径优先(openshortestpathfirst,ospf)或边界网关协议(bordergatewayprotocol,bgp)发布sid的方式。集中式方式是指由sdn控制器(英文:sdncontroller)通过边界网关协议链路状态(bordergatewayprotocol-linkstate,bgp-ls)或路径计算单元通信协议(pathcomputationelementcommunicationprotocol,pcep)收集和计算路径的方式。其中,这里的隧道泛指两点之间的端到端路径的集合,这两点分别是隧道的起点和隧道的终点,隧道的起点为头节点,隧道的终点为尾节点。隧道包括一条路径或多条路径。113.srh采用的是宽松源路由模式。即,不要求转发路径上的每一跳都支持和解析srh,也不要求srh中的sidlist包含路径上的每一跳节点。srv6隧道的报文中甚至可以不包含srh。114.头节点可以通过两种方式指定sr隧道的sidlist。一种方式是显式候选路径(explicitcandidatepath),另一种方式是动态候选路径(dynamiccandidatepath)。此外,可以使用绑定的sid(bindingsid,bsid)来将流量引入(steer)srpolicy,从而屏蔽部分网络的拓扑细节,并规避硬件芯片msd规格不足的问题。115.srv6与srmpls相比,srv6除了具备sr的通用特点之外,srv6最为显著的地方就是支持网络编程。通过网络编程,srv6具有非常强大的可扩展能力,srv6可以适用于各种应用场景,例如,可以基于srv6实现bgp或sr三层虚拟专用网络(srlayer3virtualprivatenetwork,srl3vpn)、以太虚拟私有网络二层虚拟专用网络(ethernetvirtualprivatenetworklayer2vpn,evpnl2vpn)或evpnl3vpn、sfc等。116.以上对sr技术进行了整体介绍,以下对srv6技术中的一些专有名词进行介绍。117.segmentlist用来表示报文转发路径的一个有序的segment列表。在srmpls中,段列表为标签栈。在srv6中,段列表为ipv6地址列表,携带在ipv6报文的srh中。118.segment例如是指导设备处理报文的任何指令,如:根据最短路径转发报文到目的地、通过指定接口转发报文、将报文转发到指定的应用/业务实例等。119.sid是segment的标识,用来标识唯一的段。在srmpls的转发层面,sid可以映射为mpls标签。在srv6的转发层面,sid可以映射为ipv6地址。sid在实质上能够表示拓扑、指令或服务。120.活跃sid(activesid)为段列表中当前待处理的段。当sr节点收到报文时,会对活跃段进行处理。在srmpls中,活跃段为标签栈的最外层标签。在srv6中,活跃段为携带有srh的ipv6报文的目的地址。此外,活跃段可以通过sl字段的取值指明。例如,如果段列表包括5个sid,分别是sid0、sid1、sid2、sid3以及sid4,而sl取值为2,则表明段列表中未被处理的sid有2个,分别是sid0以及sid1,段列表中当前要被处理的sid是sid2,段列表中已被处理的sid有2个,分别是sid3以及sid4。121.srv6技术是指将sr技术应用在ipv6网络中。srv6的sid使用ipv6地址(128bits)编码,并封装在srh中。在转发报文时,支持srv6的节点会按照报文中的目的地址(destinationaddress,da),查询本地sid表(localsidtable,也称localsid表),当报文的目的地址与本地sid表中的任一sid匹配时,确认目的地址命中了本地sid表,则基于该sid对应的拓扑、指令或服务,执行相应的操作;如果报文的目的地址与本地sid表中的每个sid均不匹配,则根据目的地址查询ipv6的路由转发表,根据目的地址在路由转发表中命中的路由转发表转发报文。122.本地sid表为使能srv6的节点维护的表。本地sid表包含本节点生成的srv6sid。根据本地sid表可以生成srv6转发表fib。本地sid表的功能主要有三个。第一,定义本地生成的sid,例如end.xsid。第二,指定绑定到这些sid的指令。第三,存储和这些指令相关的转发信息,例如出接口和下一跳等。123.srv6报文:ipv6报文是由ipv6标准头 扩展头(0...n) 载荷(payload)组成。为了基于ipv6转发平面实现segmentroutingipv6(srv6),新增加一种ipv6扩展头,称作srh(segmentroutingheader)扩展头,该扩展头指定一个ipv6的显式路径,存储的是ipv6的segmentlist信息。头节点在ipv6报文增加一个srh扩展头,中间节点就可以按照srh扩展头里包含的路径信息转发。通过这样增加扩展头的方式,sr与原有ipv6转发平面平滑融合。124.参见图1,图1是本技术实施例提供的一种srv6报文的示意图。srv6报文可以包括ipv6头、srh及载荷。以下通过(1)至(3),对srv6报文的每个部分进行介绍:125.(1)srv6报文中的ipv6头。126.srv6报文中的ipv6头可以包括源地址(sourceaddress,sa)以及da。在普通ipv6报文里,ipv6da是固定不变的。在srv6中,在srv6中,ipv6da标识当前报文的下一个节点,在sr隧道中,sr节点可以对该目的地址不断进行更新,来完成逐跳转发。ipv6头中的目的地址携带的sid可以称为activesid。127.(2)srv6报文中的srh。128.srh为一种ipv6扩展头。srh用于基于ipv6转发平面实现srv6。参见图2,图2是本技术实施例提供的一种srh的示意图。129.srh可以包括以下(2.1)至(2.9)。130.(2.1)段列表131.段列表可以包括一个或多个sid,每个sid可以是ipv6地址的形式,因此段列表也可以理解为一个显式的ipv6地址栈。段列表可以记为segmentlist[n],segmentlist[n]长度为128*n比特,段列表可以从路径的最后一段开始编码。segmentlist是ipv6地址形式。[0132](2.2)剩余段数量(segmentsleft,sl)。[0133]sl用于指示到达目的节点前仍然应当访问的中间节点数量,sl字段还可以称为剩余节点字段。sl字段的取值可以指明段列表中的活跃sid。sl的长度可以为8比特。例如,如果段列表包括5个sid,分别是sid0、sid1、sid2、sid3以及sid4,而sl取值为2,则表明段列表中未被处理的sid有2个,分别是sid0以及sid1,段列表中当前要被处理的sid是sid2,段列表中已被处理的sid有2个,分别是sid3以及sid4。[0134]结合上述(2.1)和(2.2),srh可以抽象为以下格式:[0135]srh(sl=n)[0136]<segmentlist[0],segmentlist[1],segmentlist[2],...,segmentlist[n]>:[0137]其中,<segmentlist[0],segmentlist[1],segmentlist[2],...,segmentlist[n]>为rv6报文的段列表,类似于srmpls中的mpls标签栈信息,在入节点生成。segmentlist[0]是srv6路径上第一个需要处理的segmentlist,segmentlist[1]是第二个,segmentlist[2]是第三个,...,segmentlist[n]是第n 1个。[0138]需要说明的一点是,在表达ipv6报文里的srh时,可以采用逆序的形式表达,即表达为(segmentlist[2],segmentlist[1],segmentlist[0])这种形式。[0139]如图3所示,在srv6中,每经过一个srv6节点,segmentsleft(sl)字段减1,ipv6da信息变换一次。其中,segmentsleft和segmentslist字段共同决定ipv6da信息。[0140]如果sl值是n(n-0),则ipv6da取值就是segmentslist[0]的值。[0141]如果sl值是n-1,则ipv6da取值就是segmentslist[1]的值。[0142]如果sl值是n-2,则ipv6da取值就是segmentslist[2]的值。[0143]如果sl值是0(n-n=0),则ipv6da取值就是segmentslist[n]的值。[0144](2.3)一个或多个tlv[0145]tlv是一种编码格式,tlv包括类型(type)、长度(length)和值(value)。srh中可以包括一个tlv,也可以包括多个tlv。srh中的不同tlv可以具有并列关系,也可以具有嵌套关系。[0146](2.4)下一个报文头类型(nextheader):srv6报文在扩展头之后还可以包括一个或多个扩展头或一个或多个高层头,nextheader用于标识紧跟在srh之后的报文头的类型。下一个报文头类型字段的长度可以是8比特。[0147](2.5)扩展头的长度(英文:headerextendedlength,简称:hdrextlen)字段用于指明srh头的长度。srh头的长度主要是指段列表的长度,例如是从segmentlist[0]到segmentlist[n]所占用长度。[0148](2.6)路由类型(routingtype)字段:用于标识路由头部类型,srhtype是4。路由类型字段的长度可以是8比特。[0149](2.7)最后一个元素索引(lastentry)字段。在段列表中包含段列表的最后一个元素的索引。lastentry字段的长度可以是8比特。[0150](2.8)标志(flags)字段:用于指示数据包的一些标识。flags字段的长度可以是8比特。[0151](2.9)tag字段:用于标识同组数据包。tag字段的长度可以是16比特。[0152](3)srv6报文中的载荷。[0153]srv6报文中的载荷例如是ipv4报文、ipv6报文或以太网(ethernet,简称:eth)帧。srv6报文中的载荷可称为原始报文。[0154]以上介绍了srv6报文的结构,以下对srv6sid进行介绍。[0155]srv6sid可以包括128个比特。srv6sid可以是16进制的数据形式。srv6sid的格式可以为x:x:x:x:x:x:x:x。请参见图4,图4为本技术实施例提供的一种srv6sid的示意图。sid可以包括定位信息(locator)以及功能信息(function),sid的格式为locator:function。可选地,sid还可以包括参数信息(arguments),则sid的格式为locator:function:arguments。srv6sid生成以后,一方面会加入本机的localsid表,另一方面也可以通过路由协议对外发布。实际转发时,srv6sid里的locator部分用来帮助网络里的其他节点进行路由寻址,找到srv6sid的生成节点,并将srv6报文转发到该节点,而function部分用于指示srv6sid的生成节点进行相应的功能操作。[0156]locator占据sid的高比特位。locator字段对应ipv6-前缀ipv6-地址(ipv6-prefixipv6-address)参数,长度由prefix-length参数决定。locator本身是一个ipv6网段,该网段下的所有ipv6地址都可以做为srv6sid分配。节点配置locator之后,系统会生成一条locator网段路由,通过locator网段路由就可以定位到本节点,同时本节点发布的所有sid也都可以通过该条locator网段路由到达。srv6的locator可通过srv6locatortlv发布出去,其他srv6能力的is-is设备接收到tlv以后,下发对应的locator到本机转发表中,没有srv6能力的则不下发到转发表。[0157]function占据sid的低比特位。function字段也称为操作码(opcode),可以通过igp协议动态分配,也可以通过opcode命令静态配置。srv6可以通过function定义每个segment对应的动作。[0158]以上介绍了srv6sid。srv6sid可以包括endsid、end.xsid、end.dt4sid、end.otpsid等等类型。下面以endsid为例,对基于srv6sid的转发流程进行介绍:[0159]endsid中的end表示endpoint。endsid即为endpointsid,endsid用于标识网络中的某个目的地址前缀(prefix)。例如,请参见图5,图5是本技术实施例提供的一种endsid的示意图。节点a的endsid可以为a::。节点b的endsid可以为b::。节点c的endsid可以为c::。[0160]基于endsid的转发操作可以包括以下步骤一至步骤五。[0161]步骤一、sr节点接收报文。[0162]步骤二、sr节点根据报文的ipv6头中的目的地址,查询localsid表。[0163]步骤三、sr节点根据localsid表,判断活跃sid的sid类型(sidtype,也称functype或function类型)为end类型。[0164]步骤四、sr节点继续查询ipv6路由转发表。[0165]步骤五、根据ipv6路由转发表中查询到的出接口和下一跳,转发报文。[0166]例如,参见下表1,表1为本地sid表的示意。如果报文的ipv6da为10:1::1:0/128,sr节点接收到srv6报文时,会根据srv6报文的ipv6da,查询表1,判断10:1::1:0/128的sid类型为end,则根据10:1::1:0/128继续查询ipv6的路由转发表,根据10:1::1:0/128在ipv6的路由转发表命中的出接口和下一跳,转发报文。[0167]表1[0168][0169]其中,表1的表头mylocal-sidendforwardingtable表示srv6end的本地sid表。functype表示function类型。flavor表示特性,例如可以是srh倒数第二段弹出(penultimatesegmentpopofthesrh,简称psp)。locatorid表示为locator分配的id[0170]请参见图6,图6为本技术实施例提供的一种基于endsid的转发流程示意图,该转发流程包括:报文在节点a被压入srh,该srh中的路径信息是<z::,f::,d::,b::>,报文的ipv6头中的目的地址是b::。每当报文经过一个中间节点,例如节点b和节点d,中间节点会根据报文的ipv6da查询localsid表,中间节点判断是end类型,则中间节点会继续查询ipv6路由转发表,根据ipv6路由转发表查到的出接口下一跳转发,同时对sl减1,将ipv6da变换一次。当报文到节点f时,节点f根据报文中ipv6头的目的地址查询localsid表,判断是end类型,然后继续查询ipv6路由转发表,根据ipv6路由转发表查到的出接口转发。同时sl减为0,ipv6da变为z::,此时路径信息<z::,f::,d::,b::>已无实际价值,因此节点f利用psp特性,将srh去除,然后把去除了srh的报文转发到节点z。[0171]以下对sfc技术进行简介。[0172]在传统电信网络的业务链中,数据报文在网络中传递时,往往需要经过各种各样的服务节点,从而保证网络能够按照预先的规划为用户提供安全、快速、稳定的服务。这些服务节点包括而不限于防火墙(firewall,fw)、负载均衡(loadbalancer,lb)、入侵防御系统(intrusionpreventionsystem,ips)等,网络流量需要按照业务逻辑所要求的既定顺序经过这些服务节点,来实现所需要的业务。而传统电信网络的业务链中,通过硬件设备上输入复杂的命令行进行策略引流实现,难于运维及变化,同时对vas服务器的部署和物理位置约束很大。而业务功能链(英文:servicefunctionchain,简称:sfc,也称业务链)的出现,有效地解决了传统电信网络中业务链的问题。[0173]sfc是一种给应用层提供有序服务的技术。sfc用来将网络设备上的服务在逻辑层面上联接起来,从而形成一个有序的服务组合。sfc通过在原始报文中添加业务链路径信息来实现报文按照指定的路径依次经过服务设备。在传统的网络架构下,sfc技术利用虚拟网络将服务业务更好的融合进来,很好的解决了上述问题:针对网络设备之间耦合性大,导致业务部署不灵活的问题,sfc基于覆盖(overlay)技术独立于网络规划,底层物理网络拓扑改变时,不影响服务节点的部署与激活,只要承载网路由可达就可以将虚拟的业务链映射到物理服务节点。针对转发效率低的问题,sfc通过对报文的报头封装信息,使得业务链路径上的各个节点能够相互传递信息,有了这些信息整个服务链可以对数据做动态灵活的策略处理。针对服务设备无法共享的问题,sfc中转发层面和服务层面相互分离,用户就可以将服务设备划分在资源池中,所有数据流量经过分类后通过业务链引流到多个服务设备上,这样不仅分流后的数据流量降低了对服务设备处理峰值流量能力的性能要求,而且实现了服务设备的资源共享。[0174]sfc的数据面网元类型包括流分类器(英文:serviceclassifier,简称:sc)、业务功能转发设备(英文:servicefunctionforwarder,简称:sff)、sfc代理(sfcproxy)和业务功能(英文:servicefunction,简称:sf)设备等。[0175]sc位于sfc域的边界入口,报文进入sfc域后会首先进行流量分类,分类的粒度由分类器能力和sfc策略决定,分类规则可以粗略也可以详细。例如粗略情况下,一个端口上的所有报文都满足某个sfc规则,走业务链路径1;详细情况下,只有满足五元组要求的报文才能满足某个sfc规则,走业务链路径2。[0176]sf设备用于对报文进行业务处理。例如,sf设备可以而不限于是防火墙、负载均衡、应用加速器、合法性拦截(li)、网络地址转换(英文:networkaddresstranslation,简称:nat)、带宽控制、病毒检测、云存储、深度包检测(英文:deeppacketinspection,简称:dpi)、入侵检测或者入侵防御等。sf设备的物理实体可以是一种计算设备,该计算设备可以而不限于是服务器、主机、个人计算机、网络设备或者终端设备。在一些可能的实施例中,sf设备可以采用这样的方式实现:x86架构的通用服务器上运行有虚拟机或容器,该虚拟机或容器中运行有应用程序,该应用程序可以用于进行业务功能处理。根据是否可以感知srv6封装,sf分为感知srv6封装的sf(srv6-awaresf)和不感知srv6封装的sf(srv6-unawaresf)。srv6-awaresf能够识别收到的srv6报文并对其进行处理,srv6-unawaresf不识别srv6报文,收到后将其丢弃。[0177]sff用于将从网络中收到的报文转发到sff关联的若干个sf上,转发的依据就是srh封装的信息。sf处理后,将报文再返回给同一个sff,该sff最终决定是否将报文发回网络中。sff的物理实体可以是网络设备,例如可以是路由器(router)、交换机等。[0178]在sfc领域中,sf设备俗称为增值业务设备(value-addedservice,vas),sff俗称为“router”。在本技术的一些实施例的文字和附图中,会使用“vas”这个词指代sf设备,使用“router”这个词指代sff。[0179]sfcproxy位于sff及其关联的若干个srv6-unawaresf之间,代表sf接收来自sff的报文,删除srv6封装信息,通过本地逻辑组件将报文发给srv6-unawaresf,也接收从srv6-unawaresf发回的报文,重新为之添加srv6封装信息,再发给sff进行处理。从sff角度看,sfc代理相当于一个srv6-awaresf。通常情况下,sfcproxy和sff会集成设置在同一硬件设备上。[0180]以下对srv6sfc技术进行简介。[0181]随着srv6技术的推演,srv6sfc方案成为实现业务链的优秀方案。基于sr的设计思想以及srsid的语义,通过统一编排拓扑sid(topologicalsid)和服务sid(servicesid)来实现无状态业务链(statelesssfc)。时下,srsfc的实现框架的主要特点包括:[0182]特点1)利用topologicalsid和servicesid统一编排,实现statelesssfc。[0183]特点2)对于感知sr的(sr-aware)的sf设备,sf设备需要实现srv6基础功能,以及为srv6sfc而定义的end.ansid类型。[0184]其中,sr-awaresf是指支持sr的设备。end.an用来表示感知sr的功能(sr-awarefunction(native)),即,end.an用来表示srv6-awaresf设备所实现的srv6业务链功能的sid类型。由于sf设备功能本身较为宽泛(例如,防火墙过滤、dpi、nat等等),因此,与其他sid类型不同的是,end.an这种类型还没有像end.as/end.ad/end.am这些类型那样,被定义出具体的处理逻辑。通常,end.an这种sid类型是表示:当srv6设备(也就是sf设备)接收到activesid为本地end.ansidtype时,执行与sfc相关的功能处理。至于sf设备实际是如何处理的,则取决于具体的实现与配置参数。end.an中的n可以被理解为native。[0185]特点4)对于不感知sr的(sr-unaware)的sf设备,通过sfc代理代替sf设备处理srh。[0186]其中,sff通常会同时实现sfcproxy功能。换句话说,sff和sfcproxy集成在同一设备中,该设备不仅实现sff的功能,也实现sfcproxy功能。其中,sr-unawaresf设备是指不支持sr(sr-mpls或srv6)的设备。[0187]以上简介了srv6sfc技术,以下围绕上述特点3)和特点4)进行详细介绍。[0188]针对sr-awaresf设备的srv6sfc实现方案而言,可以在sr-awaresf设备实现和部署end.ansid,通过end.ansid实现srv6sfc。例如,请参见图7,srv6sfc实现原理如图7所示,srv6sfc的实现方案包括s101至s103。[0189]s101、当sff接收到activesid为end/end.x的srv6报文时,sff利用end/end.x等将srv6报文转发给sf设备,sff发送出去的报文的activesid为end.an类型的sid。[0190]s102、sf设备接收到sff转发的srv6报文,sf设备根据srv6报文的目的地址,查询本地sid表,匹配到end.an类型。sf设备基于end.an进行流分类,完成业务相关处理,将处理后的srv6报文返回给sff。sf设备返回的srv6报文的activesid是end.ansid之外的其他sid,在图7,end.ansid之外的其他sid用xxxsid表示。[0191]s103、sff接收到sf设备返回的srv6报文,sff根据xxxsid,将srv6报文转发给下游设备。该下游设备例如是sff的下一跳sff或者其他sf设备等等。[0192]srv6sfc演进的终极目标包括:sf设备实现了end.an。这意味着实现了srv6-only网络,但预计这将需要不少的时间,因为sf设备不仅要实现end.an的转发功能(各种策略、各种动作),sf设备还需要实现控制面功能(包括sid分配与发布、与sdncontroller的北向接口等)。[0193]在srv6-only网络中,sff只需要实现end/end.x这类基本的srv6功能,甚至sff只需要实现纯粹的ipv6(nativeipv6)路由转发即可。[0194]对于上述针对sr-awaresf设备的srv6sfc实现方案而言,该方案存在的问题包括:(1)sf设备需要支持srv6和end.ansid。(2)对于现网的大量存量sf设备不可行。[0195]针对sr-unawaresf设备的srv6sfc实现方案而言,在sf设备是sr-unawaresf设备的情况下,可以在sff上实现和部署proxysid,由sff实现srproxy(sr代理)功能,来实现srsfc。参见图8,图8示出了srproxy的通用架构,srproxy的流程包括以下s111至s112。[0196]s111、当srproxy从上游节点接收到sr流量(srtraffic,sr流量中的每个报文包括srh)时,srproxy需要将srtraffic转发给sf设备。如果srproxy发现sf设备为sr-unaware的sf设备,srproxy会首先剥掉srh,然后srproxy从出接口将非sr流量(nonsrtraffic,非sr流量中的每个报文不包括srh)发送给service。[0197]s112、当srproxy从入接口(ifacein)接口接收到service返回的nonsrtraffic时,srproxy恢复srheader封装,然后再将恢复srheader封装的srtraffic转发给下游设备。[0198]srproxy包括四种类型,这四种类型也称四种代理模式。具体地,srproxy包括静态代理(staticproxy)、动态代理(dynamicproxy)、伪代理(masqueradingproxy)和共享内存代理(shared-memoryproxy)。静态代理的方式基于end.assid实现。动态代理的方式基于end.adsid实现。伪代理的方式基于end.amsid实现。共享内存代理的方式中,proxy和sf设备通常在同一台设备内实现,无需定义相关sid类型。[0199]下面,对静态代理和动态代理的原理与优劣分析如下。[0200]参见图9,静态代理的方法包括以下s121至s123。[0201]s121、sff接收到srv6报文。sff根据srv6报文的目的地址,查询本地sid表,匹配到end.as,sff执行end.as对应的操作。end.as对应的操作包括以下(1)和(2)。[0202](1)sff剥掉并丢弃srv6报文的srh。[0203](2)sff重新封装隧道报头(tunnelheader),sff将包括tunnelheader的报文转发给sf设备。[0204]s122、sf设备接收到sff发送的报文,sf设备终结tunnelheader,实现业务处理。完成后,sf设备重新封装tunnelheader,将报文返回给sff。[0205]s123、sff接收到sf设备返回的报文,终结tunnelheader。sff根据入接口和访问控制列表(accesscontrollists,acl),通过静态配置,恢复srh封装,sff对sl递减,继续转发报文。[0206]通过分析可知,对于静态代理(end.assid)的方案而言,其优点主要包括控制面与转发面均无状态,实现简单。其缺点主要包括由于sff直接丢弃srh,导致srh中的动态信息丢失,不能满足未来srv6演进的需求,如基于网际互连协议数据流的随路oam性能测量(in-situflowinformationtelemetry,ifit)、ipv6的网络感知应用(application-awarenetworkingforipv6,apn6)、带内操作维护管理(in-situoperations,administration,andmaintenancein-situoam,简称ioam)、网络切片(networkslicing)。因此,该方案适用于相对简单、动态性较低的srv6网络。[0207]其中,被丢失的动态信息包括多种。例如,参见图10,其示出了一个简单的场景,即,r1到r4有两条不同路径,一条路径是r1→r2→r3→r4,该路径经过3跳。另一条路径是r1→r5→r4,该路径经过2跳。其中,r4实现了end.assid功能。现在,从r1向r4发送报文,同样的ipv6报文经过2条路径中的不同路径到达r4时,ipv6hoplimit值具有差异。这是由于r4在经过end.assid处理后,r4无法正确恢复hoplimit值,因为恢复后的hoplimit是用户配置的,一旦配置确定后,hoplimit值始终只能是一个固定值,而无法自动学习和适应上述差异。[0208]动态代理的方法包括以下s131至s133。[0209]s131、sff接收到srv6报文。sff根据srv6报文的目的地址,查询本地sid表,匹配到end.ad,执行end.ad对应的操作。end.ad对应的操作包括以下(1)和(2)。[0210](1)sff剥掉并缓存srv6报文的srh。[0211](2)sff重新封装tunnelheader,sff将包括tunnelheader的报文转发给sf设备。[0212]s132、sf设备终结tunnelheader,实现业务处理。完成后,sf设备重新封装tunnelheader,sf设备将包括tunnelheader的报文返回给sff。[0213]s133、sff终结tunnelheader,sff通过缓存(cache),根据入接口和acl恢复srh封装,sff对sl递减,sff继续转发报文。[0214]通过分析可知,对于动态代理(end.adsid)的方案而言,其优点包括由于cache的存在,使得动态信息不会丢失,具有自适应的优势,能满足未来srv6网络演进的需求。其缺点包括由于转发面是有状态的(stateful)(cache),实现难度较大,性能方面(容量、速率、收敛)等存在一定的压力。该方法对于网上的存量sf设备,尚未支持srv6的sf设备而言,为较为通用的解决方案。[0215]通过对静态代理的方案和动态代理的方案分析可知,如果sff大包大揽,要实现剥离srh的动作以及恢复srh的动作,就会导致sff开销过大。而sf设备无需支持srv6,而需要关注sf设备与sff的隧道(tunnel)对接。[0216]综上,对于sr-unawaresf设备的方案而言,该方案存在的问题包括两个方面。一方面,sff(sff)实现较为复杂,尤其对转发芯片有较高的要求。另一方面,各种代理模式都存在一定的应用场景限制。[0217]从前面的分析可以看出,对于sr-awaresf的方案和sr-unawaresf的方案而言,两类方案在控制面没有多大区别,但在转发面是在两个极端之间游走。对于end.an的方案而言,sf设备实现复杂度高。而对于end.as的方案以及end.ad的方案而言,sff实现复杂度高。显然,无论采用哪种方案,sf设备和sff之间的一个的实现和部署都会比较复杂。[0218]有鉴于此,对上述方案的困境分析和改进构思如下。[0219]例如,请参考图11,对于srv6报文而言,隧道层(tunnellayer)信息在srv6报文的srh中。服务层(servicelayer)信息在srv6报文的payload中。srv6的一种重要优势是,p/pe设备无状态。但业务本身是有状态的,业务的状态在哪儿?业务的状态在srv6报文的srh中。[0220]sff和sf设备是sfc转发面的两个关键角色。[0221]sff负责将报文转发给sf设备进行业务功能处理。从报文封装来看,sff本身并不关心payload部分,sff只关心tunnelheader(srh)部分,并且要求保证tunnellayer信息的连续性。[0222]sf设备主要关心payload部分,sf设备对tunnelheader部分甚少关注(除了要求携带vpnid这类少量信息之外)。[0223]由于sff和sf设备的诉求差异,在srv6sfc的转发模型中,上面描述的方案存在不同程度的困境。[0224]具体地,对于srv6sfc技术中的end.an方案而言,从sff视角来看,sf设备是一个普通的srv6下一跳,因而sff无需做特殊处理。而从sf设备视角来看,业务数据隐藏在srh之后,sf设备必须先感知end.adsid,sf设备才能进一步处理。因此sf设备面临的困境在于,end.adsid的主要作用就是acl流分类,sf设备只用到end.adsid,sff却将整个srh发给了sf设备。有鉴于此,可以通过下述方法实施例,在保证tunnellayer信息的连续性的同时,免去sf设备解析srv6sid的步骤,从而解决sf设备面临的困境。[0225]对于srv6sfc技术中的end.as方案和end.ad方案而言,从sff视角来看,一方面,由于sf设备不能接收srh,sff必须替换掉tunnelheader。但由于替换掉tunnelheader,会带来了tunnellayer信息的连续性的丢失。另一方面,为了保证tunnellayer信息的连续性,sff要通过静态配置(staticconfiguration)或cache等各种方式,恢复tunnelheader,哪一种方式都十分复杂。[0226]而从sf设备视角来看,srv6封装相关的解析任务都由sff干完了。一方面,tunnellayer被换封装后,sff必须将vpnid映射过来,否则sf设备由于得不到vpnid,无法实现vpn隔离。另一方面,由于sf设备通常不会使用到tunnellayer信息,因此sf设备通常不会关注tunnellayer信息的连续性。因此sff面临的困境在于,为了实现srv6技术,sff要解决sf设备是unawaresf设备的问题,为此sff替换tunnelheader,一旦替换掉tunnelheader,就会引起tunnellayer信息的连续性中断,为了避免tunnellayer信息的连续性中断,要使用静态配置或cache等各种方式。通过分析可见,上述方案的困境的根源在于前后报文的tunnelheader被替换掉了,导致tunnellayer信息的连续性中断。[0227]在介绍下面的各个实施例之前,首先对本技术一些实施例的发明构思进行介绍。[0228]考虑到无论是sr-awaresf设备方案,还是sr-unawaresf设备方案,其基本思路都是将srv6sfc转发面功能交由sf设备或sff单个设备实现,这是一种极端的思路,从而导致了实现和部署的复杂性。而本技术采用了一种平衡的思路,在保证srv6tunnellayer信息连续性的前提下,仅需对sff和sf设备仅需少量修改即可实现srv6sfc的转发面功能,从而同时避免了sff和sf设备的实现复杂性,从而大大降低了对转发芯片的需求。[0229]具体地,考虑到sff的关键诉求主要在于如何保证tunnellayer信息的连续性。本技术的一些实施例中,通过这样的方案满足了sff的关键诉求:sff不替换tunnelheader封装,sff将srv6报文完整转发给sf设备。sf设备不终结tunnelheader,将tunnelheader原样返回(部分控制标识除外)。[0230]考虑到sf设备的关键诉求主要在于易于进行流分类,并联动相关策略与动作。本技术的一些实施例中,通过这样的解决方案满足了sf设备的关键诉求:sff在转发给sf设备的srv6报文中,sff添加相关的控制标识,以便明确标识这种应用场景。sf设备需要识别上述控制标识,以便与普通的ipv6业务报文、ipv6隧道报文相区别。sf设备在识别出这类报文时:第一,不终结srh,在完成业务处理后,将其原样返回给sff。第二,sf设备偏移过srh部分,对payload部分进行业务处理。[0231]通过上述解决方案,达到的效果包括而不限于以下几点。[0232]1、tunnellayer信息的连续性不被中断。[0233]2、无需修改tunnelheader封装格式,sff转发面实现简单。[0234]3、sff配置简单(无需配置需要恢复的srh),转发面无状态(无cache)。[0235]4、sf设备无需支持end.ansid以及srv6基础设施,只需支持nativeipv6。[0236]其中,tunnelheader在报文中指代的部分可以取决于具体的封装方式。例如,请参考后文图14以及相关介绍,如果是插入(insert)模式,tunnelheader是指srh这一个报文头;如果是封装(encapsulation)模式,tunnelheader是指包括srh的整个ipv6header,例如tunnelheader是指最外层的ipv6标准头、srh和srh之外的至少一个ipv6扩展头。tunnellayer信息的连续性被中断是指网络设备在转发报文过程中,丢弃了报文中的动态信息,动态信息的丢失导致业务功能受损。具体地,在网络中传输的信息是通过ip报文携带的。这些信息可以分为两类:静态信息和动态信息。其中,静态信息是在报文生成之前确定的信息,例如,静态信息由用户配置。动态信息是在生成或传输过程中通过某种算法动态生成的,动态信息无法由用户无法预置。例如,tcp或udp的源端口号是动态信息,源端口号通常是在一定范围内(伪)随机选择的。在tunnelheader中也会携带动态信息。在使用end.assid时,这些动态信息就会被无条件丢弃掉;而通过配置只能指定静态信息。动态信息的丢失,会导致业务功能受损。[0237]参见附图12,本技术实施例提供了一种系统架构100。系统架构100是对srv6sfc的架构的举例说明。[0238]从控制面的角度而言,srv6sfc的系统架构包括:sdncontroller或网络功能虚拟化基础设施(networkfunctionsvirtualizationinfrastructure,nfvi)等类型。系统架构100包括sdn控制器、网络功能虚拟化(英文:networkfunctionvirtualization,简称:nfv)管理设备1或者nfv管理设备1,这些设备是对srv6sfc的控制面的举例说明。[0239]从数据面的角度而言,srv6sfc的网元类型包括:流分类器、sff、sfcproxy和sf设备。系统架构100包括流分类器、sf设备1、sf设备2、sf设备3、sf设备4、sff1或sff2,这些设备是对srv6sfc的数据面的举例说明。sf设备1、sf设备2、sf设备3、sf设备4是对sf设备的举例说明。sff1或sff2是对sff的举例说明。[0240]系统架构100中的sff支持srv6功能,包括endsid和end.xsid等。可选地,sff无需支持end.as/end.ad/end.amsid等srv6sfc代理功能相关的sid。[0241]系统架构100中的sf设备支持ipv6转发功能,同时也需要支持本技术下述方法200、方法300或者方法400涉及的功能。可选地,sf设备无需实现srv6相关功能。[0242]或者,可选地,sff和sf设备集成为一台设备。例如,在路由器上实现sf设备功能。例如,在路由器中插入支持nat、fw等功能的单板,使得路由器通过单板实现nat、fw等功能。[0243]应理解,系统架构100中的各个设备对应于上文介绍sr技术、sfc技术以及srsfc技术时描述的设备,例如系统架构100中的sff与上文介绍sfc技术时描述的sff对应,并且,系统架构100中的sff与上文介绍srv6技术时描述的srv6节点对应。系统架构100中的sff包括上文描述的sfc技术中sff以及srv6节点的任意功能。系统架构100中的sf设备与上文介绍sfc技术时描述的sf设备对应。系统架构100中的sf设备包括上文描述的sf设备的任意功能。为了描述简洁,系统架构100不再赘述。[0244]以上通过系统架构100,介绍了srv6sfc的系统架构,以下通过方法200至方法400,示例性介绍基于上文提供的系统架构实现srv6sfc的方法流程。[0245]参见图13,图13是本技术实施例提供的一种srv6业务链中转发报文的方法200的流程图。方法200的交互主体包括sf设备和sf设备接入的sff。例如,方法200由如图12所示系统架构100中的sf设备1和sf设备1接入的sff1执行,又如,方法200由系统架构100中的sf设备3和sf设备3接入的sff2执行。sff1和sff2转发的srv6报文可以来自于系统架构1示出的流分类器。[0246]可选的,方法200由通用中央处理器(centralprocessingunit,cpu)处理,或由网络处理器(networkprocesser,np)处理,或由cpu和np共同处理,也可以不用cpu和np,而使用其他适合用于报文转发的处理器,本技术不做限制。[0247]示例性地,方法200包括s201至s209。其中,s201为方法200的预置处理过程。s202至s209为方法200的转发过程。应理解,s201被执行的次数与s202至s209被执行的次数可以并不相同,例如,先执行s201一次,之后执行s202至s209多次。[0248]s201、sff上配置端点穿透段标识(end.pt.sid)。[0249]end.pt是本技术实施例定义的一种新的sid类型。其中end表示endpoint,end直译为端点。pt表示穿透(penetrate),指代跳过srh的动作。end.pt.sid是一种srv6sid。end.pt.sid的sid类型是end.pt类型。end.pt.sid用于指示sff以不剥离srh的方式向sf设备转发接收到的srv6报文。可选地,该sf设备是支持ipv6且不支持srv6的设备。可选地,end.pt.sid还用于指示sff将控制标识封装至srv6报文中[0250]可选地,end.pt.sid是sff本地的sid。sff可将end.pt.sid保存在sff的本地sid表中。end.pt.sid的locator与sff对应,end.pt.sid的locator用于定位到sff。此外,sff可将end.pt.sid发布至srv6网络中。[0251]应理解,end.pt是对新定义的sid类型的举例,end.ptsid是对新定义的sid的举例,sid类型和sid的命名仅是示例,sid类型和sid也可以具有其他的称谓。例如,这些sid在不同场景下可能有不同名称,如不同厂商采用不同名称,或不同标准采用不同名称,sid的命名并不用以限制本技术的保护范围。[0252]s202、sff接收第一srv6报文。[0253]为了区分描述sff接收到的报文与sff发送出去的报文,本实施例将sff接收到的srv6报文称为第一srv6报文,将sff发送出去的srv6报文称为第二srv6报文,将sf设备返回给sff的srv6报文称为第三srv6报文。其中,第一srv6报文、第二srv6报文以及第三srv6报文均包括srh。[0254]第一srv6报文的生成方式包括多种情况。在一些实施例中,请参考图14,第一srv6报文的生成模式包括两种,一种生成模式称为插入模式,另一种生成模式称为封装模式。[0255]在插入模式下,srv6报文是在ipv6报文的基础上生成的,头节点会在ipv6报文最外层的ipv6标准头和载荷之间,插入srh这一个ipv6扩展头。采用插入模式生成的srv6报文例如包括ipv6标准头、srh、srh之外的其他ipv6扩展头和载荷。对于sf设备而言,[0256]采用插入模式生成的srv6报文中,srh属于隧道层的信息,srh之外的其他ipv6扩展头和载荷属于业务层的信息。本实施例中,会通过控制标识来控制sf设备偏移srh,而不偏移srh之外的其他ipv6扩展头和载荷,以使sf设备偏移过srv6报文中隧道层的信息,处理srv6报文中业务层的信息。举例来说,sf设备对srv6报文进行业务处理,包括处理srv6报文中业务层的信息,例如处理载荷,也可以处理其他ipv6扩展头,或者两者。[0257]在封装模式下,srv6报文是在ipv4报文、ipv6报文或以太网帧的基础上生成的。以在ipv4报文的基础上生成srv6报文的过程为例,头节点会在ipv4报文的外层添加srh和ipv6标准头,可选地,头节点还添加srh之外的其他ipv6扩展头。对于sf设备而言,采用封装模式生成的srv6报文中,srh、和头节点添加的其他ipv6扩展头均属于隧道层的信息,载荷属于业务层的信息。本实施例中,会通过控制标识来控制sf设备偏移srh、和头节点添加的其他ipv6扩展头,以使sf设备偏移过srv6报文中隧道层的信息,处理srv6报文中业务层的信息。举例来说,在封装模式下,sf设备对srv6报文进行业务处理,包括处理载荷。[0258]第一srv6报文的目的地址包括end.pt.sid。其中,srv6报文通常包括外层的ipv6头以及内层的原始报文,外层的ipv6头包括da字段,内层的原始报文也包括da字段。这里所说的目的地址是指外层的ipv6头中的da字段承载的目的地址。换句话说,第一srv6报文外层的ipv6头的da字段包括end.pt.sid。此外,在srv6领域中,srv6报文中命中了localsid表的ipv6da可称为activesid,因此也可以这样说,第一srv6报文的activesid为end.pt.sid。[0259]s203、sff根据end.pt.sid以及第一srv6报文,生成第二srv6报文。[0260]sff接收到第一srv6报文后,会基于第一srv6报文的activesid,对第一srv6报文进行转发处理。在srv6领域中,基于activesid进行处理的过程通常包括:sff根据第一srv6报文的外层的ipv6头中的目的地址,查询本地sid表,将目的地址与本地sid表中的sid进行匹配,根据目的地址匹配到的sid,执行目的地址匹配到的sid对应的操作。在s203中,由于第一srv6报文的activesid为end.pt.sid,sff查询本地sid表时,会匹配到end.pt类型,因此sff执行end.pt.sid对应的操作,即,sff以不剥离srh的方式向sf设备转发第一srv6报文。[0261]s203与end.assid以及end.adsid等sr代理的方式相区别,sff在对第一srv6报文转发处理的过程中,并不会剥离第一srv6报文的srh,而是将第一srv6报文保持为srv6报文的封装形式,使得包含srh的第二srv6报文被转发给sf设备。[0262]第二srv6报文包括的srh与第一srv6报文包括的srh之间的关系包括多种情况,以下通过情况a和情况b举例说明。[0263]情况a、第二srv6报文包括的srh与第一srv6报文包括的srh存在区别。具体地,第二srv6报文包括的srh的段列表与第一srv6报文包括的srh的段列表相同,而第二srv6报文包括的srh的sl比第一srv6报文包括的srh的sl小1。[0264]情况a适于sff先更新activesid再向sf发送报文的方式。具体地,sff先更新第一srv6报文的activesid,得到包括更新后的activesid的第二srv6报文,再向sf设备转发包括第二srv6报文,由于执行了更新activesid的动作,使得第二srv6报文包括的srh相对于第一srv6报文包括的srh产生变化。例如,sff更新第一srv6报文的外层的ipv6头中的目的地址,将目的地址从end.pt.sid修改为段列表中下一个sid。sff将sl字段的取值减一,以使sl指向段列表中下一个sid,从而更新第一srv6报文的activesid。[0265]情况b、第二srv6报文包括的srh与第一srv6报文包括的srh是相同的。[0266]情况b适于sff接收到sf设备返回的报文后再更新activesid的方式。在情况b下,可选地,sff将第一srv6报文包括的srh封装在第二srv6报文中,使得第二srv6报文包括第一srv6报文的srh。[0267]可选地,第二srv6报文最外层的ipv6头与第一srv6报文最外层的ipv6头是相同的。或者,第二srv6报文最外层的ipv6头与第一srv6报文最外层的ipv6头存在区别。例如,[0268]sff更新第一srv6报文的最外层的ipv6头中的跳数限制(hoplimit),例如,sff将hoplimit字段的取值减一,使得第二srv6报文包括的ipv6头的hoplimit比第一srv6报文包括的ipv6头的hoplimit小1。[0269]第二srv6报文中srh之后的部分包括载荷。第二srv6报文中srh之后的部分包括载荷。第二srv6报文和第一srv6报文具有相同的载荷。载荷是指报文的payload部分。根据对载荷的定义的不同,第二srv6报文和第一srv6报文具有相同的载荷可包括多种情况,以下通过情况一和情况二举例说明。[0270]情况一、第二srv6报文和第一srv6报文具有相同的载荷是指第二srv6报文包括的原始报文和第一srv6报文包括的原始报文相同。例如,请参考图15,第一srv6报文包括的原始报文是ipv4报文,第二srv6报文包括的原始报文是ipv4报文,第一srv6报文包括的ipv4报文和第二srv6报文包括的ipv4报文相同。[0271]情况二、第二srv6报文和第一srv6报文具有相同的载荷是指第二srv6报文包括的原始报文中的载荷和第一srv6报文包括的原始报文中的载荷相同。例如,第一srv6报文包括的原始报文是ipv4报文,该ipv4报文包括ipv4报文头和载荷,该载荷是tcp报文。第二srv6报文包括的原始报文是ipv4报文,该ipv4报文包括ipv4报文头和载荷,该载荷是tcp报文。第一srv6报文包括的tcp报文和第二srv6报文包括的tcp报文相同。[0272]第二srv6报文包括控制标识。具体地,sff在对第一srv6报文转发处理的过程中,会添加控制标识,以使得到的第二srv6报文包括控制标识。sff通过在第二srv6报文中携带控制标识,从而利用控制标识指示sf设备如何解析和处理sff转发给sf设备的报文。[0273]控制标识用于指示sf设备偏移(offset)过第二srv6报文中控制标识之后的ipv6扩展头。可选地,控制标识用于指示sf设备偏移过第二srv6报文中包含控制标识的ipv6扩展头之后的ipv6扩展头。例如,控制标识用于指示sf设备偏移过第二srv6报文中逐跳选项报头之后的ipv6扩展头,逐跳选项报头是对包含控制标识的ipv6扩展头的举例说明。[0274]本段对偏移的含义进行解释说明。以偏移的对象是其他扩展头a为例,偏移其他扩展头a是指不解析其他扩展头a而解析处理报文在其他扩展头a之后的部分。[0275]可选地,控制标识的指示功能包括以下方式(1)和方式(2)中的任一项。[0276]方式(1)控制标识用于指示sf设备偏移过第二srv6报文中的srh。[0277]可选地,方式(1)适用于第一srv6报文的生成模式是插入模式的情况。在方式(1)中,控制标识用于指示精准地偏移srh。可选地,控制标识用于指示不偏移srh之外的其他ipv6扩展头,以使sf设备在控制标识的指示下,处理srh之外的其他ipv6扩展头。[0278]例如,按照从头部至尾部的顺序,第二srv6报文中依次是ipv6标准头、包含控制标识的逐跳选项报头、其他扩展头a、srh、其他扩展头b和ipv4报文,控制标识用于指示偏移过srh,而不偏移其他扩展头a和其他扩展头b。其中,逐跳选项报头是对包含控制标识的ipv6扩展头的举例说明。其他扩展头a和其他扩展头b均是对位于控制标识之后的其他ipv6扩展头的举例说明。其他扩展头a是对srh之前的其他ipv6扩展头的举例说明。其他扩展头b是对srh之后的其他ipv6扩展头的举例说明。[0279]方式(2)控制标识用于指示sf设备偏移过第二srv6报文中的srh以及srh之外的其他ipv6扩展头。[0280]其他ipv6扩展头在第二srv6报文中位于控制标识之后。例如,其他ipv6扩展头是位于逐跳选项报头之后、且位于载荷之前的ipv6扩展头。可选地,该其他ipv6扩展头在第二srv6报文中位于srh之前。可选地,该其他ipv6扩展头在第二srv6报文中位于srh之后。其中,逐跳选项报头是对包含控制标识的ipv6扩展头的举例说明。[0281]可选地,方式(2)适用于第一srv6报文的生成模式是封装模式的情况。在方式(2)中,控制标识用于指示偏移过包含控制标识的ipv6扩展头之后的每个ipv6扩展头。例如,控制标识用于指示偏移过逐跳选项报头之后的第一个ipv6扩展头至载荷之间的每个ipv6扩展头。[0282]例如,按照从头部至尾部的顺序,第二srv6报文中依次是ipv6标准头、包含控制标识的逐跳选项报头、其他扩展头a、srh、其他扩展头b和ipv4报文,控制标识用于指示偏移过其他扩展头a、srh、其他扩展头b。[0283]可选地,控制标识不仅具有以上描述的偏移过ipv6扩展头的指示功能,还具有另外一种指示功能。具体地,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中被偏移的ipv6扩展头。利用控制标识的这种指示功能,能将被sf设备偏移的ipv6扩展头原样返回给sff,使得被sf设备偏移的ipv6扩展头通过sff继续传递给业务链的下游网元,避免被sf设备偏移的ipv6扩展头在sf设备处传输中断。以下通过方式i和方式ii,对控制标识的另外一种指示功能进行介绍。[0284]方式i、与上述方式(1)和插入模式对应,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的srh。[0285]方式ii、与上述方式(2)和封装模式对应,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的srh、第二srv6报文中srh之外的、位于控制标识之后的其他ipv6扩展头。例如,控制标识还用于指示返回第二srv6报文中逐跳选项报头之后的第一个ipv6扩展头至载荷之间的每个ipv6扩展头。[0286]sf设备接收到第二srv6报文时,如果sf设备读取到第二srv6报文中的控制标识,则sf设备会将第二srv6报文识别为待偏移ipv6扩展头的报文,按照偏移ipv6扩展头的方式处理。可选地,控制标识记为“ctrlinfo”。[0287]以上介绍了sff在srv6报文中添加的控制标识。在一些实施例中,sff不仅在srv6报文中添加控制标识,还添加目标信息。目标信息为sf设备在进行所述业务处理时需要用到的信息。例如,目标信息是srv6sfc相关的信息。sff如何添加目标信息包括多种方式,以下通过方式一至方式二举例说明。其中,方式一是对封装方式的举例说明,方式二是对映射方式的举例说明。[0288]方式一、sff解析第一srv6报文的srh,sff从第一srv6报文包括的srh中获取目标信息。[0289]在方式一中,sff从srh中得到目标信息,将第一srv6报文的srh中的目标信息封装在第二srv6报文中。[0290]例如,目标信息包括sfc元数据(sfcmetadata)或者虚拟专用网络标识(virtualprivatenetworkid,vpnid)中的至少一项。[0291]sfc元数据包括多种情况。例如,在数据通信网络(datacommunicationnetwork,dcn)中,sfc元数据是dc上下文分配(dccontextallocation)信息。例如,sfc元数据包括源节点id(sourcenodeid)、源接口id(sourceinterfaceid)、租户id(tenantid)、目标类(destinationclass)、源类(sourceclass)、不透明服务类(opaqueserviceclass);例如,在精确时间协议(precisiontimeprotocol,ptp)中,sfc元数据是32比特的基于ptp的时间戳。例如,sfc元数据是纳秒(nanoseconds)信息;例如,在网络时间协议(networktimeprotocol,ntp)中,sfc元数据是32比特的基于ntp的时间戳。例如,sfc元数据是秒(seconds)和分钟(fraction);例如,sfc元数据包括上下文id(contextid)、子/端点id(sub/endpointid)、服务信息(serviceinformation);例如,sfc元数据包括上下文id(contextid)、子/端点id(sub/endpointid)、服务信息(serviceinformation)。例如,在无线接入网(wirelessaccessnetwork,ran)中,sfc元数据包括服务质量(qualityofservice,qos)/差分服务代码点(differentiatedservicescodepoint,dscp)、应用(application,app)id中的至少一项。[0292]可选地,vpnid通过128个比特的srv6vpnsid表示。其中,srv6vpnsid是一种srv6sid。srv6vpnsid用于标识对应的vpn。具体地,srv6vpnsid的功能信息(function)用于指示目的设备向vpn实例发送报文,使得报文从目的设备进入对应的vpn,从而实现租户隔离。vpnsid的类型包括而不限于end.dx和end.dt。end.dxsid对应的操作包括解封装外层的ipv6报文头、将剩余报文从end.dxsid绑定的出接口转发出去。end.dx包括而不限于end.dx6、end.dx4、end.dx2或end.dx2v。end.dtsid对应的操作包括解封装外层的ipv6报文头、根据剩余报文包括的目的地址查找vpn实例路由表进行转发。end.dt包括而不限于end.dt4或end.dt6。[0293]本段对方式一的效果进行介绍。出于业务处理的需要,sf设备可能需要感知封装在srh中的某些信息,但是sf设备通常无法识别srh,导致无法得到srh中的业务信息,也就不能利用srh中的业务信息进行业务处理。而通过方式一,由sff解析srh,sff将srh包括的业务信息传递给了sf设备,使得sf设备能得到srh包括的业务信息。并且,sf设备无需解析srh。因此方式一既满足了sf设备根据srh中的业务信息进行业务处理的需求,并且srv6-unaware的sf设备也可以通过这种方式根据srh中的业务信息进行业务处理,因此扩展了应用范围。[0294]方式二、sff从第一srv6报文的srh获取业务信息,根据业务信息,查询映射关系信息,得到目标信息。[0295]在方式二中,目标信息是第一srv6报文的srh包括的业务信息映射得到的。具体地,sff预先配置映射关系信息,sff得到第一srv6报文的srh中的业务信息后,sff利用映射关系信息,将业务信息转换为目标信息,再将转换出的目标信息封装在第二srv6报文中。其中,映射关系信息保存有业务信息和目标信息之间的对应关系。可选地,业务信息和目标信息之间是一一对应的。可选地,业务信息包括sfc元数据或者vpnid中的至少一项。[0296]可选地,目标信息的格式与srh包括的业务信息的格式不同。例如,目标信息的格式是sf可识别的格式,srh包括的业务信息的格式是sf不可识别的格式。sff执行方式二,相当于将srh中的业务信息经过格式转换,得到目标信息。例如,业务信息是srv6vpnsid,srv6vpnsid的格式是128个比特的ipv6地址。目标信息的格式是数值。映射关系信息中不同的srv6vpnsid对应于不同数值。[0297]例如,映射关系信息如下表2所示。在表2中,10:1::1:0/128是对srv6vpnsid的举例说明,1是对10:1::1:0/128这个sid对应的目标信息的举例说明。20:1::1:0/128是对srv6vpnsid的举例说明,2是对20:1::1:0/128这个sid对应的目标信息的举例说明。30:1::1:0/128是对srv6vpnsid的举例说明,3是对30:1::1:0/128这个sid对应的目标信息的举例说明。[0298]表2[0299][0300]本段对方式二的效果进行介绍。sff通过从srh解析出业务信息,sff将srh中的业务信息映射为sf设备可识别的目标信息,将目标信息携带在第二srv6报文发送给sf设备,使得业务信息以sf设备能够理解的形式传递给了sf设备,sf设备可以根据目标信息进行业务处理,避免sf设备由于不识别srh中的业务信息而导致无法利用业务信息进行业务处理的情况,满足了sf设备根据srh中的业务信息进行业务处理的需求,并且方式二可以应用于srv6-unaware的sf设备,因此扩展了应用范围。[0301]例如,第一srv6报文的srh包括srv6sid,srv6sid指示了业务信息。sff解析第一srv6报文的srh,得到第一srv6报文的srh中的srv6sid。sff根据srv6sid,查询映射关系信息,得到srv6sid对应的目标信息。其中,srv6sid例如是vpnsid。通过上述方式,达到的效果包括:由于vpnsid通常能充当vpnid,但对于srv6-unaware的sf设备而言,由于sf设备不可识别srv6sid,无法直接将vpnsid传递给sf设备,导致难以满足sf设备利用vpnid进行流量隔离的需求。而通过由sff从srh解析出vpnsid,sff将vpnid这种业务信息从srv6sid的形式的转换为目标信息的形式,将目标信息传递给sf设备,使得sf设备能够根据目标信息,基于vpn实现流量隔离。[0302]应理解,sff在srv6报文中添加目标信息是可选地。在另一些实施例中,sff也可以在srv6报文中添加控制标识,而不添加目标信息,使得第二srv6报文不包括目标信息。[0303]应理解,sfc元数据和vpnid是对目标信息的举例说明。目标信息的具体格式和内容,可以根据应用场景和业务需要而定义,本技术对目标信息的具体格式和内容不作限定。[0304]应理解,上述方式一和方式二仅是对得到目标信息的方式举例说明,sff也可以通过其他方式得到目标信息,本实施例对目标信息的来源不做限定。[0305]如何在第二srv6报文携带控制标识和目标信息包括多种实现方式。以下对携带控制标识和目标信息的方式举例说明。[0306]对于srv6报文,可以使用如下三种机制携带可选的信息:[0307]机制一、通过逐跳选项报头(hop-by-hopoptionheader,hbh)携带由每一跳控制面处理的信息。[0308]本段对逐跳选项报头进行解释说明。逐跳选项报头是一种ipv6扩展头。逐跳选项报头可以由转发过程中途径的每个中间节点处理。在ipv6报文携带逐跳选项报头的情况下,逐跳选项报头的前一个报头的nextheader字段的值为0。可选地,逐跳选项报头是ipv6头之后的第一个ipv6扩展头,换句话说,逐跳选项报头的前一个报头为ipv6头,ipv6头的nextheader字段的值为0。请参考附图16,附图16是对逐跳选项报头的结构的举例说明。逐跳选项报头包括下一个头的索引(nextheader)字段、扩展头的长度(headerextendedlength,简称:hdrextlen)字段和至少一个选项。逐跳选项报头中nextheader字段的值用于指示逐跳选项报头之后的第一个报头的类型。逐跳选项报头中hdrextlen字段的值用于指示逐跳选项报头的长度。逐跳选项报头中的选项也称逐跳选项。逐跳选项通常编码为tlv的形式。一个逐跳选项包括选项类型字段、选项长度字段以及值字段。[0309]机制二、通过目的选项报头(destinationoptionheader)携带由routingheader中间节点和/或目标节点处理的信息。[0310]机制三、通过srh携带信息。srh本身包括一个或多个tlv,可以利用srh中的tlv携带哈希消息认证码(hash-basedmessageauthenticationcode,hmac)验证码、sfcmetadata等信息。[0311]在本技术的一些实施例中,使用上述机制一携带控制标识或目标信息中的至少一项。sff发送出去的第二srv6报文包括逐跳选项报头,逐跳选项报头包括控制标识或目标信息中的至少一项。例如,第二srv6报文包括ipv6标准头、包含控制标识和目标信息的逐跳选项报头、除srh和逐跳选项报头之外的其他ipv6扩展头以及载荷。其中,逐跳选项报头是第二srv6报文中的第一个ipv6扩展头。逐跳选项报头的位置在ipv6标准头之后且在srh和其他ipv6扩展头之前。此外,除srh和逐跳选项报头之外的其他ipv6扩展头是第二srv6报文的可选部分。在另一些实施例中,第二srv6报文包括ipv6标准头、包含控制标识和目标信息的逐跳选项报头以及载荷。[0312]如何利用逐跳选项报头携带控制标识或目标信息包括多种方式。例如,通过在逐跳选项报头中扩展出新的tlv来携带控制标识或目标信息。其中,tlv是一种编码格式,一个tlv包括类型(type)字段、长度(length)字段和值(value)字段,类型字段用于指示tlv的含义,值字段用于指示tlv的内容,长度字段用于指示tlv的长度。具体地,逐跳选项报头包括tlv,tlv用于携带控制标识或目标信息中的至少一项。[0313]携带控制标识和/或目标信息的tlv的格式包括多种情况。可选地,控制标识和/或目标信息位于tlv的值字段中,tlv的类型字段表示tlv中携带了携带控制标识和/或目标信息,tlv的类型字段的取值例如是新增的type值。例如,携带控制标识和/或目标信息的tlv是逐跳选项头中的一个选项,选项包括选项类型(optiontype,opttype)字段、选项长度(optlen)字段和控制标识,选项类型字段表示选项中携带了控制标识和/或目标信息,选项长度字段表示选项的长度,opttype字段的取值是新增的opttype值。其中,该新增的opttype值可以根据具体情况选择标准化或非标准化方式。对于非标准化方式,opttype值可以使用互联网数字分配机构(theinternetassignednumbersauthority,iana)预留的多个实验选项值(experimentaloptionvalue)。[0314]携带控制标识和/或目标信息的tlv的类型包括多种情况。可选地,携带控制标识和/或目标信息的tlv是新的顶级(top)tlv,该携带控制标识和/或目标信息的tlv的类型(type)字段的值表示未使用的toptlv的类型。可选地,该携带控制标识和/或目标信息的tlv是toptlv的新的子tlv,该携带控制标识和/或目标信息的tlv的type字段的值表示未使用的子tlv的类型。可选地,该携带控制标识和/或目标信息的tlv是toptlv的新的子子tlv(sub-sub-tlv),该携带控制标识和/或目标信息的tlv的type是未使用的sub-sub-tlv的类型。本实施例对携带控制标识和/或目标信息的tlv是toptlv、sub-tlv还是sub-sub-tlv不做限定。[0315]可选地,控制标识在tlv的值字段中占用1个比特。例如,控制标识在tlv的值字段中占用比特位a,若比特位a置位,指示sf设备偏移过第二srv6报文中控制标识之后的ipv6扩展头,若比特位a未置位,指示sf设备不偏移过第二srv6报文中控制标识之后的ipv6扩展头。[0316]可选地,sff使用一个tlv携带目标信息和控制标识。在这种方式下,目标信息和控制标识位于第二srv6报文中的同一个tlv。例如,第二srv6报文的逐跳选项报头包括第一tlv,第一tlv的值字段中包括目标信息和控制标识,第一tlv的类型字段表示第一tlv中携带了目标信息和控制标识。目标信息和控制标识在第一tlv的值字段占据不同的比特位。[0317]可选地,sff使用两个tlv分别携带目标信息和控制标识。在这种方式下,目标信息和控制标识分别位于第二srv6报文中的不同tlv。例如,第二srv6报文的逐跳选项报头包括第一tlv和第二tlv,第一tlv的值字段中包括控制标识,第一tlv的类型字段标识第一tlv携带了控制标识。第二tlv的值字段中包括目标信息,第二tlv的类型字段标识第二tlv携带了目标信息。可选地,第一tlv的类型字段的值和第二tlv的类型字段的值不同,换句话说,通过不同的type区分第一tlv和第二tlv。或者,第一tlv和第二tlv均包括flag字段,第一tlv的flag字段的值和第二tlv的flag字段的值不同,换句话说,通过不同的flag区分第一tlv和第二tlv。[0318]例如,参见附图17,附图17是对携带控制标识和目标信息的逐跳选项报头的举例说明。控制标识和目标信息均位于选项类型字段和选项长度字段之后。其中,附图17中的vpnid是对目标信息的举例说明。附图17中字段括号后面的数字表示字段的字节长度。例如,nextheader字段(1)表示nextheader字段占用1个字节。其中,nextheader字段和hdrextlen字段是rfc8200定义的ipv6逐跳选项报头的公共字段。opttype字段和optlen字段是rfc8200所定义的选项的公共字段。附图17所示的opttype字段的含义例如是逐跳选项中包括控制标识和vpnid。[0319]可选地,利用逐跳选项报头携带控制标识的方式包括以下方式a至方式b。[0320]方式a、sff的上游设备在第一srv6报文中封装了逐跳选项报头。可选地,在这种情况下,sff无需自己封装逐跳选项报头,而是在上游设备封装的逐跳选项报头基础上,添加选项(option,也称hbhoption),在添加的选项中携带控制标识。[0321]在方式a中,第一srv6报文包括逐跳选项报头,第二srv6报文也包括逐跳选项报头。第二srv6报文包括的逐跳选项报头与第一srv6报文包括的逐跳选项报头之间的关系包括:第二srv6报文包括的逐跳选项报头中的选项多于第一srv6报文包括的逐跳选项报头中的选项。第二srv6报文相对于第一srv6报文新增的选项包括控制标识。[0322]例如,sff的上游设备在第一srv6报文中封装了逐跳选项报头,逐跳选项报头包括第一tlv。sff在第一srv6报文中逐跳选项报头中,添加第二tlv,第二tlv包括控制标识。第二srv6报文包括第一tlv和第二tlv。[0323]方式b、sff接收到的第一srv6报文不包括逐跳选项报头,在这种情况下,sff生成逐跳选项报头,sff在第一srv6报文的基础上添加逐跳选项报头。[0324]以下通过(1)至(4)对三种机制进行分析,并阐述选用机制一的效果。[0325](1)对于机制二而言,由于按照标准规范,目的选项报头是用来将信息传递给中间节点和/或目标节点的,而sf设备通常并不是中间节点或目标节点,因此选用机制一会不符合标准规范。对于机制三而言,由于sf设备通常不支持识别srh,因此可直接排除掉通过srh携带控制标识这种方式。[0326](2)对于机制一而言,在使用逐跳选项报头携带控制标识时,由于逐跳选项报头始终会作为ipv6报文中的第一个ipv6扩展头,因而逐跳选项报头容易被sf设备解析,使得sf设备能够根据逐跳选项报头,识别出控制标识和目标信息,从而执行相关的处理。由此可见,使用逐跳选项报头来向sf设备传输控制标识在三种机制中最为合适。[0327](3)ipv6的optiontype的最高2个比特定义了中间节点对于不识别选项的处理方式,这就使sff和sf设备不必位于一跳ip链路(on-link)部署。按照标准规范,选项类型标识符在内部进行编码,选项类型标识符通过最高2个比特位指示处理ipv6报文的节点在无法识别选项类型时执行的操作。具体地,如果选项类型标识符的最高2个比特位的取值是00,则节点跳过此选项并继续处理报文头。如果选项类型标识符的最高2个比特位的取值是01,则节点丢弃数据包。如果选项类型标识符的最高2个比特位的取值是10,则节点丢弃数据包。如果选项类型标识符的最高2个比特位的取值是11,则节点丢弃数据包,并当数据包的目的地址不是多播地址时,向数据包的源地址发送包含internet控制报文协议(internetcontrolmessageprotocol,icmp)控制报文协议参数问题的消息。[0328](4)可保证后向兼容性。具体地,本实施例使用ipv6的选项(ipv6option)来携带控制标识。可以使用rfc4727定义的实验选项类型(experimentaloptiontype)空间进行实现,从而可以确保标准的兼容性。[0329]s204、sff向sf设备发送第二srv6报文。[0330]s205、sf设备从sff接收第二srv6报文。[0331]s206、sf设备获取第二srv6报文包括的控制标识,sf设备根据控制标识,偏移过第二srv6报文中控制标识之后的ipv6扩展头,进行业务处理。[0332]虽然sff与sf设备(sf设备)之间转发的是srv6形式的报文,但是sff与sf设备对被转发的报文存在不同的理解。从sff的角度而言,sff会将转发的报文识别为srv6报文。而从sf设备的角度而言,对于从sff接收到的报文,sf设备会将报文识别为ipv6报文,而不识别为srv6报文。也就是说,sf设备接收到第二srv6报文后,sf设备会将第二srv6报文作为包括ipv6扩展头的ipv6报文。sf设备根据控制标识,识别出第二srv6报文是待偏移ipv6扩展头的报文后,sf设备会将第二srv6报文中控制标识之后的ipv6扩展头偏移过去。即,sf设备会跳过控制标识之后的ipv6扩展头,并不解析控制标识之后的ipv6扩展头,实现业务相关处理。由于第二srv6报文的ipv6扩展头包括srh,使得sf设备会将srh作为不识别的扩展头偏移掉,而不必解析srh中的内容。[0333]sf设备如何进行业务处理包括多种实现方式。可选地,sf设备根据第二srv6报文中的载荷进行业务处理。可选地,与插入模式对应,sf设备根据第二srv6报文中的ipv6标准头或者逐跳选项报头之后除srh之外的其他ipv6扩展头进行业务处理。[0334]例如,请参见附图15,如果是封装模式,sf设备进行业务处理包括处理载荷部分;如果是插入模式,sf设备进行业务处理包括处理载荷部分,可选地,sf设备进行业务处理还包括处理其他扩展头a和处理其他扩展头b。[0335]sf设备根据控制标识执行的偏移动作泛指偏移过与srv6相关的头部封装。sf设备执行的偏移动作至少包括偏移过srh,可选地,sf执行的偏移动作还包括偏移srh之外的其他ipv6扩展头。可选地,sf执行的偏移动作还包括偏移最外层的ipv6标准头。[0336]以下通过方式a和方式b,对sf设备如何根据控制标识执行偏移动作举例说明。其中,方式a与s203中的方式(1)对应,方式a未示出的细节请参考上述方式(1)。方式b与与s203中的方式(2)对应,方式b未示出的细节请参考上述方式(2)。[0337]方式a、与插入模式对应,在控制标识用于指示sf设备偏移过第二srv6报文中的srh的情况下,sf设备根据控制标识,偏移过第二srv6报文中的srh。在方式a中,sf设备根据控制标识,会偏移过srh这一个ipv6扩展头,解析并处理控制标识之后除srh之外的其他ipv6扩展头。[0338]方式b、与封装模式对应,在控制标识用于指示sf设备偏移过第二srv6报文中的srh以及srh之外的其他ipv6扩展头的情况下,sf设备根据控制标识,偏移过第二srv6报文中的srh以及srh之外的其他ipv6扩展头。在方式b中,sf设备根据控制标识,不仅会偏移过srh这一个ipv6扩展头,还会偏移控制标识之后除srh之外的其他ipv6扩展头。因此,包括控制标识的ipv6扩展头(如逐跳选项报头)之后的第一个ipv6扩展头至最后一个ipv6扩展头不会被sf设备处理。[0339]sf设备偏移过控制标识之后的ipv6扩展头例如通过ipv6扩展头中的hdrextlen字段实现。具体地,按照标准定义,ipv6routingheader包括hdrextlen字段。hdrextlen字段用于指明扩展头的长度。不处理routingheader的设备可以通过hdrextlen字段直接偏移掉整个routingheader的范围。而srh是ipv6routingheader的一个子类型,请参考图2,srh同样包括hdrextlen字段。srh包括的hdrextlen字段用于指示srh头的长度。因此,sf设备可以根据srh包括的hdrextlen字段,确定srh在srv6报文中的结束位置,sf设备从srh之后解析报文,从而直接偏移掉整个srh。其中,hdrextlen指示的长度通常不包括ipv6扩展头的前8字节,也即是,hdrextlen指示的长度是ipv6扩展头从第9个字节至最后一个字节的长度。hdrextlen可以采用8字节为单位。[0340]sf设备如何识别出第二srv6报文是要偏移ipv6扩展头的报文的实现方式有多种。方法200以利用控制标识进行识别举例说明。例如,sf设备接收到第二srv6报文后,sf设备判断第二srv6报文是否包括控制标识,若sf设备识别出第二srv6报文包含控制标识,则sf设备直接偏移过第二srv6报文中控制标识之后的ipv6扩展头。[0341]此外,在第二srv6报文还包括目标信息的情况下,sf设备会根据目标信息对载荷进行业务处理。其中,可以在sf设备上预先配置并保存目标信息的含义。[0342]需要说明的一点是,sf设备根据第二srv6报文执行业务处理的步骤是可选步骤。在另一些实施例中,sf设备不执行业务处理的步骤。[0343]s207、sf设备根据控制标识,向sff发送第三srv6报文。[0344]在控制标识还用于指示sf设备在向sff返回报文的过程中返回ipv6扩展头的情况下,sf设备根据控制标识的指示,在进行业务处理时,sf设备会始终保留被偏移的ipv6扩展头。在sf设备向sff返回第三srv6报文的过程中,sf设备会向sff返回被偏移的ipv6扩展头。[0345]其中,第三srv6报文是sf设备进行业务处理所得到的报文,第三srv6报文和第二srv6报文具有相同的srh。可选地,第三srv6报文的载荷是根据第二srv6报文的载荷进行业务处理所得到的。sf设备通过向sff发送第三srv6报文,从而将sff之前发给sf设备的srh(即第二srv6报文中的srh)原样返回给sff。以下通过情况i和情况ii,对sf设备返回被偏移的ipv6扩展头进行举例说明。[0346]可选地,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的逐跳选项报头。[0347]情况i、与插入模式对应,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的srh,sf设备根据控制标识,返回第二srv6报文中的srh。在情况i下,sf设备是否返回srh之外的其他ipv6扩展头是可选的。[0348]情况ii、与封装模式对应,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的srh以及srh之外的其他ipv6扩展头,sf设备根据控制标识,不仅会返回第二srv6报文中的srh,还会返回srh之外的其他被偏移的ipv6扩展头。例如,sf设备会返回第二srv6报文中逐跳选项报头之后的每个ipv6扩展头。可选的,sf设备会返回第二srv6报文中的ipv6标准头。[0349]例如,按照从头部至尾部的顺序,第二srv6报文中依次是ipv6标准头、包含控制标识的逐跳选项报头、其他扩展头a、srh、其他扩展头b和ipv4报文1,控制标识用于指示偏移过其他扩展头a、srh、其他扩展头b。sf设备根据控制标识,向sff返回了第三srv6报文,第三srv6报文中依次是ipv6标准头、其他扩展头a、srh、其他扩展头b和ipv4报文2。其中,ipv4报文1是对第二srv6报文的载荷的举例说明,ipv4报文2是对第三srv6报文的载荷的举例说明,ipv4报文2是sf设备对ipv4报文1进行业务处理后得到的。[0350]在sf设备对载荷进行业务处理时,sf设备会始终保留之前从sff接收到的srh。在完成业务处理后,sf设备向sff原样返回之前从sff接收到的srh。因此,sf设备向sff返回的srv6报文(第三srv6报文)包括的srh,与sf设备之前从sff接收到的srv6报文(第二srv6报文)包括的srh相同,即,第三srv6报文和第二srv6报文具有相同的srh。[0351]本段对第三srv6报文的逐跳选项报头和第二srv6报文的逐跳选项报头之间的关系进行举例说明。在控制标识通过逐跳选项报头携带的情况下,可选地,控制标识还用于指示sf设备在向sff返回报文的过程中返回第二srv6报文中的逐跳选项报头。sf设备保留之前从sff接收到的逐跳选项报头。在完成业务处理后,sf设备向sff原样返回之前从sff接收到的逐跳选项报头,使得第三srv6报文和第二srv6报文具有相同的逐跳选项报头。可选地,sf设备修改控制标识,而原样返回逐跳选项报头中除了控制标识之外的部分,使得第三srv6报文和第二srv6报文具有不同的控制标识。例如,sf设备根据需要,在控制标识中添加相关的信息,使得第三srv6报文的控制标识比第二srv6报文的控制标识内容更多。可选地,sf设备修改控制标识所在的选项,而原样返回逐跳选项报头中除了控制标识所在的选项之外的其他部分,使得第三srv6报文和第二srv6报文具有不同的选项,该不同的选项包括控制标识。可选地,sf设备原样返回控制标识所在的选项,而修改逐跳选项报头中除了控制标识所在的选项之外的其他部分,使得第三srv6报文和第二srv6报文具有相同的选项,该相同的选项包括控制标识。[0352]本段对第三srv6报文最外层的ipv6header和第二srv6报文最外层的ipv6header之间的关系进行举例说明。可选地,sf设备保留最外层的ipv6header。在完成业务处理后,sf设备向sff原样返回最外层的ipv6header,使得第三srv6报文和第二srv6报文具有相同的最外层的ipv6header。可选地,sf设备对最外层的ipv6header进行修改,使得第三srv6报文和第二srv6报文具有相同的最外层的ipv6header不同。例如,第二srv6报文最外层的ipv6header包括一些用于传递给sf设备的信息,这些信息是供sf设备进行业务处理的,sf设备在对这些信息业务处理后将这些信息删除,使得第三srv6报文的最外层的ipv6header比第二srv6报文最外层的ipv6header内容更少。或者,sf设备在进行业务处理过程中,通过在最外层的ipv6header中添加一些信息,以将这些信息通过最外层的ipv6header传递给sfc中的其他设备,使得第三srv6报文的最外层的ipv6header比第二srv6报文最外层的ipv6header内容更多。可选地,sf设备是否保留最外层的ipv6header取决于sff上配置的srv6报文的生成模式。例如,如果在sff上,将srv6报文的生成模式配置为封装模式,则将sf设备配置为原样返回最外层的ipv6header。如果sff上,将srv6报文的生成模式配置为插入模式,则将sf设备配置为可以原样返回最外层的ipv6header,也可以对最外层的ipv6header进行修改。[0353]s208、sff从sf设备接收第三srv6报文。[0354]s209、sff根据第三srv6报文的srh,对第三srv6报文进行转发处理。[0355]sff接收到sf设备返回的报文时,sff会基于更新后的activesid继续转发处理。其中,该更新后的activesid例如是段列表中end.pt.sid的下一个sid。与上述情况a对应,可选地,若sff采用先更新activesid再向sf设备发送报文的方式,sff在执行s203时,已经更新了activesid,使得第二srv6报文的最外层的ipv6header的目的地址是更新后的activesid,而sf设备保持最外层的ipv6header的目的地址不变,使得sf设备返回的第三srv6报文的最外层的ipv6header的目的地址是更新后的activesid。sff根据第三srv6报文的最外层的ipv6header的目的地址,查询本地sid表,根据该目的地址在本地sid表命中的sid进行转发处理。与上述情况b对应,可选地,若sff采用sf设备返回报文之后再更新activesid的方式,sff在执行s203时,尚未更新activesid,使得第二srv6报文的最外层的ipv6header的目的地址仍是end.pt.sid,则sff返回的第三srv6报文的最外层的ipv6header的目的地址是end.pt.sid,sff接收到第三srv6报文后,先更新第三srv6报文的activesid,再根据更新后的activesid转发处理。[0356]可选地,与sff封装控制标识的动作相对称,sff接收到sf设备(sf设备)返回的报文时,sff剥离第三srv6报文的控制标识,得到第四srv6报文,发送第四srv6报文,该第四srv6报文不包括控制标识。[0357]可选地,在控制标识通过逐跳选项报头携带的情况下,sff从sf返回的报文中剥离的部分与sff之前封装的部分相同。[0358]例如,如果第三srv6报文的逐跳选项报头是sff的上游设备封装的,sff没有添加逐跳选项报头,而是在逐跳选项报头中添加了携带控制标识的选项,则sff剥离添加了携带控制标识的选项,保留逐跳选项报头中携带控制标识的选项之外的其他选项,则第四srv6报文不包括携带控制标识的选项,第四srv6报文包括逐跳选项报头中的其他选项,使得上游设备之前封装的逐跳选项报头中的其他选项被传递给下一个节点。[0359]例如,第三srv6报文的逐跳选项报头中包括sff的上游网元添加的第一tlv,以及sff添加的第二tlv,第二tlv包括控制标识。则sff剥离第三srv6报文中的第二tlv,不剥离第一tlv,使得第四srv6报文包括逐跳选项报头,第四srv6报文中的逐跳选项报头包括第一tlv而不包括第二tlv。[0360]如果第三srv6报文的逐跳选项报头是sff封装的,则sff剥离逐跳选项报头,第四srv6报文不包括逐跳选项报头。例如,请参考图15,sff接收到sf设备发送的srv6报文包括srh、hbh以及ipv4报文,sff之后发送出去的srv6报文包括srh以及ipv4报文,两者相比少了hbh,hbh是被sff剥离的。[0361]本实施例提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,sff通过在srv6报文中携带控制标识,以便利用控制标识来标识要偏移ipv6扩展头的场景。sf设备接收到srv6报文后,根据控制标识,会直接偏移过srv6报文的ipv6扩展头,从而跳过srh对之后的载荷进行业务处理。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。[0362]上述方法200关于利用控制标识识别出报文是要偏移ipv6扩展头的报文。在本技术的另一些实施例中,也可以采用控制标识之外的其他方式识别出报文是要偏移ipv6扩展头的报文。例如,sf设备利用本地配置识别出报文是否是待偏移ipv6扩展头的报文,以下通过方法300和方法400对如何利用本地配置识别出报文是待偏移ipv6扩展头的报文进行举例说明。[0363]在一些实施例中,sf设备利用指定的输入接口识别出报文是要偏移ipv6扩展头的报文,以下通过方法300进行举例说明。应理解,方法300与方法200同理的步骤还请参见方法200,在方法300中不做赘述。[0364]参见图18,图18为本技术实施例提供的一种srv6业务链中转发报文的方法300的流程图。示例性地,方法300包括s300至s309。[0365]s300、在sff上配置end.pt.sid。[0366]在s301中,end.pt.sid用于指示sff以不剥离srh的方式向sf设备转发接收到的srv6报文。可选地,end.pt.sid还用于指示sff通过指定的接口(即下文的第二接口)转发接收到的srv6报文。[0367]s301、将sf设备被配置为对从第一接口接收的报文偏移过ipv6扩展头并对ipv6扩展头之后的载荷进行业务处理。[0368]第一接口为sf设备的一个或多个输入接口。[0369]s302、sff接收第一srv6报文,第一srv6报文的目的地址包括end.pt.sid。[0370]s303、sff根据end.pt.sid以及第一srv6报文,生成第二srv6报文,第二srv6报文的ipv6扩展头包括srh,第二srv6报文和第一srv6报文具有相同的载荷。[0371]s304、sff将第二srv6报文发送至sf设备的第一接口。[0372]s305、sf设备通过第一接口,从sff接收第二srv6报文。[0373]可选地,sff通过第二接口发送第二srv6报文第二接口为sff的一个出接口。第二接口预先与end.pt.sid建立了绑定关系。[0374]与方法200相区别,方法300中,sf设备不是利用控制标识识别出报文是否是待偏移ipv6扩展头的报文,而是利用指定的接口识别出报文是否是待偏移ipv6扩展头的报文,对于从该指定接口接收的报文,sf设备会判定为要待偏移ipv6扩展头的报文。例如,预先将sff的第二接口配置为用于与sf设备相连的专用接口,并将sff配置为当接收到activesid为end.pt的srv6报文时,以不剥离srh的方式从第二接口转发srv6报文。并且,预先将sf设备的第一接口配置为与sff相连的专用接口,并将sf设备被配置为对从第一接口接收的报文偏移过ipv6扩展头并对ipv6扩展头之后的载荷进行业务处理。那么,sff接收到第一srv6报文后,sff根据sff上的配置信息,不剥离第一srv6报文的srh,从第二接口向sf设备发送第二srv6报文,使得第二srv6报文到达sf设备的第一接口。sf设备接收到第二srv6报文后,sf设备确定第二srv6报文是从第一接口接收到的,sf设备根据sf设备上的配置信息,偏移过第二srv6报文的ipv6扩展头,并对第二srv6报文的ipv6扩展头之后的载荷进行业务处理。[0375]可选地,第二srv6报文还包括目标信息,目标信息的描述还请参见方法200中的相关介绍。[0376]s306、sf设备根据本地配置,偏移过第二srv6报文的ipv6扩展头,并对第二srv6报文的ipv6扩展头之后的载荷进行业务处理,得到第三srv6报文,第三srv6报文和第二srv6报文具有相同的srh。[0377]s307、sf设备向sff发送第三srv6报文。[0378]s308、sff从sf设备接收第三srv6报文,第三srv6报文和第二srv6报文具有相同的srh。[0379]s309、sff根据第三srv6报文的srh,对第三srv6报文进行转发处理。[0380]本实施例提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,利用sf设备上指定的输入接口标识要偏移ipv6扩展头的场景。sff会将srv6报文发送至sf设备上指定的输入接口,sf设备从指定的入接口接收到srv6报文后,会直接偏移过srv6报文的ipv6扩展头,从而跳过srh对之后的载荷进行业务处理。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。[0381]在一些实施例中,sf设备利用访问控制列表(accesscontrollist,acl)识别出报文是要偏移ipv6扩展头的报文,以下通过方法400进行举例说明。应理解,方法400与方法200同理的步骤还请参见方法200,在方法400中不做赘述。[0382]参见附图19,附图19为本技术实施例提供的一种srv6业务链中转发报文的方法400的流程图。示例性地,方法400包括s400至s410。[0383]s400、在sff上配置end.pt.sid。[0384]在s401中,end.pt.sid用于指示sff以不剥离srh的方式向sf设备转发接收到的srv6报文。[0385]s401、将sf设备配置为对满足acl中的匹配条件的报文偏移过ipv6扩展头并对ipv6扩展头之后的载荷进行业务处理。[0386]acl包括匹配条件和动作。当报文满足匹配条件时,sf设备会执行匹配条件对应的动作,在方法300中,匹配条件对应的动作即为偏移过ipv6扩展头并对ipv6扩展头之后的载荷进行业务处理。[0387]匹配条件包括报文的源ip地址与acl中的ip地址匹配、报文的目的ip地址与acl中的ip地址匹配、报文的源端口号与acl中的端口号匹配、报文的目的端口号与acl中的端口号匹配中的至少一项。其中,端口号例如是tcp端口号或udp端口号。[0388]s402、sff接收第一srv6报文,第一srv6报文的目的地址包括end.pt.sid。[0389]s403、sff根据end.pt.sid以及第一srv6报文,生成第二srv6报文,第二srv6报文的ipv6扩展头包括srh,第二srv6报文和第一srv6报文具有相同的载荷。[0390]s404、sff将第二srv6报文发送至sf设备。[0391]s405、sf设备从sff接收第二srv6报文。[0392]s406、sf设备确定第二srv6报文满足acl中的匹配条件。[0393]sf设备会判断第二srv6报文是否满足acl中的匹配条件,如果第二srv6报文满足acl中的匹配条件,则sf设备执行以下s406。[0394]s407、sf设备偏移过第二srv6报文的ipv6扩展头,并对第二srv6报文的ipv6扩展头之后的载荷进行业务处理,得到第三srv6报文,第三srv6报文和第二srv6报文具有相同的srh。[0395]可选地,第二srv6报文还包括目标信息,目标信息的描述还请参见方法200中的相关介绍。[0396]s408、sf设备向sff发送第三srv6报文。[0397]s409、sff从sf设备接收第三srv6报文,第三srv6报文和第二srv6报文具有相同的srh。[0398]s410、sff根据第三srv6报文的srh,对第三srv6报文进行转发处理。[0399]本实施例提供了一种实现srv6业务链的方法,通过提供了end.pt.sid,使用end.pt.sid来标识sff以不剥离srh的方式向sf设备转发srv6报文。sff根据end.pt.sid,不会剥离srv6报文的srh,而是将srv6报文发送给sf设备,并且,利用sf设备上配置的acl标识要偏移ipv6扩展头的场景。sf设备接收到srv6报文后,如果判定srv6报文满足acl中的匹配条件,则直接偏移过srv6报文的ipv6扩展头,从而跳过srh进行业务处理。通过该方法,sff无需支持srv6sfc代理功能,即,在转发报文的过程中,sff无需执行剥离srh和恢复srh的步骤,因此极大的简化了sff在转发面的实现;并且,sff不再需要生成和维护cache,也能真正实现转发面stateless。对于sf设备而言,sf设备无需实现srv6功能以及end.ansid功能,即可实现srv6sfc功能。[0400]应理解,方法200、方法300和方法400中sf设备向sff返回第三srv6报文是可选的步骤。在另一些实施例中,sf设备从sff接收到第二srv6报文后,并不向sff返回第三srv6报文。例如,sf设备是防火墙一类的网络安全设备,sf设备执行的业务处理动作是丢包,sf设备在确定第二srv6报文满足丢包条件的情况下,丢弃第二srv6报文。[0401]以上介绍了本技术实施例的方法200、方法300和方法400,以下介绍本技术实施例的sff和sf设备,应理解,以下介绍的sff具有上述方法200、方法300和方法400中sff的任意功能。以下介绍的sf设备具有上述方法200、方法300和方法400中sf设备的任意功能。[0402]附图20是本技术实施例提供的一种sff的结构示意图,如附图20所示,sff500包括:接收模块501,用于执行s202、s302或s402;生成模块502,用于执行s203、s303或s404;发送模块503,用于执行s204、s304或s404。[0403]应理解,sff500对应于上述方法实施例中的sff,sff500中的各模块和上述其他操作和/或功能分别为了实现方法200、方法300和方法400中的sff所实施的各种步骤和方法,具体细节可参见上述方法200、方法300和方法400,为了简洁,在此不再赘述。[0404]应理解,sff500在srv6业务链中转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将sff500的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的sff500与上述方法200、方法300和方法400属于同一构思,其具体实现过程详见方法200、方法300和方法400,这里不再赘述。[0405]附图21是本技术实施例提供的一种sf设备的结构示意图,如附图21所示,sf设备600包括:接收模块601,用于执行s205、s305或s405;处理模块602,用于执行s206、s306、s406或s407。[0406]可选地,sf设备600还包括发送模块,发送模块用于执行s207、s307或s408;[0407]应理解,sf设备600对应于上述方法实施例中的sf设备,sf设备600中的各模块和上述其他操作和/或功能分别为了实现方法200、方法300和方法400中的sf设备所实施的各种步骤和方法,具体细节可参见上述方法200、方法300和方法400,为了简洁,在此不再赘述。[0408]应理解,sf设备600在srv6业务链中转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将sf设备600的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的sf设备600与上述方法200、方法300和方法400属于同一构思,其具体实现过程详见方法200、方法300和方法400,这里不再赘述。[0409]与本技术提供的方法实施例以及虚拟装置实施例相对应,本技术实施例还提供了一种sff和一种sf设备,下面对sff和sf设备的硬件结构进行介绍。[0410]以下介绍的sff700和sf设备800分别对应于上述方法200、方法300和方法400中的sff和sf设备,sff700和sf设备800中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中sff和sf设备所实施的各种步骤和方法,关于sff700和sf设备800如何在srv6业务链中转发报文的详细流程,具体细节可参见上述方法200、方法300和方法400,为了简洁,在此不再赘述。其中,方法200、方法300和方法400的各步骤通过sff700和sf设备800处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。[0411]sff700对应于附图20示出的sff500,sff500中的每个功能模块采用sff700的软件实现。换句话说,sff500包括的功能模块为sff700的处理器读取存储器中存储的程序代码后生成的。[0412]sf设备800对应于附图21示出的sf设备600,sf设备600中的每个功能模块采用sf设备800的软件实现。换句话说,sf设备600包括的功能模块为sf设备800的处理器读取存储器中存储的程序代码后生成的。[0413]参见附图22,附图22示出了本技术一个示例性实施例提供的sff的结构示意图,该sff700例如是网络设备。sff700包括:主控板710和接口板730。[0414]主控板也称为主处理单元(mainprocessingunit,mpu)或路由处理卡(routeprocessorcard),主控板710用于对sff700中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板710包括:中央处理器711和存储器712。[0415]接口板730也称为线路接口单元卡(lineprocessingunit,lpu)、线卡(linecard)或业务板。接口板730用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packetoversonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexibleethernetclients,flexeclients)。接口板730包括:中央处理器731、网络处理器732、转发表项存储器734和物理接口(ph7sicalinterfacecard,pic)733。[0416]接口板730上的中央处理器731用于对接口板730进行控制管理并与主控板710上的中央处理器711进行通信。[0417]网络处理器732用于实现报文的转发处理。网络处理器732的形态可以是转发芯片。具体而言,网络处理器732用于基于转发表项存储器734保存的转发表转发接收到的报文,如果报文的目的地址为sff700的地址,则将该报文上送至cpu(如中央处理器711)处理;如果报文的目的地址不是sff700的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。[0418]物理接口733用于实现物理层的对接功能,原始的流量由此进入接口板730,以及处理后的报文从该物理接口733发出。物理接口733也称为子卡,可安装在接口板730上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器732处理。在一些实施例中,中央处理器也可执行网络处理器732的功能,比如基于通用cpu实现软件转发,从而物理接口733中不需要网络处理器732。[0419]可选地,sff700包括多个接口板,例如sff700还包括接口板740,接口板740包括:中央处理器741、网络处理器742、转发表项存储器744和物理接口743。[0420]可选地,sff700还包括交换网板720。交换网板720也可以称为交换网板单元(switchfabricunit,sfu)。在网络设备有多个接口板730的情况下,交换网板720用于完成各接口板之间的数据交换。例如,接口板730和接口板740之间可以通过交换网板720通信。[0421]主控板710和接口板730耦合。例如。主控板710、接口板730和接口板740,以及交换网板720之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板710和接口板730之间建立进程间通信协议(inter-processcommunication,ipc)通道,主控板710和接口板730之间通过ipc通道进行通信。[0422]在逻辑上,sff700包括控制面和转发面,控制面包括主控板710和中央处理器731,转发面包括执行转发的各个组件,比如转发表项存储器734、物理接口733和网络处理器732。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器732基于控制面下发的转发表对物理接口733收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器734中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。[0423]以在接口板730上执行方法200、方法300或方法400为例,物理接口733接收第一srv6报文,发送给网络处理器732,网络处理器732根据所述end.pt.sid以及所述第一srv6报文,生成第二srv6报文,根据出接口等信息,在完成链路层封装后,将第二报文从物理接口733发送出去,使得第二报文传输至sf设备。在接口板740上执行方法200、方法300或方法400的流程与此同理。[0424]应理解,sff500中的接收模块501,发送模块503相当于sff700中的物理接口733;sff500中的生成模块502可以相当于网络处理器732或中央处理器711。[0425]应理解,本技术实施例中接口板740上的操作与接口板730的操作一致,为了简洁,不再赘述。应理解,本实施例的sff700可对应于上述各个方法实施例中的sff,该sff700中的主控板710、接口板730和/或740可以实现上述各个方法实施例中的sff所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。[0426]值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。[0427]参见附图23,附图23示出了本技术一个示例性实施例提供的sf设备800的结构示意图。例如,该sf设备800可以是计算设备,例如是主机、服务器或个人计算机等。该sf设备800可以由一般性的总线体系结构来实现。[0428]sf设备800可以是方法实施例全部或部分描述的内容中涉及的任一设备,比如,8888等。sf设备800包括至少一个处理器801、通信总线802、存储器803以及至少一个物理接口804。[0429]处理器801可以是一个通用中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocesser,np)、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。[0430]通信总线802用于在上述组件之间传送信息。通信总线802可以分为地址总线、数据总线、控制总线等。为便于表示,附图23中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0431]存储器803可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器803可以是独立存在,并通过通信总线802与处理器801相连接。存储器803也可以和处理器801集成在一起。[0432]物理接口804使用任何收发器一类的装置,用于与其它设备或通信网络通信。物理接口804包括有线物理接口,还可以包括无线物理接口。其中,有线物理接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线物理接口可以为无线局域网(wirelesslocalareanetworks,wlan)接口,蜂窝网络物理接口或其组合等。[0433]在具体实现中,作为一种实施例,处理器801可以包括一个或多个cpu,如附图23中所示的cpu0和cpu1。[0434]在具体实现中,作为一种实施例,sf设备800可以包括多个处理器,如附图23中所示的处理器801和处理器805。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。[0435]在具体实现中,作为一种实施例,sf设备800还可以包括输出设备806和输入设备807。输出设备806和处理器801通信,可以以多种方式来显示信息。例如,输出设备806可以是液晶显示器(liquidcrystaldisplay,lcd)、发光二级管(lightemittingdiode,led)显示设备、阴极射线管(cathoderaytube,crt)显示设备或投影仪(projector)等。输入设备807和处理器801通信,可以以多种方式接收用户的输入。例如,输入设备807可以是鼠标、键盘、触摸屏设备或传感设备等。[0436]在一些实施例中,存储器803用于存储执行本技术方案的程序代码810,处理器801可以执行存储器803中存储的程序代码810。也即是,sf设备800可以通过处理器801以及存储器803中的程序代码810,来实现方法实施例提供的方法200、方法300或方法400。[0437]本技术实施例的sf设备800可对应于上述各个方法实施例中的sf设备,并且,该sf设备800中的处理器801、物理接口804等可以实现上述各个方法实施例中的sf设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。[0438]应理解,sf设备600中的接收模块601、发送模块相当于sf设备800中的物理接口804;sf设备600中的处理模块602可以相当于sf设备800中的处理器801。[0439]参见附图24,本技术实施例提供了一种网络系统900,所述系统900包括:sff901和sf设备902。可选的,sff901为sff500或sff700,sf设备902为sf设备600或sf设备800。[0440]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0441]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。[0442]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。[0443]该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术实施例方案的目的。[0444]另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0445]该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0446]本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一srv6报文可以被称为第二srv6报文,并且类似地,第二srv6报文可以被称为第一srv6报文。第一srv6报文和第二srv6报文都可以是srv6报文,并且在某些情况下,可以是单独且不同的srv6报文。[0447]本技术中术语“至少一个”的含义是指一个或多个。[0448]还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。[0449]以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。[0450]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideodisc,dvd)、或者半导体介质(例如固态硬盘)等。[0451]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0452]以上描述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献