Communication method and related device

By sending probe messages carrying different TTL and identification information in parallel, the problem of low path information accuracy in path detection schemes is solved, and more accurate network quality analysis and proxy device path detection are achieved.

CN121644680APending Publication Date: 2026-03-10HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

In existing path detection schemes, detection packets may be hashed to different paths, resulting in low accuracy of path information. Furthermore, when proxy devices are present, path information after the proxy devices cannot be detected, affecting the accuracy of network quality analysis.

Method used

By sending probe packets with different TTL and identification information in parallel, and determining the path by receiving response packets from the terminal node, the accuracy of path detection and the determination of the hop count of network devices are improved.

Benefits of technology

It improves the accuracy of path detection and network quality analysis, enhances the temporal correlation of hop-by-hop quality of service indicators, and is suitable for communication systems with proxy devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121644680A_ABST
    Figure CN121644680A_ABST
Patent Text Reader

Abstract

The invention discloses a communication method and a related device. In the method, a first communication device sends N first detection messages in a first detection stream to a second communication device in parallel, N being an integer greater than or equal to 2. In the N first detection messages, each first detection message carries different TTL (Transistor-Transistor Logic) and different identification information. A first communication device receives M first messages, each first message carries an address of a terminal node of a first detection message and identification information of the first detection message, the hop count from the terminal node to the first communication device is equal to the TTL of the first detection message, and M is an integer greater than 0 and less than or equal to N. And the first communication device determines a reachable path between the first communication device and the second communication device according to the M first messages. In the application, the N first detection messages belong to the first detection stream, so that the N first detection messages are hash to the same path as much as possible. Therefore, the accuracy of path detection is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a communication method and related apparatus. Background Technology

[0002] In communication networks, path probing is a crucial task. Path probing is used to detect the transmission path of data packets within the network, as well as the network's structure and performance.

[0003] In current path probing schemes, the source device (hereinafter referred to as the source) sends a series of probe packets, each carrying a different Time-to-Live (TTL). The TTL value of the probe packet typically starts from 1 and increments. The TTL of the probe packet determines the maximum number of hops that the probe packet can traverse in the network. The TTL of the probe packet is decremented by 1 for each network device it passes through. Therefore, by gradually increasing the TTL of the probe packets sent, the source can control the propagation range of the probe packets in the network, thereby gradually discovering each network device in the network.

[0004] When the Time-To-Live (TTL) of a probe packet drops to 0 on a network device, that device sends an Internet Control Message Protocol (ICMP) timeout message to the source. To distinguish ICMP timeout messages from different network devices, the source uses a different port number for each probe packet. Therefore, the source can determine which probe packet the ICMP timeout message is for by using the port number carried in the ICMP timeout message. Thus, when an ICMP timeout message is received from a point in the network, it can be determined which probe it is a response to by matching the port number carried in the ICMP message.

[0005] Because the source continuously modifies the port number of the probe packets, these probe packets may be hashed to different paths. Therefore, when the source performs path concatenation based on these probe packets, the accuracy of the resulting path information is low. Summary of the Invention

[0006] This application provides a communication method and related apparatus for improving the efficiency of path detection.

[0007] Firstly, this application provides a communication method. This method is applied to a first communication device, which may be a terminal device, a server, or a network device; or it may be a communication module / processing module within the terminal device, server, or network device; or a circuit or chip responsible for communication functions within the terminal device, server, or network device (such as a modem chip, also known as a baseband chip, or a system-on-chip (SoC) chip containing a modem core, or a system-in-package (SIP) chip); or a circuit or chip responsible for processing functions within the terminal device, server, or network device (such as a graphics processing unit (GPU)). In this method, the first communication device sends N first probe messages from a first probe stream to a second communication device in parallel. The N first probe messages belong to some or all of the messages in the first probe stream, and N is an integer greater than or equal to 2. Each of the N first probe messages carries a different TTL and different identification information. Therefore, the TTL and identification information of the first probe message are in one-to-one correspondence, with each identification information corresponding to a TTL, or in other words, each TTL corresponding to an identification information.

[0008] After the first communication device sends N first probe messages in parallel, these N first probe messages will be forwarded by the network devices between the first and second communication devices. The TTL (Time-To-Live) of the first probe message determines the maximum number of hops it can traverse in the network, or in other words, the TTL determines the number of times it can be forwarded by the network devices. Each time a first probe message passes through a network device, its TTL is decremented by 1. When a first probe message reaches a network device and its TTL drops to 0, it cannot be forwarded further, and the network device will discard it. This network device is the terminator of the first probe message whose TTL has dropped to 0. In other words, the terminator in this application refers to the network device reached by the first probe message when its TTL drops to 0. Therefore, it can be understood that the number of hops from the terminator to the first communication device is equal to the TTL of the first probe message.

[0009] Furthermore, after the TTL of the first probe message decreases to 0 at the termination node, the termination node sends a first message to the first communication device. This first message carries the identification information of the first probe message and the address of the termination node. As can be seen above, the first communication device sends N first probe messages in parallel, and since the TTLs of these N first probe messages are different, they will terminate on different network devices (i.e., their TTLs decrease to 0). Therefore, the first communication device will receive M first messages, each of which responds to one first probe message. Each first message carries the address of the termination node of the first probe message and its identification information. M is an integer greater than 0 and less than or equal to N. Optionally, the IP address of the termination node can be used as the source address in the first message, and the IP address of the first communication device can be used as the destination address.

[0010] After receiving M first messages, the first communication device determines the reachable path between the first communication device and the second communication device based on the M first messages. In this application, since the N first probe messages belong to the same first probe stream, the five-tuples of the first probe messages are the same, making it possible for the N first probe messages to hash to the same path as much as possible. This improves the accuracy of path detection. On the other hand, since the first probe messages carrying different TTLs are sent in parallel, the N first probe messages can probe multi-hop network devices in parallel, improving the time correlation of hop-by-hop service level agreement (SLA) metrics and improving the accuracy of network quality analysis.

[0011] Optionally, since each first message carries the address of the terminal node of a first probe message and the identification information of the first probe message, and in this application, the first probe message corresponds to a TTL and identification information, therefore, when the first communication device determines the TTL corresponding to the address of the terminal node based on the identification information of the first probe message and the address of the terminal node carried in the first message, it can determine the number of hops between the terminal node and the first communication device.

[0012] Based on the first aspect, in one optional implementation, the identification information of each first probe packet is the sequence number of the first probe packet. For example, when the transport layer protocol of the first probe packet is TCP, the identification information of the first probe packet can be the sequence number in the TCP header of the first probe packet.

[0013] Based on the first aspect, in an optional implementation, the identification information of each first probe packet is the length field of the first probe packet. Specifically, when the transport layer protocol of the first probe packet is UDP, the first communication device can fill in information in the payload of the first probe packet during the construction of the first probe packet to change the length field of the first probe packet, thereby marking the first probe packet through the length field. For example, when the transport layer protocol of the first probe packet is UDP, the identification information of the first probe packet can be the length field in the UDP header of the first probe packet. When the first probe packet passes through a network address translation (NAT) device, the NAT device will not change the length field of the first probe packet, thereby improving the accuracy of the identification information carried by the first packet.

[0014] Based on the first aspect, in one optional implementation, the identification information of each first probe packet is the checksum of the first probe packet. For example, when the transport layer protocol of the first probe packet is UDP, the identification information of the first probe packet can be the checksum in the UDP header of the first probe packet.

[0015] Based on the first aspect, in one optional implementation, after the first probe message is transmitted to the second communication device, the second communication device sends a second message to the first communication device. The second message carries the address of the second communication device and the identification information of the first probe message. After receiving the second message, the first communication device can determine the reachable path between the first and second communication devices based on the address of the second communication device and the identification information of the first probe message carried in the second message. Next, the first communication device sends X second probe messages from the second probe stream to the second communication device in parallel. Each of the X second probe messages carries a different TTL and identification information, where X is an integer greater than or equal to 2. The X second probe messages belong to some or all of the messages in the second probe stream. Since the X second probe messages are probe messages from the same probe stream (i.e., the second probe stream), and the 5-tuples of probe messages in the same probe stream are identical, the 5-tuples of the X second probe messages are also identical. The description of the TTL and identification information in the second probe message is similar to that in the first probe message, and will not be repeated here.

