Data transmission method and device, storage medium and program product

By segmenting messages into equal-length cells and distributing the load among multiple NCFs within the DDC device, the problem of uneven load distribution in the data transmission link within the DDC device is solved, achieving efficient and stable data transmission links.

CN121967340APending Publication Date: 2026-05-01ZTE CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ZTE CORP
Filing Date
2024-10-31
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

The data transmission links within the DDC device suffer from uneven load distribution due to inconsistent Ethernet packet sizes, which can easily lead to congestion and affect data transmission performance.

Method used

The data stream is segmented into cells of equal length and forwarded among multiple NCFs through load balancing, ensuring that the load on each NCF is nearly equal and achieving uniform load balancing among NCFs.

Benefits of technology

When the throughput of the DDC device is not saturated, congestion of the internal data transmission link is avoided, the probability of link congestion is reduced, and complex end-to-end network coordination adjustments are avoided.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121967340A_ABST
    Figure CN121967340A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and device, a storage medium and a program product, relates to the technical field of communication, and is used for reducing the probability of congestion of a data transmission link in a DDC device. The method comprises the following steps: receiving a data stream sent by a first external edge node; cutting each message in the data stream to obtain N cells, N being a positive integer; the N cells are forwarded to the Q second NCPs through the M network cloud switching planes NCF in a load sharing mode, so that the Q second NCPs restore the N cells into messages and then forward the messages to a second external edge node, both Q and M are positive integers, the second external edge node is an edge node corresponding to the destination address of the data flow, and M is a positive integer; the second NCP is an NCP in communication connection with the second external edge node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of communication technology, and in particular to a data transmission method, device, storage medium, and program product. Background Technology

[0002] The core idea of ​​distributed disaggregated chassis (DDC) is the deep decoupling of physical chassis devices. After decoupling, the network device management plane is completely cloud-based, detached from physical network elements. The data platform runs on a flexibly scalable forwarding resource pool, enabling users to obtain a network that is easy to maintain, easy to expand, and cost-effective.

[0003] Currently, the data transmission links within DDC devices forward Ethernet packets. For example, the data transmission link between network cloud packet processing (NCP) and network cloud fabric (NCF) in a DDC device forwards Ethernet packets, which can easily lead to congestion of the data transmission links within the DDC device and affect data transmission performance. Summary of the Invention

[0004] This disclosure provides a data transmission method, device, storage medium, and program product to reduce the probability of data transmission link congestion within a DDC device.

[0005] To achieve the above objectives, the present disclosure adopts the following technical solution:

[0006] Firstly, a data transmission method is provided, applied to a first NCP in a DDC device, the method comprising:

[0007] Received the data stream sent by the first external edge node;

[0008] Each message in the data stream is segmented to obtain N cells, where N is a positive integer.

[0009] N cells are forwarded to Q second NCPs through M NCFs in a load-sharing manner, so that the Q second NCPs can restore the N cells into a message and then forward the message to the second external edge node. Q and M are both positive integers. The second external edge node is the edge node corresponding to the destination address of the data stream, and the second NCP is the NCP that communicates with the second external edge node.

[0010] Secondly, a data transmission method is provided, applied to a second NCP in a DDC device, the method comprising:

[0011] Receive multiple cells, wherein the multiple cells are forwarded by the first NCP in the DDC device through M NCFs in a load-sharing manner, where M is a positive integer;

[0012] Multiple cells are reconstructed to obtain the message;

[0013] The message is forwarded to the second external edge node through the communication interface of the second NCP. The second NCP is connected to the second external edge node. The communication interface of the second NCP is the interface for communication between the second NCP and the second external edge node.

[0014] Thirdly, a communication device is provided for use in a first NCP in a DDC device, the device comprising:

[0015] The receiving unit is used to receive the data stream sent by the first external edge node;

[0016] The processing unit is used to cut each message in the data stream into N cells, where N is a positive integer;

[0017] The sending unit is used to forward N cells to Q second NCPs through M NCFs in a load-sharing manner, so that the Q second NCPs can restore the N cells into a message and then forward the message to the second external edge node. Q and M are positive integers, the second external edge node is the edge node corresponding to the destination address of the data stream, and the second NCP is the NCP that communicates with the second external edge node.

[0018] Fourthly, a communication device is provided for use in a second NCP within a DDC device, the device comprising:

[0019] The receiving unit is used to receive multiple information cells, wherein the multiple information cells are forwarded by the first NCP in the DDC device through M NCFs in a load-sharing manner, where M is a positive integer;

[0020] The processing unit is used to reconstruct multiple information cells to obtain a message;

[0021] The sending unit is used to forward messages to the second external edge node through the communication interface of the second NCP. The second NCP is communicatively connected to the second external edge node, and the communication interface of the second NCP is the interface through which the second NCP and the second external edge node communicate.

[0022] Fifthly, a network device is provided, comprising: a processor and a memory; the memory and the processor are coupled; the memory is used to store instructions executable by the processor, the memory storing the processor-executable instructions; when the processor is configured to execute the instructions, the network device implements the method provided in the first or second aspect above.

[0023] In a sixth aspect, a computer-readable storage medium is provided that stores computer instructions, which, when executed on a computer, cause the computer to perform the method provided in the first or second aspect.

[0024] In a seventh aspect, a computer program product comprising computer instructions is provided, which, when executed on a computer, causes the computer to perform the method provided in the first or second aspect.

[0025] In this embodiment, the first NCP forwards N cells obtained by segmenting the packets in the data stream to Q second NCPs through M NCFs in a load-sharing manner. That is, the NCPs and NCFs forward cells to each other. Since the cells are of basically equal length, and the N cells are forwarded to the Q second NCPs through M NCFs in a load-sharing manner, the load of each NCF in the M NCFs is nearly equal, realizing nearly equal load sharing among the NCFs. This ensures that when the throughput of the DDC device is not saturated, data transmission link congestion within the DDC device will not occur, reducing the probability of data transmission link congestion within the DDC device. This avoids the necessity of complex end-network collaborative adjustment of forwarding paths due to partial data transmission link congestion within the DDC device. Attached Figure Description

[0026] The accompanying drawings are provided to further understand the technical solutions of the present invention and constitute a part of the specification. They are used together with the embodiments of this disclosure to explain the technical solutions of the present invention and do not constitute a limitation on the technical solutions of the present invention.

[0027] Figure 1 A schematic diagram illustrating the mapping between a conventional chassis view and a distributed decoupled chassis view, provided for embodiments of this disclosure;

[0028] Figure 2 This is a schematic diagram of the composition of a distributed decoupling mechanism framework system provided in an embodiment of this disclosure;

[0029] Figure 3 A schematic diagram of a distributed decoupled chassis provided in an embodiment of this disclosure;

[0030] Figure 4 This is a schematic diagram of a single POD network provided in an embodiment of the present disclosure;

[0031] Figure 5 A schematic diagram of a DDC distributed OS provided in an embodiment of this disclosure;

[0032] Figure 6 This is a schematic diagram of the structure of a communication system provided in an embodiment of the present disclosure;

[0033] Figure 7 This is a schematic diagram of a distributed architecture of a DDC device provided in an embodiment of the present disclosure;

[0034] Figure 8 This is a schematic diagram illustrating the connection between NCP and NCF according to an embodiment of the present disclosure;

[0035] Figure 9 A schematic flowchart illustrating a data transmission method provided in an embodiment of this disclosure;

[0036] Figure 10 A flowchart illustrating another data transmission method provided in this embodiment of the disclosure;

[0037] Figure 11 This is a schematic diagram of another communication system provided in an embodiment of the present disclosure;

[0038] Figure 12 A flowchart illustrating another data transmission method provided in this embodiment of the disclosure;

[0039] Figure 13 A flowchart illustrating another data transmission method provided in this embodiment of the disclosure;

[0040] Figure 14 A flowchart illustrating another data transmission method provided in this embodiment of the disclosure;

[0041] Figure 15 A flowchart illustrating another data transmission method provided in this embodiment of the disclosure;

[0042] Figure 16 This is a schematic diagram of the composition of a communication device provided in an embodiment of the present disclosure;

[0043] Figure 17 A schematic diagram illustrating the composition of another communication device provided in an embodiment of this disclosure;

[0044] Figure 18 This is a schematic diagram of the structure of a network device provided in an embodiment of this disclosure. Detailed Implementation

[0045] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this disclosure.

[0046] Unless the context otherwise requires, throughout the specification and claims, the term "comprise" and other forms such as the third-person singular "comprises" and the present participle "comprising" are interpreted as open-ended and encompassing, meaning "including, but not limited to." In the description of the specification, terms such as "one embodiment," "some embodiments," "exemplary embodiments," "example," "specific example," or "some examples" are intended to indicate that a particular feature, structure, material, or characteristic associated with that embodiment or example is included in at least one embodiment or example of this disclosure. The illustrative representations of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics mentioned may be included in any suitable manner in any one or more embodiments or examples.

[0047] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this disclosure, unless otherwise stated, "a plurality of" means two or more.

[0048] In this disclosure, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design described as "exemplary" or "for example" in this disclosure should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.

[0049] In addition, the use of “based on” implies openness and inclusivity, because processes, steps, calculations or other actions “based on” one or more of the stated conditions or values ​​may in practice be based on additional conditions or values ​​beyond those stated.

[0050] The DDC architecture was initially submitted by AT&T to the Open Compute Project (OCP) in 2019 as an architectural specification for implementing a white-box core router. AT&T's DDC design, built on Broadcom's Jericho2 commercial chip series, aimed to define a standard configurable architecture. Its main market impact was on high-end chassis routers. In the past two years, its excellent load balancing characteristics, latency performance, and scalability have gradually found a highly suitable business scenario in artificial intelligence (AI) / machine learning (ML), and it has a significant influence in communities such as OCP.

