A message transmission method, system and device

CN114915518BActive Publication Date: 2026-08-21HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202110171282.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-02-07
Publication Date
2026-08-21
Estimated Expiration
2041-02-07

AI Technical Summary

Technical Problem

然而,当存在大量的目的网络设备,源网络设备需要建立大量的隧道,不仅造成源设备的负载较大,还导致对源网络设备的性能要求提高

Benefits of technology

[0028]According to the technical solution provided in this application, after obtaining a first packet, the first network device can establish a first tunnel that meets the SLA requirements in real time based on the attribute information and destination address in the first packet. Alternatively, the first network device can send a request message to the controller to establish the first tunnel in order to obtain information about the first tunnel from the controller, and then establish the first tunnel based on the information of the first tunnel, so as to forward the first packet to the second network device using the first tunnel. It is evident that the first network device can create tunnels on demand according to the SLA requirements corresponding to the service traffic, without the need for the first network device to create them in advance. This not only reduces the pressure and performance costs of the first network device, but also allows for timely fulfillment of the dynamic changes in the network system's needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114915518B_ABST
    Figure CN114915518B_ABST
Patent Text Reader

Abstract

The application discloses a message transmission method, system and device. Specifically, after a first network device acquires a first message, the first network device can establish a first tunnel meeting SLA requirements in real time according to attribute information and a destination address in the first message, or the first network device sends a request message for establishing the first tunnel to a controller to acquire information about the first tunnel from the controller, and then establishes the first tunnel according to the information about the first tunnel, so as to forward the first message to a second network device by using the first tunnel. It can be seen that the first network device can create a tunnel according to SLA requirements corresponding to service traffic on demand, without pre-creation of the first network device. Therefore, the pressure and performance cost of the first network device are reduced, and the requirement of dynamic change of a network system can be met in time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a message transmission method, system and device. Background Technology

[0002] To ensure timely service transmission, transmission tunnels can be pre-established between the source network device and each destination network device during service message transmission. Since different service messages correspond to different Service Level Agreements (SLAs), tunnels with different SLA requirements are established between the source network device and each destination network device to meet these requirements. However, when there are a large number of destination network devices, the source network device needs to establish a large number of tunnels, which not only increases the load on the source device but also raises the performance requirements for it. Summary of the Invention

[0003] This application provides a message transmission method, system, and device to reduce the pressure on network devices and the performance cost of network devices.

[0004] In a first aspect of this application, a message transmission method is provided, the method comprising: a first network device acquiring a first message, the first message including attribute information and a destination address, the attribute information being used to indicate the Service Level Agreement (SLA) requirements to be met when forwarding the service traffic to which the first message belongs; the first network device establishing a first tunnel based on the attribute information and the destination address, or the first network device sending a request message to a controller to establish the first tunnel using the attribute information and the destination address, the first tunnel being a forwarding tunnel that meets the SLA requirements, used to forward the first message to a second network device, the second network device being determined based on the destination address.

[0005] In this embodiment, after receiving a packet of service traffic, i.e., a first packet, the first network device can establish a first tunnel that meets the SLA requirements in real time based on the attribute information and destination address in the first packet. Alternatively, the first network device can send a request message to the controller to establish the first tunnel in order to obtain information about the first tunnel from the controller, and then establish the first tunnel based on the information to forward the first packet to the second network device. That is, it achieves the goal of creating tunnels on demand based on traffic, without the need for pre-creation, which not only reduces the pressure and performance cost of the first network device, but also meets the needs of dynamic changes in the network system in a timely manner.

[0006] In one specific implementation, the first network device establishes a first tunnel based on the attribute information and the destination address, including: the first network device creating the first tunnel based on the attribute information and the destination address; or, the first network device searching for and obtaining the first tunnel locally based on the attribute information and the destination address.

[0007] In this embodiment, the first network device can pre-store the first tunnel in the control plane. After obtaining the first message, it can search for and retrieve the first tunnel locally based on the attribute information and destination address in the first message. Alternatively, if the first network device has tunnel calculation and creation capabilities, it can establish the first tunnel based on the attribute information and destination address.

[0008] In one specific implementation, the method further includes: the first network device sending information about the first tunnel from the control plane of the first network device to the forwarding plane.

[0009] In this embodiment, after establishing the first tunnel, the first network device can send the information of the first tunnel from the control plane to the forwarding plane, thereby enabling the first network device to forward the first packet using the first tunnel at the forwarding plane.

[0010] In one specific implementation, after the first network device sends a request message to the controller to establish the first tunnel using the attribute information and the destination address, the method includes: the first network device receiving a response message sent by the controller, the response message including information about the first tunnel corresponding to the attribute information and the destination address.

[0011] In this embodiment, when the first network device does not have tunnel computing capabilities, it can send a request message to the controller to establish a first tunnel, so that the controller can obtain the information of the first tunnel based on the attribute information and the destination address, and send the information of the first tunnel to the first network device.

[0012] In one specific implementation, the method further includes: the first network device determines that the first tunnel has not been used to forward packets within a preset time period, and deletes the first tunnel or changes its status to unused.

[0013] In this embodiment, to save resources, the first network device can detect whether the first tunnel has not been used for forwarding packets within a preset time period. If so, the first tunnel is deleted or its status is changed to unused, thus avoiding the first tunnel from occupying forwarding resources.

[0014] In one specific implementation, the first network device is the entrance network device of the first tunnel.

[0015] In one specific implementation, the exit network device of the first tunnel is a second network device, which is the device corresponding to the destination address, or the second network device is a device used to connect the destination device indicated by the destination address to the network.

[0016] In one specific implementation, the method further includes: the first network device acquiring a second packet, the second packet including the attribute information and the destination address, the second packet belonging to the service traffic; the first network device establishing a second tunnel to the third network device based on the device used to connect the destination device indicated by the destination address to the network being changed from the second network device to the third network device, the attribute information, and the destination address; the first network device using the second tunnel to forward the second packet to the third network device.

[0017] In this embodiment, when the device corresponding to the destination device accessing the network indicated by the destination address changes from the second network device to the third network device, the first network device re-establishes a second tunnel to the third network device based on the attribute information, the destination address, and the third network device, so as to use the second tunnel to forward the second message to the third network device.

[0018] In one specific implementation, the method further includes: a first network device acquiring a third packet, the third packet including attribute information and a destination address, the third packet belonging to service traffic, and the attribute information in the third packet being different from the attribute information in the first packet. The first network device establishes a third tunnel to a second network device based on the attribute information and the destination address, so as to forward the third packet to the second network device using the third tunnel.

