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

实现内部网关协议的网络中的压缩数据传输的制作方法

2022-03-02 03:21:02 来源:中国专利 TAG:

实现内部网关协议的网络中的压缩数据传输
1.相关申请的交叉引用
2.本技术要求于2019年2月28日由uma s.chunduri提交的题为“advertising and usage of compressed link state updated in interior gateway protocols”的美国临时专利申请第62/811,912号的权益,该美国临时专利申请通过引用并入本文,如同其整体复制在本文一样。
技术领域
3.本公开内容涉及实现内部网关协议(interior gateway protocol,igp)的网络中的数据传输的领域。特别地,本公开内容涉及通过实现igp的网络泛洪(flooding)的数据的压缩。


背景技术:

4.igp是用于在网络(在本文也被称为“自治系统(autonomous system,as)”或“域”)内的网络元件(network element,ne)例如路由器、交换机、网关等之间交换信息的一种类型的协议。这种使用igp交换的信息可以包括路由信息和/或状态信息。该信息可以用于使用网络层协议例如网际协议(internet protocol,ip)来路由数据。
5.igp可以被划分为两类:距离矢量路由协议和链路状态路由协议。在实现距离矢量路由协议的网络中,该网络中的每个ne不能拥有关于完整网络拓扑的信息。而是,每个ne向其他路由器通告计算出的距离值,并且从其他路由器接收类似的通告。网络中的每个ne使用通告来填充区域路由表。
6.相比之下,在实现链路状态路由协议的网络中,每个ne存储关于完整网络拓扑的网络拓扑信息。然后,每个ne使用网络拓扑信息针对网络中的每个可能目的地来独立地计算从该ne起的下一最佳跳跃。然后,ne存储包括到每个可能目的地的下一最佳跳跃的集合的路由表。链路状态路由协议的示例包括中间系统到中间系统(intermediate system to intermediate system,is-is)、开放最短路径优先(open shortest path first,ospf)版本2(open shortest path first version 2,ospfv2)和ospf版本3(open shortest path first version3,ospfv3)。
7.网络中的每个ne将根据igp编码的信息转发至相邻ne,从而使网络泛洪有在网络中的每个ne处保存的信息。因此,实现igp的网络中的ne使网络泛洪有以下消息:该消息发送可以用于建立路由或网络拓扑的信息。


技术实现要素:

8.根据本公开内容的第一方面,提供了一种由实现内部网关协议(igp)的网络中的网络元件(ne)执行的方法,该方法包括:生成包括报头和数据的消息,其中,该报头包括对数据进行压缩之前数据的长度、在对数据进行压缩之后数据的长度以及压缩标识符;基于由压缩标识符标识的压缩方案来对数据进行压缩,以获得经压缩的数据;以及将包括报头
和经压缩的数据的经压缩的消息转发至网络中的其他ne。
9.可选地,在根据第一方面的第一实现方式中,由压缩标识符标识的压缩方案为有状态压缩方案,其中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩中使用的字典,并且其中,该方法还包括:在接收消息之前,从有状态压缩控制器接收要在对数据进行压缩中使用的字典;以及将该字典存储在ne的存储器中。
10.可选地,在根据第一方面的第二实现方式或第一方面的任何其他实现方式中,ne还为网络的有状态压缩控制器,其中,在接收消息之前,该方法还包括:监视正在通过网络泛洪的未经压缩的消息,以确定用于对通过网络转发的数据进行压缩的字典,其中,该字典限定未经压缩的位串和对应的压缩码字;向字典分配字典标识符;将字典标识符和字典发送至网络中的其他ne;以及将字典标识符和字典存储在ne的存储器中,其中,由压缩标识符标识的压缩方案为有状态压缩方案,并且其中,报头还包括字典标识符。
11.可选地,在根据第一方面的第三实现方式或第一方面的任何其他实现方式中,其中,该方法还包括:继续监视正在通过网络泛洪的未经压缩的消息和经压缩的消息,以基于在未经压缩的消息和经压缩的消息中出现的未经压缩的位串的计数来确定对字典的更新,其中,对字典的更新限定第二未经压缩的位串和第二对应的码字;以及将字典标识符和对字典的更新发送至其他ne。
12.可选地,在根据第一方面的第四实现方式或第一方面的任何其他实现方式中,其中,该方法还包括:存储字典和对应的字典标识符,其中,该字典存储未经压缩的位串与对应的码字之间的多个映射。
13.可选地,在根据第一方面的第五实现方式或第一方面的任何其他实现方式中,其中,在从有状态压缩控制器接收到字典和字典标识符之后,该方法还包括:在对数据进行压缩之前等待预定的缓冲时间。
14.可选地,在根据第一方面的第六实现方式或第一方面的任何其他实现方式中,其中,该方法还包括:在ne的存储器处,维护与多个不同的压缩方案对应的指令以及与多个不同的压缩方案中的每个压缩方案对应的压缩标识符。
15.可选地,在根据第一方面的第七实现方式或第一方面的任何其他实现方式中,其中,基于由压缩标识符标识的压缩方案对数据进行压缩包括:执行与由压缩标识符标识的压缩方案对应的指令,以对数据进行压缩。
16.可选地,在根据第一方面的第八实现方式或第一方面的任何其他实现方式中,报头包括类型字段、解压缩长度字段、压缩标识符字段、类型字段和压缩长度字段,其中,类型字段携带指示经压缩的消息携带经压缩的数据的值,其中,未经压缩的长度字段携带在对数据进行压缩之前数据的长度,其中,压缩长度字段携带经压缩的数据的长度,其中,压缩标识符字段携带压缩标识符,并且其中,类型字段携带标识正在被压缩的数据的类型的值。
17.可选地,在根据第一方面的第九实现方式或第一方面的任何其他实现方式中,其中,当压缩标识符字段携带与有状态压缩方案对应的压缩标识符时,报头包括字典标识符字段,该字典标识符字段携带与用于对数据进行压缩的字典对应的字典标识符。
18.本公开内容的第二方面涉及一种由实现igp的网络中的ne执行的方法,该方法包括:接收包括报头和经压缩的数据的消息,其中,该报头包括压缩之前的数据的长度、经压缩的数据的长度、以及压缩标识符;基于由压缩标识符标识的压缩方案来对经压缩的数据
进行解压缩,以获得压缩之前的数据;以及将数据或经压缩的数据中的至少一个存储在ne的本地存储器中。
19.可选地,在根据第二方面的第一实现方式中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩和解压缩中使用的字典,其中,基于由压缩标识符标识的压缩方案来对数据进行解压缩还包括:基于字典标识符和压缩标识符来对数据进行解压缩。
20.可选地,在根据第二方面的第二实现方式或第二方面的任何其他实现方式中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩和解压缩中使用的字典,并且其中,该方法还包括:将字典和对应的字典标识符存储在ne的ne本地存储器中,其中,字典存储未经压缩的位串与对应的码字之间的多个映射。
21.可选地,在根据第二方面的第三实现方式或第二方面的任何其他实现方式中,其中,该方法还包括:在ne的本地存储器处,维护与多个不同的压缩方案对应的指令以及与多个不同的压缩方案中的每个压缩方案对应的压缩标识符。
22.可选地,在根据第二方面的第四实现方式或第二方面的任何其他实现方式中,其中,基于由压缩标识符标识的压缩方案来对数据进行解压缩还包括:执行与由压缩标识符标识的压缩方案对应的指令,以对数据进行解压缩。
23.本公开内容的第三方面涉及一种实现igp的网络中的ne。该ne包括:存储器,该存储器存储指令;以及处理器,该处理器耦接至存储器并且被配置成执行指令,所述指令使该处理器被配置成:生成包括报头和数据的消息,其中,该报头包括在对数据进行压缩之前数据的长度、在对数据进行压缩之后数据的长度以及压缩标识符;基于由压缩标识符标识的压缩方案来对数据进行压缩,以获得经压缩的数据;以及将包括报头和经压缩的数据的经压缩的消息转发至网络中的其他ne。
24.可选地,在根据第一方面的第一实现方式中,由压缩标识符标识的压缩方案为有状态压缩方案,其中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩中使用的字典,并且其中,指令还使处理器被配置成:在接收消息之前,从有状态压缩控制器接收要在对数据进行压缩中使用的字典;以及将该字典存储在ne的存储器中。
25.可选地,在根据第三方面的第二实现方式或第三方面的任何其他实现方式中,ne还为网络的有状态压缩控制器,其中,在接收消息之前,指令还使处理器被配置成:监视正在通过网络泛洪的未经压缩的消息,以确定用于对通过网络转发的数据进行压缩的字典,其中,该字典限定未经压缩的位串和对应的压缩码字;向字典分配字典标识符;将字典标识符和字典发送至网络中的其他ne;以及将字典标识符和字典存储在ne的存储器中,其中,由压缩标识符标识的压缩方案为有状态压缩方案,并且其中,报头还包括字典标识符。
26.可选地,在根据第三方面的第三实现方式或第三方面的任何其他实现方式中,指令还使处理器被配置成:继续监视正在通过网络泛洪的未经压缩的消息和经压缩的消息,以基于在未经压缩的消息和经压缩的消息中出现的未经压缩的位串的计数来确定对字典的更新,其中,对字典的更新限定第二未经压缩的位串和第二对应的码字;以及将字典标识符和对字典的更新发送至其他ne。
27.可选地,在根据第三方面的第四实现方式或第三方面的任何其他实现方式中,指令还使处理器被配置成:存储字典和对应的字典标识符,其中,该字典存储未经压缩的位串与对应的码字之间的多个映射。
28.可选地,在根据第三方面的第五实现方式或第三方面的任何其他实现方式中,其中,在从有状态压缩控制器接收到字典和字典标识符之后,指令还使处理器被配置成:在对数据进行压缩之前等待预定的缓冲时间。
29.可选地,在根据第三方面的第六实现方式或第三方面的任何其他实现方式中,其中,存储器还被配置成存储与多个不同的压缩方案对应的压缩指令以及与多个不同的压缩方案中的每个压缩方案对应的压缩标识符。
30.可选地,在根据第三方面的第七实现方式或第三方面的任何其他实现方式中,指令还使处理器被配置成:执行与由压缩标识符标识的压缩方案对应的压缩指令,以对数据进行压缩。
31.可选地,在根据第三方面的第八实现方式或第三方面的任何其他实现方式中,报头包括类型字段、解压缩长度字段、压缩标识符字段、类型字段和压缩长度字段,其中,类型字段携带指示经压缩的消息携带经压缩的数据的值,其中,未经压缩的长度字段携带在对数据进行压缩之前数据的长度,其中,压缩长度字段携带经压缩的数据的长度,其中,压缩标识符字段携带压缩标识符,并且其中,类型字段携带标识正在被压缩的数据的类型的值。
32.可选地,在根据第三方面的第九实现方式或第三方面的任何其他实现方式中,当压缩标识符字段携带与有状态压缩方案对应的压缩标识符时,报头包括字典标识符字段,该字典标识符字段携带与用于对数据进行压缩的字典对应的字典标识符。
33.本公开内容的第四方面涉及一种实现igp的网络中的ne。该ne包括:存储器,该存储器存储指令;以及处理器,该处理器耦接至存储器并且被配置成执行指令,所述指令使该处理器被配置成:接收包括报头和经压缩的数据的消息,其中,该报头包括压缩之前的数据的长度、经压缩的数据的长度以及压缩标识符;基于由压缩标识符标识的压缩方案来对经压缩的数据进行解压缩,以获得压缩之前的数据;以及将数据或经压缩的数据中的至少一个存储在ne的本地存储器中。
34.可选地,在第四方面的第一实现方式中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩和解压缩中使用的字典,其中,指令还使处理器被配置成基于字典标识符和压缩标识符来对数据进行解压缩。
35.可选地,在根据第四方面的第二实现方式或第四方面的任何其他实现方式中,报头还包括字典标识符,该字典标识符标识在对数据进行压缩和解压缩中使用的字典,并且其中,指令还使处理器被配置成:将字典和对应的字典标识符存储在ne的ne本地存储器中,其中,该字典存储未经压缩的位串与对应的码字之间的多个映射。
36.可选地,在根据第四方面的第三实现方式或第四方面的任何其他实现方式中,存储器还被配置成:存储与多个不同的压缩方案对应的压缩指令以及与多个不同的压缩方案中的每个压缩方案对应的压缩标识符。
37.可选地,在根据第四方面的第四实现方式或第四方面的任何其他实现方式中,指令还使处理器被配置成:执行与由压缩标识符标识的压缩方案对应的压缩指令,以对数据进行解压缩。
38.出于清楚的目的,可以将前述实施方式中的任意一个实施方式与其他前述实施方式中的任意一个或更多个实施方式进行组合,以在本公开内容的范围内创建新的实施方式。
39.根据结合附图进行的以下详细描述和权利要求书,将更清楚地理解这些特征和其他特征。
附图说明
40.为了更完整地理解本公开内容,现在参照结合附图进行的以下简要描述以及详细描述,其中,相似的附图标记表示相似的部分。
41.图1是示出根据本公开内容的各种实施方式的被配置成使用igp来发送经压缩的消息的网络的图。
42.图2是根据本公开内容的各种实施方式的适于对要使用igp编码的数据进行压缩的ne的示意图。
43.图3是示出根据本公开内容的各种实施方式的用于对消息中的数据进行压缩的字典的图。
44.图4a至图4b是示出根据本公开内容的各种实施方式的对消息中的数据执行压缩和解压缩的方法的消息序列图。
45.图5是示出根据本公开内容的各种实施方式的用于更新字典并将对字典的更新转发至网络中的其他ne的方法的消息序列图。
46.图6是示出根据本公开内容的各种实施方式的消息和经压缩的消息的图。
47.图7是示出根据本公开内容的各种实施方式的根据中间系统到中间系统(is-is)编码的消息和经压缩的消息的图。
48.图8a至图8b是示出根据本公开内容的各种实施方式的根据开放最短路径优先(ospf)版本2(ospfv2)编码的消息和经压缩的消息的图。
49.图9a至图9b是示出根据本公开内容的各种实施方式的根据ospf版本3(ospfv3)编码的消息和经压缩的消息的图。
50.图10是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行压缩的方法的流程图。
51.图11是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行压缩的设备的图。
52.图12是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行解压缩的方法的流程图。
53.图13是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行解压缩的设备的图。
具体实施方式
54.首先应当理解,虽然下面提供了一个或更多个实施方式的说明性实现方式,但是所公开的系统和/或方法可以使用任意数目的技术来实现,无论所述技术是当前已知的还是现有的均是如此。本公开内容绝不应当限于下面示出的说明性实现方式、附图和技术——包括本文示出和描述的示例性设计和实现方式,而是可以在所附权利要求书的范围连同其等同方案的全部范围内进行修改。
55.图1是示出根据本公开内容的各种实施方式的被配置成使用igp来发送经压缩的
消息的网络100(在本文也被称为“as”或“域”)的图。根据本公开内容的各种实施方式,网络100为被配置成实现igp例如is-is、ospfv2或ospfv3的网络或子网络。网络100包括中央实体103(在本文也被称为“控制器”)和多个ne 104至112。中央实体103经由链路159耦接至ne中的至少一个ne 105,并且ne 104至ne 112通过链路160互连。
56.在实施方式中,中央实体103可以基本上类似于路径计算元件(path computation element,pce),其在互联网工程任务组(internet engineering task force,ietf)请求评论(request for comments,rfc)8281的由e.crabbe于2017年12月发布的题为“path computation element communication protocol(pcep)extensions for pce-initiated lsp setup in a stateful pce model”中进一步被描述。在实施方式中,中央实体103可以基本上类似于软件定义网络控制器(software defined network controller,sdnc),其在ietf rfc 8402的由c.filsfils于2018年7月发布的题为“segment routing architecture”中进一步被描述。在实施方式中,中央实体103可以基本上类似于应用层流量优化(application layer traffic optimization,alto)服务器,其在ietf rfc 7285的由r.alimi于2014年9月发布的题为“application layer traffic optimization(alto)protocol”中进一步被描述。
57.ne 104至ne 112(在本文也被称为“节点”)均可以为被配置成通过根据igp对数据进行编码来在网络100上转发数据的物理装置,例如路由器、网桥、网络交换机、或者逻辑装置例如虚拟机。在实施方式中,ne 104至ne 112中的至少一些ne为被定位在网络100的边缘处的头端节点或边缘节点。例如,ne 104至ne 112中的一个或更多个ne可以为在其处接收流量(例如,控制分组和数据分组)的入口节点,并且ne 104至ne 112中的一个或更多个ne可以为从其发送流量的出口节点。ne 104至ne 112中的一些ne例如108和107可以为被配置成从网络100中的另一ne 104至ne 112接收流量并且转发流量的内部节点。
58.链路159可以为将ne中的一个ne 105与中央实体103互连的有线链路、无线链路或接口。类似地,链路160可以为将ne 104至ne 112中的每个ne互连的有线链路、无线链路或接口。
59.虽然在图1中仅示出了九个ne 104至112,但是应当理解,图1所示的网络100可以包括任意数目的ne。在实施方式中,中央实体103和ne 104至ne 112被配置成实现各种分组转发协议,例如但不限于多协议标签交换(multi-protocol label switching,mpls)、ip版本4(internet protocol version 4,ipv4)、ip版本6(internet protocol version 6,ipv6)和大分组协议(big packet protocol)。
60.网络100中的ne 104至ne 112中的每个ne维护一个或更多个链路状态数据库(link state database,lsdb),一个或更多个链路状态数据库存储关于任何给定区域或网络中的ne 104至ne 112与链路160的链路状态信息。存储在这些lsdb中的链路属性包括本地/远程ip地址、本地/远程接口标识符、链路度量和流量工程(traffic engineering,te)度量、链路带宽、可预留带宽、每分类服务(class-of-service,cos)类别预留状态、抢占、以及共享风险链路组(shared risk link group,slrg)。ne 104至ne 112中的每个ne可以从本地存储的lsdb中检索拓扑信息,并且将该拓扑信息分发至用户或中央实体103。
61.中央实体103可以使用由网络100中的ne 104至ne 112中的每个ne发送的通告来确定网络拓扑,其中,所述通告可以包括前缀、安全标识符(security identifier,sid)、te
信息、相邻ne的标识符(identifier,id)、链路、接口、端口和路由。中央实体103被配置成从网络100内的ne 104至ne 112收集te信息和链路状态信息。
62.在一些实施方式中,中央实体103被配置成使用网络100的网络拓扑和网络100内的ne 104至ne 112的能力来确定或构建被定位在网络100的边缘处的两个ne 104至112之间的路径。在其中网络100实现优选路径路由的实施方式中,中央实体103被配置成确定两个ne 104至112之间的最短路径、两个ne 104至112之间的一个或更多个优选路径路由(preferred path route,ppr)以及/或者两个ne 104至112之间的一个或更多个ppr图。
63.最短路径是指基于度量确定的两个ne之间或者源与目的地之间的路径,所述度量为例如与路径上的每个链路相关联的成本或权重、路径上的ne的数目、路径上的链路的数目等。在实施方式中,可以使用迪杰斯特拉(dijkstra)的最短路径优先(shortest path first,spf)算法针对目的地计算最短路径。ppr(在本文也被称为“非最短路径(non-shortest path,nsp)”)是指自定义路径或者可能偏离所计算的两个ne之间或源与目的地之间的最短路径的任何其他路径。ppr也可以与最短路径相同。可以基于针对两个ne 104至112之间或源与目的地之间的满足一个或更多个网络特性(例如te)或服务要求的路径的应用请求或服务器请求,来确定ppr。ppr在2019年1月28日提交的国际申请第pct/us2018/015419号中进一步被限定。ppr图是指一个或更多个入口ne 104至112(在本文也被称为“源”)与一个或更多个出口ne 104至112(在本文也被称为“目的地”)之间的多个ppr的集合。ppr图在2019年5月2日提交的国际申请第pct/us2019/030440号中进一步被限定。最短路径、ppr和ppr图均可以包括一个或更多个ne 104至112和/或链路160的顺序排序,该顺序排序可以通过标签、地址或id进行标识。
64.在确定要由网络中的ne 104至ne 106提供的最短路径、ppr和/或ppr图时,中央实体103经由链路159向ne中的一个ne 105发送描述最短路径、ppr和/或ppr图的信息。在一些情况下,中央实体103还可以经由链路159向ne中的一个ne 105发送描述网络100的拓扑信息的信息。
65.在任一情况下,当ne 105从中央实体103或者任何其他源或客户端接收到信息时,ne 105使用igp对该信息进行编码,以将该信息发送至网络中的其余的ne 104以及ne 106至ne 112。例如,在ne 105从中央实体103或者任何其他源或客户端接收到信息之后,ne 105本地存储该信息,根据由网络100实现的igp(例如,is-is、ospfv2或ospfv3)将该信息编码至消息中,并且将该信息发送至相邻的ne 104和ne 106。随后,ne 104本地存储该信息并且将该信息转发至相邻的ne 109,并且ne 106本地存储该信息并且将该信息转发至相邻的ne 107和ne 112。ne 107、ne 109和ne 112均类似地存储信息并且将信息转发至相邻的ne 104至ne 112,依此类推。以这样的方式,在ne 105接收到信息之后,该信息根据igp被编码并且被泛洪到网络100中的所有ne 104至112。
66.需要通过使用igp的网络100泛洪的信息的总量不断地增长,这导致对网络100内的资源的低效使用。另外,当通过使用igp的网络100泛洪大量数据时,网络特性例如带宽、吞吐量、等待时间、差错率等可能受到显著影响。例如,实现ppr图的网络100可以向网络100中的每个单个ne 104至ne 112转发描述ppr图中的每个ppr的ppr图类型-长度-值(type-length-value,tlv)。另外,对ppr图的编码包括针对每个ppr上的每个元素的ppr路径描述元素(ppr-path description element,ppr-pde),其通常携带大量数据。
67.然而,某些igp对在单个消息或tlv中可以传送多少数据施加了限制。例如,当网络100实现is-is作为igp时,使用链路状态分组(link state packet,lsp)在网络100上通告链路状态信息,该链路状态分组包含用于携带不同类型的链路或节点相关信息的各种类型的tlv。lsp中的每个tlv被限制为255个字节(1个八位位组)。在网络工作组rfc 1195的由r.callon于1990年12月发布的题为“use of osi is-is for routing in tcp/ip and dual environments”中描述了关于is-is的附加信息。
68.类似地,当网络100实现ospfv2或ospfv3时,使用各种类型的lsa来在网络100上通告链路状态信息,各种类型的lsa中的每个lsa可以携带各种tlv。lsa中的每个tlv可以被限制为64,000个字节(2个八位位组)。在网络工作组rfc 2328的由j.moy于1998年4月发布的题为“ospf version 2”中描述了关于ospfv2的附加信息。在网络工作组rfc 2740的由r.colton等于2008年7月发布的题为“ospf for ipv6”中描述了关于ospfv3的附加信息。因此,对通过使用igp的网络进行的数据传输的管理变得越来越困难。
69.本文公开了涉及用于对通过使用igp的网络转发的数据进行压缩的增强协议的实施方式。在实施方式中,ne 104至ne 112中的每个ne接收包括报头和要被压缩的数据的消息。该报头包括在对数据进行压缩之前数据的长度、在对数据进行压缩之后数据的长度以及压缩标识符。接收消息的ne 104至ne 112被配置成基于由压缩标识符标识的压缩方案来对数据进行压缩,以获得经压缩的数据。然后,ne 104至ne 112将包括报头和经压缩的数据的经压缩的消息转发至网络100中的其他ne 104至ne 112。
70.在一些实施方式中,网络100被配置成实现无状态压缩方案或有状态压缩方案。在无状态压缩方案中,ne 104至ne 112中的每个ne被配置成基于在消息的报头中携带的压缩标识符来对数据进行压缩,而不考虑先前已经通过网络传送的任何数据。在该实施方式中,与各种不同的压缩方案对应的指令被预先配置或者已经被存储在ne 104至ne 112中的每个ne处。当消息被ne 104至ne 112接收到时,ne 104至ne 112自动地执行与由消息中的压缩标识符标识的压缩方案对应的指令,以对消息中的数据进行压缩并生成经压缩的消息。ne 104至ne 112基于由网络实现的底层igp将经压缩的消息转发至相邻的ne 104至112。
71.在有状态压缩方案中,ne 104至ne 112中的一个或更多个被指定为网络100的压缩控制器。例如,如图1所示,ne 104(以框示出)可以被指定为网络100的压缩控制器(在下文中被称为“压缩控制器104”)。在一个实施方式中,多个候选压缩控制器可以通过网络100传送描述相应候选压缩控制器的通告。候选压缩控制器可以由网络100的操作者预先配置或者基于在ne 104至ne 112中的每个ne处的预先配置信息来确定。例如,当ne 104和ne 105为网络100的候选压缩控制器时,ne 104和ne 105使网络100泛洪有携带描述相应ne 104和ne 105的信息的通告。描述ne 104的通告可以携带例如ne 104的ip地址和/或ne 104的预先配置的优先级。类似地,描述ne 105的通告可以携带例如ne 105的ip地址和/或ne 105的预先配置的优先级。
72.在网络100中的所有ne 104至ne 112接收到针对ne 104和ne 105的通告之后,ne 104至ne 112中的每个ne可以基于通告中携带的信息来自动地确定压缩控制器104。例如,ne 104至ne 112中的每个ne被预先配置成选择具有最高ip地址或最高优先级的候选压缩控制器作为网络100的压缩控制器104。在这种情况下,当在其他候选压缩控制器之中ne 104具有最高ip地址时,网络100中的其他ne 104至ne 112中的每个ne确定ne 104为网络
100的压缩控制器104。当在其他候选压缩控制器之中ne 104具有最高的预先配置的优先级时,网络100中的其他ne 104至ne 112中的每个ne确定ne 104为网络100的压缩控制器104。
73.在实施方式中,压缩控制器104监视正在通过网络100转发的未经压缩的消息,以确定要用于对通过网络100转发的数据进行压缩的一个或更多个字典。例如,压缩控制器104监视正在通过网络100转发的未经压缩的消息,以确定正在转发的流量中的80%流量携带具有相同48位前缀的ipv6地址。在这种情况下,压缩控制器104确定该48位前缀为可以压缩为码字的未经压缩的位串,该码字可以为4位或更少。压缩控制器104生成并存储包括未经压缩的位串(48位前缀)到码字的映射的字典。
74.在实施方式中,压缩控制器104可以识别在正在通过网络100转发的流量中具有高出现率的多个未经压缩的位串。在这些实施方式中,压缩控制器104针对在流量中具有高出现率的未经压缩的位串中的每个位串确定码字。然后,压缩控制器104将未经压缩的位串与码字之间的映射添加至字典。
75.在实施方式中,压缩控制器104生成并存储多个不同的字典。在不同的字典中的每个字典中,相同的未经压缩的位串可以映射到不同的码字或相同的码字。不同的字典中的每个字典存储将未经压缩的位串与对应的码字进行关联的一个或更多个映射。
76.在实施方式中,压缩控制器104确定并存储标识字典的字典标识符。每个字典可以与唯一的字典标识符相关联。字典标识符可以为唯一地标识字典的字母数字值或位串。
77.在生成并存储字典和字典标识符之后,压缩控制器104通过网络100转发字典和字典标识符。如上面描述的,压缩控制器104将字典和字典标识符转发至相邻的ne 105和ne 106,ne 105和ne 106将字典和字典标识符转发至相邻的ne 106、ne 109和ne 112,依此类推。
78.接收ne 104至ne 112中的每个接收ne将字典和字典标识符本地存储在接收ne 104至ne 112的存储器中,以在随后的时间对数据进行压缩中使用。在实施方式中,接收ne 104至ne 112中的每个接收ne在开始基于字典和字典标识符压缩数据之前等待预定的缓冲时间。预定的缓冲时间有助于确保在ne 104至ne 112开始基于字典和字典标识符压缩数据之前所有其他的ne 104至ne 112均已经存储了字典和字典标识符。
79.随后,ne 104至ne 112中的一个ne可以从中央实体103或外部客户端接收消息,包括要通过网络100泛洪的信息。在实施方式中,该消息可以包括报头,该报头包括标识要用于对消息中的数据进行压缩的字典的字典标识符。在该实施方式中,ne 104至ne 112通过用由字典中的映射限定的对应码字替换数据中未经压缩的位串来使用字典对消息中的数据进行压缩,以获得经压缩的数据。之后,ne 104至ne 112通过网络100转发包括经压缩的数据的经压缩的消息。
80.在实施方式中,由ne 104至ne 112接收的消息不包括报头,而是仅包括要压缩的数据。在这种情况下,ne 104至ne 112可以基于字典中的映射来确定要用于对数据进行压缩的字典。在实施方式中,ne 104至ne 112扫描消息中的数据,以确定与字典中的每个字典中存储的未经压缩的位串匹配的多个未经压缩的位串。ne 104至ne 112确定具有与在消息中标识的未经压缩的位串匹配次数最高的字典。在另一实施方式中,ne 104至ne 112可以被配置成针对携带不同类型的数据或不同tlv的消息使用特定的字典。在另一实施方式中,ne 104至ne 112可以被配置成针对所接收到的不包括字典标识符的所有消息使用默认字
典。
81.在确定要用于不包括报头的消息的字典之后,ne 104至ne 112向该消息添加报头,其中,该报头携带与被确定用于该消息的字典对应的字典标识符。在实施方式中,该报头还携带在对数据进行压缩之前数据的长度、在压缩之后的数据的长度、数据的类型、以及/或者描述在压缩之前和/或在压缩之后的消息的任何其他信息。
82.一旦将报头添加至消息,ne 104至ne 112则基于被确定用于该消息的字典来对该消息进行压缩。ne 104至ne 112通过用由字典中的映射限定的对应码字替换数据中未经压缩的位串来使用字典对消息中的数据进行压缩,以获得经压缩的数据。ne 104至ne 112创建经压缩的消息,其中,经压缩的消息包括报头和经压缩的数据。ne 104至ne 112将经压缩的消息发送至相邻的ne 104至ne 112,以使网络100泛洪有经压缩的消息。
83.接收经压缩的消息的另一ne 104至ne 112可以基于在该经压缩的消息的报头中携带的字典标识符来对消息进行解压缩。接收消息的ne 104至ne 112具有本地存储在ne 104至ne 112的存储器中的字典标识符和字典。ne 104至ne 112使用与字典标识符对应的本地存储的字典来确定与经压缩的数据中包括的码字对应的未经压缩的位串,以对经压缩的数据进行解压缩并且获得数据。
84.在对经压缩的数据执行解压缩以获得数据之后,ne 104至ne 112可以通过确定解压缩之后的数据的长度与压缩之前的数据的长度匹配来对数据进行验证,解压缩之后的数据的长度与压缩之前的数据的长度两者都包括在消息的报头中。如果解压缩之后的数据的长度与压缩之前的数据的长度不匹配,则ne 104至ne 112可以丢弃该消息。如果解压缩之后的数据的长度与压缩之前的数据的长度匹配,则在继续通过网络100转发该经压缩的消息之前,ne 104至ne 112对本地转发表和/或lsdb进行更新,以包括消息中携带的数据。
85.本文公开的实施方式的优点在于,可以通过对要通过网络100转发并在网络100中的每个单个ne 104至ne 112处存储的数据进行压缩来显著地减少网络开销。例如,通过对数据进行压缩和减少通过网络100传送的数据的量,网络100将固有地具有更多的带宽以通过更多的带宽来传送附加数据,并且网络100的吞吐量可以显著地提高。另外,由于网络100内的网络资源的较高可用性,可以减少等待时间。另外,通过对数据进行压缩还可以极大地减少在ne 104至ne 112中的每个ne的线卡处接收分组/消息与在ne 104至ne 112中的每个ne处的套接口处进行处理之间发生的延迟。因此,本文公开的实施方式增强了igp以提供更有效且资源有效的方式,以通过该方式使网络100泛洪有必要的信息。
86.图2是根据本公开内容的各种实施方式的适于对要使用igp进行编码的数据进行压缩的ne 200的示意图。在实施方式中,ne 200可以实现为ne 104至ne 112或中央实体103中的任意一个。
87.ne 200包括端口220、收发器单元(tx/rx)210、处理器230和存储器260。处理器230包括压缩模块235。端口220耦接至tx/rx 210,tx/rx 210可以为发送器、接收器或其组合。tx/rx 210可以经由端口220发送和接收数据。处理器230被配置成对数据进行处理。存储器260被配置成存储用于实现本文描述的实施方式的数据和指令。ne 200还可以包括电到光(electrical-to-optical,eo)部件和光到电(optical-to-electrical,oe)部件,所述eo部件和所述oe部件耦接至端口220和tx/rx210,以用于接收和发送电信号和光信号。
88.处理器230可以通过硬件和软件来实现。处理器230可以实现为一个或更多个中央
处理单元(central processing unit,cpu)芯片和/或图形处理单元(graphics processing unit,gpu)芯片、逻辑单元、核(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate arrays,fpga)、专用集成电路(application specific integrated circuit,asic)以及数字信号处理器(digital signal processor,dsp)。处理器230与端口220、tx/rx 210和存储器260进行通信。压缩模块235由处理器230实现,以执行用于实现本文讨论的各种实施方式的指令。例如,压缩模块235被配置成创建字典,以在对要使用igp编码并通过网络100转发的数据进行压缩中使用。压缩模块235还被配置成:根据压缩标识符和/或字典来对数据进行压缩;以及根据压缩标识符和/或字典来对数据进行解压缩。包括压缩模块235提供了对ne 200的功能的改进。压缩模块235还实现ne 200到不同状态的转换。替选地,压缩模块235被实现为存储在存储器260中的指令。
89.存储器260包括磁盘、磁带驱动器或固态驱动器中的一个或更多个,并且可以用作溢出数据存储装置,以当程序被选择用于执行时存储这样的程序并且存储在程序执行期间读取的指令和数据。存储器260可以为易失性和非易失性的,并且可以为只读存储器(read-only memory,rom)、随机存取存储器(random-access memory,ram)、三态内容可寻址存储器(ternary content-addressable memory,tcam)和静态随机存取存储器(static random-access memory,sram)。
90.在实施方式中,存储器260被配置成存储压缩标识符263、字典标识符266、字典270、lsdb 273、转发数据库276以及/或者用于压缩方案的指令279。压缩标识符263为应当用于对消息中的数据进行解压缩的压缩方案的标识符。压缩标识符263可以唯一地标识预先配置的压缩方案。预先配置的压缩方案可以包括可以由ne 200执行的任何压缩方案,例如deflate压缩方案(如在网络工作组rfc 1951的由p.deutsch于1996年5月发布的题为“deflate compressed data formal specification version 1.3”中描述的)、lzs压缩方案(如在网络工作组rfc 2395的由r.friend等于1998年10月发布的题为“ip payload compressing using lzs”中描述的)、itu-t v.44压缩方案(如在网络工作组rfc 3051的由j.heath等于2001年1月发布的题为“ip payload compression using it-t v.44packet method”中描述的)、以及/或者任何其他压缩方案。用于压缩方案的指令279包括可以针对可以由ne 200执行的预先配置的压缩方案中的每个压缩方案执行的逻辑或代码。字典标识符266为唯一地标识字典270的值,字典270存储未经压缩的位串与对应的码字之间的映射。lsdb 273存储描述网络100的网络拓扑的信息。转发数据库276包括描述从ne 200到网络100中的每个目的地的下一跳跃的路由信息。
91.应当理解,通过将可执行指令编程和/或加载至ne 200上,处理器230和/或存储器260中的至少一个改变,从而将ne 200部分地转换为具有由本公开内容教导的新型功能的特定的机器或设备,例如多核转发架构。对于电气工程领域和软件工程领域来说以下是基本的:可以通过将可执行软件加载至计算机中而实现的功能可以通过众所周知的设计规则转变为硬件实现方式。以软件实现构思与以硬件实现构思之间的决策通常取决于对设计的稳定性和要产生的单元的数目的考虑,而不是从软件域向硬件域转换时涉及的任何问题。通常,仍然经受频繁变化的设计可以优选地以软件实现,这是因为重新开发硬件实现方式比重新开发软件设计昂贵。通常,将大量生产的稳定的设计可以优选地以硬件例如以asic实现,这是因为对于大的生产运作,硬件实现方式可能比软件实现方式便宜。通常,可以以
软件形式开发和测试设计,并且随后通过众所周知的设计规则将该设计转换为硬连接软件指令的asic方式的等效硬件实现方式。以相同的方式,由于被新的asic控制的机器为特定的机器或设备,因此同样地,已经编程和/或加载有可执行指令的计算机可以被视为特定的机器或设备。
92.图3是示出了根据本公开内容的各种实施方式的用于对消息中的数据进行压缩的字典270的图。字典270对应于字典标识符266,字典标识符266如上面所描述的唯一地标识字典270。字典270包括多个映射310a至310n。每个映射310a至310n描述未经压缩的位串303a至303n与压缩码字306a至306n之间的关联。
93.在实施方式中,压缩控制器104可以识别在正在通过网络100转发的流量中具有高出现率的多个未经压缩的位串303a至303n。在该实施方式中,压缩控制器104针对未经压缩的位串303a至303n中的每个未经压缩的位串创建映射310a至310n,其中,每个映射310a至310n限定未经压缩的位串303a至303n与压缩码字306a至306n之间的关联。
94.与上面参照图1描述的示例类似,压缩控制器104可以监视正在通过网络100转发的未经压缩的消息,以确定正在转发的流量中的80%流量携带具有相同48位前缀的ipv6地址。在这种情况下,压缩控制器104可以确定该48位前缀为可以压缩为码字306a的未经压缩的位串303a,该码字306a可以为4位或更少。压缩控制器104生成并存储包括未经压缩的位串303a(48位前缀)到码字306a的映射310a的字典270。
95.在实施方式中,压缩控制器104生成并存储多个不同的字典270。在不同的字典270中,未经压缩的位串303a至303n可以映射到不同的码字306a至306n。不同的字典270中的每个字典存储将未经压缩的位串303a至303n与对应的码字306a至306n关联的一个或更多个映射310a至310n。
96.图4a至图4b是示出根据本公开内容的各种实施方式的对消息中的数据执行压缩和解压缩的方法400和方法450的消息序列图。特别地,图4a是示出根据有状态压缩方案对消息中的数据执行压缩和解压缩的方法400的消息序列图。图4b是示出根据无状态压缩方案对消息中的数据执行压缩和解压缩的方法450的消息序列图。
97.现在参照图4a,方法400由ne 104(关于图4a被称为压缩控制器104)、ne 105和ne 109执行。压缩控制器104通信地耦接至ne 105和ne 109。执行方法400以实现有状态压缩方案,该有状态压缩方案是指依赖于压缩控制器104的压缩方案,该压缩控制器104限定被转发至网络100中的所有ne 104至ne 112并且用于对数据进行压缩的字典270。
98.在步骤403处,压缩控制器104监视正在通过网络100转发的未经压缩的消息。例如,网络100中的ne 104至ne 112可以不断地转发由网络100中的ne 104至ne 112中的每个ne保存的携带信息(拓扑信息和/或路由信息)的消息。压缩控制器104不仅可以保存在这些消息中的每个消息中接收到的信息,而且还可以监视和分析在消息例如tlv和子tlv中限定的位串,以限定字典270。
99.在实施方式中,在监视未经压缩的消息的同时,压缩控制器104可以识别在正在通过网络100转发的流量中具有高出现率的多个未经压缩的位串303a至303n(在下文中被称为“未经压缩的位串303”)。在实施方式中,压缩控制器104确定对频繁包括在通过网络100转发的消息中的某些未经压缩的位串303的计数。在该实施方式中,当压缩控制器104确定在预定时间段内对正在通过网络100转发的消息中存在的未经压缩的位串303的计数超过
阈值时,压缩控制器104生成针对未经压缩的位串303的对应码字306a至306n(在下文中被称为“码字306”)。
100.在一个实施方式中,压缩控制器104确定在正在通过网络100转发的流量中存在未经压缩的位串303的百分比。在该实施方式中,压缩控制器104生成针对具有比预设阈值高的百分比的未经压缩的位串303的对应码字306。
101.在步骤406处,压缩控制器104获得或生成用于对通过网络100转发的数据进行压缩的字典270。字典270包括未经压缩的位串303与对应的码字306之间的映射310。在步骤409处,压缩控制器104将字典标识符266分配给在步骤406处获得的字典270。压缩控制器104还将字典270和字典标识符266本地地存储在存储器260中。
102.在步骤411处,压缩控制器104将字典270和字典标识符266转发至相邻的ne 105。类似地,在步骤413处,压缩控制器104将字典270和字典标识符266转发至另一相邻的ne 109。
103.在从压缩控制器104接收到字典270和字典标识符266之后,ne 105和ne 109被配置成:在开始使用字典270和字典标识符266来对数据进行压缩之前等待预定的缓冲时间。当ne 109在接收到字典270和字典标识符266并等待预定的缓冲时间之后接收到消息时,ne 109可以确定该消息包括应当基于特定的字典270来进行压缩的数据。在该消息不包括报头的情况下,在步骤415处,ne 109添加报头,该报头包括标识字典270的字典标识符266以及标识应当实现有状态压缩的压缩标识符263。在实施方式中,报头还可以包括在对数据进行压缩之前的消息的长度以及在对数据进行压缩之后的消息的长度。
104.在步骤418处,ne 109基于压缩标识符263、字典标识符266和与字典标识符266对应的字典270来对数据进行压缩,以获得经压缩的数据。ne 109通过如由字典270的映射310限定的将在消息的数据中识别的未经压缩的位串303转换为对应的码字306来对消息中的数据进行压缩。ne 109获得或创建包括报头和经压缩的数据的经压缩的消息,并且分别在步骤419和步骤421处向相邻的ne 105和ne 104转发经压缩的消息。
105.如应当理解的,在从压缩控制器104接收到字典标识符266和字典270并接收到用于压缩的消息之后,ne 105还可以执行步骤415和步骤418以创建经压缩的消息。ne 105还可以向相邻的ne 106和ne 104转发经压缩的消息。
106.在一些情况下,ne 109还可以从另一相邻的ne 105接收包括报头和经压缩的数据的经压缩的消息。在这种情况下,在步骤424处,ne 109基于在经压缩的消息的报头中携带的压缩标识符263和字典标识符266来对数据进行解压缩,以获得原始消息中的原始数据。首先,ne 109可以确定与在经压缩的消息的报头中携带的字典标识符266对应的字典270。然后,ne 109可以确定经压缩的消息的经压缩的数据中的码字306,并且然后,将码字306转换为在字典270的映射310中标识的未经压缩的位串303。在实施方式中,ne 109可以通过确保压缩之后的消息的长度与在经压缩的消息的报头中携带的对数据进行压缩之前的消息的长度匹配,来验证解压缩之后的消息。在实施方式中,根据消息中的数据的类型,ne 109在对数据进行解压缩之后将数据存储在lsdb 273或转发数据库276中。在步骤427处,压缩控制器104执行类似的步骤,以对经压缩的消息进行解压缩、对数据进行验证并且存储数据。
107.现在参照图4b,方法450由ne 104、ne 105和ne 109执行。执行方法450以实现无状
态压缩方案,该无状态压缩方案是指作为指令279存储在网络100中的ne 104至ne 112中的每个ne处的预先配置的压缩方案。
108.ne 109从网络100中的另一ne 104至ne 108或ne 110至ne 112接收消息。在实施方式中,ne 109确定该消息包括在通过网络100转发之前应当进行压缩的数据,但是该消息不包括报头。在该实施方式中,在步骤455处,ne 109向消息添加报头,其中,该报头携带与压缩方案对应的压缩标识符263,针对该压缩方案的指令279被本地存储在网络100中的ne 104至ne 112中的每个ne处。例如,ne 109可以添加与应被用于对消息中的数据进行压缩的默认压缩方案对应的压缩标识符263。在实施方式中,报头还可以包括对数据进行压缩之前的消息的长度以及对数据进行压缩之后的消息的长度。
109.在另一实施方式中,消息包括携带压缩标识符263的报头。在任一情况下,在步骤458处,ne 109基于与由压缩标识符263标识的压缩方案对应的指令279来对消息中的数据进行压缩,以获得经压缩的数据。ne 109创建包括经压缩的数据和报头的经压缩的消息。ne 109分别在步骤461和步骤463处向相邻的ne 105和ne 104转发经压缩的消息。
110.ne 104从ne 109接收经压缩的消息。在步骤469处,ne 104基于经压缩的消息的报头中携带的压缩标识符263来对经压缩的消息进行解压缩。例如,ne 104执行在网络100中的所有ne 104至ne 112处预先配置并且与由压缩标识符263标识的压缩方案对应的指令279,以对经压缩的消息中的经压缩的数据进行解压缩并且获得原始消息。在实施方式中,ne 104可以通过确保压缩之后的消息的长度与经压缩的消息的报头中携带的对数据进行压缩之前的消息的长度匹配,来验证解压缩之后的消息。在实施方式中,根据消息中的数据的类型,ne 109在对数据进行解压缩之后将数据存储在lsdb 273或转发数据库276中。在接收到经压缩的消息之后,ne 105可以执行类似的步骤。
111.图5是示出根据本公开内容的各种实施方式的用于更新字典270并且将对字典270的更新转发至网络100中的其他ne 104至ne 112的方法500的消息序列图。当网络100实现有状态压缩方案时,方法500也由相邻的ne 104、ne 105和ne 109执行。在已经在网络100中的所有ne 104至ne 112处创建并配置字典270之后,执行方法500。
112.在步骤503处,压缩控制器104继续监视正在通过网络100转发的所有流量(例如,未经压缩的消息和经压缩的消息)。这与方法400的步骤403类似,不同之处在于在方法500中,压缩控制器104附加地监视和检查经压缩的消息。在该步骤期间,压缩控制器104识别在两种类型消息中具有高出现率的多个未经压缩的位串303。
113.基于对这些消息的监视,在步骤506处,压缩控制器104确定对字典270的更新。例如,压缩控制器104识别在正在通过网络100转发的消息和经压缩的消息中频繁出现的另一未经压缩的位串303,并且确定针对未经压缩的位串303的对应码字306。压缩控制器104确定对字典270的更新——包括新的未经压缩的位串303与对应的码字306之间的映射310,并且将该更新存储至字典270。对字典270的更新可以是指对字典270的现有映射310的更新,或者可以是指限定未经压缩的位串303与对应的码字306之间的新关联的新映射310。
114.在步骤509处,ne 104将与正在更新的字典270对应的字典标识符266以及对字典270的更新(例如,新的映射310)转发至ne 105。类似地,在步骤511处,ne 104将与正在更新的字典270对应的字典标识符266以及对字典270的更新转发至ne 109。
115.在步骤513处,ne 109使用字典标识符266对字典270进行更新以包括由ne 109接
收到的新映射310。新映射310可以替代本地存储的字典270中的现有映射310,或者作为新映射310被添加至本地存储的字典。在步骤518处,ne 109基于对字典270的更新来开始对在消息中接收到的数据进行压缩,以获得经压缩的消息。步骤518与方法400的步骤418类似。ne 105可以执行与步骤513和步骤518类似的步骤。
116.图6是示出根据本公开内容的各种实施方式的消息600和经压缩的消息650的图。在一些实施方式中,图6示出了在通过网络100泛洪经压缩的消息600之前由起始ne104至ne 112执行的中间步骤。在实施方式中,首先,起始ne 104至ne 112生成消息600。然后,ne 104至ne 112根据压缩标识符263和/或字典标识符266来对消息600中的数据615进行压缩,以形成经压缩的消息650。然后,起始ne 104至ne 112将经压缩的消息650发送至网络100中的其他ne 104至ne 112。
117.消息600包括报头601和尚未进行压缩的数据615。在实施方式中,ne 104至ne 112接收不具有报头601的消息600并且将报头601添加至数据615。在另一实施方式中,ne 104至ne 112接收包括报头601的消息600。
118.报头601包括类型603、压缩长度606、解压缩长度613、数据类型611、压缩标识符263和/或字典标识符266。应当理解,报头601可以包括可以用于对数据615进行压缩和解压缩的其他数据。类型603(也被称为tlv类型)是指示消息600应当进行压缩以及/或者携带经压缩的数据的值。该值可以由互联网编号分配机构来分配。
119.在实施方式中,压缩长度606(也被称为长度)为在对数据615进行压缩之前的消息600的长度。在实施方式中,压缩长度606为在对数据615进行压缩之前的数据615的长度。在实施方式中,压缩长度606不包括报头601的长度。
120.在实施方式中,解压缩长度613(也被称为原始tlv长度)为在对数据615进行压缩之后的消息600的长度。在实施方式中,解压缩长度613为在数据615对数据615进行压缩之后的数据615。在实施方式中,解压缩长度613不包括报头601的长度。
121.数据类型611(也被称为原始tlv类型)指示数据615的类型。例如,数据类型611包括表示数据615的类型的值。在实施方式中,数据类型611为表示数据615中包括的tlv的类型的值。例如,消息600可以在数据615中携带多个ppr-tlv。在这种情况下,数据类型611为表示ppr-tlv的值。
122.压缩标识符263(在本文也被称为“压缩算法”)为应当用于对数据615进行压缩和解压缩的压缩方案的标识符。在实施方式中,压缩标识符263为标识有状态压缩方案(如由方法400和方法500示出的)或者特定类型的无状态压缩方案(如由方法450示出的)的值。例如,在应当使用有状态压缩方案来对数据615进行压缩和解压缩时,压缩标识符263可以设置为0;在应当使用deflate压缩方案来对数据615进行压缩和解压缩时,可以设置另一压缩标识符263;在应当使用lzs压缩方案来对数据615进行压缩和解压缩时,可以设置另一压缩标识符263;在应当使用itu-t v.44压缩方案来对数据615进行压缩和解压缩时,可以设置另一压缩标识符263,等等。
123.字典标识符266为应当用于对数据615进行压缩和解压缩的字典270的标识符。在实施方式中,当压缩标识符263指示应当实现有状态压缩方案时,字典标识符266才可以被包括在报头601中。当压缩标识符263指示应当实现无状态压缩方案(例如,任何其他预先配置的压缩方案)时,字典标识符266可以被设置为0或者不被包括在报头601中。
124.数据615可以包括应当通过网络100泛洪并且根据igp(例如is-is、ospfv2或ospfv3)进行编码的任何信息。例如,数据615可以包括从中央实体103、网络100中的另一ne 104至ne 112或外部客户端接收到的要被存储在网络100中的ne 104至ne 112中的每个ne处的拓扑信息。数据615还可以包括从中央实体103、网络100中的另一ne 104至ne 112或外部客户端接收到的指示到网络100中(或网络100外部)的一个或更多个目的地的下一跳跃的路由信息。当数据615包括路由信息时,可以根据若干不同类型的tlv或特定数据类型611来对数据615进行编码。例如,数据615可以包括与ppr相关联的数据类型611的未经压缩的数据615a至615n,其包括描述要在网络100中提供的一个或更多个ppr的一个或更多个ppr-tlv。作为另一示例,数据615可以包括与ppr图相关联的数据类型611的未经压缩的数据615a至615n,其包括描述要在网络100中提供的一个或更多个ppr图的一个或更多个ppr图-tlv。
125.在ne 104至ne 112对消息600中的未经压缩的数据615a至615n(在下文中被称为“数据615”)进行压缩之后,ne 104至ne 112获得或生成经压缩的消息650。经压缩的消息650中的报头601与消息600的报头601相同。经压缩的消息650包括经压缩的数据625a至625n。ne 104至ne 112基于在报头601中包括的压缩标识符263和/或字典标识符266来对数据615进行压缩,以获得经压缩的数据625。
126.经压缩的数据625a至625n(在本文中也被称为“经压缩的数据625”)包括与数据615相同的信息,不同之处在于经压缩的数据625是根据压缩方案和/或字典270进行编码的。例如,如果压缩标识符263标识无状态压缩方案,则根据由压缩标识符263标识的无状态压缩方案来对经压缩的数据625进行编码。在这种情况下,ne 104至ne 112使用与压缩标识符263对应的指令279对数据615执行由压缩标识符263标识的压缩方案,以输出经压缩的数据625。如果压缩标识符263标识有状态压缩方案,则根据与报头601中包括的字典标识符266对应的字典270来对经压缩的数据625进行编码。在这种情况下,ne 104至ne 112基于字典270来执行压缩,以输出经压缩的数据625,然后,该经压缩的数据625代替数据615被包括在经压缩的消息650中。
127.类似于数据615,可以根据若干不同类型的tlv或特定数据类型611对经压缩的数据625进行编码。例如,经压缩的数据625可以包括与ppr相关联的数据类型611的经压缩的数据625a至625n,其包括描述要在网络100中提供的一个或更多个ppr的一个或更多个经压缩的ppr-tlv。作为另一示例,经压缩的数据625可以包括与ppr图相关联的数据类型611的经压缩的数据625a至625n,其包括描述要在网络100中提供的一个或更多个ppr图的一个或更多个经压缩的ppr图-tlv。
128.图7是示出根据本公开内容的各种实施方式的根据is-is编码的消息700和经压缩的消息750的图。消息700类似于消息600(图6),不同之处在于消息700是根据is-is进行编码的,并且因此,消息700包括与is-is有关的字段。类似于图6,图7示出了在通过网络100泛洪经压缩的消息750之前由起始ne 104至ne 112执行的中间步骤。在实施方式中,首先,起始ne 104至ne 112生成消息700。然后,ne 104至ne 112根据压缩标识符263和/或字典标识符266来对消息700中的数据715进行压缩,以形成经压缩的消息750。然后,起始ne 104至ne 112向网络100中的其他ne 104至ne 112发送经压缩的消息750。
129.消息700包括报头701和尚未进行压缩的数据715。在实施方式中,ne 104至ne 112
接收不具有报头701的消息700并且将报头701添加至数据715。在另一实施方式中,ne 104至ne 112接收包括报头701的消息700。
130.报头701包括tlv类型字段703、长度字段706、标志字段709、压缩标识符字段710、原始tlv类型字段711、原始tlv长度字段713、子tlv类型字段716、子tlv长度字段719、字典标识符字段714和多个未经压缩的tlv 720a至720n。多个未经压缩的tlv 720a至720n携带数据715,该数据715未经压缩并且类似于数据615(图6)。如应当理解的,报头701可以包括携带数据715的其他字段,所述其他字段可以用于对数据715进行压缩和解压缩。
131.tlv类型字段703携带tlv类型603(图6)。长度字段706携带压缩长度606(图6)。标志709字段携带可以被设置为用于对数据715进行压缩或解压缩的值的一个或更多个标志。压缩标识符字段710携带压缩标识符263(图6)。原始tlv类型字段711携带数据类型(图6)。原始tlv长度字段713携带解压缩长度613(图6)。字典标识符字段714携带字典标识符266。
132.当消息700包含不是被编码在原始tlv类型字段711中的数据类型611的一部分的附加tlv时,子tlv类型字段716携带指示附加tlv的类型的值,并且子tlv长度字段719携带附加tlv的长度。子tlv类型字段716和子tlv长度字段719为当消息700包括附加tlv时可以包括在消息700中的可选字段。数据715被编码为原始tlv类型字段711中携带的数据类型611的未经压缩的tlv 720a至720n。
133.在对多个未经压缩的tlv 720a至720n执行压缩之后,获得经压缩的消息750。经压缩的消息750包括报头701和被编码为经压缩的tlv 725a至725n的经压缩的数据725。经压缩的消息750包括与消息700相同的报头701。经压缩的tlv 725a至725n包括与数据类型611的未经压缩的tlv 720a至720n相同的信息,不同之处在于经压缩的tlv 725a至725n中的信息是根据压缩标识符字段710中携带的压缩标识符263以及/或者字典标识符字段714中携带的字典标识符266进行压缩的。
134.图8a至图8b是示出根据本公开内容的各种实施方式的根据ospf版本2(ospfv2)编码的消息800和经压缩的消息850的图。图8a示出了消息800,并且图8b示出了经压缩的消息850。与图6至图7类似,图8a至图8b示出了在通过网络100泛洪图8b的经压缩的消息850之前由起始ne 104至ne 112执行的中间步骤。在实施方式中,首先,起始ne 104至ne 112生成图8a的消息800。然后,ne 104至ne 112根据压缩标识符263和/或字典标识符266来对消息800中的数据进行压缩,以形成图8b的经压缩的消息850。然后,起始ne 104至ne 112向网络100中的其他ne 104至ne 112发送经压缩的消息850。
135.现在参照图8a,消息800类似于消息600(图6),不同之处在于消息800是根据ospfv2进行编码的,并且因此,消息800包括与ospfv2有关的字段。在实施方式中,根据ospfv2将消息800编码为lsa,并且消息800包括未由rfc 7684描述的新字段802。
136.消息800包括报头801和尚未进行压缩的未经压缩的lsa 840。报头801包括链路状态(link state,ls)年龄字段803、选项806、ls类型字段809、不透明标识符字段811、通告路由器字段813、ls序列号字段816、ls校验和字段819、长度字段821、标志823、原始ls类型字段826、原始不透明类型字段829、压缩标识符字段831、解压缩长度字段834以及字典标识符字段837。如应当理解的,报头801可以包括携带可以用于对lsa进行压缩和解压缩的数据的其他字段。多个未经压缩的lsa 840携带未经压缩的数据615或715。
137.rfc 7684将ls年龄字段803、选项806、ls类型字段809、不透明标识符字段811、通
告路由器字段813、ls序列号字段816、ls校验和字段819和长度字段821描述为ospfv2扩展前缀不透明lsa(ospfv2 extended prefix opaque lsa)的原始字段。在实施方式中,长度字段821携带压缩长度606(图6)。消息的新字段802包括标志823、原始ls类型字段826、原始不透明类型字段829、压缩标识符字段831、未经压缩的数据的长度字段834、以及字典标识符字段837。标志823携带指示要被用于对lsa 840进行压缩或解压缩的信息的一个或更多个标志或值。原始ls类型字段826携带在使用如图8b所示的经压缩的lsa形成完整的tlv之后计算出的校验和,并且原始不透明类型字段829携带如图8b所示的经压缩的lsa的长度。压缩标识符字段831携带压缩标识符263。解压缩长度字段834携带解压缩长度613(图6)。字典标识符字段837携带字典标识符266,并且该字段基于压缩标识符字段831中携带的压缩标识符263是可选的。例如,当压缩标识符263指示无状态压缩方案时,报头801中可以不包括字典标识符字段837。未经压缩的lsa 840携带呈一个或更多个lsa形式的数据,所有未经压缩的lsa 840具有相同的数据类型611。
138.现在参照图8b,经压缩的消息850类似于消息650(图6),不同之处在于经压缩的消息850是根据ospfv2进行编码的,并且因此,经压缩的消息850包括与ospfv2有关的字段。在实施方式中,根据ospfv2将消息850编码为lsa。如图8b所示,经压缩的消息850与消息800的类似之处在于,经压缩的消息850包括报头801中的所有字段。然而,经压缩的消息850包括经压缩的lsa 860而不是未经压缩的lsa 840。经压缩的lsa 860包括与未经压缩的lsa 840中的信息相同的信息,不同之处在于经压缩的lsa 860是根据由压缩标识符字段831中携带的压缩标识符263标识的压缩方案以及/或者字典标识符字段837中携带的字典标识符266进行压缩的。
139.图9a至图9b是示出根据本公开内容的各种实施方式的根据ospf版本3(ospfv3)编码的消息900和经压缩的消息950的图。图9a示出了消息900,并且图9b示出了经压缩的消息950。类似于图6、图7以及图8a至图8b,图9a至图9b示出了在通过网络100泛洪图9b的经压缩的消息950之前由起始ne 104至ne 112执行的中间步骤。在实施方式中,首先,起始ne 104至ne 112生成图9a的消息900。然后,ne 104至ne 112根据压缩标识符263和/或字典标识符266来对消息900中的数据进行压缩,以形成图9b的经压缩的消息950。然后,起始ne 104至ne 112向网络100中的其他ne 104至ne 112发送经压缩的消息950。
140.现在参照图9a,消息900类似于消息600(图6),不同之处在于消息900是根据ospfv3进行编码的,并且因此,消息900包括与ospfv3有关的字段。在实施方式中,根据ospfv3将消息900编码为lsa,并且消息900包括未由rfc 5340描述的新字段902。
141.消息900包括报头901和尚未进行压缩的未经压缩的lsa 940。报头901包括ls年龄字段903、ls类型字段906、ls标识符字段909、通告路由器字段911、ls序列号字段914、ls校验和字段917、长度字段921、原始ls类型字段924、压缩标识符字段926、标志929、未经压缩的数据的长度字段932以及字典标识符字段935。如应当理解的,报头901可以包括携带可以用于对lsa进行压缩和解压缩的数据的其他字段。多个未经压缩的lsa 940携带未经压缩的数据615或715。
142.rfc 5340将ls年龄字段903、ls类型字段906、ls标识符字段909、通告路由器字段911、ls序列号字段914、ls校验和字段917和长度字段921描述为ospfv3 lsa的原始字段。在实施方式中,长度字段921携带压缩长度606(图6)。消息900的新字段902包括原始ls类型字
段924、压缩标识符字段926、标志929、未经压缩的数据的长度字段932以及字典标识符字段935。原始ls类型字段924携带数据类型611。压缩标识符字段926携带压缩标识符263。标志929携带指示要被用于对lsa 940进行压缩或解压缩的信息的一个或更多个标志或值。未经压缩的数据的长度字段932携带解压缩长度613(图6)。字典标识符字段635携带字典标识符266,并且该字段基于压缩标识符字段926中携带的压缩标识符263是可选的。例如,当压缩标识符263指示无状态压缩方案时,报头901中可以不包括字典标识符字段935。未经压缩的lsa940携带呈一个或更多个lsa形式的数据,所有未经压缩的lsa 940具有相同的数据类型611。
143.现在参照图9b,经压缩的消息950类似于经压缩的消息650(图6),不同之处在于经压缩的消息950是根据ospfv3进行编码的,并且因此,经压缩的消息950包括与ospfv3有关的字段。在实施方式中,根据ospfv3将经压缩的消息950编码为lsa。如图9b所示,经压缩的消息950与消息900的相似之处在于,经压缩的消息950包括报头901中的所有字段。然而,经压缩的消息950包括经压缩的lsa 960而不是未经压缩的lsa 940。经压缩的lsa 960包括与未经压缩的lsa 940中的信息相同的信息,不同之处在于经压缩的lsa 940是根据由压缩标识符字段926中携带的压缩标识符263标识的压缩方案以及/或者字典标识符字段935中携带的字典标识符266进行压缩的。
144.图10是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行压缩的方法1000的流程图。方法1000可以由网络100中的ne 104至ne 112中的一个ne或者由被实现为ne 104至ne 112中的一个ne的ne 200来执行。在与不同压缩方案对应的指令279、标识不同压缩方案的压缩标识符263、字典270和/或字典标识符266被预先存储在ne 104至ne 112中的每个ne处之后,执行方法1000。
145.在步骤1003处,ne 104至ne 112中的一个ne生成包括报头和数据的消息。该消息可以类似于消息600、700、800或900。该报头可以类似于报头601、701、801或901。该数据可以类似于数据615或715或者未经压缩的lsa 840或940。在实施方式中,报头包括解压缩长度613,该解压缩长度613是指在对数据进行压缩之前数据的长度。报头还包括压缩长度606,该压缩长度606是指在对数据进行压缩之后数据的长度。报头还可以包括压缩标识符263。在实施方式中,tx/rx 210从网络中的另一ne 104至ne 112、中央实体103、或者外部装置或客户端接收消息。
146.在步骤1006处,ne 104至ne 112基于由压缩标识符263标识的压缩方案来对数据进行压缩,以获得经压缩的数据,例如,经压缩的数据625或经压缩的数据725或经压缩的lsa 840或经压缩的lsa 940。例如,处理器230执行压缩模块235,以基于由压缩标识符263标识的压缩方案来对数据执行压缩。
147.例如,当压缩标识符263标识特定的无状态压缩方案(例如,deflate压缩方案、lzs压缩方案、itu-t v.44压缩方案等)时,ne 104至ne 112在存储器260中搜索与无状态压缩方案对应的指令279。ne 104至ne 112执行指令279以对数据进行压缩并且输出压缩数据。ne 104至ne 112通过用经压缩的数据替换数据来生成经压缩的消息,例如消息650、750、850或950。
148.在步骤1009处,ne 104至ne 112将包括报头和经压缩的数据的经压缩的消息转发至网络100中的其他ne 104至ne 112。例如,tx/rx将经压缩的消息转发至网络100中的其他
ne 104至ne 112,以使网络100泛洪有经压缩的消息。
149.当压缩标识符263指示无状态压缩方案时,接收到经压缩的消息的ne 104至ne112基于压缩标识符263来对消息进行解压缩。替选地,当压缩标识符263指示有状态压缩方案时,接收到经压缩的消息的ne 104至ne 112基于压缩标识符263和字典标识符266来对消息进行解压缩。
150.在实施方式中,接收到经压缩的数据的ne 104至ne 112可以将经压缩的消息本地存储在lsdb 273和/或转发数据库276中。在实施方式中,首先,接收到经压缩的消息的ne 104至ne 112对经压缩的消息进行解压缩,以获得原始消息。然后,ne 104至ne 112将已经解压缩的数据存储在lsdb 273和/或转发数据库276中。
151.图11是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行压缩的设备1100的图。设备1100包括用于生成的器件1103、用于压缩的器件1106和用于转发的器件1109。用于生成的器件1103包括用于生成包括报头和数据的消息的器件,其中,报头包括在对数据进行压缩之前数据的长度、在对数据进行压缩之后数据的长度以及压缩标识符。用于压缩的器件1106包括用于基于由压缩标识符标识的压缩方案来对数据进行压缩以获得经压缩的数据的器件。用于转发的器件1109包括用于向网络中的其他ne转发包括报头和经压缩的数据的经压缩的消息的器件。
152.图12是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行解压缩的方法1200的流程图。方法1200可以由网络100中的ne 104至ne 112中的一个ne或者由被实现为ne 104至ne 112中的一个ne的ne 200来执行。在与不同压缩方案对应的指令279、标识不同压缩方案的压缩标识符263、字典270和/或字典标识符266被预先存储在ne 104至ne 112中的每个ne处之后,执行方法1200。
153.在步骤1203处,ne 104至ne 112中的一个ne接收包括报头和经压缩的数据的消息。该消息可以类似于消息600、700、800或900。该报头可以类似于报头601、701、801或901。经压缩的数据可以类似于经压缩的数据625或725或者经压缩的lsa 840或940。在实施方式中,报头包括解压缩长度613,该解压缩长度613是指在对数据进行压缩之前数据的长度。报头还包括压缩长度606,该压缩长度606是指在对数据进行压缩之后数据的长度。报头还可以包括压缩标识符263。在实施方式中,tx/rx 210从网络中的另一ne 104至ne 112、中央实体103、或者外部装置或客户端接收消息。
154.在步骤1206处,ne 104至ne 112基于由压缩标识符263标识的压缩方案来对经压缩的数据进行解压缩,以获得未经压缩的数据(例如,压缩之前的数据),例如数据615或715或者未经压缩的lsa 840或未经压缩的lsa 940。例如,处理器230执行压缩模块235,以基于由压缩标识符263标识的压缩方案来对数据执行解压缩。
155.例如,当压缩标识符263标识特定的无状态压缩方案(例如,deflate压缩方案、lzs压缩方案、itu-t v.44压缩方案等)时,ne 104至ne 112在存储器260中搜索与无状态压缩方案对应的指令279。ne 104至ne 112执行指令279以对经压缩的数据进行解压缩并且输出未经压缩的数据。
156.在步骤1209处,ne 104至ne 112将未经压缩的数据或经压缩的数据中的至少一个存储在存储器260中。可以将经压缩的数据例如经压缩的数据625或725或者经压缩的lsa 840或经压缩的lsa 940存储在lsdb 273和/或转发数据库276中。可以将未经压缩的数据例
如数据615或数据715或者未经压缩的lsa 840或未经压缩的lsa940存储在lsdb 273和/或转发数据库276中,以促进网络100的效率。
157.图13是示出根据本公开内容的各种实施方式的用于对使用igp的数据进行解压缩的设备1300的图。设备1300包括用于接收的器件1303、用于解压缩的器件1306和用于存储的器件1309。用于接收的器件1303包括用于接收包括报头和数据的消息的器件,其中,报头包括压缩之前的数据的长度、经压缩的数据的长度以及压缩标识符。用于解压缩的器件1306包括用于基于由压缩标识符标识的压缩方案来对经压缩的数据进行解压缩以获得未经压缩的数据的器件。用于存储的器件1309包括用于将经压缩的数据或未经压缩的数据中的至少一个存储在本地存储器260中的器件。
158.虽然在本公开内容中已经提供了若干实施方式,但是应当理解,在不脱离本公开内容的精神或范围的情况下,可以以许多其他特定形式来实施所公开的系统和方法。本示例被认为是说明性的而不是限制性的,并且意图不限于本文给出的细节。例如,各种元件或部件可以组合或集成在另一系统中,或者某些特征可以省略或不实现。
159.另外,在不脱离本公开内容的范围的情况下,在各种实施方式中被描述和示出为离散或分开的的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或集成。无论是电气地、机械地,或者是以其他方式,被示出或讨论为彼此耦接或直接耦接或彼此通信的其他项可以通过一些接口、装置或中间部件间接地耦接或通信。改变、替换和替选的其他示例可由本领域技术人员确定,并且可以在不脱离本文公开的精神和范围的情况下做出。
再多了解一些

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

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

相关文献