掌桥专利:专业的专利平台
掌桥专利
首页

发送报文的方法、网络设备以及系统

文献发布时间:2024-04-18 20:01:30


发送报文的方法、网络设备以及系统

技术领域

本申请涉及网络通信领域,并且更具体地,涉及一种发送报文的方法、网络设备以及系统。

背景技术

网络中通常会出现链路变化的场景,如果该场景中的链路变化是可预测的,或者是可控的,可以将这种场景称为链路变化可预测或可控的场景。为了避免频繁的高强度路由计算,选取一段时间作为一个时间片(时间段),将这段时间内的可预测拓扑变化进行合并,使得这些变化都认为发生在时间片(时间段)开始的时刻。在时间片(时间段)内则不再发生变化,这样只需在时间片(时间段)开始时响应这些拓扑变化计算一次路由即可。

相关的技术方案中,网络设备在不同的时间段切换至对应的路由转发表项进行报文转发。由于每个网络设备的切换速度不一致,因此,可能会引起环路丢包。

因此,如何在不同的时间段切换过程中不丢包或减少丢包成为成为亟需要解决的技术问题。

发明内容

本申请提供一种发送报文的方法、网络设备以及系统,可以在不同的时间段切换过程中不丢包或减少丢包。

第一方面,提供了一种发送报文的方法,所述方法包括:第一网络设备获取第一报文,该第一报文包括第一标识,根据该第一标识确定第一转发信息,并根据该第一转发信息对第一报文进行转发,其中,第一标识用于指示转发该第一报文的转发信息,该第一标识是第二网络设备根据发送该第一报文的当前时间所属的时间段确定的,该第二网络设备为发送该第一报文的头节点,该第一转发信息是根据第一时间段内对应的第一网络拓扑信息生成的。

上述技术方案中,网络设备接收到的报文中指定了按照某个时间段对应的网络拓扑信息生成的转发信息,可以确保报文经过的网络设备的转发行为的一致性。并且,不同的时间段对应的多个转发信息是提前获得的,网络设备在时间段的切换瞬间,只需要头节点更新报文中的标识即可,不需要中间网络设备更新转发信息,因此不会出现环路问题,可以避免时间段的切换瞬间的环路丢包问题。

结合第一方面,在第一方面的一种可能的实现方式中,在所述第一网络设备获得第一报文之前,所述方法还包括:所述第一网络设备获取所述第一转发信息和第二转发信息,所述第二转发信息是根据第二时间段对应的第二网络拓扑信息生成的。

结合第一方面,在第一方面的一种可能的实现方式中,所述方法还包括:所述第一网络设备获取第二报文,所述第二报文和所述第一报文属于同一个数据流,所述第二报文包括第二标识,所述第二标识于指示转发所述第二报文的转发信息,所述第二标识是第二网络设备根据发送所述第二报文的当前时间所属的时间段确定的;所述第一网络设备根据所述第二标识确定第二转发信息;所述第一网络设备根据所述第二转发信息对所述第二报文进行转发。

结合第一方面,在第一方面的一种可能的实现方式中,所述时间段的开始时刻或结束时刻是根据网络中拓扑的变化情况划分的。

上述技术方案中,可以根据网络中链路的开关状态的变化情况划分时间段的开始时刻或结束时刻,使得在时间段的边界时间点附近没有链路的开关状态的变化,从而减少对设备间时间同步的依赖。

结合第一方面,在第一方面的一种可能的实现方式中,所述第一报文为多协议标签交换MPLS报文,所述MPLS报文包括第一MPLS标签,所述第一标识为所述第一MPLS标签。

上述技术方案中,第一报文为MPLS报文,网络设备为不同时间片分别生成转发表项时,使用不同的MPLS标签进行标识。一旦头节点在报文封装时选择了为某个时间片转发路径分配的MPLS标签,则可以确保报文在网络中进行MPLS转发时,沿途设备都按照相同时间片的转发路径进行转发。转发面不用修改MPLS标签的标准转发行为,实现较为简单。

结合第一方面,在第一方面的一种可能的实现方式中,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括逐跳(hop by hop,HBH)头,所述HBH头中包括所述第一标识。

结合第一方面,在第一方面的一种可能的实现方式中,所述第一标识为所述HBH头中的时间切片标识time slice ID。

应理解,上述第一标识(例如,time slice ID)为网络设备按照约定好的规则,为每个时间片分配的ID,且所有网络设备对同一个时间片分配的ID相同,该ID被封装在所述HBH头的扩展TLV中。这样,可以确保后面的转发设备的转发行为一致。

结合第一方面,在第一方面的一种可能的实现方式中,所述第一时间段为第二时间段的前一个时间段,如果网络中第一链路的关闭时刻位于所述第二时间段内,且和所述第二时间段的开始时刻之间的时间差小于预设时间,在所述第一时间段的开始时刻,将所述第一链路的状态设置为不可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口。

应理解,如果第一链路的计划关闭时刻和所述第二时间段的开始时刻之间的时差小于预设时间,则在为第一时间段和第二时间段分别计算转发路径时,都要将所述第一链路的状态设置为不可用,所述第一转发信息和第二转发信息中都不使用所述第一链路作为报文转发的出接口。

上述技术方案中,通过使即将关闭的链路提前足够长的时间被设置为不可用状态,使得足够早的时间片对应的转发路径不再使用该链路,避免因为设备来不及刷新转发表项或设备间时钟误差太大等因素而使报文在网络中转发时继续按照已关闭的链路作为出接口进行转发导致的丢包。

结合第一方面,在第一方面的一种可能的实现方式中,如果网络中第一链路将在第二时间段内的某个时刻按计划关闭,该关闭时刻和第二时间段的开始时刻之间的时差大于预设时间。则在为第二时间段计算转发信息(第二转发信息)时,要将所述链路1的状态设置为不可用,第二转发信息中不使用所述第一链路作为报文转发的出接口。而在为第一时间段计算转发信息(第一转发信息)时,由于第一链路在第一时间段内是打开状态的,因此,第一转发信息中使用所述第一链路作为报文转发的出接口。