[0019] In this embodiment, when the attribute information corresponding to the service traffic changes, the first network device re-establishes the tunnel based on the updated attribute information and the destination address, so as to use the newly established tunnel to transmit the service traffic.

[0020] In one specific implementation, the method further includes: the first network device reserving resources for the first tunnel based on the network slice information in the first packet.

[0021] In one specific implementation, the attribute information is carried in the priority field, flow tag field, or time-to-live field of the first message.

[0022] In one specific implementation, the first tunnel is a segmented routing policy (SR Policy) tunnel or a segmented routing traffic engineering (SR TE) tunnel.

[0023] In a second aspect of this application, a message transmission system is provided, comprising: a first network device and a second network device; the first network device is configured to acquire a first message, the first message including attribute information and a destination address, the attribute information being used to indicate the Service Level Agreement (SLA) requirements to be met when forwarding the service traffic to which the first message belongs; the first network device is further configured to establish a first tunnel based on the attribute information and the destination address, or to send a request message to a controller to establish the first tunnel using the attribute information and the destination address, the first tunnel being a forwarding tunnel that meets the SLA requirements, and to forward the first message to the second network device using the first tunnel. The second network device is configured to receive the first message.

[0024] In one specific implementation, the system further includes: a controller; the controller is configured to receive a request message from the first network device to establish the first tunnel, and to obtain information about the first tunnel based on the request message; the controller is further configured to send a response message to the first network device, the response message including information about the first tunnel corresponding to the attribute information and the destination address; the first network device is configured to establish the first tunnel based on the information about the first tunnel.

[0025] In a third aspect of this application, a communication device is provided, the device comprising: a processor and a memory; the memory for storing instructions or computer programs; and the processor for executing the instructions or computer programs in the memory to cause the communication device to perform the method described in the first aspect.

[0026] In a fourth aspect of this application, a computer-readable storage medium is provided, including instructions that, when executed on a computer, cause the computer to perform the method described in the first aspect.

[0027] In a fifth aspect of this application, a computer program is provided that, when run on a computer, causes the computer to perform the method described in the first aspect.

[0028] According to the technical solution provided in this application, after obtaining a first packet, the first network device can establish a first tunnel that meets the SLA requirements in real time based on the attribute information and destination address in the first packet. Alternatively, the first network device can send a request message to the controller to establish the first tunnel in order to obtain information about the first tunnel from the controller, and then establish the first tunnel based on the information of the first tunnel, so as to forward the first packet to the second network device using the first tunnel. It is evident that the first network device can create tunnels on demand according to the SLA requirements corresponding to the service traffic, without the need for the first network device to create them in advance. This not only reduces the pressure and performance costs of the first network device, but also allows for timely fulfillment of the dynamic changes in the network system's needs. Attached Figure Description

[0029] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0030] Figure 1 A network system architecture diagram provided in this application embodiment;

[0031] Figure 2 This is a schematic diagram of an application scenario provided by an embodiment of this application;

[0032] Figure 3 A flowchart of a message transmission method provided in an embodiment of this application;

[0033] Figure 4 A flowchart illustrating another message transmission method provided in this application embodiment;

[0034] Figure 5 A structural diagram of a message transmission device provided in an embodiment of this application;

[0035] Figure 6 A network device structure diagram provided in this application embodiment;

[0036] Figure 7 This is another network device structure diagram provided for an embodiment of this application. Detailed Implementation

[0037] To enable those skilled in the art to better understand the solutions in this invention, the technical solutions in the embodiments of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this invention, and not all embodiments.

[0038] To facilitate understanding of the technical solutions provided in the embodiments of this application, the technologies and network elements involved in the embodiments of this application will be described below.

[0039] In some point-to-multipoint or multipoint-to-multipoint application scenarios, such as Layer 3 Virtual Private Networks (L3VPN) and Virtual Private LAN Services (VPLS), due to the large number of access-side (ACC) devices (e.g., M) and the different service level agreement (SLA) requirements for the transmitted traffic (e.g., requirement level N), the number of tunnels required from the provider edge (PE) devices to each ACC side, satisfying different SLA requirements, reaches the order of M*N. Current implementations pre-create these tunnels based on configuration or tunnel creation policies when the PE establishes neighbor relationships with each ACC. For example... Figure 1 As shown, an example is provided with one PE device and three ACC devices, namely ACC1, ACC2, and ACC3. For instance, if there are three different SLA requirement levels, three tunnels with different SLA requirement levels are established between the PE and ACC1, between the PE and ACC2, and between the PE and ACC3. Based on this, when there is traffic on the PE side destined for different ACCs and with different SLA requirement levels, it can be forwarded based on pre-created tunnels. However, since it is uncertain whether traffic will be sent from the PE to each ACC, pre-creating tunnels not only wastes resources but also puts enormous pressure on the PE device. Furthermore, with the continuous development of networks, there is an increasing trend towards software-defined networks (SDN), which require network flexibility; current implementations cannot meet the need for on-demand tunnel creation.

[0040] Based on this, embodiments of this application provide a message transmission method for achieving the purpose of creating tunnels on demand according to traffic. Specifically, after obtaining a first message in the service traffic, the first network device establishes a first tunnel based on the attribute information and destination address in the first message, or sends a request message to the controller to establish a first tunnel using the attribute information and destination address, so that the controller obtains the information of the first tunnel based on the attribute information and destination address, and then the first network device creates the first tunnel based on the information of the first tunnel. The attribute information is used to indicate the SLA requirements that need to be met when forwarding the service traffic described in the first message.

[0041] In this context, a tunnel refers to a forwarding path between two network devices, allowing service packets to be transmitted over it. In the scenario described in this application, a network device may include multiple tunnels, each corresponding to a different outgoing port on the network device. Different tunnels may correspond to different network fragment resources. In specific implementations, tunnels can be categorized into different types based on the protocol used to establish them, such as segment routing policy (SR-Policy) tunnels, segment routing traffic engineering (SR-TE) tunnels, or tunnels based on slice granularity. This application does not specifically limit the tunnel type. Among these, tunnels based on slice granularity can be tunnels obtained using flexible-algorithm (Flex-Algo) mechanisms or flexible Ethernet (FlexE) tunnels.

