Path selection method, information processing method and apparatus

By receiving and utilizing the target object path performance information provided by the gateway in the user site egress device, and selecting the best path to access the target object, the problem of low access service quality of the user site egress device is solved, and the access speed and user experience are improved.

WO2025016249A1PCT designated stage expired Publication Date: 2025-01-23HUAWEI TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/104457
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-20
Filing Date
2024-07-09
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

When the user's site exit device directly accesses the target object through the Internet, the quality of the service obtained is not high, resulting in slow access speed and poor user experience.

Method used

Through a road selection method, the user site export equipment receives the identification information, path index and path performance measurement value of the target objects of the gateway, and select the target path of the target object according to the path performance measurement value, thereby improving the quality of service.

Benefits of technology

By selecting a path with better performance to access the target object, the access speed and service quality are significantly improved, and the user experience is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024104457_23012025_PF_FP_ABST
    Figure CN2024104457_23012025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses a path selection method, comprising: a first user site exit device receives identification information of a target object, a first path index, and a first path performance metric value that are advertised by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; and after receiving the identification information of the target object, the first path index, the first path performance metric value, on the basis of the first path performance metric value, the first user site exit device selects a target path for accessing the target object. Thus, according to the present solution, on the basis of the performance of the first path for the first gateway to access the target object, the first user site exit device can select the target path for accessing the target object, so that the selected target path can provide good quality of service. When the target object is accessed by means of the target path, good quality of service can be obtained, thereby improving the experience of accessing the target object.
Need to check novelty before this filing date? Find Prior Art

Description

A routing method, information processing method and device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on July 20, 2023, with application number 202310901434.8 and invention name “A routing method, information processing method and device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of communications, and in particular to a routing method, an information processing method, and a device. Background Art

[0003] With the widespread adoption of enterprise information technology (IT) architectures and public clouds, more and more companies are abandoning traditional closed IT architectures and shifting their infrastructure (e.g., data centers) to the cloud, thereby adopting open network architectures. To further achieve this goal, companies are migrating critical applications and software systems to the cloud. In this context, companies are increasingly relying on software-as-a-service (SaaS) applications provided by application providers, and tend to access these critical applications from the cloud via the internet. SaaS is a software delivery model in which software is available over the internet, eliminating the need for traditional installation steps. The software and its associated data are centrally hosted on a cloud service. Users typically access and store SaaS using a streamlined client, typically a web browser. The key feature of SaaS is that the software itself is not downloaded to the user's hard drive, but rather stored on the provider's cloud or servers. Compared to traditional software, which requires purchasing and downloading, SaaS requires users to rent the software and use it online, significantly reducing the purchase risk and eliminating the need to download the software itself, with no device requirements.

[0004] Devices at user sites can access desired targets, such as data centers and SaaS applications, through the Internet. However, currently, when these devices directly access their desired targets through the Internet, the quality of service they receive is low. For example, due to high Internet traffic, packet loss, latency, and jitter, these devices can access SaaS applications slowly, resulting in a poor user experience.

[0005] Therefore, a solution is urgently needed to solve the above problems.

[0006] Summary of the Invention

[0007] The embodiments of the present application provide a routing method, an information notification method, and an apparatus, which can improve the service quality obtained by a user site egress device accessing a target object and enhance the access experience.

[0008] In a first aspect, an embodiment of the present application provides a routing method, which can be applied to a first user site egress device. The first user site egress device can receive identification information, a first path index, and a first path performance metric value of a target object announced by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path. After the first user site egress device receives the identification information, the first path index, and the first path performance metric value of the target object, it can select a target path for accessing the target object based on the first path performance metric value. In one example, when the performance of the first path is better than the performance of other paths, a path including the first path can be selected as the target path for accessing the target object. The other paths mentioned here can be a path for directly accessing the target object through the first user site egress device, other paths for the first gateway to access the target object, or paths for other gateways, such as a second gateway, to access the target object. It can be seen that, by utilizing the solution of the embodiment of the present application, the first user site exit device can select the target path for accessing the target object based on the performance of the first path for accessing the target object by the first gateway, so that the selected target path can provide better service quality. Accordingly, when accessing the target object through the target path, better service quality can be obtained, thereby improving the access experience of accessing the target object.

[0009] In one possible implementation, after the first user site egress device receives the identification information, the first path index, and the first path performance metric value of the target object announced by the first gateway, it can save the correspondence between the identification information of the target object, the path index 1, and the path performance metric value 1, so as to facilitate subsequent selection of a target path for accessing the target object based on the correspondence.

[0010] In one possible implementation, the target object is a SaaS application. Utilizing the solution of the embodiment of the present application, a target path with better performance can be selected to access the SaaS application, thereby improving the access experience of the SaaS application, for example, increasing the speed of accessing the SaaS application.

[0011] In a possible implementation, the target object is a data center. Utilizing the solution of the embodiment of the present application, the access experience of accessing the data center can be improved.

[0012] In one possible implementation, the target object's identification information is used to identify the target object. The target object's identification information may be a global identifier for the target object or other information that can be used to identify the target object. As an example, when the target object is a SaaS application, the target object's identification information may include an application ID, an application name, and / or an application domain name. When the target object is a data center, the target object's identification information may be the data center's IP address and tenant identifier.

[0013] In one possible implementation, the first path index is a path number of the first path. For example, the paths for the first gateway to access the target object can be numbered, with each path corresponding to a number. In another possible implementation, the first path index can be a Multi-Protocol Label Switching (MPLS) label assigned by the first gateway to the first path. In another possible implementation, the first path index can be an Internet Protocol Version 6 Segment Routing Segment Identifier (SRv6 SID) assigned by the first gateway to the first path.

[0014] In one possible implementation, when the first path index is an SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and sends the message to the target object according to the outgoing interface corresponding to the SRv6 SID. When the target object is a SaaS application, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outgoing interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outgoing interface corresponding to the SRv6 SID.

[0015] In one possible implementation, the first gateway may notify the first user site egress device of the aforementioned target object's identification information, first path index, and first path performance metric value via a first route. In other words, in one example, when the first site egress device receives the target object's identification information, first path index, and first path performance metric value announced by the first gateway, it may receive a first route announced by the first gateway, where the first route includes the target object's identification information, the first path index, and the first path performance metric value. In this way, the first user site egress device can obtain the first path performance metric value based on the first route and further select a target path for accessing the target object based on the first path performance metric value, thereby improving the access experience for the target object.

[0016] In one possible implementation, the first route may include indication information indicating the type of the first path index carried in the first route. The type of the first path index may be the aforementioned path number, MPLS label, or SRv6 SID. For example, the first route includes a path index type field, and the path index type field carries indication information indicating the type of the first path index. In this case, the first customer site egress device may determine the type of the first path index based on the indication information.

[0017] In one possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object. The first user site egress device may determine, based on the route type field, that the first route is used to advertise the performance of the path to the target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route; when the target object is a data center, the path performance route may be a data center path performance route.

[0018] In one possible implementation, the first route may be a route based on a software-defined wide area network (SD-WAN) address family or an SD-WAN sub-address family announcement. For example, if the first gateway and the first user site egress device enable the SD-WAN address family, the first route may be a route based on an SD-WAN address family announcement. For another example, if the first gateway and the first user site egress device enable the SD-WAN sub-address family, the first route may be a route based on an SD-WAN sub-address family announcement. In a specific example, if the target object is a SaaS application, the first route is a route based on an SD-WAN address family or an SD-WAN sub-address family announcement.

[0019] In a possible implementation, the first route may be a virtual private network (VPN) route. In a specific example, if the target object is a data center, the first route is a VPN route.

[0020] In one possible implementation, the first user site device may also receive the site identifier, application type, and node ID of the site to which the first gateway belongs, as announced by the first gateway, so that the first user site egress device can obtain richer information. The site identifier of the site to which the first gateway belongs may be the identifier of the gateway site to which the first gateway belongs. The application type may indicate at least one type of traffic quality of service requirement supported by the target object. The traffic quality of service requirement may include: optimal, allowed, and default. Optimal requires the use of the optimal path, allowing the quality of service requirement to be lower than optimal, and default indicates no special quality of service requirement.

[0021] In one possible implementation, the first path performance metric may include at least one metric indicating the performance of the first path. Considering that delay, packet loss rate, jitter, bandwidth, path status and service experience (quality of experience, QoE) can all reflect the performance of the path 1. Therefore, in one example, the first path performance metric may include one or more of delay, packet loss rate, jitter, bandwidth, path status and QoE. In one example: the path status may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth. In another example, the QoE may be determined, for example, based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the QoE may be a specific numerical value. The higher the numerical value corresponding to the QoE, the better the performance of the path.

[0022] In one possible implementation, if the first gateway can notify the identification information of the aforementioned target object, the first path index, and the first path performance metric to the first user site egress device through a first route, the first route may include at least one of a first sub-type length value (Sub-TLV) indicating a transmission delay of the first path, a second Sub-TLV indicating a packet loss rate of the first path, a third Sub-TLV indicating jitter of the first path, a fourth Sub-TLV indicating a bandwidth of the first path, a fifth Sub-TLV indicating a path status of the first path, a sixth Sub-TLV indicating the QoE of the first path, a seventh Sub-TLV indicating a name of the target object, and an eighth Sub-TLV indicating a domain name of the target object.

[0023] In one possible implementation, the at least one Sub-TLV may be carried in a Border Gateway Protocol (BGP) path attribute of the first route. For example, the at least one Sub-TLV may be carried in a Metadata Path Attribute or a Tunnel Encapsulation Attribute of the first route.

[0024] In another possible implementation, the at least one Sub-TLV may be carried in network layer reachability information (NLRI) of the first route.

[0025] In one possible implementation, the first user site egress device may also receive identification information of the target object, a second path index, and a second path performance metric value notified by the second gateway, wherein the second path index identifies the second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path. Accordingly, when selecting a target path, the first user site egress device may select the target path for accessing the target object based on the first path performance metric value and the second path performance metric value. For example, when the performance of the second path is inferior to that of the first path, the path including the second path is preferably determined as the target path. In this way, the first user site egress device can select a target path with better performance as much as possible, thereby effectively improving the access experience of accessing the target object.

[0026] In one possible implementation, the first gateway and the second gateway may belong to the same gateway site. The first gateway and the second gateway belong to the same site, and the gateways of the gateway site constitute a cluster gateway. The cluster gateway may include multiple gateways, and the first gateway and the second gateway may be two gateways in the cluster gateway.

[0027] In one possible implementation, the second gateway may notify the first user site device of the target object's identification information, the second path index, and the second path performance metric value via a second route. In other words, when the first user site egress device receives the target object's identification information, the second path index, and the second path performance metric value notified by the second gateway, it may receive a second route notified by the second gateway, where the second route includes the target object's identification information, the second path index, and the second path performance metric value.

[0028] In one possible implementation, the second path index is: the path number of the second path, the MPLS label assigned to the second path by the second gateway, or the SRv6 SID assigned to the second path by the second gateway. In one possible implementation, when the target object is a SaaS application and the second path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, and the END.DT2SaasPath indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0029] In a possible implementation, the second route further includes indication information, where the indication information is used to indicate a type of the second path index carried in the second route, where the type is a path number, an MPLS label, or an SRv6 SID.

[0030] In a possible implementation, the route type field of the second route indicates that the second route is a path performance route associated with the target object.

[0031] In one possible implementation, the second route is a route announced based on the SD-WAN address family or the SD-WAN sub-address family.

[0032] In one possible implementation, the first user site egress device may further receive identification information of the target object, a third path index, and a third path performance metric value notified by the second user site egress device. The third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates the performance of the third path. Accordingly, when selecting a target path, the first user site egress device may select a target path for accessing the target object based on the first path performance metric value and the third path performance metric value. For example, based on the first path performance metric value and the third performance metric value, a path with better performance may be selected as the target path.

[0033] In one possible implementation, the second user site egress device may notify the first user site device of the target object's identification information, the third path index, and the third path performance metric value via a first protocol message. In other words, the first user site egress device receives the target object's identification information, the third path index, and the third path performance metric value notified by the second user site egress device. In a specific implementation, the first user site egress device may receive a first protocol message notified by the second user site egress device, the first protocol message including the target object's identification information, the third path index, and the third path performance metric value.

[0034] In one possible implementation, the first user site egress device and the second user site egress device may belong to the same user site. The user site egress devices of the user site constitute a cluster egress device, which may include multiple user site egress devices. The first user site egress device and the second user site egress device may be two of the user site egress devices in the cluster egress device. The aforementioned first protocol message may be a protocol message exchanged between user site egress devices within the cluster egress devices.

[0035] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.

[0036] In a possible implementation, the first user site egress device accesses the first gateway through the Internet.

[0037] In one possible implementation, when the first gateway can also access the target object via a fourth path, the first user site egress device may receive identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway. The fourth path index identifies the fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path. Accordingly, when selecting a target path, the first user site egress device may select a target path for accessing the target object based on the first path performance metric value and the fourth path performance metric value. For example, based on the first path performance metric value and the fourth performance metric value, the path with better performance may be selected as the target path.

[0038] In one possible implementation, the receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value announced by the first gateway includes: receiving a third route announced by the first gateway, the third route including the identification information of the target object, the fourth path index, and the fourth path performance metric value.

[0039] In one possible implementation, the first user site egress device may further notify the second user site egress device of identification information of the target object, a fifth path index, and a fifth path performance metric value. The fifth path index identifies a fifth path for the first user site egress device to access the target object via the Internet, and the fifth path performance metric value indicates the performance of the fifth path. This allows the second user site egress device to select a target path for accessing the target object based on the fifth path performance metric value when selecting a target path.

[0040] In one possible implementation, the first user site egress device and the second user site egress device may also mutually notify each other of the performance of the path between themselves and the gateway site, so as to better select the target path for accessing the target object. For example, the first user site egress device and the second user site egress device may mutually notify each other of the performance of the SD-WAN tunnel path between themselves and the first gateway. In another example, the first user site egress device and the second user site egress device may mutually notify each other of the performance of the SD-WAN tunnel path between themselves and the second gateway.

[0041] In one possible implementation, the first user site egress device may receive a first service message for accessing the target object. The first service message may be encapsulated with a target path index identifying the target path to obtain a second service message. After obtaining the second service message, the first user site egress device may send the second service message. The target path index is used to indicate the target path for accessing the target object. Using this solution, the target path index of the target path for accessing the target object may be encapsulated in the service message, allowing the forwarding device to access the target object based on the target path, thereby improving the access experience of the target object.

[0042] In a possible implementation, the second service message may use Generic Routing Encapsulation (GRE). In this case, the second service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the target path index.

[0043] In a specific example, when the target path index is an MPLS label, the second service packet may be encapsulated using the MPLS in GRE protocol. In this case, the second service packet includes an outer Internet Protocol (IP) header, a GRE header, and a payload. The GRE header includes an MPLS label stack, the MPLS label stack includes the target path index, and the payload includes the first service packet. In one example, the target path index may be the bottom label of the MPLS label stack.

[0044] In another specific example, when the target path index is an SRv6 SID, the second service packet may be encapsulated using the SRv6 in GRE protocol. In this case, the second service packet includes an outer IP header, a GRE header, and a payload. The GRE header includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload includes the first service packet. In one example, the target path index may be the last SID in the SRv6 SID list.

[0045] In one possible implementation, when the target path index is an MPLS label, the second service packet may be encapsulated using MPLS in User Datagram Protocol (UDP). In this case, the second service packet includes an outer IP header, a UDP header, an MPLS label stack, and a payload. The MPLS label stack includes the target path index, and the payload includes the first service packet. The MPLS label stack is located between the UDP header and the payload. In one example, the target path index may be the bottom label of the MPLS label stack.