结合第一方面,在第一方面的一种可能的实现方式中,如果网络中第一链路的打开时刻位于所述第一时间段内,且和第二时间段的开始时刻之间的时间差小于预设时间,在第三时间段的开始时刻,将所述第一链路的状态设置为可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口,第三转发信息中包括所述第一链路的出接口,所述第三转发信息是根据所述第三时间段对应的第三网络拓扑信息生成的,所述第三时间段为所述第二时间段的下一个时间段。

应理解,如果网络中第一链路将在第一时间段内的某个时刻按计划开启,开启后将可以恢复用于报文转发,则为第一时间段计算转发路径时,继续保持所述第一链路的状态为不可用,所述第一转发信息中不使用所述第一链路作为报文转发的出接口。为第二时间段计算转发路径时,设置所述第一链路的状态为可用。但如果第一链路的计划开启时刻和所述第二时间段的开始时刻之间的时差小于预设时间,则在为第一时间段和第二时间段分别计算转发路径时,都要将所述第一链路的状态设置为不可用,而为第三时间段计算转发路径时,将所述第一链路的状态设置为可用,其中所述第三时间段为所述第二时间段的下一个时间段。

上述技术方案中,可通过使即将开启的链路延迟足够长的时间被设置为可用状态,使得足够晚的时间片对应的转发路径才开始使用该链路,避免因为设备间时钟误差太大而使设备过早地刷新转发表项等因素,使得报文在网络中转发时,按照还未开启的链路作为出接口进行转发导致的丢包。

第二方面,提供了一种发送报文的装置,设置于第一网络设备,包括:获取模块,确定模块,发送模块,其中,获取模块用于获取第一报文,所述第一报文包括第一标识,所述第一标识用于指示转发所述第一报文的转发信息,所述第一标识是第二网络设备根据发送所述第一报文的当前时间所属的时间段确定的,所述第二网络设备为发送所述第一报文的头节点;确定模块用于根据所述第一标识确定第一转发信息,所述第一转发信息是根据第一时间段内对应的第一网络拓扑信息生成的;发送模块用于根据所述第一转发信息对所述第一报文进行转发。

结合第二方面,在第二方面的一种可能的实现方式中,所述获取模块,还用于获取所述第一转发信息和第二转发信息,所述第二转发信息是根据第二时间段对应的第二网络拓扑信息生成的。

结合第二方面,在第二方面的一种可能的实现方式中,所述获取模块,还用于获取第二报文,所述第二报文和所述第一报文属于同一个数据流,所述第二报文包括第二标识,所述第二标识于指示转发所述第二报文的转发信息,所述第二标识是第二网络设备根据发送所述第二报文的当前时间所属的时间段确定的;所述确定模块,还用于根据所述第二标识确定第二转发信息;所述发送模块,还用于根据所述第二转发信息对所述第二报文进行转发。

结合第二方面,在第二方面的一种可能的实现方式中,所述时间段的开始时刻或结束时刻是根据网络中拓扑的变化情况划分的。

结合第二方面,在第二方面的一种可能的实现方式中,所述第一报文为多协议标签交换MPLS报文,所述MPLS报文包括第一MPLS标签,所述第一标识为所述第一MPLS标签。

结合第二方面,在第二方面的一种可能的实现方式中,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括逐跳HBH头,所述HBH头中包括所述第一标识。

结合第二方面,在第二方面的一种可能的实现方式中,所述第一标识为所述HBH头中的时间切片标识time slice ID。

结合第二方面,在第二方面的一种可能的实现方式中,所述第一时间段为第二时间段的前一个时间段,如果网络中第一链路的关闭时刻位于所述第二时间段内,和所述第二时间段的开始时刻之间的时间差小于预设时间,在所述第一时间段的开始时刻,将所述第一链路的状态设置为不可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口。

结合第二方面,在第二方面的一种可能的实现方式中,如果网络中第一链路将在第二时间段内的某个时刻按计划关闭,该关闭时刻和第二时间段的开始时刻之间的时差大于预设时间。则在为第二时间段计算转发信息(第二转发信息)时,要将所述链路1的状态设置为不可用,第二转发信息中不使用所述第一链路作为报文转发的出接口。而在为第一时间段计算转发信息(第一转发信息)时,由于第一链路在第一时间段内是打开状态的,因此,第一转发信息中使用所述第一链路作为报文转发的出接口。

结合第二方面,在第二方面的一种可能的实现方式中,如果网络中第一链路的打开时刻位于所述第一时间段内,且和第二时间段的开始时刻之间的时间差小于预设时间,在第三时间段的开始时刻,将所述第一链路的状态设置为可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口,第三转发信息中包括所述第一链路的出接口,所述第三转发信息是根据所述第三时间段对应的第三网络拓扑信息生成的,所述第三时间段为所述第二时间段的下一个时间段。

第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。

第三方面,提供了一种第一网络设备,所述第一网络设备具有实现上述发送报文的装置的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,第一网络设备的结构中包括处理器,所述处理器被配置为支持第一网络设备执行上述方法中相应的功能。

所述第一网络设备可以包括存储器,所述存储器用于与处理器耦合,其保存第一网络设备必要的程序指令和数据。

在另一个可能的设计中,所述第一网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。

第四方面,提供一种第一网络设备,所述第一网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第一网络设备用于执行第一方面或第一方面的任意可能的实现方式中的发送报文的方法。

需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。

第五方面,提供了一种第一网络设备,所述第一网络设备包括控制模块和第一转发子设备。所述第一转发子设备包括:接口板,进一步,还可以包括交换网板。所述第一转发子设备用于执行第四方面中的接口板的功能,进一步,还可以执行第四方面中交换网板的功能。所述控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第四方面中主控板的功能。

可以理解的是,在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。

第六方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。

第七方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。

第八方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。

