Data transmission method and related device
Patent Information
- Application Number
- PCT/CN2026/075131
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-20
- Filing Date
- 2026-01-27
- Publication Date
- 2026-08-27
Smart Images

Figure CN2026075131_27082026_PF_FP_ABST
Abstract
Description
A data transmission method and related equipment
[0001] This application claims priority to Chinese Patent Application No. CN202510192514.X, filed on February 20, 2025, entitled "A Data Transmission Method and Related Equipment", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communications, and more particularly to a data transmission method and related equipment. Background Technology
[0003] A home gateway is a device that connects a local area network (LAN) such as a home or office to the internet or a wide area network (WAN). To reduce the cost of gateway devices, a cloud-based solution for home gateways has been proposed. This involves connecting the home gateway to a cloud server via an underlay or overlay tunnel, and then using a general-purpose cloud server to build a virtual gateway. Services within the LAN can then be developed and deployed in the cloud, leveraging the high computing power of the cloud server to achieve more functionalities and improve the user experience.
[0004] In this solution, the general-purpose server in the cloud acts as a virtual gateway, responsible for traffic forwarding. Because the general-purpose server is primarily computational, the forwarded traffic is low, resulting in limited gateway capacity. Furthermore, the scheduling cycle of the general-purpose server typically does not match the traffic cycle, leading to significant data transmission jitter and negatively impacting user experience. Summary of the Invention
[0005] This application provides a data transmission method and related equipment to improve the processing performance of edge cloud networks and reduce power consumption and latency.
[0006] In a first aspect, embodiments of this application provide a data transmission method. This data transmission method is applied to a data plane gateway, where multiple forwarding instances in the data plane gateway correspond one-to-one with multiple control instances in the control plane gateway. The data transmission method includes: the data plane gateway receiving a first service flow of a target service and determining a target forwarding instance corresponding to the target service; the data plane gateway determining a target transmission tunnel corresponding to the first service flow based on a routing table of the target service, wherein the routing table is configured for a target control instance, the target control instance is the control instance among multiple control instances corresponding to the target forwarding instance, and the target transmission tunnel is an access tunnel between a residential gateway and the data plane gateway, a value-added service virtual machine between the value-added service and the data plane gateway, or an interconnection tunnel between the Internet and the data plane gateway; and the data plane gateway transmitting the first service flow through the target transmission tunnel.
[0007] In this embodiment, the edge cloud gateway separates its data plane and control plane to decouple control and forwarding functions. The control plane gateway can use a general-purpose server with higher computing power. The data plane gateway uses dedicated network equipment (such as dedicated forwarding chips, smart network cards, etc.), which can perform high-speed processing and forwarding for fixed formats of service flows, improving forwarding efficiency and traffic volume; moreover, the scheduling cycle of the dedicated network equipment matches the traffic volume of the service flow, which can reduce jitter. Therefore, this embodiment achieves elastic capacity scaling and high reliability through the separation of the data plane and control plane.
[0008] In one alternative implementation, before determining the target transport tunnel corresponding to the service flow based on the forwarding table of the target service, the method further includes: the data plane gateway receiving routing control information from the control plane gateway, the routing control information being used to query or adjust the routing table on the target forwarding instance.
[0009] In this embodiment, the data plane gateway and the control plane gateway interact with routing control information to achieve high consistency of the routing tables on the target forwarding instance and the target control instance, thereby improving reliability.
[0010] In one optional implementation, the data plane gateway receives routing control information from the control plane gateway, including: before receiving the first service flow of the target service, the data plane gateway receives a first configuration message from the control plane gateway, the first configuration message including the configuration parameters of the target service and the routing control information including the routing table of the target service.
[0011] In this embodiment, the control plane gateway carries the configuration parameters and routing control information of the target service together in the first configuration message and sends them to the data plane gateway. This can realize the unification of the configuration parameters and routing information of the target service between the control plane gateway and the data plane gateway, thereby improving the synchronization efficiency between the control plane gateway and the data plane gateway.
[0012] In one optional implementation, the data plane gateway receives routing control information from the control plane gateway, including: after receiving the first service flow of the target service, the data plane gateway receives a second configuration message from the control plane gateway, the second configuration message including routing information corresponding to the first service flow, and the second configuration message is used to instruct the addition of a routing table entry corresponding to the first service flow to the routing table of the target forwarding instance.
[0013] In this embodiment of the application, if a new type of first service flow appears in the target service, the routing information corresponding to the first service flow can be determined by the control plane gateway, and the routing table entry corresponding to the first service flow can be added to the routing table of the data plane gateway through the second configuration message, so as to realize the synchronization of the routing table entry corresponding to the first service flow between the control plane gateway and the data plane gateway.
[0014] In one optional implementation, receiving routing control information from the control plane gateway includes: after receiving the first service flow of the target service, the data plane gateway receives a third configuration message from the control plane gateway. The third configuration message includes the data packets or protocol packets of the first service flow and the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the addition of the transport protocol corresponding to the first service flow to the routing table of the target forwarding instance.
[0015] In this embodiment, if the first service flow is data that requires control plane processing, the control plane gateway not only processes the first service flow to obtain its data packets or protocol packets, but also obtains the corresponding transport protocol for the first service flow. The target forwarding instance on the data plane gateway can then forward the data packets or protocol packets of the first service flow according to the transport protocol corresponding to the first service flow.
[0016] In one alternative implementation, receiving routing control information from the control plane gateway includes: the data plane gateway receiving a fourth configuration message from the control plane gateway, the fourth configuration message including a target routing table entry in the routing table of the target forwarding instance, the fourth configuration message being used to indicate the deletion, querying, or modification of the target routing table entry.
[0017] In this embodiment of the application, the deletion, query or modification of the target routing table entry is synchronously implemented between the control plane gateway and the data plane gateway through the fourth configuration message, thereby realizing the synchronization of the target routing table entry between the control plane gateway and the data plane gateway.
[0018] In one optional implementation, before determining the target transmission tunnel corresponding to the first service flow based on the forwarding table of the target service, the method further includes: the data plane gateway sending the data packets of the first service flow to the control plane gateway, and the routing control information being determined by the control plane gateway based on the data packets of the first service flow.
[0019] In this embodiment, the data plane gateway sends data packets of the first service flow to the control plane gateway, thereby obtaining the routing control information corresponding to the first service flow from the control plane gateway, thus realizing the synchronization of the routing control information corresponding to the first service flow between the control plane gateway and the data plane gateway.
[0020] In one optional implementation, sending the data packet of the first service flow to the control plane gateway includes: after determining the target forwarding instance corresponding to the target service, if the first service flow is determined to be a target protocol message, the data plane gateway sends the first service flow to the target control instance of the control plane gateway.
[0021] In this embodiment of the application, if the first service flow is data that needs to be processed by the control plane, the data plane gateway sends the first service flow to the target control instance corresponding to the target forwarding instance on the control plane gateway, thereby realizing the processing of the first service flow through the control plane gateway.
[0022] In one optional implementation, after determining the target forwarding instance corresponding to the target service, the method further includes: the data plane gateway querying the routing table of the target forwarding instance for the routing table corresponding to the first service flow; and sending the data packet of the service flow to the control plane gateway, including: if the routing table of the target forwarding instance does not include the routing table entry corresponding to the first service flow, the data plane gateway sends the data packet of the first service flow to the control plane gateway.
[0023] In this embodiment, if the routing table of the target forwarding instance of the data plane gateway does not include the routing table entry corresponding to the first service flow, the data plane gateway sends the data packet of the service flow to the control plane gateway, thereby determining the routing table entry corresponding to the first service flow through the control plane gateway and updating the routing table of the target forwarding table corresponding to the target service.
[0024] In one optional implementation, sending the data packet of the first service flow to the control plane gateway includes: after receiving the first service flow of the target service within the reporting period, the data plane gateway sends the target data packet of the reporting period to the control plane gateway. The target data packet is the data packet of the service flow received within the reporting period and matched with the routing table of the target forwarding instance.
[0025] In this embodiment, if the routing information corresponding to the first service flow has been previously determined by the control plane gateway, and the first service flow is not a data packet requiring control plane processing, then the processing of the first service flow can be handled independently by the data plane gateway. The data plane gateway does not need to report the first service flow to the control plane gateway, which may result in the routing table entry corresponding to the first service flow on the control plane gateway not being deleted by HIT for a long time. The data plane gateway periodically sends data packets within the reporting period to the control plane gateway, which can prevent the routing table entry corresponding to the service flow handled independently by the data plane gateway from not being deleted by HIT on the control plane gateway for a long time, thereby ensuring the consistency of the routing tables on the data plane gateway and the control plane gateway.
[0026] Secondly, embodiments of this application provide a data transmission method. This data transmission method is applied to a control plane gateway, where multiple control instances in the control plane gateway correspond one-to-one with multiple forwarding instances in the data plane gateway, and a target forwarding instance among the multiple forwarding instances is used to process a first service flow of a target service. The data transmission method includes: the control plane gateway sending routing control information to the data plane gateway, the routing control information being used to query or adjust the routing table on the target forwarding instance.
[0027] In one optional implementation, sending routing control information to the data plane gateway includes: the control plane gateway sending a first configuration message to the data plane gateway, the first configuration message including configuration parameters of the target service and routing control information, the routing control information including the routing table of the target service.
[0028] In one optional implementation, sending routing control information to the data plane gateway includes: the control plane gateway sending a second configuration message to the data plane gateway, the second configuration message including routing information corresponding to the first service flow, the second configuration message being used to instruct the addition of a routing table entry corresponding to the first service flow to the routing table of the target forwarding instance.
[0029] In one optional implementation, sending routing control information to the data plane gateway includes: the control plane gateway sending a third configuration message to the data plane gateway. The third configuration message includes the data packets of the first service flow and the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the addition of the transport protocol corresponding to the first service flow to the routing table of the target forwarding instance.
[0030] In one alternative implementation, sending routing control information to the data plane gateway includes: the control plane gateway sending a fourth configuration message to the data plane gateway, the fourth configuration message including a target routing table entry in the routing table of the target forwarding instance, the fourth configuration message being used to indicate the deletion, querying, or modification of the target routing table entry.
[0031] In one alternative implementation, before sending routing control information to the data plane gateway, the method further includes: the control plane gateway receiving data packets of a first service flow from the data plane gateway; and the control plane gateway determining routing control information based on the data packets of the first service flow.
[0032] In one optional implementation, receiving data packets from a first service flow from a data plane gateway includes: the control plane gateway receiving data packets from the first service flow of the data plane gateway, wherein the first service flow is a target protocol message.
[0033] In one optional implementation, receiving data packets from a first service flow from a data plane gateway includes: the control plane gateway receiving target data packets from the data plane gateway during a reporting period, wherein the target data packets are data packets from service flows received during the reporting period and matched with the routing table of the target forwarding instance.
[0034] Thirdly, embodiments of this application provide a data plane gateway. This data plane gateway includes multiple forwarding instances, each corresponding one-to-one with a plurality of control instances in a control plane gateway. This data plane gateway is used to execute the data transmission method described in the first aspect.
[0035] Fourthly, embodiments of this application provide a control plane gateway. This control plane gateway includes multiple control instances, each corresponding one-to-one with a multiple forwarding instance in a data plane gateway. This control plane gateway is used to execute the data transmission method described in the second aspect.
[0036] Fifthly, embodiments of this application provide a communication system. This communication system includes the data plane gateway described in the third aspect and the control plane gateway described in the fourth aspect.
[0037] The beneficial effects of aspects two through five are described in aspect one, and will not be repeated here. Attached Figure Description
[0038] Figure 1 is a schematic diagram of the system architecture of the cloud-based home gateway solution provided in this application;
[0039] Figure 2 is a schematic diagram of the architecture of the CD-separated edge cloud gateway provided in an embodiment of this application;
[0040] Figure 3a is a schematic diagram of the relationship between the overlay access service flow and the underlay access tunnel on the local area network provided in the embodiment of this application.
[0041] Figure 3b is a schematic diagram of the relationship between the overlay internet access service flow and the underlay internet tunnel on the internet side provided in the embodiment of this application;
[0042] Figure 4a is a schematic diagram of an architecture of a control plane gateway provided in an embodiment of this application;
[0043] Figure 4b is a schematic diagram of an architecture of a data plane gateway provided in an embodiment of this application;
[0044] Figure 4c is a schematic diagram of an architecture where a control plane gateway and a control plane gateway are connected according to an embodiment of this application;
[0045] Figure 5 is a schematic diagram of a session between control plane gateways provided in an embodiment of this application;
[0046] Figure 6 is a flowchart illustrating a data transmission method provided in an embodiment of this application.
[0047] Figure 7 is another flowchart illustrating the data transmission method provided in an embodiment of this application;
[0048] Figure 8 is a schematic diagram of the session channel between the control plane gateway and the data plane gateway provided in an embodiment of this application;
[0049] Figure 9 is a schematic diagram of the encapsulation format of the DPOP message provided in the embodiments of this application;
[0050] Figure 10 is a schematic diagram of the message header format of the DPOP message provided in an embodiment of this application;
[0051] Figure 11 is a schematic diagram of the warm backup redundancy architecture of the CD separation architecture provided in the embodiment of this application. Detailed Implementation
[0052] The embodiments of this application will now be described with reference to the accompanying drawings. Those skilled in the art will recognize that, with technological advancements and the emergence of new scenarios, the technical solutions provided in the embodiments of this application are equally applicable to similar technical problems.
[0053] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of units is not necessarily limited to those units, but may include other units not explicitly listed or inherent to those processes, methods, products, or apparatuses. Additionally, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can be expressed as: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0054] The following explains some terms that will appear in the embodiments of this application:
[0055] Cloud: An abstraction of the Internet and its underlying infrastructure.
[0056] Edge cloud: A small-scale cloud data center located at the edge of the network, providing real-time data processing, analysis and decision-making.
[0057] The Internet, also known as the international network, refers to a vast network of interconnected networks that are linked together by a set of common protocols, forming a logically single, enormous international network.
[0058] Wide Area Network (WAN): Also known as the external network or public network. A WAN is a long-distance network that connects computers on different local area networks (LANs) or metropolitan area networks (MANs). WANs typically span a large physical area, covering a range from tens to thousands of kilometers. A WAN is not the same as the Internet.
[0059] Local Area Network (LAN): Its coverage area is typically within a radius of several kilometers. Its ease of installation, cost-effectiveness, and convenient expansion make it widely used in various offices. LANs can enable functions such as file management, application software sharing, and printer sharing. During use, maintaining LAN network security can effectively protect data security and ensure the normal and stable operation of the LAN.
[0060] A Virtual Local Area Network (VLAN) is a group of logical devices and users that are not limited by physical location. They can be organized based on factors such as function, department, and application, and their communication is as if they were on the same network segment, hence the name "Virtual Local Area Network." Switch ports have two VLAN attributes: VLAN identification (ID) and VLAN tag (TAG). These correspond to setting VLAN tags for data packets (or service messages) and allowing data packets (or service messages) with VLAN tags to pass. Ports with different VLAN IDs can construct VLANs by mutually allowing VLAN tags.
[0061] Stacked Virtual Local Area Network (Selective VLAN, SVLAN): Also known as outer VLAN, it is an extension technology of VLAN based on QinQ (802.1Q-in-802.1Q). By stacking two 802.1Q packet headers in an Ethernet frame, it effectively expands the number of VLANs, making the maximum number of VLANs up to 4096×4096.
[0062] Customer VLAN (CVLAN): Defined by 802.1ad, it is a dual-label VLAN by adding a QinQ label to a VLAN. The outer layer is the SVLAN and the inner layer is the CVLAN.
[0063] Gateway: Also known as an internetwork connector or protocol converter. A gateway is a complex network interconnection device that operates above the network layer, used only for interconnecting two networks with different high-level protocols. Gateways can be used for both wide area network (WAN) and local area network (LAN) interconnection. A gateway is a computer system or device that acts as a translator. Used between two systems with different communication protocols, data formats, languages, or even completely different architectures, a gateway is a translator. Unlike a bridge, which simply forwards information, a gateway repackages received information to suit the needs of the destination system.
[0064] Dynamic Host Configuration Protocol (DHCP): This protocol allows servers to dynamically assign IP addresses and configuration information to clients or hosts.
[0065] Broadband Remote Access Server (BRAS): A BRAS routes traffic through a Digital Subscriber Line Access Multiplexer (DSA) within an Internet Service Provider's (ISP) network. For example, a BRAS may be located in the ISP's core network and aggregate user sessions within the access network.
[0066] A gateway is a device that connects a local area network (LAN) such as a home or office to the internet or a wide area network (WAN). To reduce the cost of gateway devices, a cloud-based solution for home gateways has been proposed. This involves connecting the home gateway to a cloud server via an upper-layer underlay or lower-layer overlay tunnel, and then using general-purpose cloud servers to build a virtual gateway. Services within the LAN can then be developed and deployed in the cloud, leveraging the high computing power of cloud servers to achieve more functionalities and improve the user experience.
[0067] Figure 1 is a schematic diagram of the system architecture of the home gateway cloudification solution. As shown in Figure 1, the architecture includes an optical network terminal (ONT), a networked enhanced residential gateway (NERG), an edge cloud, and the Internet.
[0068] The ONT is an optical network terminal used at the user end to connect to local area networks (LANs) in homes, businesses, etc. Optionally, the ONT can be the end access unit in a fiber-to-the-room (FTTR) network.
[0069] NERG can also be called an enhanced gateway, service gateway, converged edge gateway, edge gateway, or other names. NERG provides three-way traffic routing to the user, to the edge cloud, and to the external network. Specifically, the edge cloud direction provides users with a Layer 2 or Layer 3 cloud-based service access experience, while the external network direction provides users with fast internet access for cloud-based services.
[0070] Combining the ONT's internet access channel, the traffic path in the architecture shown in Figure 1 is as follows:
[0071] The ONT is configured with dual WANs (WAN1 and WAN2 in Figure 1). WAN1 is used to connect to the Layer 3 (L3) Internet access channel, which connects to the Internet, and Internet traffic within the LAN can use the WAN1 channel. WAN2 is the bridging channel for the ONT to access the edge cloud; LAN access to the edge cloud uses the WAN2 channel.
[0072] A network-enhanced residential gateway (NERG) consists of NERG instances, with different NERG instances serving different users (e.g., residential, business users). Each instance is configured with an internet WAN, referred to as the NERG WAN. The NERG WAN connects to the BRAS data plane (DP), and traffic from cloud services on the edge cloud to the internet travels through the NERG WAN.
[0073] It operates in a dual-active mode, with both the ONT and NERG internet exits active (for example, using point-to-point protocol over ethernet (PPPOE) on two Ethernet networks, with LAN internet traffic going through ONT WAN1 and edge cloud services going through NERG WAN; it can also be configured in a primary / backup mode, with ONT WAN1 not working by default, and all internet traffic going through NERG WAN, only switching back to ONT WAN1 when NERG WAN fails).
[0074] Edge cloud service backhaul traffic is split in NERG. Traffic destined for the local area network returns to the ONT, while internet traffic goes through NERG's PPPoE egress channel.
[0075] Internet backhaul traffic is offloaded at NERG and separated into edge cloud services (such as internet traffic for cloud computers) and local area network traffic.
[0076] Between WAN2 and NERG is a Layer 2 (L2) leased line. This Layer 2 leased line is also known as the Layer 2 tunnel between ONT and the edge cloud, and it can be used to transmit service packets between NERG and the edge cloud.
[0077] As shown above, in a cloud-based home gateway solution, the NERG server in the cloud acts as a virtual gateway, responsible for traffic forwarding. NERG servers are typically general-purpose servers. Because general-purpose servers are primarily computational, they handle low traffic volumes, resulting in limited gateway capacity. Furthermore, the scheduling cycle of general-purpose servers often doesn't match the traffic cycle, leading to significant data transmission jitter and negatively impacting user experience.
[0078] To address the aforementioned issues, embodiments of this application provide a data transmission method and related equipment. By separating the user plane and control plane of the edge cloud gateway, the processing performance of the edge cloud network is improved, and power consumption and latency are reduced.
[0079] Figure 2 is a schematic diagram of the architecture of the CD-separated edge cloud gateway provided in an embodiment of this application. As shown in Figure 2, the edge cloud gateway NERG includes a control plane gateway and a data plane gateway. The control plane gateway and the data plane gateway can be hosted on different devices, such as different physical servers, different virtual servers, etc.; or, the control plane gateway and the data plane gateway can also be hosted on the same device, which is not limited in this application.
[0080] A control plane gateway consists of multiple control plane (CP) components, also known as C-plane components, which are responsible for processing control plane protocols. A data plane gateway consists of a data plane (DP) component, also known as a D-plane component, which is responsible for forwarding data traffic.
[0081] The C-side component includes multiple control instances (e.g., control instances 1 to x and y in Figure 2), each corresponding to a residential gateway (e.g., home gateway, enterprise gateway, campus gateway, etc.). Each residential gateway corresponds to one broadband user, therefore each control instance serves one broadband user. The residential gateway can be a gateway for a home, enterprise, campus, etc., and in this example, it can be an ONT.
[0082] The D-side component is divided into two layers. The upper layer of the D-side component is the overlay service forwarding layer, which includes multiple forwarding instances. These multiple forwarding instances correspond one-to-one with multiple control instances in the control plane gateway. Therefore, each forwarding instance corresponds to one residential gateway and serves one broadband user.
[0083] The bottom layer of the D-side component is the underlay tunnel forwarding layer, which is the endpoint / starting point of three types of tunnels in three directions: local area network, Internet and cloud.
[0084] The LAN-oriented component of the underlay tunnel forwarding layer is the access tunnel termination point (ATTP). ATTP is the termination point of the access tunnel between the edge cloud gateway and the physical residential gateway (i.e., the physical residential gateway, such as a home gateway). Service flows from multiple physical LANs share a single tunnel.
[0085] The cloud-side component of the underlay tunnel forwarding layer is the value-added tunnel termination point (VTTP). The VTTP is the termination point of the tunnel between the edge cloud gateway and the virtual machine (VM) for value-added services, and multiple value-added service flows share a single tunnel.
[0086] The Internet-oriented component of the underlay tunnel forwarding layer is the Internet Tunnel Termination Point (ITTP). The ITTP is the termination point of the tunnel between the edge cloud gateway and the Internet gateway (such as BRAS, backbone PE, etc.), and multiple Internet service flows share a single tunnel.
[0087] Optionally, the underlay tunnel can use common tunneling technologies such as VXLAN, SRv6-BE, and SRv6-TE to achieve data transmission.
[0088] Overlay service flows are Layer 2 service flows corresponding to a specific broadband user, and are typically identified using a dual-layer VLAN ID (SVLANID+CVLANID) or a single-layer VLAN ID (CVLAN).
[0089] For example, Figure 3a illustrates the relationship between the overlay access service flow and the underlay access tunnel at the user access end (LAN end). Access service flows are identified using a Layer 2 VLAN, SVLANID + CVLANID. Within the same access tunnel, each broadband user uses a different SVLANID + CVLANID. The endpoints of the access service flow are the physical residential gateway (e.g., the physical home gateway) and the corresponding D-plane forwarding instance (located on the data plane gateway).
[0090] Multiple access service flows are directed into the access tunnel at the ATTP point on the LAN, and then terminated at the ATTP point on the edge cloud, where they are directed out of the access tunnel; the reverse is also true. The ATTP point on the edge cloud is located in the underlay tunnel layer of the D-side component, while the ATTP point on the LAN is located on the upper-layer network device of the physical home gateway, such as the OLT or aggregation switch.
[0091] For example, Figure 3b illustrates the relationship between the overlay internet traffic and the underlay internet tunnel at the internet end. The internet traffic also uses a Layer 2 VLAN (SVLANID + CVLANID) for identification. Within the same internet tunnel, each broadband user uses a different SVLANID + CVLANID for their internet traffic. The endpoints of the internet traffic are the internet gateway and the corresponding D-side forwarding instance. The ITTP point in the edge cloud of the internet tunnel is located at the tunnel layer of the D-side component, while the ITTP point at the internet end is located at the switch before the internet gateway, or it can be directly deployed on the internet gateway.
[0092] It is worth noting that the S+C dual-layer VLAN identifier for the same broadband user's internet access service flow can be different from the VLAN identifiers for its access service flow and value-added service flow, in order to achieve differentiation.
[0093] It is worth noting that the embodiment shown in Figure 2 is merely an example of the architecture of a CD-separated edge cloud gateway and does not impose limitations on the structure of the data plane gateway (D-plane component) and the control plane gateway (C-plane component). For example, the structure of the C-plane component can be as shown in Figure 2, or it can be a bare-metal container, with one container including multiple NERG instances.
[0094] In a CD-separated edge cloud gateway architecture, the control plane gateway (C-plane component) can be a server, and is therefore also called a C-plane server. As shown in Figure 4a, a C-plane server contains multiple virtual machines (VMs), including at least one VM for running vswitch to provide network connectivity for the VM / container where the control plane instance resides. The C-plane server can deploy multiple containers, each containing multiple control instances; alternatively, the C-plane server can also directly deploy multiple control instances, which is not limited in this application.
[0095] Each control plane instance corresponds to one broadband user and is responsible for processing the control protocols for that user. The control protocols mentioned here include, but are not limited to, TCP / UDP session header packets and anti-aging packet leakage, IPv4 ARP, ICMPv4, L2CP, PPPoE discovery, PPPoE LCP, DHCPv4, IGMPv4, NTP, DNS, IGP, and the corresponding IPv6 protocols.
[0096] In the architecture shown in Figure 2, the data plane gateway (D-plane component) can be either a box-type or a smart NIC type, as shown in Figure 4b. If the D-plane component is a smart NIC type, the smart NIC can be directly installed in the slot of the C-plane server. If the D-plane component is a box-type, as shown in Figure 4c, the C-plane server and the D-plane component can be deployed directly connected in the same rack or indirectly connected across racks.
[0097] As shown in the left figure of Figure 4c, in the case of direct connection deployment, one D-side component can connect to multiple C-side servers via Ethernet links, and the D-side component can then be individually connected to the TOR (TOP of RACK) switch at the top of the rack.
[0098] As shown in the right figure of Figure 4c, in the case of indirect connection deployment, the C-side server and the D-side component are placed in different racks and are indirectly connected through the DCN network. In this case, a VXLAN tunnel is required as the bearer tunnel for the CD session.
[0099] Each overlay forwarding instance on the D-side has a CD session instance between it and the corresponding C-side control instance. This CD session instance can be implemented using the data plane offloading protocol (DPOP). DPOP resides within the forwarding and control instances and is used for heartbeat detection, service configuration and querying, protocol message transmission, and forwarding table entry maintenance.
[0100] Optionally, CD session instances can reside on a CD session tunnel. As shown in the left diagram of Figure 5, if the physical server on the C-side and the physical device on the D-side are directly connected via an Ethernet link, a CD session tunnel is not required, and a single-layer VLAN ID or a double-layer VLAN ID can be used to identify the CD session instance. As shown in the right diagram of Figure 5, if the physical server on the C-side and the physical device on the D-side are indirectly connected via a data center network (DCN) switch, then Virtual Extensible Local Area Network (VXLAN), SRV6, etc., can be used as the network identifier (VNI) within the tunnel for the CD session tunnel from a specific D-side to a specific C-side server. A tunnel can carry multiple CD session instances.
[0101] The CD session mainly includes three parts of interface functionality:
[0102] Protocol message interface: The interface for transmitting protocol messages between the C-side instance and the D-side instance, including the packet-out interface from the D-side instance to the C-side instance, and the packet-insertion interface from the C-side instance to the D-side instance.
[0103] Management Interface: The interface for static business configuration and query of the C-side instance to the D-side instance.
[0104] Control interface: The interface for maintaining (add, delete, query, modify) the dynamic forwarding table entries of the C-side instance to the D-side instance.
[0105] CD sessions can use OpenFlow, NetConf / YANG, P4 protocol, Telemetry, or a combination of these protocols.
[0106] Based on the architecture shown in Figures 2 to 5, this application embodiment provides a data transmission method. Figure 6 is a flowchart illustrating this data transmission method. As shown in Figure 6, the data transmission method includes:
[0107] 601. The data plane gateway receives the first service flow of the target service and determines the target forwarding instance corresponding to the target service.
[0108] After receiving the first service flow, the data plane gateway can determine the target service corresponding to the first service flow based on the encapsulation of the service flow packet header.
[0109] Taking the inbound direction of the D-plane component as an example, the tunnel encapsulation is removed at the tunnel endpoint in the edge cloud (e.g., ATTP, ITTP, VTTP on the data plane gateway). Based on the inbound tunnel ID and the S+C identifier of the overlay service flow, the target service corresponding to the first service flow is determined. Since the service is associated with broadband users, and the forwarding instances on the data plane gateway correspond one-to-one with broadband users, the data plane gateway can determine the broadband user and forwarding instance corresponding to the target service and redirect the packets of the first service flow to the corresponding target forwarding instance.
[0110] 602. The data plane gateway determines the target transmission tunnel corresponding to the first service flow based on the routing table of the target service.
[0111] Each control plane gateway has multiple control instances, which correspond one-to-one with each forwarding instance of the data plane gateway. Before step 602, the target control instance, corresponding to the target forwarding instance, configures the routing table for the target service in the target forwarding instance. The target forwarding instance can determine the next hop of the first service flow, i.e., the target transport tunnel, based on this routing table.
[0112] The target transmission tunnel can be an access tunnel between a residential gateway and a data plane gateway, a value-added tunnel between a value-added service virtual machine (or cloud server) and a data plane gateway, or an internet tunnel between the internet and a data plane gateway.
[0113] 603. The data plane gateway transmits the first service flow through the target transmission tunnel.
[0114] The routing table includes not only the next-hop information (target transmission tunnel) corresponding to the first service flow, but also the outgoing service flow rules, that is, the encapsulation rules for the first service flow to be transmitted to the next hop.
[0115] The data plane gateway edits the packets of the first service flow according to the outgoing service flow rules (such as NAT transformation, replacing the source and destination MAC addresses, encapsulating the PPPoE header, encapsulating the SVLANID+CVLANID of the outgoing service flow, etc.), and then diverts the packets to the corresponding target transmission tunnel according to the target transmission tunnel ID corresponding to the outgoing service flow.
[0116] In this embodiment, the edge cloud gateway separates its data plane and control plane to decouple control and forwarding functions. The control plane gateway can use a general-purpose server with higher computing power. The data plane gateway uses dedicated network equipment (such as dedicated forwarding chips, smart network cards, etc.), which can perform high-speed processing and forwarding for fixed formats of service flows, improving forwarding efficiency and traffic volume; moreover, the scheduling cycle of the dedicated network equipment matches the traffic volume of the service flow, which can reduce jitter. Therefore, this embodiment achieves elastic capacity scaling and high reliability through the separation of the data plane and control plane.
[0117] In this embodiment, the routing table within the forwarding instance on the data plane gateway is configured and maintained by the control instance on the control plane gateway. The specific routing table configuration process is shown in Figure 7.
[0118] a. The data plane gateway receives the first service flow of the target service and determines whether the first service flow is a protocol message that needs to be processed by the control plane instance.
[0119] As shown in Figure 7, the forwarding instance of the data plane gateway includes a protocol analysis module, a data packet forwarding module, and a service flow encapsulation and QoS scheduling module. The control instance of the control plane gateway includes a control plane protocol processing module, a soft forwarding module, and a transmission protocol or data packet encapsulation and insertion module.
[0120] After receiving the first service flow, the target forwarding instance of the data plane gateway uses a protocol analysis module to determine whether the first service flow is a protocol message that requires control plane processing (e.g., Internet Group Management Protocol (IGMP), Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), etc.). In this embodiment, the protocol message requiring control plane processing is referred to as the target protocol message. The target protocol message is parsed in the control plane to determine whether the destination address is the current edge cloud gateway; if the destination address of the target protocol message is not the current edge cloud gateway, the control plane gateway can determine the destination and next hop of the target protocol message.
[0121] b. If the first service flow is a protocol message that needs to be processed by the control plane instance, then the data plane gateway sends the first service flow to the control plane gateway.
[0122] The target forwarding instance sends protocol packets (i.e., the first service flow) to the corresponding target control instance through the protocol interface of the CD session.
[0123] c. If the first service flow is not a protocol message that needs to be processed by the control plane instance, the data plane gateway performs a table lookup and matching for the first service flow.
[0124] The packet forwarding module is configured with a routing table for the target service. The target forwarding instance uses the packet forwarding module to perform a table lookup and matching for the first service flow.
[0125] d. If the table lookup fails, the data plane gateway sends the first service flow to the control plane gateway.
[0126] If the first service flow does not match the routing table (i.e., a lookup miss), it indicates that the first service flow is an unknown flow of the target service. Therefore, the data packets in the first service flow that have a lookup miss need to be sent to the corresponding control instance. Specifically, the data plane gateway's packet forwarding module sends the data packets with lookup misses to the control plane protocol processing module of the corresponding control instance.
[0127] e. The control plane gateway generates and synchronizes new forwarding rule entries.
[0128] The control plane protocol processing module can receive protocol packets from the protocol analysis module (see step b) or lookup miss packets from the packet forwarding module through the protocol interface of the CD session. The protocol processing module can generate new forwarding rule entries based on the received packets. These new forwarding rule entries are then sent to the soft forwarding module and synchronized with the packet forwarding modules of the forwarding instances to update the routing tables on the forwarding instances.
[0129] Optionally, the control plane protocol processing module can also delete existing forwarding table entries based on the receiving protocol, configuration commands, internal event triggers, etc., and notify the soft forwarding module to delete them, while simultaneously deleting the corresponding entries in the packet forwarding module on the forwarding instance. The aforementioned entry synchronization messages between the control instance and the forwarding instance can be transmitted through the control plane interface of the CD session.
[0130] After determining the new forwarding rule entries, the control plane gateway can send routing control information to the data plane gateway. This routing control information is used to query or adjust the routing table on the target forwarding instance. Specifically, it can be used to query or adjust the forwarding rule entries within the routing table of the target forwarding instance.
[0131] This application does not limit the time of sending routing control information. The control plane gateway can query or adjust the routing table on the target forwarding instance at any time. For example, the control plane gateway may also send routing control information to the data plane gateway before step h below (before determining the target transmission tunnel), and this application does not limit this.
[0132] Optionally, after determining the new forwarding rule entry, the control plane gateway can send a second configuration message to the data plane gateway. The second configuration message includes routing information corresponding to the first service flow. The second configuration message instructs that a routing table entry corresponding to the first service flow be added to the routing table of the target forwarding instance.
[0133] Optionally, if it is determined that a forwarding rule entry in the routing table has changed, the control plane gateway may send a fourth configuration message to the data plane gateway. The fourth configuration message includes the target routing table entry in the routing table of the target forwarding instance, and is used to indicate whether to delete, query, or modify the target routing table entry.
[0134] f. The control plane gateway sends protocol packets or data packets to the data plane gateway.
[0135] The "transmission protocol or packet encapsulation and insertion module" of the control plane gateway is used to send data packets to the data plane gateway. Specifically, the control plane protocol processing module can send protocol packets to the "transmission protocol or packet encapsulation and insertion module" based on the protocol packets in step b or the data packets with a table lookup miss in step d (i.e., the routing table of the target forwarding instance does not include the routing table entry corresponding to the first service flow). Alternatively, the soft forwarding module of the control plane gateway can also perform soft forwarding operations on the data packets and send the soft-forwarded data packets to the "transmission protocol or packet encapsulation and insertion module".
[0136] The "Transmission Protocol or Data Packet Encapsulation and Insertion Module" edits and encapsulates packets based on the outgoing service flow identifier of the transmission protocol packet (or data packet) or the rules of the forwarding table matching entries. Then, the "Transmission Protocol or Data Packet Encapsulation and Insertion Module" sends the encapsulated packets to the "Service Flow Encapsulation and QoS Scheduling" module of the data plane forwarding instance through the protocol interface of the CD session. These already edited outgoing packets do not need to be re-edited on the forwarding instance; the "Service Flow Encapsulation and QoS Scheduling" module only needs to send them to the corresponding tunnel based on the outgoing tunnel ID matched by the outgoing service flow.
[0137] Optionally, after determining the transport protocol corresponding to the target service, the control plane gateway may send a third configuration message to the data plane gateway. The third configuration message includes the data packets or protocol packets of the first service flow, and the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the addition of the transport protocol corresponding to the first service flow to the routing table of the target forwarding instance.
[0138] g. The data plane gateway periodically leaks data packets to the control plane gateway.
[0139] The soft forwarding module of the control plane instance maintains a forwarding table for the target service, and the packet forwarding module of the forwarding instance also maintains a forwarding table (routing table) for the target service. If the corresponding entry in the soft forwarding module of the control plane instance has no HIT for a long time, that is, no data packet has been matched with the entry in the soft forwarding module for a long time, the soft forwarding module will consider the entry invalid and needs to be deleted.
[0140] To prevent forwarding entries on the control instance from being deleted due to packets not being transmitted to the control plane and thus not being HITed for a long time, the forwarding instance can periodically leak packets matching the forwarding entries to the control instance, thereby ensuring the consistency between the forwarding tables on the control instance and the forwarding instances.
[0141] For example, after receiving the first service flow of the target service within the reporting period, the data plane gateway sends the target data packet within the reporting period to the control plane gateway. The target data packet is the data packet of the service flow received within the reporting period that matches the routing table of the target forwarding instance. The reporting period can be configured before step a.
[0142] h. The data plane gateway sends the first service flow through the target transport tunnel.
[0143] After step c, the service flow encapsulation and QoS scheduling module performs packet editing on the first service flow according to the outgoing service flow rules of the forwarding table entry matched by the first service flow (such as NAT transformation, replacing source and destination MAC addresses, encapsulating PPPOE header, encapsulating SVLANID+CVLANID of outgoing service flow, etc.), and then redirects the packet to the corresponding target transmission tunnel according to the outgoing tunnel ID corresponding to the outgoing service flow.
[0144] Optionally, before step a above, operations such as establishing the CD basic communication channel, configuring the underlay tunnel, issuing user services, and initializing the overlay service flow can also be performed.
[0145] Establishment of CD basic communication channel:
[0146] By configuring a communication channel (such as a VXLAN tunnel or a VLAN interface for direct connection) between the control plane gateway (C-plane server) and the data plane gateway (D-plane device) through the management platform, IP reachability between the physical network interface card of the C-plane server and the management interface of the D-plane device is achieved. When a control instance on the C-plane server is initialized, a session is established between the C-plane control instance and the D-plane device through the logical network interface card corresponding to that control instance.
[0147] Underlay tunnel configuration:
[0148] The tunnel is shared by multiple users and needs to be configured in advance before user services are deployed. The management platform is used to configure the underlay tunnel from the data plane gateway (D-plane device) to the peer tunnel endpoint. This includes access tunnel configuration (e.g., configuring an SRv6-BE tunnel from the OLT to the D-plane component), value-added service side tunnel configuration (e.g., configuring a VXLAN tunnel to the value-added service server OVS), and internet side tunnel configuration (e.g., configuring a VXLAN tunnel to the internet gateway).
[0149] User service provisioning:
[0150] When a user requests to activate a service based on the edge cloud gateway, a new C-side control instance is initialized through the management platform, and service configuration parameters are issued, such as DHCP server configuration, DNS PROXY configuration, IGMP configuration, and PPPoE / IPOE dialing configuration. At the same time, the corresponding D-side forwarding instance is initialized, and the overlay service flows in three directions are configured through the management interface of the CD session: access service flow configuration (access SVLANID+CVLANID, BR0 interface IP / MAC address, corresponding access tunnel ID); value-added service flow identifier (value-added service flow identifier SVLANID+CVLANID, value-added service chain SFC parameters); and internet access service flow configuration (internet access service flow identifier SVLANID+CVLANID, static IP or PPPoE / IPOE dialing parameters).
[0151] Optionally, when a target service goes live or a user requests to activate the target service, the control plane gateway may send a first configuration message to the data plane gateway. The first configuration message includes the service configuration parameters for the target service, as well as routing control information. The routing control information includes the routing table for the target service.
[0152] Initialize the overlay business flow:
[0153] The data plane gateway (D-plane device) forwarding instance begins initializing the overlay service flows in three directions, attempting to bring the service flows into a working state. First, it establishes a heartbeat session (e.g., via ARP protocol) between the control instance and the physical residential gateway, initializing the D-plane forwarding instance's access service flow; it establishes an IP session (e.g., PPPoE discovery and LCP protocol) between the control instance and the internet gateway, initializing the D-plane forwarding instance's internet service flow; and it checks the connectivity between the control instance and the value-added service server, initializing the D-plane forwarding instance's value-added service flow.
[0154] When the control plane gateway and data plane gateway are not on the same device and are deployed with an indirect connection, they can be indirectly connected via the DCN network. In this case, a VXLAN tunnel is required as the bearer tunnel for CD sessions.
[0155] As shown in Figure 8, there are multiple Data Plane Offloading Protocol (DPOP) channels between NERG.CP (the control plane gateway of the edge cloud) and NERG.DP (the data plane gateway of the edge cloud) corresponding to the NERG instance. The DPOP channels are mainly used to transmit the following three types of messages:
[0156] 1. Static configuration messages and responses.
[0157] Information that does not require real-time updates but needs a response, such as static configurations issued when the NERG.CP instance (i.e., the control instance) starts up, or statistics / status query reports, OAM configurations and responses used for maintenance, will terminate on the CPU of the NERG.DP device (i.e., the device where the forwarding instance resides).
[0158] 2. Data plane messages.
[0159] Data packets with real-time requirements, such as TCP / UDP header packets, protocol packet reception and transmission, terminate on the NP forwarding plane of the NERG.DP device.
[0160] 3. Control plane messages.
[0161] For messages sent in batches that require real-time processing, the DMA method is used. The NERG.DP CPU does not process these messages; instead, they are processed directly by the NP forwarding plane.
[0162] For indirect connection control plane / data plane (CP / DP), the underlying layer can use encapsulation formats such as VXLAN and SRv6. The encapsulation terminates at the Open Virtual Switch (OVS) VXLAN tunnel endpoint (VTEP) of NERG.CP (edge cloud control plane gateway) and the VTEP of NERG.DP (edge cloud data plane gateway). Optionally, the control plane can initially use a static method.
[0163] The underlying VXLAN encapsulation format of DPOP can be shown in Figure 9. The outer MAC header contains the MAC addresses of the two VTEP interfaces: the MAC address of the VTEP L3 interface on the data plane (DP) side and the OVS VTEP address on the control plane (CP) side. The outer IP header contains the IP addresses of the two VTEP interfaces for source and destination, and UDP for protocol type. The outer UDP header contains the VXLAN port number (e.g., 4789) for destination port. The VXLAN header contains the VXLAN network identifier (VNI) corresponding to the user-level BD. When CP / DP are directly connected, the internal planning rule is used: the two VLAN IDs (S and C) encapsulated using the NERG.LAN1 interface are concatenated to form a 24-bit VNI. If CP / DP are indirectly connected, and the server hosting the CP also needs to host other types of VMs, the upper-layer system needs to provide VNI planning principles.
[0164] In one example, the DPOP message is 64 bits, and the corresponding DPOP message header format is shown in Figure 10. Different values of the DPOP message header can yield the first configuration message, the second configuration message, the third configuration message, and the fourth configuration message mentioned above.
[0165] The DPOP message header includes a priority (Pri) bit (3 bits in the example in Figure 10), which is equivalent to the differentiated services (Diff-serve Class) level. In the CP-DP direction, if the packet has an Ethernet VLAN header, Pri is used to initialize 802.1 pbit of the Ethernet VLAN header. In the DP-CP direction, the control plane gateway (NERG.CP) uses this field for rate limiting and scheduling, prioritizing higher-priority protocols when the edge cloud gateway (NERG) is busy.
[0166] The DPOP message header includes a Color bit (1 bit in the example in Figure 10), which has the same color requirement as the two-rate three-color marking (TrTCM) in the flow control information. In the CP-DP direction, the Color bit is used to initialize the Ethernet VLAN header color bits.
[0167] The DPOP message header includes a Msgtype bit (4 bits in the example in Figure 10), which indicates the message type. The definitions of different message types are shown in Table 1 below:
[0168] Table 1. Message definitions with different values for the Msgtype bit.
[0169] Table 1 (continued) Message definitions with different values for the Msgtype bit
[0170] Where US represents the upstream direction of DP-CP, and DS represents the downstream direction of CP-DP.
[0171] The first configuration message mentioned above can be either a Ctrl-DS-ACK or a Ctrl-DS-NACK message. The first configuration message includes the configuration parameters and routing control information for the target service, with the routing control information including the routing table for the target service.
[0172] The second configuration message can be either a Ctrl-DS-ACK or a Ctrl-DS-NACK message. The second configuration message includes routing information corresponding to the first service flow of the target service, and is used to instruct the addition of a routing table entry corresponding to the first service flow to the routing table of the target forwarding instance.
[0173] The fourth configuration message mentioned above can be either a Ctrl-DS-ACK or a Ctrl-DS-NACK message. The fourth configuration message includes the target routing table entry in the routing table of the target forwarding instance, and is used to indicate whether to delete, query, or modify the target routing table entry.
[0174] The DPOP message header includes a CauseID bit (8 bits in the example in Figure 10), and the definitions of different message types in the upstream direction are shown in Table 2 below:
[0175] Table 2. Message definitions with different values for the CauseID bit in the uplink direction.
[0176] The definitions of different message types in the downstream direction are shown in Table 3 below:
[0177] Table 3. Message definitions for different values of the CauseID bit in the sending direction.
[0178] Table 3 (continued) Message definitions for different values of the CauseID bit in the sending direction
[0179] Among them, the DPOP message with a CauseID value of 0x1 can be the third configuration message mentioned above. The third configuration message includes the data packets or protocol packets of the first service flow, as well as the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the addition of the transport protocol corresponding to the first service flow to the routing table of the target forwarding instance.
[0180] The DPOP message header includes SrcPort and DstPort bits (both 8 bits in the example in Figure 10). SrcPort indicates source port information, and DstPort indicates speed and health information. The high 4 bits of both SrcPort and DstPort are meaningful. The definitions of the different values for SrcPort and DstPort are shown in Table 4 below.
[0181] Table 4. Definitions of different values for the SrcPort and DstPort bits.
[0182] The DPOP message header includes the Extend field (32 bits in the example in Figure 10), which can be used to fill in the sequence number of the message type (e.g., the sequence number corresponding to MSGtype, the sequence number of the message in the stream, etc.).
[0183] In the CD separation architecture shown in Figures 2 to 5 above, both the C-side control instance and the D-side forwarding instance can support cold standby redundancy, warm standby redundancy, and dual-active redundancy.
[0184] Cold standby redundancy refers to the rapid initialization of a new instance after the primary instance fails. Warm standby redundancy means that a standby instance is created by default; the standby instance does not participate in protocol and data packet processing, but only synchronizes the configuration and control status entries of the primary instance to the standby instance in real time. Active-active redundancy means that the standby instance also participates in protocol and data packet processing, but the protocol packets sent by the standby instance and outbound data packets are discarded by default in the outbound direction.
[0185] Figure 11 shows an example of warm standby redundancy. The C-plane and D-plane instances each have user instance-level warm standby redundancy. The standby C-plane control instance and D-plane forwarding instance do not actually participate in protocol processing and packet forwarding; they simply synchronize the configuration and entries of the primary instance to the standby instance. Simultaneously, the underlay layer of the D-plane component also has warm standby redundancy, which is applicable to multiple users. It is important to note that redundancy of the C-plane control instance, D-plane forwarding instance, and tunnel layer does not require simultaneous existence; redundancy can be layered, with only certain components being redundant.
[0186] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0187] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0188] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0189] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0190] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
Claims
1. A data transmission method, characterized in that, Applied to a data plane gateway, wherein multiple forwarding instances in the data plane gateway correspond one-to-one with multiple control instances in the control plane gateway, the method includes: Receive the first service flow of the target service and determine the target forwarding instance corresponding to the target service; The target transmission tunnel corresponding to the first service flow is determined based on the routing table of the target service. The routing table is configured for the target control instance. The target control instance is the control instance corresponding to the target forwarding instance among the plurality of control instances. The target transmission tunnel is the access tunnel between the residential gateway and the data plane gateway, the value-added service virtual machine and the data plane gateway, or the interconnection tunnel between the Internet and the data plane gateway. The first service flow is transmitted through the target transmission tunnel.
2. The data transmission method according to claim 1, characterized in that, Before determining the target transport tunnel corresponding to the service flow based on the forwarding table of the target service, the method further includes: Receive routing control information from the control plane gateway, the routing control information being used to query or adjust the routing table on the target forwarding instance.
3. The data transmission method according to claim 2, characterized in that, Receiving routing control information from the control plane gateway includes: Before receiving the first service flow of the target service, a first configuration message is received from the control plane gateway. The first configuration message includes the configuration parameters of the target service and the routing control information, and the routing control information includes the routing table of the target service.
4. The data transmission method according to claim 2, characterized in that, Receiving routing control information from the control plane gateway includes: After receiving the first service flow of the target service, a second configuration message is received from the control plane gateway. The second configuration message includes routing information corresponding to the first service flow and is used to instruct the routing table entry corresponding to the first service flow to be added to the routing table of the target forwarding instance.
5. The data transmission method according to claim 2, characterized in that, Receiving routing control information from the control plane gateway includes: After receiving the first service flow of the target service, a third configuration message is received from the control plane gateway. The third configuration message includes the data packets or protocol packets of the first service flow and the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the transport protocol corresponding to the first service flow to be added to the routing table of the target forwarding instance.
6. The data transmission method according to claim 2, characterized in that, Receiving routing control information from the control plane gateway includes: A fourth configuration message is received from the control plane gateway. The fourth configuration message includes a target routing table entry in the routing table of the target forwarding instance. The fourth configuration message is used to indicate the deletion, query, or modification of the target routing table entry.
7. The data transmission method according to any one of claims 2 to 6, characterized in that, Before determining the target transport tunnel corresponding to the first service flow based on the forwarding table of the target service, the method further includes: The control plane gateway sends the data packets of the first service flow to the control plane gateway, and the routing control information is determined by the control plane gateway based on the data packets of the first service flow.
8. The data transmission method according to claim 7, characterized in that, The step of sending the data packet of the first service flow to the control plane gateway includes: After determining the target forwarding instance corresponding to the target service, if the first service flow is determined to be a target protocol message, the first service flow is sent to the target control instance of the control plane gateway.
9. The data transmission method according to claim 7, characterized in that, After determining the target forwarding instance corresponding to the target service, the method further includes: Query the routing table entry corresponding to the first service flow from the routing table of the target forwarding instance; The step of sending the data packet of the service flow to the control plane gateway includes: If the routing table of the target forwarding instance does not include the routing table entry corresponding to the first service flow, then the data packet of the first service flow is sent to the control plane gateway.
10. The data transmission method according to claim 7, characterized in that, The step of sending the data packet of the first service flow to the control plane gateway includes: Within the reporting period, after receiving the first service flow of the target service, the target data packet within the reporting period is sent to the control plane gateway. The target data packet is the data packet of the service flow received within the reporting period and matched with the routing table of the target forwarding instance.
11. A data transmission method, characterized in that, Applied to a control plane gateway, wherein multiple control instances in the control plane gateway correspond one-to-one with multiple forwarding instances in the data plane gateway, and a target forwarding instance among the multiple forwarding instances is used to process the first service flow of the target service, the method includes: Send routing control information to the data plane gateway. The routing control information is used to query or adjust the routing table on the target forwarding instance.
12. The data transmission method according to claim 11, characterized in that, Sending routing control information to the data plane gateway includes: A first configuration message is sent to the data plane gateway. The first configuration message includes the configuration parameters of the target service and the routing control information, and the routing control information includes the routing table of the target service.
13. The data transmission method according to claim 11, characterized in that, Sending routing control information to the data plane gateway includes: A second configuration message is sent to the data plane gateway. The second configuration message includes routing information corresponding to the first service flow. The second configuration message is used to instruct the routing table entry corresponding to the first service flow to be added to the routing table of the target forwarding instance.
14. The data transmission method according to claim 11, characterized in that, Sending routing control information to the data plane gateway includes: A third configuration message is sent to the data plane gateway. The third configuration message includes the data packets of the first service flow and the transport protocol corresponding to the first service flow. The third configuration message is used to instruct the transport protocol corresponding to the first service flow to be added to the routing table of the target forwarding instance.
15. The data transmission method according to claim 11, characterized in that, Sending routing control information to the data plane gateway includes: A fourth configuration message is sent to the data plane gateway. The fourth configuration message includes a target routing table entry in the routing table of the target forwarding instance. The fourth configuration message is used to indicate the deletion, query, or modification of the target routing table entry.
16. The data transmission method according to any one of claims 11 to 15, characterized in that, Before sending routing control information to the data plane gateway, the method further includes: Receive data packets from the first service flow from the data plane gateway; The routing control information is determined based on the data packets of the first service flow.
17. The data transmission method according to claim 16, characterized in that, Receiving data packets from the first service flow from the data plane gateway includes: Receive data packets from the first service flow of the data plane gateway, wherein the first service flow is a target protocol message.
18. The data transmission method according to claim 16, characterized in that, Receiving data packets from the first service flow from the data plane gateway includes: During the reporting period, a target data packet is received from the data plane gateway. The target data packet is a data packet of the service flow received during the reporting period and matched with the routing table of the target forwarding instance.
19. A data plane gateway, characterized in that, The data plane gateway includes multiple forwarding instances, each of which corresponds one-to-one with a multiple control instance in the control plane gateway. The data plane gateway is used to execute the data transmission method according to any one of claims 1 to 10.
20. A control plane gateway, characterized in that, The control plane gateway includes multiple control instances, each of which corresponds one-to-one with a multiple forwarding instance in the data plane gateway. The control plane gateway is used to execute the data transmission method according to any one of claims 11 to 18.
21. A communication system, characterized in that, It includes the data plane gateway of claim 19 and the control plane gateway of claim 20.