[0051] Figure 1 The diagram shown illustrates a mapping between a conventional chassis view and a distributed decoupled chassis view according to an embodiment of this disclosure. See also... Figure 1 Traditional chassis include a main control engine, a backup control engine, multiple line cards, and multiple Fabrics. Distributed decoupled chassis include a control engine, multiple Fabric white-box switches, and multiple line card white-box switches. In the distributed decoupled chassis, the control engine is equivalent to the main and backup control engines in the traditional chassis, the multiple Fabric white-box switches are equivalent to multiple Fabrics, and the multiple line card white-box switches are equivalent to multiple line cards.

[0052] Figure 2 The diagram shown is a schematic representation of a distributed decoupling mechanism architecture system provided in an embodiment of this disclosure. See also... Figure 2 The distributed decoupling chassis includes a cloud orchestrator, multiple network operating systems (NOS), a network cloud controller (NCC), fabric white-box switches (NCF), 100G line card white boxes, and 400G line card white boxes. In the distributed decoupling chassis, traditional switching boards are replaced with NCF devices, and service line cards are replaced with NCP devices. Connectors are replaced with fiber optic cables. The management functions of the chassis devices are handled by the NCC in the DDC architecture. Figure 2In this context, DAC stands for direct attach cable, AOC stands for active optical cable, AEC stands for active electrical cable, and ACC stands for active copper cable.

[0053] In related technologies, an industry-leading intelligent speed DDC high-performance network solution has been launched to address the relationship between computational power, graphics processing unit (GPU), and network in generative artificial intelligence (AIGC). Figure 3 The diagram shown is an architectural schematic of a distributed decoupled chassis provided in an embodiment of this disclosure. See also... Figure 3 The service line card, as the front end, becomes the NCP role, and the switching network board, as the back end, becomes the NCF role. The original connector components between the two are now replaced by fiber optic cables, and the original management engine of the chassis equipment has also become the centralized management component of the NCC in the DDC architecture.

[0054] The advantages of a distributed, decoupled chassis are as follows:

[0055] 1. Supports ultra-large-scale deployment: The advantage of the distributed decoupled machine framework architecture compared to the box architecture is that it can provide elastic scalability, and the network scale can be flexibly selected according to the size of the AI ​​cluster. Figure 4 The diagram shown is a schematic representation of a single container group (POD) network according to an embodiment of this disclosure. See also... Figure 4 In a single POD network, 96 NCPs are used for access, with 36 downlink 200G interfaces on each NCP responsible for connecting the network cards of the AI ​​computing cluster. There are 40 uplink 200G interfaces, which can connect up to 40 NCFs. Each NCF provides 96 200G interfaces, resulting in an uplink-to-downlink bandwidth ratio of 1.1:1. The entire POD can support 3456 200G network interfaces, which, based on one server equipped with 8 graphics processing units (GPUs), can support 432 AI computing servers.

[0056] 2. Based on the Virtual Output Queuing (VOQ) + Cell mechanism, the load is more balanced and the packet loss rate is lower.

[0057] 3. No NCC design, using a distributed operating system (OS) to improve reliability.

[0058] In the management control plane, to address the impact of management network failures and single-point failures of the NCC, the centralized control plane of the NCC was eliminated, and a distributed OS was built. Through a software-defined network (SDN) operation and maintenance controller, devices are configured and managed via standard interfaces (Netconf, Google Remote Procedure Call, GRPC, etc.). Each NCP and NCF is managed independently, with its own independent control and management planes.

[0059] For OSes supported by relevant vendors for deploying open networking software in the cloud (SONiC), please refer to [link / reference]. Figure 5 This is a schematic diagram of a DDC distributed OS scenario provided by an embodiment of this disclosure. Figure 5 In the scenario shown, the DCC's internal switching mode needs to be configured as Ethernet mode, meaning that internal forwarding between line cards uses Ethernet packets. Each line card deploys a SONiC instance, and these SONiC instances establish border gateway protocol (BGP) neighbors to complete control plane route calculation and announcement. Because Ethernet packet sizes are inconsistent, load balancing cannot be evenly distributed, leading to uneven packet distribution within the DCC and potentially causing data transmission link congestion within the DDC device, thus affecting data transmission performance. Figure 5 P1, P2, and P3 in the diagram represent different external interfaces.

[0060] Based on this, embodiments of this disclosure provide a data transmission method, device, storage medium, and program product. The first NCP forwards N cells obtained by segmenting the packets in the data stream to Q second NCPs through M NCFs in a load-sharing manner. That is, the NCPs and NCFs forward cells to each other. Since the cells are of basically equal length, and the N cells are forwarded to the Q second NCPs through M NCFs in a load-sharing manner, the load of each NCF in the M NCFs is nearly equal, realizing nearly equal load sharing among the NCFs. This ensures that when the throughput of the DDC device is not saturated, data transmission link congestion within the DDC device will not occur, reducing the probability of data transmission link congestion within the DDC device. This avoids the necessity of complex end-network collaborative adjustment of forwarding paths due to partial data transmission link congestion within the DDC device. Furthermore, before the first NCP segments the packets in the data stream, it first load-distributes the packets in the data stream in the identifier set to determine the first identifier corresponding to each packet. Then, the segmented cells inherit the first identifier of the packet to which they belong. Then, the N cells are load-distributed among M NCFs. By performing the two-level load distribution at the ingress NCP (such as the first NCP), it is ensured that while all cells of the same packet arrive at the same egress NCP (such as the second NCP), different packets are load-distributed as evenly as possible on different egress NCPs (such as the Q second NCPs).

[0061] The embodiments of this disclosure will now be described in conjunction with the accompanying drawings.

[0062] The technical solutions provided in this disclosure can be applied to various mobile communication networks, such as NR mobile communication networks using 5th generation mobile networks (5G), future mobile communication networks (such as 6G wireless communication systems), or multiple communication convergence systems, etc. This disclosure does not limit these applications.

[0063] Figure 6 The diagram shown is a structural schematic of a communication system provided in an embodiment of this disclosure. Figure 6 As shown, the communication system includes an external legacy network, DDC equipment, and servers. The external legacy network 10 includes multiple provider cores (P) and multiple edge routers (ER). The Ps include P11 and P12, and the ERs include ER13 and ER14. ERs are typically edge devices of a certain level of the Internet Service Provider (ISP) network and can connect to the ISP's core network.

[0064] DDC device 20 includes a network control manager (NCM) 21, multiple NCPs, and M NCFs. The multiple NCPs include multiple border NCPs (e.g., border NCP 22, border NCP 23) and multiple server NCPs (e.g., server NCP 24, server NCP 25, and server NCP 26). The M NCFs include NCF 27 and NCF 28. The servers include multiple servers, such as server 31, server 32, and server 33. M is a positive integer.

[0065] In some embodiments, the NCM21 is used to implement network management functions.

[0066] In some embodiments, for each of the plurality of ERs, the ER is communicatively connected to a plurality of border NCPs, for example, ER13 is connected to border NCP22 and border NCP23. For each of the plurality of border NCPs, the border NCP is connected to a plurality of NCFs. For each of the plurality of NCFs, the NCF is connected to a plurality of server NCPs.

[0067] In some embodiments, Figure 6 The DDC device in the communication system shown is a DDC device based on a distributed architecture. Figure 7 The diagram shown is a schematic representation of a distributed architecture for a DDC device according to an embodiment of this disclosure. See also... Figure 7 In a distributed architecture, each NCP and NCF is an independent network element device. NCPs and NCFs interact via standard protocols to perform control plane route calculations and announcements. It should be noted that... Figure 7 In this context, SA stands for switch access.

[0068] In some embodiments, in order to perform a data transmission method provided by an embodiment of this disclosure, the NCP and NCF can be configured as follows:

[0069] 1. Assign a unique identifier to each NCP, which includes the module number and slot number.

[0070] 2. Each NCP assigns a switching queue and a flow identity (flowid) to each physical port of the NCP, and configures the mapping relationship between the assigned switching queue and flowid in its respective switchaccess (SA). It should be noted that because unique identifiers have already been assigned to NCPs, each NCP can independently calculate a unique flowid for its physical port (for example, NCP22 and NCP23, which are connected to the same ER, will have different flowids). The flowid can also be replaced by the FID.

[0071] 3. The SA and the switch fabric (SA) can learn the switching queues and flowids allocated by other SAs through inter-chip signaling interaction.

[0072] 4. When forwarding packets, the forwarding plane looks up the route to get the outgoing interface and the next hop. It then encapsulates the corresponding flowid based on the outgoing interface. With the flowid, the packet will be correctly forwarded to the destination NCP. Finally, the destination NCP sends the packet out from the outgoing interface.

[0073] It should be understood that in a centralized OS architecture, the master controller collects all NCP-assigned flowids and then synchronizes them to all line cards. Therefore, in step 4 above, the forwarding plane can find the flowid corresponding to the destination port. However, in a distributed OS, there is no centralized master controller, and the flowid of the other end needs to be learned through protocol interaction between network elements.

[0074] Figure 8 The diagram shown is a schematic representation of a connection between an NCP and an NCF according to an embodiment of this disclosure. See also... Figure 8 ,for Figure 6 The configuration between NCP and NCF shown can also include the following items:

[0075] 1. For route entries where the outgoing interface (or its physical parent interface) is not a fabric interface, add a flowid field.

[0076] 2. Added BGP capability, which allows the flowid information of the outgoing interface of a route to be included when announcing a route.

[0077] 3. Establish BGP connections between all NCPs and use the newly added BGP capabilities mentioned above.

[0078] 4. By adding BGP extension capabilities, a global flowid information table is established on the control plane of each NCP / NCF.

[0079] 5. Cell forwarding between NCPs is achieved based on a global flowid information table.

[0080] In some embodiments, Figure 6 The DDC device shown can appear externally as multiple L3 routers. For example, multiple border NCPs can represent multiple L3 routers. The border NCP can learn the routes of the ERs connected to the border NCP and advertise the learned routes of the ERs to the server NCP.