第九方面,提供一种发送报文的系统,包括如第二方面或第二方面的任意一种可能的实现方式中所述的发送报文的装置。

附图说明

图1是本申请实施例提供的一种发送报文的方法的示意性流程图。

图2是本申请实施例提供的一种第一报文的格式示意图。

图3是本申请实施例提供的一种关闭链路1的时间示意图。

图4是本申请实施例提供的一种打开链路2的时间示意图。

图5是本申请实施例提供的一种发送报文的装置500的示意性结构图。

图6是本申请实施例的第一网络设备2000的硬件结构示意图。

图7为本申请实施例的另一种第一网络设备2100的硬件结构示意图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。

另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。

本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。

本申请实施例描述的网络架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

网络中通常会出现链路变化的场景,如果该场景中的链路变化是可预测的,或者是可控的,可以将这种场景称为链路变化可预测或可控的场景。也就是说,链路变化可预测或可控的场景中链路会按照计划发生变化。网络中链路的变化可以包括:链路“打开”、链路“关闭”。链路的“打开”或“关闭”是指对物理链路的开关操作。

链路“关闭”是指链路在物理上的关闭,链路关闭后,转发面的流量无法继续使用该链路进行转发。具体的,执行主体在控制面维护拓扑信息和计算路由时,可以将该链路的状态设置为“不可用”。也就是说,控制面设置的链路状态为“不可用”的链路,执行主体在计算路由时认为该链路不可用,则计算路由时不会选择该链路作为路由的出接口。这样,控制面计算的路由信息中不会包括该链路,转发面的流量在根据路由信息在进行转发时,也就不会通过该链路进行流量转发。

应理解,上述的执行主体可以是控制器,或者还可以是网络中的各个设备。也就是说,以集中式计算路由为例,该路由计算的执行主体为控制器,控制器可以根据控制面维护的拓扑信息计算路由信息(也可以称为转发信息或路由转发表项),并将计算的路由信息下发给各个设备的转发面,由各个设备在转发面根据该路由信息进行报文转发。另一个示例,以分布式计算路由为例,网络中的各个设备基于泛洪的拓扑信息分别根据各自在控制面维护的拓扑信息计算路由信息,并将计算的路由信息下发给转发面,由转发面根据该路由信息进行报文转发。

链路“打开”是指链路在物理上的打开,链路打开后,转发面的流量可以使用该链路进行转发。具体的,执行主体在控制面维护拓扑信息和计算路由时,可以将该链路的状态设置为“可用”。也就是说,控制面设置的链路状态为“可用”的链路,执行主体在计算路由时认为该链路可用,计算路由时会选择该链路作为路由的出接口。这样,控制面计算的路由信息中可能会包括该链路,转发面的流量在根据路由信息在进行转发时,可能会通过该链路进行流量转发。

需要说明的是,如果某个链路是“打开”的,但在控制面将其状态设置为“不可用”,则计算路由时不会选择该链路作为路由的出接口。转发面的流量在根据路由信息在进行转发时,也就不会通过该链路进行流量转发。但如果此时转发面由于某些原因(例如路由信息更新不及时)仍然以该链路作为出接口,则因为链路是“打开”的,流量仍然可以正常通过该链路转发给下一网络设备。

下面以卫星组网场景为例,对上述链路变化可预测或可控的场景进行详细说明。应理解,在卫星组网的场景中包括但不限于:卫星、地面星观站。卫星组网的场景中的网络拓扑包括但不限于:包括卫星和卫星之间的链路,以及卫星和地面星观站之间的链路组成的网络拓扑。

一个示例,在日凌(sun outage)期内,卫星和卫星之间的链路受到太阳干扰达到峰值,会影响通讯或者损坏器件。因此,卫星和卫星之间的链路延长线指向太阳的时间间隔内或者卫星和卫星之间的链路延长线近似指向太阳的时间间隔内,需要将该链路“关闭”,从而避免卫星中的器件受损。由于卫星和卫星之间的激光对准之后,该两个卫星之间才能通信。一种可能实现方式中,可以不关闭卫星的激光光源,将面向太阳的卫星激光通讯器件偏转一定角度,使得该两个卫星之间不进行通信。当该两个卫星之间链路延长线不指向太阳时,可以将旋转的卫星再度进行旋转,使得该两个卫星之间的激光对准,此时,该两个卫星之间的链路“打开”,可以进行通信。另一种可能实现方式中,还可以将该两个卫星的激光光源关闭,使得该两个卫星之间不进行通信。当该两个卫星之间链路延长线不指向太阳时,打开两个卫星的激光光源,此时,该两个卫星之间的链路“打开”,可以进行通信。

另一个示例,由于卫星只有进入地面星观站的微波可视范围之内,该卫星和地面星观站之间才能通信。如果某个卫星飘出地面可视范围之后,可以认为卫星和地面星观站之间的馈电链路断开,也即卫星和地面星观站之间的链路“关闭”。该地面星观站需要重新连接其它可视的卫星,此时可以认为该可视的卫星和地面星观站之间的馈电链路连接,也即该可视的卫星和地面星观站之间的链路“打开”。

由于卫星的运动路径是可预测的,因此上述这些网络拓扑变化的场景都属于可预测的情况,即属于链路变化可预测或可控的场景。

应理解,在上述卫星组网的场景中,以卫星和卫星之间的链路为例,链路“关闭”可以指卫星和卫星之间无法通信,可以是为该卫星分配了物理资源(例如,上下行的物理通道),没有空口资源,或者还可以是没有为该卫星分配物理资源(例如,上下行的物理通道)。链路“打开”可以指为卫星分配了物理资源(例如,上下行的物理通道)和空口资源,卫星和卫星之间可以进行通信。

