CN112367278B - 基于可编程数据交换机的云网关系统及其报文处理方法 - Google Patents

基于可编程数据交换机的云网关系统及其报文处理方法 Download PDF

Info

Publication number
CN112367278B
CN112367278B CN202011212405.3A CN202011212405A CN112367278B CN 112367278 B CN112367278 B CN 112367278B CN 202011212405 A CN202011212405 A CN 202011212405A CN 112367278 B CN112367278 B CN 112367278B
Authority
CN
China
Prior art keywords
connection
index value
control message
storage index
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011212405.3A
Other languages
English (en)
Other versions
CN112367278A (zh
Inventor
刘莹
操佳敏
徐明伟
毕军
周禹
张乙然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202011212405.3A priority Critical patent/CN112367278B/zh
Publication of CN112367278A publication Critical patent/CN112367278A/zh
Application granted granted Critical
Publication of CN112367278B publication Critical patent/CN112367278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于可编程数据交换机的云网关系统及其报文处理方法,该系统包括可编程交换机和后端服务器,可编程交换机与后端服务器连接;可编程交换机用于接收外部的数据包,检测外部的数据包的报文是否为控制报文,当数据包的报文为控制报文时,将控制报文发送至后端服务器;接收后端服务器发送的控制报文和第三存储索引值,根据第三存储索引值和控制报文更新可编程交换机的连接状态信息;后端服务器用于接收可编程交换机发送的控制报文,当控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对控制报文对应的连接重新计算获得第三存储索引值,将第三存储索引值和控制报文发送至可编程交换机。

Description

基于可编程数据交换机的云网关系统及其报文处理方法
技术领域
本发明涉及交换机技术领域,特别涉及一种基于可编程数据交换机的云网关系统及其报文处理方法。
背景技术
云计算将计算资源、存储资源和网络资源虚拟化,为租户提供按需服务。由于云计算具有灵活、便捷、可扩展等多种特性,越来越多的网络应用被部署在云计算数据中心中。云计算数据中心发挥越来越重要的作用,已经成为互联网基础设施的重要组成部分。云计算服务提供商能够为用户提供按资源租用服务,同时需要保证不同租户的资源之间存在有效可靠的隔离。其中网络资源的隔离一般是通过虚拟专有云(VPC,Virtual PrivateCloud)服务。VPC可以使用户自定义虚拟网络以及定制网络的准入规则、灵活分配所租用的网络资源,VPC的可靠性和性能对于云计算数据中心的服务质量具有重要的意义。
目前,VPC服务主要通过云网关(Cloud Gateway)系统实现,其主要功能包括安全组、带状态防火墙两方面。首先安全组为同一个VPC内具有相同访问需求的多个服务器提供访问规则,通过定义入方向和出方向的安全组规则,可以对服务器之间的访问加以限制。带状态防火墙为对每个连接提供带状态过滤,通过匹配一个数据包头部的某些字段并结合该数据包所属的流(连接)的状态,决定数据包是否被允许通过。安全组功能和带状态防火墙功能对于保护租户之间的隔离具有关键作用,同时保证了租户VPC网络的安全性,因此实现高性能且可靠的安全组和带状态防火墙功能具有重要的意义。
当前的云网关主要通过软件实现,例如netfilter/iptables,基于软件实现的云网关面临严重的性能问题,主要体现在以下两方面:
一是支持并发连接数量低。随着云计算数据中心的高速扩展,并且考虑到实际部署中,网络的资源需要留出充分冗余,也就是云数据中心应该支持比实际连接更大的流量。而netfilter/iptables支持的并发连接数量远远无法满足该需求;
二是吞吐率低,即使是8核CPU也只能达到12Mbps的吞吐率,而实际云中的流量需要相当高的带宽;
随着近年来数据中心的流量迅速增长,在海量流量的情况下,基于软件实现的云网关已无法满足云数据中心流量处。
发明内容
基于此,有必要针对上述技术问题,提供一种基于可编程数据交换机的云网关系统及其报文处理方法。
一种基于可编程数据交换机的云网关系统,包括:可编程交换机和后端服务器,所述可编程交换机与所述后端服务器连接;
所述可编程交换机用于接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息;
所述后端服务器用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机,其中,所述连接为连接状态。
在其中一个实施例中,所述可编程交换机还用于当外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
在其中一个实施例中,所述可编程交换机包括数据包分类模块和带状态连接处理模块,所述数据包分类模块和所述带状态连接处理模块连接;
所述数据包分类模块用于检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;还用于接收所述后端服务器反馈的所述第三存储索引值和所述控制报文,并将所述第三存储索引值和所述控制报文发送至所述带状态连接处理模块;
所述带状态连接处理模块用于获取所述连接状态信息,根据所述连接状态信息转发所述控制报文。
在其中一个实施例中,所述数据包分类模块还用于当外部的所述数据包的报文为数据报文时,将所述数据报文发送至所述带状态连接处理模块;
所述带状态连接处理模块还用于根据所述连接状态信息转发所述数据报文。
在其中一个实施例中,所述可编程交换机还包括安全组模块,所述安全组模块与所述数据包分类模块连接,所述安全组模块用于接收外部的数据包,对外部的所述数据报进行安全检测,并将检测后的所述数据包发送至所述数据包分类模块。
在其中一个实施例中,所述后端服务器用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接进行哈希计算,获得第三存储索引值。
在其中一个实施例中,所述后端服务器包括连接及状态管理模块和控制指令下发模块,所述连接及状态管理模块和所述控制指令下发模块连接;
所述连接及状态管理模块用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块;
所述控制指令下发模块用于将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
在其中一个实施例中,所述连接及状态管理模块包括冲突检测单元和连接状态更新单元,所述冲突检测单元和所述连接状态更新单元连接;
所述冲突检测单元用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,并将检测的冲突结果发送至所述连接状态更新单元;
所述连接状态更新单元用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块,并根据所述第三存储索引值更新所述后端服务器的连接状态信息。
一种基于可编程数据交换机的报文处理方法,包括:
所述可编程交换机接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至后端服务器;
所述后端服务器接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机,其中,所述连接为连接状态;
所述可编程交换机接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息。
在其中一个实施例中,还包括步骤:
当所述可编程交换机检测到外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
上述基于可编程数据交换机的云网关系统及其报文处理方法,采用基于可编程交换机和后端服务器的混合云网关系统架构,通过后端服务器的计算性能和存储性能的优势,能够很好地哈希冲突,结合可编程交换机的性能优势和后端服务器的编程、资源优势,一方面满足云数据中心处理海量并发连接的需求,另一方面在吞吐、延迟等多个方面提升云网关性能。
附图说明
图1为一个实施例中的基于可编程数据交换机的云网关系统的应用场景示意图;
图2为一个实施例中的基于可编程数据交换机的云网关系统的报文处理方法的流程示意图;
图3为一个实施例中的可编程交换机的框架结构图;
图4为一个实施例中的基于可编程交换机与后端服务器实现高性能云网关的系统框架示意图;
图5为一个实施例中的基于可编程数据交换机的云网关系统的整体设计图;
图6为一个实施例中的可编程交换机流水线决策图;
图7为一个实施例中的可编程交换机的连接状态索引获取图;
图8为一个实施例中的跨流水线和跨阶段的流表分配方案图;
图9为一个实施例中的后端服务器的结构框图;
图10为一个实施例中的后端服务器和可编程交换机的交互过程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例一
本申请提供的基于可编程数据交换机的云网关系统,可以应用于如图1所示的应用环境中。其中,交换机102与后端服务器104通信连接。其中,交换机102为可编程交换机,后端服务器104可以是计算机,也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。交换机102所述可编程交换机接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;后端服务器104接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机;可编程交换机102接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息。
实施例二
本实施例中,请结合图2和图4,提供了一种基于可编程数据交换机的云网关系统,其包括:可编程交换机和后端服务器,所述可编程交换机与所述后端服务器连接;所述可编程交换机用于接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息;所述后端服务器用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
具体地,可编程交换机用于接收来自网络的,外部的数据包。该数据包的报文可以是数据报文,也可以是控制报文,比如,数据报文包括ACK报文、PSH报文和URG报文,比如,控制报文包括SYN报文、FIN报文和RST报文。当可编程交换机检测到该外部的数据包的报文为控制报文时,则将控制报文发送至后端服务器,由后端服务器进行哈希冲突的检测。该可编程交换机存储的连接状态信息为连接状态表,记录了各连接的状态,包括五种匹配动作表。
本实施例中,存储索引值为报文对应的连接在寄存器中的存储值,也称为哈希值。由可编程交换机发送至后端服务器的报文对应的连接为新的连接,而已有的连接为已存储了哈希值的连接。
后端服务器接收由可编程交换机发送的控制报文,对控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,即对控制报文进行哈希冲突的检测,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
本实施例中,所述后端服务器用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接进行哈希计算,获得第三存储索引值。即,所述后端服务器用于当所述控制报文对应的连接的第一哈希值与已有的连接的第二哈希值存在冲突时,对所述控制报文对应的连接进行哈希计算,获得第三哈希值。
具体地,当后端服务器检测到可编程交换机发送的控制报文对应的连接存在哈希冲突时,对该控制报文对应的连接进行哈希计算,计算得到新的哈希值,即第三存储索引值。将该第三存储索引值和对应的控制报文发送至所述可编程交换机。可编程交换机接收后端服务器反馈的第三存储索引值和控制报文,更新所述可编程交换机的连接状态信息。最终表现为,可编程交换机增加或删除可编程交换机的转发平面的动作匹配表的表项或者修改交换机转发平面寄存器中存储的流状态值。
上述实施例中,采用基于可编程交换机和后端服务器的混合云网关系统架构,通过后端服务器的计算性能和存储性能的优势,能够很好地哈希冲突,结合可编程交换机的性能优势和后端服务器的编程、资源优势,一方面满足云数据中心处理海量并发连接的需求,另一方面在吞吐、延迟等多个方面提升云网关性能。
在一个实施例中,所述可编程交换机还用于当外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
本实施例中,当可编程交换机接收到的外部数据包的报文为数据报文时,则按照转发规则,将该数据报文转发至外部。具体地,当外部的所述数据包的报文为数据报文时,可编程交换机根据所述连接状态信息获取数据报文连接状态索引,并对数据报文的连接状态进行检测,随后,将数据报文转发至外部的其他交换机、计算机等终端。
在一个实施例中,所述可编程交换机包括数据包分类模块和带状态连接处理模块,所述数据包分类模块和所述带状态连接处理模块连接;所述数据包分类模块用于检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;还用于接收所述后端服务器反馈的所述第三存储索引值和所述控制报文,并将所述第三存储索引值和所述控制报文发送至所述带状态连接处理模块;所述带状态连接处理模块用于获取所述连接状态信息,根据所述连接状态信息转发所述控制报文。
本实施例中,可编程交换机包括数据包分类模块和带状态连接处理模块,数据包分类模块用于对数据包的报文进行分类,检测数据包的报文为控制报文或者为数据报文,当数据包的报文为控制报文时,则将其发送至后端服务器,由后端服务器进行哈希冲突检测,并且数据包分类模块还接收后端服务器反馈的第三索引值和控制报文,并将服务器发送的第三索引值和控制报文发送至带状态连接处理模块,由带状态连接处理模块对连接状态信息进行更新。比如,带状态连接处理模块根据第三索引值和控制报文增加或删除可编程交换机的转发平面的动作匹配表的表项或者修改交换机转发平面寄存器中存储的流状态值。然后,带状态连接模块根据所述连接状态信息获取控制报文的连接状态索引,并对控制报文的连接状态进行检测,随后,将数据报文转发至外部的其他交换机、计算机等终端。
在一个实施例中,所述数据包分类模块还用于当外部的所述数据包的报文为数据报文时,将所述数据报文发送至所述带状态连接处理模块;所述带状态连接处理模块还用于根据所述连接状态信息转发所述数据报文。
具体地,当外部的所述数据包的报文为数据报文时,数据包分类模块将数据报文直接发送至带状态连接处理模块,由带状态连接处理模块根据所述连接状态信息获取数据报文连接状态索引,并对数据报文的连接状态进行检测,随后,将数据报文转发至外部的其他交换机、计算机等终端。此外,本实施例中,所述数据包分类模块还用于当接收到后端服务器的第三索引值和控制报文时,将所述控制报文发送至所述带状态连接处理模块;所述带状态连接处理模块还用于根据所述连接状态信息转发所述控制报文报文。
在一个实施例中,所述可编程交换机还包括安全组模块,所述安全组模块与所述数据包分类模块连接,所述安全组模块用于接收外部的数据包,对外部的所述数据报进行安全检测,并将检测后的所述数据包发送至所述数据包分类模块。
本实施例中,安全组模块用于对外部的数据包进行安全检测,并将检测后的外部的数据包发送至数据包分类模块,并且安全组模块还用于在接收到服务器发送的第三索引值和控制报文后,将第三索引值和控制报文发送至包分类模块。
本实施例中,可编程交换机接收到外部的数据包时,对外部的数据包进行检测,当检测到外部的数据包的报文为控制报文时,则将其转发至后端服务器,当检测到外部的数据包的报文为数据报文时,则获取该数据报文的连接状态索引,并对数据报文的连接状态进行检测,随后,将数据报文转发至外部的其他设备。当可编程交换机接收到后端服务器的控制报文时,则获取该控制报文的连接状态索引,并对控制报文的连接状态进行检测,随后,将控制报文转发至外部的其他设备。使得来自后端服务器的控制报文和来自外部的数据报文在可编程交换机上具有相同的路径。
在一个实施例中,所述后端服务器包括连接及状态管理模块和控制指令下发模块,所述连接及状态管理模块和所述控制指令下发模块连接;所述连接及状态管理模块用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块;所述控制指令下发模块用于将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
本实施例中,连接及状态管理模块对控制报文对应的连接重新计算获得第三存储索引值,根据第三索引值更新后端服务器中存储的连接状态信息。
具体地,连接及状态管理模块用于进行哈希冲突检测,当检测到哈希冲突时,则对该控制报文的连接重新计算哈希值,根据重新计算的哈希值更新后端服务器中存储的连接状态信息,并且将重新计算得到的哈希值和控制报文发送至控制指令下发模块,由控制指令下发模块发送至可编程交换机。
在一个实施例中,后端服务器还包括安全组管理模块,所述安全组管理模块管理所有的安全组规则,并且用于配置可编程交换机的安全组模块的安全组规则,还用于对安全组规则的规则的增加、删除、修改和查找。
在一个实施例中,所述连接及状态管理模块包括冲突检测单元和连接状态更新单元,所述冲突检测单元和所述连接状态更新单元连接;所述冲突检测单元用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,并将检测的冲突结果发送至所述连接状态更新单元;所述连接状态更新单元用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块,并根据所述第三存储索引值更新所述后端服务器的连接状态信息。
实施例三
本实施例中,如图2所示,提供一种基于可编程数据交换机的报文处理方法,包括:
步骤210,所述可编程交换机接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器。
步骤220,所述后端服务器接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
步骤230,所述可编程交换机接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息。
上述实施例中,采用基于可编程交换机和后端服务器的混合云网关系统架构,通过后端服务器的计算性能和存储性能的优势,能够很好地哈希冲突,结合可编程交换机的性能优势和后端服务器的编程、资源优势,一方面满足云数据中心处理海量并发连接的需求,另一方面在吞吐、延迟等多个方面提升云网关性能。
在一个实施例中,基于可编程数据交换机的报文处理方法还包括步骤:当所述可编程交换机检测到外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例四
P4语言(Programming Protocol-independent Packet Processor)和可编程交换机技术提供了高速灵活的数据平面处理机制。P4语言是一种用来配置交换机的高级编程语言;可编程交换机不同于以往固定功能的交换机,它允许更多的逻辑处理/算术运算等来定义数据包处理和转发行为。除了高吞吐(Tbps)和低延迟,可编程交换机在每个数据包上都能以线速运行。
虽然P4语言以及可编程交换机技术为实现高性能的云网关系统带来了新的机遇,但是由于可编程交换机本身存在存储空间和计算能力有限等限制,仅靠可编程交换机很难实现高性能云网关。
如图3所示,为可编程交换机的结构。可编程交换机由数据平面(又称转发平面)的高性能转发芯片ASIC和控制平面(主要是交换机CPU)组成。交换机CPU可以通过增加或删除数据平面的流表来控制数据包的处理行为。报文在交换机中先经过一个可编程的解析器,解析器将头部域从报文中提取出来,将载荷分开缓存,载荷不参与匹配。然后,被提取出来的头部再依次经过存在于入方向流水线和出方向流水线中的多个阶段的匹配动作表构成的多个阶段。入口方向的匹配动作表决定了报文被放置在哪个出口端口和队列。基于入口流水线的处理,报文可能被转发、复制、丢弃或者触发流控。出口方向额匹配动作表决定了报文头部的修改。报文在各个阶段之间传递的过程中,可以携带额外的信息,称其为元数据。元数据可以包括入端口信息、时间戳等等。
可编程交换机具有高吞吐和低延迟的优势,但同时存储空间有限,支持的计算原语也相对受限;而服务器虽然吞吐低延迟高,但是具有充足的存储空间、强大的计算能力和灵活性。因此,本文创新性地设计了基于服务器和可编程交换机的混合架构的云网关系统。
图4是本发明提出的基于混合架构的云网关系统框架,主要包含两个部分。
第一部分位于可编程P4交换机,利用交换机转发平面的可编程芯片(ASIC)快速处理TCP流量,以及通过交换机控制平面的CPU来对可编程芯片进行配置和控制。转发平面包含安全组模块和带状态连接诶处理模块两个部分。安全组模块和带状态连接模块分别通过安全组策略和TCP连接的状态检测来过滤非法流量流量。在交换机转发平面中,所有连接及状态都存储在交换机带状态内存即寄存器中。
第二部分位于高性能服务器,服务器操作系统维护带状态连接,追踪连接的建立和结束等,同时负责对其他部分的控制。由于服务器无法直接与交换机转发芯片交互,所以需要先与交换机控制平面CPU交互,然后由交换机控制平面CPU来实现对交换机转发芯片的控制。
本发明的核心创新点包括以下:
1)本发明创新性地提出了基于可编程交换机和服务器的混合云网关系统架构,结合可编程交换机的性能优势和服务器的编程、资源优势,一方面满足云数据中心处理海量并发连接的需求,另一方面在吞吐、延迟等多个方面提升云网关性能。
2)本发明创新性地设计基于服务器CPU的云网关控制模块,其基本功能是管理安全组规则、维护和计算所有连接的信息,并向交换机下发控制指令。
3)本发明创新性地设计基于ASIC的流缓存模块,其基本功能是基于哈希对海量流状态实现高效压缩,从而能够在可编程交换机上存储千万条连接。
如图5所示,本发明主要包含两个部分,分别是可编程交换机和后端服务器。其中,可编程交换机负责安全组和部分带状态连接处理功能,通过哈希进行空间压缩,实现海量流状态存储。但是由于可编程交换机的计算能力有限,无法解决哈希冲突的的问题。因此本发明的第二部分是通过后端服务器处理小部分报文,并追踪所有流的信息,为每个新建立的连接计算哈希冲突,通过向可编程交换机的控制平面下发指令管理交换机的流表来解决冲突,从而可以在交换机上存储海量连接状态。总结起来,在本发明提供的云网关系统中,大部分网络流量仅需要通过高性能交换机,能够获得较高的吞吐和较低的延迟,少部分需要复杂计算的网络流量需要经过后端服务器处理。
云网关处理的流量主要包括TCP和UDP流量,其中TCP流量占主要部分,因此本发明的阐述主要基于TCP流量的处理。在云网关中,本发明根据是否会触发连接状态变化将TCP报文分为两种,第一种是建立、断开和重置TCP连接的报文,例如SYN/FIN/RST报文,第二种是其他的大多数TCP报文,例如ACK/PSH/URG报文。
如图6所示,在交换机数据平面上,所有数据包首先经过解析器,解析器提取出数据包的五元组、TCP标志(TCP flags),以及根据实际需求的其他相关字段,用于之后的匹配。然后进行安全组策略检测,通过安全组规则的大多数ACK/PSH/URG报文通过哈希以及冲突解决来获取连接状态索引,并在相应的寄存器上进行状态检测;而如果是SYN/RST/FIN报文,则转发至后端服务器,服务器追踪所有流的信息,计算哈希冲突,向交换机下发指令,交换机根据接收到的指令来修改对应的流表项。
连接状态索引获取:为了在可编程交换机上存储流量的状态,一个简单的方法是通过一张精确匹配表,每条表项精确匹配一个连接的五元组并设置其状态在寄存器中对应的存储位置。因此,每条表项包括104比特的匹配域以及另外的几十比特的动作域,那么千万级别的流表项则需要几百兆Byte的SRAM,这远大于现在的可编程交换机中50~100MB。因此本发明使用基于哈希的方法来压缩存储空间。
如图7所示,数据包首先通过一张哈希表(Hash_Table),哈希表通过一条默认的匹配表项对五元组执行哈希操作才获取哈希值(Flow_ID),对应着该流的状态在寄存器中的存储位置,即连接状态索引。
为了解决哈希冲突,在哈希表后维护一张精确匹配的冲突表(Col_Table)。冲突表的每条表项精确匹配发生哈希冲突的流的五元组,并修改其Flow_ID。
由于哈希冲突的计算超出了可编程交换机机有限的计算能力,本发明提出由后端服务器计算哈希冲突,并下发指令给交换机来配置。可编程交换机和后端服务器使用相同的哈希函数,所有流的第一个报文上传至后端服务器,后端服务器维护所有流的哈希结果,并计算新的流的哈希值是否与已有流的哈希值相同。如果相同则发生哈希冲突,需要修改哈希值以便新的流和旧的流的状态在可编程交换机上存在不同的寄存器中,同时后端服务器向可编程交换机CPU下发控制指令,交换机的CPU根据控制指令向转发平面的Col_Table中添加新的表项。如果新的流的哈希值和所有已存在的流的哈希值均不相同,则说明未发生哈希冲突,可以直接使用哈希值作为寄存器索引。
带状态策略:通过可编程交换机的带状态内存(register)来存储和维护流的状态,通过匹配报文所属流的当前状态和该报文的相关字段来执行带状态操作,不符合带状态规则的数据包可以根据实际需求被丢弃或者上传到服务器进行进一步处理。
对于每个报文,可编程交换机的解析器从报文头部提取出<key,state_id>,key唯一确定了这个流,通常可以是五元组,state_id为这个报文代表的流的当前状态。本文命中在可编程交换机的转发面使用五种匹配动作表(match-action table),表1总结了每个表的结构及功能:
(1)Sec_Table表为精确匹配和最长前缀匹配的组合形式,不符合安全组规则的报文。每个Sec_Table表项对应一条安全组规则,Sec_Table的表项通常在云网关初始化的时候由配置,在安全组规则变化的时候由CPU删除旧规则或添加新规则;
(2)Up_Table表通过精确匹配报文的TCP_flag字段,筛选出SYN/RST/FIN控制报文,将控制报文的出端口设置为与可编程交换机上与后端服务器连接的端口,每个Up_Table表项对应一种控制报文,Up_Table的表项在云网关初始化的时候配置;
(3)Hash_Table表精确匹配报文的TCP_flag字段,筛选出ACK/PUSH/URG数据报文,对数据报文的五元组(key)执行哈希操作Flow_ID=hash(key),输出的Flow_ID决定了该报文所属的流在一个寄存器列中的存储位置。当两个不同的key被哈希到同一个Flow_ID,则发生了哈希冲突。每个Hash_Table表项对应一种数据报文,每个Hash_Table表项对应一种数据报文,Hash_Table的表项在云网关初始化的时候配置。
(4)冲突表Col_Table精确匹配发生哈希冲突的流,并修改他们的哈希值。在每条表项的匹配域存储冲突的流的key,通过执行动作来改写Flow_ID。用这种方式,所有的流的状态可以被互不干扰地存储。每个Col_Table表项对应一条发生哈希冲突的流,Hash_Table的表项在云网关运行的时候动态地由后端服务器计算,并通过向交换机CPU下发控制指令来更新。
(5)Reg_Table读取流的状态,Hash_Table和Col_Table为每个流获取了唯一的寄存器索引值Flow_ID,Reg_Table根据Flow_ID获取每个流对应的寄存器中存储的流的状态值,使用可编程交换机中的带状态ALU,来执行带状态策略。
表1可编程交换机的转发面使用的五种匹配动作表的结构及功能
Figure GDA0003104921930000141
Figure GDA0003104921930000151
由于可编程交换机内部的存储资源是非常有限,通常是50到100兆,并且是按照流水线和阶段分配的。因此本发明提出跨流水线和跨阶段的流表分配方案,进一步消除哈希冲突,扩展到海量流量,如图7所示。
请结合图8,跨流水线和跨阶段的流表分配方案:
(1)跨流水线分配:到达交换机的不同入端口的数据包通常属于不同的流,所以来自不同端口的数据包被分配至不同的流水线上。
(2)基于单条流水线上的stage资源分配:使用多级哈希,报文首先到达一个Hash_Table和Col_Table,五元组被映射到n比特的Flow_ID;然后根据n比特的Flow_ID的前m比特,移动至接下来的2m阶段,更短的Hash_Table和Col_Table把剩下的n-m比特的Flow_ID映射到最终的r比特的寄存器索引。r由寄存器空间大小决定,n用应该满足r<n<104。
如图9所示,服务器操作系统主要实现对交换机的控制,分成三个模块:安全组管理模块、连接及状态管理模块、控制指令下发模块。其中,连接及状态管理模块包括哈希冲突检测单元和连接状态更新单元。
第一部分是安全组管理模块,该模块负责管理所有的安全组规则,支持对于安全组规则的增删改查。一般在云网关初始化或者安全组规则改变时起作用。
第二部分是连接处理模块,连接处理模块需要存储和维护所有的连接状态信息。针对TCP连接,状态处理模块还需要计算和维护存在Hash冲突的连接信息。
第三部分是控制指令下发模块,运行P4交换机操作系统的CPU本身的性能较差,为了防止由P4交换机操作系统造成的性能瓶颈,P4交换机操作系统仅仅需要将后端服务器的控制指令翻译成对应的流表项(包括安全组策略表项和解决哈希冲突的Col_Table表项)和寄存器值更新指令下发到P4转发面。负责向交换机CPU下发控制指令,最终表现为增加/删除交换机转发平面的动作匹配表的表项或者修改交换机转发平面寄存器中存储的流状态值。
根据是否会触发连接状态变化将TCP报文分为两种,第一种是建立、断开和重置TCP连接的报文,例如SYN/FIN/RST报文,第二种是其他的大多数TCP报文,例如ACK/PSH/URG报文。前者需要转发至后端服务器,服务器追踪所有流的信息,计算哈希冲突,向交换机下发指令,交换机根据接收到的指令来在Col_Table中增加相应的表项;后者直接在可编程交换机上进行处理。在后文中,我们把第一种报文称为控制报文,第二种报文称为数据报文。
图10描述了在处理报文时可编程交换机和后端服务器的交互流程。(1)可编程交换机在收到来自外界(非后端服务器)的数据包之后,通过安全组规则检测的数据包进入数据包分类模块,不改变连接状态的数据报文直接在可编程交换机上线速处理,通过规则的检查之后即可正常转发出交换机;(2)控制报文上传至后端服务器进行进一步处理;(3)在后端服务器上,对于每个新到来的连接的第一个报文即SYN报文,首先需要进行哈希冲突检测,如果新连接和已有连接发生哈希冲突,需要为新连接重新计算一个哈希值(即新连接在可编程交换机数据平面存储的寄存器索引值),并通过控制指令下发模块告知可编程交换机新连接的新哈希值,然后对于所有控制报文,都需要更新连接的状态并通过控制指令下发模块更新可编程交换机上存储的连接状态;(4)后端服务器完成对控制报文的处理之后,将报文重新转发到可编程交换机,来自后端服务器的报文和来自外界的数据报文在可编程交换机上具有相同的路径,进行安全组规则检查、数据包分类模块之后进入带状态连接处理模块来获取连接和检查连接状态,通过状态监测之后即可正常转发出去。
本发明中,可编程交换机转发面的数据包处理过程通过编译和运行P4程序即可。由于目前运行可编程交换机操作系统的CPU本身的性能较差,为了防止由可编程交换机操作系统造成的性能瓶颈,本发明中可编程交换机操作系统仅仅支持将后端服务器的控制指令翻译成对应的流表项下发到可编程交换机转发面。
服务器操作系统需要管理安全组规则,存储和维护所有连接状态信息,并且计算哈希冲突,以及下发控制指令。服务器操作系统部分实现相对比较复杂,本发明中将NetFilter功能迁移到DPDK等高性能数据包处理架构中,一方面可以利用服务器的多核架构进行扩展,在性能方面有所保证,另一方面可以便利地与管理平面进行通信,同时方便地控制可编程交换机。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于可编程数据交换机的云网关系统,其特征在于,包括:可编程交换机和后端服务器,所述可编程交换机与所述后端服务器连接;
所述可编程交换机用于接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息;
所述后端服务器用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机,其中,所述连接为连接状态。
2.根据权利要求1所述的基于可编程数据交换机的云网关系统,其特征在于,所述可编程交换机还用于当外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
3.根据权利要求2所述的基于可编程数据交换机的云网关系统,其特征在于,所述可编程交换机包括数据包分类模块和带状态连接处理模块,所述数据包分类模块和所述带状态连接处理模块连接;
所述数据包分类模块用于检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至所述后端服务器;还用于接收所述后端服务器反馈的所述第三存储索引值和所述控制报文,并将所述第三存储索引值和所述控制报文发送至所述带状态连接处理模块;
所述带状态连接处理模块用于获取所述连接状态信息,根据所述连接状态信息转发所述控制报文。
4.根据权利要求3所述的基于可编程数据交换机的云网关系统,其特征在于,所述数据包分类模块还用于当外部的所述数据包的报文为数据报文时,将所述数据报文发送至所述带状态连接处理模块;
所述带状态连接处理模块还用于根据所述连接状态信息转发所述数据报文。
5.根据权利要求3所述的基于可编程数据交换机的云网关系统,其特征在于,所述可编程交换机还包括安全组模块,所述安全组模块与所述数据包分类模块连接,所述安全组模块用于接收外部的数据包,对外部的所述数据报进行安全检测,并将检测后的所述数据包发送至所述数据包分类模块。
6.根据权利要求1-5任一项中所述的基于可编程数据交换机的云网关系统,其特征在于,所述后端服务器用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接进行哈希计算,获得第三存储索引值。
7.根据权利要求1所述的基于可编程数据交换机的云网关系统,其特征在于,所述后端服务器包括连接及状态管理模块和控制指令下发模块,所述连接及状态管理模块和所述控制指令下发模块连接;
所述连接及状态管理模块用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块;
所述控制指令下发模块用于将所述第三存储索引值和所述控制报文发送至所述可编程交换机。
8.根据权利要求1所述的基于可编程数据交换机的云网关系统,其特征在于,所述连接及状态管理模块包括冲突检测单元和连接状态更新单元,所述冲突检测单元和所述连接状态更新单元连接;
所述冲突检测单元用于接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,并将检测的冲突结果发送至所述连接状态更新单元;
所述连接状态更新单元用于当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述控制指令下发模块,并根据所述第三存储索引值更新所述后端服务器的连接状态信息。
9.一种基于可编程数据交换机的报文处理方法,其特征在于,包括:
所述可编程交换机接收外部的数据包,检测外部的所述数据包的报文是否为控制报文,当所述数据包的报文为控制报文时,将所述控制报文发送至后端服务器;
所述后端服务器接收所述可编程交换机发送的控制报文,检测所述控制报文对应的连接的第一存储索引值是否与已有的连接的第二存储索引值存在冲突,当所述控制报文对应的连接的第一存储索引值与已有的连接的第二存储索引值存在冲突时,对所述控制报文对应的连接重新计算获得第三存储索引值,将所述第三存储索引值和所述控制报文发送至所述可编程交换机,其中,所述连接为连接状态;
所述可编程交换机接收所述后端服务器发送的控制报文和第三存储索引值,根据所述第三存储索引值和所述控制报文更新所述可编程交换机的连接状态信息。
10.根据权利要求9所述的基于可编程数据交换机的报文处理方法,其特征在于,还包括步骤:
当所述可编程交换机检测到外部的所述数据包的报文为数据报文时,根据所述连接状态信息转发所述数据报文。
CN202011212405.3A 2020-11-03 2020-11-03 基于可编程数据交换机的云网关系统及其报文处理方法 Active CN112367278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011212405.3A CN112367278B (zh) 2020-11-03 2020-11-03 基于可编程数据交换机的云网关系统及其报文处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011212405.3A CN112367278B (zh) 2020-11-03 2020-11-03 基于可编程数据交换机的云网关系统及其报文处理方法