[0016] Since the second probe stream is a different probe stream from the first probe stream, the quintuple between the X second probe messages in the second probe stream and the N first probe messages in the first probe stream is different. Therefore, the transmission path of the X second probe messages will also be different from the transmission path of the N first probe messages. As a result, the first communication device detects another reachable path between the first communication device and the second communication device.

[0017] Based on the first aspect, in one optional implementation, the first communication device determines the delay and / or packet loss of the reachable path between the first communication device and the second communication device based on the received M first messages, so as to obtain a hop-by-hop SLA with high time correlation.

[0018] Based on the first aspect, in one optional implementation, a proxy device exists between the source and the destination. In this scenario, the source sends probe packets to the proxy device, and the proxy device also sends probe packets to the destination. The source address of the probe packets sent by the source is the IP address of the source, and the destination address is the IP address of the proxy device; the source address of the probe packets sent by the proxy device is the IP address of the proxy device, and the destination address is the IP address of the destination. The communication method provided in this application is also applicable to communication systems with proxy devices.

[0019] Optionally, the first communication device serves as a proxy device between the third and second communication devices, i.e., the third communication device is the source, the second communication device is the destination, and the first communication device acts as a proxy between the source and destination. Therefore, in this scenario, the first and second communication devices execute the communication method of this application to detect the reachable path between the proxy device (first communication device) and the destination (second communication device). Furthermore, the third and first communication devices execute the communication method of this application, i.e., the third communication device sends a probe message to the first communication device to detect the reachable path between the source (third communication device) and the proxy device (first communication device). Then, the reachable path between the source (third communication device) and the proxy device (first communication device) and the reachable path between the proxy device (first communication device) and the destination (second communication device) are concatenated to obtain the reachable path between the source (third communication device) and the destination (second communication device). The process of the third and first communication devices executing the communication method of this application is similar to the aforementioned process of the first and second communication devices executing the communication method of this application, and will not be repeated here.

[0020] Optionally, the second communication device serves as a proxy device between the first and third communication devices, i.e., the first communication device is the source, the third communication device is the destination, and the second communication device acts as a proxy between the source and destination. Therefore, in this scenario, the first and second communication devices execute the communication method of this application to detect the reachable path between the source (first communication device) and the proxy device (second communication device). Furthermore, the second and third communication devices execute the communication method of this application, i.e., the second communication device sends a probe message to the third communication device to detect the reachable path between the proxy device (second communication device) and the destination (third communication device). Then, the reachable path between the source (first communication device) and the proxy device (second communication device) and the reachable path between the proxy device (second communication device) and the destination (third communication device) are concatenated to obtain the reachable path between the source (first communication device) and the destination (third communication device). The process of the second and third communication devices executing the communication method of this application is similar to the aforementioned process of the first and second communication devices executing the communication method of this application, and will not be repeated here.

[0021] Therefore, the communication method of this application is applicable to systems with proxy devices, thereby enabling the source end to detect the reachable path between the proxy device and the destination end, and thus obtain the complete reachable path between the source end and the destination end.

[0022] Based on the first aspect, in an optional implementation, the first communication device can adjust the number of first probe messages sent in parallel by the first communication device through a concurrency window. Specifically, the first communication device configures the maximum number of concurrent first probe messages in the concurrency window to be N. After the first communication device sends N first probe messages in parallel, the first communication device needs to wait to receive a first message or wait for a timeout before sending subsequent first probe messages in the first probe stream. In this application, since the first communication device receives M first messages, the first communication device sends M first probe messages from the first probe stream to the second communication device. This ensures that the number of first probe messages sent in parallel will not exceed the limit of the concurrency window, thereby avoiding network congestion caused by an excessive number of first probe messages.

[0023] Secondly, this application provides a communication device, which includes a transceiver unit and a processing unit.

[0024] The transceiver unit is used to send N first probe messages from the first probe stream to the second communication device in parallel. The N first probe messages carry different time-to-live (TTL) values ​​and identification information, where N is an integer greater than or equal to 2.

[0025] The transceiver unit is also used to receive M first messages, each first message carrying the address of the terminal node of a first probe message and the identification information of the first probe message. The number of hops from the terminal node to the first communication device is equal to the TTL of the first probe message, and M is an integer greater than 0 and less than or equal to N.

[0026] The processing unit is used to determine the reachable path between the first communication device and the second communication device based on M first messages.

[0027] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the sequence number of the first probe message.

[0028] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the length field of the first probe message.

[0029] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the checksum of the first probe message.

[0030] Based on the second aspect, in an optional implementation, when the first communication device receives a second message from the second communication device, the transceiver unit is further configured to send X second probe messages from the second probe stream to the second communication device in parallel. The X second probe messages carry different TTLs and identification information, where X is an integer greater than or equal to 2. The second message carries the address of the second communication device and the identification information of the first probe message.

[0031] Based on the second aspect, in an optional implementation, the processing unit is further configured to determine the latency and / or packet loss of the reachable path between the first communication device and the second communication device based on M first messages.

[0032] Based on the second aspect, in an optional implementation, the first communication device is a proxy device between the third communication device and the second communication device, or the second communication device is a proxy device between the first communication device and the third communication device.

[0033] Based on the second aspect, in an optional implementation, the transceiver unit is further configured to send M first probe messages from the first probe stream to the second communication device, wherein the M first probe messages carry different time-to-live (TTL) values ​​and identification information.

[0034] In the second aspect of this application, the constituent modules of the communication device can also be used to perform the steps executed in various possible implementations of the first aspect and achieve the corresponding technical effects. For details, please refer to the first aspect, which will not be repeated here.

[0035] A third aspect of this application provides a communication device including at least one processor; the at least one processor is configured to execute a program or instructions to enable the communication device to implement the method described in any possible implementation of any of the first to second aspects. Optionally, the communication device may include the memory, and the at least one processor is coupled to the memory; the memory is used to store programs or instructions.

[0036] A fourth aspect of this application provides a communication device including at least one logic circuit and an input / output interface; the logic circuit is used to perform the method described in any of the possible implementations of the first aspect described above.

[0037] The fifth aspect of this application provides a communication system, which includes the first communication device and the second communication device described above.

[0038] A sixth aspect of this application provides a computer-readable storage medium for storing one or more computer-executable instructions that, when executed by a processor, perform the method as described in any possible implementation of any of the first aspects described above.

[0039] The seventh aspect of this application provides a computer program product (or computer program) that, when executed by a processor, performs the method described in any possible implementation of any of the first aspects described above.

[0040] The eighth aspect of this application provides a chip system including at least one processor for supporting a communication device in implementing the method described in any possible implementation of any of the first aspects above.

[0041] In one possible design, the chip system may further include a memory for storing program instructions and data necessary for the communication device. The chip system may be composed of chips or may include chips and other discrete devices. Optionally, the chip system may also include interface circuitry that provides program instructions and / or data to the at least one processor.

[0042] The technical effects of any of the design methods in aspects three through eight can be found in the technical effects of the different design methods in aspect one above, and will not be repeated here. Attached Figure Description

[0043] Figure 1 This is a schematic diagram illustrating one possible network topology.

[0044] Figure 2 A schematic diagram illustrating one possible implementation of a probe message;

[0045] Figure 3 A schematic diagram illustrating another possible implementation of the probe message;

[0046] Figure 4 A schematic diagram illustrating another possible implementation of the probe message;

[0047] Figure 5 This is a schematic diagram of one possible, non-limiting system used in the communication method and related apparatus of this application;

[0048] Figure 6 This is a schematic diagram illustrating one possible implementation of the communication method in this application;

[0049] Figure 7 This is a schematic diagram of the structure of the first probe message in this application;

[0050] Figure 8 This is a schematic diagram illustrating another possible implementation of the communication method in this application;

[0051] Figure 9 This is a schematic diagram illustrating another possible implementation of the communication method in this application;