为了避免频繁的高强度路由计算,例如,对于卫星组网的场景,卫星设备的硬件受很多方面的限制(器件性能、功率、电池容量等),无法像地面路由器一样进行频繁的高强度运算,因此学术界提出了一种基于星历的路由方案。选取一段时间作为一个时间片(时间段),将这段时间内的可预测拓扑变化进行合并,使得这些变化都认为发生在时间片(时间段)开始的时刻。在时间片(时间段)内则不再发生变化,这样只需在时间片(时间段)开始时响应这些拓扑变化计算一次路由即可。这种方式可以降低设备响应拓扑变化的计算频率。

相关的技术方案中,网络设备在当前时间段根据路由转发表项1(该路由转发表项1是控制面根据该时间段对应的网络拓扑信息计算得到的)进行报文转发。在下一个时间段该网络设备切换至路由转发表项2(该路由转发表项2是控制面根据该下一个时间段对应的网络拓扑信息计算得到的)进行报文转发。

在上述技术方案中,从上述当前时间段进入下一个时间段时,每个网络设备需要将上述路由转发表项1切换至上述路由转发表项2,由于每个网络设备的切换速度不一致,可能会引起环路丢包。例如,在上述当前时间段,网络设备A根据路由转发表项1确定的下一跳是网络设备B,网络设备C根据路由转发表项1确定的下一跳是网络设备A。在从当前时间段进入下一个时间段的瞬间,网络设备A完成了切换,网络设备A根据路由转发表项2确定的下一跳是网络设备C。而网络设备C还未完成切换,网络设备C的下一跳还是根据转发表项1确定的网络设备A。此时,网络设备A根据路由转发表项2将报文发送给网络设备C,网络设备C根据路由转发表项1将报文发送给网络设备A,网络设备C和网络设备A之间形成环路。

有鉴于此,本申请实施例提供了一种发送报文的方法,对于网络中有可预测或可控的链路状态变化的场景,在该场景的链路状态按计划发生变化时,避免发生丢包现象。

下面结合图1,对本申请实施例提供的一种发送报文的方法进行详细描述。

图1是本申请实施例提供的一种发送报文的方法的示意性流程图。如图1所示,该方法可以包括步骤110-130,下面分别对步骤110-130进行详细描述。

步骤110:第一网络设备获取第一报文,该第一报文包括第一标识,该第一标识用于指示转发第一报文的转发信息。

应理解,该第一网络设备可以是地面网络中的路由器,或者也可以是上述卫星组网场景中的卫星或地面星观站,本申请实施例对此不做具体限定。

第一网络设备可以获取第一报文,该第一报文中包括第一标识。具体的实现方式有多种,本申请实施例对此不做具体限定。一种可能的实现方式中,第一网络设备是发送第一报文的头节点,该第一网络设备可以在报文中封装第一标识得到该第一报文。另一种可能的实现方式中,第一网络设备为处理所述第一报文的中间转发节点,头节点封装得到携带第一标识的第一报文后,将该第一报文发送给第一网络设备。也就是说,第一网络设备接收到头节点发送的携带第一标识的第一报文。

上述第一报文中携带的第一标识可以用于指示转发所述第一报文的转发信息(例如,转发表项)。应理解,在第一网络设备获取第一报文之前,第一网络设备还会获取多个转发信息(例如,转发表项),该多个转发信息是分别根据不同时间段对应的网络拓扑信息生成的。例如,根据第一时间段对应的第一网络拓扑信息生成的转发信息可以称为第一转发信息。又如,根据第二时间段对应的第二网络拓扑信息生成的转发信息可以称为第二转发信息。

第一网络设备获取上述多个转发信息的具体实现方式有多种,本申请实施例对此不做具体限定。一种可能的实现方式中,第一网络设备自己根据泛洪的不同时间段对应的网络拓扑信息生成该多个转发信息。另一种可能的实现方式中,控制器根据不同时间段对应的网络拓扑信息生成该多个转发信息,并将该多个转发信息下发给第一网络设备,也就是说,第一网络设备接收控制器下发的所述多个转发信息。

应理解,本申请实施例中的时间段也可以称为时间片。

本申请实施例中,上述第一标识是发送所述第一报文的头节点(第二网络设备)根据发送所述第一报文的当前时间所属的时间段确定的。也就是说,发送所述第一报文的头节点也会获取上述根据不同时间段对应的网络拓扑信息生成的多个转发信息(例如,转发表项),该头节点会根据发送所述第一报文的当前时间所属的时间段确定对应的转发该第一报文的转发信息(例如,转发表项)。并将与该转发信息对应的第一标识封装在所述第一报文中,以便于后面的网络设备根据第一标识对应的转发信息对该第一报文进行转发。

例如,该头节点根据发送所述第一报文的当前时间所属的时间段为第一时间段,确定转发所述第一报文的转发信息为第一转发信息(根据第一时间段对应的第一网络拓扑信息生成的转发信息),并在第一报文中封装第一标识,该第一标识指示转发所述第一报文的转发信息为第一转发信息。后面的网络设备同样的根据第一标识对应的第一转发信息对该第一报文进行转发。

可选地,如果所述第一网络设备为发送所述第一报文的头节点,在所述步骤110之前,所述第一网络设备还可以根据发送所述第一报文的当前时间所属的时间段确定所述第一标识。

可选地,在一些实施例中,头节点还会获得划分的不同的时间段,例如,头节点获得第一时间段的开始时刻和结束时刻,第二时间段的开始时刻和结束时刻。头节点获得划分的不同的时间段的具体的实现方式有多种,本申请实施例对此不做具体限定。下面对几种不同的实现方式进行详细描述。

一种可能的实现方式中,由控制器进行时间段的划分,并将划分的时间段的结果发送给各个网络设备,例如,头节点。也就是说,这种实现方式中,头节点接收到控制器划分的不同的时间段。以卫星组网场景为例,地面控制器可以将划分的时间段的结果上注给各个卫星。举例说明,地面控制器可以通过时间片序列的上注方式将划分的时间段的结果上注给各个卫星,具体的上注方式可以参考链路变化时间序列的上注方式中不同的实现方式,此处暂不详述。