[0042] See Figure 2 The diagram illustrates an application scenario in a network system, using five network devices and one controller as an example. Specifically, the system includes network devices PE, ACC1, ACC2, and ACC3, network device P, and the controller. One or more tunnels can be pre-established between PE and ACC1, with both devices serving as end devices for these tunnels. Similarly, one or more tunnels can be pre-established between PE and ACC2, and between PE and ACC3, with both devices serving as end devices for these tunnels. The tunnels between PE1 and each ACC can be tunnels with a typical SLA requirement, such as segment routing best effort (SR-BE) tunnels. The first network device can be either the PE device or the controller. Each of the aforementioned network devices can be an independent network device or a functional module within a network device capable of packet forwarding. For ease of understanding, the explanation will be based on the example of each network device being an independent network device. Each network device can also be called a node, which is a device in the network system that has the function of forwarding packets. For example, it can be a router, switch, repeater, or label switching router (LSR).

[0043] In this application scenario, there may be traffic from PE to ACC1, and there may also be traffic from PE to ACC2 and ACC3. For ease of understanding, the following explanation will take the traffic from PE to ACC1 as an example. In this embodiment, PE is the head node 201, P is the intermediate node 202, and ACC1 is the tail node 203.

[0044] In one possible scenario, the header node can be the node that generated the first message; that is, the header node can be the node indicated by the source address in the first message. In this case, the header node is the first node on the end-to-end transmission path of the first message, and the header node adds attribute information and the destination address when generating the message.

[0045] In another possible scenario, the source node on the end-to-end transmission path of the first message is another node, and the header node is connected to that source node. When the header node receives the first message sent by the source node, it adds attribute information and the destination address to the first message. In this scenario, the header node can be the first tunnel end device on the end-to-end transmission path, or it can be the first end device on the end-to-end transmission path that needs to obtain the attribute information and destination address to establish a tunnel, etc.

[0046] For the tail node, in one possible scenario, it can be the node indicated by the destination address in the message; in another scenario, it can be the access node corresponding to the node indicated by the destination address. The tail node can be the receiving device of a tunnel on the end-to-end transmission path.

[0047] Intermediate nodes are network devices located in the tunnel between the head node and the tail node during message forwarding.

[0048] To facilitate understanding, the following will combine... Figure 2 The network system shown is used as an example for illustration. Specifically, it takes the example of PE sending service traffic to ACC1. See [link to relevant documentation]. Figure 3 This figure is a flowchart of a message transmission method provided in an embodiment of this application. Figure 3 As shown, the method includes:

[0049] S301: Header node 201 obtains the first message.

[0050] In this embodiment, when the head node 201 is the source node, it can generate a first message, which includes attribute information and a destination address. The attribute information indicates the Service Level Agreement (SLA) requirements that the service traffic to which the first message belongs must meet, representing the service level of the traffic. This SLA requirement is a constraint on the first tunnel, such as bandwidth, latency, jitter rate, or any other possible reliability metrics, or combinations thereof, required for forwarding the service traffic. When the head node 201 is an access device connected to the source node, it can receive the first message from the source node, which adds the attribute information and destination address to the message. The first message may also include network slicing information, which the head node 201 can use to reserve resources for the first tunnel. These resources may include bandwidth, latency, Quality of Service (QoS) queues, physical ports, etc., allocated for the service traffic.

[0051] The destination address can be the address of the tail node 203, or the address of the node connected to the tail node 203 (such as a user terminal). In this case, the node indicated by the destination address accesses the network through the tail node 203. Attribute information can be carried in the priority field, flow label (FL) field, or time to live (TTL) field of the first message. Specifically, the priority field will differ depending on the type of message in the first message. For example, when the first message is an Internet Protocol version 4 (IPv4) message, there are three priority fields: a Layer 2 code of service (CoS) field (IEEE 802.1p), an IP layer type of service (ToS) field, and an IP layer differentiated services code point (DSCP) field. When the first message is an Internet Protocol version 6 (IPv6) message, attribute information can be carried in the traffic class (TC) field, etc. When the first message is a multi-protocol label switching (MPLS) message, attribute information can be carried in the EXP field, etc.

[0052] S302: Header node 201 establishes the first tunnel based on attribute information and destination address.

[0053] After obtaining the first packet, head node 201 can perform a route lookup in the forwarding plane based on the attribute information and destination address in the first packet. When the SLA level represented by the attribute information is a high guarantee level, the forwarding plane of head node 201 does not store a tunnel that reaches tail node 203 and meets the SLA requirements, i.e., the first tunnel. The failure of the forwarding plane of head node 201 to store the first tunnel may occur in two situations: one is that head node 201 has established the first tunnel in the control plane but has not sent it to the forwarding plane; the other is that the first tunnel has not been established in the control plane of head node 201. Head node 201 is the entry network device for the first tunnel.

[0054] If the first tunnel has been established on the control plane of head node 201 but has not been sent to the forwarding plane, head node 201 searches for and obtains the first tunnel locally based on attribute information and destination address. Specifically, head node 201 can search for and obtain the first tunnel based on a locally stored mapping table, attribute information, and destination address. The mapping table includes the mapping relationship between attribute information, destination address, and first tunnel. After obtaining the first tunnel, head node 201 sends the information of the first tunnel from the control plane to the forwarding plane. The information of the first tunnel may include node information along the tunnel path, tunnel priority level, and the tunnel's egress network device. In this case, the first tunnel can be created manually or obtained by head node 201 from the controller.

[0055] If the first tunnel has not been established in the control plane of head node 201, but head node 201 has the capability to calculate and create tunnels, head node 201 can create the first tunnel based on attribute information and destination address. After creation, head node 201 sends the information of the first tunnel from the control plane to the forwarding plane. Specifically, head node 201 can calculate the first tunnel based on a pre-configured tunnel policy template to obtain the information of the first tunnel. Different SLAs and different destination addresses can correspond to different tunnel policy templates, which are used to constrain the establishment of tunnels so that the established tunnels meet the SLA requirements.

[0056] In one implementation, when the destination address is a private network address, i.e., the network device indicated by the destination address accesses the network through the tail node 203, the exit network device of the first tunnel is the tail node 203. To establish the first tunnel to the tail node 203, the head node 201 can determine the identifier of the virtual private network (VPN) to which the network device indicated by the destination address belongs based on the destination address, and then find the corresponding access node, i.e., the tail node 203, based on the VPN identifier, and obtain the address of the tail node 203. In this case, the head node 201 determines a matching tunnel policy template based on the attribute information, the VPN identifier, and the address of the tail node 203, and then determines the information of the first tunnel based on the tunnel policy template. The tunnel policy template can provide different policy templates for different VPN users. For example, for VPN A users, packets with a DSCP value of 11-20 provide a tunnel or slice with a bandwidth of 1000M and a latency of 200ms; packets with a DSCP value of 21-30 provide a tunnel or slice with a bandwidth of 1000M and a latency of 400ms. For VPN B users, packets with a DSCP value of 11-20 provide a tunnel or slice with a bandwidth of 1000M and no latency requirement; packets with a DSCP value of 21-30 provide a tunnel or slice with no bandwidth requirement and a latency of 400ms. The address of tail node 203 can be the loopback address, locator address, etc., of tail node 203.