[0081] In some embodiments, the routing process between the server and the ER side includes the following: after the message sent by the server to the ER side is routed on the nearest server NCP, it is encapsulated with a flowid and then forwarded to the corresponding ER via the specified border NCP.

[0082] In some embodiments, the internal routing process of the DDC device is as follows: The border NCP advertises the Internet Protocol (IP) prefix of the ER through Ethernet Virtual Private Network (EVPN) route type-5 (RT-5) routing information. This RT-5 routing information carries an Ethernet segment identifier (ESI), the value of which is a 9-byte integer (excluding the byte containing the ESI type). Each border NCP advertises an RT-1 routing information for this ESI, which carries the flowid of the border NCP. When the server NCP receives a data packet with the aforementioned IP prefix as its destination address from the server, it determines the ESI corresponding to the IP prefix based on the RT-5 routing information, and then determines the flowid corresponding to the ESI based on the RT-1 routing information, i.e., determines the border NCP corresponding to the flowid. Based on the determined flowid of the border NCP, the server sends the data packet to the border NCP, so that the border NCP forwards the data packet to the ER.

[0083] It should be understood that Figure 6 This is an exemplary structural diagram. Figure 6 The number of devices included in the illustrated communication system is unlimited; for example, the number of NCPs and NCFs is unlimited. Furthermore, except... Figure 6 In addition to the equipment shown, Figure 6 The communication system shown may also include other devices, which are not limited thereto.

[0084] Next, as Figure 9 As shown, this disclosure provides a data transmission method, which is applied to a first NCP in a DDC device. The first NCP can be the one described above. Figure 6 Any of the multiple border NCPs shown, such as border NCP22, or the first NCP can be one of the above. Figure 6 The first NCP among the multiple server NCPs shown, such as server NCP24, depends on the specific application scenario. This disclosure does not limit this. The method may include the following steps:

[0085] S101, Receive the data stream sent by the first external edge node.

[0086] In some embodiments, when a first external edge node needs to interact with a second external edge node or a host after the second external edge node, the first external edge node sends a data stream to a first NCP, and correspondingly, the first NCP receives the data stream sent by the first external edge node. Here, the first external edge node is one of a server or an ER, and the second external node is the other of a server or an ER. The server can be one of the aforementioned... Figure 6 Any of the multiple servers shown, such as server 31, ER can be one of the above. Figure 6 Any one of the multiple ERs shown, such as ER13.

[0087] It should be noted that when the first external edge node is a server and the second external edge node is an ER, the first NCP is any one of the server NCPs; or, when the first external edge node is an ER and the second external edge node is a server, the first NCP is any one of the border NCPs. For ease of description, the following embodiments all use the example of the first external edge node being a server and the second external edge node being an ER. Furthermore, in the embodiments of this disclosure, the external edge node is not limited to the two forms of PE and server.

[0088] In some embodiments, when the first external edge node is a server, the first NCP communicates with the server through a communication interface. The communication interface may also have other names, such as external interface, backend interface, frontend interface, etc., and this disclosure does not limit this terminology.

[0089] S102. Cut each message in the data stream into N cells.

[0090] Where N is a positive integer.

[0091] In some embodiments, the data stream includes at least one message. For each message in the at least one message, the first NCP can segment each message to obtain N cells. The message may also have other names, such as data message, and this disclosure does not limit this.

[0092] As an example, the first NCP can segment each message based on a fixed length to obtain N cells.

[0093] S103. Using load balancing, N cells are forwarded to Q second NCPs through M NCFs, so that the Q second NCPs can restore the N cells into a message and then forward the message to the second external edge node.

[0094] Where Q and M are positive integers, the second external edge node is the edge node corresponding to the destination address of the data stream, the second NCP is the NCP that communicates with the second external edge node, and the M NCFs can be... Figure 6 The M NCFs shown.

[0095] In some embodiments, after receiving a data stream, the first NCP can determine the second external edge node corresponding to the destination address of the data stream based on the destination address of the data stream, and then determine Q second NCPs corresponding to the second external edge node.

[0096] For example, if the first NCP is any of the server NCPs, the second NCP could be... Figure 2 The border NCP in the communication system shown.

[0097] Combination Figure 6 In the communication system shown, taking the second external edge node corresponding to the destination address of the data stream as ER11 as an example, ER11 is connected to border NCP22 and border NCP23. Then, the Q second NCPs corresponding to the second external edge node include border NCP22 and border NCP23.

[0098] As an example, the destination address of the data flow can be the IP prefix of the second external edge node, or the destination address of the data flow can be an external IP prefix that is an IP prefix routed through the second external edge node.

[0099] In some embodiments, for Figure 6In the communication system shown, each border NCP in the multiple border NCPs, i.e., for each second NCP, is pre-configured with a unique identifier (also called a flow point) for the communication interface between each border NCP and ER. For example, the communication interface between border NCP22 and ER13 is configured as FID1, and the communication interface between border NCP23 and ER13 is configured as FID2. Border NCP22 and border NCP23 synchronize FID1 and FID2 among all NCFs / NCPs through Fabric signaling of the Fabric interface between NCFs / NCPs, and form a first FID entry on each NCF / NCP node. Furthermore, a reserved FID is pre-configured for each NCP node. Each NCP node synchronizes its reserved FID among all NCFs / NCPs through Fabric signaling, and forms a second FID entry on each NCF / NCP node. BGP sessions are established between the border NCP and the server NCP using their respective reserved FIDs. The reserved FID is a unique identifier (flow point) not used for allocation to the external interface of the DDC. Thus, the first NCP can determine the ER corresponding to each second NCP based on the established BGP session and the first and second FID entries. After receiving a data stream, the ER corresponding to the destination address of the data stream can be determined based on the destination address of the data stream, and then the Q second NCPs corresponding to that ER can be determined.

[0100] In some embodiments, load balancing refers to the mechanism by which a portion of the load is transferred to other devices or nodes when a device or node is overloaded in a network, thereby achieving a balanced distribution of the load and ensuring the stable operation and high efficiency of the entire network.

[0101] In some embodiments, after the first NCP determines the Q second NCPs corresponding to the second external edge node and segments multiple packets into N cells, it can forward the N cells to the Q second NCPs through M NCFs via load balancing. That is, the N cells are sent to the M NCFs, which then forward the N cells to the Q second NCPs. The second NCPs then restore the N cells into packets and forward the packets to the second external edge node, thus completing the process of each packet in the data stream sent by the first external edge node being transmitted to the second external edge node via the DDC device.

[0102] It should be understood that in related technologies, the first NCP and NCF transmit Ethernet packets. Since the size of Ethernet packets is inconsistent, even if the first NCP sends Ethernet packets to the NCF in a load-sharing manner, the size of the Ethernet packets received by different NCFs will be inconsistent, making it impossible to achieve near-equal load sharing among the NCFs. Based on this, this disclosure provides a data transmission method in which the first NCP forwards N cells obtained by segmenting each packet in the data stream to Q second NCPs through M NCFs in a load-sharing manner. That is, the forwarding between the NCP and NCF is... Since the cells are of roughly equal length, and N cells are forwarded to Q second NCPs through M NCFs using load sharing, the load of each NCF among the M NCFs is nearly equal, achieving near-equal load sharing among the NCFs. This ensures that data transmission link congestion within the DDC device will not occur when the throughput of the DDC device is not saturated, reducing the probability of data transmission link congestion within the DDC device. This avoids the necessity of complex end-network coordination to adjust forwarding paths due to partial data transmission link congestion within the DDC device.

[0103] In some embodiments, such as Figure 10 As shown, step S103 above may include the following steps:

[0104] S1031. Determine the first identifier of each of the N information cells in the target identifier set by load sharing.

[0105] The target identifier set is the identifier set corresponding to the second external edge node.

[0106] In some embodiments, the first NCP predetermines a target identifier set corresponding to the second external edge node. The first NCP can determine the first identifier of each of the N cells in the target identifier set in a load-sharing manner. The target identifier set includes the first identifiers of Q communication interfaces, each communication interface being an interface connecting the second NCP to the second external edge node. Determining the first identifier of each of the N cells in the target identifier set in a load-sharing manner can be understood as assigning each cell to a target second NCP, so that each cell can be forwarded to the target second NCP corresponding to that cell. The first identifier of a communication interface can be pre-configured by network administrators to uniquely identify the communication interface.

[0107] For example, in combination Figure 6In the communication system shown, assuming N is 4, meaning there are four information cells: the first, second, third, and fourth. The first identifier of the communication interface between border NCP22 and ER13 is FID1, and the first identifier of the communication interface between border NCP23 and ER13 is FID2. Therefore, the target identifier set corresponding to ER is (FID1, FID2). To determine the first identifier of each of the four information cells in the target identifier set corresponding to ER using a load-sharing approach, one could determine that the first identifier corresponding to the first information cell is FID1, the first identifier corresponding to the second information cell is FID1, the first identifier corresponding to the third information cell is FID2, and the first identifier corresponding to the fourth information cell is FID2.

[0108] For a description of how to determine the target identifier set corresponding to the second external edge node, please refer to the description of steps S301 to S302 below, which will not be repeated here.

[0109] S1032. Based on the first identifier corresponding to each of the N information cells, add the first identifier corresponding to each of the N information cells to the N information cells to obtain N information cells with the added first identifier.

[0110] In some embodiments, after determining the first identifier of each of the N information cells in the target identifier set in a load-sharing manner, the first identifier corresponding to each information cell is added to each information cell to obtain N information cells with the added first identifier.

[0111] In other words, for each of the N information cells, the first identifier corresponding to the information cell is embedded in the information cell, so that after an NCF receives the information cell, it can determine the second NCP corresponding to the information cell based on the first identifier added to the information cell, and then send the information cell to the second NCP.

[0112] S1033. Forward N cells with the first identifier to the second NCP corresponding to each cell through M NCFs.