另一种可能的实现方式中,网络中的各个设备自己基于未来一段时间内的链路变化信息,使用相同的算法进行时间段的划分。也就是说,这种实现方式中,头节点自己根据未来一段时间内的链路变化信息,使用和其他网络设备相同的算法,将该未来一段时间划分为不同的时间段。

需要说明的是,上述网络中的各个设备自己划分时间段的实现方式中,依赖于该各个设备准确掌握未来一段时间内的链路变化信息。

可选地,在所述步骤110之前,所述第一网络设备还可以获取上述划分的不同的时间段。第一网络设备获得划分的不同的时间段的方式与头节点获得的方式相同,具体的请参见上文中对头节点获取不同的时间段的实现过程,此处不再赘述。

本申请实施例中对如何将未来一段时间划分为不同的时间段的实现方式不做具体限定。下面对几种可能的实现方式进行详细描述。

一个示例,可以采用固定的时间间隔,将未来一段时间划分为不同的时间段。例如,可以以事先约定好的某个时间点作为时间起点(比如1900年1月1日0时),以固定时间间隔向后划分不同的时间段。这种划分时间段的实现机制较为简单,便于实现。

另一个示例,还可以根据未来一段时间内网络中链路的开关状态的变化情况进行时间段的划分,使得在划分的时间段的边界时间点附近,网络中没有链路开关状态发生变化,或者确保链路的可用/不可用状态的变化离其开关状态变化时刻足够久,这样可以减避免丢包。例如,可以类似固定时间间隔,约定一个时间起点,并将固定间隔时间段作为参考点,在参考点附近寻找一个避开网络中所有链路开关状态变化的时间点,作为最终时间段的划分点。以此来确保在时间段的边界时间点,距离所有链路的物理状态变化都有足够的缓冲时间,从而减少对设备间时间同步的依赖,以避免丢包。

应理解,上述缓冲时间是网络中的各个设备提前根据自己的性能确定出的值。每个设备确定出的缓冲时间可能相同,或者也可能不相同,本申请实施例对此不做具体限定。作为示例,该缓冲时间的考虑因素可以是以下信息中的任一个或多个:网络中设备间的时钟同步误差,报文在这个网络中的最大转发时延、相邻设备间重建控制面必要的协议邻居的时间。

步骤120:第一网络设备根据第一标识确定第一转发信息,所述第一转发信息是根据第一时间段对应的第一网络拓扑信息生成的。

本申请实施例中,第一网络设备可以根据第一报文中携带的第一标识,确定与所述第一标识对应的第一转发信息。

步骤130:第一网络设备根据第一转发信息对第一报文进行转发。

作为示例,该第一转发信息例如可以是一个转发表项,该转发表项中包括出接口和下一跳地址。第一网络设备可以根据该转发表项中的出接口将该第一报文发送给该下一跳设备,从而实现将第一报文转发给目的设备。

可选地,在一些实施例中,第一网络设备还可以获得第二报文,该第二报文和所述第一报文属于同一个数据流。该第二报文中包括第二标识,该第二标识用于指示转发所述第二报文的转发信息。第一网络设备根据第二标识确定第二转发信息,并根据第二转发信息对该第二报文进行转发。

本申请实施例中,上述第二标识为发送所述第二报文的头节点根据发送所述第二报文的当前时间所属的时间段确定的,并将确定的所述第二标识封装在所述第二报文中,以便于后面的网络设备根据第二标识对应的转发信息对该第二报文进行转发。例如,该头节点根据发送所述第二报文的当前时间所属的时间段为第二时间段,确定转发所述第二报文的转发信息为第二转发信息(根据第二时间段对应的第二网络拓扑信息生成的转发信息),并在第二报文中封装第二标识,该第二标识指示转发所述第二报文的转发信息为第二转发信息。后面的网络设备同样的根据第二标识对应的第二转发信息对该第二报文进行转发。

可选地,如果所述第一网络设备为发送所述第二报文的头节点,所述第二网络设备还可以根据发送所述第二报文的当前时间所属的时间段确定所述第二标识。

上述技术方案中,网络设备接收到的报文中指定了按照某个时间段对应的网络拓扑信息生成的转发信息,可以确保报文经过的网络设备的转发行为的一致性。并且,不同的时间段对应的多个转发信息是提前获得的,网络设备在时间段的切换瞬间,只需要头节点更新报文中的标识即可,不需要中间网络设备更新转发信息,因此不会出现环路问题,可以避免时间段的切换瞬间的环路丢包问题。

上述第一报文的具体实现方式有多种,本申请实施例对此不做具体限定。下面对第一报文的不同格式的实现方式进行举例说明。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

一种可能的实现方式中,该第一报文为多协议标签交换(multi-protocol labelswitching,MPLS)报文。该MPLS报文包括第一MPLS标签,所述第一报文中携带的第一标识为所述第一MPLS标签。

应理解,由于在MPLS转发面是根据收到报文的最外层MPLS标签来指导转发,所以报文中的MPLS标签即可用来区分不同的时间段。本申请实施例中可以对每个目的地址,为不同的时间段分配不同的MPLS标签。也就是说,在为每个网络设备分配MPLS标签时,可以基于不同的时间段,对于每个目的地址,为不同的时间段分配不同的MPLS标签。

本申请实施例中,控制面对这些为不同的时间段分配不同的MPLS标签的分发可以在现有的MPLS协议上做扩展,使得至少转发报文的头节点可以感知不同的MPLS标签和时间段之间的对应关系即可。作为示例,该MPLS协议可以包括但不限于:标签分发协议(labeldistribution protocol,LDP)、资源预留协议流量工程(resource reservationprotocol-traffic engineering,RSVP-TE)等。

需要说明的是,在控制面为每台设备分配MPLS标签时只需要确保本机唯一即可,使得即使把不同时间段对应的转发表项混在一起也不会造成冲突。