[0046] In one possible implementation, when the target path index is an SRv6 SID, the second service message may be encapsulated using the SRv6in Generic Network Virtualization Encapsulation (GENEVE) protocol. In this case, the second service message includes an outer IP header, a GENEVE header, and a payload. The GENEVE header includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload includes the first service message. In a specific example, the target path index may be the last SID in the SRv6 SID list.

[0047] In one possible implementation, the first user site egress device can receive a first service message. In a specific implementation, it can also receive a first service message sent by a second user site device. Specifically, the first user site egress device can receive a third service message sent by the second user site egress device, where the third service message includes the first service message and a second path index. In this case, in one example, if the path from the first user site egress device to the second gateway is reachable, the first user site egress device can determine the second path index as the target path index and encapsulate the first service message with the target path index to obtain the second service message, thereby achieving access to the target object through the second gateway via the second path. In another example, if the first user site egress device determines that the path to the second gateway is unreachable, the first user site egress device can reselect a target path for accessing the target object and further encapsulate the first service message with the target path index to obtain the second service message. For example, the first user site egress device selects the first path or the fourth path for accessing the target object through the aforementioned first gateway, and further encapsulates the first service message with the first path index or the fourth path index to obtain the second service message.

[0048] In one possible implementation, the third service message may include an IP header and a payload, the payload including the first service message, and a second path index between the IP header and the payload. In this case, the third service message is encapsulated in a simple manner and does not use GRE or GENEVE for encapsulation. This simplifies the encapsulation of the third service message and reduces the performance overhead required to transmit the service message between user sites.

[0049] In another possible implementation, the first user site egress device may receive a first service message sent by a user device, such as a user terminal, and further encapsulate the first service message with a target path index of a target path selected by the first user site egress device to obtain a second service message.

[0050] In one possible implementation, when the first user site egress device sends the second service message, the second service message can be sent to the first gateway through the path established between the first user site egress device and the first gateway; or, the second service message can be sent to the second user site egress device to forward the second service message through the second user site egress device.

[0051] In a second aspect, an embodiment of the present application provides an information notification method, which can be applied to a first gateway. The first gateway can obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates the performance of the first path. After the first gateway obtains the first path performance metric value, it can notify the first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value, where the first path index identifies the first path. Thus, it can be seen that the first gateway can notify the first user site egress device of the first path performance metric value of its own access to the target object. In this way, the first user site egress device can select a target path for accessing the target object based on the performance of the first path for the first gateway to access the target object, so that the selected target path can provide better service quality. Accordingly, when accessing the target object through the target path, better service quality can be obtained, thereby improving the access experience of accessing the target object.

[0052] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0053] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0054] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0055] In one possible implementation, notifying a first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the first user site egress device of a first route, where the first route includes the identification information of the target object, the first path index, and the first path performance metric value.

[0056] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

[0057] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0058] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0059] In a possible implementation, the method further includes: notifying the first user site egress device of a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway.

[0060] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0061] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0062] In a possible implementation manner, the method further includes: notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.

[0063] In one possible implementation, notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the second user site egress device of a second route, where the second route includes the identification information of the target object, the first path index, and the first path performance metric value.

[0064] In a possible implementation manner, the method further includes: notifying the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.

[0065] In one possible implementation, the method further includes: obtaining a second path performance metric value of a second path for the first gateway to access a target object, where the second path performance metric value indicates performance of the second path; and notifying the first user site egress device of identification information of the target object, a second path index, and the second path performance metric value, where the second path index identifies the second path.

[0066] In one possible implementation, notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: notifying the first user site egress device of a third route, where the third route includes the identification information of the target object, the second path index, and the second path performance metric value.

[0067] In a possible implementation, the method further includes: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; and forwarding the first service message through the first path according to the first path index.

[0068] In a possible implementation, the encapsulated first service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the first path label.

[0069] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0070] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

[0071] In a third aspect, an embodiment of the present application provides a routing device, which may include a transceiver unit and a processing unit; the transceiver unit is used to perform the receiving and / or sending operations performed by the first user site exit device as described in the first aspect above; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first user site exit device as described in the first aspect above.

[0072] In a specific example, the routing device includes a receiving unit and a processing unit. The receiving unit is configured to receive identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path. The processing unit is configured to select a target path for accessing the target object based on the first path performance metric value.

[0073] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0074] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0075] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0076] In a possible implementation, the receiving unit is configured to receive a first route advertised by the first gateway, where the first route includes identification information of the target object, the first path index, and the first path performance metric.

[0077] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.

[0078] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0079] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0080] In a possible implementation manner, the receiving unit is further configured to receive a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway, which are announced by the first gateway.

[0081] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0082] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0083] In one possible implementation, the receiving unit is further configured to: receive identification information, a second path index, and a second path performance metric value of the target object announced by the second gateway, where the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; and the processing unit is configured to: select the target path for accessing the target object based on the first path performance metric value and the second path performance metric value.

[0084] In a possible implementation, the receiving unit is configured to receive a second route advertised by the second gateway, where the second route includes identification information of the target object, the second path index, and the second path performance metric.

[0085] In one possible implementation, the receiving unit is further configured to: receive identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates performance of the third path; and the processing unit is configured to: select a target path for accessing the target object based on the first path performance metric value and the third path performance metric value.

[0086] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.

[0087] In one possible implementation, the receiving unit is further configured to receive identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, where the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates performance of the fourth path; and the processing unit is configured to select a target path for accessing the target object based on the first path performance metric value and the fourth path performance metric value.

[0088] In a possible implementation, the receiving unit is configured to receive a third route advertised by the first gateway, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric.

[0089] In one possible implementation, the receiving unit is further used to: receive a first business message for accessing the target object; the processing unit is further used to encapsulate the first business message with a target path index that identifies the target path to obtain a second business message; the device also includes a sending unit for sending the second business message.

[0090] In a possible implementation, the second service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the target path index.

[0091] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol (UDP) header, an MPLS label stack, and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0092] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.

[0093] In one possible implementation, the sending unit is used to: send the second service message to the first gateway through the path established between the first user site egress device and the first gateway; or send the second service message to the second user site egress device to forward the second service message through the second user site egress device.

[0094] In one possible implementation, the receiving unit is configured to: receive a third service message from a second user site egress device, where the third service message includes the first service message and a second path index, where the second path index identifies a second path for the second gateway to access the target object; and the processing unit is configured to: in response to determining that the path to the second gateway is unreachable, encapsulate the first service message with the target path index to obtain the second service message; or, determine the second path index as the target path index, and encapsulate the first service message with the target path index to obtain the second service message.

[0095] In a possible implementation, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.

[0096] In a possible implementation manner, the processing unit is further configured to: save a correspondence between the identification information of the target object, the first path index, and the first path performance metric value.

[0097] In a fourth aspect, an embodiment of the present application provides an information notification device, which may include a transceiver unit and a processing unit; the transceiver unit is used to perform the receiving and / or sending operations performed by the first gateway as described in the second aspect above; the processing unit is used to perform operations other than the receiving and / or sending operations performed by the first gateway as described in the second aspect above.

[0098] In a specific example, the information notification apparatus includes a processing unit and a sending unit. The processing unit is configured to obtain a first path performance metric value of a first path for the first gateway to access a target object, the first path performance metric value indicating the performance of the first path; and the sending unit is configured to notify a first user site egress device of identification information of the target object, a first path index, and the first path performance metric value, the first path index identifying the first path.

[0099] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0100] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0101] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0102] In a possible implementation, the sending unit is configured to notify the first user site egress device of a first route, where the first route includes identification information of the target object, the first path index, and the first path performance metric.

[0103] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

[0104] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0105] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0106] In a possible implementation, the sending unit is further configured to notify the first user site egress device of the site identifier of the site to which the first gateway belongs, the application type, and the node ID of the first gateway.

[0107] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0108] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0109] In a possible implementation manner, the sending unit is further configured to: notify the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.

[0110] In a possible implementation, the sending unit is configured to notify the second user site egress device of a second route, where the second route includes identification information of the target object, the first path index, and the first path performance metric.

[0111] In a possible implementation manner, the sending unit is further configured to: notify the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.

[0112] In one possible implementation, the processing unit is further configured to: obtain a second path performance metric value of a second path for the first gateway to access a target object, where the second path performance metric value indicates performance of the second path; and the sending unit is further configured to notify the first user site egress device of identification information of the target object, a second path index, and the second path performance metric value, where the second path index identifies the second path.

[0113] In a possible implementation, the sending unit is configured to notify the first user site egress device of a third route, where the third route includes identification information of the target object, the second path index, and the second path performance metric.

[0114] In one possible implementation, the device further includes: a receiving unit for receiving an encapsulated first business message, wherein the outer layer of the first business message is encapsulated with the first path index; and the sending unit is further used to forward the first business message through the first path according to the first path index.

[0115] In a possible implementation, the encapsulated first service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the first path label.

[0116] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0117] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

[0118] In a fifth aspect, an embodiment of the present application provides a communication device, characterized in that it includes: a processor and a memory;

[0119] The memory is used to store instructions; the processor is used to execute the instructions, so that the communication device executes the method described in the first aspect and any one of the first aspects above, or causes the communication device to execute the method described in the second aspect and any one of the second aspects above.

[0120] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, comprising instructions or a computer program. When the instructions or computer program are executed on a processor, the method described in the first aspect and any one of the first aspects is implemented, or the method described in the second aspect and any one of the second aspects is implemented.

[0121] In the seventh aspect, an embodiment of the present application provides a computer program product, including a computer program product, which, when running on a processor, implements the method described in the first aspect and any one of the first aspects, or implements the method described in the second aspect and any one of the second aspects.

[0122] In an eighth aspect, an embodiment of the present application provides a communication system, which includes a first user site egress device that executes the method described in the first aspect and any one of the first aspects, and a first gateway that executes the method described in the second aspect and any one of the second aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0123] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments recorded in this application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0124] FIG1a is a schematic diagram of an exemplary application scenario provided by an embodiment of the present application;

[0125] FIG1b is a schematic diagram of another exemplary application scenario provided by an embodiment of the present application;

[0126] FIG1c is a schematic diagram of another exemplary application scenario provided by an embodiment of the present application;

[0127] FIG2 is a signaling interaction diagram of a routing method provided in an embodiment of the present application;

[0128] FIG3a is a schematic diagram of the structure of an MP_REACH_NLRI provided in an embodiment of the present application;

[0129] FIG3 b is a schematic diagram of the structure of a sub-TLV1 provided in an embodiment of the present application;

[0130] FIG3c is a schematic diagram of the structure of a sub-TLV2 provided in an embodiment of the present application;

[0131] FIG3 d is a schematic diagram of the structure of a sub-TLV3 provided in an embodiment of the present application;

[0132] FIG3e is a schematic diagram of the structure of a sub-TLV4 provided in an embodiment of the present application;

[0133] FIG3f is a schematic diagram of the structure of a sub-TLV5 provided in an embodiment of the present application;

[0134] FIG3g is a schematic diagram of the structure of a sub-TLV6 provided in an embodiment of the present application;

[0135] FIG3h is a schematic diagram of the structure of a sub-TLV7 provided in an embodiment of the present application;

[0136] FIG3i is a schematic diagram of the structure of a sub-TLV8 provided in an embodiment of the present application;

[0137] FIG3j is a schematic diagram of the structure of an MP_REACH_NLRI provided in an embodiment of the present application;

[0138] FIG3k is a schematic diagram of the structure of a protocol message provided in an embodiment of the present application;

[0139] FIG4 is a schematic diagram of a flow chart of a message forwarding method provided in an embodiment of the present application;

[0140] FIG5a is a schematic diagram of the structure of a service message 2 provided in an embodiment of the present application;

[0141] FIG5b is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;

[0142] FIG5c is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;

[0143] FIG5 d is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;

[0144] FIG5e is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;

[0145] FIG5f is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application;

[0146] FIG6 is a schematic diagram of an exemplary application scenario provided by an embodiment of the present application;

[0147] FIG7 a is a schematic diagram of a flow chart of a routing method provided in an embodiment of the present application;

[0148] FIG7 b is a flow chart of an information notification method provided in an embodiment of the present application;

[0149] FIG8a is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0150] FIG8b is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0151] FIG9 is a schematic structural diagram of a communication device provided in an embodiment of the present application;

[0152] FIG10 is a schematic structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0153] The embodiments of the present application provide a routing method, an information notification method, and an apparatus.

[0154] For ease of understanding, the possible application scenarios of the embodiments of the present application are first introduced.

[0155] Refer to Figure 1a, which is a schematic diagram of an exemplary application scenario provided by an embodiment of the present application. As shown in Figure 1a, the user site egress device 110 of the user site can access the target object 130 through a direct internet access (DIA) link 111 or 112 connected to the user site egress device 110. In addition, the gateway within the gateway site has strong capabilities and can provide services for the user site egress device to access the target object. Specifically, as shown in Figure 1a: the user site egress device 110 can access the target object 130 through the gateway site. As an example, in Figure 1a, the user site egress device 110 can access the target object 130 through a path 121 connected to the gateway 120 of the gateway site. As another example, the user site egress device 110 can access the target object 130 through a path 122 connected to the gateway 120. The present application does not limit the specific method in which the user site egress device 110 accesses the gateway 120. For example, the user site egress device 110 can access the gateway 120 through the Internet, or access the gateway 120 through an SD-WAN tunnel.

[0156] In one example, in addition to gateway 120, the gateway site may also include gateway 140, as shown in FIG1b , which is a schematic diagram of another exemplary application scenario provided by an embodiment of the present application. In this scenario, as an example, user site egress device 110 may access target object 130 via path 141 connected to gateway 140. As another example, user site egress device 110 may access target object 130 via path 142 connected to gateway 140.

[0157] In some embodiments, gateways 120 and 140 within the gateway site may form a cluster gateway, and multiple gateways within the cluster gateway may communicate via a protocol within the cluster. Furthermore, the number of gateways within a gateway site is not limited to the two shown in FIG1b ; in addition to gateways, the gateway site may also include network devices with other roles.

[0158] In another example, in addition to the user site egress device 110, the user site may also include a user site egress device 150, as shown in FIG1c , which is a schematic diagram of another exemplary application scenario provided by an embodiment of the present application. The user site egress device 150 can access the target object 130 via a DIA link 151 or 152 connected to the user site egress device 150. The user site egress device 150 can also access the target object 130 via a gateway site. For example, the user site egress device can access the target object 130 via a path 121 or a path 122 connected to the gateway 120. For another example, the user site egress device can access the target object 130 via a path 141 or a path 142 connected to the gateway 140.

[0159] In some embodiments, the user site egress devices 110 and 150 within the user site may form a cluster egress device. Multiple user site egress devices within the cluster egress device may communicate using a protocol within the cluster. Furthermore, the number of user site egress devices within a user site is not limited to the two shown in FIG1c .

[0160] The user site egress equipment shown in FIG. 1 a to FIG. 1 c may be, for example, customer-premises equipment (CPE) at a branch site.

[0161] The target object shown in FIG. 1 a to FIG. 1 c may be, for example, a data center or a SaaS application.

[0162] At present, when accessing a target object, the user site egress device can select a path to access the target object based on the performance of the path to the target object detected locally. Taking the user site egress device 110 as an example, the user site egress device 110 can determine the path to access the target object 130 based on the performance of the DIA link 111 detected by itself, the performance of the DIA link 112, and the performance of the DIA link or SD-WAN tunnel between itself and the gateway site. However, using this method, the determined path may not be the most reasonable path. Accordingly, when accessing the target object 130 using the selected path, the service quality obtained is not good. Because the user site egress device cannot know the path performance between the gateway site and the target object, the gateway site egress device cannot accurately select a better path to access the target object.