[0113] The second NCP corresponding to each information cell is determined based on the first identifier corresponding to each information cell.

[0114] In some embodiments, to reduce the probability of data transmission link congestion within the DDC device, dual-homed links are used between the Q second NCPs in this disclosure embodiment, that is... Figure 6 The border NCPs shown use a dual-homed link, such as Figure 11 The diagram shown is a structural schematic of another communication system provided in this embodiment of the present disclosure. A dual-track link refers to a communication interface between different border NCPs and ERs configured with the same identifier, for example... Figure 10The communication interface between ER13 and border NCP22 is configured with FID1 as the first identifier and ESI201 as the second identifier. The communication interface between ER13 and border NCP23 is configured with FID2 as the first identifier and ESI201 as the second identifier; that is, dual-homed links use the same ESI configuration. Border NCP22 can advertise RT-1 and RT-5 routing information. RT-1 routing information includes (ESI201, FID1), and RT-5 routing information includes (ERP1, ESI201). ERP1 (Edge Router's Prefiex-1) is the IP prefix learned by border NCP22 through its communication interface with ER13. Border NCP23 can advertise RT-1 and RT-5 routing information. RT-1 routing information includes (ESI201, FID2), and RT-5 routing information includes (ERP1, ESI201).

[0115] Within the DDC device, each server NCP receives the same IP prefix from two border NCPs. One RT-5 exit point is ESI201, and the other RT-5 exit point is also ESI201; it doesn't matter which one the server NCP chooses to activate. Alternatively, each server NCP receives different FIDs from the two border NCPs. For example, it receives RT-1 routing information carrying FID1 from ESI201 from border NCP22, and receives RT-1 routing information carrying FID2 from ESI201 from border NCP23. If ESI201 is in full-active mode, the server NCP distributes the load between FID1 and FID2. If ESI201 is in single-active mode, the server NCP performs fast reroute (FRR) between FID1 and FID2.

[0116] In a dual-homed link scenario, when FID1 fails, border NCP22 can redirect packets to FID2. This necessitates adding a heartbeat link between border NCP22 and border NCP23. When FID1 fails, the destination FID of the heartbeat link route is changed to FID2. Border NCP22 can determine from the RT-1 routing information published by border NCP23 that ESI201 corresponds to FID2, and therefore can change the destination FID of the heartbeat link route to FID2. In this case, the heartbeat redirection mechanism remains the same regardless of whether ESI201 is in full-active or single-active mode.

[0117] However, in a dual-homed link scenario, when the ER experiences a brief interruption or disconnection, the packet, after being transmitted from the server NCP device to boarder NCP22, will be transmitted to boarder NCP23 via a heartbeat link. Upon reaching boarder NCP23, the packet will again be transmitted to boarder NCP22 via the heartbeat link. This cycle repeats, creating a loop between boarder NCP22 and boarder NCP23.

[0118] Therefore, to address the issue of loops occurring among the Q second NCPs in dual-homed link scenarios when the ER experiences intermittent or complete disconnection, in addition to assigning a first identifier to each external interface, a backup first identifier can also be assigned. The first identifier is used for north-south forwarding, and the backup first identifier is used for east-west forwarding. East-west forwarding refers to forwarding cells that cannot be sent to the second external edge node through their own external interface (even though the interface exists) to the same second external edge node via another NCP adjacent to that second external edge node. North-south forwarding refers to forwarding data packets received from one external edge node to another. In other words, the first identifier is used for data forwarding between devices at different levels, and the backup first identifier is used for data forwarding between devices at the same level. For example, the first identifier is used for data forwarding between the first NCP and the NCF, and the backup first identifier is used for data forwarding between the first NCP and other first NCPs.

[0119] This disclosure proposes that the first identifiers corresponding to multiple cells segmented from the same message in a data stream are identical. For example, if a data stream includes a first message, and the first message is segmented to obtain a first cell and a second cell, then the first identifiers corresponding to the first cell and the second cell are identical. In this way, cells belonging to the same message can only be sent to the same second NCP, preventing the cells belonging to the same message from being transmitted back and forth between different second NCPs, thereby avoiding the problem of loops.

[0120] In some embodiments, the first identifiers corresponding to the multiple cells segmented from different messages are not the same. For example, if a first message is segmented to obtain a first cell and a second message is segmented to obtain a second cell, the first identifier corresponding to the first cell is different from the first identifier corresponding to the second cell.

[0121] As an example, step S1033 above can be implemented as follows: for each of the N cells with a first identifier, determine the data link layer destination address of the cell based on the first identifier corresponding to the cell; based on the respective data link layer destination addresses of the N cells, forward each cell to the second NCP indicated by its corresponding first identifier through M NCFs.

[0122] As a possible example, the data link layer destination address of each of the N cells is the first identifier corresponding to each of the N cells.

[0123] In some embodiments, such as Figure 12 As shown, after step S1033, the method may further include the following steps:

[0124] S201. In response to the failure of the first communication interface among the Q communication interfaces, the first identifier of the first communication interface added to the target information cell is modified to the first identifier of the second communication interface.

[0125] Wherein, the target information element is the information element corresponding to the first communication interface, the second communication interface is the other non-failed communication interfaces among the Q communication interfaces excluding the first communication interface, and the Q communication interfaces are the Q communication interfaces corresponding to the Q second NCPs.

[0126] In some embodiments, during the operation of the first NCP, the first NCP detects the validity of Q communication interfaces. If the first communication interface among the Q communication interfaces fails, in response to the failure, the first identifier of the first communication interface added to the target cell corresponding to the first communication interface is modified to the first identifier of the second communication interface. It should be understood that if the first communication interface corresponding to the target cell fails, it means that the cell cannot be forwarded to the second external edge node via the second NCP corresponding to the first communication interface. By modifying the first identifier of the first communication interface added to the target cell to the first identifier of the second communication interface, i.e., changing the second NCP that forwards the cell, the cell can be forwarded to the second communication interface based on the modified first identifier of the second communication interface. The second NCP corresponding to the second communication interface then forwards the cell to the second external edge node, ensuring that the cell is successfully forwarded to the second external edge node, thereby avoiding the problem of loops.

[0127] Specifically, the first NCP detects the validity of the Q communication interfaces by exchanging information with the Q second NCPs. How the first NCP detects the validity of the Q communication interfaces can be found in relevant technical descriptions, and will not be elaborated upon here.

[0128] In some embodiments, such as Figure 13 As shown, before step S103, the method may further include the following steps:

[0129] S301: Receive routing information sent by each of the Q second NCPs.

[0130] The routing information is used to determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP.

[0131] As an example, receiving routing information sent by each of the Q second NCPs could mean receiving routing information sent by each of the Q second NCPs through a BGP session.

[0132] It should be understood that although the management plane interface between the SDN operation and maintenance controller and the NCP / NCF can manage devices through a standard interface, the route advertising between NCPs is private, the related mechanisms are opaque, and the principles are not publicly disclosed, making it impossible to achieve inter-vendor integration. Therefore, this disclosure proposes that the second NCP send routing information to the first NCP through a BGP session. The BGP session is defined in the EVPN protocol, meaning that the data transmission method provided in this disclosure reuses the standard EVPN protocol, making the method applicable to DDC devices. This allows the service forwarding logic on the NCP to reuse the forwarding logic of EVPN to a certain extent, maximizing the reuse of existing hardware and software resources, reducing costs, and accelerating the process of inter-vendor integration between NCPs.

[0133] S302. Based on the routing information of each of the Q second NCPs, establish a target identifier set.

[0134] In some embodiments, the routing information includes first routing information, which includes the destination address of the data stream and a second identifier of the communication interface of the second NCP. Based on this, step S302 may include the following steps:

[0135] A1. Based on the first routing information of each of the Q second NCPs, determine the mapping relationship between the second identifier of the communication interface of the Q second NCPs and the destination address of the data stream.

[0136] It should be understood that the destination address of the data stream is consistent, but the second identifier of the communication interface of different second NCPs is inconsistent. Therefore, a mapping relationship between the second identifier and the destination address of the data stream can be established based on the first routing information of each of the Q second NCPs. That is, the destination address of one data stream corresponds to the second identifier of the communication interface of the Q second NCPs.

[0137] A2. Based on the mapping relationship between the second identifier of the communication interface of Q second NCPs and the destination address of the data stream, and the mapping relationship between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface, determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP.

[0138] As can be seen from the above, the mapping relationship between the second identifiers of the Q second NCP communication interfaces and the destination address of the data stream, and the mapping relationship between the second identifier of each second NCP communication interface and the first identifier of the same communication interface, share the second identifiers of the Q second NCP communication interfaces. The destination address of a data stream corresponds to the second identifiers of the Q second NCP communication interfaces, and the second identifier of each second NCP communication interface corresponds to the first identifier of each second NCP communication interface. Therefore, the second identifiers of the Q second NCP communication interfaces can be used as a bridge to establish the mapping relationship between the destination address of the data stream and the first identifier of the second NCP communication interface. That is, the destination address of a data stream corresponds to the first identifier of the Q second NCP communication interfaces. This mapping relationship can be understood as the correspondence between the destination address of a data stream and the set of identifiers.

[0139] A3. Based on the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP, the target identifier set is obtained.

[0140] As described above, the mapping relationship can be understood as the correspondence between the destination address of a data stream and the target identifier set. The target identifier set can be extracted from the mapping relationship. That is, the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP is used to characterize the target identifier set.

[0141] The following explains how to determine the mapping relationship between the second identifier of each second NCP's communication interface and the first identifier of the same communication interface.

[0142] As a possible example, the second identifiers of different communication interfaces corresponding to the same second external edge node are not the same; that is, the second identifiers of the communication interfaces of the Q second NCPs are all different. Based on this, the first identifier of the communication interface of each second NCP is obtained by stateless mathematical operations on the second identifier of the communication interface of the second NCP. In other words, after receiving the first routing information sent by each second NCP, the first NCP can perform stateless mathematical operations based on the second identifier of the communication interface of the second NCP included in the first routing information sent by each second NCP to obtain the first identifier of the communication interface of that second NCP.

[0143] In some embodiments, the second identifier is an overlay index.

[0144] It should be understood that the second identifier is the Overlay Index, which is a content defined in the EVPN protocol. That is, the data transmission method provided in this embodiment reuses the standard EVPN protocol, making the method applicable to DDC devices and accelerating the process of cross-vendor interconnection between NCPs.

[0145] In some embodiments, the second identifier of a communication interface can be obtained by mapping the first identifier of the communication interface. For example, if the first identifier of a communication interface is FID1, FID1 can be mapped to an Overlay Index, denoted as OI-FID1.

[0146] In some embodiments, the second routing information further includes a backup first identifier for the communication interface of the second NCP.

[0147] The above embodiments are illustrated using the example where the routing information only includes the first routing information. As another possible example, different communication interfaces corresponding to the same second external edge node may have the same second identifier value. The routing information may also include second routing information, which includes the first and second identifiers of the communication interfaces of the second NCP. The mapping relationship between the second identifier of each second NCP's communication interface and the first identifier of the same communication interface is determined by the following method:

[0148] Based on the first and second identifiers of the communication interface of each second NCP included in the second routing information of each second NCP, a mapping relationship is established between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface.

[0149] In some embodiments, the second identifier is ESI. It should be understood that the second identifier is ESI, and ESI is a content already defined in the EVPN protocol. That is, the data transmission method provided in this disclosure reuses the standard EVPN protocol, making the method applicable to DDC devices and accelerating the process of inter-vendor interconnection between NCPs.

[0150] In some embodiments, the second identifier is used to identify the communication interfaces of the Q second NCPs, that is, the communication interfaces of the Q second NCPs can be uniformly represented by the second identifier.

[0151] It should be understood that, since the second identifier is consistent, it can be used as a bridge to establish a mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP. One destination address of a data stream corresponds to Q first identifiers of the communication interfaces of the second NCP, thus establishing a correspondence between the destination address of the data stream and the target identifier set. Furthermore, based on this mapping relationship, the target identifier set can be obtained; that is, the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP is used to characterize this target identifier set.

[0152] In some embodiments, at least one of the Q second NCPs sends first routing information to the first NCP, and each of the Q second NCPs sends second routing information to the first NCP.

[0153] In some embodiments, such as Figure 14 As shown, this disclosure provides a data transmission method applied to a second NCP. Taking a border NCP as an example, the second NCP can be the one described above. Figure 6 For one of the multiple border NCPs shown, such as border NCP22, the method may include the following steps:

[0154] S401, Receive multiple cells.

[0155] Among them, multiple information cells are forwarded by the first NCP in the DDC device through M NCF in a load-sharing manner, that is, multiple information cells are forwarded by the first NCP in the DDC device to the second NCP through M NCF in a load-sharing manner, where M is a positive integer.

[0156] In some embodiments, after the first NCP forwards N cells to Q second NCPs via M NCFs in a load-sharing manner, the second NCPs correspondingly receive the multiple cells forwarded by the first NCP via the M NCFs in a load-sharing manner. For a description of load sharing and the M NCFs, please refer to the above. Figure 9 The corresponding descriptions in the illustrated embodiments are not repeated here. The second NCP can be any one of the Q second NCPs.

[0157] In some embodiments, the aforementioned multiple information cells are forwarded by the first NCP to the second NCP through M NCFs based on the first identifier corresponding to each of the multiple information cells. The first identifier corresponding to each of the multiple information cells is determined in the target identifier set corresponding to the second external edge node in a load-sharing manner. The target identifier set includes the first identifier of each of Q communication interfaces. Each communication interface is an interface for communication connection between the second NCP and the second external edge node. The first identifier corresponding to the information cell is added to each information cell, and Q is a positive integer.

[0158] As described above, the DDC device includes Q second NCPs. As an example, it receives multiple cells, including multiple cells sent by other second NCPs when the communication interface of other second NCPs is invalid. The other second NCP is one of the Q second NCPs other than the first NCP, and the other second NCP is the second NCP that directly receives multiple cells forwarded by the first NCP.

[0159] It should be understood that after a second NCP receives multiple cells forwarded by the first NCP via M NCFs in a load-sharing manner, if the communication interface of the second NCP is invalid, the second NCP cannot reconstruct the received multiple cells into a message and then forward the message to the second external edge node. Based on this, this disclosure proposes that after a second NCP (i.e., the aforementioned other second NCPs) directly receives multiple cells forwarded by the first NCP, if the communication interface of the second NCP is invalid, the second NCP forwards the received multiple cells to other second NCPs (i.e., the aforementioned second NCPs). These other second NCPs then reconstruct the multiple cells into a message and forward the message to the second external edge node. In other words, the multiple cells are routed to other second NCPs, which then reconstruct the multiple cells into a message and forward the message to the second external edge node, thus completing the transmission of data sent by the first external edge node to the second external edge node and avoiding data loss.

[0160] In some embodiments, each of the multiple cells received by the second NCP from other second NCPs is appended with a spare first identifier of the second NCP. That is, if the communication interface of another second NCP is invalid, the other second NCP modifies the first identifier of its communication interface appended to the multiple cells with the spare first identifier of the second NCP's communication interface, and then sends the modified multiple cells to the second NCP. Accordingly, the second NCP receives the multiple cells sent by the other second NCPs.

[0161] S402. Restore multiple cells to obtain the message.

[0162] It should be understood that the aforementioned multiple information cells are forwarded by the first NCP to the second NCP through M NCFs based on the first identifier corresponding to each of the multiple information cells. Figure 9 As can be seen from the embodiments described, the first identifiers included in the multiple information cells cut from the same message are the same. Therefore, the multiple NCPs received by the second NCP belong to the same message. The second NCP can restore the multiple information cells to obtain the message.

[0163] S403. Forward the message to the second external edge node through the communication interface of the second NCP.

[0164] The communication interface of the second NCP is the interface through which the second NCP communicates with the second external edge node.

[0165] In this way, the process of forwarding the packets in the data stream sent by the first external edge node to the second external edge node via the first NCP, NCF and the second NCP is completed.

[0166] The above step S402 is illustrated by the example of the second NCP directly restoring multiple information cells into a message. In some embodiments, in order to avoid the problem of looping, after the second NCP receives multiple information cells, that is, before the above step S402, it can verify whether the communication interface of the second NCP is valid or congested. If the communication interface of the second NCP is valid or not congested, in response to whether the communication interface of the second NCP is valid or not congested, the multiple information cells are restored to obtain a message, that is, the above step S402 is executed.

[0167] Alternatively, in the event that the communication interface of the second NCP is invalid or congested, in response to the invalidity or congestion of the communication interface of the second NCP, the first identifier of the communication interface of the second NCP added to each cell is modified to a spare first identifier of the communication interface of another second NCP, and the modified cells are forwarded to other second NCPs. The other second NCPs then restore the cells into a message and forward the message to the second external edge node, thus eliminating the need to execute the above step S402. The description of the spare first identifier can be found in the corresponding description in the above example, and will not be repeated here.

[0168] It should be noted that the forwarding queue of the communication interface corresponding to the first identifier is not used to store cells, but to store Ethernet packets after cell reassembly. In related technologies, it is only after the cell with the first identifier has been reassembled into an Ethernet packet that it is determined whether the forwarding queue of the communication interface corresponding to the first identifier is congested. By determining whether the forwarding queue of the communication interface corresponding to the first identifier is congested before the cell with the first identifier is restored, and by directly bypassing the congestion in the form of cells when the forwarding queue is congested (that is, bypassing multiple cells to other second NCPs, and then having other second NCPs convert multiple cells into packets and forward the packets to the second external edge node), unnecessary packet reassembly is avoided and forwarding efficiency is improved.

[0169] In some embodiments, invalid can also be replaced with failure, and this disclosure does not limit this.

[0170] It should be understood that if the communication interface of the second NCP is invalid or congested, the restored message may not be able to be transmitted to the second external edge node. Therefore, the first identifier of the communication interface of the second NCP included in the cell can be modified to a spare first identifier of the communication interface of another second NCP, and the modified cells can be forwarded to other second NCPs. This allows other second NCPs to restore the cells into a message and then forward it to the second external edge node through their communication interfaces, thus avoiding the problem of loops. Furthermore, as mentioned above, the cell distribution is uniform from the perspective of the M NCFs. The NCF load balancing is nearly absolutely uniform; therefore, unless full throughput occurs, the probability of congestion is low. However, from the perspective of the Q second NCPs, the load balancing on these Q second NCPs may not be guaranteed to be uniform. This is because the number of data packets received by each second NCP is determined by the load balancing in the target identifier set. This load balancing is per packet, not per cell, and therefore cannot be absolutely uniform. This uneven distribution can be resolved by routing packets to a dual-homed node when the local communication interface is congested. The combination of these two methods ultimately achieves even packet distribution, thereby reducing packet loss during data transmission.

[0171] It should be noted that the information cells mentioned above, which modify the first identifier of the communication interface of the second NCP included in the information cells to a spare first identifier of the communication interface of another second NCP, include cached information cells. That is, the aforementioned information cells include cached information cells as well as currently received information cells. For example, if the communication interface of the second NCP is found to be invalid or congested when the (r+1)th information cell is received, then all the previously cached information cells that have not yet been reassembled into a message will be routed to the third NCP, not just the rth information cell.

[0172] In some embodiments, when a backup first identifier is used to forward data packets, the forwarded data packets may be packets reassembled from cells (such as Ethernet packets or IP packets). In this case, the backup first identifier may no longer be a flow point. The backup first identifier may be a multi-protocol label switching (MPLS) label or a segment routing over IPv6 segment identifier (SRv6 SID). This MPLS label / SRv6 SID is used to identify the corresponding EVI (EVPN instance).

[0173] It should be noted that in step S403 above, the message is forwarded directly to the second external edge node through the communication interface of the second NCP. In some embodiments, to avoid loop problems, after restoring multiple cells to obtain the message, that is, before step S403 above, the second NCP can detect whether its communication interface is congested. If the communication interface of the second NCP is not congested, in response to the fact that the communication interface of the second NCP is not congested, the message is forwarded to the second external edge node through the communication interface of the second NCP, that is, step S403 above is executed.

[0174] Alternatively, in the event of congestion at the communication interface of the second NCP, in response to the congestion at the communication interface of the second NCP, a message is sent to other second NCPs so that the other second NCPs forward the message to the second external edge node, thereby avoiding the problem of loop generation and thus eliminating the need to execute step S403.

[0175] In some embodiments, before receiving multiple cells forwarded by the first NCP via M NCFs in a load-sharing manner, the second NCP may send routing information to the first NCP. This routing information is used to determine the mapping relationship between the destination address of the data stream and the first identifier of the second NCP's communication interface, where the data stream is the data stream to which the packet belongs. For a description of how to determine the mapping relationship between the destination address of the data stream and the first identifier of the second NCP's communication interface based on the routing information, please refer to the above. Figure 13 The corresponding descriptions in the illustrated embodiments are not repeated here.

[0176] In some embodiments, the routing information includes first routing information and second routing information. The first routing information includes the destination address of the data flow and a second identifier of the communication interface of the second NCP. The second routing information includes a first identifier and a second identifier of the communication interface of the second NCP. The second identifier is an Overlay Index, or an ESI. In some embodiments, the second routing information also includes a spare first identifier of the communication interface of the second NCP.

[0177] In some embodiments, the second NCP sends routing information to the first NCP through a BGP session. The BGP session is a content defined in the EVPN protocol. That is, the data transmission method provided in this embodiment reuses the standard EVPN protocol, making the method applicable to DDC devices and accelerating the process of inter-vendor interconnection between NCPs.

[0178] In some embodiments, such as Figure 15 As shown, this disclosure provides a data transmission method applied to other second NCPs in a DDC device. The other second NCPs are one of Q second NCPs other than the aforementioned second NCP. The method includes the following steps:

[0179] S501: Receive multiple cells sent by the second NCP carrying the backup first identifier of the communication interface of the second NCP.

[0180] Among them, the other second NCPs are connected to the second external edge node, and the communication interface of the other second NCPs is the interface for the other second NCPs to communicate with the second external edge node.

[0181] In this example, the second NCP can be understood as the second NCP whose communication interface fails among the Q second NCPs.

[0182] As described in step S403 above, when the second NCP detects that its communication interface is invalid, the second NCP can modify the first identifier of its communication interface in the cell to a spare first identifier of another second NCP's communication interface, and forward the modified cells to other second NCPs. This allows the other second NCPs to restore the cells into a message and forward it to the second external edge node through their communication interfaces, thus avoiding loop problems. In other words, when the second NCP's communication interface fails, it sends multiple cells carrying the spare first identifier of another second NCP's communication interface to other second NCPs. Correspondingly, the other second NCPs receive the multiple cells carrying the spare first identifier of another second NCP's communication interface sent by the second NCP.

[0183] S502. Restore multiple cells to obtain the message.

[0184] S503, forwards the message to the second external edge node through the communication interface of other second NCPs.

[0185] For the description of steps S502 and S503, please refer to the description of steps S402 and S403 above, which will not be repeated here.

[0186] The above step S502 is illustrated by the example of another second NCP directly restoring multiple cells into a message. In some embodiments, to avoid loop problems, after receiving multiple cells, the other second NCP can verify whether its communication interface is valid. If the other second NCP's communication interface is valid, it restores the multiple cells to obtain a message in response to the validity of the other second NCP's communication interface. Alternatively, if the other second NCP's communication interface is invalid, it discards the multiple cells in response to the invalidity of the other second second NCP's communication interface.

[0187] In some embodiments, other second NCPs may also send first routing information and second routing information to the second NCP. The first routing information includes the destination address of the data stream and the second identifier of the communication interface of the other second NCP. The second routing information includes the first identifier, the backup first identifier and the second identifier of the communication interface of the other second NCP. The second routing information is used to instruct the second NCP to forward multiple cells to other second NCPs in the event that the communication interface between the second NCP and the second external edge node fails.

[0188] In some embodiments, this disclosure provides a data transmission method applied to the NCF in a DDC device, the method including the following steps:

[0189] B1. Receive multiple cells sent by the first NCP in a load-sharing manner.

[0190] In this context, multiple information cells are sent from the first NCP to the NCF based on the first identifier corresponding to each of the multiple information cells. The first identifier corresponding to each of the multiple information cells is determined in the target identifier set in a load-sharing manner. The target identifier set includes the first identifier of each of the Q communication interfaces. Each communication interface is an interface for communication between the second NCP and the second external edge node. The first identifier corresponding to the information cell is added to each information cell, and Q is a positive integer.

[0191] B2. Send multiple information cells to the second NCP so that the second NCP can restore the multiple information cells into a message and then forward the message to the second external edge node.

[0192] The second NCP is connected to the second external edge node.

[0193] As an example, the NCF sends each information cell to the second NCP based on the first identifier added to each of the multiple information cells. It should be understood that the first identifier added to a information cell is associated with the second NCP. The NCF determines the second NCP corresponding to each of the multiple information cells based on the first identifier added to each of the multiple information cells, and then sends the multiple information cells to their respective second NCPs.

[0194] For example, multiple information cells include a first information cell and a second information cell, and the first identifier added to the first information cell is as described above. Figure 6 The first identifier of the communication interface of border NCP22 in the communication system shown is the first identifier added to the second cell as described above. Figure 6 If the first identifier of the communication interface of border NCP23 in the communication system shown is used, then NCF will forward the first cell to border NCP22 and the second cell to border NCP23.

[0195] The following example illustrates a data transmission method provided in this disclosure.

[0196] Combination Figure 6 As shown or Figure 11 In a communication system, assuming server 31 needs to interact with ER13, the following steps may be included:

[0197] C1, For Figure 5 In the communication system shown, for each border NCP in the multiple border NCPs, that is, for each second NCP, a unique identifier (also called a flow point) is configured for the communication interface between each border NCP and ER. For example, the communication interface between border NCP22 and ER13 is configured as FID1, and the communication interface between border NCP23 and ER13 is configured as FID2. Border NCP22 and border NCP23 synchronize FID1 and FID2 among all NCFs / NCPs through Fabric signaling of Fabric interface between NCFs and NCFs, and form the first FID table entry on each NCF / NCP node respectively.

[0198] C2. Configure a reserved FID for each NCP node. Each NCP node synchronizes its reserved FID with all NCFs / NCPs through Fabric signaling and forms a second FID entry on each NCF / NCP node.

[0199] C3, the border NCP and the server NCP establish BGP sessions separately using their respective reserved FIDs. The reserved FID is a unique identifier (flow point) that is not used to assign to the external interface of the DDC.

[0200] C4. Map FID1 to an Overlay Index (denoted as OI_FID1), and map FID2 to an Overlay Index (denoted as OI_FID2). Border NCP22 and border NCP23 respectively publish OI_FID1 through the first routing information of the BGP session and OI_FID2 through the second routing information of the BGP session.

[0201] After receiving the first routing information carrying OI_FID1 and the second routing information carrying OI_FID2, C5 and server NCP (e.g., server NCP24) establish the mapping relationship between OI_FID1 and FID1 and the mapping relationship between OI_FID2 and FID2.

[0202] C6. Border NCP22 learns an IP prefix, denoted as IP_ER1, through the communication interface between it and ER11 outside the DDC device (e.g., ER11). Border NCP22 then advertises an RT5 route (denoted as RT5_for_ER1_OI_FID1) for IP_ER1 via a BGP session. Border NCP23 also learns an IP prefix, denoted as IP_ER1, through the communication interface between it and ER11 outside the DDC device (e.g., ER11). Border NCP23 then advertises an RT5 route (denoted as RT5_for_ER1_OI_FID2) for IP_ER1 via a BGP session. RT5_for_ER1_OI_FID1 carries the OI_FID1 corresponding to the communication interface between border NCP22 and ER11, and RT5_for_ER1_OI_FID2 carries the OI_FID2 corresponding to the communication interface between border NCP23 and ER11.

[0203] C7 and server NCP (e.g., server NCP24), upon receiving RT5_for_ER1_OI_FID1 and RT5_for_ER1_OI_FID2, establish a mapping relationship between IP_ER1 and the Overlay Index set, which consists of OI_FID1 and OI_FID2. Then, based on the mapping relationship between IP_ER1 and the Overlay Index set, the mapping relationship between OI_FID1 and FID1, and the mapping relationship between OI_FID2 and FID2, they obtain the mapping relationship between IP_ER1 and the target identifier set. The target identifier set includes FID1 and FID2.

[0204] After receiving the data stream from the server (e.g., server 31), C8 and server NCP (e.g., server NCP24) segment the packets in the data stream into N cells. Then, using a load-sharing approach, they determine the FID of each of the N cells in the target identifier set corresponding to IP_ER1. Based on the FIDs of each of the N cells, they forward the N cells to border NCP22 and border NCP23 via NCF27 and NCF28, adding the corresponding FID to each cell.

[0205] After receiving a cell, C9 and NCF (e.g., NCF27) forward the cell to the border NCP (e.g., border NCP22) corresponding to the FID in the cell.

[0206] After receiving a cell forwarded by the NCF, C10 and border NCPs (e.g., border NCP22) determine whether their communication interface is valid or congested. If their communication interface is valid or not congested, they reconstruct the message based on cells in the same batch as the received cell, and then forward the message to ER13 using the FID in the cell. Alternatively, if their communication interface is invalid or congested, they modify the FID1 added to the received cell and its preamble to FID2, and then forward the modified cell and its preamble sequentially to the corresponding communication interface of border NCP23 using FID2. The preamble is a cell obtained from the same data packet segmentation process as the received cell.

[0207] After receiving the modified cell, border NCP23 sends the restored message to ER13 via the communication interface between border NCP23 and ER13. It should be noted that after receiving the modified cell, border NCP23, if it determines that the communication interface between border NCP22 and ER13 is valid or not congested, will forward the modified cell to border NCP22. Alternatively, if it determines that the communication interface between border NCP22 and ER13 is invalid or congested, it will discard the modified cell and will not forward it to border NCP22.

[0208] The example above illustrates how each FID can be mapped to an Overlay Index. As another example, all FIDs can be uniformly mapped to an ESI. Based on this, the following steps could be included:

[0209] D1-D3 can be referred to in the description of C1-C3 above.

[0210] D4. Map FID1 and FID2 to ESI (denoted as ESI201). Border NCP22 and border NCP23 publish RT-1 routing information to ESI201 via BGP sessions (denoted as RT1_NCP1 and RT1_NCP2, respectively). RT1_NCP1 carries FID1, and RT1_NCP2 carries FID2.

[0211] After receiving RT1_NCP1 and RT1_NCP2, D5 and server NCP (e.g., server NCP24) establish a mapping relationship between ESI201 and the identifier set, which includes FID1 and FID2.

[0212] D6. Border NCP22 learns an IP prefix, denoted as IP_ER1, through the communication interface between it and ER11 outside the DDC device (e.g., ER11). Border NCP22 then advertises an RT5 route (denoted as RT5_for_ER1_OI_FID1) for IP_ER1 via a BGP session. Border NCP23 also learns an IP prefix, denoted as IP_ER1, through the communication interface between it and ER11 outside the DDC device (e.g., ER11). Border NCP23 then advertises an RT5 route (denoted as RT5_for_ER1_OI_FID2) for IP_ER1 via a BGP session. RT5_for_ER1_OI_FID1 carries the ESI201 corresponding to the communication interface between border NCP22 and ER11, and RT5_for_ER1_OI_FID2 carries the ESI201 corresponding to the communication interface between border NCP23 and ER11.

[0213] After receiving RT5_for_ER1_OI_FID1 and RT5_for_ER1_OI_FID2, D7 and server NCP (e.g., server NCP24) establish a mapping relationship between IP_ER1 and the target identifier set based on the ESI201 carried.

[0214] The content of D8-D11 can be referred to as the content of C8-C11 above, and will not be repeated here.

[0215] The foregoing primarily describes the solutions provided in this disclosure from the perspective of interaction between various devices. It is understood that each device, such as the first NCP, second NCP, or third NCP, includes corresponding hardware structures and / or software modules to perform the aforementioned functions. Those skilled in the art should readily recognize that, based on the algorithmic steps of the examples described in conjunction with the embodiments disclosed herein, this disclosure can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this disclosure.

[0216] This disclosure embodiment can divide the first NCP, second NCP, or third NCP into functional modules according to the above method embodiment. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one functional module. The integrated module can be implemented in hardware or software. It should be noted that the module division in this disclosure embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The following description uses the example of dividing each functional module according to each function.

[0217] Figure 16 This is a schematic diagram illustrating the composition of a communication device provided in an embodiment of this disclosure. Figure 16 As shown, the communication device 60 includes a receiving unit 601, a processing unit 602, and a transmitting unit 603.

[0218] The communication device 60 can be the first NCP or a chip of the first NCP described above. When the communication device 60 is used to implement the functions of the first NCP in the above embodiments, each unit is specifically used to implement the following functions.

[0219] The receiving unit 601 is used to receive the data stream sent by the first external edge node.

[0220] The processing unit 602 is used to cut each message in the data stream into N cells, where N is a positive integer;

[0221] The sending unit 603 is used to forward N cells to Q second NCPs through M NCFs in a load-sharing manner, so that the Q second NCPs can restore the N cells into a message and then forward the message to the second external edge node. Q and M are both positive integers, the second external edge node is the edge node corresponding to the destination address of the data stream, and the second NCP is the NCP that communicates with the second external edge node.

[0222] In some embodiments, the sending unit 603 is specifically configured to: determine the first identifier of each of the N cells in the target identifier set in a load-sharing manner; wherein the target identifier set includes the first identifier of each of the Q communication interfaces, and each communication interface is an interface for communication connection between a second NCP and a second external edge node; based on the first identifier corresponding to each of the N cells, add the first identifier corresponding to each of the N cells to the N cells to obtain N cells with added first identifiers; forward the N cells with added first identifiers to the second NCP corresponding to each cell through M NCFs, wherein the second NCP corresponding to each cell is determined based on the first identifier corresponding to each cell.

[0223] In some embodiments, the sending unit 603 is specifically configured to: for each of the N cells with a first identifier added, determine the data link layer destination address of the cell based on the first identifier corresponding to the cell; and forward each cell to the second NCP indicated by its corresponding first identifier through M NCFs based on the respective data link layer destination addresses of the N cells.

[0224] In some embodiments, the processing unit 602 is further configured to, in response to the failure of a first communication interface among the Q communication interfaces, modify the first identifier of the first communication interface added to the target information element to the first identifier of the second communication interface; the target information element is the information element corresponding to the first communication interface, and the second communication interface is the other communication interface among the Q communication interfaces that has not failed, excluding the first communication interface.

[0225] In some embodiments, the receiving unit 601 is further configured to receive routing information sent by each of the Q second NCPs, wherein the routing information is used to determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP;

[0226] The processing unit 602 is also used to establish a target identifier set based on the routing information of each of the Q second NCPs.

[0227] In some embodiments, the routing information includes first routing information, which includes the destination address of the data stream and a second identifier of the communication interface of the second NCP; the processing unit 602 is specifically configured to: determine the mapping relationship between the second identifier of the communication interface of the Q second NCPs and the destination address of the data stream based on the first routing information of each of the Q second NCPs; determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP based on the mapping relationship between the second identifier of the communication interface of the Q second NCPs and the destination address of the data stream, and the mapping relationship between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface; and obtain a target identifier set based on the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP.

[0228] In some embodiments, the second identifiers of different communication interfaces corresponding to the same second external edge node have the same value. The routing information also includes second routing information, which includes the first identifier and the second identifier of the communication interface of the second NCP. The processing unit 602 is specifically used to establish a mapping relationship between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface based on the first identifier and the second identifier of the communication interface of the second NCP included in the second routing information of each second NCP. The second identifier is ESI.

[0229] In some embodiments, the receiving unit 601 is specifically configured to receive routing information sent by each of the Q second NCPs through a BGP session.

[0230] Figure 17 This is a schematic diagram illustrating the composition of another communication device provided in an embodiment of this disclosure. (See diagram below.) Figure 17 As shown, the communication device 70 includes a receiving unit 701, a processing unit 702, and a transmitting unit 703.

[0231] The communication device 70 can be the second NCP or a chip within the second NCP described above. When the communication device 70 is used to implement the functions of the second NCP in the above embodiments, each unit is specifically used to implement the following functions.

[0232] The receiving unit 701 is used to receive multiple information cells, wherein the multiple information cells are forwarded by the first NCP in the DDC device through M NCFs in a load-sharing manner, where M is a positive integer;

[0233] The processing unit 702 is used to restore multiple information cells to obtain a message;

[0234] The sending unit 703 is used to forward messages to the second external edge node through the communication interface of the second NCP. The second NCP is communicatively connected to the second external edge node, and the communication interface of the second NCP is the interface for communication between the second NCP and the second external edge node.

[0235] In some embodiments, the receiving unit 701 is specifically used to receive multiple cells sent by other second NCPs when the communication interface of other second NCPs is invalid. The other second NCPs are one of the Q second NCPs other than the second NCP, and the other second NCPs are the second NCPs that directly receive the multiple cells forwarded by the first NCP.

[0236] In some embodiments, the processing unit 702 is specifically configured to restore multiple information cells to obtain a message in response to the second NCP's communication interface being active.

[0237] In some embodiments, the processing unit 702 is further configured to, in response to the invalidity or congestion of the communication interface of the second NCP, modify the first identifier of the communication interface of the second NCP added in the information cell to a spare first identifier of the communication interface of another second NCP, and forward the modified multiple information cells to the other second NCP, wherein the other second NCP is one of the Q second NCPs other than the second NCP.

[0238] In some embodiments, the sending unit 703 is specifically configured to forward the message to the second external edge node through the communication interface of the second NCP in response to the fact that the communication interface of the second NCP is not congested.

[0239] In some embodiments, the sending unit 703 is further configured to send a message to other second NCPs in response to communication interface congestion of the second NCP, so that the other second NCPs forward the message to the second external edge node, wherein the other second NCPs are one of the Q second NCPs other than the second NCP.

[0240] In some embodiments, the sending unit 703 is further configured to send routing information to the first NCP, the routing information being used to determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP, the data stream being the data stream to which the message belongs.

[0241] In some embodiments, the sending unit 703 is specifically used to send routing information to the first NCP via a BGP session.

[0242] It should be noted that, Figure 16 or Figure 17 The units within can also be called modules; for example, a transmitting unit can be called a transmitting module. Additionally, in... Figure 16 or Figure 17 In the embodiments shown, the names of the various units may not be the same as those shown in the figures. For example, the transmitting unit may also be called the communication unit, and the receiving unit may also be called the communication unit.

[0243] Figure 16 or Figure 17 If the various units in the present disclosure are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this disclosure, in essence, or the parts that contribute to the prior art, or all or part of the technical solutions, 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.) or processor to execute all or part of the steps of the methods of the various embodiments of this disclosure. Storage media for storing computer software products include 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.

