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

一种SID压缩方法、报文转发方法、装置及电子设备与流程

2021-11-15 17:51:00 来源:中国专利 TAG:

一种sid压缩方法、报文转发方法、装置及电子设备
技术领域
1.本技术属于网络通信技术领域,具体涉及一种sid压缩方法、报文转发方法、装置及电子设备。


背景技术:

2.段路由(segment routing,sr)是一种基于源路由理念设计的、在网络上转发数据包的协议,支持在源节点显式指定数据包转发路径。当sr部署在第六版互联网协议(internet protocol version 6,ipv6)数据平面上时,称为srv6(segment routing version 6)。srv6通过在ipv6的基础上扩展了段路由头(segment routing header,srh)来引导报文在网络中进行转发。
3.srh包括段列表(segment list),段列表也称为段标识(segment identification,sid)链表或sid地址栈,包含多个sid,每个sid对应报文转发路径中的一个节点或者链路。报文转发过程中,网络节点通过srh中的sid信息更新ipv6报文目的地址来完成报文的逐段转发。
4.每个sid是一个128比特(bit)的ipv6地址。由于每个sid在报文中占用128bit,因此在segment list中每增加一个sid,srh的长度就会增加128bit,报文的长度也会增加128bit。sid越多,报文转发路径越灵活。但同时报文长度增加将导致转发过程中占用的网络资源增加,如带宽,会降低srv6网络中报文传输效率。


技术实现要素:

5.鉴于此,本技术的目的在于提供一种sid压缩方法、报文转发方法、装置及电子设备,以改善ipv6报文中sid过长,导致报文载荷率低的问题。
6.本技术的实施例是这样实现的:
7.第一方面,本技术实施例提供了一种sid压缩方法,应用于网络设备,所述方法包括:获取段列表,所述段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路;针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,所述压缩sid包含sid位图和简短sid,所述sid位图中的每个比特位用于表示该sid中每个字节是否为0或非0,所述sid位图中的每个比特位与该sid中的每个字节一一对应,且所述sid位图中的各个比特位之间的顺序与该sid中各个字节之间的顺序一致,所述简短sid为通过将该sid中所有非0字节按原有顺序组合得到。本技术实施例中,通过将原始的sid压缩成一种字节更短的sid,通过缩短sid的长度,从而缩短srh扩展头部的长度,进而可以提升报文的载荷率,从而提高报文处理效率以及网络的转发效率。
8.结合第一方面实施例的一种可能的实施方式,基于预设压缩规则确定该sid的压缩sid,包括:针对该sid中每一个字节,根据该字节的值来设置所述sid位图中该字节对应的比特位的值,该字节对应的比特位的值用于表示该字节为0或非0;将该sid中0字节进行去除,去除后所有非0字节按原有顺序进行组合形成所述简短sid;将所述sid位图与所述简
短sid进行拼接,得到所述压缩sid。本技术实施例中,采用sid位图和简短sid进行拼接的方式来表示压缩sid,由于结构简单,可以提高压缩sid的效果,同时,由于sid位图中的比特位的值,是根据sid中该比特位对应的字节的值来设置的,且表示该字节是否为0或非0,使得后续在根据压缩sid还原原始sid时,可以快速准确的得到原始sid。
9.结合第一方面实施例的一种可能的实施方式,在针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid之前,所述方法还包括:通过路由协议收集网络中其他网络设备所支持压缩的sid信息;基于所收集的sid信息确定所述段列表中的所有sid均支持压缩。本技术实施例中,在针对段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid之前,需要确定段列表中的所有sid均支持压缩,以保证后续所有的压缩sid均可以还原成原始sid,保证方案的可实施性。
10.结合第一方面实施例的一种可能的实施方式,所述方法还包括:获取待转发报文的报文属性信息;获取所述报文属性信息对应的目标段列表,利用所述目标段列表中原始sid对应的压缩sid替换所述目标段列表中的原始sid,并将所述目标段列表中的压缩sid末尾按8字节对齐,不足8字节的部分用0进行补齐;将更新后的所述目标段列表封装在所述待转发报文的srh扩展首部中,并对应填充所述srh扩展首部中的字段,以使支持srv6的各网络设备能对携带压缩sid的ipv6报文进行解析与转发,其中,所述srh扩展首部中的字段包括用于表征所述srh中的sid是否为压缩sid的标识字段和用于表征sid已经解析的字节数偏移值的字段。本技术实施例中,通过在待转发报文中封装srh扩展首部,并在srh扩展首部中将压缩sid封装进去,同时对应填充srh扩展首部中的字段,以使支持srv6的各网络设备能对携带压缩sid的ipv6报文进行解析与转发,以提高报文处理效率以及网络的转发效率。
11.第二方面,本技术实施例还提供了一种报文转发方法,应用于网络设备,所述方法包括:获取携带有压缩sid的待转发报文中的srh扩展首部;对所述srh扩展首部中的字段进行解析,判断解析后的字段中是否包含用于表征所述srh中的sid为压缩sid的标识;若解析后的字段中包含用于表征所述srh中的sid为压缩sid的标识时,根据解析后的字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid;按照预设还原方式确定所述目标压缩sid对应的原始sid,并将所述偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文;将所述更新后的待转发报文转发至所述目标压缩sid对应的原始sid对应的节点或链路。本技术实施例中,在需要将携带有压缩sid的待转发报文转发出去时,通过获取待转发报文中的srh扩展首部,对srh扩展首部进行解析,之后根据解析后的字段中是否包含用于表征srh中的sid为压缩sid的标识来确定srh中的sid是否为压缩sid,若解析后的字段中包含用于表征srh中的sid为压缩sid的标识时,根据解析后的字段中的偏移值,获取该偏移值对应的目标压缩sid,按照预设还原方式确定目标压缩sid对应的原始sid,并将偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文,这样便可将更新后的待转发报文转发出去,使得整个方案形成闭环。
12.结合第二方面实施例的一种可能的实施方式,按照预设还原方式确定所述目标压缩sid对应的原始sid,包括:获取所述目标压缩sid包含的sid位图和简短sid;依次解析所述sid位图中的每一个比特位,直至解析完所述sid位图中的所有比特位,得到所述目标压缩sid对应的原始sid;若该比特位为0,所述原始sid中该比特位对应的字节为0,若该比特位为1,所述原始sid中该比特位对应的字节为所述简短sid中对应的字节;或者,若该比特
位为0,所述原始sid中该比特位对应的字节为所述简短sid中对应的字节,若该比特位为1,原始sid中该比特位对应的字节为0。本技术实施例中,在确定目标压缩sid对应的原始sid,依次解析sid位图中的每一个比特位,若该比特位为1,原始sid中该比特位对应的字节为简短sid中对应的字节;或者,若该比特位为0,原始sid中该比特位对应的字节为简短sid中对应的字节,若该比特位为1,原始sid中该比特位对应的字节为0,这样便可快速确定目标压缩sid对应的原始sid。
13.第三方面,本技术实施例还提供了一种sid压缩装置,所述装置包括:获取模块以及压缩模块;获取模块,用于获取段列表,所述段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路;压缩模块,用于针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,所述压缩sid包含sid位图和简短sid,所述sid位图中的每个比特位用于表示该sid中每个字节是否为0或非0,所述sid位图中的每个比特位与该sid中的每个字节一一对应,且所述sid位图中的各个比特位之间的顺序与该sid中各个字节之间的顺序一致,所述简短sid为通过将该sid中所有非0字节按原有顺序组合得到。
14.第四方面,本技术实施例还提供了一种报文转发装置,所述装置包括:获取模块、解析模块、还原模块以及转发模块;获取模块,用于获取携带有压缩sid的待转发报文中的srh扩展首部;解析模块,用于对所述srh扩展首部中的字段进行解析,判断解析后的字段中是否包含用于表征所述srh中的sid为压缩sid的标识;若解析后的字段中包含用于表征所述srh中的sid为压缩sid的标识时,根据解析后的字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid;还原模块,用于按照预设还原方式确定所述目标压缩sid对应的原始sid,并将所述偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文;转发模块,用于将所述更新后的待转发报文转发至所述目标压缩sid对应的原始sid对应的节点或链路。
15.第五方面,本技术实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法,或者,以执行上述第二方面实施例和/或结合第二方面实施例的任一种可能的实施方式提供的方法。
16.第六方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法,或者,以执行上述第二方面实施例和/或结合第二方面实施例的任一种可能的实施方式提供的方法。
17.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例而了解。本技术的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。通过附图所示,本技术的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本技术的主旨。
19.图1示出了本技术实施例提供的一种sid压缩方法的流程示意图。
20.图2示出了本技术实施例提供的一种确定原始sid对应的压缩sid的过程示意图。
21.图3示出了本技术实施例提供的又一种确定原始sid对应的压缩sid的过程示意图。
22.图4示出了本技术实施例提供的一种网络拓扑的示意图。
23.图5示出了图4所示的网络拓扑中每个节点对应的sid的示意图。
24.图6示出了本技术实施例提供的一种在ipv6报文中封装srh扩展首部的封装结果的示意图。
25.图7示出了本技术实施例提供的一种标准srv6报文srh扩展首部封装的示意图。
26.图8示出了本技术实施例提供的一种报文转发方法的流程示意图。
27.图9示出了本技术实施例提供的一种将srh中的csid offset字段的值更新后的srh的示意图。
28.图10示出了本技术实施例提供的一种确定压缩sid对应的原始sid的过程示意图。
29.图11示出了本技术实施例提供的一种sid压缩装置的模块示意图。
30.图12示出了本技术实施例提供的一种报文转发装置的模块示意图。
31.图13示出了本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
33.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
34.再者,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
35.为了解决ipv6报文中sid过长,导致报文载荷率低的问题,本技术实施例提供了一种基于srv6的sid压缩方法,通过对srh扩展首部的sid进行压缩,可以提升报文的载荷率,提高报文处理效率以及网络的转发效率。例如,在srv6网络中ipv6报文构成为ipv6标准头部(长度为40字节) srh扩展头部 载荷,其中,srh占用报文长度为8字节固定头 sid*n(16字节*n)。对于在ipv6报文头部srh中携带10个sid,平均载荷256字节的报文来说,载荷率只有约55%(256/(256 168 40))。通过缩短sid的长度,从而缩短srh扩展头部的长度,进而可
以提升报文的载荷率,从而提高报文处理效率以及网络的转发效率。
36.下面将结合图1,对本技术实施例提供的sid压缩方法进行说明。
37.s1:获取段列表,所述段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路。
38.获取段列表(segment list),段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路。
39.s2:针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,所述压缩sid包含sid位图和简短sid。
40.在获取到段列表后,针对段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,直至将段列表中的所有sid都压缩完成。压缩后的sid的字节小于压缩前的sid的字节,这样便可缩短每个sid在报文中占用的长度,从而提高报文的载荷率。
41.其中,压缩sid包含sid位图和简短sid,sid位图中的每个比特位用于表示该sid中每个字节是否为0或非0,sid位图中的每个比特位与该sid中的每个字节一一对应,且sid位图中的各个比特位之间的顺序与该sid中各个字节之间的顺序一致,简短sid为通过将该sid中所有非0字节按原有顺序组合得到。例如,该sid为16字节,则sid位图中包括16个比特位(bit),当然sid位图中比特位的数量也可以少于16个,在少于16个比特位时,例如sid位图中比特位为8个,每个比特位用于表示该sid中每2个字节是否为0或非0。sid位图中的每个比特位与该sid中的每2字节对应。
42.一种实施方式下,基于预设压缩规则确定该sid的压缩sid的过程可以是:针对该sid中每一个字节,根据该字节的值来设置sid位图中该字节对应的比特位的值,该字节对应的比特位的值用于表示该字节为0或非0,这样就可以得到sid位图;将该sid中0字节进行去除,去除后所有非0字节按原有顺序进行组合形成简短sid;最后将sid位图与简短sid进行拼接,便可得到压缩sid。
43.为了便于理解,下面举例进行说明,假设原始sid为1000:2:3::4,也即10、00、00、02、00、03、00、00、00、00、00、00、00、00、00、04,共16个字节。假设在sid位图的比特位中用0来表示该原始sid中的字节为0,在sid位图的比特位中用1来表示该原始sid中的字节为非0,则sid位图的16个比特位的值依次为:1、0、0、1、0、1、0、0、0、0、0、0、0、0、0、1,可表示为0x9401;将该sid中0字节进行去除,去除后所有非0字节按原有顺序进行组合便可形成简短sid,也即10、02、03、04,可表示为0x10020304;之后,将sid位图和简短sid进行拼接,可得压缩sid,可表示为94、01、10、02、03、04,上述过程可以参阅图2所示。其中,图2中的csid(compressed sid)为压缩sid,csid bitmap为sid位图,ssid(short sid)为简短sid。
44.原始sid需要用16字节表示,压缩sid:0x94,0x01,0x10,0x02,0x03,0x04,只需6字节即可表示。这种压缩方法在0字节较多的sid中压缩效率较为明显,最佳情况下可将16字节的sid压缩至4字节,如图3所示,原始sid为1::2,压缩后为(0x40,0x01,0x01,0x02)。对于srh中包含10个sid的报文来说,采用本技术的压缩方法,最高可以将srh中sid地址栈长度从160字节压缩至40字节。
45.需要说明的是,上述用2字节的sid位图来表示16字节的原始sid中的0字节与非0字节的映射关系不应作为本技术的限制,实际上使用3字节、4字节的sid位图来表示这种映射关系都应该在本发明的保护范围内。另外,sid位图中1与0所表达的意思也可以替换,例
如,上述示例中,在sid位图的比特位中用0来表示该原始sid中的字节为0,在sid位图的比特位中用1来表示该原始sid中的字节为非0,反过来之后为:在sid位图的比特位中用0来表示该原始sid中的字节为非0,在sid位图的比特位中用1来表示该原始sid中的字节为0。
46.可选地,在针对段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid之前,该sid压缩方法还包括:通过路由协议收集网络中其他网络设备所支持压缩的sid信息,基于所收集的sid信息确定段列表中的所有sid均支持压缩。网络中的各个网络设备通过路由协议向同一个网络中的其他网络设备通告本设备所支持压缩的sid信息。位于网络入口的网络设备通过路由协议收集网络中其他网络设备所支持压缩的sid信息,之后基于所收集的sid信息确定段列表中的所有sid均支持压缩,若段列表
47.中的所有sid均可在所收集的sid信息中匹配到,则表示段列表中的所有
48.sid均支持压缩。
49.其中,路由协议包括但不限于:开放最短路径优先版本3(open shortest path first version 3,ospfv3)路由协议、中间系统到中间系统(intermediate system

to

intermediate system,is

is)路由协议、边界网关协议(border gateway protocol,bgp)等。
50.以ospfv3路由协议为例,在链路状态(link statement advertisement,lsa)通告中增加一种用于标识本设备是否具备压缩sid能力的tlv结构(tlv是指由数据的类型type,数据的长度length,数据的值value组成的结构体)来通告自身所支持压缩的sid信息。以图4所示的网络拓扑为例,该网络拓扑由设备a、设备b、设备c和设备d构成。设备间建立ospfv3邻居,各设备向网络中其他设备通告本设备所支持压缩的sid信息。通过在链路状态通告中增加一种tlv用于表示通告信息的类型、长度与具体的信息。其中,类型用于识别此tlv的作用是通告sid压缩能力信息,长度用于表示tlv信息字段的内容长度,具体信息的内容包括但不限于locator信息(包含sid)或者,具体的sid信息。应当理解,sid压缩能力信息可以使用所有的路由协议通告,此处举例不用于限定本发明。
51.网络中各设备接收到sid压缩能力信息后进行汇总,并通过所收集的locator信息或sid信息识别各segment list中包含的所有sid是否均支持压缩。若是,则可以对segment list中所有sid进行压缩。
52.其中,locator表示定位标示符,用于标识一台设备,也是sid的构成部分之一。每台网络设备会产生一个locator网段的路由在网络中通告,网络中其它节点都可以通过locator网段的路由定位到本节点。
53.本技术实施例提供的sid压缩方法还包括:获取待转发报文的报文属性信息;获取报文属性信息对应的目标段列表,利用目标段列表中原始sid对应的压缩sid替换目标段列表中的原始sid,并将目标段列表中的压缩sid末尾按8字节对齐,不足8字节的部分用0进行补齐;将更新后的目标段列表封装在待转发报文的srh扩展首部中,并对应填充srh扩展首部中的字段,以使支持srv6的各网络设备能对携带压缩sid的ipv6报文进行解析与转发,其中,srh扩展首部中的字段包括用于表征srh中的sid是否为压缩sid的标识字段和用于表征sid已经解析的字节数偏移值的字段。
54.位于网络入口的网络设备在向网络中的其他网络设备发送报文时,获取待转发报文的报文属性信息,如可以是目的ip地址或业务类别(traffic class),获取报文属性信息
对应的目标段列表,利用压缩sid替换目标段列表中的原始sid,并将目标段列表中的压缩sid末尾按8字节对齐,不足8字节的部分用0进行补齐,使其满足ipv6报文标准格式,之后将更新后的目标段列表封装在待转发报文的srh扩展首部中,并对应填充srh扩展首部中的字段,如填充next header、hdr ext len、routing type、segments left、last entry、flag、tag等字段,在flag字段中增加一个用于表示srh扩展头中的sid都是压缩sid的标识,如“c”,其余字段填充内容及含义与标准srh保持一致,以使支持srv6的各网络设备能对携带压缩sid的ipv6报文进行解析与转发。
55.当然,在ipv6报文中封装srh扩展首部时,也可以是先填充srh扩展首部中的字段,然后再将更新后的目标段列表封装在待转发报文的srh扩展首部中,例如先填充next header、hdr ext len、routing type、segments left、last entry、flag、tag等字段,在flag字段中增加一个用于表示srh扩展头中的sid都是压缩sid的标识,如“c”,其余字段填充内容及含义与标准srh保持一致;新增的csid offset字段中值表示csid已经解析的字节数偏移值,初始填充0;最后在csid字段填充从segment list中获取的所有sid进行压缩后的csid,填充完后末尾按8字节对齐,不足8字节的部分填0进行补齐。
56.为了便于理解,以图5所示的网络拓扑中a节点的流量需要经过b节点、c节点、d节点所进行的srh扩展首部封装为例,a节点在ipv6报文中封装srh扩展首部的封装结果,如图6所示。其中,图6所示的srh封装了3个csid(2::2(表示成16字节即为00、02、00、00、00、00、00、00、00、00、00、00、00、00、00、02)、3::3(表示成16字节即为00、03、00、00、00、00、00、00、00、00、00、00、00、00、00、03)、4::4(表示成16字节即为00、04、00、00、00、00、00、00、00、00、00、00、00、00、00、04)),flag字段填写“c”标记,表示srh扩展头中的sid都是压缩sid,hdr ext len字段填写实际sid长度16,csid offset字段初始为0,其他字段与标准srv6报文srh扩展首部封装一致。其中,sid:2::2对应的压缩sid为0x40010202(csid1),sid:3::3对应的压缩sid为0x40010303(csid2),sid:4::4对应的压缩sid为0x40010404(csid3)。
57.为了更直观的说明封装效果,可以对比图7所示的标准srv6报文srh扩展首部封装的实例。通过图6和图7的对比可以发现,对包含压缩sid的srh扩展首部进行封装与对包含原始sid的srh扩展首部进行封装的过程基本相同,不同的是,在对包含压缩sid的srh扩展首部进行封装时,在flag字段中增加一个用于表示srh扩展头中的sid都是压缩sid的标识,如“c”,以及新增加了一个用于表示csid已经解析的字节数偏移值的字段csid offset。
58.基于同一发明构思,本技术实施例还提供了一种报文转发方法,下面将结合图8对本技术实施报文转发方法进行说明。
59.s10:获取携带有压缩sid的待转发报文中的srh扩展首部。
60.网络设备在接收到携带有压缩sid的待转发报文时,通过对该报文进行解析,获取携带有压缩sid的待转发报文中的srh扩展首部。
61.s20:对所述srh扩展首部中的字段进行解析,判断解析后的字段中是否包含用于表征所述srh中的sid为压缩sid的标识。
62.在获取到携带有压缩sid的待转发报文中的srh扩展首部后,对srh扩展首部中的字段进行解析,判断解析后的字段,如flag字段中是否包含用于表征srh中的sid为压缩sid的标识,如判断flag字段中是否包含“c”标识,若是,则表示srh中的sid为压缩sid。
63.s30:若解析后的字段中包含用于表征所述srh中的sid为压缩sid的标识时,根据
解析后的字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid。
64.若解析后的字段中包含用于表征srh中的sid为压缩sid的标识时,根据解析后的字段,如csid offset字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid,例如,以图6所示的srh为例,若该偏移值为0,则对应的目标压缩sid为csid1,即0x40010202。
65.s40:按照预设还原方式确定所述目标压缩sid对应的原始sid,并将所述偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文。
66.在获取该偏移值对应的目标压缩sid后,按照预设还原方式确定目标压缩sid对应的原始sid,例如,得到该原始sid为00、02、00、00、00、00、00、00、00、00、00、00、00、00、00、02。并将偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文,由于csid1为4字节,因此,更新后的偏移值为4,也即csid offset字段中的值为4,更新后的srh为图9所示。
67.其中,可选地,按照预设还原方式确定目标压缩sid对应的原始sid的过程可以是,获取目标压缩sid包含的sid位图和简短sid,依次解析sid位图中的每一个比特位,直至解析完sid位图中的所有比特位,得到目标压缩sid对应的原始sid;若该比特位为0,原始sid中该比特位对应的字节为0,若该比特位为1,原始sid中该比特位对应的字节为简短sid中对应的字节;或者,若该比特位为0,原始sid中该比特位对应的字节为简短sid中对应的字节,若该比特位为1,原始sid中该比特位对应的字节为0。
68.以确定目标压缩sid(0x940110020304)的原始sid的过程进行说明,以在sid位图的比特位中用0表示该原始sid中的字节为0,在sid位图的比特位中用1来表示该原始sid中的字节为非0为例,则目标压缩sid的sid位图为0x9401,对应的2进制为1001010000000001,简短sid为10、02、03、04。由于sid位图中的第1个比特位为1,则原始sid中该比特位对应的字节为简短sid中对应的字节,即为10,由于sid位图中的第2、3个比特位为0,原始sid中第2、3个比特位对应的字节为0,由于sid位图中的第4个比特位为1,原始sid中第4个比特位对应的字节为02,以此类推,可以得到原始sid为:10、00、00、02、00、03、00、00、00、00、00、00、00、00、00、04,共16个字节。上述过程可以参阅图10所示。
69.s50:将所述更新后的待转发报文转发至所述目标压缩sid对应的原始sid对应的节点或链路。
70.在获取到目标压缩sid对应的原始sid之后,便可将更新后的待转发报文转发至目标压缩sid对应的原始sid对应的节点或链路。
71.基于同一发明构思,本技术实施例还提供了一种sid压缩装置100,如图11所示,sid压缩装置100包括:获取模块110、压缩模块120。
72.获取模块110,用于获取段列表,所述段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路。
73.压缩模块120,用于针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,所述压缩sid包含sid位图和简短sid,所述sid位图中的每个比特位用于表示该sid中每个字节是否为0或非0,所述sid位图中的每个比特位与该sid中的每个字节一一对应,且所述sid位图中的各个比特位之间的顺序与该sid中各个字节之间的顺序一致,所述简短sid为通过将该sid中所有非0字节按原有顺序组合得到。
74.压缩模块120,用于针对该sid中每一个字节,根据该字节的值来设置所述sid位图中该字节对应的比特位的值,该字节对应的比特位的值用于表示该字节为0或非0;将该sid中0字节进行去除,去除后所有非0字节按原有顺序进行组合形成所述简短sid;将所述sid位图与所述简短sid进行拼接,得到所述压缩sid。
75.所述压缩模块120,还用于在针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid之前,通过路由协议收集网络中其他网络设备所支持压缩的sid信息;基于所收集的sid信息确定所述段列表中的所有sid均支持压缩。
76.可选地,所述sid压缩装置100,还包括封装模块,用于获取待转发报文的报文属性信息;获取所述报文属性信息对应的目标段列表,利用所述目标段列表中原始sid对应的压缩sid替换所述目标段列表中的原始sid,并将所述目标段列表中的压缩sid末尾按8字节对齐,不足8字节的部分用0进行补齐;将更新后的所述目标段列表封装在所述待转发报文的srh扩展首部中,并对应填充所述srh扩展首部中的字段,以使支持srv6的各网络设备能对携带压缩sid的ipv6报文进行解析与转发,其中,所述srh扩展首部中的字段包括用于表征所述srh中的sid是否为压缩sid的标识字段和用于表征sid已经解析的字节数偏移值的字段。
77.本技术实施例所提供的sid压缩装置100,其实现原理及产生的技术效果和前述sid压缩方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
78.基于同一发明构思,本技术实施例还提供了一种报文转发装置200,如图12所示,该报文转发装置200包括:获取模块210、解析模块220、还原模块230、转发模块240。
79.获取模块210,用于获取携带有压缩sid的待转发报文中的srh扩展首部。
80.解析模块220,用于对所述srh扩展首部中的字段进行解析,判断解析后的字段中是否包含用于表征所述srh中的sid为压缩sid的标识;若解析后的字段中包含用于表征所述srh中的sid为压缩sid的标识时,根据解析后的字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid。
81.还原模块230,用于按照预设还原方式确定所述目标压缩sid对应的原始sid,并将所述偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文。
82.转发模块240,用于将所述更新后的待转发报文转发至所述目标压缩sid对应的原始sid对应的节点或链路。
83.可选地,还原模块230,用于获取所述目标压缩sid包含的sid位图和简短sid;依次解析所述sid位图中的每一个比特位,直至解析完所述sid位图中的所有比特位,得到所述目标压缩sid对应的原始sid;若该比特位为0,所述原始sid中该比特位对应的字节为0,若该比特位为1,所述原始sid中该比特位对应的字节为所述简短sid中对应的字节;或者,若该比特位为0,所述原始sid中该比特位对应的字节为所述简短sid中对应的字节,若该比特位为1,所述原始sid中该比特位对应的字节为0。
84.本技术实施例所提供的报文转发装置200,其实现原理及产生的技术效果和前述报文转发方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
85.如图13所示,图13示出了本技术实施例提供的一种电子设备300的结构框图。所述
电子设备300包括:收发器310、存储器320、通讯总线330以及处理器340。
86.所述收发器310、所述存储器320、处理器340各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线330或信号线实现电性连接。其中,收发器310用于收发数据。存储器320用于存储计算机程序,如存储有图11或图12中所示的软件功能模块,即图11的sid压缩装置100或图12的报文转发装置200。其中,sid压缩装置100或报文转发装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器320中或固化在所述电子设备300的操作系统(operating system,os)中的软件功能模块。所述处理器340,用于执行存储器320中存储的可执行模块。
87.例如处理器340,用于sid压缩装置100包括的软件功能模块或计算机程序时,处理器340,用于获取段列表,所述段列表包含多个sid,每个sid对应报文转发路径中的一个节点或者链路;针对所述段列表中的每一个sid,基于预设压缩规则确定该sid的压缩sid,所述压缩sid包含sid位图和简短sid,所述sid位图中的每个比特位用于表示该sid中每个字节是否为0或非0,所述sid位图中的每个比特位与该sid中的每个字节一一对应,且所述sid位图中的各个比特位之间的顺序与该sid中各个字节之间的顺序一致,所述简短sid为通过将该sid中所有非0字节按原有顺序组合得到。
88.例如处理器340,用于报文转发装置200包括的软件功能模块或计算机程序时,处理器340,用于获取携带有压缩sid的待转发报文中的srh扩展首部;对所述srh扩展首部中的字段进行解析,判断解析后的字段中是否包含用于表征所述srh中的sid为压缩sid的标识;若解析后的字段中包含用于表征所述srh中的sid为压缩sid的标识时,根据解析后的字段中的用于表征sid解压位置的偏移值,获取该偏移值对应的目标压缩sid;按照预设还原方式确定所述目标压缩sid对应的原始sid,并将所述偏移值更新为下一个压缩sid的偏移值,得到更新后的待转发报文;将所述更新后的待转发报文转发至所述目标压缩sid对应的原始sid对应的节点或链路。
89.其中,存储器320可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read

only memory,prom),可擦除只读存储器(erasable programmable read

only memory,eprom),电可擦除只读存储器(electric erasable programmable read

only memory,eeprom)等。
90.处理器340可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器340也可以是任何常规的处理器等。
91.其中,上述的电子设备300,包括但不限于交换机、路由器等。
92.本技术实施例还提供了一种计算机可读存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备300运行时,执行上述所示的sid压缩方法,或者,执行上述所示的报文转发方法。
93.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
94.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
95.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
96.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
97.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
再多了解一些

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

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

相关文献