[0163] In view of this, embodiments of the present application provide a routing method and information notification method, enabling user site egress devices to select a path to access a target object based on the performance of the path used by the gateway to access the target object. This ensures that the selected target path provides better service quality and enhances the access experience. The following describes the method provided by embodiments of the present application in conjunction with the accompanying drawings.

[0164] Referring to Figure 2, which is a signaling interaction diagram of a routing method provided by an embodiment of the present application, the routing method 100 shown in Figure 2 may include the following steps S101-S104.

[0165] In an embodiment of the present application, the method 100 shown in FIG. 2 can be applied to the application scenario shown in FIG. 1 a , FIG. 1 b , or FIG. 1 c .

[0166] When method 100 is applied to the scenario shown in FIG. 1a , the gateway 1 may correspond to the gateway 120 shown in FIG. 1a , the user site egress device may correspond to the user site egress device 110 shown in FIG. 1a , and the path 1 may be the path 121 or the path 122 shown in FIG. 1a .

[0167] When method 100 is applied to the application scenario shown in FIG1b , in one example, gateway 1 may correspond to gateway 120 shown in FIG1b , the user site egress device may correspond to user site egress device 110 shown in FIG1b , and path 1 may be path 121 or path 122 shown in FIG1b . In another example, gateway 1 may correspond to gateway 140 shown in FIG1b , the user site egress device may correspond to user site egress device 110 shown in FIG1b , and path 1 may be path 141 or path 142 shown in FIG1b .

[0168] When method 100 is applied to the application scenario shown in FIG1c , in one example, gateway 1 may correspond to gateway 120 shown in FIG1c , the user site egress device may correspond to user site egress device 110 or user site egress device 150 shown in FIG1c , and path 1 may be path 121 or path 122 shown in FIG1c . In another example, gateway 1 may correspond to gateway 140 shown in FIG1c , the user site egress device may correspond to user site egress device 110 or user site egress device 150 shown in FIG1c , and path 1 may be path 141 or path 142 shown in FIG1c .

[0169] S101: Gateway 1 obtains path performance metric value 1 of path 1 for gateway 1 to access a target object, where the path performance metric value 1 indicates the performance of path 1.

[0170] In one example, the gateway 1 may detect the performance of the path 1, thereby obtaining a path performance metric 1 indicating the performance of the path 1. The embodiment of the present application does not specifically limit the specific implementation method of the gateway 1 detecting the performance of the path 1. In one example, the gateway 1 may detect the performance of the path 1 through data packets or protocol packets, thereby obtaining one or more performance parameters such as latency, packet loss rate, jitter, and bandwidth.

[0171] In an embodiment of the present application, the path performance metric value 1 may include at least one metric value for indicating the performance of path 1. Considering that delay, packet loss rate, jitter, bandwidth, path status and QoE can all reflect the performance of path 1. Therefore, in one example, the path performance metric value 1 may include one or more of delay, packet loss rate, jitter, bandwidth, path status and QoE. In one example: the path status may be determined based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the path status includes but is not limited to: best, good, acceptable and issue. In another example, the QoE may be determined based on performance parameters such as delay, packet loss rate, jitter and bandwidth, and the QoE may be a specific value, such as 75, 80, or 85, etc. The higher the value corresponding to the QoE, the better the performance of the path.

[0172] S102: Gateway 1 notifies identification information of the target object, path index 1 and path performance metric 1 to user site egress device 1, where path index 1 identifies path 1.

[0173] S103 : The user site egress device 1 receives the identification information of the target object, the path index 1 , and the path performance metric value 1 notified by the gateway 1 .

[0174] After obtaining path performance metric value 1 of path 1, gateway 1 may notify user site egress device 1 of the identification information of the target object, path index 1 identifying path 1, and path performance metric value 1. Accordingly, user site egress device 1 may receive the identification information of the target object, path index 1, and path performance metric value 1 notified by gateway 1.

[0175] The target object's identification information is used to identify the target object. This identification information can be the target object's global identifier or other information that can be used to identify the target object. As an example, when the target object is a SaaS application, the identification information can include the application ID, application name, and / or application domain name. When the target object is a data center, the identification information can be the data center's IP address and tenant identifier.

[0176] Path index 1 is used to identify path 1. Path index 1 can be any information that can identify path 1. Path index 1 can be used to identify the outbound interface for accessing the target object. In other words, the gateway device can determine the outbound interface for accessing the target object based on path index 1. In one example, path index 1 can be the path number of path 1. For example, multiple paths for gateway 1 to access the target object can be numbered in sequence, with each path corresponding to a path number. The path number can be a local number or a global number. In another example, path index 1 can be the MPLS label assigned by gateway 1 to path 1. In another example, path index 1 can be the SRv6 SID assigned by gateway 1 to path 1.

[0177] When path index 1 is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and forward the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is End.DT2SaaSPath, which indicates that the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0178] As an example, gateway 1 may notify user site egress device 1 of the aforementioned target object's identification information, path index 1, and path performance metric value 1 via a protocol message. This embodiment of the present application does not specifically limit the protocol message. In a specific example, gateway 1 may notify user site egress device 1 of the target object's identification information, path index 1, and path performance metric value 1 by notifying user site egress device 1 of route 1. In other words, gateway 1 may notify user site egress device 1 of route 1, where route 1 includes the target object's identification information, path index 1, and path performance metric value 1. Accordingly, user site egress device 1 may receive route 1 notified by gateway 1.

[0179] In one example, gateway 1 may announce the route 1 to user site egress device 1 via Multi-Protocol Extensions for BGP (MP-BGP). Gateway 1 may announce BGP message 1 to user site egress device 1. The BGP message 1 includes Multi-Protocol reach network layer reachability information (MP_REACH_NLRI), and MP_REACH_NLRI is used to carry route 1. In one example, the structure of MP_REACH_NLRI is shown in Figure 3a, which is a schematic diagram of the structure of an MP_REACH_NLRI provided in an embodiment of the present application. As shown in Figure 3a, the MP_REACH_NLRI includes an address family identifier (AFI), a subsequent address family identifier (SAFI), a next hop information length field, a next hop information field, and an NLRI domain.

[0180] As an example, the AFI field can identify the network layer protocol. For example, the value of the AFI field is 1 to identify IPv4, and the value of the AFI field is 2 to identify IPv6. The value of the AFI field can refer to the relevant description of the address family number in the request for comments (RFC) 1700, which is not described in detail here. The SAFI field identifies the type of the sub-address family. For example, the value of the SAFI field is 1 to identify unicast, the value of the SAFI field is 2 to identify multicast, the value of the SAFI field is 74 to identify SD-WAN, and the value of the SAFI field is 128 to identify a virtual private network (VPN).

[0181] In one example, the aforementioned next-hop network address may refer to the network address of the next device on the path to the destination device.

[0182] In an example, the NLRI field may include one or more NLRIs, each NLRI includes a length field and an NLRI value field, and the specific content of the NLRI value may be determined according to a combination of the AFI field and the SAFI field.

[0183] The NLRI information field includes a route type field, a length field, and a type-specific value field. The route type field indicates the route type, the length field is the length of the type-specific value field, and the type-specific value field carries a value corresponding to the type of route type field. In this embodiment of the present application, the type indicated by the route type field is path performance routing.

[0184] In one example, route 1 may include indication information 1, which indicates the type of path index 1 carried in route 1. The type of path index 1 may include the aforementioned path number, MPLS label, or SRv6 SID. In this case, user site egress device 1 may determine the type of path label 1 identifying path 1 based on indication information 1.

[0185] In one example, the route type field of route 1 may indicate that route 1 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route; when the target object is a data center, the path performance route may be a data center path performance route.

[0186] In one example, an SD-WAN tunnel can be established between the gateway 1 and the user site egress device 1. In a specific example, the gateway 1 and the user site egress device 1 can enable the SD-WAN address family. In this case, the route 1 can be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 1 and the user site egress device 1 can enable the SD-WAN sub-address family. In this case, the route 1 can be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.

[0187] In one example, the gateway 1 may also notify other information to the user site egress device 1, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 1 may notify the user site egress device 1 of the site identifier, application type, and node identifier of the gateway 1 of the site to which the gateway 1 belongs.

[0188] The site to which the gateway 1 belongs may be the gateway site described by the gateway 1 .

[0189] The application type indicates at least one type of traffic quality of service requirement supported by the target object. The traffic quality of service requirements can be: optimize, allow, and default. Optimize requires the use of the optimal path, allows for a quality of service requirement lower than optimal, and default indicates no special quality of service requirement.

[0190] The node identifier of the gateway 1 may be, for example, the IP address of the gateway 1 or the global identifier of the gateway 1. In one example, the node identifier of the gateway 1 may serve as identification information of the gateway 1.

[0191] In one example, when gateway 1 notifies path performance metric 1 to user site egress device 1 by notifying route 1, route 1 may include a target TLV that carries several metric values ​​in path performance metric 1 and information about the target object. For example, the value field of the target TLV may carry the transmission delay of path 1, the packet loss rate of path 1, the bandwidth of path 1, the path status of path 1, the QoE of path 1, the name of the target object, and the domain name of the target object.

[0192] In another example, when gateway 1 notifies path performance metric 1 to user site egress device 1 by advertising route 1, route 1 may include at least one sub-TLV that carries several metrics in path performance metric 1 and target object information. This approach improves scalability of route 1. For example, if the path performance metric 1 advertised by gateway 1 increases or decreases, the corresponding sub-TLV can be added or deleted from route 1.

[0193] In one example, if the path performance metric value 1 includes delay, the route 1 may include sub-TLV1, and the sub-TLV1 is used to carry the transmission delay of the path 1. In other words, the sub-TLV1 may indicate the transmission delay of the path 1. The sub-TLV1 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV1 indicates that the sub-TLV1 is used to carry the transmission delay of the path 1. The length field of the sub-TLV1 indicates the length of the value field of the sub-TLV1, and the value field of the sub-TLV1 is used to carry the transmission delay. The structure of the sub-TLV1 can be understood with reference to Figure 3b, which is a schematic diagram of the structure of a sub-TLV1 provided in an embodiment of the present application. As shown in Figure 3b, the value of the type field of the sub-TLV1 is TBD1, and TBD1 indicates that the sub-TLV1 is used to carry the transmission delay.

[0194] In another example, if the path performance metric value 1 includes packet loss, the route 1 may include a sub-TLV2, and the sub-TLV2 is used to carry the packet loss rate of the path 1. In other words, the sub-TLV2 may indicate the packet loss rate of the path 1. The sub-TLV2 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV2 indicates that the sub-TLV2 is used to carry the packet loss rate. The length field of the sub-TLV2 indicates the length of the value field of the sub-TLV2, and the value field of the sub-TLV2 is used to carry the packet loss rate of the path 1. The structure of the sub-TLV2 can be understood with reference to Figure 3c, which is a schematic diagram of the structure of a sub-TLV2 provided in an embodiment of the present application. As shown in Figure 3c, the value of the type field of the sub-TLV2 is TBD2, and TBD2 indicates that the sub-TLV2 is used to carry the packet loss rate.

[0195] In another example, if the path performance metric value 1 includes jitter, the route 1 may include a sub-TLV3, and the sub-TLV3 is used to carry the jitter of the path 1. In other words, the sub-TLV3 may indicate the jitter of the path 1. The sub-TLV3 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV3 indicates that the sub-TLV3 is used to carry jitter. The length field of the sub-TLV3 indicates the length of the value field of the sub-TLV3, and the value field of the sub-TLV3 is used to carry the jitter of the path 1. The structure of the sub-TLV3 can be understood with reference to Figure 3d, which is a schematic diagram of the structure of a sub-TLV3 provided in an embodiment of the present application. As shown in Figure 3d, the value of the type field of the sub-TLV3 is TBD3, and TBD3 indicates that the sub-TLV3 is used to carry jitter.

[0196] In another example, if the path performance metric value 1 includes bandwidth, the route 1 may include sub-TLV4, and the sub-TLV4 is used to carry the bandwidth of the path 1. In other words, the sub-TLV4 may indicate the bandwidth of the path 1. The sub-TLV4 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV4 indicates that the sub-TLV4 is used to carry bandwidth. The length field of the sub-TLV4 indicates the length of the value field of the sub-TLV4, and the value field of the sub-TLV4 is used to carry the bandwidth of the path 1. The structure of the sub-TLV4 can be understood with reference to Figure 3e, which is a schematic diagram of the structure of a sub-TLV4 provided in an embodiment of the present application. As shown in Figure 3e, the value of the type field of the sub-TLV4 is TBD4, and TBD4 indicates that the sub-TLV4 is used to carry bandwidth.

[0197] In another example, if the path performance metric value 1 includes a path state, the route 1 may include a sub-TLV5, and the sub-TLV5 is used to carry the path state of the path 1. In other words, the sub-TLV5 may indicate the path state of the path 1. The sub-TLV5 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV5 indicates that the sub-TLV5 is used to carry the path state. The length field of the sub-TLV5 indicates the length of the value field of the sub-TLV5, and the value field of the sub-TLV5 is used to carry the path state of the path 1. The structure of the sub-TLV5 can be understood with reference to Figure 3f, which is a schematic diagram of the structure of a sub-TLV5 provided in an embodiment of the present application. As shown in Figure 3f, the value of the type field of the sub-TLV5 is TBD5, and TBD5 indicates that the sub-TLV5 is used to carry the path state.

[0198] In another example, if the path performance metric value 1 includes QoE, the route 1 may include a sub-TLV6, and the sub-TLV6 is used to carry the QoE of the path 1. In other words, the sub-TLV6 may indicate the QoE of the path 1. The sub-TLV6 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV6 indicates that the sub-TLV6 is used to carry QoE. The length field of the sub-TLV6 indicates the length of the value field of the sub-TLV6, and the value field of the sub-TLV6 is used to carry the QoE of the path 1. The structure of the sub-TLV6 can be understood with reference to Figure 3g, which is a schematic diagram of the structure of a sub-TLV6 provided in an embodiment of the present application. As shown in Figure 3g, the value of the type field of the sub-TLV6 is TBD6, and TBD6 indicates that the sub-TLV6 is used to carry QoE.

[0199] In another example, if the route 1 includes the name of the target object, the route 1 may include sub-TLV7, and sub-TLV6 is used to carry the name of the target object. In other words, the sub-TLV7 may indicate the name of the target object. The sub-TLV7 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV7 indicates that the sub-TLV7 is used to carry the name of the target object. The length field of the sub-TLV7 indicates the length of the value field of the sub-TLV7, and the value field of the sub-TLV7 is used to carry the name of the target object of path 1. The structure of the sub-TLV7 can be understood with reference to Figure 3h, which is a schematic diagram of the structure of a sub-TLV7 provided in an embodiment of the present application. As shown in Figure 3h, the value of the type field of the sub-TLV7 is TBD7, and TBD7 indicates that the sub-TLV7 is used to carry the name of the target object.

[0200] In another example, if the route 1 includes the domain name of the target object, the route 1 may include a sub-TLV8, and the sub-TLV8 is used to carry the domain name of the target object. In other words, the sub-TLV8 may indicate the domain name of the target object. The sub-TLV8 may include a sub-type field, a length field, and a value field. The sub-type field of the sub-TLV8 indicates that the sub-TLV8 is used to carry the domain name of the target object. The length field of the sub-TLV8 indicates the length of the value field of the sub-TLV8, and the value field of the sub-TLV8 is used to carry the domain name of the target object of path 1. The structure of the sub-TLV8 can be understood with reference to Figure 3i, which is a schematic diagram of the structure of a sub-TLV8 provided in an embodiment of the present application. As shown in Figure 3i, the value of the type field of the sub-TLV8 is TBD8, and TBD8 indicates that the sub-TLV8 is used to carry the domain name of the target object.