[0052] Figure 10 This is a schematic diagram illustrating another possible implementation of the communication method in this application;

[0053] Figure 11 This is a schematic diagram illustrating another possible implementation of the communication method in this application;

[0054] Figure 12 A schematic diagram of the structure of a communication device provided in an embodiment of this application;

[0055] Figure 13 This is another schematic diagram of the communication device provided in the embodiments of this application. Detailed Implementation

[0056] The present application will now be described with reference to the accompanying drawings. The terminology used in the embodiments section is for illustrative purposes only and is not intended to limit the scope of the application. Those skilled in the art will recognize that, with technological advancements and the emergence of new scenarios, the technical solutions provided in this application are equally applicable to similar technical problems.

[0057] First, some of the nouns or terms used in this application will be explained, and these nouns or terms are also part of the content of the invention.

[0058] (1) The terms “system” and “network” in this application are used interchangeably. “Multiple” refers to two or more. “And / or” describes the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, or B exists alone, where A and B can be singular or plural. The character “ / ” generally indicates that the related objects before and after are in an “or” relationship. “At least one of the following” or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, “at least one of A, B and C” includes A, B, C, AB, AC, BC or ABC. Unless otherwise specified, the ordinal numbers such as “first” and “second” mentioned in this application are used to distinguish multiple objects and are not used to limit the order, sequence, priority or importance of multiple objects. Furthermore, the terms “comprising” and “having”, and any variations thereof, are intended to cover non-exclusive inclusion, such that a process, method, system, product, or apparatus that includes a series of steps or units is not necessarily limited to those steps or units that are explicitly listed, but may include other steps or units that are not explicitly listed or that are inherent to such process, method, product, or apparatus.

[0059] (2) In this application, “sending information” can be understood as one device sending information to another device, or it can also be understood as one logical module within a device sending information to another logical module. For example, “terminal device sending information” can be understood as a terminal device sending information to another device (such as a network device), or it can be understood as logical module 1 in the terminal device sending information to logical module 2 in the network device.

[0060] In this application, "receiving information" can be understood as one device receiving information from another device, or it can also be understood as a logical module within a device receiving information from another logical module. For example, "terminal device receiving information" can be understood as a terminal device receiving information from another device (such as a network device), or it can be understood as logical module 1 in the terminal device receiving information from logical module 2 in the network device.

[0061] In this application, "sending information to... (e.g., a network device)" or the relevant illustrations in the accompanying drawings can be understood as the destination of the information being a network device. This can include sending information directly or indirectly to a network device. "Receiving information from... (e.g., a network device)" or "receiving information from... (e.g., a network device)" or "receiving information sent (e.g., by a network device)" or the relevant illustrations in the accompanying drawings can be understood as the source of the information being a network device. This can include receiving information directly or indirectly from a network device. Information may undergo necessary processing between the source and destination, such as format changes, encoding, modulation, etc., but the destination can understand the valid information from the source. Similar expressions in this application can be understood in a similar way, and will not be elaborated further here.

[0062] (3) Configuration and Pre-configuration: In this application, both configuration and pre-configuration are used. Configuration refers to the network device or server sending configuration information or parameter values ​​to the terminal device via messages or signaling, so that the terminal device can determine the communication parameters or resources for transmission based on these values ​​or information. Pre-configuration is similar to configuration; it can be parameter information or parameter values ​​pre-negotiated between the network device / server and the terminal device, parameter information or parameter values ​​specified by standard protocols for use by the base station / network device or terminal device, or parameter information or parameter values ​​pre-stored in the base station / server or terminal device. This application does not limit this.

[0063] It should be understood that these values ​​and parameters can change or be updated.

[0064] (4) In this application, “instruction” may include direct instruction and indirect instruction, and may also include explicit instruction and implicit instruction. When a certain instruction information is used to instruct A, it can be understood that the instruction information carries A, directly instructs A, or indirectly instructs A.

[0065] In this application, the information indicated by the instruction information is called the information to be instructed. In specific implementations, there are many ways to indicate the information to be instructed, such as, but not limited to, directly indicating the information to be instructed, such as the information to be instructed itself or its index. It can also indirectly indicate the information to be instructed by indicating other information, where there is a relationship between the other information and the information to be instructed; or it can indicate only a part of the information to be instructed, while the other parts are known or pre-agreed upon, for example, by using a pre-agreed (e.g., protocol-predefined) arrangement of various information to indicate specific information, thereby reducing instruction overhead to some extent. This application does not limit the specific method of instruction. It is understood that for the sender of the instruction information, the instruction information can be used to indicate the information to be instructed, and for the receiver of the instruction information, the instruction information can be used to determine the information to be instructed.

[0066] (5) Terminal device: can be a wireless terminal device capable of receiving network device scheduling and instruction information. The wireless terminal device can be a device that provides voice and / or data connectivity to the user, or a handheld device with wireless connection function, or other processing device connected to a wireless modem.

[0067] Terminal devices can communicate with one or more core networks or the Internet via a radio access network (RAN). Terminal devices can be mobile terminal devices, such as mobile phones (or "cellular" phones), computers, and data cards. For example, they can be portable, pocket-sized, handheld, computer-embedded, or vehicle-mounted mobile devices that exchange voice and / or data with the RAN. Examples include personal communication service (PCS) phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), tablets, and computers with wireless transceiver capabilities. Wireless terminal equipment can also be referred to as a system, subscriber unit, subscriber station, mobile station (MS), remote station, access point (AP), remote terminal, access terminal, user terminal, user agent, subscriber station (SS), customer premises equipment (CPE), terminal, user equipment (UE), mobile terminal (MT), etc.

[0068] By way of example and not limitation, the terminal device in this application can also be a wearable device. Wearable devices, also known as wearable smart devices or smart wearable devices, are a general term for devices that utilize wearable technology to intelligently design and develop everyday wearables, such as glasses, gloves, watches, clothing, and shoes. Wearable devices are portable devices that are worn directly on the body or integrated into the user's clothing or accessories. Wearable devices are not merely hardware devices, but also achieve powerful functions through software support, data interaction, and cloud interaction. Broadly speaking, wearable smart devices include those that are feature-rich, large in size, and can achieve complete or partial functions without relying on a smartphone, such as smartwatches or smart glasses, as well as those that focus on a specific type of application function and require the use of other devices such as smartphones, such as various smart bracelets, smart helmets, and smart jewelry for vital sign monitoring.

[0069] Terminals can also be drones, robots, devices in device-to-device (D2D) communication, vehicles to everything (V2X) communication, virtual reality (VR) terminal devices, augmented reality (AR) terminal devices, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in telemedicine or telehealth services, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, etc.

[0070] Furthermore, terminal devices can also be terminal devices in communication systems evolved from fifth-generation (5G) communication systems (such as 5G Advanced or sixth-generation (6G) communication systems), or terminal devices in future public land mobile networks (PLMNs). For example, 5G Advanced or 6G networks can further expand the form and function of 5G communication terminals; 6G terminals include, but are not limited to, vehicles, cellular network terminals (integrating satellite terminal functions), drones, and Internet of Things (IoT) devices.

[0071] In this application, the aforementioned terminal device may also receive artificial intelligence (AI) services provided by the network device. Optionally, the terminal device may also have AI processing capabilities.

[0072] (6) Network equipment: This can be equipment in a wireless network. For example, network equipment can be a RAN node (or device) that connects terminal devices to the wireless network, and can also be called a base station. Currently, some examples of RAN equipment include: base station, evolved NodeB (eNodeB), gNB (gNodeB) in 5G communication systems, transmission reception point (TRP), evolved Node B (eNB), radio network controller (RNC), Node B (NB), home base station (e.g., home-evolved Node B, or home Node B, HNB), base band unit (BBU), or wireless fidelity (Wi-Fi) access point (AP), etc. In addition, in a network structure, network equipment can include central unit (CU) nodes, distributed unit (DU) nodes, or RAN equipment including CU nodes and DU nodes.