[0057] It should be noted that, if the head node 201 has the capability to calculate and create tunnels, after establishing the first tunnel, S306 can be executed directly to forward the first packet to the second network device using the first tunnel, without needing to execute S303. If the head node 201 does not have the capability to calculate and create tunnels, S303 can be executed before executing S302 to establish the tunnel, thereby triggering the controller to execute S304 and S305.

[0058] S303: Head node 201 sends a request message to the controller to establish the first tunnel using attribute information and destination address.

[0059] When head node 201 cannot independently create the first tunnel, it can send a request message to the controller to establish the first tunnel using attribute information and a destination address. This request message can include attribute information and a destination address to request the controller to calculate the information for the first tunnel. Furthermore, the request message can also include the device identifier of head node 201, allowing the controller to identify the device sending the request message and thus establish the first tunnel with head node 201 as the entry network device. The device identifier of head node 201 can be its IP address, loopback address, or other unique identifier.

[0060] S304: The controller obtains information about the first tunnel based on the attribute information and the destination address.

[0061] After receiving the request message sent by the head node 201, the controller obtains the information of the first tunnel based on the attribute information and destination address in the request message. Specifically, in one example, the controller can search for and obtain the information of the first tunnel locally based on the attribute information and destination address. In another example, if the controller cannot find the information of the first tunnel based on the attribute information and destination address, it can calculate and obtain the information of the first tunnel based on the attribute information and destination address. In this case, the controller can determine the matching tunnel policy template from the pre-configured tunnel policy templates based on the attribute information and destination address, and perform routing calculation based on the matching tunnel policy template to obtain the information of the first tunnel. For the implementation of tunnel routing calculation using the tunnel policy template for the corresponding SLA, please refer to the relevant description in S203.

[0062] As described above, there are two different scenarios regarding the network device indicated by the destination address. In one scenario, when the network device indicated by the destination address is the tail node 203, the head node 201 can directly send a request message including attribute information and the destination address to the controller. In this case, the controller can look up or calculate the information of the first tunnel based on the attribute information and the destination address in the request message. In the other scenario, when the network device indicated by the destination address accesses the network through the tail node 203 (i.e., the destination address is a private network address), if the head node 201 directly sends a request message including attribute information and the destination address to the controller, the controller also needs to determine the address of the tail node 203 based on the identifier of the VPN to which the network device indicated by the destination address belongs. Then, it needs to look up or calculate the information of the first tunnel based on the attribute information, the VPN identifier, and the address of the tail node 203. Specifically, the controller determines a matching tunnel policy template based on the attribute information, the VPN identifier, and the address of the tail node 203, and then determines the information of the first tunnel based on this tunnel policy template. For details regarding the controller's calculation of the first tunnel information based on the attribute information, the VPN identifier, and the address of the tail node 203, please refer to the relevant description in S203.

[0063] S305: The controller sends a response message, including information about the first tunnel, to the head node 201.

[0064] After the controller obtains the information of the first tunnel, it sends a response message including the information of the first tunnel to the head node 201, so that the head node 201 can create the first tunnel based on the information of the first tunnel.

[0065] In one specific implementation, in addition to sending the first tunnel information to the head node 201, the controller can also send resource reservation requests to each of the required nodes included in the first tunnel, so that each node along the first tunnel can reserve resources. The reserved resources may include bandwidth, time slots, quality of service (QoS) queues, physical ports, etc., allocated for service traffic.

[0066] S306: Head node 201 forwards the first message to intermediate node 202 using the first tunnel.

[0067] After receiving the first tunnel information sent by the controller, head node 201 creates a first tunnel based on the first tunnel information and uses the first tunnel to forward service traffic to intermediate node 202. It should be noted that, in order to ensure the normal transmission of service traffic, head node 201 can use the currently established tunnel to forward service traffic to intermediate node 202 before creating the first tunnel.

[0068] In some application scenarios, the first tunnel may not carry traffic for an extended period. To reduce resource consumption, the head node 201 can detect the traffic status of the first tunnel. If it detects that the first tunnel has not been used for forwarding packets within a preset time period, it will delete the first tunnel or change its status to unavailable. The preset time period can be determined based on the actual application, for example, 1 hour. Specifically, the head node 201 can delete the first tunnel in the forwarding plane; or, the head node 201 can mark the first tunnel as unavailable in the forwarding plane; or the head node 201 can mark the first tunnel as unavailable in the control plane and delete it in the forwarding plane; or the head node 201 can delete the first tunnel in both the control plane and the forwarding plane simultaneously. The head node 201 can be configured with different processing strategies to handle the first tunnel based on the current strategy.

[0069] In some application scenarios, there are situations where the access devices corresponding to network devices in a private network are migrated, for example... Figure 2 In this scenario, the network device corresponding to the network access point indicated by the destination address is migrated from ACC1 to ACC2, meaning the tail node 203 changes from ACC1 to ACC2. In this case, after receiving the second packet belonging to service traffic, the head node 201 establishes a second tunnel to the updated tail node 203 based on the attribute information and destination address in the second packet; the head node 201 then uses the second tunnel to forward the second packet to the tail node 203. For details on how the head node 201 establishes the second tunnel to the updated tail node 202 based on the attribute information and destination address, please refer to the relevant descriptions in S302-S306.

[0070] In some application scenarios, the attribute information corresponding to the service traffic may change, such as a decrease or increase in the SLA requirement level. In this case, after receiving the third packet belonging to the service traffic, the head node 201 establishes a third tunnel to the tail node based on the attribute information and destination address in the third packet. The attribute information carried in the third packet has changed compared to the first packet. The head node 201 uses the third tunnel to forward the third packet to the tail node 203. For details on the implementation of the head node 201 establishing the third tunnel based on the attribute information and destination address, please refer to the relevant descriptions in S302-S306.

[0071] S307: Intermediate node 202 forwards the first message to tail node 203 using the first tunnel.