[0201] In a specific example, the structure of the MP_REACH_NLRI for announcing the route 1 may be as shown in FIG3j, which is a schematic diagram of the structure of an MP_REACH_NLRI provided in an embodiment of the present application. The NLRI information field of the MP_REACH_NLRI shown in FIG3j includes: a route type field 301, a length field 302, a site ID field 303, an application ID (APP ID) field 304, an application type (APP type) field 305, a path index type field 306, a path index value field 307, an SD-WAN node ID field 308, and a sub-TLVs field 309. Among them:

[0202] The route type field 301 is used to indicate that the route type is a path performance route associated with the target object;

[0203] The site ID field 303 is used to indicate the site identifier of the site to which the gateway 1 belongs;

[0204] The APP ID field 304 is used to identify the target object. For example, when the target object is a SaaS application, the APP ID field 304 is used to carry the identifier of the SaaS application. When the target object is a data center, the APP ID field 304 is used to carry the IP address and tenant ID of the data center.

[0205] The APP type field 305 indicates the quality of service requirement for at least one type of traffic supported by the target object. For example, type 1 indicates default; type 2 indicates allow; and type 3 indicates optimize. Optimize requires the use of the optimal path and allows for a lower quality of service requirement than optimal. Default indicates no special quality of service requirement.

[0206] The path index type field 306 is used for the type of the path index. In this solution, the path index type field 306 is used to indicate the type of path index 1;

[0207] The path index value field 307 is used to carry a path index. In this solution, the path index value field 307 is used to carry a path index 1. The path index value can be used to identify an outbound interface for accessing a target object.

[0208] The SD-WAN node ID field 308 is used to carry the identification of gateway 1, such as the IPv4 or IPv6 address of gateway 1;

[0209] The sub-TLVs field 309 may include one or more sub-TLVs among the aforementioned sub-TLV1 to sub-TLV8.

[0210] In another example, the aforementioned sub-TLVs field 309 may also be carried through BGP path attributes instead of the NLRI information field. For example, the sub-TLVs may be carried through a metadata path attribute or a tunnel encapsulation attribute.

[0211] In another example, the NLRI information field may not include the sub-TLVs field 309, but include the aforementioned target TLV. In yet another example, the target TLV may not be carried through the NLRI information field, but may be carried through the Metadata Path Attribute or the Tunnel Encapsulation Attribute.

[0212] S104: User site egress device 1 selects a target path for accessing the target object according to path performance metric value 1.

[0213] After receiving the target object identification information, path index 1, and path performance metric 1 announced by gateway 1, user site egress device 1 may select a target path for accessing the target object based on path index metric 1. In a specific example, user site egress device 1 may store the correspondence between the target object identification information, path index 1, and path performance metric 1, so as to facilitate subsequent selection of a target path for accessing the target object based on the correspondence.

[0214] In one example, the user site egress device 1 can obtain a path performance metric value 1' for the user site egress device 1 to access the target object through a path 1' including the path 1 based on the path performance metric value 1 and the path performance metric value of the link between the user site egress device 1 and the gateway 1, thereby selecting a target path for accessing the target object based on the path performance metric value 1'. For example, the user site egress device 1 can select a target path for accessing the target object based on the path performance metric value 1' and the path performance metric values ​​of other paths for the user site device 1 to access the target object, for example, selecting a path with the best performance as the target path. The path 1' includes the link between the user site egress device 1 and the gateway 1 and the path 1. The link between the user site egress device 1 and the gateway 1 can be an Internet link or an SD-WAN tunnel.

[0215] From the above description, it can be seen that by utilizing the solution of the embodiment of the present application, the user site exit device 1 can select the target path for accessing the target object based on the performance of the path 1 for accessing the target object by the gateway 1, so that the selected target path can provide better service quality. Accordingly, when accessing the target object through the target path, better service quality can be obtained, thereby improving the access experience of accessing the target object.

[0216] In one example, for example, when method 100 is applied to the application scenario shown in FIG1b , user site egress device 1 may also receive identification information of a target object, path index 2, and path performance metric 2 announced by gateway 2. Path index 2 identifies path 2 for gateway 2 to access the target object, and path performance metric 2 indicates the performance of path 2. Regarding gateway 2 and path 2, in one example, if gateway 1 corresponds to gateway 120 shown in FIG1b , gateway 2 may correspond to gateway 140 shown in FIG1b , and accordingly, path 2 may correspond to path 141 or path 142 shown in FIG1b . In another example, if gateway 1 corresponds to gateway 140 shown in FIG1b , gateway 2 may correspond to gateway 120 shown in FIG1b , and accordingly, path 2 may correspond to path 121 or path 122 shown in FIG1b .

[0217] In an embodiment of the present application, the gateway 2 may, for example, notify the user site egress device 1 of the identification information of the target object, the path index 2, and the path performance metric 2 via a protocol message. In a specific example, the gateway 2 may notify the user site egress device 1 of a route 2, where the route 2 includes the identification information of the target object, the path index 2, and the path performance metric 2.

[0218] For the identification information of the target object, please refer to the relevant description above and will not be repeated here.

[0219] In one example, the gateway 2 may detect the performance of the path 2, thereby obtaining a path performance metric 2 indicating the performance of the path 2. The embodiment of the present application does not specifically limit the specific implementation method of the gateway 2 detecting the performance of the path 2. In one example, the gateway 2 may detect the performance of the path 2 through a data message or a protocol message.

[0220] In this embodiment of the present application, similar to path performance metric value 1, path performance metric value 2 may include at least one metric value indicating the performance of path 2. Considering that latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE) can all reflect the performance of path 1, in one example, path performance metric value 2 may include one or more of latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE).

[0221] Path index 2 is used to identify path 2. Path index 2 can be any information that can identify path 2. In one example, path index 2 can be the path number of path 2. For example, multiple paths used by gateway 2 to access the target object can be sequentially numbered, with each path corresponding to a path number. In another example, path index 2 can be the MPLS label assigned by gateway 2 to path 2. In another example, path index 2 can be the SRv6 SID assigned by gateway 2 to path 2.

[0222] When path index 2 is an SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and forwards the packet to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is End.DT2SaaSPath, which indicates: the node removes the SRv6 encapsulation and forwards the packet to the target SaaS application through the outbound interface corresponding to the SRv6 SID.

[0223] In one example, route 2 may include indication information 2, which indicates the type of path index 2 carried in route 2. The type of path index 2 may include the aforementioned path number, MPLS label, or SRv6 SID. In this case, user site egress device 1 may determine the type of path label 2 identifying path 2 based on indication information 2.

[0224] In one example, the route type field of route 2 may indicate that route 2 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route; when the target object is a data center, the path performance route may be a data center path performance route.

[0225] In one example, an SD-WAN tunnel can be established between the gateway 2 and the user site egress device 1. In a specific example, the gateway 2 and the user site egress device 1 can enable the SD-WAN address family. In this case, the route 2 can be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 2 and the user site egress device 1 can enable the SD-WAN sub-address family. In this case, the route 2 can be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.

[0226] In one example, the gateway 2 may also notify other information to the user site egress device 1, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 2 may notify the user site egress device 1 of the site identifier, application type, and node identifier of the gateway 2 to which the gateway 2 belongs.

[0227] The site to which the gateway 2 belongs may be the gateway site described by the gateway 2 .

[0228] The application type may indicate the quality of service requirement of at least one type of traffic supported by the target object. For the application type, please refer to the relevant description above and will not be repeated here.

[0229] The node identifier of the gateway 2 may be, for example, the IP address of the gateway 2 or the global identifier of the gateway 2. In one example, the node identifier of the gateway 2 may be used as the identification information of the gateway 2.

[0230] In this embodiment of the present application, when gateway 2 notifies path performance metric value 2 to user site egress device 1 by notifying route 2 to user site egress device 1, route 2 may include at least one sub-TLV. This at least one sub-TLV is used to carry several metric values ​​in path performance metric value 2 and target object information. For details about this at least one sub-TLV, refer to the description of sub-TLVs 1 to 8 above and are not repeated here.

[0231] When user site egress device 1 receives the identification information, path index 2, and path performance metric value 2 of the target object announced by gateway 2, it can select a target path for accessing the target object based on path index metric value 1 and path index metric value 2. In one example, user site egress device 1 can obtain path performance metric value 1' for accessing the target object via path 1' including path 1 based on path performance metric value 1 and the path performance metric value of the link between user site egress device 1 and gateway 1, and obtain path performance metric value 2' for accessing the target object via path 2' including path 2 based on path performance metric value 2 and the path performance metric value of the link between user site egress device 1 and gateway 2. Further, user site egress device 1 can select a target path for accessing the target object based on path performance metric value 1' and path performance metric value 2'.

[0232] In one example, the user site egress device 1 may select a target path from path 1' and path 2' based on the path performance metric value 1' and the path performance metric value 2'. For example, the path with better performance between path 1' and path 2' is selected as the target path. Path 1' includes the link between the user site egress device 1 and gateway 1, as well as path 1. Path 2' includes the link between the user site egress device 1 and gateway 2, as well as path 2. The link between the user site egress device 1 and gateway 1 may be an Internet link or an SD-WAN tunnel, and the link between the user site egress device 1 and gateway 2 may be an Internet link or an SD-WAN tunnel.

[0233] In another example, the user site egress device 1 may select a target path for accessing the target object based on the path performance metric value 1', the path performance metric value 2', and the path performance metric values ​​of other paths for the user site device 1 to access the target object, for example, selecting the path with the best performance as the target path.

[0234] In one example, when method 100 is applied to the application scenario shown in FIG1c , user site egress device 1 may further receive identification information of a target object, path index 3, and path performance metric 3 announced by user site egress device 2. Path index 3 identifies path 3 for user site egress device 2 to access the target object via the Internet, and path performance metric 3 indicates the performance of path 3. Path 2 may also be understood as the path for user site egress device 2 to access the target object via its own DIA link.

[0235] Regarding the user site egress device 2 and path 3, in one example, if the user site egress device 1 corresponds to the user site egress device 110 shown in Figure 1c , then the user site egress device 2 can correspond to the user site egress device 150 shown in Figure 1c , and accordingly, the path 3 can correspond to path 151 or 152 shown in Figure 1c . In another example, if the user site egress device 1 corresponds to the user site egress device 150 shown in Figure 1c , then the user site egress device 2 can correspond to the user site egress device 110 shown in Figure 1c , and accordingly, the path 3 can correspond to path 111 or 112 shown in Figure 1c .

[0236] As described previously with respect to Figure 1c, in one example, the user site egress device 1 and the user site egress device 2 can be located at the same user site, and the user site egress devices within the same user site can constitute a cluster egress device. In one example, the user site egress device 2 can notify the user site egress device 1 of the aforementioned target object identification information, path index 3, and path performance metric value 3 via a cluster protocol. For example, the user site egress device 2 can send a protocol message 1 to the user site egress device 1, wherein the protocol message 1 includes the target object identification information, path index 3, and path performance metric value 3. Accordingly, the user site egress device 1 can receive the protocol message 1 sent by the user site egress device 2.

[0237] In this embodiment of the present application, similar to path performance metric 1, path performance metric 3 may include at least one metric indicating the performance of path 3. Considering that latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE) can all reflect the performance of path 1, in one example, path performance metric 3 may include one or more of latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE).

[0238] Path index 3 is used to identify path 3. Path index 3 can be any information that can identify path 3. In one example, path index 3 can be the path number of path 3. For example, multiple paths used by user site egress device 2 to access the target object can be sequentially numbered, with each path corresponding to a path number. In another example, path index 3 can be the MPLS label assigned by user site egress device 2 to path 3. In another example, path index 3 can be the SRv6 SID assigned by user site egress device 2 to path 3.

[0239] When path index 3 is an SRv6 SID, the node function associated with the SRv6 SID is: the node removes the SRv6 encapsulation and forwards the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is: remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In one specific implementation, the node function associated with the SRv6 SID is End.DT2SaaSPath, where End.DT2SaaSPath indicates: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0240] In one example, the protocol message 1 may include indication information 3, and the indication information 3 is used to indicate the type of the path index 3. The type of the path index 3 may include the aforementioned path number, MPLS label or SRv6 SID. In this case, the user site egress device 1 may determine the type of the path label 3 that identifies the path 3 based on the indication information 3. In one example, the user site egress device 2 may also notify the user site egress device 1 of other information, so that the user site egress device 1 can obtain richer information. As an example, the user site egress 2 may notify the user site egress device 1 of the site identifier, application type and node identifier of the site to which the user site egress device 2 belongs. Wherein:

[0241] The site to which the user site egress device 2 belongs may be the user site described by the user site egress device 2 .

[0242] The application type may indicate the quality of service requirement of at least one type of traffic supported by the target object. For the application type, please refer to the relevant description above and will not be repeated here.

[0243] The node identifier of the user site egress device 2 may be, for example, the IP address of the user site egress device 2 or the global identifier of the user site egress device 2 .

[0244] In this embodiment of the present application, when user site egress device 2 notifies user site egress device 1 of path performance metric value 3 by sending protocol message 1 to user site egress device 1, protocol message 1 may include at least one sub-TLV. This at least one sub-TLV is used to carry several metric values ​​in path performance metric value 3 and target object information. For details about this at least one sub-TLV, refer to the description of sub-TLVs 1 to 8 above and are not repeated here.

[0245] In a specific example, the structure of the protocol message 1 can be as shown in Figure 3k, which is a schematic diagram of the structure of a protocol message provided in an embodiment of the present application. The protocol message shown in Figure 3k includes: a message type field 401, a length field 402, a site identifier (site ID) field 403, an application identifier (APP ID) field 404, an application type (APP type) field 405, a path index type (path index type) field 406, a path index value (path index value) field 40 / 7, an SD-WAN node identifier (SD-WAN node ID) field 408, and a sub-TLVs field 409. Among them:

[0246] The message type field 401 is used to indicate the message type of the protocol message 1. In one example, when the target object is a SaaS application, the message type is SaaS path information (path info).

[0247] The site ID field 403 is used to indicate the site identifier of the site to which the user site egress device 2 belongs, for example, the system IP of the site;

[0248] The SD-WAN node ID field 408 is used to carry the identifier of the user site egress device 2, for example, the IP address of the user site egress device 2;

[0249] The meaning of the APP ID field 404 is the same as that of the aforementioned APP ID field 304 and is not repeated here;

[0250] The meaning of the APP type field 405 is the same as that of the aforementioned APP type field 305 and is not repeated here;

[0251] The meaning of the path index type field 406 is similar to the aforementioned path index type field 306, except that the path index type field 306 is used to carry the type of path index 1, while the path index type field 406 is used to indicate the type of path index 3;

[0252] The meaning of the path index value field 407 is similar to that of the aforementioned path index value field 307, except that the path index value field 307 is used to carry the path index 1, while the path index value field 407 is used to carry the path index 3.

[0253] The sub-TLVs field 409 has the same meaning as the aforementioned sub-TLVs field 309 and may also include one or more sub-TLVs among the aforementioned sub-TLV1 to sub-TLV8.

