Message transmission method, device, equipment, system and storage medium
By carrying backhaul co-path indication information in data packets within a multi-homed network architecture, the problem of transmission failures caused by path faults between hosts and network devices is solved, thereby improving the transmission reliability and rapid fault convergence of the data center without adding equipment.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-12-04
- Publication Date
- 2026-06-05
AI Technical Summary
In a multihomed network architecture, when a host is connected to multiple network devices, if one path fails, other hosts cannot detect it and continue to send messages to the failed device, resulting in transmission failure and reducing the reliability of message transmission.
By carrying backhaul common path indication information in the data packets between the first and second communication devices, the data packets can be forwarded through the second and third network devices without changing the network architecture, ensuring that the packets do not pass through faulty devices. The indication information is carried in the link layer, network layer or transport layer packet header to achieve flexible forwarding.
Without changing the network architecture, it improves the reliability of data packet transmission, achieves rapid fault convergence in multi-homed deployments, avoids packet transmission to faulty devices, and enhances the transmission reliability of the data center.
Smart Images

Figure CN122160309A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to message transmission methods, apparatus, devices, systems and storage media. Background Technology
[0002] With the development of communication technology, data centers mainly adopt a multihomed network architecture. In a multihomed network architecture, hosts access the network through multiple network devices, meaning that the host connects to multiple network devices, and these devices are located in different forwarding planes. Packets sent by the host to different network devices are transmitted independently on different forwarding planes.
[0003] Taking a dual-homed network where both the first and second hosts are accessed as an example, if a path failure occurs between the first host and either of the two network devices, the first host will detect the failure and send data packets to the second host through the other network device. However, the second host will not detect the failure and may still choose the faulty network device to send data packets to the first host, causing the transmission of packets from the second host to the first host to fail. Therefore, improving the reliability of packet transmission without changing the network architecture is an urgent problem to be solved. Summary of the Invention
[0004] This application provides a message transmission method, apparatus, device, system, and storage medium to improve the reliability of message transmission.
[0005] In a first aspect, a message transmission method is provided. Taking a first communication device executing the method as an example, the method includes: in the event of a communication failure between the first communication device and a first network device, the first communication device sends a first data packet to a second communication device through a second network device and a third network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is multi-homed to both the first and second network devices, and the second communication device is multi-homed to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are communicatively connected.
[0006] This method is designed for multi-homed network architectures. In the event of a communication failure between the first communication device and a first network device with multi-homed access, the first communication device can send a first data packet to itself via a second network device, carrying backhaul common path indication information in the first data packet. The second network device is connected to a third network device with which the second communication device has multi-homed access, enabling the second communication device to receive the first data packet sent by the first communication device via the third network device, and to send a second data packet to the first communication device via the third network device according to the backhaul common path indication information carried in the first data packet. The third network device is also connected to a second network device with which the first communication device has multi-homed access, enabling the first communication device to receive the second data packet sent by the second communication device via the second network device.
[0007] As a result, the second data packets sent by the second communication device to the first communication device, and the first data packets sent by the first communication device to the second communication device, are both forwarded through the second network device and the third network device. This prevents the second data packets from being forwarded to the first network device, which has experienced a communication failure with the first communication device. Without changing the network architecture, this improves the transmission reliability of the second data packets and enables rapid fault convergence in multi-homed deployments.
[0008] Optionally, the first network device and the fourth network device are located in the first forwarding plane, and the second network device and the third network device are located in the second forwarding plane. The different forwarding planes are isolated from each other, and data packets in the first forwarding plane will not be forwarded to the second forwarding plane.
[0009] In one possible implementation, when normal communication is possible between the first communication device and the first network device, the first communication device sends a third data packet to the second communication device via the first network device and the fourth network device. The third data packet does not include backhaul common path indication information. This allows the second communication device to flexibly send data packets to the first communication device via either the third or fourth network device in the absence of a communication failure.
[0010] In one possible implementation, the backhaul common route indication information is carried in the link layer header, network layer header, network layer extended header, or transport layer header of the first data packet. This makes the method of carrying backhaul common route indication information in the data packet more flexible.
[0011] In one possible implementation, the first and second communication devices are data center servers, and the first, second, third, and fourth network devices are data center switches. This method can improve the transmission reliability of the data center.
[0012] Secondly, a message transmission method is provided. Taking the execution of the method by a second communication device as an example, the method includes: in the event of a communication failure between the first communication device and a first network device, the second communication device receives a first data packet sent by the first communication device through a second network device and a third network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first and second network devices, and the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are signal connected.
[0013] Therefore, by carrying backhaul common path indication information in the first data packet, the second communication device can send the second data packet through the first interface that receives the first data packet, so that the second data packet will not be forwarded to the first network device that has a communication failure with the first communication device. Without changing the network architecture, the transmission reliability of the second data packet is improved, and rapid fault convergence is achieved in multi-homed deployment.
[0014] In one possible implementation, after receiving the first data packet, the second communication device generates forwarding information. This forwarding information includes the mapping between a first Internet Protocol (IP) address and a first interface, where the first IP address is the source IP address of the first data packet. Based on the forwarding information, the second data packet is forwarded through the first interface, with the destination IP address of the second data packet being the first IP address. By generating forwarding information, the interface sending the second data packet is made consistent with the interface receiving the first data packet.
[0015] In one possible implementation, after receiving a third data packet from the first communication device, the second communication device deletes or ages the forwarding information, wherein the third data packet does not include return route common path indication information. By deleting the forwarding information, the second communication device can flexibly send data packets to the first communication device through a third or fourth network device.
[0016] In one possible implementation, the first and second communication devices are data center servers, and the first, second, third, and fourth network devices are data center switches. This method can improve the transmission reliability of the data center.
[0017] Thirdly, a message transmission method is provided. Taking a fourth network device executing the method as an example, the method includes: in the event of a communication failure between a first network device and a first communication device, the fourth network device receives a first message sent by the first network device, the first message announcing that the route to the first communication device is unreachable; the fourth network device sends a second message to a second communication device, the second message announcing that the route to the first communication device is unreachable, to instruct the second communication device to avoid sending data packets to the first communication device through the fourth network device. Wherein, the first communication device is multiple-connected to both the first and second network devices, the second communication device is multiple-connected to both the third and fourth network devices, the first network device and the fourth network device are connected in communication, and the second network device and the third network device are connected in communication.
[0018] This method targets a multi-homed network architecture. In the event of a communication failure between the first communication device and the first network device with multi-homed access, the fourth network device can notify the second communication device that the route to the first communication device is unreachable. This prevents the second communication device from sending data packets to the first communication device through the fourth network device. Since the fourth network device and the first network device are connected, the data packets sent to the first communication device are prevented from being forwarded to the first network device with which the communication failure occurred. Without changing the network architecture, this method improves the reliability of data packet transmission and achieves rapid fault convergence in a multi-homed deployment.
[0019] In one possible implementation, after receiving the first message from the first network device, and assuming normal communication is possible between the first communication device and the first network device, the fourth network device also receives a third message from the first network device, which announces that a route to the first communication device is reachable. Then, the fourth network device sends a fourth message to the second communication device, also announcing that a route to the first communication device is reachable. This enables the second communication device to send data packets to the first communication device via the fourth network device.
[0020] In one possible implementation, the first message is a Border Gateway Protocol (BGP) withdrawn message; or, the first message is a Border Gateway Protocol (BGP) update message, which includes indication information indicating that the route to the first communication device is unreachable. The method of announcing the unreachability of the route to the first communication device can be either withdrawing the route or updating the route to the first communication device and adding indication information to the route, thus improving the flexibility of announcing the unreachability of the route to the first communication device.
[0021] In one possible implementation, the second message is a Link Layer Discovery Protocol (LLDP) message or an Address Resolution Protocol (ARP) message. The LLDP or ARP message includes information indicating that a route to the first communication device is unreachable.
[0022] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0023] Fourthly, a message transmission method is provided. Taking the execution of the method by a second communication device as an example, the method includes: in the event of a communication failure between a first network device and a first communication device, the second communication device receives a second message sent by a fourth network device. The second message announces that the route to the first communication device is unreachable, thereby instructing the second communication device to avoid sending data packets to the first communication device through the fourth network device. The first communication device is multiple-accessible to both the first and second network devices, the second communication device is multiple-accessible to both the first and fourth network devices, the first and fourth network devices are communicatively connected, and the second and third network devices are communicatively connected.
[0024] This method is designed for multi-homed network architectures. In the event of a communication failure between the first communication device and the first network device with multi-homed access, the second communication device can receive a notification from the fourth network device that the route to the first communication device is unreachable. This allows the second communication device to avoid sending data packets to the first communication device through the fourth network device. Since the fourth network device and the first network device are connected, the data packets sent to the first communication device are prevented from being forwarded to the first network device with which the communication failure has occurred. Without changing the network architecture, this method improves the reliability of data packet transmission and achieves rapid fault convergence in multi-homed deployments.
[0025] In one possible implementation, the second communication device is connected to a third network device via a first interface, and to a fourth network device via a second interface. Upon receiving a second message, the second communication device generates forwarding information indicating that data packets cannot be forwarded to a first IP address (the IP address of the first communication device) via the second interface. Based on the forwarding information, the second communication device forwards the data packet destined for the first IP address via the first interface. By generating forwarding information, the sending of data packets to the first communication device via the fourth network device is avoided.
[0026] In one possible implementation, after receiving the second message from the fourth network device, the second communication device also receives a fourth message from the fourth network device, and deletes or ages the forwarded information, wherein the fourth message announces that the route to the first communication device is reachable. By deleting the forwarded information, the second communication device can flexibly send data packets to the first communication device through the third or fourth network device.
[0027] In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable.
[0028] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0029] Fifthly, a message transmission method is provided. Taking the execution of the method by a first network device as an example, the method includes:
[0030] In the event of a communication failure between the first network device and the first communication device, the first network device sends a first message to the fourth network device, announcing that the route to the first communication device is unreachable. The first message then instructs the fourth network device to send a second message to the second communication device, also announcing that the route to the first communication device is unreachable, thus instructing the second communication device to avoid sending data packets to the first communication device via the fourth network device. Specifically, the first communication device is connected to both the first and second network devices, while the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively linked, as are the second and third network devices.
[0031] This method targets a multi-homed network architecture. In the event of a communication failure between the first communication device and the first network device connected to the multi-homed network, the first network device notifies the fourth network device, which is connected to it, that the route to the first communication device is unreachable. This enables the fourth network device to notify the second communication device, which is connected to it, that the route to the first communication device is unreachable. Consequently, the second communication device avoids sending data packets to the first communication device through the fourth network device. Since the fourth network device is connected to the first network device, data packets intended for the first communication device are prevented from being forwarded to the first network device, which is experiencing a communication failure with the first communication device. Without changing the network architecture, this method improves the reliability of data packet transmission and achieves rapid fault convergence in a multi-homed deployment.
[0032] In one possible implementation, when the first communication device and the first network device can communicate normally, the first network device sends a third message to the fourth network device, the third message announcing that the route to the first communication device is reachable, and the third message instructs the fourth network device to send a fourth message to the second communication device, the fourth message announcing that the route to the first communication device is reachable.
[0033] In one possible implementation, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable.
[0034] In one possible implementation, the first and second communication devices are data center servers, and the first, second, third, and fourth network devices are data center switches. This method can improve the transmission reliability of the data center.
[0035] In a sixth aspect, a message transmission apparatus is provided, which is used to perform the method of the first aspect or any possible implementation thereof; or, the message transmission apparatus is used to perform the method of the second aspect or any possible implementation thereof; or, the message transmission apparatus is used to perform the method of the third aspect or any possible implementation thereof; or, the message transmission apparatus is used to perform the method of the fourth aspect or any possible implementation thereof; or, the message transmission apparatus is used to perform the method of the fifth aspect or any possible implementation thereof.
[0036] In the case where the message transmission device is used to perform the method in the first aspect or any possible implementation of the first aspect, the message transmission device is applied to the first communication device, the message transmission device comprising:
[0037] The sending module is used to send a first data packet to the second communication device via a second network device and a third network device in the event of a communication failure between the first communication device and the first network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device via a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first and second network devices, and the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively linked, as are the second and third network devices.
[0038] In one possible implementation, the sending module is further configured to send a third data message to the second communication device through the first network device and the fourth network device when the first communication device and the first network device are able to communicate normally. The third data message does not include return route common path indication information.
[0039] In one possible implementation, the return route common path indication information is carried in the link layer header, network layer header, network layer extended header, or transport layer header of the first data packet.
[0040] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0041] In the case where the message transmission device is used to perform the method in the second aspect or any possible implementation of the second aspect, the message transmission device is applied to the second communication device, the message transmission device comprising:
[0042] The receiving module is configured to receive a first data packet sent by the first communication device through a second and a third network device in the event of a communication failure between the first communication device and the first network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first and second network devices, while the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are also interconnected.
[0043] In one possible implementation, the message transmission device further includes: a generation module, configured to generate forwarding information after receiving a first data packet, the forwarding information including a correspondence between a first IP address and a first interface, the first IP address being the source IP address of the first data packet; and a forwarding module, configured to forward a second data packet through the first interface based on the forwarding information, the destination IP address of the second data packet being the first IP address.
[0044] In one possible implementation, the receiving module is further configured to receive a third data message sent by the first communication device, wherein the third data message does not include backhaul common path indication information; the message transmission device further includes a deletion module, configured to delete or age forwarding information.
[0045] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0046] In cases where the message transmission device is used to perform the method in the third aspect or any possible implementation of the third aspect, the message transmission device is applied to a fourth network device, the message transmission device comprising:
[0047] The receiving module is configured to receive a first message sent by the first network device in the event of a communication failure between the first network device and the first communication device, wherein the first message announces that the route to the first communication device is unreachable.
[0048] The sending module is used to send a second message to the second communication device, the second message announcing that the route to the first communication device is unreachable, thereby instructing the second communication device to avoid sending data packets to the first communication device through the fourth network device. The first communication device is connected to both the first and second network devices, and the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are communicatively connected.
[0049] In one possible implementation, the receiving module is further configured to receive a third message sent by the first network device when the first communication device and the first network device are able to communicate normally, wherein the third message announces that the route to the first communication device is reachable; the sending module is further configured to send a fourth message to the second communication device, wherein the fourth message announces that the route to the first communication device is reachable.
[0050] In one possible implementation, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable.
[0051] In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable.
[0052] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0053] In the case where the message transmission device is used to perform the method in the fourth aspect or any possible implementation of the fourth aspect, the message transmission device is applied to the second communication device, the message transmission device comprising:
[0054] The receiving module is configured to receive a second message sent by a fourth network device in the event of a communication failure between the first network device and the first communication device. The second message announces that the route to the first communication device is unreachable, instructing the second communication device to avoid sending data packets to the first communication device via the fourth network device. The first communication device is typically connected to both the first and second network devices; the second communication device is typically connected to both the first and fourth network devices; the first and fourth network devices are communicatively linked; and the second and third network devices are communicatively linked.
[0055] In one possible implementation, the message transmission device further includes: a generation module, configured to generate forwarding information after receiving a second message, the forwarding information indicating that a data packet cannot be forwarded to a first IP address through a second interface, the first IP address being the IP address of a first communication device, and the second communication device being connected to a fourth network device through the second interface; and a forwarding module, configured to forward data packets with a destination IP address of the first IP address through a first interface based on the forwarding information, and the second communication device being connected to a third network device through the first interface.
[0056] In one possible implementation, the receiving module is further configured to receive a fourth message sent by a fourth network device, the fourth message announcing that the route to the first communication device is reachable; the message transmission device further includes a deletion module, configured to delete or age forwarded information.
[0057] In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable.
[0058] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0059] In the case where the message transmission apparatus is used to perform the method in the fifth aspect or any possible implementation of the fifth aspect, the message transmission apparatus is applied to a first network device, the message transmission apparatus comprising:
[0060] The sending module is configured to send a first message to a fourth network device in the event of a communication failure between the first network device and the first communication device. The first message announces that the route to the first communication device is unreachable. The first message instructs the fourth network device to send a second message to a second communication device, also announcing that the route to the first communication device is unreachable, thus instructing the second communication device to avoid sending data packets to the first communication device via the fourth network device. The first communication device is connected to both the first and second network devices, while the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively linked, as are the second and third network devices.
[0061] In one possible implementation, the sending module is further configured to send a third message to the fourth network device when the first communication device and the first network device are able to communicate normally. The third message announces that the route to the first communication device is reachable. The third message instructs the fourth network device to send a fourth message to the second communication device. The fourth message announces that the route to the first device is reachable.
[0062] In one possible implementation, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable.
[0063] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0064] In a seventh aspect, a message transmission system is provided, the message transmission system comprising a first communication device and a second communication device;
[0065] The first communication device is used to perform the method described in the first aspect or any possible implementation of the first aspect, and the second communication device is used to perform the method described in the second aspect or any possible implementation of the second aspect.
[0066] Eighthly, a message transmission system is provided, the message transmission system comprising a first network device, a fourth network device, and a second communication device;
[0067] The fourth network device is used to perform the method described in the third aspect or any possible implementation of the third aspect, the second communication device is used to perform the method described in the fourth aspect or any possible implementation of the fourth aspect, and the first network device is used to perform the method described in the fifth aspect or any possible implementation of the fifth aspect.
[0068] A ninth aspect provides a server comprising: a processor coupled to a memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor to enable the server to implement the message transmission method as described in any of the first, second, or fourth aspects above.
[0069] Optionally, the processor may be one or more, and the memory may be one or more.
[0070] Optionally, the memory may be integrated with the processor, or the memory may be separated from the processor.
[0071] In a tenth aspect, a switch is provided, comprising: a processor coupled to a memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor to enable the switch to implement the message transmission method as described in either the third or fifth aspect above.
[0072] Optionally, the processor may be one or more, and the memory may be one or more.
[0073] Optionally, the memory may be integrated with the processor, or the memory may be separated from the processor.
[0074] In the specific implementation process, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. This application does not limit the type of memory or the way the memory and processor are set.
[0075] Eleventhly, a computer-readable storage medium is provided, the storage medium storing at least one instruction, the instruction being loaded and executed by a processor to enable a computer to implement the methods of the above aspects.
[0076] In a twelfth aspect, a computer program (product) is provided, the computer program (product) comprising: computer program code, which, when executed by a computer, causes the computer to perform the methods described in the preceding aspects.
[0077] In a thirteenth aspect, a chip is provided, including a processor for retrieving and executing instructions stored in a memory, causing a device on which the chip is mounted to perform the methods of the foregoing aspects.
[0078] In a fourteenth aspect, another chip is provided, comprising: an input interface, an output interface, a processor, and a memory, wherein the input interface, the output interface, the processor, and the memory are connected via an internal connection path, and the processor is used to execute code in the memory, wherein when the code is executed, the processor is used to perform the methods in the foregoing aspects.
[0079] It should be understood that the beneficial effects achieved by the technical solutions of aspects six to fourteen of this application and their corresponding possible implementations can be found in the technical effects of aspects one to five and their corresponding possible implementations described above, and will not be repeated here. Furthermore, the message transmission device mentioned in aspect six may be the chip mentioned in aspect thirteen or fourteen, or the message transmission device mentioned in aspect six may also be the server mentioned in aspect nine or the switch mentioned in aspect ten. Attached Figure Description
[0080] Figure 1 A schematic diagram of a network architecture provided in an embodiment of this application;
[0081] Figure 2 A schematic diagram of another network architecture provided for an embodiment of this application;
[0082] Figure 3 A schematic diagram of another network architecture provided for an embodiment of this application;
[0083] Figure 4 A flowchart illustrating a message transmission method provided in this application embodiment;
[0084] Figure 5 A schematic diagram of a link layer packet header provided for an embodiment of this application;
[0085] Figure 6 A schematic diagram of a network layer packet header provided for an embodiment of this application;
[0086] Figure 7 A schematic diagram of another network layer packet header provided for an embodiment of this application;
[0087] Figure 8 A flowchart illustrating another message transmission method provided in this application embodiment;
[0088] Figure 9 This is a schematic diagram of the structure of a message transmission device provided in an embodiment of this application;
[0089] Figure 10 A schematic diagram of another message transmission device provided in the embodiments of this application;
[0090] Figure 11 A schematic diagram of another message transmission device provided in the embodiments of this application;
[0091] Figure 12 A schematic diagram of another message transmission device provided in the embodiments of this application;
[0092] Figure 13A schematic diagram of another message transmission device provided in the embodiments of this application;
[0093] Figure 14 This application provides a schematic diagram of the structure of a network device according to an embodiment of the present application.
[0094] Figure 15 This is a schematic diagram of the structure of another network device provided in an embodiment of this application;
[0095] Figure 16 This is a schematic diagram of the structure of a server provided in an embodiment of this application. Detailed Implementation
[0096] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0097] In a multihomed network architecture, hosts access the network through multiple network devices, meaning the host connects to multiple network devices. For an example of a dual-homed deployment, see [link to example]. Figure 1 The diagram illustrates the network architecture, where H1-H4 represent hosts, and L1-L4, S1, and S2 represent network devices. H1 and H2 are dual-homed to L1 and L2, respectively, while H3 and H4 are dual-homed to L3 and L4. Data packets from H1 accessing H3 are first load-balanced to either L1 or L2, and then further load-balanced to either S1 or S2. Similarly, data packets from H2 accessing H3 are also load-balanced to either L1 or L2, and then further load-balanced to either S1 or S2. The links between each host and network device can have completely equal bandwidth.
[0098] Therefore, data packets from H1 accessing H3 may conflict with data packets from H2 accessing H3, causing congestion. Figure 1 As shown, the data packet from H1 to H3 is loaded and chooses S1 through the load balancing of L1, and the data packet from H2 to H3 is also loaded and chooses S1 through the load balancing of L2. If both data packets arrive at S1, a conflict may occur at S1.
[0099] To alleviate the aforementioned data packet conflict problem, a dual-homed dual-plane network architecture is proposed. This architecture allows multiple network devices with multi-homed access to reside on different forwarding planes, which are isolated from each other. Packets sent by a host to different network devices are transmitted independently on their respective forwarding planes, and packets from one forwarding plane will not be forwarded to another. For example, as shown... Figure 2As shown, L1 communicates with L4 through S1 and S3, meaning L1, S1, S3, and L4 belong to the same forwarding plane. Similarly, L2 communicates with L3 through S2 and S4, meaning L2, S2, S4, and L3 belong to the same forwarding plane. Therefore, when H2 distributes data packet load to L2, the only further load-sharing paths are S2 or S4. These are completely different planes from the load-sharing paths S1 or S3 corresponding to L1, thus preventing conflicts or congestion.
[0100] However, in the event of a communication failure between H1 and L1, H3, as the remote host, will not be aware of this failure, leading to a delay in fault resolution. For example, since H1 can detect the failure locally, data packets sent from H1 to H3 can switch to L2 forwarding, for instance, with a forwarding path of H1-L2-S4-L3-H3. Because H3 cannot detect the communication failure between H1 and L1, data packets sent from H3 to H1 will undergo normal load balancing path selection, potentially resulting in forwarding to L4, for instance, with a forwarding path of H3-L4-S3-L1. Consequently, data packets sent from H3 to H1 cannot be forwarded to H1 after reaching L1, leading to data packet transmission failure and reduced transmission reliability.
[0101] In related technologies, a fully connected layer is added above the dual-plane architecture, allowing data packets to bypass and switch to another fault-free forwarding plane when one forwarding plane fails. For example, such as... Figure 3 The network architecture shown has C1 and C2 fully connected on layers S1-S4, which can be referred to as the core layer. Since C1 and C2 connect to two different forwarding planes simultaneously, data packets can be switched from one forwarding plane to the other through C1 or C2, achieving normal convergence in case of failure under dual-homed deployment.
[0102] For example, after a communication failure between H1 and L1, BGP routes converge between the network devices in the two forwarding planes through the core layer, announcing that the route from L1 to H1 is unreachable. Since BGP routes are not advertised to the host, H3 remains unaware of the communication failure between H1 and L1. Data packets sent by H3 to H1 may still be load-balanced to L4. Taking L4 load balancing selection S3 as an example, after a data packet arrives at S3, it will find that the route to the destination host H1 is no longer advertised by L1, but by C1 or C2, causing the data packet load balancing to select C1 or C2. For example... Figure 3 As shown, the data packet sent by H3 to H1 is routed through C1 to the forwarding plane where S2 and S4 are located, and then forwarded to H1 through L2.
[0103] However, the methods in these technologies require adding a layer of network equipment, which expands the network scale and consumes additional ports, increasing the cost of network construction.
[0104] This application provides a message transmission method that achieves normal convergence during failures without altering the dual-plane network architecture, i.e., without adding a fully connected layer, thereby improving the reliability of message transmission. The method provided in this application is applicable to any multi-homed network architecture, such as... Figure 2 The illustrated network architecture is a dual-homed, dual-plane network. Optionally, the method provided in this application embodiment can be used in a data center.
[0105] Taking the interaction between the first communication device and the second communication device to execute this method as an example, see [link to relevant documentation]. Figure 4 , Figure 4 This is a flowchart illustrating a message transmission method provided in an embodiment of this application. The first communication device is typically connected to a first network device and a second network device, while the second communication device is typically connected to a third network device and a fourth network device. The first network device and the fourth network device are communicatively connected, as are the second network device and the third network device. A communicative connection between the first and fourth network devices means that they can communicate directly, either directly or indirectly through other network devices. Similarly, a communicative connection between the second and third network devices means that they can communicate directly, either directly or indirectly through other network devices. Optionally, the first and fourth network devices are located in a first forwarding plane, while the second and third network devices are located in a second forwarding plane. These different forwarding planes are isolated from each other, and data packets within the first forwarding plane are not forwarded to the second forwarding plane.
[0106] This application does not limit the number of network devices that the first or second communication device can access. The number of network devices that the first and second communication devices can access is the same. Optionally, the first communication device can also access a fifth network device, and the second communication device can also access a fifth network device. The fifth network devices are communicatively connected to each other. The first and second communication devices can be hosts or network interface cards (NICs) of a data center. The host can be a terminal or a server. The first, second, third, and fourth network devices can be switches or routers in the data center. For example, the first communication device can be... Figure 2 The second communication device shown as H1 or H2 can be... Figure 2 H3 or H4 are shown. The first network device can be... Figure 2The L1 shown, the second network device can be Figure 2 The L2 shown, the third network device can be Figure 2 The L3, fourth network device shown can be Figure 2 L4 is shown.
[0107] like Figure 4 As shown, the transmission method provided in this application embodiment includes, but is not limited to, the following steps 401-402.
[0108] Step 401: In the event of a communication failure between the first communication device and the first network device, the first communication device sends a first data packet to the second communication device through the second network device and the third network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through the first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device.
[0109] In this embodiment, a communication failure between the first communication device and the first network device includes, but is not limited to, a link failure between the first communication device and the first network device, or a failure of the first network device. Both the first communication device and the first network device can detect the failure, and this embodiment does not limit the method of detecting the failure. For example, a connectivity test program (packet internet groper, PING) can be used to determine whether the first communication device and the first network device are reachable, and if they are unreachable, it is determined that a failure has occurred.
[0110] Since the first communication device is connected to both the first and second network devices, it can switch its path to the second network device to forward the first data packet after detecting that the link with the first network device is unreachable. The second network device is communicatively connected to the third network device, and the third network device is communicatively connected to the second communication device through a first interface, allowing the second communication device to receive the first data packet forwarded by the third network device through the first interface, which is the input interface for the second communication device to receive the first data packet. In this embodiment, backhaul common path indication information is added to the first data packet, so that after receiving the first data packet, the second communication device, based on the backhaul common path indication information in the first data packet, sends the second data packet to the first communication device through the input interface of the first data packet, i.e., the first interface. The first interface is also the output interface for the second communication device to forward the second data packet.
[0111] In this embodiment, when the first data packet sent by the first communication device to the second communication device carries marking information, the backhaul common path indication information is used to instruct the second data packet sent by the second communication device to the first communication device to be forwarded through the ingress interface that received the first data packet. In this embodiment, the ingress interface for the second communication device to receive the first data packet is the first interface. Therefore, under the instruction of the backhaul common path indication information, the second communication device sends the second data packet to the first communication device through the first interface, and the backhaul common path indication information does not carry the first interface.
[0112] Therefore, by carrying return path common path indication information in the outbound data packets sent by the first communication device to the second communication device, the forwarding paths of the return data packets sent by the second communication device to the first communication device and the outbound data packets are located in the same forwarding plane, achieving the effect of return path common path. Since the forwarding paths in each forwarding plane are independent, the return data packets will be forwarded to the first communication device through the second network device, avoiding the forwarding of the return data packets to the first network device that has a communication failure, thus improving the reliability of data packet transmission.
[0113] In one possible implementation, the backhaul co-location indication information is carried in the link layer header, network layer header, network layer extended header, or transport layer header of the first data packet, making the method of carrying backhaul co-location indication information in the data packet more flexible. Optionally, the position of the backhaul co-location indication information in any header field can be a reused field or an extended new field. Regardless of the position of the backhaul co-location indication information in the first data packet, it must be ensured that the network device forwarding the first data packet can correctly forward the first data packet after the backhaul co-location indication information is carried.
[0114] For example, see Figure 5 The diagram shows the structure of a link layer packet header. The link layer packet header includes a newly added Ethernet type (EthType) field. Backhaul co-location indication information can reuse the Flags field of the EthType field. Alternatively, see [link to other documentation]. Figure 6 The diagram shows the structure of a network layer packet header. The network layer packet header includes a Type of Service field; return route common routing information can reuse one or more unused bits in the Type of Service field. Alternatively, see [link to relevant documentation]. Figure 7 The diagram shows the structure of the network layer packet header. The network layer packet header includes an extended header, and the backhaul common route indication information can be carried in the Flags field, which is newly added to the extended header. Figure 5 , Figure 6 or Figure 7 The meanings of the other fields in the message header shown can be found in the relevant descriptions in the request for comments (RFC), and will not be repeated in this embodiment.
[0115] Among them, Figure 5 In the link layer header shown, the OuterDestination medium access control Address (IDEA) and Outer Source MAC Address fields are used to carry the destination MAC address and source MAC address, respectively. The Ethtype field is a newly added Ethernet type field, while the EtherType field is the original Ethernet type field, used to identify the type of upper-layer protocol. For example, Figure 6 or Figure 7 The network layer header shown can be either an Internet Protocol version 4 (IPv4) header or an Internet Protocol version 6 (IPv6) header.
[0116] exist Figure 6 or Figure 7 In the network layer header shown, the Version field is used to distinguish the version of the IP protocol, such as IPv4 and IPv6; the Source Address field is used to carry the source IP address; and the Destination Address field is used to carry the destination IP address.
[0117] exist Figure 6In the network layer header shown, the Internet Header Length (IHL) field indicates the length of the header; the Type of Service (TOS) field specifies the priority and service type of the packet, with different bit positions used by different network services; the Total Length field indicates the length of the entire IP packet; the Identification field is used to identify each data packet during fragmentation, ensuring that fragmented packets can be correctly reassembled; the Flags field may include reserved bits, no fragmentation (DF) bits, and more fragmentation (MF) bits, where DF is 1 indicating no fragmentation and MF is 1 indicating further fragmentation; the Fragment Offset field indicates the position of each fragment within the original data packet during fragmentation; the Time to Live (TTL) field indicates the maximum lifespan of a data packet in the network; the Protocol field indicates the protocol type used by the upper layer; and the Header Checksum... The Checksum field is used to detect whether there are errors in the IP header during transmission; the Options field has a variable length; and the Padding field is filled with zeros.
[0118] exist Figure 7 In the network layer header shown, the Traffic Class field distinguishes different types of traffic or priorities; the Flow Label field identifies the same data flow; the Payload Length field indicates the length of the data content following the header; the Next Header (NxtHdr) field indicates the type of the extended header immediately following the basic header; NxtHdr = 60 represents the Destination Options Header (DOH), indicating the options to be processed by the final destination of the packet; the Hop Limit field defines the maximum number of hops the packet can traverse. The Destination Options Header includes the Next Header field, the Header Extension Length (HeaderLen) field, and one or more subsequent option fields, including the Option Type field, the Option Length (OptLen) field, the Flags field, and the Reserved field.
[0119] In one possible implementation, if no communication failure occurs between the first communication device and the first network device, the first communication device sends a third data packet to the second communication device. This third data packet does not include backhaul common path indication information. This allows the second communication device to flexibly send data packets to the first communication device via a third or fourth network device in the absence of a communication failure, while saving the resource consumption caused by carrying backhaul common path indication information.
[0120] Wherein, "no communication failure occurred between the first communication device and the first network device" means that the first communication device and the first network device can communicate normally. Optionally, when the first communication device and the first network device can communicate normally, the first communication device sends the third data packet to the second communication device through the first network device and the fourth network device.
[0121] Step 402: The second communication device receives the first data packet sent by the first communication device through the second network device and the third network device.
[0122] Since the second communication device is connected to the third network device through the first interface, it receives the first data packet sent by the third network device through the first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. Based on the return path indication information included in the first data packet, when the second communication device sends a second data packet to the first communication device, it forwards the second data packet through the first interface, ensuring that the second data packet and the first data packet share the same path. If the first data packet can be successfully forwarded, then the second data packet can also be successfully forwarded, guaranteeing the reliability of the second data packet's transmission.
[0123] In one possible implementation, after receiving a first data packet including backhaul common path indication information, the second communication device generates forwarding information. This forwarding information includes a mapping between a first IP address and a first interface, where the first IP address is the source IP address of the first data packet. Based on this forwarding information, the second communication device forwards a second data packet through the first interface, with the destination IP address of the second data packet being the first IP address. In other words, when forwarding the second data packet, the second communication device searches the forwarding information. If the destination IP address of the second data packet matches the first IP address included in the forwarding information, the second data packet is forwarded through the first interface corresponding to the first IP address in the forwarding information. Thus, by generating forwarding information, the interface sending the second data packet is made consistent with the interface receiving the first data packet.
[0124] For example, with Figure 2Taking the network architecture shown as an example, after a communication failure between H1 and L1, H1 sends a first data packet to H3 through L2 and L4. The first data packet includes backhaul common path indication information. H3 receives the first data packet through the first interface and generates forwarding information based on the backhaul common path indication information. When H3 sends a second data packet to the first communication device, it selects the first interface to forward the second data packet based on the forwarding information. The second data packet is forwarded to L3, and L3 load balances the packet by selecting S2 or S4. S2 or S4 forwards the second data packet to L2, and L2 forwards it normally to H1. The forwarding of the second data packet is not affected by the communication failure between H1 and L1.
[0125] Subsequently, the second communication device continues to receive the third data packet sent by the first communication device. Upon receiving the third data packet, it deletes or ages the forwarding information. The third data packet does not include return route common path indication information. By deleting the forwarding information, the second communication device can flexibly send data packets to the first communication device through a third or fourth network device.
[0126] This method is designed for multi-homed network architectures. In the event of a communication failure between the first communication device and a first network device with multi-homed access, the first communication device can send a first data packet to itself via a second network device, carrying backhaul common path indication information in the first data packet. The second network device is connected to a third network device with which the second communication device has multi-homed access, enabling the second communication device to receive the first data packet sent by the first communication device via the third network device, and to send a second data packet to the first communication device via the third network device according to the backhaul common path indication information carried in the first data packet. The third network device is also connected to a second network device with which the first communication device has multi-homed access, enabling the first communication device to receive the second data packet sent by the second communication device via the second network device.
[0127] As a result, the second data packets sent by the second communication device to the first communication device, and the first data packets sent by the first communication device to the second communication device, are both forwarded through the second network device and the third network device. This prevents the second data packets from being forwarded to the first network device, which has experienced a communication failure with the first communication device. Without changing the network architecture, this improves the transmission reliability of the second data packets and enables rapid fault convergence in multi-homed deployments.
[0128] The following example illustrates how the first network device, the fourth network device, and the second communication device interact to execute this method. (See below) Figure 8 , Figure 8This is a flowchart illustrating a message transmission method provided in an embodiment of this application. The first communication device is typically connected to a first network device and a second network device, while the second communication device is typically connected to a third network device and a fourth network device. The first network device and the fourth network device are communicatively connected, as are the second network device and the third network device. The first and second communication devices can be hosts or network interface cards (NICs) of a data center, and the host can be a terminal or a server. The first, second, third, and fourth network devices can be switches or routers in the data center.
[0129] This application does not limit the number of network devices that the first or second communication device can access. The number of network devices that the first and second communication devices can access is the same. Optionally, the first communication device can also access a fifth network device, and the second communication device can also access a fifth network device, with the fifth network devices communicating with each other. For example, the first communication device can be... Figure 2 The second communication device shown as H1 or H2 can be... Figure 2 H3 or H4 are shown. The first network device can be... Figure 2 The L1 shown, the second network device can be Figure 2 The L2 shown, the third network device can be Figure 2 The L3, fourth network device shown can be Figure 2 As shown in L4. Figure 8 As shown, the data transmission method includes, but is not limited to, the following steps 801-803.
[0130] Step 801: In the event of a communication failure between the first network device and the first communication device, the first network device sends a first message to the fourth network device, the first message announcing that the route to the first communication device is unreachable. The first message instructs the fourth network device to send a first message to the second communication device, the first message announcing that the route to the first communication device is unreachable.
[0131] In this embodiment, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable. Therefore, the method of announcing the unreachability of the route to the first communication device can be either to withdraw the route to the first communication device or to update the route to the first communication device and add indication information to the route. This improves the flexibility of announcing the unreachability of the route to the first communication device.
[0132] When normal communication is possible between the first communication device and the first network device, the first network device sends a third message to the fourth network device. The third message announces that the route to the first communication device is reachable. The third message instructs the fourth network device to send a fourth message to the second communication device. The fourth message announces that the route to the first communication device is reachable. The method of sending the third message is similar to that of the first message and will not be described again here.
[0133] Step 802: The fourth network device receives the first message sent by the first network device and sends a second message to the second communication device, in which the second message announces that the route to the first communication device is unreachable.
[0134] The method by which the fourth network device sends the second message to the second communication device can be implemented by adding a new communication protocol or by modifying an existing communication protocol; this application embodiment does not limit this. In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable; this information can be information indicating that an address to the first communication device is unreachable.
[0135] For example, LLDP messages can carry various optional TLV fields to carry optional information. This application embodiment indicates that the address of the first communication device is unreachable by adding a new extended TLV, where the TLV field refers to the type, length, and value fields. For ARP messages, a new ARP message type can be added to carry information indicating that the address of the first communication device is unreachable; or, a new Ethtype message can be added to indicate that the address of the first communication device is unreachable through the content of the new Ethtype message.
[0136] In one possible implementation, after the fourth network device receives the first message sent by the first network device, and assuming normal communication is possible between the first communication device and the first network device, it receives a third message sent by the first network device. This third message announces that a route to the first communication device is reachable. Subsequently, the fourth network device also sends a fourth message to the second communication device, announcing that a route from the fourth network device to the first communication device is reachable. This enables the second communication device to send data packets to the first communication device through the fourth network device. The method of sending the fourth message is similar to that of the second message and will not be described further here.
[0137] Step 803: The second communication device receives a second message sent by the fourth network device. The second message instructs the second communication device to avoid sending data packets to the first communication device through the fourth network device.
[0138] In this embodiment, the second communication device is connected to the third network device via the first interface and to the fourth network device via the second interface. Therefore, the second communication device receives a second message sent by the fourth network device via the second interface. Based on the second message, when sending a second data packet to the first communication device, the second communication device forwards the data packet through an interface other than the second interface, thus preventing the second data packet from being forwarded through the fourth network device and consequently preventing it from being forwarded to the first network device experiencing a communication failure, thereby improving the transmission reliability of the second data packet.
[0139] In one possible implementation, after receiving the second message, the second communication device generates forwarding information, which indicates that data packets cannot be forwarded to the first IP address via the second interface. The first IP address is the IP address of the first communication device. Based on the forwarding information, the second communication device forwards the data packet whose destination IP address is the first IP address via the first interface. In other words, when forwarding the second data packet, the second communication device checks the forwarding information. If the destination IP address of the second data packet matches the first IP address included in the forwarding information, it avoids forwarding the second data packet via the second interface corresponding to the first IP address in the forwarding information. Thus, by generating forwarding information, the sending of data packets to the first communication device via the fourth network device is avoided.
[0140] For example, with Figure 2 Taking the network architecture shown as an example, after a communication failure between H1 and L1, L1 sends a first message to L4; L4 constructs a second message based on the first message and sends the second message to H3 and H4, which are multi-homed access; H3 and H4 receive the second message sent by L4 through the second interface and generate forwarding information based on the second message; when H3 sends a data packet to H1, it selects any interface other than the second interface to forward the data packet based on the forwarding information. For example, it selects the first interface to forward the data packet to L4. The data packet is load-balanced by L4, which selects S2 or S4. S2 or S4 forwards the data packet to L2, and L2 forwards it normally to H1. The forwarding of the data packet is not affected by the communication failure between H1 and L1.
[0141] In one possible implementation, after receiving the second message sent by the fourth network device, the second communication device also receives a fourth message sent by the fourth network device, and deletes or ages the forwarded information, wherein the fourth message announces the route to the first communication device is reachable. By deleting the forwarded information, the second communication device can flexibly send data packets to the first communication device through the third or fourth network device.
[0142] This method targets a multi-homed network architecture. In the event of a communication failure between the first communication device and the first network device connected to the multi-homed network, the first network device notifies the fourth network device, which is connected to it, that the route to the first communication device is unreachable. This enables the fourth network device to notify the second communication device, which is connected to it, that the route to the first communication device is unreachable. Consequently, the second communication device avoids sending data packets to the first communication device through the fourth network device. Since the fourth network device is connected to the first network device, data packets intended for the first communication device are prevented from being forwarded to the first network device, which is experiencing a communication failure with the first communication device. Without changing the network architecture, this method improves the reliability of data packet transmission and achieves rapid fault convergence in a multi-homed deployment.
[0143] The above describes the message transmission method according to embodiments of this application. Corresponding to the above method, embodiments of this application also provide a message transmission apparatus. This message transmission apparatus is used to perform... Figure 4 The method shown involves all or part of the operations performed by the first communication device; or, for performing Figure 4 The second communication device performs all or part of the operations shown in the method; or, is used to perform... Figure 8 The method shown refers to all or part of the operations performed by the fourth network device; or, for performing Figure 8 The second communication device performs all or part of the operations shown in the method; or, is used to perform... Figure 8 The method shown refers to all or part of the operations performed by the first network device.
[0144] The message transmission device in the embodiments of this application can be a switch, router, host or other device, or a component of the device, such as a single board or line card on a network device, or a functional module on the device, or a chip used to implement the method of this application. The embodiments of this application do not make specific limitations.
[0145] Figure 9 This is a schematic diagram of a message transmission device provided in an embodiment of this application, applied to a first communication device, which can be the aforementioned... Figure 2 As shown, H1 or H2. Based on Figure 9 The following modules are shown. Figure 9 The message transmission device shown is capable of performing Figure 4 The method shown represents all or part of the operations performed by the first communication device. It should be understood that the message transmission device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 9 As shown, the device includes:
[0146] The sending module 901 is used to send a first data packet to the second communication device via a second network device and a third network device in the event of a communication failure between the first communication device and the first network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device via a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first and second network devices, and the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively connected, as are the second and third network devices.
[0147] In one possible implementation, the sending module 901 is further configured to send a third data message to the second communication device through the first network device and the fourth network device when the first communication device and the first network device are able to communicate normally. The third data message does not include return route common path indication information.
[0148] In one possible implementation, the return route common path indication information is carried in the link layer header, network layer header, network layer extended header, or transport layer header of the first data packet.
[0149] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0150] Figure 10 This is a schematic diagram of a message transmission device provided in an embodiment of this application, applied to a second communication device, which can be the aforementioned... Figure 2 H3 or H4 as shown. Based on Figure 10 The following modules are shown. Figure 10 The shown message transmission device is capable of performing all or part of the operations performed by the second communication device in the method shown in Figure 4. It should be understood that the message transmission device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 10 As shown, the device includes:
[0151] The receiving module 1001 is configured to receive a first data packet sent by the first communication device through a second network device and a third network device in the event of a communication failure between the first communication device and the first network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first and second network devices, while the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are also interconnected.
[0152] In one possible implementation, the message transmission device further includes: a generation module, configured to generate forwarding information after receiving a first data packet, the forwarding information including a correspondence between a first IP address and a first interface, the first IP address being the source IP address of the first data packet; and a forwarding module, configured to forward a second data packet through the first interface based on the forwarding information, the destination IP address of the second data packet being the first IP address.
[0153] In one possible implementation, the receiving module 1001 is further configured to receive a third data message sent by the first communication device, wherein the third data message does not include backhaul common path indication information; the message transmission device further includes a deletion module, configured to delete or age forwarding information.
[0154] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0155] Figure 11 This is a schematic diagram of a message transmission device provided in an embodiment of this application, applied to a first network device, which can be the aforementioned Figure 2 The L1 or L2 shown. Based on Figure 11 The following modules are shown. Figure 11 The shown message transmission device is capable of performing all or part of the operations performed by the first network device in the method shown in Figure 8. It should be understood that the message transmission device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 11 As shown, the device includes:
[0156] The sending module 1101 is configured to send a first message to a fourth network device in the event of a communication failure between the first network device and the first communication device. The first message announces that the route to the first communication device is unreachable. The first message also instructs the fourth network device to send a second message to a second communication device, announcing that the route to the first communication device is unreachable, thus instructing the second communication device to avoid sending data packets to the first communication device via the fourth network device. The first communication device is connected to both the first and second network devices, while the second communication device is connected to both the third and fourth network devices. The first and fourth network devices are communicatively linked, as are the second and third network devices.
[0157] In one possible implementation, the sending module 1101 is further configured to send a third message to the fourth network device when the first communication device and the first network device are able to communicate normally. The third message announces that the route to the first communication device is reachable. The third message instructs the fourth network device to send a fourth message to the second communication device. The fourth message announces that the route to the first device is reachable.
[0158] In one possible implementation, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable.
[0159] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0160] Figure 12 This is a schematic diagram of a message transmission device provided in an embodiment of this application, applied to a fourth network device, which can be the aforementioned Figure 2 The L3 or L4 shown. Based on Figure 12 The following modules are shown. Figure 12 The shown message transmission device is capable of performing all or part of the operations performed by the fourth network device in the method shown in Figure 8. It should be understood that the message transmission device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 12 As shown, the device includes:
[0161] The receiving module 1201 is configured to receive a first message sent by the first network device in the event of a communication failure between the first network device and the first communication device, wherein the first message announces that the route to the first communication device is unreachable.
[0162] The sending module 1202 is used to send a second message to the second communication device, the second message announcing that the route to the first communication device is unreachable, so as to instruct the second communication device to avoid sending data packets to the first communication device through the fourth network device. The first communication device is connected to both the first and second network devices, and the second communication device is connected to both the third and fourth network devices. The first network device and the fourth network device are connected in communication, and the second network device and the third network device are connected in communication.
[0163] In one possible implementation, the receiving module 1201 is further configured to receive a third message sent by the first network device when the first communication device and the first network device are able to communicate normally, wherein the third message announces that the route to the first communication device is reachable; the sending module is further configured to send a fourth message to the second communication device, wherein the fourth message announces that the route to the first communication device is reachable.
[0164] In one possible implementation, the first message is a BGP withdrawn message; or, the first message is a BGP update message, which includes indication information indicating that the route to the first communication device is unreachable.
[0165] In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable.
[0166] In one possible implementation, the first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
[0167] Figure 13 This is a schematic diagram of a message transmission device provided in an embodiment of this application, applied to a second communication device, which can be the aforementioned... Figure 2 H3 or H4 as shown. Based on Figure 13 The following modules are shown. Figure 13 The shown message transmission device is capable of performing all or part of the operations performed by the second communication device in the method shown in Figure 8. It should be understood that the message transmission device may include more additional modules than those shown, or may omit some of the modules shown; this application embodiment does not impose limitations in this regard. Figure 13 As shown, the device includes:
[0168] The receiving module 1301 is configured to receive a second message sent by a fourth network device in the event of a communication failure between the first network device and the first communication device. The second message announces that the route to the first communication device is unreachable, instructing the second communication device to avoid sending data packets to the first communication device via the fourth network device. The first communication device is connected to both the first and second network devices, the second communication device is connected to both the first and fourth network devices, the first and fourth network devices are communicatively linked, and the second and third network devices are communicatively linked.
[0169] In one possible implementation, the message transmission device further includes: a generation module, configured to generate forwarding information after receiving a second message, the forwarding information indicating that a data packet cannot be forwarded to a first IP address through a second interface, the first IP address being the IP address of a first communication device, and the second communication device being connected to a fourth network device through the second interface; and a forwarding module, configured to forward data packets with a destination IP address of the first IP address through a first interface based on the forwarding information, and the second communication device being connected to a third network device through the first interface.
[0170] In one possible implementation, the receiving module 1301 is further configured to receive a fourth message sent by a fourth network device, the fourth message announcing that the route to the first communication device is reachable; the message transmission device further includes a deletion module, configured to delete or age forwarded information.
[0171] In one possible implementation, the second message is an LLDP message or an ARP message. The LLDP message or ARP message includes information indicating that a route to the first communication device is unreachable.
[0172] In one possible implementation, the first communication device and the second communication device are data center servers, the first network device, the second network device, the third network device and the fourth network device are data center switches, and the message transmission device is a data center server or a network interface card (NIC) of a data center server.
[0173] It should be understood that the above Figure 9-13 The provided device, when implementing its functions, is only illustrated by the above-described division of functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process and beneficial effects are detailed in the method embodiments, and will not be repeated here.
[0174] See Figure 14 , Figure 14A schematic diagram of the structure of a network device 2000 provided in an exemplary embodiment of this application is shown. Figure 14 The network device 2000 shown is used to perform the above. Figure 4 or Figure 8 The operations involved in the message transmission method shown are illustrated. The network device 2000 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
[0175] like Figure 14 As shown, the network device 2000 includes at least one processor 2001, a memory 2003, and at least one communication interface 2004.
[0176] Processor 2001 may be, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the embodiments of this application. For example, processor 2001 includes application-specific integrated circuits (ASICs), programmable logic devices (PLDs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in connection with the embodiments of this invention. A processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0177] Optionally, the network device 2000 also includes a bus. The bus is used to transfer information between the various components of the network device 2000. The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 14 The symbol is represented by only one line, but this does not mean that there is only one bus or one type of bus.
[0178] Memory 2003 may be, for example, read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; 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 not limited thereto. Memory 2003 may exist independently and be connected to processor 2001 via a bus. Memory 2003 may also be integrated with processor 2001.
[0179] The communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area networks (WLAN). The communication interface 2004 can include wired and wireless communication interfaces. Specifically, the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a WLAN interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In this embodiment, the communication interface 2004 can be used by the network device 2000 to communicate with other devices.
[0180] In a specific implementation, as one example, the processor 2001 may include one or more CPUs, such as... Figure 14 The CPUs shown are CPU0 and CPU1. Each of these processors can be a single-core CPU or a multi-core CPU. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0181] In a specific implementation, as one example, the network device 2000 may include multiple processors, such as... Figure 14 The processors shown are 2001 and 2005. Each of these processors can be a single-core CPU or a multi-core CPU. Here, "processor" can refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).
[0182] In a specific implementation, as one example, the network device 2000 may further include output devices and input devices. The output device communicates with the processor 2001 and can display information in various ways. For example, the output device may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device communicates with the processor 2001 and can receive user input in various ways. For example, the input device may be a mouse, keyboard, touchscreen device, or sensor device, etc.
[0183] In some embodiments, the memory 2003 stores program code 2010 for executing the solution of this application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the network device 2000 can implement the message transmission method provided in the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself may also store program code or instructions for executing the solution of this application.
[0184] In a specific embodiment, the network device 2000 of this application embodiment can correspond to the first network device in the above-described method embodiments. The processor 2001 in the network device 2000 reads instructions from the memory 2003, causing... Figure 14 The network device 2000 shown can perform all or part of the operations performed by the first network device.
[0185] For example, the network device 2000 in this application embodiment may correspond to the fourth network device in the above-described method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, causing... Figure 14 The network device 2000 shown can perform all or part of the operations performed by the fourth network device.
[0186] Network device 2000 can also correspond to the above. Figure 9-13 The message transmission device shown is implemented using software from network device 2000 for each functional module. In other words, the functional modules included in the message transmission device are generated by the processor 2001 of network device 2000 reading the program code 2010 stored in memory 2003.
[0187] in, Figure 4 or Figure 8Each step of the message transmission method shown is completed through integrated logic circuits in the hardware or software instructions in the processor of the network device 2000. The steps of the method disclosed in the embodiments of this application can be directly implemented by the hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. Since this storage medium is located in memory, the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method; to avoid repetition, these will not be described in detail here.
[0188] See Figure 15 , Figure 15 This invention provides a schematic diagram of the structure of a network device 2100 according to another exemplary embodiment of the present application. Figure 15 The network device 2100 shown is used to perform the above. Figure 4 or Figure 8 The illustrated message transmission method involves all or part of the operations. The network device 2100 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
[0189] like Figure 15 As shown, the network device 2100 includes a main control board 2110 and an interface board 2130.
[0190] The main control board, also known as the main processing unit (MPU) or route processor card, is used to control and manage the various components in the network device 2100, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 2110 includes a central processing unit 2111 and a memory 2112.
[0191] Interface board 2130 is also called a line processing unit (LPU), linecard, or service board. Interface board 2130 provides various service interfaces and implements packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, etc., with Ethernet interfaces including, for example, Flexible Ethernet Clients (FlexE Clients). Interface board 2130 includes: a central processing unit 2131, a network processor 2132, a forwarding table entry memory 2134, and a physical interface card (PIC) 2133.
[0192] The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110.
[0193] Network processor 2132 is used to implement packet forwarding processing. Network processor 2132 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). Specifically, network processor 2132 forwards received packets based on the forwarding table stored in forwarding table entry memory 2134. If the destination address of the packet is the address of network device 2100, the packet is sent to the CPU (such as central processing unit 2131) for processing; if the destination address of the packet is not the address of network device 2100, the next hop and outgoing interface corresponding to the destination address are looked up in the forwarding table according to the destination address, and the packet is forwarded to the outgoing interface corresponding to the destination address. Uplink packet processing may include: packet ingress interface processing, forwarding table lookup; downlink packet processing may include: forwarding table lookup, etc. In some embodiments, the central processing unit can also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for a forwarding chip on the interface board.
[0194] The physical interface card 2133 is used to implement physical layer interfacing functions. Raw data packets enter the interface board 2130 through this card, and processed packets are sent out from the physical interface card 2133. The physical interface card 2133, also called a daughter card, can be installed on the interface board 2130. It is responsible for converting photoelectric signals into packets, performing validity checks on the packets, and forwarding them to the network processor 2132 for processing. In some embodiments, the central processing unit 2131 can also perform the functions of the network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for the network processor 2132 in the physical interface card 2133.
[0195] Optionally, network device 2100 includes multiple interface boards. For example, network device 2100 also includes interface board 2140, which includes: a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143. The functions and implementation methods of each component in interface board 2140 are the same as or similar to those in interface board 2130, and will not be described in detail here.
[0196] Optionally, network device 2100 also includes a switching fabric board 2120. The switching fabric board 2120 can also be referred to as a switch fabric unit (SFU). When network device 2100 has multiple interface boards, the switching fabric board 2120 is used to complete data exchange between the interface boards. For example, interface boards 2130 and 2140 can communicate through the switching fabric board 2120.
[0197] The main control board 2110 and the interface boards are coupled. For example, the main control board 2110, interface boards 2130 and 2140, and the switching network board 2120 communicate with each other via a system bus connected to the system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2110 and interface boards 2130 and 2140, and communication between the main control board 2110 and interface boards 2130 and 2140 is achieved through the IPC channel.
[0198] Logically, network device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2110 and a central processing unit 2111, while the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, a physical interface card 2133, and a network processor 2132. The control plane performs functions such as router operation, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the status of network devices. The control plane distributes the generated forwarding tables to the forwarding plane. In the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables distributed by the control plane. The forwarding tables distributed by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same network device.
[0199] It's worth noting that a network device may have one or more main control boards, including a primary and a backup main control board. It may also have one or more interface boards; the more powerful the network device's data processing capabilities, the more interface boards it provides. Each interface board may also have one or more physical interface cards. A switching board may or may not exist; multiple boards can share the load and provide redundancy. In a centralized forwarding architecture, the network device may not need a switching board, as the interface boards handle the entire system's business data processing. In a distributed forwarding architecture, the network device can have at least one switching board, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of a distributed architecture network device are greater than those of a centralized architecture network device. Alternatively, the network device can also be a single board, without a switching board. The functions of the interface board and the main control board are integrated on this one board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU to perform the combined functions. This type of network device has lower data exchange and processing capabilities (e.g., low-end switches or routers). The specific architecture adopted depends on the specific network deployment scenario, and no restrictions are imposed here.
[0200] In a specific embodiment, network device 2100 corresponds to the above. Figure 11 The message transmission apparatus shown. In some embodiments, Figure 11 The sending module 1101 in the shown message transmission device corresponds to the physical interface card 2133 in the network device 2100. Alternatively, the network device 2100 corresponds to the above-mentioned Figure 12 The message transmission apparatus shown. In some embodiments, Figure 12 The receiving module 1201 and sending module 1202 in the message transmission device shown are equivalent to the physical interface card 2133 in the network device 2100.
[0201] Figure 16 This is a schematic diagram of a server structure provided in an embodiment of this application. The server 1600 can vary significantly due to different configurations or performance. It may include one or more processors 1601 and one or more memories 1602. The one or more memories 1602 store at least one computer program, which is loaded and executed by the one or more processors 1601 to enable the server to implement the message transmission methods provided in the various method embodiments described above. Of course, the server 1600 may also have wired or wireless network interfaces, a keyboard, and input / output interfaces for input and output. The server 1600 may also include other components for implementing device functions, which will not be elaborated upon here.
[0202] This application also provides a message transmission system, which includes a first communication device and a second communication device. For example, the first communication device is... Figure 14 The network device shown is 2000 or Figure 16 The server 1600 shown has a second communication device. Figure 14 The network device shown is 2000 or Figure 16 The server 1600 is shown. The message transmission methods performed by the first and second communication devices are described above. Figure 4 The relevant descriptions of the embodiments shown will not be repeated here.
[0203] This application also provides a message transmission system, which includes: a first network device, a fourth network device, and a second communication device. For example, the first network device is... Figure 14 The network device shown is 2000 or Figure 15 The network device shown is 2100, and the fourth network device is... Figure 14 The network device shown is 2000 or Figure 15 The network device 2100 shown has a second communication device. Figure 14 The network device shown is 2000 or Figure 16 The server 1600 shown. The message transmission methods performed by the first network device, the fourth network device, and the second communication device can be found above. Figure 4 The relevant descriptions of the embodiments shown will not be repeated here.
[0204] This application embodiment also provides a communication device, which includes a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory stores instructions, and the processor executes the instructions stored in the memory to control the transceiver to receive and transmit signals. When the processor executes the instructions stored in the memory, it causes the processor to perform... Figure 4 or Figure 8 The method in the middle.
[0205] It should be understood that the aforementioned processor can be a CPU, or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting Advanced Reduced Instruction Set Computing (RISC) machines (ARM) architecture.
[0206] Furthermore, in an alternative embodiment, the memory described above may include read-only memory and random access memory, and provide instructions and data to the processor. The memory may also include non-volatile random access memory. For example, the memory may also store device type information.
[0207] The memory can be volatile or non-volatile, or may include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which serves as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0208] This application also provides a computer-readable storage medium storing at least one instruction, which is loaded and executed by a processor to enable the computer to implement any of the above message transmission methods.
[0209] This application also provides a computer program (product) that, when executed by a computer, causes the processor or computer to perform the corresponding steps and / or processes in the above method embodiments.
[0210] This application also provides a chip, including a processor, for calling and executing instructions stored in a memory, causing a communication device with the chip installed to perform any of the above message transmission methods.
[0211] This application embodiment also provides another chip, including: an input interface, an output interface, a processor, and a memory. The input interface, output interface, processor, and memory are connected through an internal connection path. The processor is used to execute code in the memory. When the code is executed, the processor is used to execute any of the above message transmission methods.
[0212] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to this application are generated, in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk), etc.
[0213] Those skilled in the art will recognize that the method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. To clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software 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 application.
[0214] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.
[0215] When implemented using software, it can be implemented wholly or partially as a computer program product. This computer program product includes one or more computer program instructions. As an example, the methods of this application embodiment can be described in the context of machine-executable instructions, such as program modules that execute on a device on a real or virtual processor of the target. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., which perform specific tasks or implement specific abstract data structures. In various embodiments, the functionality of program modules can be combined or divided among the described program modules. The machine-executable instructions for the program modules can execute within a local or distributed device. In a distributed device, the program modules can reside on both local and remote storage media.
[0216] Computer program code used to implement the methods of the embodiments of this application may be written in one or more programming languages. This computer program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the computer or other programmable data processing apparatus, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a computer, partially on a computer, as a standalone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.
[0217] In the context of the embodiments of this application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, etc.
[0218] Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.
[0219] A machine-readable medium can be any tangible medium that contains or stores programs for or relating to an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can include, but are not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More detailed examples of machine-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0220] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and modules described above can be found in the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0221] In the embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections through some interfaces, devices, or modules, or they may be electrical, mechanical, or other forms of connection.
[0222] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.
[0223] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0224] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0225] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items that have substantially the same function and purpose. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the scope of various examples, a first image can be referred to as a second image, and similarly, a second image can be referred to as a first image. Both the first image and the second image can be images, and in some cases, they can be separate and distinct images.
[0226] It should also be understood that, in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0227] In this application, the term "at least one" means one or more, and the term "multiple" means two or more. For example, multiple second messages refer to two or more second messages. The terms "system" and "network" are often used interchangeably in this document.
[0228] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0229] It should also be understood that the term "and / or" as used herein refers to and covers any and all possible combinations of one or more of the associated listed items. The term "and / or" describes an association between related objects, indicating that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this application generally indicates that the preceding and following related objects are in an "or" relationship.
[0230] It should also be understood that the term “comprising” (also referred to as “includes”, “including”, “comprises” and / or “comprising”) as used in this specification specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0231] It should also be understood that the terms “if” and “if” can be interpreted as meaning “when” or “upon”, or “in response to determination” or “in response to detection”. Similarly, depending on the context, the phrases “if determination…” or “if detection [the stated condition or event]” can be interpreted as meaning “when determination…”, or “in response to determination…”, or “when detection [the stated condition or event]” or “in response to detection [the stated condition or event]”.
[0232] It should be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.
[0233] It should also be understood that the phrases "an embodiment," "an embodiment," and "a possible implementation" used throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment or implementation is included in at least one embodiment of this application. Therefore, the phrases "in an embodiment," "an embodiment," or "a possible implementation" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0234] The above description is only an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A message transmission method, characterized in that, The method includes: In the event of a communication failure between the first communication device and the first network device, the first communication device sends a first data packet to the second communication device through the second network device and the third network device. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is connected to both the first network device and the second network device, the second communication device is connected to both the third network device and the fourth network device, the first network device and the fourth network device are communicatively connected, and the second network device and the third network device are communicatively connected.
2. The method according to claim 1, characterized in that, The method further includes: When the first communication device and the first network device can communicate normally, the first communication device sends a third data packet to the second communication device through the first network device and the fourth network device. The third data packet does not include the return route indication information.
3. The method according to claim 1 or 2, characterized in that, The return route common path indication information is carried in the link layer header, network layer header, network layer extended header, or transport layer header of the first data packet.
4. The method according to any one of claims 1-3, characterized in that, The first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
5. A message transmission method, characterized in that, The method includes: In the event of a communication failure between the first communication device and the first network device, the second communication device receives a first data packet sent by the first communication device through the second and third network devices. The first data packet includes backhaul common path indication information, which instructs the second communication device to send a second data packet to the first communication device through a first interface. The first interface is used by the second communication device to receive the first data packet forwarded by the third network device. The first communication device is multi-homed to both the first and second network devices, and the second communication device is multi-homed to both the third and fourth network devices. The first and fourth network devices are communicatively connected, and the second and third network devices are communicatively connected.
6. The method according to claim 5, characterized in that, The method further includes: Upon receiving the first data packet, forwarding information is generated, which includes the correspondence between the first Internet Protocol IP address and the first interface, wherein the first IP address is the source IP address of the first data packet. Based on the forwarding information, the second data packet is forwarded through the first interface, and the destination IP address of the second data packet is the first IP address.
7. The method according to claim 6, characterized in that, The method further includes: Upon receiving the third data packet sent by the first communication device, the forwarding information is deleted or aged out, wherein the third data packet does not include the return route common path indication information.
8. The method according to any one of claims 5-7, characterized in that, The first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
9. A message transmission method, characterized in that, The method includes: In the event of a communication failure between the first network device and the first communication device, the fourth network device receives a first message sent by the first network device, in which the first message announces that the route to the first communication device is unreachable. The fourth network device sends a second message to the second communication device, the second message announcing that the route to the first communication device is unreachable, so as to instruct the second communication device to avoid sending data packets to the first communication device through the fourth network device; The first communication device is connected to the first network device and the second network device, and the second communication device is connected to the third network device and the fourth network device. The first network device and the fourth network device are communicatively connected, and the second network device and the third network device are communicatively connected.
10. The method according to claim 9, characterized in that, After receiving the first message sent by the first network device, the fourth network device further includes: When the first communication device and the first network device can communicate normally, the third message sent by the first network device is received, and the third message announces that the route to the first communication device is reachable; A fourth message is sent to the second communication device, the fourth message announcing that the route to the first communication device is reachable.
11. The method according to claim 9 or 10, characterized in that, The first message is a Border Gateway Protocol (BGP) withdrawn message; or, The first message is a Border Gateway Protocol update (BGP) message, which includes second indication information indicating that the route to the first communication device is unreachable.
12. The method according to any one of claims 9-11, characterized in that, The second message is either a Link Layer Discovery Protocol (LLDP) message or an Address Resolution Protocol (ARP) message.
13. The method according to any one of claims 9-12, characterized in that, The first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
14. A message transmission method, characterized in that, The method includes: In the event of a communication failure between the first network device and the first communication device, the second communication device receives a second message sent by the fourth network device. The second message announces that the route to the first communication device is unreachable, thereby instructing the second communication device to avoid sending data packets to the first communication device through the fourth network device. The first communication device is connected to the first network device and the second network device, the second communication device is connected to the network device and the fourth network device, the first network device and the fourth network device are communicatively connected, and the second network device and the third network device are communicatively connected.
15. The method according to claim 14, characterized in that, The second communication device is connected to the third network device through a first interface, and the second communication device is connected to the fourth network device through a second interface. The method further includes: Upon receiving the second message, forwarding information is generated, indicating that data packets cannot be forwarded to the first Internet Protocol IP address through the second interface, where the first IP address is the IP address of the first communication device. Based on the forwarding information, a data packet with the destination IP address being the first IP address is sent to the third network device through the first interface.
16. The method according to claim 15, characterized in that, After receiving the second message sent by the fourth network device, the second communication device further includes: Upon receiving the fourth message sent by the fourth network device, the forwarding information is deleted or aged out, wherein the fourth message announces that the route to the first communication device is reachable.
17. The method according to any one of claims 14-16, characterized in that, The second message is either a Link Layer Discovery Protocol (LLDP) message or an Address Resolution Protocol (ARP) message.
18. The method according to any one of claims 14-17, characterized in that, The first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
19. A message transmission method, characterized in that, The method includes: In the event of a communication failure between the first network device and the first communication device, the first network device sends a first message to the fourth network device, the first message announcing that the route to the first communication device is unreachable. The first message instructs the fourth network device to send a second message to the second communication device, the second message announcing that the route to the first communication device is unreachable, so as to instruct the second communication device to avoid sending messages to the first communication device through the fourth network device. The first communication device is connected to the first network device and the second network device, and the second communication device is connected to the third network device and the fourth network device. The first network device and the fourth network device are communicatively connected, and the second network device and the third network device are communicatively connected.
20. The method according to claim 19, characterized in that, After the first network device sends the first message to the fourth network device, it also includes: When the first communication device and the first network device can communicate normally, a third message is sent to the fourth network device. The third message announces that the route to the first communication device is reachable. The third message instructs the fourth network device to send a fourth message to the second communication device. The fourth message announces that the route to the first device is reachable.
21. The method according to claim 19 or 20, characterized in that, The first message is a Border Gateway Protocol (BGP) withdrawn message; or, The first message is a Border Gateway Protocol update (BGP) update message, which includes indication information indicating that the route to the first communication device is unreachable.
22. The method according to any one of claims 19-21, characterized in that, The first communication device and the second communication device are data center servers, and the first network device, the second network device, the third network device and the fourth network device are data center switches.
23. A message transmission device, characterized in that, The message transmission device is used to perform the message transmission method according to any one of claims 1-4; or, the message transmission device is used to perform the message transmission method according to any one of claims 5-8; or, the message transmission device is used to perform the message transmission method according to any one of claims 9-13; or, the message transmission device is used to perform the message transmission method according to any one of claims 14-18; or, the message transmission device is used to perform the message transmission method according to any one of claims 19-22.
24. A message transmission system, characterized in that, The message transmission system includes a first communication device and a second communication device; The first communication device is used to perform the method according to any one of claims 1-4, and the second communication device is used to perform the method according to any one of claims 5-8.
25. A message transmission system, characterized in that, The message transmission system includes a first network device, a fourth network device, and a second communication device; The fourth network device is used to perform the method according to any one of claims 9-13, the second communication device is used to perform the method according to any one of claims 14-18, and the first network device is used to perform the method according to any one of claims 19-22.
26. A computer program product, characterized in that, The computer program product includes: computer program code, which is loaded and executed by a computer to enable the computer to implement the message transmission method according to any one of claims 1-22.