[0072] After receiving the first message, intermediate node 202 forwards it to tail node 203 according to the established first tunnel. Tail node 203, upon receiving the first message forwarded by intermediate node 202, can perform different processing depending on the application scenario. Specifically, this may include the following operations:

[0073] In one scenario, tail node 203 may not forward the message after receiving it. For example, if tail node 203 is the network device indicated by the destination address, tail node 203 may simply receive the message without forwarding it.

[0074] In another scenario, for example, when the network device indicated by the destination address is a user device connected to the tail node 204, the tail node 204 can pop the attribute information in the first message and forward the first message without the attribute information to the user device.

[0075] Understandably, the above scenario is only an example, and the processing operation performed by the tail node 203 on the message can be determined in combination with the specific application scenario.

[0076] To ensure the continuity of message transmission (such as the first message and the second message mentioned above), in this embodiment, both the first message sent by the head node 201 to the intermediate node 202 and the first message sent by the intermediate node 202 to the tail node 203 are referred to as the first message. However, it is understood that the first message sent by the head node 201 to the intermediate node 202 and the first message sent by the intermediate node 202 to the tail node 203 may differ in actual application scenarios. For example, information such as the time to live (TTL) and the next-hop node may differ. That is, when the intermediate node 202 forwards the first message sent by the head node 201 to the tail node 203, it may actually be an updated first message with some necessary modifications. The first message sent by the head node 201 and the updated first message sent by the intermediate node 202 may carry the same payload, attribute information, and destination address.

[0077] As can be seen from the above, the head node, as the entry network device of the first tunnel, can dynamically trigger the creation or activation of the tunnel based on service traffic, without having to create all the tunnels required by the SLA in advance, thus reducing the pressure on the network device and meeting the elasticity requirements of the network and the dynamic migration requirements of access devices.

[0078] For a better understanding of the technical solutions provided in the embodiments of this application, please refer to... Figure 4 This figure is a flowchart of another message transmission method provided in an embodiment of this application, as shown below. Figure 4 As shown, the method may include:

[0079] S401: The first network device receives the first message.

[0080] In this embodiment, the first network device can be a head node, which can generate the first packet or obtain the first packet from its corresponding user equipment. The first packet includes attribute information and a destination address. The attribute information indicates the SLA requirements that need to be met when forwarding the service traffic to which the first packet belongs. The attribute information can be carried in the priority field, flow label field, or time-to-live field of the first packet. For a specific implementation of the first network device obtaining the first packet, see S301.

[0081] S402: The first network device establishes the first tunnel based on the attribute information and the destination address.

[0082] After the first network device receives the first packet, it parses the packet to obtain attribute information and destination address. Based on the attribute information and destination address, it determines whether a tunnel satisfying the SLA requirements exists, i.e., a first tunnel, to forward the first packet to the second network device. If the first network device determines that a first tunnel does not exist, it can establish a first tunnel based on the attribute information and destination address. The first tunnel is a forwarding tunnel satisfying the SLA requirements, used to forward the first packet to the second network device. This second network device is determined based on the destination address. The first network device can be the ingress network device of the first tunnel, and the second network device can be the egress network device of the first tunnel. The second network device can be the device indicated by the destination address, or it can be a device used to connect the destination device indicated by the destination address to the network. Additionally, the first packet may include network slice information, and the first network device can reserve resources for the first tunnel based on this information. The first tunnel can be an SR Policy tunnel, an SR TE tunnel, or a tunnel based on slice granularity.

[0083] In one example, the first network device creates a first tunnel based on attribute information and the destination address. That is, when the first network device has the capability to create a tunnel, it can independently create a first tunnel based on attribute information and the destination address. After creating the first tunnel, the first network device sends the information of the first tunnel from its control plane to its forwarding plane, and then forwards the first packet to the second network device through the forwarding plane. For a specific implementation of the first network device creating a first tunnel based on attribute information and the destination address, see S302.

[0084] In another example, the first network device locates and obtains the first tunnel locally based on attribute information and the destination address. After obtaining the information of the first tunnel, the first network device sends the information of the first tunnel from the control plane to the forwarding plane. For a specific implementation of the first network device locating and obtaining the first tunnel locally based on attribute information and the destination address, see, for example, S302.

[0085] S403: The first network device sends a request message to the controller to establish the first tunnel using attribute information and destination address.

[0086] In this embodiment, after determining that there is no tunnel that meets the SLA requirements, the first network device can also send a request message to the controller to establish the first tunnel. This request message may include attribute information and a destination address. Furthermore, the request message may also include the device identifier of the first network device, so that the controller can identify the network device that sent the request message. For example, a specific implementation of S403 can be found in S303.

[0087] S404: The controller obtains information about the first tunnel based on the request message.

[0088] In this embodiment, after receiving a request message, the controller can obtain information about the first tunnel based on the attribute information and destination address in the request message. Specifically, the controller can determine a matching tunnel policy template based on the attribute information and destination address, and obtain information about the first tunnel based on the tunnel policy template. One implementation of the controller obtaining information about the first tunnel can be found in S304.

[0089] S405: The controller sends a response message to the first network device.

[0090] After obtaining the information of the first tunnel, the controller sends a response message to the first network device. This response message includes information about the first tunnel corresponding to the attribute information and destination address. For a specific implementation of S405, see S305, for example.

[0091] S406: The first network device creates a first tunnel based on the information of the first tunnel, and uses the first tunnel to forward the first message to the second network device.

[0092] For a specific implementation of S405, please refer to S306.

[0093] In one specific implementation, the first network device may further determine that if the first tunnel has not been used for forwarding packets within a preset time period, it will delete the first tunnel or change its status to unavailable. For details on the first network device's handling of the first tunnel, please refer to the relevant description in S306.

[0094] In one specific implementation, when the device corresponding to the destination device indicated by the destination address in the message changes when it accesses the network, the first network device will re-establish a tunnel based on the attribute information and destination address in the message, so as to forward service traffic using the newly established tunnel. Specifically, the first network device receives a second message, which includes attribute information and a destination address, and the second message belongs to the same service traffic as the first message; the first network device establishes a second tunnel to the third network device based on the change of the device used to connect the destination device indicated by the destination address to the network from the second network device to the third network device, the attribute information, and the destination address; the first network device uses the second tunnel to forward the second message to the third network device. For example, see S402-406 for a specific implementation of the first network device establishing the second tunnel.