[0254] When the user site exit device 1 receives the identification information, path index 3 and path performance metric value 3 of the target object announced by the user site exit 2, it can select the target path for accessing the target object based on the path index metric value 1 and the path index metric value 3. In one example, the user site exit device 1 can obtain the path performance metric value 1' for the user site exit device 1 to access the target object through the path 1' including the path 1 based on the path performance metric value 1 and the path performance metric value of the link between the user site exit device 1 and the gateway 1. Further, the user site exit device 1 can select the target path for accessing the target object based on the path performance metric value 1' and the path performance metric value 3. For example, the path with better performance between path 1' and path 3 is selected as the target path. Regarding the path 1', please refer to the relevant description part above and will not be repeated here.

[0255] In one example, gateway 1 can access a target object through multiple paths. For example, in addition to accessing the target object through path 1, gateway 1 can also access the target object through path 4. As can be understood in conjunction with Figure 1a, gateway 120 can access the target object through path 121 (corresponding to path 1) and path 122 (corresponding to path 4). In this scenario, gateway 1 can obtain path performance metric value 4 of path 4 and notify user site egress device 1 of the target object's identification information, path index 4, and path performance metric value 4. Accordingly, user site egress device 1 can receive the target object's identification information, path index 4, and path performance metric value 4 notified by gateway 1.

[0256] In an embodiment of the present application, the gateway 1 may, for example, notify the user site egress device 1 of the identification information of the target object, the path index 4, and the path performance metric 4 via a protocol message. In a specific example, the gateway 1 may notify the user site egress device 1 of a route 3, wherein the route 3 includes the identification information of the target object, the path index 4, and the path performance metric 4.

[0257] In this embodiment of the present application, similar to path performance metric 1, path performance metric 4 may include at least one metric indicating the performance of path 4. Considering that latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE) can all reflect the performance of path 1, in one example, path performance metric 4 may include one or more of latency, packet loss rate, jitter, bandwidth, path status, and Quality of Experience (QoE).

[0258] Path index 4 is used to identify path 4. Path index 4 may be any information capable of identifying path 4. In one example, path index 4 may be the path number of path 4. In another example, path index 4 may be the MPLS label assigned by gateway 1 to path 4. In another example, path index 4 may be the SRv6 SID assigned by gateway 1 to path 4.

[0259] When path index 4 is an SRv6 SID, the node function associated with SRv6 SID 4 is: the node removes the SRv6 encapsulation and forwards the message to the target object through the outbound interface corresponding to the SRv6 SID. In one example, when the target object is a SaaS application, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is End.DT2SaaSPath, which indicates: the node removes the SRv6 encapsulation and forwards the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0260] In one example, route 3 may include indication information 4, which indicates the type of path index 4 carried in route 3. The type of path index 4 may include the aforementioned path number, MPLS label, or SRv6 SID. In this case, user site egress device 1 may determine the type of path label 4 identifying path 4 based on indication information 4.

[0261] In one example, the route type field of route 3 may indicate that route 3 is a path performance route associated with a target object. When the target object is a SaaS application, the path performance route may be a SaaS path performance route; when the target object is a data center, the path performance route may be a data center path performance route.

[0262] In one example, an SD-WAN tunnel can be established between the gateway 1 and the user site egress device 1. In a specific example, the gateway 1 and the user site egress device 1 can enable the SD-WAN address family. In this case, the route 3 can be a route based on the SD-WAN address family announcement. For example, the aforementioned AFI field indicates the SD-WAN address family. In another specific example, the gateway 1 and the user site egress device 1 can enable the SD-WAN sub-address family. In this case, the route 3 can be a route based on the SD-WAN sub-address family announcement. For example, the aforementioned SAFI field indicates the SD-WAN sub-address family.

[0263] In one example, the gateway 1 may also notify other information to the user site egress device 1 via route 3, so that the user site egress device 1 can obtain more abundant information. As an example, the gateway 1 may notify the user site egress device 1 via route 3 of the site identifier of the site to which the gateway 1 belongs, the application type, and the node identifier of the gateway 1.

[0264] In this embodiment of the present application, when gateway 1 notifies path performance metric value 4 to user site egress device 1 by notifying route 3 to user site egress device 1, route 3 may include at least one sub-TLV. This at least one sub-TLV is used to carry several metric values ​​in path performance metric value 4 and information about the target object. For details about this at least one sub-TLV, refer to the description of sub-TLVs 1 to 8 above and are not repeated here.

[0265] When user site egress device 1 receives the identification information, path index 4, and path performance metric value 4 of the target object announced by gateway 1, it can select a target path for accessing the target object based on path index metric value 1 and path index metric value 4. In one example, user site egress device 1 can obtain path performance metric value 1' for accessing the target object via path 1' including path 1 based on path performance metric value 1 and the path performance metric value of the link between user site egress device 1 and gateway 1, and obtain path performance metric value 2' for accessing the target object via path 4' including path 4 based on path performance metric value 4 and the path performance metric value of the link between user site egress device 1 and gateway 1. Furthermore, user site egress device 1 can select a target path for accessing the target object based on path performance metric value 1' and path performance metric value 4'.

[0266] In one example, the user site egress device 1 may select a target path from path 1' and path 4' based on the path performance metric 1' and the path performance metric 4'. For example, the path with the better performance between path 1' and path 4' may be selected as the target path. Path 4' includes the link between the user site egress device 1 and gateway 1, as well as path 4. For details about path 1', please refer to the above description and will not be repeated here.

[0267] In another example, the user site egress device 1 may select a target path for accessing the target object based on the path performance metric value 1', the path performance metric value 4', and the path performance metric values ​​of other paths for the user site device 1 to access the target object, for example, selecting the path with the best performance as the target path.

[0268] In one example, in addition to notifying user site egress device 1 of the target object's identification information, path index 1, and path performance metric value 1, gateway 1 may also notify user site egress device 2 of the target object's identification information, path index 1, and path performance metric value 1, so that user site egress device 2 can select a target path to access the target object based on path performance metric value 1. In a specific example, gateway 1 may notify user site egress device 2 of route 1, thereby notifying user site egress device 2 of the target object's identification information, path index 1, and path performance metric value 1. For details about route 1, please refer to the relevant description above and will not be repeated here.

[0269] In another example, in addition to notifying user site egress device 1 of the target object's identification information, path index 4, and path performance metric value 4, gateway 1 may also notify user site egress device 2 of the target object's identification information, path index 4, and path performance metric value 4, so that user site egress device 2 can select a target path to access the target object based on path performance metric value 1 and path performance metric value 4. In a specific example, gateway 1 may notify user site egress device 2 of route 3, thereby notifying user site egress device 2 of the target object's identification information, path index 4, and path performance metric value 4. For details about route 3, please refer to the relevant description above and will not be repeated here.

[0270] Similarly, in addition to notifying the user site egress device 1 of the target object's identification information, path index 2, and path performance metric value 2, gateway 2 may also notify the user site egress device 2 of the target object's identification information, path index 2, and path performance metric value 2, so that the user site egress device 2 can select a target path to access the target object based on the path performance metric value 1 and the path performance metric value 2. In a specific example, gateway 2 may notify user site egress device 2 of route 2, thereby notifying user site egress device 2 of the target object's identification information, path index 2, and path performance metric value 2. For details about route 2, please refer to the relevant description above and will not be repeated here.

[0271] In addition, the user site egress device 1 may also notify the user site egress device 2 of the target object's identifier, path index 5, and path performance metric value 5, so that the user site egress device 2 can select a target path for accessing the target object based on the path performance metric value 1 and the path performance metric value 5. In a specific example, the user site egress device 1 may send a protocol message 2 to the user site egress device 2, thereby notifying the user site egress device 2 of the target object's identifier, path index 5, and path performance metric value 5. The path index 5 is used to identify the path 5 for the user site egress device 1 to access the target object via the Internet, and the path performance metric value 5 is used to indicate the performance of the path 5. For the path index 5, please refer to the description of the path index 3 above; for the path performance metric value 5, please refer to the description of the path performance metric value 3 above; for the protocol message 2, please refer to the description of the protocol message 1 above, and no repetitive description will be given here.

[0272] In addition, user site egress device 1 and user site egress device 2 can also mutually notify each other of the performance of the path between themselves and the gateway site. For example, user site egress device 1 and user site egress device 2 can mutually notify each other of the performance of the path between themselves and gateway 1. For another example, user site egress device 1 and user site egress device 2 can mutually notify each other of the performance of the path between themselves and gateway 2.

[0273] Next, the operations performed by the user site egress device 1 during the traffic forwarding phase will be described with reference to the accompanying drawings. Referring to Figure 4 , which is a flow chart of a message forwarding method provided by an embodiment of the present application, the method 200 shown in Figure 4 may include the following steps S201-S203.

[0274] S201: User site egress device 1 receives service message 1 for accessing a target object.

[0275] In an embodiment of the present application, service message 1 may be a message sent by a user device for accessing a target object. The service message 1 may include a source IP address, a destination IP address, and a payload. The source IP address may be the IP address of the user device, and the destination IP address may be the IP address of the target object.

[0276] In an example, a user site egress device 1 may receive a service message 1 sent by a user device, such as a user terminal.

[0277] In another example, the user site egress device 1 may receive a service message 1 sent by the user site device 2. Specifically, the user site egress device 1 may receive a service message 3 sent by the user site egress device 2, where the service message 3 includes the service message 1 and the path index 2.

[0278] In a specific example, the service message 3 can be encapsulated using GRE. In this case, the service message 3 includes a GRE header and a payload, the GRE header includes the path index 2, and the payload includes the service message 1. When the path index 2 is an MPLS label, the service message 3 can be encapsulated using the MPLS in GRE protocol, and the GRE header of the service message 3 includes an MPLS label stack, and the MPLS label stack includes the path index 2. When the path index 2 is an SRv6 SID, the service message 2 is encapsulated using the SRv6 in GRE protocol, and the GRE header of the service message 3 includes an SRv6 SID list, and the SRv6 SID list includes the path index 2. In an embodiment of the present application, the format of the GRE header can be compliant with the standard format of the GRE header included in Request for Comments (RFC) 1701.

[0279] In another specific example, when path index 2 is an MPLS label, service packet 3 may be encapsulated using MPLS in UDP. In this case, service packet 3 includes a UDP header, an MPLS label stack, and a payload. The MPLS label stack includes path index 2, and the payload includes service packet 1. The MPLS label stack is located between the UDP header and the payload.

[0280] In another specific example, when path index 2 is an SRv6 SID, service packet 3 may be encapsulated using the SRv6 in GENEVE protocol. In this case, service packet 3 includes a GENEVE header and a payload. The GENEVE header includes an SRv6 SID list, the SRv6 SID list includes path index 2, and the payload includes service packet 1.

[0281] In another specific example, service message 3 may include an IP header and a payload, wherein the payload includes service message 1, and path index 2 is located between the IP header and the payload. In this case, the encapsulation of service message 3 is simple, and GRE or GENEVE is not used for encapsulation. This simplifies the encapsulation of service message 3 and reduces the performance overhead required to transmit service messages between user sites.

[0282] S202 : The user site egress device 1 encapsulates the target path index of the target path for the service message 1 to obtain the service message 2 .

[0283] In some embodiments, if user site device 1 receives service message 1 from a user device, user site device 1 may encapsulate service message 1 with the target path index of its selected target path to obtain service message 2, wherein service message 1 may serve as the payload of service message 2. The target path index mentioned herein may be an index of a path for gateway 1 or gateway 2 to access the target object, for example, path index 1, path index 2, or path index 4. The target path index mentioned herein may also be an index of a path for user site egress device 2 to access the target object via the Internet, for example, path index 3.

[0284] In one example, the service message 2 can be encapsulated using GRE. For this situation, please refer to Figure 5a for an understanding. Figure 5a is a schematic diagram of the structure of a service message 2 provided in an embodiment of the present application. As shown in Figure 5a, the service message 2 includes a GRE header 501 and a payload 502. The GRE header 501 includes the target path index, and the payload 502 includes the service message 1, where the service message 1 includes a source IP address, a destination IP address, and a payload.

[0285] In a specific example, when the target path index is an MPLS label, service message 2 can be encapsulated using the MPLS in GRE protocol. This can be understood with reference to Figure 5b, which is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. As shown in Figure 5b, service message 2 includes an outer IP header 503, a GRE header 504, and a payload 505. The GRE header 504 includes an MPLS label stack, the MPLS label stack includes the target path index, and the payload 505 includes service message 1. In one example, the target path index can be the bottom label of the MPLS label stack.

[0286] In another specific example, when the target path index is an SRv6 SID, service message 2 can be encapsulated using the SRv6 in GRE protocol. This can be understood with reference to Figure 5c, which is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. As shown in Figure 5c, service message 2 includes an outer IP header 506, a GRE header 507, and a payload 508. The GRE header 507 includes an SRv6 SID list, which includes the target path index. The payload 508 includes service message 1. In one example, the target path index can be the last SID in the SRv6 SID list.

[0287] In another example, when the target path index is an MPLS label, the service message 2 can be encapsulated using MPLS in UDP. This can be understood with reference to Figure 5d, which is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. As shown in Figure 5d, the service message 2 includes an outer IP header 509, a UDP header 510, an MPLS label stack 511, and a payload 512. The MPLS label stack 511 includes the target path index, and the payload 512 includes the service message 1. The MPLS label stack 511 is located between the UDP header 510 and the payload 512. In one example, the target path index can be the bottom label of the MPLS label stack 511.

[0288] In another example, when the target path index is an SRv6 SID, the service message 2 can be encapsulated using the SRv6 in GENEVE protocol. This can be understood with reference to Figure 5e, which is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. As shown in Figure 5e: the service message 2 includes an outer IP header 513, a GENEVE header 514, and a payload 515, the GENEVE header 515 includes an SRv6 SID list, the SRv6 SID list includes the target path index, and the payload 515 includes the service message 1. In a specific example, the target path index can be the last SID in the SRv6 SID list.

[0289] In another example, if the target path index is an index of a path for accessing a target object via the Internet by user site egress device 2, then to reduce the performance overhead required to transmit service messages between user sites, the encapsulation of service message 2 may also adopt the encapsulation format shown in FIG5f. FIG5f is a schematic diagram of the structure of another service message 2 provided in an embodiment of the present application. As shown in FIG5f, service message 2 may include an IP header 516 and a payload 517, wherein the payload includes service message 1, and the target path index is located between the IP header 516 and the payload 517.

[0290] In other embodiments, if the user site egress device 1 receives a service message 3 from the user site egress device 2, then as described above, the service message 3 includes a path index 2. In this case, in one example, if the path from the user site egress device 1 to the gateway 2 is reachable, the user site egress device 1 can determine the path index 2 as the target path index and encapsulate the service message 1 with the target path index to obtain the service message 2, thereby achieving access to the target object through path 2 of the gateway 2. In another example, if the user site egress device 1 determines that the path to the gateway 2 is unreachable, the user site egress device 1 can reselect a target path for accessing the target object and further encapsulate the target path index into the service message 1 to obtain the service message 2. For example, the user site egress device 1 selects path 1 or path 4 for accessing the target object through the aforementioned gateway 1 to access the target object, and further encapsulates path index 1 or path index 4 into the service message 1 to obtain the service message 2.

[0291] S203: The user site egress device 1 sends the service message 2.

[0292] In one example, if the target path index is path index 2, the user site egress device 1 can send the service message 2 to the gateway 2. Accordingly, after receiving the service message 2, the gateway 2 can forward the service message 1 through the path corresponding to the path index 2, thereby accessing the target object through the path 2. In a specific example, the gateway 2 can forward the service message 1 through the outbound interface corresponding to the path index 2. In another example, if the target path index is path index 2, and the performance of the path between the user site egress device 1 and the gateway 2 is inferior to the performance of the path between the user site egress device 2 and the gateway 2, the user site egress device 1 can send the service message 2 to the user site egress device 2, so that the user site egress device 2 forwards the service message 2.