上述第一报文为MPLS报文,第一标识为MPLS标签的实现方式中,网络设备可以为不同时间片分别生成转发表项时,使用不同的MPLS标签进行标识。一旦头节点在报文封装时选择了为某个时间片转发路径分配的MPLS标签,则可以确保报文在网络中进行MPLS转发时,沿途设备都按照相同时间片的转发路径进行转发。由于沿途设备的转发面不用修改MPLS标签的标准转发行为,实现较为简单。

另一种可能的实现方式中,该第一报文为互联网协议第6版(Internet ProtocolVersion6,IPv6)报文,上述第一标识可以位于该IPv6报文的扩展头中。作为示例,该扩展头可以是逐跳(hop by hop,HBH)头。

举例说明,一种可能的第一报文的格式如图2所示,该第一报文包括:IPv6头(IPv6header),HBH头(HBH options header)以及IPv6载荷。时间切片标识(time sliceidentification,time slice ID)被封装在所述HBH头的扩展类型长度和值(type lengthand value,TLV)中。当中间转发设备收到IPv6报文时,如果IPv6报文的HBH头中携带了timeslice ID,则找到其指示的对应的时间段的路由转发信息,再根据IPv6报文的IPv6头中的目的地址(destination address,DA)查找路由。需要说明的是,time slice ID的封装,则由发送报文的头节点在封装报文时完成。

上述第一报文为IPv6报文的实现方式中,第一标识为time slice ID的实现方式中,由于第一标识(time slice ID)为网络设备按照约定好的规则,为每个时间片分配的ID。且所有网络设备对同一个时间片分配的ID相同,该ID被封装在所述HBH头的扩展TLV中。这样,可以确保沿途的转发设备的转发行为一致。

可选地,该第一报文为IPv6报文,第一报文中包括的第一标识还可以是IPv6报文中的一个时间戳,该时间戳用于指示在第一时间段根据第一网络拓扑信息确定的第一转发信息。例如,该时间戳被封装在所述HBH头的TLV中,当中间转发设备收到IPv6报文时,如果IPv6报文的HBH头中携带了时间戳字段,则找到其指示的对应的时间段的路由转发信息,再根据IPv6报文的IPv6头中的DA查找路由。需要说明的是,时间戳字段的封装,则由发送报文的头节点在封装报文时完成。

可选地,在一些实施例中,由于某些原因(例如,设备间的时钟不同步或报文的转发时延),可能会存在头节点发送第一报文的时间所属的时间段和中间转发节点接收第一报文的时间所属的时间段不同。由于网络中的设备均是根据第一报文中的标识确定转发信息并进行报文转发的,如果上述时间段的临界点附近有链路开关状态发生变化的情况,则会出现丢包现象。

有鉴于此,本申请实施例可以通过调整划分拓扑的边界时间点,或者调整链路在控制面的不可用时机或可用时机到合适的时间片临界点。确保临界时间附近,在网络中没有链路开关状态发生变化,或者确保链路的可用/不可用状态的变化离其开关状态变化时刻足够久,这样可以进一步避免丢包。

下面以网络中有链路被关闭的情况为例,对本申请实施例提供的方法进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

一个示例,网络中第一链路将在第二时间段内的某个时刻按计划关闭,该第一链路的计划关闭时刻和第二时间段的开始时刻之间的时差小于预设时间。例如,如图3所示,中间转发节点计划要在第二时间段将链路1关闭,链路1计划要在第二时间段内关闭的时间在第二时间段开始时刻的附近。也即链路1在第二时间段内关闭的时间距离第二时间段的开始时刻之间的时间差小于预设时间。

相关的技术方案中,如果网络中链路1将在第二时间段内的某个时刻按计划关闭,关闭后将不可以再用于报文转发。则在为第二时间段计算转发信息(第二转发信息)时,要将所述链路1的状态设置为不可用,第二转发信息中不使用所述链路1作为报文转发的出接口。而在为第一时间段计算转发信息(第一转发信息)时,由于链路1在第一时间段内是打开状态的,因此,第一转发信息中使用所述链路1作为报文转发的出接口。举例说明,假设发送第一报文的头节点根据发送所述第一报文的时间所属的时间段为第一时间段,头节点在该第一报文中封装第一标识,该第一标识指示根据第一转发信息(是根据第一时间段对应的第一网络拓扑信息确定的)对该第一报文进行转发。当中间转发节点收到该第一报文时,由于某些原因(这可能是设备间的时钟不同步引起的,也可能是报文的转发时延引起的)可能根据本节点的时钟来看已经进入了下一个时间段,例如,第二时间段。由于中间转发节点计划要在第二时间段将链路1关闭,该链路1在第一时间段内是打开状态的,第一转发信息中包括该链路1对应的出接口。这种情况下,对于中间转发节点而言,其按照第一报文中的第一标识指示的第一转发信息进行转发时,需要通过链路1对第一报文进行转发,但是实际上中间转发节点已经按计划将链路1关闭,则第一报文无法继续进行转发。

本申请实施例中,如果第一链路的计划关闭时刻和所述第二时间段的开始时刻之间的时差小于预设时间,则在为第一时间段和第二时间段分别计算转发路径时,都要将所述第一链路的状态设置为不可用,所述第一转发信息和第二转发信息中都不使用所述第一链路作为报文转发的出接口。也就是说,本申请实施例中通过使即将关闭的链路提前足够长的时间被设置为不可用状态,使得足够早的时间片对应的转发路径不再使用该链路。避免因为设备来不及刷新转发表项或设备间时钟误差太大等因素而使报文在网络中转发时继续按照已关闭的链路作为出接口进行转发导致的丢包。

如图3所示,链路1将在第二时间段内的某个时刻按计划关闭,该链路1的计划关闭时刻和第二时间段的开始时刻之间的时差小于预设时间。本申请实施例中可以在第二时间段的前一个时间段的开始时刻(例如,第一时间段的开始时刻),将所述链路1的状态设置为不可用。这样,执行主体在控制面进行路由计算时,根据第一时间段对应的第一网络拓扑信息确定的第一转发信息中也不包括链路1的出接口。