Publications (2)

Publication Number Publication Date
CN112367278A CN112367278A (zh) 2021-02-12
CN112367278B true CN112367278B (zh) 2021-07-20

Family

ID=74512718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011212405.3A Active CN112367278B (zh) 2020-11-03 2020-11-03 基于可编程数据交换机的云网关系统及其报文处理方法

Country Status (1)

Country Link
CN (1) CN112367278B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113489640B (zh) * 2021-08-25 2023-08-01 北京金山云网络技术有限公司 报文转发方法、装置及网关系统
CN114866496B (zh) * 2022-03-30 2023-06-20 清华大学 一种智能网络协作装置及方法
CN115002039B (zh) * 2022-07-27 2023-03-24 之江实验室 一种基于udf的流量卸载方法及系统
US11882039B1 (en) 2022-07-27 2024-01-23 Zhejiang Lab UDF-based traffic offloading methods and systems
CN115334019B (zh) * 2022-08-03 2023-09-26 厦门大学 可编程交换机处理sat问题的数据处理方法及可编程交换机

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105379199A (zh) * 2014-06-16 2016-03-02 华为技术有限公司 业务报文分发方法与装置
CN109617735A (zh) * 2018-12-26 2019-04-12 华为技术有限公司 云计算数据中心系统、网关、服务器及报文处理方法
CN111193644A (zh) * 2018-11-14 2020-05-22 中移(杭州)信息技术有限公司 一种vBRAS业务传输方法、装置、终端设备和介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561117A (zh) * 2004-03-12 2005-01-05 上海傲特科技有限公司 信息交换支撑平台
CN102541018A (zh) * 2012-01-13 2012-07-04 清华大学 一种密封试验的集中检测与控制系统
CN103179037B (zh) * 2012-12-13 2015-12-09 清华大学 基于内容的数据中心网络的数据传输方法
CN104836753B (zh) * 2015-03-27 2018-10-02 清华大学 Sdn数据平面带状态交换设备、系统及转发处理方法
US10637778B1 (en) * 2017-08-09 2020-04-28 Open Invention Network Llc Systems, methods and devices for scalable expansion of rules-based forwarding paths in network communications devices for distributed computing systems
CN108270699B (zh) * 2017-12-14 2020-11-24 中国银联股份有限公司 报文处理方法、分流交换机及聚合网络
US11095558B2 (en) * 2018-12-28 2021-08-17 Alibaba Group Holding Limited ASIC for routing a packet

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105379199A (zh) * 2014-06-16 2016-03-02 华为技术有限公司 业务报文分发方法与装置
CN111193644A (zh) * 2018-11-14 2020-05-22 中移(杭州)信息技术有限公司 一种vBRAS业务传输方法、装置、终端设备和介质
CN109617735A (zh) * 2018-12-26 2019-04-12 华为技术有限公司 云计算数据中心系统、网关、服务器及报文处理方法