[0293] In one example, if the target path index is path index 1 or path index 4, the user site exit device 1 can send the service message 2 to the gateway 1. Accordingly, after receiving the service message 2, the gateway 1 can forward the service message 1 through the path corresponding to the path index 1 or the path index 4, thereby accessing the target object through the path 1 or the path 4. In a specific example, the gateway 1 can forward the service message 1 through the output interface corresponding to the target path index. In another example, if the target path index is path index 1 or path index 4, and the performance of the path between the user site exit device 1 and the gateway 1 is inferior to the performance of the path between the user site exit device 2 and the gateway 1, the user site exit device 1 can send the service message 2 to the user site exit device 2, so that the user site exit device 2 forwards the service message 2.

[0294] In another example, if the target path index is an index of a path for user site egress device 2 to access a target object via the Internet, for example, path index 3, user site egress device 1 may send service packet 2 to user site egress device 2. Accordingly, user site egress device 2 may forward service packet 1 via the path corresponding to the target path index (for example, target path index 3).

[0295] The above describes the routing method and information notification method provided by the embodiment of the present application. Next, taking the target object as a SaaS application as an example, combined with the application scenario shown in FIG6 , the routing method and information notification method provided by the embodiment of the present application are described.

[0296] Figure 6 is a schematic diagram of an exemplary application scenario provided by an embodiment of the present application. As shown in Figure 6, SaaS application 630 includes application (APP) 1, APP2, and APP3. In Figure 6, the user site includes user site egress devices 610 and 650, and the gateway site includes gateway 620 and gateway 640.

[0297] The user site egress device 610 can access APP1 through the DIA link 611 or 612 connected to itself; the gateway 620 can access APP1 through the path 621 or 622; the gateway 640 can access APP1 through the path 641 and the path 642; the user site egress device 650 can access APP1 through the DIA link 651 or 652 connected to itself.

[0298] In addition, although not shown in Figure 6, the user site exit device 610 can access APP2 through the DIA link 613 connected to itself, and access APP3 through the DIA link 614 connected to itself; the gateway 620 can access APP2 through the path 623, and access APP3 through the path 624; the gateway 640 can access APP2 through the path 643, and access APP3 through the path 644.

[0299] The gateway 620 may notify the identification information of APP1 , the path index of the path 621 , and the path performance metric value of the path 621 to the user site egress devices 610 and 650 .

[0300] The gateway 620 may notify the identification information of APP1 , the path index of the path 622 , and the path performance metric value of the path 622 to the user site egress devices 610 and 650 .

[0301] The gateway 620 may notify the identification information of APP2 , the path index of the path 623 , and the path performance metric value of the path 623 to the user site egress devices 610 and 650 .

[0302] The gateway 620 may notify the identification information of APP3 , the path index of the path 624 , and the path performance metric value of the path 624 to the user site egress devices 610 and 650 .

[0303] The gateway 640 may notify the identification information of APP1 , the path index of the path 641 , and the path performance metric value of the path 641 to the user site egress devices 610 and 650 .

[0304] The gateway 640 may notify the identification information of APP1 , the path index of the path 642 , and the path performance metric value of the path 642 to the user site egress devices 610 and 650 .

[0305] The gateway 640 may notify the identification information of APP2 , the path index of the path 643 , and the path performance metric value of the path 643 to the user site egress devices 610 and 650 .

[0306] The gateway 640 may notify the identification information of APP3 , the path index of the path 644 , and the path performance metric value of the path 644 to the user site egress devices 610 and 650 .

[0307] After receiving the information notified by the gateways 620 and 640 , the user site egress device 610 may save the information shown in Table 1 below.

[0308] Table 1

[0309] In Table 1:

[0310] The path outbound interface can be the outbound interface connected to the DIA link, and the remote IP address can be the IP address of the gateway.

[0311] When the path index corresponds to a DIA link connected to a local area, the original QoE and final QoE values ​​are the same. When the path index corresponds to a path for a gateway to access a SaaS application, the final QoE can be obtained based on the original QoE and the performance of the link between the user site egress device 610 and the gateway.

[0312] In one example, when user site egress device 610 receives packet 1 for accessing APP1, based on Table 1, user site egress device 1 selects path with path index 642 to access APP1 because its final QoE is the highest among the six paths for accessing APP1 shown in Table 1. In a specific example, user site egress device 1 can encapsulate path index 642 for packet 1 to obtain packet 2, and then send packet 2 to gateway 640. After receiving packet 2, gateway 640 can forward packet 1 through path 642 based on path index 642.

[0313] Similarly, in one example, when user site egress device 610 receives packet 3 accessing APP2, according to Table 1, user site egress device 1 selects path with path index 623 to access APP2 because its final QoE is the highest among the three paths to APP2 shown in Table 1. In a specific example, user site egress device 1 can encapsulate path index 623 for packet 3 to obtain packet 4, and send packet 4 to gateway 620. After receiving packet 4, gateway 620 can forward packet 3 through path 621 based on path index 623.

[0314] Similarly, in one example, when user site egress device 610 receives packet 5 destined for APP3, according to Table 1, user site egress device 1 selects path index 614 to access APP3 because its final QoE is the highest among the three paths to APP3 shown in Table 1. Path 614 is a DIA link connected to itself, so user site egress device 1 can send packet 5 through outbound interface GE 0 / 0 / 1.1.

[0315] Similarly, the user site egress device 650 can also locally store information similar to that shown in Table 1. When receiving a message to access a SaaS application, the user site egress device 650 combines the stored information to select a path for accessing the SaaS application (e.g., APP1, APP2, and APP3). The specific implementation of how the user site egress device 650 selects a path for accessing the SaaS application can be found in the specific implementation of how the user site egress device 610 selects a path for accessing APP1, APP2, and APP3, and is not repeated here.

[0316] Referring to Figure 7a, which is a flow chart of a routing method provided in an embodiment of the present application, the routing method 300 shown in Figure 7a can be applied to the above method 100 or 200.

[0317] The routing method 300 shown in FIG7 a may be executed by a first site egress device, which may correspond to the user site egress device 1 in the method 100 or the method 200 .

[0318] In a specific example, the method 300 may include the following S301 - S302 .

[0319] S301: Receive identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway, where the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path.

[0320] S302: Select a target path for accessing the target object according to the first path performance metric value.

[0321] The first gateway in method 300 may correspond to gateway 1 in method 100; the first path index in method 300 may correspond to path index 1 in method 100; the first path in method 300 may correspond to path 1 in method 100; and the first path performance metric value in method 300 may correspond to path performance metric value 1 in method 100.

[0322] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0323] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0324] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0325] In a possible implementation, receiving identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway includes: receiving a first route announced by the first gateway, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.

[0326] The first route in method 300 may correspond to route 1 in method 100 .

[0327] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.

[0328] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0329] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0330] In a possible implementation manner, the method further includes: receiving a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway, which are announced by the first gateway.

[0331] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0332] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0333] The first Sub-TLV in method 300 may correspond to Sub-TLV1 in method 100; the second Sub-TLV in method 300 may correspond to Sub-TLV2 in method 100; the third Sub-TLV in method 300 may correspond to Sub-TLV3 in method 100; the fourth Sub-TLV in method 300 may correspond to Sub-TLV4 in method 100; the fifth Sub-TLV in method 300 may correspond to Sub-TLV5 in method 100; the sixth Sub-TLV in method 300 may correspond to Sub-TLV6 in method 100; the seventh Sub-TLV in method 300 may correspond to Sub-TLV7 in method 100; and the eighth Sub-TLV in method 300 may correspond to Sub-TLV8 in method 100.

[0334] In one possible implementation, the method further includes: receiving identification information, a second path index, and a second path performance metric value of the target object announced by a second gateway, where the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; and selecting a target path for accessing the target object based on the first path performance metric value, including: selecting the target path for accessing the target object based on the first path performance metric value and the second path performance metric value.

[0335] The second gateway in method 300 may correspond to gateway 2 in method 100; the second path index in method 300 may correspond to path index 2 in method 100; the second path in method 300 may correspond to path 2 in method 100; and the second path performance metric value in method 300 may correspond to path performance metric value 2 in method 100.

[0336] In one possible implementation, receiving the identification information, the second path index, and the second path performance metric value of the target object announced by the second gateway includes: receiving a second route announced by the second gateway, where the second route includes the identification information, the second path index, and the second path performance metric value of the target object.

[0337] The second route in method 300 may correspond to route 2 in method 100 .

[0338] In one possible implementation, the method further includes: receiving identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates performance of the third path; and selecting a target path for accessing the target object based on the first path performance metric value, including: selecting the target path for accessing the target object based on the first path performance metric value and the third path performance metric value.

[0339] The second user site egress device in method 300 may correspond to user site egress device 2 in method 100; the third path index in method 300 may correspond to path index 3 in method 100; the third path performance metric value in method 300 may correspond to path performance metric value 3 in method 100; and the third path in method 300 may correspond to path 3 in method 100.

[0340] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.

[0341] In one possible implementation, the method further includes: receiving identification information of the target object, a fourth path index, and a fourth path performance metric value announced by the first gateway, wherein the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path; and selecting a target path for accessing the target object based on the first path performance metric value includes: selecting a target path for accessing the target object based on the first path performance metric value and the fourth path performance metric value.

[0342] The fourth path index in method 300 may correspond to path index 4 in method 100 ; the fourth path performance metric value in method 300 may correspond to path performance metric value 4 in method 100 ; and the fourth path in method 300 may correspond to path 4 in method 100 .

[0343] In one possible implementation, the receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value announced by the first gateway includes: receiving a third route announced by the first gateway, the third route including the identification information of the target object, the fourth path index, and the fourth path performance metric value.

[0344] The third route in method 300 may correspond to route 3 in method 100 .

[0345] In a possible implementation, the method further includes: receiving a first service message for accessing the target object; encapsulating a target path index identifying the target path into the first service message to obtain a second service message; and sending the second service message.

[0346] The first service message in method 300 may correspond to service message 1 in method 200 ; the second service message in method 300 may correspond to service message 2 in method 200 .

[0347] In a possible implementation, the second service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the target path index.

[0348] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol (UDP) header, an MPLS label stack, and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0349] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.

[0350] In one possible implementation, sending the second service message includes: sending the second service message to the first gateway through the path established between the first user site egress device and the first gateway; or sending the second service message to the second user site egress device to forward the second service message through the second user site egress device.

[0351] In a possible implementation, the receiving the first service message includes:

[0352] A third service message is received from a second user site egress device, where the third service message includes the first service message and a second path index, where the second path index identifies a second path for the second gateway to access the target object; in response to determining that the path to the second gateway is unreachable, the first service message is encapsulated with the target path index to obtain the second service message; or the second path index is determined as the target path index, and the first service message is encapsulated with the target path index to obtain the second service message.

[0353] The third service message in method 300 may correspond to service message 3 in method 100 .

[0354] In a possible implementation, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.

[0355] In a possible implementation manner, the method further includes: saving a correspondence between identification information of the target object, the first path index, and the first path performance metric value.

[0356] Referring to Figure 7b, which is a flow chart of an information notification method provided in an embodiment of the present application, the information notification method 400 shown in Figure 7b can be applied to the above method 100 or 200.

[0357] The information notification method 400 shown in FIG7 b may be executed by a first gateway, which may correspond to gateway 1 in method 100 or method 200 .

[0358] In a specific example, the method 400 may include the following S401-S402.

[0359] S401: Obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path.

[0360] S402: Notify a first user site egress device of identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.

[0361] The first path index in method 400 may correspond to path index 1 in method 100 ; the first path in method 400 may correspond to path 1 in method 100 ; and the first path performance metric value in method 400 may correspond to path performance metric value 1 in method 100 .

[0362] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0363] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0364] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0365] In one possible implementation, notifying a first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the first user site egress device of a first route, where the first route includes the identification information of the target object, the first path index, and the first path performance metric value.

[0366] The first route in method 400 may correspond to route 1 in method 100 .

[0367] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

[0368] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0369] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0370] In a possible implementation, the method further includes: notifying the first user site egress device of a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway.

[0371] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0372] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0373] The first Sub-TLV in method 400 may correspond to Sub-TLV1 in method 100; the second Sub-TLV in method 400 may correspond to Sub-TLV2 in method 100; the third Sub-TLV in method 400 may correspond to Sub-TLV3 in method 100; the fourth Sub-TLV in method 400 may correspond to Sub-TLV4 in method 100; the fifth Sub-TLV in method 400 may correspond to Sub-TLV5 in method 100; the sixth Sub-TLV in method 400 may correspond to Sub-TLV6 in method 100; the seventh Sub-TLV in method 400 may correspond to Sub-TLV7 in method 100; and the eighth Sub-TLV in method 400 may correspond to Sub-TLV8 in method 100.

[0374] In a possible implementation manner, the method further includes: notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.

[0375] The second user site egress device in method 400 may correspond to user site egress device 2 in method 100 .

[0376] In one possible implementation, notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: notifying the second user site egress device of a second route, where the second route includes the identification information of the target object, the first path index, and the first path performance metric value.

[0377] The second route in method 400 may correspond to route 1 in method 100 .

[0378] In a possible implementation manner, the method further includes: notifying the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.

[0379] The second gateway in method 400 may correspond to gateway 2 in method 100 .

[0380] In one possible implementation, the method further includes: obtaining a second path performance metric value of a second path for the first gateway to access a target object, where the second path performance metric value indicates performance of the second path; and notifying the first user site egress device of identification information of the target object, a second path index, and the second path performance metric value, where the second path index identifies the second path.

[0381] The second path in method 400 may correspond to path 4 in method 100 ; the second path performance metric value in method 400 may correspond to path performance metric value 4 in method 100 ; the second path in method 400 may correspond to path 4 in method 100 .

[0382] In one possible implementation, notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: notifying the first user site egress device of a third route, where the third route includes the identification information of the target object, the second path index, and the second path performance metric value.

[0383] The third route in method 400 may correspond to route 3 in method 100 .

[0384] In a possible implementation, the method further includes: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; and forwarding the first service message through the first path according to the first path index.

[0385] The first service message in method 400 may correspond to service message 2 in method 200 .

[0386] In a possible implementation, the encapsulated first service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the first path label.

[0387] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0388] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

[0389] See Figure 8a, which is a structural diagram of a communication device provided in an embodiment of the present application.

[0390] The communication device 810 shown in Figure 8a includes a receiving unit 811 and a processing unit 812. The receiving unit 811 is used to perform a receiving operation, and the processing unit 812 is used to perform other operations except the receiving operation and the sending operation.

[0391] In one example, the communication device 810 can be applied to a first user site egress device, and is used to perform the operations performed by the first user site egress device provided in the above method embodiment.

[0392] A receiving unit 811 is configured to receive identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path;

[0393] The processing unit 812 is configured to select a target path for accessing the target object according to the first path performance metric value.

[0394] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0395] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0396] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0397] In a possible implementation, the receiving unit 811 is configured to receive a first route advertised by the first gateway, where the first route includes identification information of the target object, the first path index, and the first path performance metric.

[0398] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.

[0399] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0400] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0401] In a possible implementation, the receiving unit 811 is further configured to receive a site identifier of a site to which the first gateway belongs, an application type, and a node ID of the first gateway, which are notified by the first gateway.

[0402] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0403] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0404] In one possible implementation, the receiving unit 811 is further configured to: receive identification information, a second path index, and a second path performance metric value of the target object announced by the second gateway, where the second path index identifies the second path for the second gateway to access the target object, and the second path performance metric value indicates the performance of the second path; and the processing unit 812 is configured to: select the target path for accessing the target object based on the first path performance metric value and the second path performance metric value.