[0073] Optionally, RAN nodes can also be macro base stations, micro base stations, indoor stations, relay nodes, donor nodes, or radio controllers in cloud radio access network (CRAN) scenarios. RAN nodes can also be servers, wearable devices, vehicles, or in-vehicle equipment. For example, the access network equipment in vehicle-to-everything (V2X) technology can be a roadside unit (RSU).

[0074] In another possible scenario, multiple RAN nodes collaborate to assist the terminal in achieving wireless access, with different RAN nodes each implementing some of the base station's functions. For example, RAN nodes can be CUs, DUs, CUs (control plane, CP), CUs (user plane, UP), or radio units (RUs). CUs and DUs can be set up separately or included in the same network element, such as a baseband unit (BBU). RUs can be included in radio equipment or radio units, such as remote radio units (RRUs), active antenna units (AAUs), radio heads (RHs), or remote radio heads (RRHs).

[0075] In different systems, CU (or CU-CP and CU-UP), DU, or RU may have different names, but those skilled in the art will understand their meaning. For example, in an open access network (open RAN, O-RAN, or ORAN) system, CU can also be called O-CU (open CU), DU can also be called O-DU, CU-CP can also be called O-CU-CP, CU-UP can also be called O-CU-UP, and RU can also be called O-RU. For ease of description, this application uses CU, CU-CP, CU-UP, DU, and RU as examples. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software modules and hardware modules.

[0076] Communication between access network devices and terminal devices follows a specific protocol layer structure. This protocol layer may include a control plane protocol layer and a user plane protocol layer. The control plane protocol layer may include at least one of the following: radio resource control (RRC) layer, packet data convergence protocol (PDCP) layer, radio link control (RLC) layer, media access control (MAC) layer, or physical (PHY) layer, etc. The user plane protocol layer may include at least one of the following: service data adaptation protocol (SDAP) layer, PDCP layer, RLC layer, MAC layer, or physical layer, etc.

[0077] The correspondence between network elements and their achievable protocol layer functions in the ORAN system can be found in Table 1 below.

[0078] Table 1

[0079] ORAN network elements 3GPP protocol layer functions O-CU-CP RRC+PDCP-Control Plane (PDCP-C) O-CU-UP SDAP+PDCP - User Plane (PDCP-U) O-DU RLC+MAC+PHY-high O-RU PHY-low

[0080] Network devices can be other devices that provide wireless communication functions for terminal devices. The embodiments of this application do not limit the specific technology or form of the network device. For ease of description, this application is not limiting.

[0081] Network equipment may also include core network equipment, such as the Mobility Management Entity (MME), Home Subscriber Server (HSS), Serving Gateway (S-GW), Policy and Charging Rules Function (PCRF), and Public Data Network Gateway (PDN gateway or P-GW) in 4th generation (4G) networks; and access and mobility management function (AMF), user plane function (UPF), or session management function (SMF) in 5G networks. Furthermore, this core network equipment may also include other core network equipment in 5G networks and next-generation networks of 5G networks.

[0082] In this application, the aforementioned network equipment may also have network nodes with AI capabilities, which can provide AI services to terminals or other network equipment. For example, it can be an AI node, computing power node, RAN node with AI capabilities, or core network element with AI capabilities on the network side (access network or core network).

[0083] In this application, the means for implementing the functions of a network device can be a network device itself, or it can be a means that enables the network device to implement those functions, such as a chip system, which can be installed in the network device. In the technical solutions provided in this application, the example of a network device being used to implement the functions of a network device is used to describe the technical solutions provided in this application.

[0084] Next, we will introduce the possible, non-limiting scenarios involved in this application.

[0085] With the development of industry digitalization, audio and video conferencing, and remote work, network quality has become increasingly critical. Rapidly delineating network responsibility requires clearly identifying the source of network quality failures, such as whether the failure originates within the enterprise campus or on the carrier's bearer network, in order to facilitate timely recovery. Currently, the widely used equal-cost multipath (ECMP) networking method typically employs flow-based load balancing, meaning that traffic with different five-tuples may take different forwarding paths to reach the server. Please refer to [link / reference]. Figure 1 , Figure 1 This is a schematic diagram illustrating a possible ECMP networking implementation. (For example...) Figure 1 As shown, network devices with high packet loss and / or high latency may be distributed across different multipaths.

[0086] In communication networks, path probing is a crucial task. Path probing is used to detect the transmission path of data packets within the network, as well as the network's structure and performance. The following section introduces two mainstream path probing schemes.

[0087] Path probing scheme one: The source network device (hereinafter referred to as the source) sends a series of probe packets, each carrying a different Time-to-Live (TTL) and a different port number. The TTL value of the probe packet typically starts from 1 and increases incrementally. The TTL of the probe packet determines the maximum number of hops that the probe packet can traverse in the network. The TTL of the probe packet is decremented by 1 for each network device it passes through. Therefore, by gradually increasing the TTL of the probe packets sent, the source can control the propagation range of the probe packets in the network, thereby gradually discovering each network device in the network.