Also Published As

Publication number Publication date
CN112367278A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN112367278B (zh) 基于可编程数据交换机的云网关系统及其报文处理方法
US11962501B2 (en) Extensible control plane for network management in a virtual infrastructure environment
Kaufmann et al. High performance packet processing with flexnic
EP3069484B1 (en) Shortening of service paths in service chains in a communications network
JP6592595B2 (ja) コンピューティングネットワークにおけるデータトラフィックを管理する方法およびシステム
US20180083876A1 (en) Optimization of multi-table lookups for software-defined networking systems
CN108141416B (zh) 一种报文处理方法、计算设备以及报文处理装置
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
KR101969194B1 (ko) 네트워킹 장치 가상화를 위한 패킷 처리 오프로딩 기법
US8169910B1 (en) Network traffic analysis using a flow table
JP4759389B2 (ja) パケット通信装置
US9032089B2 (en) Methods and apparatus for path selection within a network based on flow duration
US20050190694A1 (en) Method and apparatus for wire-speed application layer classification of upstream and downstream data packets
US20080002663A1 (en) Virtual network interface card loopback fastpath
US10135736B1 (en) Dynamic trunk distribution on egress
US20040001492A1 (en) Method and system for maintaining a MAC address filtering table
US10992553B2 (en) Method and apparatus for tap aggregation and network data truncation
WO2013039083A1 (ja) 通信システム、制御装置および通信方法
EP2947826A1 (en) Control apparatus, communication apparatus, communication system, switch control method and program
US9742702B1 (en) End-to-end cache for network elements
Ding et al. A split architecture approach to terabyte-scale caching in a protocol-oblivious forwarding switch
CN111245858A (zh) 网络流量拦截方法、系统、装置、计算机设备和存储介质
US7324438B1 (en) Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
EP1564960B1 (en) System and methods for providing differentiated services within a network communication system
Wang et al. OpenISMA: An approach of achieving a scalable OpenFlow network by identifiers separating and mapping

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant