允许报头层的扩展和塌缩以实现灵活修改的方法及其装置的制造方法

文档序号:9527505阅读:350来源:国知局
允许报头层的扩展和塌缩以实现灵活修改的方法及其装置的制造方法
【技术领域】
[0001] 本发明涉及分组报头修改。更具体地,本发明涉及一种使用位矢量来允许分组内 的报头层的扩展和塌缩用于实现灵活修改的方法及其装置。
【背景技术】
[0002] 网络分组经由因特网使用的协议、比如传输控制协议/网际协议/以太网协议 (TCP/IP/以太网)承载数据。典型交换机能够在向目的地或者向另一交换机发送出分组之 前修改传入的分组的各种字段。出于各种原因而修改传入的分组,比如分组将被转发到何 处、目的地支持的协议、分组的优先级、协议报头的传入格式等。由于网络协议正在演变,协 议报头的一个或者多个字段可以是可任选的,这使交换机的硬件变复杂,因为在协议报头 内的给定的字段可能不总是处于固定的偏移。
[0003] 在分组的修改期间,现有技术的交换机线性地处理分组中的每个协议层。这样的 处理会产生与网络有关的性能问题,包括时延,这可能使实现方式过度提供处理资源。

【发明内容】

[0004] 用于修改分组报头的装置的实施例涉及使用位矢量来允许分组内的协议报头的 扩展和塌缩用于实现灵活修改。重写引擎将每个协议报头扩展成通用格式并且应用各种命 令来修改经一般化的协议报头。重写引擎针对经一般化的协议报头维护位矢量,其中在位 矢量中的每个位表示经一般化的协议报头的字节。在位矢量中被标注为〇的位对应于无效 字节,而在位矢量中被标注为1的位对应于有效字节。重写引擎使用位矢量来去除在已经 对经一般化的协议报头操作所有命令之后的所有无效字节以由此形成新协议报头。
[0005] 在一个方面中,提供一种重写引擎的方法。该方法包括针对经一般化的协议报头 维护位矢量。经一般化的协议报头是被扩展成通用格式的分组的协议报头。通用格式包括 协议的所有可能字段。无论协议报头对应于协议的哪个变体,字段中的每个字段都具有相 同偏移。位矢量包括针对经一般化的协议报头的每个字节的每字节的位。
[0006] 该方法也包括基于对至少一个经一般化的协议报头的修改来更新位矢量。在一些 实施例中,修改使用来自在网络交换机的存储器中存储的通用命令集合的至少一个命令来 修改至少一个经一般化的协议报头。
[0007] 该方法也包括使用经更新的位矢量来压缩至少一个经一般化的协议报头。在一些 实施例中,在使用经更新的位矢量之前,对位矢量和经更新的位矢量执行X0R操作以确定 多少位被改变,这允许重写引擎考虑被删除和添加的字节。
[0008] 在另一方面中,提供一种网络交换机的方法。该方法包括在网络交换机的传入端 口处接收分组并且根据用于分组的每个协议报头的通用格式来使该协议报头一般化。检测 从分组的协议报头的缺失字段。基于检测,通过包括缺失字段来将协议报头扩展成通用格 式。
[0009] 该方法也包括针对每个经一般化的协议报头维护位矢量。位矢量包括针对无效字 段而被标注为0的位和针对有效字段而被标注为1的位
[0010] 该方法也包括:修改经一般化的协议报头中的至少一个经一般化的协议报头,由 此更新位矢量。在一些实施例中,修改使用来自在网络交换机的存储器中存储的通用命令 集合的至少一个命令来修改至少一个经一般化的协议报头。在一些实施例中,对至少一个 经一般化的协议报头的修改是基于网络交换机的传出端口的出口端口类型。
[0011] 该方法也包括使经更新的位矢量塌缩。在一些实施例中,通过移位经更新的位矢 量以去除在经更新的位矢量中被标注为0的每个位来使经更新的位矢量塌缩。
[0012] 该方法也包括基于经塌缩的位矢量形成紧凑协议报头。经由网络交换机的传出端 口发射至少具有紧凑协议报头的分组。在一些实施例中,在发射分组之前,对针对执行的所 有操作而添加或者删除的字节的数目进行计数。
[0013] 在又一方面中,提供一种网络交换机。网络交换机包括:输入端口,用于接收分组; 以及存储器,存储通用命令集合。通用命令集合被用于报头修改,而不管传入报头如何。在 一些实施例中,通用命令集合包括删除命令、复制命令和移动命令。
[0014] 网络交换机也包括重写引擎。重写引擎使用位矢量以允许分组的协议报头的扩展 和塌缩,由此通过使用通用命令集合来实现分组的灵活修改。
[0015] 在一些实施例中,协议报头中的每个协议报头根据对应协议特有的由软件定义的 映射中的一个映射被一般化。在一些实施例中,由软件定义的映射被存储在存储器中。
[0016] 每个经一般化的协议报头包括位矢量,位矢量具有针对无效字段而被标注为0的 位和针对有效字段而被标注为1的位。在一些实施例中,重写引擎在经一般化的协议报头 被修改之后更新位矢量。在一些实施例中,重写引擎去除在经更新的位矢量中被标注为〇 的每个位以使经更新的位矢量塌缩。新报头基于经塌缩的位矢量而形成。
[0017] 在一些实施例中,网络交换机也包括用于发射具有新报头的分组的传出端口。
[0018] 在又一方面中,提供一种网络交换机。网络交换机包括用于接收分组的输入端口, 其中分组包括正文和协议报头。网络交换机也包括用于发射经修改的分组的输出端口。网 络交换机也包括用于存储协议的通用格式的由软件定义的映射的集合和通用修改命令集 合的存储器。通常,通用修改命令集合被用于报头修改,而不管传入报头如何。
[0019] 网络交换机也包括重写引擎。重写引擎基于来自由软件定义的映射的集合的由软 件定义的映射,将协议栈的每个协议报头转换成通用格式,并且针对每个经转换的协议报 头维护位矢量。位矢量包括针对经转换的协议报头的每个字节的每字节的位。位矢量包括 针对经转换的协议报头的无效字段而被标注为0的位和针对经转换的协议报头的有效字 段而被标注为1的位。重写引擎使用通用修改命令集合来修改每个经转换的协议报头,更 新在位矢量之后的每个位矢量,使每个经更新的位矢量塌缩以由此形成新协议栈,并且向 新协议栈附着正文以经由输出端口发射。
【附图说明】
[0020] 前文将从如附图中所示本发明的示例实施例的以下更具体描述中变清楚,在附图 中,相似标号贯穿不同视图指代相同部分。附图未必按比例、代之以着重于图示本发明的实 施例。
[0021] 图1图示分组的示例协议层组合。
[0022] 图2图示根据本发明的一些实施例的本地协议表的示例结构。
[0023] 图3图示根据本发明的一些实施例的网络交换机的示例方法。
[0024] 图4图示根据本发明的一些实施例的网络交换机的另一示例方法。
[0025] 图5图示根据本发明的一些实施例的将传入的分组的层进行报头扩展成通用格 式的图。
[0026] 图6A-6B图不根据本发明的一些实施例的协议报头的不例一般化。
[0027] 图7A-7C图不根据本发明的一些实施例的协议报头的另一不例一般化。
[0028] 图8A-8C图不根据本发明的一些实施例的协议报头的又一不例一般化。
[0029] 图9A-9F图示根据本发明的一些实施例的协议报头的示例修改。
[0030] 图10A-10E图示根据本发明的一些实施例的协议报头的另一示例修改。
[0031] 图11图示根据本发明的一些实施例的重写引擎的方法。
[0032] 图12图示根据本发明的一些实施例的网络交换机的又一方法。
[0033] 图13图示根据本发明的一些实施例的网络交换机的又一方法。
[0034] 图14图示根据本发明的一些实施例的网络交换机的又一方法。
[0035] 图15图示根据本发明的一些实施例的网络交换机的又一方法。
[0036] 图16图示根据本发明的一些实施例的重写引擎的另一方法。
[0037] 图17图示根据本发明的一些实施例的网络交换机的又一方法。
[0038] 图18图示根据本发明的一些实施例的重写引擎的又一方法。
[0039] 图19图示根据本发明的一些实施例的网络交换机的又一方法。
[0040] 图20图示根据本发明的一些实施例的层结构的示例图。
[0041]图21图示根据本发明的一些实施例的重写引擎交换机的又一方法。
[0042] 图22图示根据本发明的一些实施例的网络交换机的又一方法。
【具体实施方式】
[0043] 在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认 识到,可以在不使用这些具体细节的情况下实施本发明。因此,本发明并不旨在于限于所示 实施例,而是将被赋予与这里描述的原理和特征一致的最广范围。
[0044] 引言
[0045] 网络设备、比如网络交换机能够切换/路由网络流量。网络交换机包括用于接收 和发送分组的至少一个输入/传入端口和至少一个输出/传出端口。在一些实施例中,网 络交换机也包括解析器和重写器。解析器可以包括用于标识网络分组的内容的一个或者多 个解析器引擎,并且重写器可以包括用于在分组从网络交换机被发送出之前修改它们的一 个或者多个重写引擎。解析器引擎和重写引擎是灵活的并且在可编程基础上操作。
[0046] 网络交换机也包括用于存储网络交换机使用的数据的存储器。例如存储器存储通 用命令集合。简言之,通用命令通常被用来修改协议报头。对于另一示例,存储器也存储协 议的通用格式的由软件定义的映射。简言之,根据对应协议特有的由软件定义的映射中的 一个映射表示每个协议报头。如将变得清楚的那样,这些映射可以被用在协议的不同变体 上以及用在包括新协议的不同协议上。对于又一示例,存储器也存储协议表。简言之,协议 表包括被编程到协议表中的每个协议层组合的每个协议层的层信息。对于又一示例,存储 器也存储计数器和统计量。
[0047] 在以太网中,分组包括多个协议层。每个协议层承载不同信息。公知层的一些示 例是:
[0048] ?以太网
[0049] ·PBB以太网
[0050] · ARP
[0051] · IPV4
[0052] · IPV6
[0053] · MPLS
[0054] · FC0E
[0055] · TCP
[0056] · UDP
[0057] · ICMP
[0058] · IGMP
[0059] · GRE
[0060] · ICMPv6
[0061] · VxLAN
[0062] · TRILL
[0063] · CNM
[0064] 在理论上,协议层可以按照任何顺序出现。然而,这些层的仅一些公知组合出现。 这些层的有效组合的一些示例是:
[0065] ?以太网
[0066] ?以太网、ARP
[0067] ?以太网、CNM
[0068] ?以太网、FCoE
[0069] ?以太网、IPV4
[0070] ?以太网、IPV4、ICMP
[0071] ?以太网、IPV4、IGMP
[0072] 唯一分组标识符
[0073] 在一些实施例中,网络交换机支持17个协议和八个协议层。因此有817个可能协 议层组合。图1图示分组的示例协议层组合。例如分组可以包括三协议层组
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1