[0095] Based on the above method embodiments, this application also provides a message transmission device, which will be described below with reference to the accompanying drawings.

[0096] See Figure 5 The figure is a structural diagram of a message transmission device provided in an embodiment of this application. The device 500 can be applied to a first network device to realize the function of the first network device in the above method embodiment. The device 500 may include: an acquisition unit 501, an establishment unit 502 and a sending unit 503.

[0097] The acquisition unit 501 is used to acquire a first message, the first message including attribute information and a destination address, the attribute information being used to indicate the Service Level Agreement (SLA) requirements that need to be met when forwarding the service traffic to which the first message belongs.

[0098] The specific implementation of the acquisition unit 501 in acquiring the first message can be found in the relevant descriptions of S301 or S401.

[0099] Establishment unit 502 is used to establish a first tunnel based on the attribute information and the destination address.

[0100] The specific implementation of establishing the first tunnel by unit 502 can be found in the relevant descriptions of S302 or S402.

[0101] The sending unit 503 is used to send a request message to the controller to establish the first tunnel using the attribute information and the destination address. The first tunnel is a forwarding tunnel that meets the SLA requirements. It is used to forward the first packet to the second network device, which is determined according to the destination address.

[0102] For details on the implementation of the sending unit 503, please refer to the relevant descriptions in S303 or S403.

[0103] In one specific implementation, the establishment unit 502 is specifically used to create the first tunnel based on the attribute information and the destination address; or, to search for and obtain the first tunnel locally based on the attribute information and the destination address.

[0104] For details on the implementation of unit 502, please refer to the relevant descriptions in S302 or S402.

[0105] In one specific implementation, the sending unit 503 is further configured to send the information of the first tunnel from the control plane to the forwarding plane.

[0106] In one specific embodiment, the device further includes: a receiving unit (not shown in the figure);

[0107] The receiving unit is configured to receive a response message sent by the controller, the response message including information about the first tunnel corresponding to the attribute information and the destination address.

[0108] In one specific embodiment, the device further includes: a processing unit (not shown in the figure).

[0109] The processing unit is configured to delete the first tunnel or change its status to unused after determining that the first tunnel has not been used to forward packets within the preset time period.

[0110] In one specific implementation, the network device used by the device 500 is the entrance network device of the first tunnel.

[0111] In one specific implementation, the exit network device of the first tunnel is a second network device, which is the device corresponding to the destination address, or the second network device is a device used to connect the destination device indicated by the destination address to the network.

[0112] In one specific implementation, the acquisition unit 501 is further configured to acquire a second message, the second message including the attribute information and the destination address, and the second message belonging to the service traffic;

[0113] The establishment unit 502 is further configured to establish a second tunnel to the third network device based on the change of the device for accessing the network by the destination device indicated by the destination address from the second network device to the third network device, the attribute information, and the destination address;

[0114] The sending unit 503 is used to forward the second message to the third network device using the second tunnel.

[0115] For details on the implementation of establishing the second tunnel by unit 502, please refer to the relevant descriptions in S306 or S406.

[0116] In one specific embodiment, the device further includes: a processing unit (not shown in the figure);

[0117] The processing unit is configured to reserve resources for the first tunnel based on the network slice information in the first message.

[0118] In one specific implementation, the attribute information is carried in the priority field, flow tag field, or time-to-live field of the first message.

[0119] In one specific implementation, the first tunnel is a segmented routing policy (SR Policy) tunnel or a segmented routing traffic engineering (SR TE) tunnel.

[0120] It should be noted that for details regarding the specific executable functions and implementation of the message transmission device 500, please refer to [link / reference needed]. Figure 3 or Figure 4 The corresponding description of the first network device in the illustrated embodiment will not be repeated here.

[0121] Figure 6 This is a schematic diagram of the structure of a network device provided in an embodiment of this application. The network device may be, for example, […]. Figure 3 or Figure 4 The first network device or the second network device in the illustrated embodiment, or it may be... Figure 5 The message transmission device 500 in the illustrated embodiment is implemented as follows.

[0122] Please see Figure 6 As shown, network device 600 includes: processor 610, communication interface 620, and memory 630. The number of processors 610 in the packet forwarding device 600 can be one or more. Figure 6 Taking a processor as an example. In this embodiment, the processor 610, communication interface 620, and memory 630 can be connected via a bus system or other means. Figure 6 Taking the connection between China and Israel via the Bus System 640 as an example.

[0123] Processor 610 may be a CPU, an NP, or a combination of a CPU and an NP. Processor 610 may further include hardware chips. These hardware chips may be application-specific integrated circuits (ASICs), programmable logic devices (PLDs), or combinations thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0124] When the network device is the head node 201, the processor 610 can perform related functions such as obtaining the first message and establishing the first tunnel based on attribute information and destination address in the above method embodiment.

[0125] The communication interface 620 is used to receive and send messages. Specifically, the communication interface 620 may include a receiving interface and a sending interface. The receiving interface can be used to receive messages, and the sending interface can be used to send messages. There can be one or more communication interfaces 620.

[0126] Memory 630 may include volatile memory, such as random-access memory (RAM); memory 630 may also include non-volatile memory, such as flash memory, hard disk drive (HDD), or solid-state drive (SSD); memory 630 may also include combinations of the above types of memory. Memory 630 may, for example, store the attribute information, destination address, and mapping relationship between the tunnel mentioned above.

[0127] Optionally, the memory 630 stores an operating system and programs, executable modules, or data structures, or subsets thereof, or extended sets thereof. The programs may include various operation instructions for implementing various operations. The operating system may include various system programs for implementing various basic services and handling hardware-based tasks. The processor 610 can read the programs in the memory 630 to implement the message transmission method provided in this embodiment.

[0128] The memory 630 can be a storage device in the network device 600, or it can be a storage device independent of the network device 600.

[0129] The bus system 640 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus system 640 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 6 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0130] Figure 7 This is a schematic diagram of another network device 700 provided in the embodiments of this application. The network device 700 can be configured as the first network device or the second network device in the foregoing embodiments, or... Figure 5 The message transmission device 500 in the illustrated embodiment is implemented as follows.

[0131] Network device 700 includes: main control board 710 and interface board 730.

[0132] The main control board 710, also known as the main processing unit (MPU) or route processor card, controls and manages the various components in the network device 700, including route calculation, device management, device maintenance, and protocol processing functions. The main control board 710 includes a central processing unit 711 and a memory 712.