[0244] When the communication device 60 or 70 implements the functions of the integrated module in hardware, this disclosure provides a schematic diagram of the structure of a network device. For example... Figure 18As shown, the network device 80 includes: a processor 802, a communication interface 803, and a bus 804. Optionally, the network device 80 may also include a memory 801.

[0245] Processor 802 may implement or execute various exemplary logic blocks, modules, and circuits described in connection with embodiments of this disclosure. Processor 802 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in connection with embodiments of this disclosure. Processor 802 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.

[0246] The communication interface 803 is used to connect to other devices via a communication network. This communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc.

[0247] The memory 801 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), disk storage medium or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto.

[0248] In one possible implementation, the memory 801 can exist independently of the processor 802. The memory 801 can be connected to the processor 802 via a bus 804 and is used to store instructions or program code. When the processor 802 calls and executes the instructions or program code stored in the memory 801, it can implement the data transmission method provided in the embodiments of this disclosure.

[0249] In another possible implementation, the memory 801 can also be integrated with the processor 802.

[0250] The 804 bus can be an extended industry standard architecture (EISA) bus, etc. The 804 bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 18 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0251] Through the above description of the implementation methods, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the base station or terminal can be divided into different functional modules to complete all or part of the functions described above.

[0252] This disclosure also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be executed by computer instructions instructing related hardware. The program can be stored in the computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The computer-readable storage medium can also be an external storage device for the first NCP or second NCP, such as a pluggable hard drive, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the first NCP or second NCP. Further, the computer-readable storage medium can include both internal storage units of the first NCP or second NCP and external storage devices. The computer-readable storage medium is used to store the computer program and other programs and data required by the first NCP or second NCP. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.