[0088] Please see Figure 2 , Figure 2 This is a schematic diagram illustrating one possible implementation of a probe message. For example... Figure 2 As shown, after the source sends probe packets with different TTLs, these probe packets pass through various network devices (i.e., Figure 2The probe packet is forwarded by an intermediate routing node ("intermediate routing node"). When the TTL of a probe packet drops to 0 on a network device, that device sends an Internet Control Message Protocol (ICMP) timeout message to the source. This ICMP timeout message uses the network device's Internet Protocol (IP) address as the source IP address and the source's IP address as the destination IP address. The ICMP timeout message also carries some header information of the probe packet, including but not limited to the source IP address, destination IP address, source port number, and destination port number. Upon receiving the ICMP timeout message, the source determines which network device terminated the probe packet based on this header information and associates the network device's IP address with the probe packet's TTL value to determine the hop count from the source. As the TTL increases, the source can gradually build a complete path between the source and destination.

[0089] To distinguish ICMP timeout messages from different network devices, the source uses a different port number for each probe message. Therefore, the source can determine which probe message the ICMP timeout message is for by using the port number carried in the probe message. Thus, when an ICMP timeout message is received from a point in the network, it can be determined which probe response it is by matching the port number carried in the ICMP timeout message.

[0090] Please see Figure 3 , Figure 3 This is a schematic diagram illustrating another possible implementation of the probe message. For example... Figure 3 As shown, because the source continuously modifies the port number of the probe packets, these probe packets may be hashed to different paths. Therefore, when the source performs path concatenation based on these probe packets, the accuracy of the obtained path information is low. On the other hand, when a proxy device exists in the network, the source's probe packets cannot penetrate the proxy device, preventing the source device from detecting the path information after the proxy device.

[0091] Path probing scheme two: The source simultaneously sends multiple probe streams, with each probe packet in each stream carrying the same 5-tuple. (See also...) Figure 4 , Figure 4 This is a schematic diagram illustrating another possible implementation of the probe message. For example... Figure 4As shown, first, the source sends a set of probe packets with the same TTL (TTL=1) but different port numbers. This is done to cover as many network devices as possible at the TTL=1 level, since probe packets with different port numbers may be routed to different paths. Then, the source sends a new set of probe packets using the same port numbers as in the TTL=1 phase, this time with a TTL of 2, thus detecting all network devices at the TTL=2 level. The source continues to send probe packets in the above pattern until the probe packets reach the destination, thus covering all possible paths between the source and destination.

[0092] The source needs to traverse all possible paths in each TTL level before sending probe packets for that level. This means that for each TTL level, it must wait for all paths to be probed before proceeding to the next TTL level. This can lead to poor time correlation of hop-by-hop service level agreement (SLA) metrics, reducing the accuracy of network quality analysis. Furthermore, when proxy devices exist in the network, the source's probe packets cannot penetrate the proxy devices, preventing the source from detecting path information after the proxy devices.

[0093] To address the aforementioned problems, this application provides a communication method and related apparatus for improving the efficiency of path detection. The communication method and related apparatus provided in this application can be applied to various communication systems, such as 5th generation (5G) mobile communication systems, new radio (NR) systems, long term evolution (LTE) systems, LTE frequency division duplex (FDD) systems, LTE time division duplex (TDD) systems, future communication systems, vehicle-to-everything (V2X) communication systems, device-to-device (D2D) communication systems, Internet of Things (IoT) communication systems, industrial internet communication systems, or satellite communication systems. The wireless communication systems involved in this application also include, but are not limited to, narrowband Internet of Things (NB-IoT) systems.

[0094] For example, please refer to Figure 5 , Figure 5 This is a schematic diagram of one possible, non-limiting system used in the communication method and related apparatus of this application. Figure 5As shown, the source and destination are connected through multiple network devices. The source refers to the sender of data (e.g., probe messages or probe streams in this application), and the destination refers to the receiver of data (e.g., probe messages or probe streams in this application). After data is sent from the source, it is forwarded through at least one network device before reaching the destination. Optionally, the source can be a terminal device, a network device, or a server, and the destination can be a terminal device, a network device, or a server.

[0095] The communication method and related apparatus of this application will be further described below with reference to the accompanying drawings.

[0096] Please see Figure 6 , Figure 6 This is a schematic diagram illustrating one possible implementation of the communication method in this application. It should be understood that... Figure 6 This application illustrates the method using a first communication device and other communication devices (such as a second communication device) as examples of the entities executing the interaction, but it does not limit the entities executing the interaction. For example, Figure 6 The first communication device can be a terminal device, network device, or server; alternatively, the first communication device can also be a chip, baseband chip, modem chip, system-on-a-chip (SoC) chip containing a modem core, system-in-package (SIP) chip, communication module, chip system, processor, logic module, or software in the terminal device, network device, or server. Similarly, Figure 6 The second communication device can be a terminal device, network device, or server. Alternatively, the second communication device can also be a chip, baseband chip, modem chip, SoC chip containing a modem core, SIP chip, communication module, chip system, processor, logic module, or software in a terminal device, network device, or server.

[0097] In this application, the term "terminal device" can refer to either the terminal device itself or the chips, communication modules, integrated circuits, processors, logic modules, or software within the terminal device used to implement the communication methods provided in this application; no specific limitation is made in this application. Similarly, the term "network device" can refer to either the network device itself or the chips, communication modules, integrated circuits, processors, logic modules, or software within the network device used to implement the communication methods provided in this application; no specific limitation is made in this application. Likewise, the term "server" can refer to either the server itself or the chips, communication modules, integrated circuits, processors, logic modules, or software within the server used to implement the communication methods provided in this application; no specific limitation is made in this application.

[0098] like Figure 6As shown, the communication method of this application includes, but is not limited to, steps 101 to 103.

[0099] In steps 101 to 103 of this application, the communication method of this application is described using the first communication device as the source end and the second communication device as the destination end. Optionally, in practical applications, the first communication device can also be used as the destination end and the second communication device as the source end to implement the communication method of this application.

[0100] 101. The first communication device sends N first probe messages from the first probe stream to the second communication device in parallel.

[0101] The first communication device sends N first probe messages from the first probe stream to the second communication device in parallel, with the second communication device as the destination. Alternatively, it can be understood that the first communication device sends N first probe messages to the second communication device in parallel, with the second communication device as the destination. The N first probe messages belong to some or all of the messages in the first probe stream, and N is an integer greater than or equal to 2.

[0102] Since the N first probe packets belong to the same probe flow (i.e., the first probe flow), and the 5-tuples of probe packets within the same probe flow are identical, the 5-tuples of the N first probe packets are also identical. Optionally, the 5-tuple of the probe packet can be the source Internet Protocol (IP) address, destination IP address, source port number, destination port number, and transport layer protocol of the probe packet. In this application, the source IP address of the probe packet is the IP address of the first communication device, the source port number of the probe packet is the port number of the first communication device, the destination IP address of the probe packet is the IP address of the second communication device, the destination port number of the probe packet is the port number of the second communication device, and the transport layer protocol can be Transmission Control Protocol (TCP) or User Datagram Protocol (UDP), or it can be other types of transport layer protocols; this application does not limit this. In general, the source IP address, destination IP address, source port number, destination port number, and transport layer protocol are all the same among the N first probe packets.

[0103] Optionally, when the transport layer protocol is TCP, the destination port of the first probe message should be a port with an open TCP connection.

[0104] Optionally, when the transport layer protocol is UDP, the destination port of the first probe message should be an unreachable port, such as a port with port number 33434-65535.

[0105] In this application, each of the N first probe messages carries a different TTL and different identification information. Therefore, the TTL and identification information of the first probe message are in one-to-one correspondence, with each identification information corresponding to a TTL, or in other words, each TTL corresponding to an identification information. Optionally, the first communication device can determine the correspondence between each identification information and the TTL.

[0106] This application provides multiple implementations of the identification information for the first probe message. These are described below.

[0107] In one possible implementation, the identification information for each first probe packet is its sequence number. See also... Figure 7 , Figure 7 This is a schematic diagram of the structure of the first probe message in this application. For example, as shown below... Figure 7 As shown, when the transport layer protocol of the first probe message is TCP, the identification information of the first probe message can be the sequence number in the TCP header of the first probe message.

[0108] In one possible implementation, the identification information of each first probe packet is its length field. Specifically, when the transport layer protocol of the first probe packet is UDP, the first communication device can fill in information in the payload of the first probe packet during the construction of the first probe packet to change the length field of the first probe packet, thereby identifying the first probe packet through the length field. For example... Figure 7 As shown, when the transport layer protocol of the first probe packet is UDP, the identification information of the first probe packet can be the length field in the UDP header of the first probe packet. When the first probe packet passes through a network address translation (NAT) device, the NAT device does not change the length field of the first probe packet, thereby improving the accuracy of the identification information carried by the first packet.

[0109] In one possible implementation, the identification information of each first probe packet is the checksum of that first probe packet. For example... Figure 7 As shown, when the transport layer protocol of the first probe message is UDP, the identification information of the first probe message can be the checksum in the UDP header of the first probe message.

[0110] 102. The first communication device receives M first messages.

[0111] After the first communication device sends N first probe messages in parallel, these N first probe messages will be forwarded by the network devices between the first and second communication devices. The TTL (Time-To-Live) of the first probe message determines the maximum number of hops it can traverse in the network, or in other words, the TTL determines the number of times it can be forwarded by the network devices. Each time a first probe message passes through a network device, its TTL is decremented by 1. When a first probe message reaches a network device and its TTL drops to 0, it cannot be forwarded further, and the network device will discard it. This network device is the terminator of the first probe message whose TTL has dropped to 0. In other words, the terminator in this application refers to the network device reached by the first probe message when its TTL drops to 0. Therefore, it can be understood that the number of hops from the terminator to the first communication device is equal to the TTL of the first probe message.

[0112] Furthermore, after the TTL of the first probe message decreases to 0 at the termination node, the termination node sends a first message to the first communication device. This first message carries the identification information of the first probe message and the address of the termination node. As can be seen above, the first communication device sends N first probe messages in parallel, and since the TTLs of these N first probe messages are different, they will terminate on different network devices (i.e., their TTLs decrease to 0). Therefore, the first communication device will receive M first messages, each of which responds to one first probe message. Each first message carries the address of the termination node of the first probe message and its identification information. M is an integer greater than 0 and less than or equal to N. Optionally, the IP address of the termination node can be used as the source address in the first message, and the IP address of the first communication device can be used as the destination address.

[0113] Optionally, the first message can be an ICMP timeout message.

[0114] Optionally, in step 101, the first communication device can adjust the number of first probe messages sent in parallel by the first communication device through a concurrency window. Specifically, the first communication device configures the maximum number of concurrent first probe messages in the concurrency window to be N. After the first communication device sends N first probe messages in parallel, the first communication device needs to wait to receive the first message or wait for a timeout before sending subsequent first probe messages in the first probe stream. In this application, since the first communication device receives M first messages, the first communication device sends M first probe messages from the first probe stream to the second communication device. This ensures that the number of first probe messages sent in parallel will not exceed the limit of the concurrency window, thereby avoiding network congestion caused by an excessive number of first probe messages.

[0115] Furthermore, if packet loss occurs in the first probe message, the value of window N is reduced (i.e., the maximum concurrent number of first probe messages is decreased). For example, the value of window N can be reduced to 1 / 2*N, or 3 / 4*N, etc. If no packet loss occurs in the first probe message, the value of window N is increased (i.e., the maximum concurrent number of first probe messages is increased), for example, the value of window N can be increased to 2N. Thus, while avoiding link congestion, the time-dependent nature of the hop-by-hop service level agreement (SLA) is improved.

[0116] 103. The first communication device determines the reachable path between the first communication device and the second communication device based on M first messages.

[0117] After receiving M first messages, the first communication device determines a reachable path between itself and the second communication device based on these M messages. Specifically, since each first message carries the address of the terminal node of a first probe message and its identification information (e.g., a length field, sequence number, or checksum), and in this application, each first probe message corresponds to a TTL and identification information, the first communication device can determine the TTL corresponding to the address of the terminal node based on the identification information and the address of the terminal node carried in the first message, thereby determining the hop count between the terminal node and the first communication device. In this application, since N first probe messages belong to the same first probe stream, their 5-tuples are identical, causing the N first probe messages to be hashed to the same path as much as possible. This improves the accuracy of path detection. On the other hand, since the first probe packets carrying different TTLs are sent in parallel, N first probe packets can probe multi-hop network devices in parallel, which improves the time correlation of hop-by-hop service level agreement (SLA) metrics and improves the accuracy of network quality analysis.

[0118] It should be understood that in steps 101 to 103, since the first probe message is transmitted from the first communication device as the source and the second communication device as the destination, the reachable path between the first and second communication devices determined by the first communication device based on M first messages can be understood as the path from the first communication device to the second communication device. The path from the second communication device to the first communication device requires sending probe messages from the second communication device as the source and the first communication device as the destination. The specific process is similar to steps 101 to 103 described above, and will not be repeated here.

[0119] In one possible implementation, after the first probe message is transmitted to the second communication device, the second communication device sends a second message to the first communication device. The second message carries the address of the second communication device and the identification information of the first probe message. Upon receiving the second message, the first communication device can determine the reachable path between itself and the second communication device based on the address of the second communication device and the identification information of the first probe message. Next, the first communication device sends X second probe messages from the second probe stream to the second communication device in parallel. These X second probe messages carry different TTLs and identification information, where X is an integer greater than or equal to 2. These X second probe messages belong to some or all of the messages in the second probe stream. Since the X second probe messages are probe messages from the same probe stream (i.e., the second probe stream), and the 5-tuples of probe messages in the same probe stream are identical, the 5-tuples of the X second probe messages are also identical. The description of the TTL and identification information in the second probe message is similar to that in the first probe message. Please refer to the description of step 101 above for details. It will not be repeated here.

[0120] Optionally, if the network device sends a first probe message and fails to respond to P consecutive first probe messages within a timeout period, it is possible that the second communication device has received the first probe messages but has not responded with a second message, where P is an integer greater than or equal to 1, for example, P = 10. Therefore, the first communication device may also send X second probe messages from the second probe stream to the second communication device in parallel.

[0121] Since the second probe stream is a different probe stream from the first probe stream, the quintuple between the X second probe messages in the second probe stream and the N first probe messages in the first probe stream is different. Therefore, the transmission path of the X second probe messages will also be different from the transmission path of the N first probe messages. As a result, the first communication device detects another reachable path between the first communication device and the second communication device.

[0122] Optionally, after receiving the second message from the second communication device, the first communication device stops sending the first probe message. Next, the first communication device can construct the second probe message using new source port numbers, destination port numbers, and / or transport layer protocols, ensuring that the 5-tuples between the first and second probe messages are different.

[0123] Optionally, when the transport layer protocol of the second message is TCP, the second message can be an acknowledgment (ACK) message or a reset (RST) message in response to a synchronization (SYN) message.

[0124] Optionally, when the transport layer protocol of the second message is UDP, the second message can be an ICMP port unreachable message.

[0125] In one possible implementation, the first communication device can determine the number of probe streams to be constructed based on the detected new paths. See also... Figure 8 , Figure 8 This is a schematic diagram illustrating another possible implementation of the communication method in this application. For example... Figure 8 As shown, the communication method includes, but is not limited to, steps 201 to 209.

[0126] 201. The first communication device initializes the number S of probe streams.

[0127] exist Figure 8 In the example, node L1 is the first communication device in this application. The first communication device initializes the number of probe flows S = Kn. Where K is the number of probe flows, n is the number of paths, and Kn represents the number of probe flows required for the load-sharing node to discover the next hop on n paths. Figure 8 The table below shows the relationship between K and n:

[0128] n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 K 1 6 11 16 21 27 33 38 44 51 57 63 70 76 83 90 96

[0129] Table 2

[0130] For example, when n=5, it means that 21 probe flows are needed to discover all possible paths; when n=8, it means that 38 probe flows are needed to discover all possible paths.

[0131] Figure 8 The statement P{n, K} > 95% indicates that when the values ​​of n and K satisfy the relationship in Table 2 above, there is a probability of more than 95% that all the next hops on n paths can be detected.

[0132] For example, during initialization, n can be initialized to 2.

[0133] 202. The first communication device determines whether all S probe streams have been sent. If not, proceed to step 203; otherwise, terminate the process and converge the probe results.

[0134] 203. The first communication device constructs a new probe stream using the new quintuple. The new probe stream can be a TCP stream or a UDP stream.

[0135] 204. The first communication device sends probe messages, and the TTL of each probe message is incremented by 1 until the destination is detected. The upper limit of TTL is 255.

[0136] 205. The first communication device receives a return message (i.e., the first message and the second message in this application) in response to the probe message. Based on the identification information of the return message, it matches the addresses of the network devices hop-by-hop, and the SLAs hop-by-hop.

[0137] 206. First communication device splicing path.

[0138] 207. Determine if a new path has been found. If yes, proceed to step 208; otherwise, proceed to step 203.

[0139] 208. Calculate the maximum flow rate by backwards from each jump. Figure 8 Taking the L2 node as an example, assuming the L2 node has already found n2-1 nodes in the next hop, it needs to continue probing to see if there is an n2th node in the next hop. Based on Table 2 above, the L2 node can determine that it needs K... n2 One probe stream is used to probe the n2-th node. And this K... n2 Each probe stream needs to originate from Y upstream nodes connected to the L2 node (in Figure 8 (where Y is the number of next-hop nodes for L1). Since L1 has a total of n1 next-hop nodes, the node for L2 can be determined, and L1 needs to send n1*(K) signals. n2 / Y) probe streams. Based on Table 2 above, node L1 determines that it needs to send K probe streams. n1 A probe stream.

[0140] 209. Update the number S of probe streams. From the above, we know that node L2 can determine that node L1 needs to send n1*(K) probe streams. n2 / Y) probe streams. The L1 node determines that it needs to send K... n1 There are 10 probe streams, therefore, the updated number of probe streams S is max(K). n1 ,n1*(K n2 / Y)). And execute step 203.