[0133] Interface board 730, also known as a line processing unit (LPU), linecard, or service board, provides various service interfaces and enables packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, and, for example, Flexible Ethernet Clients (FlexE Clients). Interface board 730 includes: a central processing unit 731, a network processor 732, a forwarding table entry memory 734, and a physical interface card (PIC) 733.

[0134] The central processing unit 731 on the interface board 730 is used to control and manage the interface board 730 and communicate with the central processing unit 711 on the main control board 710.

[0135] The network processor 732 is used to implement packet forwarding processing. The network processor 732 can be in the form of a forwarding chip. Specifically, uplink packet processing includes: processing of the packet ingress interface, forwarding table lookup; downlink packet processing includes: forwarding table lookup, etc.

[0136] Physical interface card 733 is used to implement physical layer interfacing functions. Raw traffic enters interface board 730 through this card, and processed packets are sent out from the physical interface card 733. Physical interface card 733 includes at least one physical interface, also called a physical port. Physical interface card 733 corresponds to FlexE physical interface 204 in system architecture 200. Physical interface card 733, also called a daughter card, can be installed on interface board 730 and is responsible for converting photoelectric signals into packets, performing validity checks on the packets, and forwarding them to network processor 732 for processing. In some embodiments, the central processing unit 731 of interface board 703 can also perform the functions of network processor 732, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 732 in physical interface card 733.

[0137] Optionally, the network device 700 includes multiple interface boards. For example, the network device 700 also includes an interface board 740, which includes a central processing unit 741, a network processor 742, a forwarding table entry memory 744, and a physical interface card 743.

[0138] Optionally, the network device 700 also includes a switching fabric board 720. The switching fabric board 720 can also be referred to as a switch fabric unit (SFU). When the network device has multiple interface boards 730, the switching fabric board 720 is used to complete data exchange between the interface boards. For example, interface boards 730 and 740 can communicate through the switching fabric board 720.

[0139] The main control board 710 and the interface board 730 are coupled. For example, the main control board 710, interface board 730, interface board 740, and switching network board 720 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 710 and the interface board 730, and the main control board 710 and the interface board 730 communicate with each other through the IPC channel.

[0140] Logically, network device 700 includes a control plane and a forwarding plane. The control plane includes a main control board 710 and a central processing unit 731, while the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 734, a physical interface card 733, and a network processor 732. The control plane performs functions such as router operation, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the device's status. The control plane distributes the generated forwarding tables to the forwarding plane. In the forwarding plane, the network processor 732 looks up the packets received by the physical interface card 733 based on the forwarding tables distributed by the control plane before forwarding them. The forwarding tables distributed by the control plane can be stored in the forwarding table entry memory 734. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same device.

[0141] If network device 700 is configured as the first network device, central processing unit 711 can acquire the first message; and establish a first tunnel based on the attribute information and destination address in the first message. Network processor 732 can trigger physical interface card 733 to send the first message to the second network device according to the determined first tunnel.

[0142] It should be understood that the sending unit 503 in the message transmission device 500 can be equivalent to the physical interface card 733 or physical interface card 743 in the network device 700; the acquisition unit 501 and the establishment unit 502 in the message transmission device 500 can be equivalent to the central processing unit 711 or central processing unit 731 in the network device 700.

[0143] It should be understood that the operation on interface board 740 in this embodiment is consistent with the operation on interface board 730, and will not be described again for the sake of simplicity. It should be understood that the network device 700 in this embodiment can correspond to the first network device or the second network device in the above-described method embodiments. The main control board 710, interface board 730 and / or interface board 740 in the network device 700 can implement the functions and / or various steps implemented by the first network device or the second network device in the above-described method embodiments, and will not be described again for the sake of simplicity.

[0144] It should be understood that a network device may have one or more main control boards, including a primary and a backup main control board. Similarly, it may 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 switching boards can share the load and provide redundancy. In a centralized forwarding architecture, network devices may not need a switching board, as the interface boards handle the entire system's business data processing. In a distributed forwarding architecture, a network device can have at least one switching board, enabling data exchange between multiple interface boards and 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 device. Alternatively, network devices can also consist of 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 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.

[0145] In some possible embodiments, the first or second network device described above can be implemented as a virtualized device. For example, a virtualized device can be a virtual machine (VM) running a program for sending messages, and the VM is deployed on a hardware device (e.g., a physical server). A virtual machine refers to a complete computer system with full hardware system functionality simulated by software, running in a completely isolated environment. The virtual machine can be configured as the first or second network device. For example, the first or second network device can be implemented based on a general-purpose physical server combined with Network Functions Virtualization (NFV) technology. The first or second network device can be a virtual host, a virtual router, or a virtual switch. Those skilled in the art can virtualize the first or second network device with the above-mentioned functions on a general-purpose physical server by combining NFV technology by reading this application, and further details are omitted here.

[0146] It should be understood that the network devices of the various product forms described above each have any of the functions of the first network device or the second network device in the above method embodiments, which will not be elaborated here.

[0147] This application also provides a chip, including a processor and an interface circuit. The interface circuit is used to receive instructions and transmit them to the processor. The processor may be, for example, a... Figure 5One specific implementation of the shown message transmission device 500 can be used to execute the above-described message transmission method. The processor is coupled to a memory, which stores programs or instructions. When the processor executes the programs or instructions, the chip system implements the method in any of the above-described method embodiments.

[0148] Optionally, the chip system may contain one or more processors. These processors can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, an integrated circuit, etc. When implemented in software, the processor can be a general-purpose processor, implemented by reading software code stored in memory.

[0149] Optionally, the chip system may contain one or more memories. The memory may be integrated with the processor or disposed separately from it; this application does not limit this. For example, the memory may be a non-transient processor, such as a read-only memory (ROM), which may be integrated with the processor on the same chip or disposed separately on different chips. This application does not specifically limit the type of memory or the arrangement of the memory and processor.

[0150] For example, the chip system may be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a micro controller unit (MCU), a programmable logic device (PLD), or other integrated chips.

[0151] Based on the above method embodiments, this application also provides a message transmission system, which may include: a first network device and a second network device.

[0152] The first network device is used to acquire a first message, which includes attribute information and a destination address. The attribute information is used to indicate the Service Level Agreement (SLA) requirements that need to be met when forwarding the service traffic to which the first message belongs.

[0153] For details on the specific implementation of the first network device acquiring the first message, please refer to the relevant description in S401.

[0154] The first network device is further configured to establish a first tunnel based on the attribute information and the destination address, or to send a request message to the controller to establish the first tunnel using the attribute information and the destination address, wherein the first tunnel is a forwarding tunnel that meets the SLA requirements.