[0253] This disclosure also provides a computer program product comprising computer instructions that, when executed on a computer, cause the computer to perform any of the data transmission methods provided in the above embodiments.

[0254] Although this disclosure has been described herein in conjunction with various embodiments, those skilled in the art will understand and implement other variations of the disclosed embodiments by reviewing the accompanying drawings, the disclosure, and the appended claims in carrying out the claimed disclosure. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude a plurality. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce a good effect.

[0255] Although this disclosure has been described in conjunction with specific features and embodiments, it will be apparent that various modifications and combinations can be made therein without departing from the spirit and scope of this disclosure. Accordingly, this specification and drawings are merely exemplary illustrations of the disclosure as defined by the appended claims and are to be considered as covering any and all modifications, variations, combinations, or equivalents within the scope of this disclosure. It is obvious that those skilled in the art can make various alterations and modifications to this disclosure without departing from its spirit and scope. Thus, this disclosure is also intended to include any such modifications and modifications that fall within the scope of the claims of this disclosure and their equivalents.

[0256] The above are merely specific embodiments of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any changes or substitutions within the technical scope disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.

Claims

1. A data transmission method, characterized in that, The method for processing first network cloud packet (NCP) in a distributed decoupled chassis (DDC) device includes: Received the data stream sent by the first external edge node; Each message in the data stream is segmented to obtain N cells, where N is a positive integer. The N cells are forwarded to Q second NCPs through M network cloud switching planes (NCFs) in a load-sharing manner, so that the Q second NCPs can restore the N cells into packets and then forward the packets to the second external edge node. Q and M are both positive integers. The second external edge node is the edge node corresponding to the destination address of the data stream, and the second NCP is the NCP that is communicatively connected to the second external edge node.