[0141] First, the first communication device initializes the number S of probe streams and sends probe streams (e.g., the first probe stream and the second probe stream) according to steps 101 to 103 described above. During the sending of probe streams, if no new path is detected, the first communication device converges after sending all S probe streams; if a new path is detected during the sending of probe streams, then proceeds as follows... Figure 8 As shown, the number of probe streams S is updated, and the remaining probe streams are sent until convergence. Therefore, it is evident that the number of probe streams S required by the communication method of this application varies in different network topologies.

[0142] In one possible implementation, the first communication device determines the delay and / or packet loss of the reachable path between the first communication device and the second communication device based on the M first messages received, so as to obtain a hop-by-hop SLA with high time correlation.

[0143] For example, hop-by-hop latency can be calculated using the following formula:

[0144] Where IP1 and IP2 are two adjacent network devices, RTT is the round-trip time, and Y represents the number of probe flows through the path between IP1 and IP2.

[0145] For example, the hop-by-hop packet loss rate can be calculated using the following formula:

[0146]

[0147] In one possible implementation, a proxy device exists between the source and the destination. In this scenario, the source sends probe packets to the proxy device, and the proxy device also sends probe packets to the destination. The source address of the probe packets sent by the source is the IP address of the source, and the destination address is the IP address of the proxy device; the source address of the probe packets sent by the proxy device is the IP address of the proxy device, and the destination address is the IP address of the destination. The communication method provided in this application is also applicable to communication systems with proxy devices.