[0405] In a possible implementation, the receiving unit 811 is configured to receive a second route advertised by the second gateway, where the second route includes identification information of the target object, the second path index, and the second path performance metric.

[0406] In one possible implementation, the receiving unit 811 is further configured to receive identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, where the third path index identifies a third path for the second user site egress device to access the target object via the Internet, and the third path performance metric value indicates performance of the third path; and the processing unit 812 is configured to select a target path for accessing the target object based on the first path performance metric value and the third path performance metric value.

[0407] In one possible implementation, the first user site egress device accesses the first gateway through an SD-WAN tunnel.

[0408] In one possible implementation, the receiving unit 811 is further configured to receive identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, where the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates the performance of the fourth path; and the processing unit 812 is configured to select a target path for accessing the target object based on the first path performance metric value and the fourth path performance metric value.

[0409] In a possible implementation, the receiving unit 811 is configured to receive a third route advertised by the first gateway, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric.

[0410] In one possible implementation, the receiving unit 811 is further used to: receive a first business message for accessing the target object; the processing unit 812 is further used to encapsulate the first business message with a target path index that identifies the target path to obtain a second business message; the device also includes a sending unit for sending the second business message.

[0411] In a possible implementation, the second service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the target path index.

[0412] In one possible implementation, when the target path index is an MPLS label, the second service message includes a User Datagram Protocol (UDP) header, an MPLS label stack, and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0413] In a possible implementation, when the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.

[0414] In one possible implementation, the sending unit is used to: send the second service message to the first gateway through the path established between the first user site egress device and the first gateway; or send the second service message to the second user site egress device to forward the second service message through the second user site egress device.

[0415] In one possible implementation, the receiving unit 811 is configured to: receive a third service message from a second user site egress device, where the third service message includes the first service message and a second path index, where the second path index identifies a second path for the second gateway to access the target object; the processing unit 812 is configured to: in response to determining that the path to the second gateway is unreachable, encapsulate the first service message with the target path index to obtain the second service message; or, determine the second path index as the target path index, and encapsulate the first service message with the target path index to obtain the second service message.

[0416] In a possible implementation, the third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.

[0417] In a possible implementation, the processing unit 812 is further configured to: save a correspondence between the identification information of the target object, the first path index, and the first path performance metric value.

[0418] See Figure 8b, which is a structural diagram of a communication device provided in an embodiment of the present application.

[0419] The communication device 820 shown in Figure 8b includes: a processing unit 821 and a sending unit 822. The sending unit 822 is used to perform a sending operation, and the processing unit 821 is used to perform other operations except the receiving operation and the sending operation.

[0420] In one example, the communication device 820 may be applied to a first gateway to perform the operations performed by the first gateway provided in the above method embodiment.

[0421] The processing unit 821 is configured to obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path;

[0422] The sending unit 822 is configured to notify the first user site egress device of the identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.

[0423] In a possible implementation, the target object is a Software as a Service (SaaS) application or a data center.

[0424] In a possible implementation, the first path index is: a path number, a Multi-Protocol Label Switching (MPLS) label, or an Internet Protocol version 6 (IPv6) segment routing identifier (SRv6) SID.

[0425] In one possible implementation, when the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID. In a specific implementation, the node function associated with the SRv6 SID is END.DT2SaasPath, which indicates that the node removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

[0426] In a possible implementation, the sending unit 822 is configured to notify the first user site egress device of a first route, where the first route includes identification information of the target object, the first path index, and the first path performance metric.

[0427] In a possible implementation, the first route further includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

[0428] In a possible implementation, the route type field of the first route indicates that the first route is a path performance route associated with the target object.

[0429] In one possible implementation, the first route is a route announced based on a software-defined wide area network SD-WAN address family or an SD-WAN sub-address family.

[0430] In a possible implementation, the sending unit 822 is further configured to notify the first user site egress device of the site identifier of the site to which the first gateway belongs, the application type, and the node ID of the first gateway.

[0431] In a possible implementation, the first path performance metric includes one or more of the following: delay, packet loss rate, jitter, bandwidth, path status, and quality of experience (QoE).

[0432] In one possible implementation, the first route includes one or more of the following: a first subtype length value Sub-TLV, indicating a transmission delay of the first path; a second Sub-TLV, indicating a packet loss rate of the first path; a third Sub-TLV, indicating a jitter of the first path; a fourth Sub-TLV, indicating a bandwidth of the first path; a fifth Sub-TLV, indicating a path status of the first path; a sixth Sub-TLV, indicating a QoE of the first path; a seventh Sub-TLV, indicating a name of the target object; and an eighth Sub-TLV, indicating a domain name of the target object.

[0433] In a possible implementation, the sending unit 822 is further configured to notify the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value.

[0434] In a possible implementation, the sending unit 822 is configured to notify the second user site egress device of a second route, where the second route includes identification information of the target object, the first path index, and the first path performance metric.

[0435] In a possible implementation, the sending unit 822 is further configured to notify the second gateway of the identification information of the target object, the first path index, and the first path performance metric value.

[0436] In one possible implementation, the processing unit 821 is further used to: obtain a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates the performance of the second path; and the sending unit 822 is further used to notify the first user site egress device of the identification information of the target object, a second path index, and the second path performance metric value, where the second path index identifies the second path.

[0437] In a possible implementation, the sending unit 822 is configured to notify the first user site egress device of a third route, where the third route includes identification information of the target object, the second path index, and the second path performance metric.

[0438] In one possible implementation, the device further includes: a receiving unit for receiving an encapsulated first business message, wherein the outer layer of the first business message is encapsulated with the first path index; and the sending unit 822 is further used to forward the first business message through the first path according to the first path index.

[0439] In a possible implementation, the encapsulated first service message includes a Generic Routing Encapsulation (GRE) header, and the GRE header includes the first path label.

[0440] In one possible implementation, when the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

[0441] In a possible implementation, when the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

[0442] In addition, an embodiment of the present application further provides a communication device 900, as shown in Figure 9, which is a schematic structural diagram of a communication device provided in an embodiment of the present application. The communication device 900 includes a communication interface 901 and a processor 902 connected to the communication interface 901. The communication device 900 can be used to execute method 100, method 200, method 300, or method 400 in the above embodiments.

[0443] When the communication device 900 is used to execute the above method 100:

[0444] In one example, communication device 900 is equivalent to gateway 1 in method 100. Communication interface 901 is configured to execute the sending and receiving operations performed by gateway 1 in method 100. Processor 902 is configured to execute operations other than the sending and receiving operations performed by gateway 1 in method 100. For example, processor 902 is configured to obtain path performance metric 1 for path 1 used by gateway 1 to access a target object, where path performance metric 1 indicates the performance of path 1; and communication interface 901 is configured to notify user site egress device 1 of identification information of the target object, path index 1, and path performance metric 1, where path index 1 identifies path 1.

[0445] In another example, communication device 900 is equivalent to gateway 1 in method 100. Communication interface 901 is configured to execute the sending and receiving operations performed by user site egress device 1 in method 100. Processor 902 is configured to execute operations other than the sending and receiving operations performed by user site egress device 1 in method 100. For example, communication interface 901 is configured to receive identification information of a target object, path index 1, and path performance metric 1 announced by gateway 1; processor 902 is configured to select a target path to access the target object based on path performance metric 1.

[0446] When the communication device 900 is used to execute the above method 200, the communication device 900 is equivalent to the user site egress device 1 in method 200. The communication interface 901 is used to perform the sending and receiving operations performed by the user site egress device 1 in method 200. The processor 902 is used to perform operations other than the sending and receiving operations performed by the user site egress device 1 in method 200. For example, the communication interface 901 is used to receive a service message 1 for accessing a target object; the processor 902 is used to encapsulate the target path index of the target path in the service message 1 to obtain a service message 2; and the communication interface 901 is further used to send the service message 2.

[0447] When the communication device 900 is used to execute the above method 300, the communication device 900 is equivalent to the first user site egress device in method 300. The communication interface 901 is used to execute the sending and receiving operations performed by the first user site egress device in method 300. The processor 902 is used to execute operations other than the sending and receiving operations performed by the first user site egress device in method 300. For example: the communication interface 901 is used to receive identification information, a first path index, and a first path performance metric value of a target object announced by a first gateway, where the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; and the processor 902 is used to select a target path for accessing the target object based on the first path performance metric value.

[0448] When the communication device 900 is used to execute the above method 400, the communication device 900 is equivalent to the first gateway in method 400. The communication interface 901 is used to execute the sending and receiving operations performed by the first gateway in method 400. The processor 902 is used to execute operations other than the sending and receiving operations performed by the first gateway in method 400. For example, the processor 902 is used to obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates the performance of the first path; and the communication interface 901 is used to notify the first user site egress device of the identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.

[0449] In addition, the present invention also provides a communication device 1000, as shown in Figure 10, which is a schematic diagram of the structure of a communication device provided in the present invention. The communication device 1000 can be used to execute the method 100, 200, 300, or 400 in the above embodiments.

[0450] As shown in Figure 10, the communication device 1000 may include a processor 1010, a memory 1020 coupled to the processor 1010, and a transceiver 1030. The transceiver 1030 may be, for example, a communication interface, an optical module, etc. The processor 1010 may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP. The processor may also be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination 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. The processor 1010 may be a single processor or may include multiple processors. Memory 1020 may include volatile memory, such as random-access memory (RAM); non-volatile memory, such as read-only memory (ROM), flash memory, a hard disk drive (HDD), or a solid-state drive (SSD); or a combination of the aforementioned types of memory. Memory 1020 may be a single memory or may include multiple memories. In one embodiment, memory 1020 stores computer-readable instructions, which include multiple software modules, such as a sending module 1021, a processing module 1022, and a receiving module 1023. After executing each software module, processor 1010 may perform corresponding operations according to the instructions of each software module. In this embodiment, the operations performed by a software module actually refer to the operations performed by processor 1010 according to the instructions of the software module.

[0451] When the communication device 1000 is used to execute the above method 100:

[0452] In one example, communication device 1000 corresponds to gateway 1 in method 100. Transceiver 1030 is configured to execute the transceiver operations performed by gateway 1 in method 100. Processor 1010 is configured to execute operations other than the transceiver operations performed by gateway 1 in method 100. For example, processor 1010 is configured to obtain path performance metric 1 for path 1 used by gateway 1 to access a target object, where path performance metric 1 indicates the performance of path 1. Transceiver 1030 is configured to notify user site egress device 1 of identification information of the target object, path index 1, and path performance metric 1, where path index 1 identifies path 1.

[0453] In another example, communication device 1000 is equivalent to gateway 1 in method 100. Transceiver 1030 is configured to perform the transceiver operations performed by user site egress device 1 in method 100. Processor 1010 is configured to perform operations other than the transceiver operations performed by user site egress device 1 in method 100. For example, transceiver 1030 is configured to receive identification information of a target object, path index 1, and path performance metric 1 announced by gateway 1; processor 1010 is configured to select a target path to access the target object based on path performance metric 1.

[0454] When the communication device 1000 is used to perform the above method 200, the communication device 1000 is equivalent to the user site egress device 1 in method 200. The transceiver 1030 is used to perform the transceiver operations performed by the user site egress device 1 in method 200. The processor 1010 is used to perform operations other than the transceiver operations performed by the user site egress device 1 in method 200. For example, the transceiver 1030 is used to receive a service message 1 for accessing a target object; the processor 1010 is used to encapsulate the target path index of the target path in the service message 1 to obtain a service message 2; and the transceiver 1030 is further used to transmit the service message 2.

[0455] When the communication device 1000 is used to execute the above method 300, the communication device 1000 is equivalent to the first user site egress device in method 300. The transceiver 1030 is used to execute the transceiver operations executed by the first user site egress device in method 300. The processor 1010 is used to execute operations other than the transceiver operations executed by the first user site egress device in method 300. For example, the transceiver 1030 is used to receive identification information of a target object, a first path index, and a first path performance metric value announced by a first gateway, where the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates the performance of the first path; and the processor 1010 is used to select a target path for accessing the target object based on the first path performance metric value.

[0456] When the communication device 1000 is used to execute the above method 400, the communication device 1000 is equivalent to the first gateway in method 400. The transceiver 1030 is used to perform the transceiver operations performed by the first gateway in method 400. The processor 1010 is used to perform operations other than the transceiver operations performed by the first gateway in method 400. For example, the processor 1010 is used to obtain a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates the performance of the first path; and the transceiver 1030 is used to notify the first user site egress device of the identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.

[0457] The present application also provides a computer-readable storage medium, which stores instructions or computer programs. When the instruction computer program runs on a processor, it can implement any one or more operations of the methods described in the above embodiments (for example, method 100 or method 200 or method 300 or method 400).

[0458] The present application also provides a computer program product, including a computer program, which, when executed on a processor, can implement any one or more operations of the methods described in the foregoing embodiments (e.g., method 100, method 200, method 300, or method 400).

[0459] Embodiments of the present application also provide a communication system for executing the routing method and / or information notification method provided in the above method embodiments. In one example, the communication system includes: the gateway 1 and the user site egress device 1 described in method 100. In another example, the communication system includes: the first user site egress device executing method 300 described above and the first gateway executing method 400 described above.

[0460] The terms "first," "second," "third," "fourth," and the like (if any) in the specification and claims of this application and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or sequential sequence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising 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.

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

[0462] In the several 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 example, the division of units is only a logical business division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.

[0463] Units described as separate components may or may not be physically separate, and 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 these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0464] In addition, each business unit in each embodiment of the present application can be integrated into a processing unit, each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or software business units.

[0465] If the integrated unit is implemented in the form of 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 the present application, 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, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0466] Those skilled in the art will appreciate that, in one or more of the above examples, the services described herein can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these services can be stored on a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, including any medium that facilitates the transmission of computer programs from one location to another. Storage media can be any available medium that can be accessed by a general-purpose or special-purpose computer.

[0467] The above specific implementation methods further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation methods of the present invention.

[0468] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A routing method, characterized in that: Applied to a first user site egress device, the method comprises: receiving identification information of a target object notified by a first gateway, a first path index, and a first path performance metric value, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path; A target path for accessing the target object is selected according to the first path performance metric value.

2. The method according to claim 1, characterized in that The target object is a Software as a Service (SaaS) application or a data center.

3. The method according to claim 1 or 2, characterized in that: The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 (IPv6) Segment Routing (SRv6) SID.

4. The method according to claim 3, characterized in that: When the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation of the node and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

5. The method according to any one of claims 1 to 4, characterized in that: The receiving of identification information of the target object, the first path index and the first path performance metric value notified by the first gateway includes: A first route announced by the first gateway is received, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.

6. The method according to claim 5, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.

7. The method according to claim 5 or 6, characterized in that: The route type field of the first route indicates that the first route is a path performance route associated with the target object.

8. The method according to any one of claims 5 to 7, characterized in that: The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.

9. The method according to any one of claims 1 to 8, characterized in that: The method further comprises: Receive the site identifier of the site to which the first gateway belongs, the application type, and the node identifier of the first gateway notified by the first gateway.

10. The method according to any one of claims 1 to 9, characterized in that: The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).

11. The method according to any one of claims 5 to 8, characterized in that: The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.

12. The method according to any one of claims 1 to 11, characterized in that: The method further comprises: receiving identification information of the target object, a second path index, and a second path performance metric value notified by a second gateway, wherein the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates performance of the second path; Selecting a target path for accessing the target object according to the first path performance metric value includes: The target path for accessing the target object is selected according to the first path performance metric value and the second path performance metric value.