2. The method according to claim 1, characterized in that, The method of forwarding the N cells to Q second NCPs through M network cloud switching planes (NCFs) in a load-sharing manner includes: The first identifier of each of the N cells in the target identifier set is determined by load sharing; wherein, the target identifier set includes the first identifier of each of the Q communication interfaces, and each of the communication interfaces is an interface for communication connection between the second NCP and the second external edge node; Based on the first identifier corresponding to each of the N information cells, the first identifier corresponding to each of the N information cells is added to the N information cells to obtain N information cells with the added first identifier; The N cells with the first identifier are forwarded to the second NCP corresponding to each cell through the M NCFs. The second NCP corresponding to each cell is determined based on the first identifier corresponding to each cell.

3. The method according to claim 2, characterized in that, The first identifiers corresponding to multiple cells segmented from the same message in the data stream are the same.

4. The method according to claim 2, characterized in that, The step of forwarding the N cells with the first identifier to the corresponding second NCP via the M NCFs includes: For each of the N cells with a first identifier, the data link layer destination address of the cell is determined based on the first identifier corresponding to the cell; Based on the data link layer destination address of each of the N cells, each cell is forwarded to the second NCP indicated by its corresponding first identifier through the M NCFs.

5. The method according to claim 2, characterized in that, After forwarding the N cells with the first identifier to the corresponding second NCPs via the M NCFs, the method further includes: In response to the failure of the first communication interface among the Q communication interfaces, the first identifier of the first communication interface added to the target information element is modified to the first identifier of the second communication interface; the target information element is the information element corresponding to the first communication interface, and the second communication interface is the other non-failed communication interface among the Q communication interfaces besides the first communication interface.