[0148] Optionally, the first communication device serves as a proxy device between the third and second communication devices, i.e., the third communication device is the source, the second communication device is the destination, and the first communication device acts as a proxy between the source and destination. Therefore, in this scenario, the first and second communication devices execute the communication method of this application to detect the reachable path between the proxy device (first communication device) and the destination (second communication device). Furthermore, the third and first communication devices execute the communication method of this application, i.e., the third communication device sends a probe message to the first communication device to detect the reachable path between the source (third communication device) and the proxy device (first communication device). Then, the reachable path between the source (third communication device) and the proxy device (first communication device) and the reachable path between the proxy device (first communication device) and the destination (second communication device) are concatenated to obtain the reachable path between the source (third communication device) and the destination (second communication device). The process by which the third communication device and the first communication device execute the communication method of this application is similar to the process by which the first communication device and the second communication device execute the communication method of this application (i.e., steps 101 to 103). For details, please refer to the description of steps 101 to 103 above, which will not be repeated here.

[0149] Optionally, the second communication device serves as a proxy device between the first and third communication devices, i.e., the first communication device is the source, the third communication device is the destination, and the second communication device acts as a proxy between the source and the destination. Therefore, in this scenario, the first and second communication devices execute the communication method of this application to detect the reachable path between the source (first communication device) and the proxy device (second communication device). Furthermore, the second and third communication devices execute the communication method of this application, i.e., the second communication device sends a probe message to the third communication device to detect the reachable path between the proxy device (second communication device) and the destination (third communication device). Then, the reachable path between the source (first communication device) and the proxy device (second communication device) and the reachable path between the proxy device (second communication device) and the destination (third communication device) are concatenated to obtain the reachable path between the source (first communication device) and the destination (third communication device). The process by which the second and third communication devices execute the communication method of this application is similar to the process by which the first and second communication devices execute the communication method of this application (i.e., steps 101 to 103). For details, please refer to the description of steps 101 to 103 above, which will not be repeated here.

[0150] Therefore, the communication method of this application is applicable to systems with proxy devices, thereby enabling the source end to detect the reachable path between the proxy device and the destination end, and thus obtain the complete reachable path between the source end and the destination end.

[0151] Please see Figure 9 , Figure 9 This is a schematic diagram illustrating another possible implementation of the communication method in this application. For example... Figure 9 As shown, the communication system includes a source, a proxy device, a destination, and a controller. The controller sends path probing tasks to both the source and the proxy device. Upon receiving the path probing task, the source determines the reachable path between itself and the proxy device based on the communication method described in this application (see steps 101 to 103). Then, the source reports the reachable path between itself and the proxy device to the controller. Similarly, upon receiving the path probing task, the proxy device determines the reachable path between itself and the destination based on the communication method described in this application (see steps 101 to 103). Then, the proxy device reports the reachable path between itself and the destination to the controller. Next, the controller concatenates the reachable paths between the source and the proxy device, and between the proxy device and the destination, to obtain the reachable path between the source and the destination.

[0152] Next, the communication method of this application will be introduced in two implementation scenarios.

[0153] Implementation Scenario 1: Please refer to Figure 10 , Figure 10 A schematic diagram illustrating a possible implementation scenario of the communication method provided in this application. For example... Figure 10 As shown, the network device, based on the communication method in this application, detects the reachable paths between the network device and server 1, and between the network device and server 2. Specifically, the network device first executes... Figure 10 The illustrated "message construction" process involves constructing probe messages destined for server 1 (e.g., the first probe message and the second probe message in this application) and probe messages destined for server 2 (e.g., the first probe message and the second probe message in this application). Then, the network device... Figure 10The network device sends probe packets through the indicated communication port. These probe packets are forwarded by various routers and NAT devices, reaching Server 1 and Server 2. Next, the network device receives return packets (including the first packet sent by the router and the second packet sent by the server) through the aforementioned communication port. Based on the identification information carried in the return packets (first and second packets), the network device performs packet matching to determine the probe packet that matches the return packet. Then, based on the TTL corresponding to the probe packet, it determines the hop count between the router and the server, thereby determining the reachable path between the network device and the server and caching it. Furthermore, the network device calculates the SLA on the path hop-by-hop based on the return packets. If a new path is found, it proceeds according to... Figure 8 The number of probe flows is updated in the indicated manner, resulting in new probe flows (e.g., a second probe flow) and probe packets (e.g., a second probe packet). This process is repeated until no new paths are found, at which point the topology converges.

[0154] Implementation Scenario 2: Please refer to Figure 11 , Figure 11 A schematic diagram illustrating a possible implementation scenario of the communication method provided in this application. For example... Figure 11 As shown, a proxy device exists between the network device and servers 1 and 2. The controller issues path probing tasks to both the network device and the proxy device. The network device then constructs a probe packet with the proxy device as the destination to probe the reachable path between the network device and the proxy device. The path probing process between the network device and the proxy device is similar to the path probing process between the network device and servers 1 and 2 described above; please refer to the previous section for details. Figure 10 The corresponding introduction. On the other hand, the proxy device constructs probe packets with server 1 and server 2 as destinations respectively, in order to probe the reachable paths between the proxy device and server 1 and server 2. The process of path probing between the proxy device and server 1 and server 2 is similar to the path probing between the network device and server 1 and server 2 mentioned above; please refer to the aforementioned... Figure 10 The corresponding explanation is as follows: In this scenario, a new probe flow can be sent when a return message from a probe flow is received, or when P consecutive probe messages in a probe flow do not receive a response. After path probing is complete, the network device reports the reachable path between the network device and the proxy device to the controller, and the proxy device reports the reachable path between the proxy device and server 1 and server 2 to the controller. Next, the controller concatenates the reachable path between the network device and the proxy device, and the reachable path between the proxy device and server 1 and server 2, to obtain the reachable path between the network device and server 1 and server 2.

[0155] Accordingly, this application also provides related apparatus for implementing the above-described scheme. Please refer to [link / reference]. Figure 12 , Figure 12 This is a schematic diagram of a communication device 300 provided in an embodiment of this application. The communication device 300 can implement the functions of the first communication device in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments. In this application embodiment, the communication device 300 can be a terminal device, a server, or a network device, or it can be an integrated circuit or component inside the terminal device, server, or network device, such as a chip, baseband chip, modem chip, SoC chip containing a modem core, system-in-package (SIP) chip, communication module, chip system, processor, etc.

[0156] like Figure 12 As shown, the communication device 300 includes a transceiver unit 301 and a processing unit 302. Optionally, the transceiver unit 301 may include a transmitting unit and a receiving unit, which are used to perform transmitting and receiving, respectively.

[0157] The transceiver unit 301 is used to send N first probe messages in the first probe stream to the second communication device in parallel. The N first probe messages carry different time-to-live (TTL) values ​​and identification information, where N is an integer greater than or equal to 2.

[0158] The transceiver unit 301 is also used to receive M first messages, each first message carrying the address of the terminal node of a first probe message and the identification information of the first probe message. The number of hops from the terminal node to the first communication device is equal to the TTL of the first probe message, and M is an integer greater than 0 and less than or equal to N.

[0159] The processing unit 302 is used to determine the reachable path between the first communication device and the second communication device based on M first messages.

[0160] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the sequence number of the first probe message.

[0161] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the length field of the first probe message.

[0162] Based on the second aspect, in one optional implementation, the identification information of each first probe message is the checksum of the first probe message.

