一种报文转发方法及装置与流程

文档序号:16672038发布日期:2019-01-18 23:38阅读:141来源:国知局
一种报文转发方法及装置与流程
本申请涉及通信
技术领域
,特别是涉及一种报文转发方法及装置。
背景技术
:sr(segmentrouting,段路由)采用源路径选择机制,预先在源路由设备封装要经过路由设备的sid(segmentidentifier,段标识),当报文经过路由设备时,该路由设备根据报文的sid对报文进行转发。mplssr(segmentroutingwithmulti-protocollabelswitching,多协议标签交换段路由)是指在mpls网络中使用sr时,根据sid确定标签,基于标签对报文进行转发。具体的,在mpls网络中使用sr转发报文的流程包括:控制器为各个路由设备分配sid。各个路由设备分别获取到自身的sid后,各个路由设备之间相互通信,获取到其他路由设备的sid。对于每个路由设备,该路由设备根据各个路由设备的sid,建立针对各个路由设备的srlsp(srlabelswitchedpaths,段路由标签交换路径)表项。其中,一个路由设备中针对其他路由设备的srlsp表项包括:该路由设备发送至其他路由设备的报文的入标签和出标签的对应关系。当路由设备接收到报文后,将报文中的标签作为入标签,在srlsp表项中查找该入标签对应的出标签,将该报文的标签转换为查找到的出标签,并转发。当一路由设备的sid发生变化时,控制器向该路由设备下发变化后的sid。另外,该路由设备将变化后的sid发送给其他路由设备。该路由设备和其他路由设备停止使用针对该路由设备的srlsp表项,并根据变化后的sid重新建立针对该路由设备的srlsp表项。在重新建立srlsp表项后,该路由设备和其他路由设备可正常转发针对该路由设备的报文。但重新建立srlsp表项的这段时间内,由于没有针对该路由设备的srlsp表项,无法正常转发报文,这将导致报文的流失。技术实现要素:本申请实施例的目的在于提供一种报文转发方法及装置,以减少路由设备的sid发生变化时报文的丢失。具体技术方案如下:在第一方面,本申请实施例提供了一种报文转发方法,应用于第一路由设备,所述第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据所述第一sid计算得到的针对所述第一路由设备的第一srlsp表项;所述方法包括:接收控制器发送的为所述第一路由设备重新分配的第二sid;根据所述第一sid和所述第二sid,重新计算针对所述第一路由设备的第二srlsp表项,并利用所述第一srlsp表项转发报文;在得到所述第二srlsp表项之后,停止利用所述第一srlsp表项转发报文,并利用所述第二srlsp表项转发报文。在第二方面,本申请实施例提供了一种报文转发方法,应用于控制器,所述控制器与第一路由设备连接,所述第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据所述第一sid计算得到的第一srlsp表项,所述方法包括:为第一路由设备重新分配第二sid;将所述第二sid发送给所述第一路由设备,以使所述第一路由设备根据所述第一sid和所述第二sid,重新计算针对所述第一路由设备的第二srlsp表项,并利用所述第一srlsp表项转发报文;在得到所述第二srlsp表项之后,停止利用所述第一srlsp表项转发报文,并利用所述第二srlsp表项转发报文。在第三方面,本申请实施例提供了一种报文转发装置,应用于第一路由设备,所述第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据所述第一sid计算得到的针对所述第一路由设备的第一srlsp表项;所述装置包括:接收单元,用于接收控制器发送的为所述第一路由设备重新分配的第二sid;第一处理单元,用于根据所述第一sid和所述第二sid,重新计算针对所述第一路由设备的第二srlsp表项,并利用所述第一srlsp表项转发报文;第二处理单元,用于在得到所述第二srlsp表项之后,停止利用所述第一srlsp表项转发报文,并利用所述第二srlsp表项转发报文。在第四方面,本申请实施例提供了一种报文转发装置,应用于控制器,所述控制器与第一路由设备连接,所述第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据所述第一sid计算得到的第一srlsp表项,所述装置包括:分配单元,用于为第一路由设备重新分配第二sid;发送单元,用于将所述第二sid发送给所述第一路由设备,以使所述第一路由设备根据所述第一sid和所述第二sid,重新计算针对所述第一路由设备的第二srlsp表项,并利用所述第一srlsp表项转发报文;在得到所述第二srlsp表项之后,停止利用所述第一srlsp表项转发报文,并利用所述第二srlsp表项转发报文。在第五方面,本申请实施例提供了一种路由设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于第一路由设备的报文转发方法步骤。在第六方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一应用于第一路由设备的报文转发方法步骤。在第七方面,本申请实施例提供了一种控制器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一应用于控制器的报文转发方法步骤。在第八方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述任一应用于控制器的报文转发方法步骤。本申请实施例提供的一种报文转发方法及装置,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据变化前的第一sid和变化后的第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备的sid发生变化时报文的丢失。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为一种mpls网络的示意图;图2为本申请实施例提供的报文转发方法的第一种流程示意图;图3为本申请实施例提供的报文转发方法的第二种流程示意图;图4为本申请实施例提供的报文转发装置的第一种结构示意图;图5为本申请实施例提供的报文转发装置的第二种结构示意图;图6为本申请实施例提供的路由设备的一种结构示意图;图7为本申请实施例提供的控制器的一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。如图1所示的mpls网络,包括路由设备a、b、c和d,以及控制器x。控制器x与路由设备a、b、c和d连接。其中,路由设备a的地址为1.1.1.1,路由设备b的地址为2.2.2.2,路由设备c的地址为3.3.3.3,路由设备d的地址为4.4.4.4。以图1所示mpls网络为例,使用sr转发报文的流程如下。控制器x为路由设备a-d分配sid,如表1所示。表1路由设备srgb(srglobalblock,前缀sid索引a16000~1699910b17000~1799920c18000~1899930d19000~1999940表1中,前缀sid索引可简称为sid。路由设备a-d分别获取到自身的sid后,路由设备a-d之间相互通信,获取到其他路由设备的sid和srgb。对于每个路由设备,该路由设备根据各个路由设备的sid和srgb,建立针对各个路由设备的srlsp表项。以图1所示网络中的路由设备a为例,路由设备a中建立针对各个路由设备的srlsp表项如表2所示。表2表2中,每一行为一条srlsp表项,fec为1.1.1.1的srlsp表项为针对路由设备a的srlsp表项,fec为2.2.2.2的srlsp表项为针对路由设备b的srlsp表项,fec为3.3.3.3的srlsp表项为针对路由设备c的srlsp表项,fec为4.4.4.4的srlsp表项为针对路由设备d的srlsp表项。针对直连的srlsp表项中出标签设置为预设标签。如表2中,路由设备b与路由设备a的直连设备,路由设备a中针对路由设备b的srlsp表项的出标签为3。当路由设备a接收到报文1后,若报文1的目的地址为3.3.3.3,报文1的标签为16030,在表2所示的srlsp表项中查找到fec为3.3.3.3的针对路由设备c的srlsp表项。针对路由设备c的srlsp表项中入标签为16030。此时,路由设备a获取到针对路由设备c的srlsp表项中的出标签17030,将报文1的标签转换为17030,通过接口ge1/0/1转发标签转换后的报文1。当路由设备a的sid发生变化时,控制器向路由设备a下发变化后的sid。另外,路由设备a将变化后的sid发送给路由设备b-d。路由设备a-d均停止使用针对路由设备a的srlsp表项,并根据变化后的sid重新建立针对路由设备a的srlsp表项。例如,路由设备a的sid由10变为了50,则路由设备a重新计算得到针对路由设备a的srlsp表项,如表3所示。表3fecinlabel/outlabel接口1.1.1.116050/--在重新建立srlsp表后,路由设备a-d可正常转发针对路由设备a的报文。针对路由设备a的报文即为目的地址为1.1.1.1的报文。但重新建立srlsp表项的这段时间内,由于路由设备a-d没有针对路由设备a的srlsp表项可用,无法正常转发针对路由设备a的报文,这将导致报文的流失。为了减少路由设备sid发生变化时报文的丢失,本申请实施例提供了一种报文转发方法,该方法中,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备sid的发生变化时报文的丢失。下面通过具体实施例,对本申请进行说明。参考图2,图2为本申请实施例提供的报文转发方法的第一种流程示意图。该方法应用于任一路由设备。为便于理解,这里以第一路由设备为例进行说明。第一路由设备的sid为第一sid,且第一路由设备中存储有根据第一sid计算得到的针对第一路由设备的第一srlsp表项。该方法包括如下步骤。步骤201,接收控制器发送的为第一路由设备重新分配的第二sid。本申请实施例中,控制器与各个路由设备连接。当第一路由设备的sid发生变化时,将变化后的第二sid下发给第一路由设备。步骤202,根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文。第一路由设备接收到第二sid后,可确定本地存储有根据第一sid计算得到的第一srlsp表项,进而确定第一sid为变化前的sid,则保留第一srlsp表项,以便于利用第一srlsp表项转发报文。另外,第一路由设备根据第二sid,重新计算针对第一路由设备的第二srlsp表项。一个实施例中,第一路由设备的srlsp表项中增加针对变化后sid的字段,以便于将计算得到的第二srlsp表项填充至该字段,且不影响第一路由设备利用第一srlsp表项转发报文。以图1所示网络中的路由设备a为例,增加针对变化后sid的字段的srlsp表项,如表4所示。表4fecinlabel/outlabel接口inlabel/outlabel接口1.1.1.116010/--2.2.2.216020/3ge1/0/13.3.3.316030/17030ge1/0/14.4.4.416040/17040ge1/0/1步骤203,在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。第一路由设备在得到第二srlsp表项之后,就可以停止利用第一srlsp表项转发针对第一路由设备的报文,并利用第二srlsp表项转发针对第一路由设备的报文。这实现报文转发的无缝切换,减少了报文的丢失。一个实施例中,第一路由设备的srlsp表项中增加了针对变化后sid的字段。第一路由设备在计算得到的第二srlsp表项后,将第二srlsp表项填充至该字段。仍以图1所示网络中的路由设备a为例,若路由设备a的sid由10变为50,路由设备a重新计算得到针对路由设备a的srlsp表项后,填充至表4所示的增加的针对变化后sid的字段,如表5所示。表5fecinlabel/outlabel接口inlabel/outlabel接口1.1.1.116010/--16050/--2.2.2.216020/3ge1/0/13.3.3.316030/17030ge1/0/14.4.4.416040/17040ge1/0/1在针对变化后sid的字段填充了重新计算得到的srlsp表项后,路由设备a开始使用inlabel/outlabel为“16050/-”、接口为“-”的表项转发报文,并停止使用inlabel/outlabel为“16010/-”、接口为“-”的表项的转发报文。在本申请的一个实施例中,第一路由设备获取到第一sid和第二sid后,向控制器连接的其他路由设备发送第一sid和第二sid。其他路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第三srlsp表项,并利用第四srlsp表项转发报文,第四srlsp表项为其他路由设备根据第一sid计算得到的针对第一路由设备的srlsp表项。其他路由设备在计算得到第三srlsp表项后,停止利用第四srlsp表项转发报文,并利用第三srlsp表项转发报文。此时,控制器连接的各个路由设备均可以正常转发针对第一路由设备的报文,进一步减少了网络中报文的丢失。以图1所示网络中的路由设备b为例进行说明。路由设备b中的srlsp表项如表6所示。表6fecinlabel/outlabel接口inlabel/outlabel接口1.1.1.117010/3ge1/0/12.2.2.217020/--3.3.3.317030/3ge1/0/24.4.4.417040/18040ge1/0/2若路由设备a的sid由10变为50,路由设备a将变化前的sid10和变化后的sid50均发送给路由设备b。路由设备b重新计算得到针对路由设备a的srlsp表项后,填充至表6所示的增加的针对变化后sid的字段,如表7所示。表7fecinlabel/outlabel接口inlabel/outlabel接口1.1.1.117010/3ge1/0/117050/3ge1/0/12.2.2.217020/--3.3.3.317030/3ge1/0/24.4.4.417040/18040ge1/0/2在针对变化后sid的字段填充了重新计算得到的srlsp表项后,路由设备b开始使用inlabel/outlabel为“17050/3”、接口为“ge1/0/1”的表项转发报文,并停止使用inlabel/outlabel为“17010/3”、接口为“ge1/0/1”的表项的转发报文。对于网络中的其他路由设备c和d,可以通过路由设备间的通信获取到路由设备a变化后的sid和变化前的sid,进而计算得到第三srlsp表项。具体过程可以参考路由设备b的处理流程,此处不再赘述。在本申请的一个实施例中,路由设备间可采用is-is(intermediatesystem-to-intermediatesystem,中间系统到中间系统)协议实现互通,获取到变化前的sid和变化后的sid。一个示例,路由设备间采用is-is协议的报文结构如表8所示。表8表8中,type(类型),表示报文内容的类型,如sid、index(索引)、label(标签)等。length(长度),表示报文的长度。flag(标识位),为1字节的区域,flag包括value标志位,value标志位设置为不同的值,表明sid/label中的内容为sid,还是label。例如,当value标志位置位时,表明sid/label中携带的是sid。当value标志位不置位时,表明sid/label中携带的是label。algorithm(算法),表示选路算法。sid/label,为具体的报文内容。本申请实施例中,sid/label处可填充变化前的sid和变化后的sid。在本申请的一个实施例中,第一路由设备在得到第二srlsp表项之后,向控制器发送确认报文,确认报文用于通知控制器已根据第二sid计算得到srlsp表项。控制器连接的其他路由设备在根据第二sid计算得到第三srlsp表项后,同样向控制器发送确认报文。控制器在接收到控制器连接的所有路由设备发送的确认报文后向各个路由设备发送的通知报文。通知报文用于指示路由设备停止利用根据第一sid计算得到的srlsp表项转发报文,利用根据第二sid计算得到的srlsp表项转发报文。具体的,第一路由设备接收到控制器发送的通知报文后,根据通知报文,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。其他路由设备根据通知报文,停止利用第四srlsp表项转发报文,并利用第三srlsp表项转发报文。这样,所有路由设备同时采用根据第二sid计算得到srlsp表项转发报文,避免了有些路由设备利用根据第一sid计算得到srlsp表项转发报文,有些路由设备根据第二sid计算得到srlsp表项转发报文,导致报文丢失的问题。与上述应用于第一路由设备的报文转发方法实施例对应,本申请实施例还提供了一种报文转发方法。参考图3,图3为本申请实施例提供的报文转发方法的第二种流程示意图。该方法应用于控制器,控制器与第一路由设备连接,第一路由设备的sid为第一sid,且第一路由设备中存储有根据第一sid计算得到的第一srlsp表项。该方法包括如下步骤。步骤301,为第一路由设备重新分配第二sid。一个实施例中,控制器接收用户的输入的修改指令,该修改指令中包括为第一路由设备重新分配的第二sid。另外一个实施例中,控制器中存储有大量的sid,每间隔一段时间,从存储的sid中获取一个sid作为为第一路由设备重新分配的第二sid。步骤302,将第二sid发送给第一路由设备。第一路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文;在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。在本申请的一个实施例中,第一路由设备获取到第一sid和第二sid,向控制器连接的其他路由设备发送第一sid和第二sid。其他路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第三srlsp表项,并利用第四srlsp表项转发报文,第四srlsp表项为其他路由设备根据第一sid计算得到的针对第一路由设备的srlsp表项。其他路由设备在计算得到第三srlsp表项后,停止利用第四srlsp表项转发报文,并利用第三srlsp表项转发报文。此时,各个控制器连接的各个路由设备均可以正常转发针对第一路由设备的报文,进一步减少了网络中报文的丢失。在本申请的一个实施例中,第一路由设备在得到第二srlsp表项之后,向控制器发送确认报文,确认报文用于通知控制器已根据第二sid计算得到srlsp表项。控制器连接的其他路由设备在根据第二sid计算得到第三srlsp表项后,同样向控制器发送确认报文。控制器在接收到控制器连接的所有路由设备发送的确认报文后向各个路由设备发送的通知报文。通知报文用于指示路由设备停止利用根据第一sid计算得到的srlsp表项转发报文,利用根据第二sid计算得到的srlsp表项转发报文。具体的,第一路由设备接收到控制器发送的通知报文后,根据通知报文,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。其他路由设备根据通知报文,停止利用第四srlsp表项转发报文,并利用第三srlsp表项转发报文。这样,所有路由设备同时采用根据第二sid计算得到srlsp表项转发报文,避免了有些路由设备利用根据第一sid计算得到srlsp表项转发报文,有些路由设备根据第二sid计算得到srlsp表项转发报文,导致报文丢失的问题。与上述应用于第一路由设备的报文转发方法实施例对应,本申请实施例还提供了一种报文转发装置。参考图4,图4为本申请实施例提供的报文转发装置的第一种结构示意图。该装置应用于第一路由设备,第一路由设备的sid为第一sid,且第一路由设备中存储有根据第一sid计算得到的针对第一路由设备的第一srlsp表项;该装置包括如下单元。接收单元401,用于接收控制器发送的为第一路由设备重新分配的第二sid;第一处理单元402,用于根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文;第二处理单元403,用于在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。一个实施例中,上述报文转发装置还可包括:发送单元,用于向控制器连接的其他路由设备发送第一sid和第二sid,以使其他路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第三srlsp表项,并利用第四srlsp表项转发报文,第四srlsp表项为其他路由设备根据第一sid计算得到的针对第一路由设备的srlsp表项;在计算得到第三srlsp表项后,停止利用第四srlsp表项转发报文,并利用第三srlsp表项转发报文。一个实施例中,第二处理单元403,具体可以用于:在得到第二srlsp表项之后,向控制器发送确认报文,确认报文用于通知控制器已根据第二sid计算得到srlsp表项;接收控制器发送的通知报文,通知报文为:控制器在接收到控制器连接的所有路由设备发送的确认报文后发送的报文;根据通知报文,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。应用本申请实施例提供的报文转发装置,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据变化前的第一sid和变化后的第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备sid发生变化时报文的丢失。与上述应用于控制器的报文转发方法实施例对应,本申请实施例还提供了一种报文转发装置。参考图5,图5为本申请实施例提供的报文转发装置的第二种结构示意图。该报文转发装置应用于控制器,控制器与第一路由设备连接,第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据第一sid计算得到的第一srlsp表项,包括如下单元。分配单元501,用于为第一路由设备重新分配第二sid;发送单元502,用于将第二sid发送给第一路由设备,以使第一路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文;在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。一个实施例中,发送单元503,还可以用于:若接收到控制器连接的所有路由设备发送的确认报文,则分别向控制器连接的各个路由设备分别发送通知报文;其中,确认报文为:第一路由设备根据第二sid计算得到srlsp表项后发送的报文,或控制器连接的其他路由设备在获取到第二sid,并根据第二sid计算得到srlsp表项后发送的报文;通知报文用于指示路由设备停止利用根据第一sid计算得到的srlsp表项转发报文,利用根据第二sid计算得到的srlsp表项转发报文。应用本申请实施例提供的报文转发装置,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据变化前的第一sid和变化后的第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备sid发生变化时报文的丢失。与上述应用于第一路由设备的报文转发方法实施例对应,本申请实施例还提供了一种路由设备,如图6所示,包括处理器601和机器可读存储介质602,机器可读存储介质602存储有能够被处理器601执行的机器可执行指令。处理器601被机器可执行指令促使实现上述应用于第一路由设备的报文转发方法的任一步骤。具体的,该路由设备作为第一路由设备,第一路由设备的sid为第一sid,且所述第一路由设备中存储有根据所述第一sid计算得到的针对所述第一路由设备的第一srlsp表项;报文转发方法包括:接收控制器发送的为第一路由设备重新分配的第二sid;根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文;在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。应用本申请实施例提供的路由设备,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据变化前的第一sid和变化后的第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备sid发生变化时报文的丢失。与上述应用于第一路由设备的报文转发方法实施例对应,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述应用于第一路由设备的报文转发方法的任一步骤。与上述应用于控制器的报文转发方法实施例对应,本申请实施例还提供了一种控制器,如图7所示,包括处理器701和机器可读存储介质702,机器可读存储介质702存储有能够被处理器701执行的机器可执行指令。处理器701被机器可执行指令促使实现上述应用于控制器的报文转发方法的任一步骤。具体的,该报文转发方法中,控制器与第一路由设备连接,第一路由设备的sid为第一sid,且第一路由设备中存储有根据第一sid计算得到的第一srlsp表项,包括如下步骤:为第一路由设备重新分配第二sid;将第二sid发送给第一路由设备,以使第一路由设备根据第一sid和第二sid,重新计算针对第一路由设备的第二srlsp表项,并利用第一srlsp表项转发报文;在得到第二srlsp表项之后,停止利用第一srlsp表项转发报文,并利用第二srlsp表项转发报文。应用本申请实施例提供的控制器,控制器将变化后的第二sid发送给了第一路由设备,第一路由设备根据变化前的第一sid和变化后的第二sid,重新计算针对第一路由设备的第二srlsp表项,同时在根据第二sid得到第二srlsp表项之前,利用原有的srlsp表项转发报文,也就是,利用根据第一sid计算得到的第一srlsp表项转发报文。在计算得到第二srlsp表项后,第一路由设备再利用第二srlsp表项转发报文。可见,本申请实施例中,在计算得到第二srlsp表项的这段时间内,第一路由设备仍然可以利用第一srlsp表项转发报文,减少了第一路由设备sid发生变化时报文的丢失。与上述应用于控制器的报文转发方法实施例对应,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述应用于控制器的报文转发方法的任一步骤。上述机器可读存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于报文转发装置、路由设备、控制器和机器可读存储介质实施例而言,由于其基本相似于报文转发方法实施例,所以描述的比较简单,相关之处参见报文转发方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1