举例说明,在本申请实施例中,对于头节点而言,由于在第一时间段的开始时刻,控制面将所述链路1的状态设置为不可用,因此,头节点获取的根据第一时间段对应的第一网络拓扑信息确定第一转发信息中不包括链路1的出接口。对于中间转发节点而言,由于某些原因根据本节点的时钟来看已经进入了第二时间段,其按计划将链路1关闭。此时中间转发节点按照第一报文中的第一标识指示的第一转发信息进行转发时,由于第一转发信息不包括链路1的出接口,因此,第一报文按照第一转发信息进行转发时不会经过链路1,因此,即使中间转发节在第二时间段按计划将链路1关闭,也不会存在第一报文无法继续转发的情况,从而避免了丢包。

可选地,在一些实施例中,如果网络中第一链路将在第二时间段内的某个时刻按计划关闭,该关闭时刻和第二时间段的开始时刻之间的时差大于预设时间。则在为第二时间段计算转发信息(第二转发信息)时,要将所述链路1的状态设置为不可用,第二转发信息中不使用所述第一链路作为报文转发的出接口。而在为第一时间段计算转发信息(第一转发信息)时,由于第一链路在第一时间段内是打开状态的,因此,第一转发信息中使用所述第一链路作为报文转发的出接口。

需要说明的是,上述预设时间也可以称为缓冲时间,该缓冲时间是网络中的各个设备提前根据自己的性能确定出的值。每个设备确定出的缓冲时间可能相同,或者也可能不相同,本申请实施例对此不做具体限定。

作为示例,该缓冲时间可以根据以下信息中的任意一种或多种的组合确定的:网络中设备间的时钟同步误差,报文在这个网络中的最大转发时延。一种可能的实现方式中,缓冲时间可以大于或等于网络中设备间的时钟同步误差。另一种可能的实现方式中,缓冲时间可以大于或等于报文在这个网络中的最大转发时延。另一种可能的实现方式中,缓冲时间可以大于或等于报文在这个网络中的最大转发时延,并且大于或等于网络中设备间的时钟同步误差。

上述有链路被关闭的方案中,由于通过使即将关闭的链路提前足够长的时间被设置为不可用状态,使得足够早的时间片对应的转发路径不再使用该链路,避免因为设备来不及刷新转发表项或设备间时钟误差太大等因素而使报文在网络中转发时继续按照已关闭的链路作为出接口进行转发导致的丢包。

下面以网络中有链路被打开的情况为例,对本申请实施例提供的方法进行详细描述。应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

一个示例,网络中一个链路将在第一时间段内的某个时刻按计划开启,且该链路的计划开启时刻和所述第二时间段的开始时刻之间的时差小于预设时间。例如,如图4所示,中间转发节点计划要在第一时间段内的某个时刻将链路2打开,链路2在第一时间段内开启的时间距离第二时间段的开始时刻之间的时间差小于预设时间(也可以称为缓冲时间)。

相关的技术方案中,由于某些原因(这可能是设备间的时钟不同步引起的,也可能是相邻设备间重建控制面必要的协议邻居的时间),发送第二报文的头节点的时钟比真实时间快。在真实时间接近第二时间段的开始时刻(还未到达第二时间段的开始时刻)时,头节点的本地时钟认为已经进入了第二时间段。则头节点会在第二报文中携带第二标识(指示第二转发信息,根据第二时间段对应的第二网络拓扑信息确定的),使得中间转发节点按照第二时间段对应的第二转发信息进行转发。由于第二时间段对应的第二转发信息是提前准备好的,在第二时间段链路2会按计划打开,因此,根据第二时间段对应的第二网络拓扑信息确定的第二转发信息中会包括链路2的出接口,并且会使用链路2。当第二报文到达链路2所属的设备时,这个设备的时钟是和真实时间一致的,即真实时间还未到达第二时间段的开始时刻,它可能认为还没有到链路2打开的时刻,所以此时链路2还没有真的打开。于是这个设备按照第二标识的指示查找第二时间段对应的第二转发信息时,会尝试使用链路2,但是其实此时链路2还没有真的打开,则第二报文将会无法继续进行转发,从而导致丢包。

本申请实施例中,如果链路的计划开启时刻和所述第二时间段的开始时刻之间的时差小于预设时间,则在为第一时间段和第二时间段分别计算转发路径时,都要将所述链路的状态设置为不可用,而为第三时间段计算转发路径时,将所述链路的状态设置为可用,其中所述第三时间段为所述第二时间段的下一个时间段。

也就是说,本申请实施例中通过使即将开启的链路延迟足够长的时间被设置为可用状态,使得足够晚的时间片对应的转发路径才开始使用该链路,避免因为设备间时钟误差太大而使设备过早地刷新转发表项等因素,使得报文在网络中转发时,按照还未开启的链路作为出接口进行转发导致的丢包。即本申请实施例中可以将按计划将要打开的链路2,在控制面延后将其状态置为“可用”。这样,执行主体在控制面计算路由时延后认为该链路2可用。该状态改变的时间点需要在链路2打开后的某个时间片分界点,且确保其离链路的“打开”时间足够久。

如图4所示,链路2将在第一时间段内的某个时刻按计划开启,该链路2的计划开启时刻和第二时间段的开始时刻之间的时差小于预设时间。本申请实施例中可以在第二时间段的后一个时间段的开始时刻(例如,第三时间段的开始时刻),将所述链路2的状态设置为可用,在为第一时间段和第二时间段分别计算转发路径时,将所述链路2的状态设置为不可用。这样,执行主体在控制面进行路由计算时,第一转发信息和第二转发信息中不包括所述链路2的出接口,不使用所述链路2作为报文转发的出接口。第三转发信息(根据第三时刻对应的第三网络拓扑信息)中包括所述链路2的出接口,使用所述链路2作为报文转发的出接口。