13. The method according to claim 12, characterized in that The receiving the identification information of the target object, the second path index and the second path performance metric value notified by the second gateway includes: A second route announced by the second gateway is received, where the second route includes identification information of the target object, the second path index, and the second path performance metric value.

14. The method according to any one of claims 1 to 13, characterized in that: The method further comprises: receiving identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object through the Internet, and the third path performance metric value indicates performance of the third path; Selecting a target path for accessing the target object according to the first path performance metric value includes: A target path for accessing the target object is selected according to the first path performance metric value and the third path performance metric value.

15. The method according to any one of claims 1 to 14, characterized in that: The first user site egress device accesses the first gateway through the SD-WAN tunnel.

16. The method according to any one of claims 1 to 15, characterized in that: The method further comprises: receiving identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, wherein the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates performance of the fourth path; The step of selecting a target path for accessing the target object according to the first path performance metric value includes: A target path for accessing the target object is selected according to the first path performance metric value and the fourth path performance metric value.

17. The method according to claim 16, characterized in that The receiving the identification information of the target object, the fourth path index, and the fourth path performance metric value notified by the first gateway includes: A third route announced by the first gateway is received, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric value.

18. The method according to any one of claims 1 to 17, characterized in that: The method further comprises: Receiving a first service message for accessing the target object; Encapsulating the first service message with a target path index that identifies the target path to obtain a second service message; Send the second service message.

19. The method according to claim 18, characterized in that The second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.

20. The method according to claim 18, characterized in that When the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.

21. The method according to claim 18, characterized in that When the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.

22. The method according to any one of claims 18 to 21, characterized in that: The sending the second service message includes: sending the second service message to the first gateway through a path established between the first user site egress device and the first gateway; or, The second service message is sent to a second user site egress device so that the second service message is forwarded through the second user site egress device.

23. The method according to any one of claims 18 to 21, characterized in that: The receiving the first service message includes: receiving a third service message from a second user site egress device, wherein the third service message includes the first service message and a second path index, wherein the second path index identifies a second path for a second gateway to access the target object; The step of encapsulating the first service message and identifying the target path index of the target path to obtain a second service message includes: In response to determining that the path to the second gateway is unreachable, encapsulating the target path index into the first service message to obtain the second service message; or, determining the second path index as the target path index, and encapsulating the target path index into the first service message to obtain the second service message.

24. The method according to claim 23, characterized in that The third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.

25. The method according to any one of claims 1 to 24, characterized in that: The method further comprises: The corresponding relationship among the identification information of the target object, the first path index and the first path performance metric value is saved.

26. An information notification method, characterized in that: Applied to a first gateway, the method includes: Acquire a first path performance metric value of a first path for the first gateway to access a target object, where the first path performance metric value indicates performance of the first path; The identification information of the target object, the first path index, and the first path performance metric value are notified to a first user site egress device, where the first path index identifies the first path.

27. The method according to claim 26, characterized in that The target object is a Software as a Service (SaaS) application or a data center.

28. The method according to claim 26 or 27, characterized in that The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 (IPv6) Segment Routing (SRv6) SID.

29. The method according to claim 28, characterized in that When the target object is a SaaS application and the first path index is an SRv6 SID, the node function node associated with the SRv6 SID removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

30. The method according to any one of claims 26 to 29, characterized in that: The notifying the first user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: A first route is notified to the first user site egress device, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.

31. The method according to claim 30, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

32. The method according to claim 30 or 31, characterized in that The route type field of the first route indicates that the first route is a path performance route associated with the target object.

33. The method according to any one of claims 30 to 32, characterized in that: The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.

34. The method according to any one of claims 26 to 33, characterized in that: The method further comprises: The first user site egress device is notified of the site identifier of the site to which the first gateway belongs, the application type, and the node identifier of the first gateway.

35. The method according to any one of claims 26 to 34, characterized in that: The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).

36. The method according to any one of claims 30 to 33, characterized in that: The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.

37. The method according to any one of claims 26 to 36, characterized in that: The method further comprises: The identification information of the target object, the first path index, and the first path performance metric value are notified to a second user site egress device.

38. The method according to claim 37, characterized in that The notifying the second user site egress device of the identification information of the target object, the first path index, and the first path performance metric value includes: A second route is notified to the second user site egress device, where the second route includes identification information of the target object, the first path index, and the first path performance metric value.

39. The method according to any one of claims 26 to 38, characterized in that: The method further comprises: The identification information of the target object, the first path index, and the first path performance metric value are notified to the second gateway.

40. The method according to any one of claims 26 to 39, characterized in that: The method further comprises: Acquire a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates performance of the second path; The identification information of the target object, the second path index, and the second path performance metric value are notified to the first user site egress device, where the second path index identifies the second path.

41. The method according to claim 40, characterized in that The notifying the first user site egress device of the identification information of the target object, the second path index, and the second path performance metric value includes: A third route is notified to the first user site egress device, where the third route includes identification information of the target object, the second path index, and the second path performance metric value.

42. The method according to claims 26-41, characterized in that The method further comprises: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; The first service message is forwarded through the first path according to the first path index.

43. The method according to claim 42, characterized in that The encapsulated first service message includes a general routing encapsulation GRE header, and the GRE header includes the first path label.

44. The method according to claim 42, characterized in that When the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

45. The method according to claim 42, characterized in that When the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

46. ​​A communication device, characterized in that: Applied to a first user site egress device, the device comprises: a transceiver unit, configured to receive identification information of a target object, a first path index, and a first path performance metric value notified by a first gateway, wherein the first path index identifies a first path for the first gateway to access the target object, and the first path performance metric value indicates performance of the first path; A processing unit is configured to select a target path for accessing the target object according to the first path performance metric value.

47. The device according to claim 46, characterized in that The target object is a Software as a Service (SaaS) application or a data center.

48. The device according to claim 46 or 47, characterized in that The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 (IPv6) Segment Routing (SRv6) SID.

49. The device according to claim 48, characterized in that When the target object is a SaaS application and the first path index is an SRv6 SID, the node function associated with the SRv6 SID is to remove the SRv6 encapsulation of the node and send the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

50. The device according to any one of claims 46 to 49, characterized in that The transceiver unit is used for: A first route announced by the first gateway is received, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.

51. The device according to claim 50, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index carried in the first route, where the type is a path number, an MPLS label, or an SRv6 SID.

52. The device according to claim 50 or 51, characterized in that The route type field of the first route indicates that the first route is a path performance route associated with the target object.

53. The device according to any one of claims 50 to 52, characterized in that The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.

54. The device according to any one of claims 46 to 53, characterized in that The transceiver unit is further used for: Receive the site identifier, application type, and node number of the site to which the first gateway belongs notified by the first gateway Point identification node ID.

55. The device according to any one of claims 46 to 54, characterized in that The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).

56. The device according to any one of claims 50 to 53, characterized in that The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.

57. The device according to any one of claims 46 to 56, characterized in that The transceiver unit is further used for: receiving identification information of the target object, a second path index, and a second path performance metric value notified by a second gateway, wherein the second path index identifies a second path for the second gateway to access the target object, and the second path performance metric value indicates performance of the second path; The processing unit is used for: The target path for accessing the target object is selected according to the first path performance metric value and the second path performance metric value.

58. The device according to claim 57, characterized in that The transceiver unit is used for: A second route announced by the second gateway is received, where the second route includes identification information of the target object, the second path index, and the second path performance metric value.

59. The device according to any one of claims 46 to 58, characterized in that The transceiver unit is further used for: receiving identification information of the target object, a third path index, and a third path performance metric value notified by a second user site egress device, wherein the third path index identifies a third path for the second user site egress device to access the target object through the Internet, and the third path performance metric value indicates performance of the third path; The processing unit is used for: A target path for accessing the target object is selected according to the first path performance metric value and the third path performance metric value.

60. The device according to any one of claims 46 to 59, characterized in that The first user site egress device accesses the first gateway through the SD-WAN tunnel.

61. The device according to any one of claims 46 to 60, characterized in that The transceiver unit is further used for: receiving identification information of the target object, a fourth path index, and a fourth path performance metric value notified by the first gateway, wherein the fourth path index identifies a fourth path for the first gateway to access the target object, and the fourth path performance metric value indicates performance of the fourth path; The processing unit is used for: A target path for accessing the target object is selected according to the first path performance metric value and the fourth path performance metric value.

62. The device according to claim 61, characterized in that The transceiver unit is used for: A third route announced by the first gateway is received, where the third route includes identification information of the target object, the fourth path index, and a fourth path performance metric value.

63. The device according to any one of claims 46 to 62, characterized in that The transceiver unit is further used for: Receiving a first service message for accessing the target object; The processing unit is further configured to encapsulate a target path index identifying the target path for the first service message to obtain a second service message; The transceiver unit is further used to send the second service message.

64. The device according to claim 63, characterized in that The second service message includes a generic routing encapsulation (GRE) header, and the GRE header includes the target path index.

65. The device according to claim 63, characterized in that When the target path index is an MPLS label, the second service message includes a User Datagram Protocol UDP header, an MPLS label stack and a payload, the MPLS label stack includes the target path index, the payload includes the first service message, and the MPLS label stack is located between the UDP header and the payload.

66. The device according to claim 63, characterized in that When the target path index is an SRv6 SID, the second service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes an SRv6 segment list SID list, and the SRv6 SID list includes the target path index.

67. The device according to any one of claims 63 to 66, characterized in that The transceiver unit is used for: sending the second service message to the first gateway through a path established between the first user site egress device and the first gateway; or, The second service message is sent to a second user site egress device so that the second service message is forwarded through the second user site egress device.

68. The device according to any one of claims 63 to 66, characterized in that The transceiver unit is used for: receiving a third service message from a second user site egress device, wherein the third service message includes the first service message and a second path index, wherein the second path index identifies a second path for a second gateway to access the target object; The processing unit is used for: In response to determining that the path to the second gateway is unreachable, encapsulating the target path index into the first service message to obtain the second service message; or, determining the second path index as the target path index, and encapsulating the target path index into the first service message to obtain the second service message.

69. The device according to claim 68, characterized in that The third service message includes an IP header and a payload, the second path index is located between the IP header and the payload, and the payload includes the first service message.

70. The device according to any one of claims 46 to 69, characterized in that The processing unit is further used for: The corresponding relationship among the identification information of the target object, the first path index and the first path performance metric value is saved.

71. A communication device, characterized in that: Applied to a first gateway, the device comprises: A processing unit, configured to obtain a first path performance metric value of a first path for the first gateway to access a target object, wherein the first path performance metric value indicates a performance of the first path; The transceiver unit is configured to notify the first user site egress device of the identification information of the target object, a first path index, and the first path performance metric value, where the first path index identifies the first path.

72. The device according to claim 71, characterized in that The target object is a Software as a Service (SaaS) application or a data center.

73. The device according to claim 71 or 72, characterized in that The first path index is: Path number, Multiprotocol Label Switching (MPLS) label, or Internet Protocol version 6 (IPv6) Segment Routing (SRv6) SID.

74. The device according to claim 73, characterized in that When the target object is a SaaS application and the first path index is an SRv6 SID, the node function node associated with the SRv6 SID removes the SRv6 encapsulation and sends the message to the target SaaS application according to the outbound interface corresponding to the SRv6 SID.

75. The device according to any one of claims 71 to 74, characterized in that The transceiver unit is used for: A first route is notified to the first user site egress device, where the first route includes identification information of the target object, the first path index, and the first path performance metric value.

76. The device according to claim 75, characterized in that The first route also includes indication information, where the indication information is used to indicate a type of the first path index, where the type is a path number, an MPLS label, or an SRv6 SID.

77. The device according to claim 75 or 76, characterized in that The route type field of the first route indicates that the first route is a path performance route associated with the target object.

78. The device according to any one of claims 75 to 77, characterized in that The first route is a route announced based on the software-defined wide area network SD-WAN address family or SD-WAN sub-address family.

79. The device according to any one of claims 71 to 78, characterized in that The transceiver unit is further used for: The first user site egress device is notified of the site identifier of the site to which the first gateway belongs, the application type, and the node identifier of the first gateway.

80. The device according to any one of claims 71 to 79, characterized in that The first path performance metric value includes one or more of the following: Delay, packet loss rate, jitter, bandwidth, path status and quality of experience (QoE).

81. The device according to any one of claims 75 to 78, characterized in that The first route includes one or more of the following: A first subtype length value Sub-TLV, indicating a transmission delay of the first path; A second Sub-TLV, indicating a packet loss rate of the first path; A third Sub-TLV indicating jitter of the first path; A fourth Sub-TLV, indicating a bandwidth of the first path; A fifth Sub-TLV, indicating a path status of the first path; A sixth Sub-TLV, indicating the QoE of the first path; The seventh Sub-TLV indicates the name of the target object; The eighth Sub-TLV indicates the domain name of the target object.

82. The device according to any one of claims 71 to 81, characterized in that The transceiver unit is further used for: The identification information of the target object, the first path index, and the first path performance metric value are notified to a second user site egress device.

83. The device according to claim 82, characterized in that The transceiver unit is used for: A second route is notified to the second user site egress device, where the second route includes identification information of the target object, the first path index, and the first path performance metric value.

84. The device according to any one of claims 71 to 83, characterized in that The transceiver unit is further used for: The identification information of the target object, the first path index, and the first path performance metric value are notified to the second gateway.

85. The device according to any one of claims 71 to 84, characterized in that The processing unit is further used to: obtain a second path performance metric value of a second path for the first gateway to access the target object, where the second path performance metric value indicates the performance of the second path; The transceiver unit is further configured to notify the first user site egress device of the identification information of the target object, a second path index, and the second path performance metric value, where the second path index identifies the second path.

86. The device according to claim 85, characterized in that The transceiver unit is used for: A third route is notified to the first user site egress device, where the third route includes identification information of the target object, the second path index, and the second path performance metric value.

87. The device according to claims 71-86, characterized in that The transceiver unit is further used for: receiving an encapsulated first service message, wherein an outer layer of the first service message is encapsulated with the first path index; The first service message is forwarded through the first path according to the first path index.

88. The device according to claim 87, characterized in that The encapsulated first service message includes a general routing encapsulation GRE header, and the GRE header includes the first path label.

89. The device according to claim 87, characterized in that When the first path index is an MPLS label, the encapsulated first service message includes a UDP header, an MPLS label stack and a payload, the MPLS label stack includes the first path index, the payload carries the first service message, and the MPLS label stack is located between the UDP header and the payload.

90. The device according to claim 87, characterized in that When the first path index is an SRv6 SID, the encapsulated first service message includes: a general network virtualization encapsulation GENEVE header, the GENEVE header includes a segment list SID list, and the SID list includes the first path index.

91. A communication device, characterized in that: include: Processor and memory; The memory is used to store instructions; The processor is used to execute the instructions so that the communication device performs the method described in any one of claims 1-45.

92. A communication system, characterized in that: The system comprises: A first user site egress device that executes the method described in any one of claims 1 to 25, and a first gateway that executes the method described in any one of claims 26 to 45.

93. A computer-readable storage medium, characterized in that The method comprises instructions or computer programs, which, when executed on a processor, implement the method according to any one of claims 1 to 45.

94. A computer program product, characterized in that The invention comprises a computer program which, when executed on a processor, executes the method according to any one of claims 1 to 45 above.

Citation Information

Patent Citations

  • Routing method, information processing method and device

    CN119341971A

  • Multipath selection method and multipath selection equipment

    CN106685821A

  • Routing method and equipment

    CN115150312A

  • Data transmission method, routing cluster and edge node

    CN115277539A

  • Data transmission method, system and device, storage medium and program product

    CN115834556A