[0155] For details on the specific implementation of the first network device establishing the first tunnel, please refer to the relevant description in S402.

[0156] The first network device is further configured to use the first tunnel to forward the first packet to the second network device.

[0157] It should be noted that for information regarding the functions or implementation performed by the first network device, please refer to [link / reference needed]. Figure 4 The illustrated embodiment includes a description of the first network device.

[0158] In one specific implementation, the system further includes: a controller;

[0159] The controller is configured to receive a request message from the first network device to establish the first tunnel, and to determine the first tunnel based on the request information;

[0160] The controller is further configured to send a response message to the first network device, the response message including information about the first tunnel corresponding to the attribute information and the destination address;

[0161] The first network device is used to establish the first tunnel based on the information of the first tunnel.

[0162] For details regarding the functions or implementation performed by the controller, please refer to [link / reference]. Figure 3 or Figure 4 The following is a description of the controller in the illustrated embodiment.

[0163] This application also provides a computer-readable storage medium, including instructions or a computer program, which, when run on a computer, causes the computer to execute the message transmission method provided in the above embodiments.

[0164] This application also provides a computer program product containing instructions or computer programs, which, when run on a computer, causes the computer to execute the message transmission method provided in the above embodiments.

[0165] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0166] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0167] In the embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical business division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.

[0168] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0169] Furthermore, the various business units in the embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software business unit.

[0170] If the integrated unit is implemented as a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of 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.

[0171] Those skilled in the art will recognize that, in one or more of the examples above, the services described in this invention can be implemented using hardware, software, firmware, or any combination thereof. When implemented in software, these services can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transmission of computer programs from one place to another. Storage media can be any available medium accessible to general-purpose or special-purpose computers.

[0172] The above specific embodiments further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above are merely specific embodiments of the present invention.

[0173] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A message transmission method, characterized in that, The method includes: A first network device acquires a first packet, which includes attribute information, destination address, and network slice information. The attribute information is used to indicate the Service Level Agreement (SLA) requirements that need to be met when forwarding the service traffic to which the first packet belongs. The attribute information is carried in the priority field, flow label field, or time-to-live field of the first packet. The priority field includes any one of the following: service code field, service type field, differential service code point field, traffic category field, and experimental prefix field. The first network device reserves resources for the first tunnel based on the network slice information; The first network device establishes the first tunnel based on the attribute information and the destination address, or the first network device sends a request message to the controller to establish the first tunnel using the attribute information and the destination address. The first tunnel is a forwarding tunnel that meets the SLA requirements and is used to forward the first packet to the second network device, which determines the destination address.

2. The method according to claim 1, characterized in that, The first network device establishes a first tunnel based on the attribute information and the destination address, including: The first network device creates the first tunnel based on the attribute information and the destination address; or, The first network device locates and obtains the first tunnel locally based on the attribute information and the destination address.

3. The method according to claim 2, characterized in that, The method further includes: The first network device sends the information of the first tunnel from the control plane of the first network device to the forwarding plane.

4. The method according to claim 1, characterized in that, After the first network device sends a request message to the controller to establish the first tunnel using the attribute information and the destination address, the method includes: The first network device receives a response message sent by the controller, the response message including information about the first tunnel corresponding to the attribute information and the destination address.

5. The method according to any one of claims 1-4, characterized in that, The method further includes: The first network device determines that the first tunnel has not been used to forward packets within a preset time period, and deletes the first tunnel or changes its status to unused.

6. The method according to any one of claims 1-4, characterized in that, The first network device is the entrance network device of the first tunnel.

7. The method according to any one of claims 1-4, characterized in that, The exit network device of the first tunnel is the second network device, which is the device corresponding to the destination address, or the second network device is a device used to connect the destination device indicated by the destination address to the network.

8. The method according to claim 7, characterized in that, The method further includes: The first network device acquires a second packet, the second packet including the attribute information and the destination address, and the second packet belongs to the service traffic; The first network device establishes a second tunnel to the third network device based on the change of the device used to connect the destination device indicated by the destination address to the network from the second network device to the third network device, the attribute information, and the destination address; The first network device uses the second tunnel to forward the second packet to the third network device.

9. The method according to any one of claims 1-4, characterized in that, The first tunnel is either a segmented routing policy (SRPolicy) tunnel or a segmented routing traffic engineering (SRTE) tunnel.

10. The method according to any one of claims 1-4, characterized in that, The resources include at least one of the following: bandwidth, latency, quality of service queue, and physical port allocated to the service traffic to which the first message belongs.

11. A message transmission system, characterized in that, The system includes: a first network device and a second network device; The first network device is used to acquire a first packet, the first packet including attribute information, destination address and network slice information. The attribute information is used to indicate the Service Level Agreement (SLA) requirements that need to be met when forwarding the service traffic to which the first packet belongs. The attribute information is carried in the priority field, flow label field or time to live field of the first packet. The priority field includes any one of the following: service code field, service type field, differential service code point field, traffic category field and experimental prefix field. The first network device is also configured to reserve resources for the first tunnel based on the network slice information; The first network device is further configured to establish the first tunnel based on the attribute information and the destination address, or to send a request message to the controller to establish the first tunnel using the attribute information and the destination address, wherein the first tunnel is a forwarding tunnel that meets the SLA requirements, and to forward the first packet to the second network device using the first tunnel; The second network device is used to receive the first message.

12. The system according to claim 11, characterized in that, The system also includes: a controller; The controller is configured to receive a request message from the first network device to establish the first tunnel, and to obtain information about the first tunnel based on the request message; The controller is further configured to send a response message to the first network device, the response message including information about the first tunnel corresponding to the attribute information and the destination address; The first network device is used to establish the first tunnel based on the information of the first tunnel.

13. A communication device, the device comprising: Processor and memory; The memory is used to store instructions or computer programs; The processor is configured to execute the instructions or computer program in the memory to cause the communication device to perform the method according to any one of claims 1-10.

14. A computer-readable storage medium comprising instructions which, when executed on a computer, cause the computer to perform the method described in any one of claims 1-10.

Citation Information

Patent Citations

  • Data flow forwarding method and device in software defined network (SDN)

    CN104363170A

  • Method and network device for establishing BGP LSP tunnel

    CN105991385A

  • Data forwarding method and device, edge equipment and readable storage medium

    CN110430116A

  • Communication method and communication device

    CN114915519A