举例说明,在本申请实施例中,发送第二报文的头节点的时钟比真实时间快,在真实时间接近第二时间段的开始时刻(还未到达第二时间段的开始时刻)时,头节点的本地时钟认为已经进入了第二时间段。因此,头节点根据发送第二报文的时间所属的时间段为第二时间段,将第二标识封装在第二报文中。当第二报文到达链路2所属的设备时,这个设备的时钟是和真实时间一致的,它可能认为还没有到链路2打开的时刻,所以此时链路2还没有真的打开。由于这个设备按照第二报文的指示查找第二时间段对应的第二转发信息,不会尝试使用链路2,也就不会存在第二报文无法继续转发的情况,从而避免了丢包。

应理解,缓冲时间可以根据以下信息中的任意一种或多种的组合确定的:网络中设备间的时钟同步误差,报文在这个网络中的最大转发时延,相邻设备间重建控制面必要的协议邻居的时间。一种可能的实现方式中,缓冲时间可以大于或等于网络中设备间的时钟同步误差。另一种可能的实现方式中,缓冲时间可以大于或等于报文在这个网络中的最大转发时延。另一种可能的实现方式中,缓冲时间可以大于或等于相邻设备间重建控制面必要的协议邻居的时间。

上述有链路被开启的方案中,可通过使即将开启的链路延迟足够长的时间被设置为可用状态,使得足够晚的时间片对应的转发路径才开始使用该链路,避免因为设备间时钟误差太大而使设备过早地刷新转发表项等因素,使得报文在网络中转发时,按照还未开启的链路作为出接口进行转发导致的丢包。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上文结合图1至图4,详细描述了本申请实施例提供的发送报文的方法,下面将结合图5至图7,详细描述本申请的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图5是本申请实施例提供的一种发送报文的装置500的示意性结构图。该装置500设置于第一网络设备中。图5所示的发送报文的装置500可以执行上述实施例的发送报文的方法的相应步骤。如图5所示,所述发送报文的装置500包括:获取模块510,确定模块520,发送模块530。其中,获取模块510用于获取第一报文,所述第一报文包括第一标识,所述第一标识用于指示转发所述第一报文的转发信息,所述第一标识是第二网络设备根据发送所述第一报文的当前时间所属的时间段确定的,所述第二网络设备为发送所述第一报文的头节点;确定模块520用于根据所述第一标识确定第一转发信息,所述第一转发信息是根据第一时间段内对应的第一网络拓扑信息生成的;发送模块530用于根据所述第一转发信息对所述第一报文进行转发。

可选地,所述获取模块510还用于获取所述第一转发信息和第二转发信息,所述第二转发信息是根据第二时间段对应的第二网络拓扑信息生成的。

可选地,所述获取模块510还用于获取第二报文,所述第二报文和所述第一报文属于同一个数据流,所述第二报文包括第二标识,所述第二标识于指示转发所述第二报文的转发信息,所述第二标识是第二网络设备根据发送所述第二报文的当前时间所属的时间段确定的;确定模块520还用于根据所述第二标识确定第二转发信息;发送模块530还用于根据所述第二转发信息对所述第二报文进行转发。

可选地,所述时间段的开始时刻或结束时刻是根据网络中拓扑的变化情况划分的。

可选地,所述第一报文为多协议标签交换MPLS报文,所述MPLS报文包括第一MPLS标签,所述第一标识为所述第一MPLS标签。

可选地,所述第一报文为互联网协议第六版IPv6报文,所述IPv6报文包括逐跳HBH头,所述HBH头中包括所述第一标识。

可选地,所述第一标识为所述HBH头中的时间切片标识time slice ID。

可选地,所述第一时间段为第二时间段的前一个时间段,如果网络中第一链路的关闭时刻位于所述第二时间段内,且和所述第二时间段的开始时刻之间的时间差小于预设时间,在所述第一时间段的开始时刻,将所述第一链路的状态设置为不可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口。

可选地,如果网络中第一链路将在第二时间段内的某个时刻按计划关闭,该关闭时刻和第二时间段的开始时刻之间的时差大于预设时间。则在为第二时间段计算转发信息(第二转发信息)时,要将所述链路1的状态设置为不可用,第二转发信息中不使用所述第一链路作为报文转发的出接口。而在为第一时间段计算转发信息(第一转发信息)时,由于第一链路在第一时间段内是打开状态的,因此,第一转发信息中使用所述第一链路作为报文转发的出接口。

可选地,如果网络中第一链路的打开时刻位于所述第一时间段内,且和第二时间段的开始时刻之间的时间差小于预设时间,在第三时间段的开始时刻,将所述第一链路的状态设置为可用,所述第一转发信息和第二转发信息中均不包括所述第一链路的出接口,第三转发信息中包括所述第一链路的出接口,所述第三转发信息是根据所述第三时间段对应的第三网络拓扑信息生成的,所述第三时间段为所述第二时间段的下一个时间段。

图6是本申请实施例的第一网络设备2000的硬件结构示意图。图6所示的第一网络设备2000可以执行上述实施例的发送报文的方法。

如图6所示,所述第一网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。

所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。

所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,ROM)和随机存取存储器(randomaccess memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/outputsystem,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备2000进入正常运行状态。在第一网络设备2000进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备2000的处理过程。

可以理解的是,图6仅仅示出了第一网络设备器2000的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。

图7为本申请实施例的另一种第一网络设备2100的硬件结构示意图。图7所示的第一网络设备2100可以执行上述实施例的发送报文的方法。

如图7所述,控制器2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。

接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项。物理接口卡2133用于完成流量的接收和发送。

应理解,本申请实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。

应理解,本实施例的第一网络设备2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。

此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。

本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。

本申请实施例还提供了一种芯片,应用于第一网络设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。在具体实现过程中,该芯片可以以中央处理器(centralprocessing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(microprocessing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。

本申请实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。

本申请实施例还提供了一种系统,包括上述第一网络设备和第二网络设备

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116556417