[0163] Based on the second aspect, in an optional implementation, when the first communication device receives a second message from the second communication device, the transceiver unit 301 is further configured to send X second probe messages from the second probe stream to the second communication device in parallel. The X second probe messages carry different TTLs and identification information, where X is an integer greater than or equal to 2. The second message carries the address of the second communication device and the identification information of the first probe message.

[0164] Based on the second aspect, in an optional implementation, the processing unit 302 is further configured to determine the latency and / or packet loss of the reachable path between the first communication device and the second communication device based on M first messages.

[0165] Based on the second aspect, in an optional implementation, the first communication device is a proxy device between the third communication device and the second communication device, or the second communication device is a proxy device between the first communication device and the third communication device.

[0166] Based on the second aspect, in an optional implementation, the transceiver unit 301 is further configured to send M first probe messages in the first probe stream to the second communication device, wherein the M first probe messages carry different time-to-live (TTL) values ​​and identification information.

[0167] It should be noted that the information interaction and execution process between the modules / units in the communication device 300 are different from those in this application. Figure 6 The corresponding method embodiments are based on the same concept, and the details can be found in the descriptions of the method embodiments shown above in this application, which will not be repeated here.

[0168] Please see Figure 13 The above-described embodiments of the communication device provided in this application are schematic diagrams of the structure of the communication device.

[0169] It is understood that the communication device 400 includes, for example, modules, units, elements, circuits, or interfaces, which are appropriately configured together to execute the technical solutions provided in this application. The communication device 400 may be the terminal device, server, or network device described above, or it may be a component (e.g., a chip) within the terminal device, server, or network device, used to implement the methods described in the following method embodiments. The communication device 400 includes one or more processors 401. The processor 401 may be a general-purpose processor or a dedicated processor, for example, a baseband processor or a central processing unit. The baseband processor can be used to process communication protocols and communication data, and the central processing unit can be used to control the communication device (e.g., RAN node, terminal, or chip), execute software programs, and process data from the software programs.

[0170] Optionally, in one design, processor 401 may include program 403 (sometimes also referred to as code or instructions), which can be executed on processor 401 to cause communication device 400 to perform the methods described in the embodiments below. In yet another possible design, communication device 400 includes circuitry (…). Figure 13 (Not shown).

[0171] Optionally, the communication device 400 may include one or more memories 402 storing a program 404 (sometimes referred to as code or instructions), which can be run on the processor 401 to cause the communication device 400 to perform the methods described in the above method embodiments.

[0172] Optionally, the processor 401 and / or memory 402 may include AI modules 407 and 408, which are used to implement AI-related functions. The AI ​​modules can be implemented through software, hardware, or a combination of both. For example, the AI ​​module may include a radio intelligence control (RIC) module. For instance, the AI ​​module may be a near real-time RIC or a non-real-time RIC.

[0173] Optionally, the processor 401 and / or memory 402 may also store data. The processor and memory may be configured separately or integrated together.

[0174] Optionally, the communication device 400 may further include a transceiver 405 and / or an antenna 406. The processor 401, sometimes referred to as a processing unit, controls the communication device (e.g., a RAN node or terminal). The transceiver 405, sometimes referred to as a transceiver unit, transceiver, transceiver circuit, or transceiver, is used to realize the transmission and reception functions of the communication device through the antenna 406.

[0175] in, Figure 12 The processing unit 302 shown may be a processor 401. Figure 12 The transceiver unit 301 shown can be a communication interface, which can be... Figure 13 The transceiver 405 may include an input interface and an output interface. Alternatively, the transceiver 405 may also be a transceiver circuit, which may include an input interface circuit and an output interface circuit.

[0176] This application also provides a computer-readable storage medium for storing one or more computer-executable instructions. When the computer-executable instructions are executed by a processor, the processor performs the method described in the possible implementations of the terminal device or network device in the foregoing embodiments.

[0177] This application also provides a computer program product (or computer program) that, when executed by a processor, executes the method described above for possible implementation of a terminal device or network device.

[0178] This application also provides a chip system including at least one processor for supporting a communication device in implementing the functions involved in the possible implementations of the communication device described above. Optionally, the chip system further includes an interface circuit that provides program instructions and / or data to the at least one processor. In one possible design, the chip system may further include a memory for storing the program instructions and data necessary for the communication device. The chip system may be composed of chips or may include chips and other discrete devices, wherein the communication device may specifically be a terminal device or a network device as described in the foregoing method embodiments.

[0179] This application also provides a communication system, which includes a first communication device and a second communication device in any of the above embodiments.

[0180] This application also provides a chip device, including a processor, configured to call computer programs or computer instructions stored in the memory, so that the processor executes the above-described... Figure 6 The method provided in the illustrated embodiment.

[0181] In one possible implementation, the input of the chip device corresponds to the above. Figure 6 In any of the embodiments shown, the receiving operation of the chip device corresponds to the above-described... Figure 6 The sending operation in any of the embodiments shown.

[0182] Optionally, the processor is coupled to the memory via an interface.

[0183] Optionally, the chip device may also include a memory that stores computer programs or computer instructions.

[0184] The processor mentioned above can be a general-purpose central processing unit, a microprocessor, an application-specific integrated circuit (ASIC), or one or more devices used to control the above. Figure 4The illustrated embodiments provide an integrated circuit for program execution of the method provided in any of the embodiments. The memory mentioned above may be read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions, such as random access memory (RAM).

[0185] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, optical storage, etc.) containing computer-usable program code.

[0186] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0187] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0188] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0189] In the embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms. Whether a function is implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0190] It should be understood that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Furthermore, in the accompanying drawings of the device embodiments provided in this application, the connection relationships between modules indicate that they have communication connections, which can be specifically implemented as one or more communication buses or signal lines.

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

[0192] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to it, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0193] In the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions between different embodiments are consistent and can be referenced by each other. Technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.

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

Claims

1. A communication method characterized by comprising: The method comprises: The first communication device sends N first probe packets in a first probe stream to the second communication device in parallel, the N first probe packets carrying different time-to-live (TTL) values and identification information, N being an integer greater than or equal to 2; The first communication device receives M first packets, each of the M first packets carrying an address of a terminal node of the first probe packet and identification information of the first probe packet, the terminal node being a hop away from the first communication device equal to the TTL of the first probe packet, M being an integer greater than 0 and less than or equal to N; The first communication device determines a reachable path between the first communication device and the second communication device according to the M first packets.

2. The method of claim 1, wherein, The identification information of each of the first probe packets is a sequence number of the first probe packet.

3. The method of claim 1, wherein, The identification information of each of the first probe packets is a length field of the first probe packet.

4. The method of claim 1, wherein, The identification information of each of the first probe packets is a checksum of the first probe packet.

5. The method according to any one of claims 1 to 4, characterized in that, The method further comprises: If the first communication device receives a second packet from the second communication device, the first communication device sends X second probe packets in a second probe stream to the second communication device in parallel, the X second probe packets carrying different TTL values and identification information, X being an integer greater than or equal to 2, the second packet carrying an address of the second communication device and identification information of a first probe packet.

6. The method according to any one of claims 1 to 5, characterized in that, The method further comprises: The first communication device determines a time delay and / or a packet loss condition of the reachable path between the first communication device and the second communication device based on the M first packets.

7. The method according to any one of claims 1 to 6, characterized in that, The first communication device is a proxy device between a third communication device and the second communication device, or the second communication device is a proxy device between the first communication device and the third communication device.

8. The method according to any one of claims 1 to 7, characterized in that, After the first communication device receives the M first packets, the method further comprises: The first communication device sends the M first probe packets in the first probe stream to the second communication device, the M first probe packets carrying different TTL values and identification information.

9. A communications device, characterized by The communication device comprises at least one processor configured to perform the method of any one of claims 1 to 8.

10. The communication apparatus according to claim 9, wherein The communication device is a chip or a chip system.

11. A readable storage medium, characterized by, The storage medium stores a computer program or instructions, which, when executed by the communication device, implement the method of any one of claims 1 to 8.

12. A computer program product, characterised in that, The computer program product, when running on a computer, causes the computer to perform the method of any one of claims 1 to 8.