6. The method according to claim 2, characterized in that, Before forwarding the N cells to the Q second NCPs via M network cloud switching planes (NCFs) in a load-sharing manner, the method further includes: Receive routing information sent by each second NCP, the routing information being used to determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP; Based on the routing information of each of the Q second NCPs, the target identifier set is established.

7. The method according to claim 6, characterized in that, The routing information includes first routing information, which includes the destination address of the data stream and a second identifier of the communication interface of the second NCP; The step of establishing the identifier set based on the routing information of each of the Q second NCPs includes: Based on the first routing information of each of the Q second NCPs, the mapping relationship between the second identifier of the communication interface of the Q second NCPs and the destination address of the data stream is determined; Based on the mapping relationship between the second identifier of the communication interface of the Q second NCP and the destination address of the data stream, and the mapping relationship between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface, the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP is determined. The target identifier set is obtained based on the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP.

8. The method according to claim 7, characterized in that, The second identifier of each communication interface corresponding to the same second external edge node is different from that of the second communication interface. The first identifier of each second NCP is obtained by stateless mathematical operation from the second identifier of the second NCP's communication interface.

9. The method according to claim 7, characterized in that, The second identifiers of different communication interfaces corresponding to the same second external edge node have the same value. The routing information also includes second routing information, which includes the first identifier and the second identifier of the communication interface of the second NCP. The mapping relationship between the second identifier of each communication interface of the second NCP and the first identifier of the same communication interface is determined by the following method: Based on the first and second identifiers of the communication interface of each second NCP included in the second routing information of each second NCP, a mapping relationship is established between the second identifier of the communication interface of each second NCP and the first identifier of the same communication interface.

10. A data transmission method, characterized in that, The method for applying a second NCP in a DDC device includes: Receive multiple information cells, wherein the multiple information cells are forwarded by the first NCP in the DDC device through M NCFs in a load-sharing manner, where M is a positive integer; The multiple information cells are restored to obtain the message; The message is forwarded to the second external edge node through the communication interface of the second NCP. The second NCP is communicatively connected to the second external edge node, and the communication interface of the second NCP is the interface through which the second NCP and the second external edge node communicate.

11. The method according to claim 10, characterized in that, The plurality of information cells are forwarded by the first NCP to the second NCP through the M NCFs based on the first identifier corresponding to each of the plurality of information cells. The first identifier corresponding to each of the plurality of information cells is determined in the target identifier set in a load-sharing manner. The target identifier set includes the first identifier of each of the Q communication interfaces. Each communication interface is an interface for communication between the second NCP and the second external edge node. The first identifier corresponding to the information cell is added to each information cell, and Q is a positive integer.

12. The method according to claim 10, characterized in that, The DDC device includes Q second NCPs, where Q is a positive integer; The receipt of multiple information cells includes: Receive multiple cells sent by another second NCP when the communication interface of the other second NCP is invalid, wherein the other second NCP is one of the Q second NCPs other than the second NCP, and the other second NCP is the second NCP that directly receives the multiple cells forwarded by the first NCP.

13. The method according to claim 10, characterized in that, The process of restoring the multiple information cells to obtain a message includes: In response to the second NCP's communication interface being valid, the plurality of information cells are restored to obtain the message.

14. The method according to claim 10, characterized in that, The DDC device includes Q second NCPs, where Q is a positive integer; Before restoring the plurality of information cells to obtain the message, the method further includes: In response to the invalidity or congestion of the communication interface of the second NCP, the first identifier of the communication interface of the second NCP added in the information cell is modified to a spare first identifier of the communication interface of another second NCP, and the modified multiple information cells are forwarded to the other second NCP, wherein the other second NCP is one of the Q second NCPs other than the second NCP.

15. The method according to claim 10, characterized in that, The step of forwarding the message to the second external edge node through the communication interface of the second NCP includes: In response to the fact that the communication interface of the second NCP is not congested, the message is forwarded to the second external edge node through the communication interface of the second NCP.

16. The method according to claim 10, characterized in that, The DDC device includes Q second NCPs, where Q is a positive integer; After restoring the multiple information cells to obtain the message, the method further includes: In response to congestion of the communication interface of the second NCP, the message is sent to other second NCPs so that the other second NCPs forward the message to the second external edge node. The other second NCP is one of the Q second NCPs other than the second NCP.

17. The method according to claim 10, characterized in that, The method further includes: Routing information is sent to the first NCP, the routing information being used to determine the mapping relationship between the destination address of the data stream and the first identifier of the communication interface of the second NCP, the data stream being the data stream to which the message belongs.

18. The method according to claim 17, characterized in that, The routing information includes first routing information and second routing information. The first routing information includes the destination address of the data stream and the second identifier of the communication interface of the second NCP. The second routing information includes the first identifier and the second identifier of the communication interface of the second NCP.

19. A network device, characterized in that, include: Memory and processor; Memory and processor are coupled; The memory is used to store instructions that can be executed by the processor; When the processor executes the instructions, it performs the method as described in any one of claims 1 to 18.

20. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 18.

21. A computer program product, characterized in that, The computer program product includes computer instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 18.