Measuring data packet delay in end-to-end communication path
By sending and receiving packets of delay measurement information between computing devices, determining the data packet delay and adjusting the service quality of the communication path, the problem of data delay management in the end-to-end communication path across multiple communication networks is solved, and accurate measurement of data delay and optimization of service quality is achieved.
Patent Information
- Application Number
- CN202380079471.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-14
- Filing Date
- 2023-11-09
- Publication Date
- 2025-06-24
AI Technical Summary
The prior art is difficult to effectively manage data latency in end-to-end communication paths across multiple communication networks, especially when providing a specific quality of service (QoS), and it is difficult to optimize the use of network resources.
By sending and receiving packets of delay measurement information between computing devices, the data packet delay is determined and the quality of service of the communication path is adjusted based on this information to ensure that end-to-end QoS requirements are met.
It realizes accurate measurement and management of data delays in end-to-end communication paths, helps network operators optimize network resource configuration and provide more stable and efficient communication services.
Smart Images

Figure CN120202653A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 386,286, filed on Dec. 6, 2022, and entitled "Measuring Data Packet Delay in an End-To-End Communication Path", and U.S. Non-Provisional Patent Application No. 18 / 168,903, filed on Feb. 14, 2023, and entitled "Measuring Data Packet Delay in an End-To-End Communication Path", the entire contents of which are hereby incorporated herein by reference for all purposes. Background Art
[0003] Communication networks can be configured to provide quality of service (QoS) for applications, services, or data streams. There are resource costs associated with provisioning a network to provide a particular QoS, and thus, to meet specific QoS requirements, network operators typically attempt to provide sufficient network resources without overusing or underusing network resources. Providing QoS for applications, services, or data streams that involve communication across two or more different types of networks is even more complex. Summary of the Invention
[0004] Aspects include systems and methods for managing data latency in an end-to-end communication path across one or more communication networks, performed by an endpoint computing device. Aspects may include a first computing device configured to: send first latency measurement information to a second computing device in a first packet having a header portion configured to indicate that the packet is a data packet; receive second latency measurement information from the second computing device in a second packet having a header portion configured to indicate that the second packet is a data packet; determine a data packet latency between the first computing device and the second computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; and use the determined packet latency to set a quality of service for the communication path between the first computing device and the second computing device.
[0005] In some aspects, the header portion of the first packet indicates that the payload portion of the first packet may include first delay measurement information. In some aspects, the Synchronization Source (SSRC) field of the header portion of the first packet may be configured to indicate that the payload portion of the first packet includes the first delay measurement information. In some aspects, the header portion of the second packet may indicate that the payload portion of the second packet may include a second delay measurement message. In some aspects, the SSRC field of the header portion of the second packet may be configured to indicate that the payload portion of the second packet includes the second delay measurement information. Some aspects may include: configuring the first packet and the second packet such that the first delay measurement information or the second delay measurement information includes one or more of the following: an echo message, an echo reply message, a timestamp message, a timestamp, or a set of timestamps. In some aspects, the delay measurement information may be included in a Real-Time Protocol (RTP) packet header extension or in the payload portion of an RTP or Secure RTP (SRTP) packet.
[0006] In some aspects, the transmission timing information of the first delay measurement information may include a first transmission time, and the timing information of the second delay measurement information may include the first transmission time, a first reception time of the second computing device, a second transmission time of the second computing device for a second delay measurement, and a second reception time of the first computing device for the second delay measurement. Such aspects may include: determining the data packet delay based on the first transmission time and the first reception time, the second transmission time and the second reception time, or the first transmission time, the first reception time, the second transmission time, and the second reception time. Some aspects may include: configuring the first packet such that the payload portion of the first packet may include the first delay measurement information and a data portion. Some aspects may include: configuring a header extension for the first packet, the header extension being configured to indicate to the second computing device how to extract the first delay measurement information from the first packet.
[0007] Some aspects may include: as part of setting a quality of service for a communication link between the first computing device and the second computing device, using the determined packet delay to determine whether a difference between the data packet delay and a previously determined data packet delay between the first computing device and the second computing device exceeds a delay threshold; and in response to determining that the difference between the data packet delay and the previously determined data packet delay exceeds the delay threshold, sending the determined data packet delay to a network element of a communication network. In some aspects, as part of setting a quality of service for a communication link between the first computing device and the second computing device, using the determined packet delay may include: determining whether the data packet delay is greater than a previously determined data packet delay between the first computing device and the second computing device; and in response to determining that the data packet delay is greater than the previously determined data packet delay, sending the determined data packet delay to a network element of a communication network.
[0008] In some aspects, sending the determined data packet delay to a network element of a communication network may include: sending an indication of the determined data packet delay, the indication being configured to enable the network element of the communication network to configure the communication network to provide sufficient quality of service (QoS) to support end-to-end QoS requirements based on the determined data packet delay. In some aspects, the communication path between the first computing device and the second computing device may span a first communication network that is a 5G network and a second communication network that is not a 5G network.
[0009] Some aspects may include: sending a configuration offer to the second computing device, the configuration offer including first configuration information for the sending and receiving of delay measurement information; receiving a configuration response from the second computing device, the configuration response including second configuration information that is a subset of the first configuration information; and using the second configuration to send the first delay measurement information and receive the second delay measurement information.
[0010] Additional aspects include a computing device having a processor configured to perform one or more operations of any of the methods outlined above. Additional aspects include a computing device configured with processor-executable instructions to perform the operations of any of the methods outlined above. Additional aspects include a non-transitory processor-readable storage medium storing thereon processor-executable instructions configured to cause a processor of a computing device to perform the operations of any of the methods outlined above. Additional aspects include a computing device having components for performing the functions of any of the methods outlined above. Additional aspects include a system-on-chip used in a computing device and including a processor configured to perform one or more operations of any of the methods outlined above. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1A is a system block diagram illustrating an example communication system suitable for implementing any of the various embodiments.
[0012] Figures 1B to 1E is a system block diagram illustrating an example communication system suitable for implementing any of the various embodiments.
[0013] Figure 2 is a component block diagram illustrating an example computing and wireless modem system suitable for implementing any of the various embodiments.
[0014] Figure 3 is a component block diagram illustrating a software architecture including a radio protocol stack for a user plane and a control plane in wireless communication suitable for implementing any of the various embodiments.
[0015] Figure 4 is a component block diagram illustrating a system configured to manage end-to-end QoS in a communication path across a first communication network and a second communication network according to various embodiments.
[0016] Figure 5 is a process flow diagram illustrating a method for enhancing coverage for initial access performed by a processor of a network element according to various embodiments.
[0017] Figures 6A to 6I is a process flow diagram illustrating operations executable by a processor of a network element as part of a method for managing end-to-end QoS in a communication path across a first communication network and a second communication network according to various embodiments.
[0018] Figure 6J and Figure 6KIs a conceptual diagram illustrating example packet loss measurements.
[0019] Figure 6L Is a conceptual diagram illustrating example available bandwidth measurements.
[0020] Figure 7A Illustrates communication devices and delay elements in an end-to-end communication path.
[0021] Figures 7B to 7E Is a signal diagram illustrating alternative message packet formats for measuring data packet delay in an end-to-end communication path according to various embodiments.
[0022] Figure 7F And Figure 7G Is a signal diagram illustrating operations that can be performed by a computing device according to various embodiments to configure the computing device to perform operations for measuring data packet delay in an end-to-end communication path.
[0023] Figure 7H 、 Figure 7I 、 Figure 7J And Figure 7K Is a diagram illustrating information structures that can be used by a computing device to send or receive in-band delay measurement information according to various embodiments.
[0024] Figure 8A Is a process flow diagram illustrating a method that can be performed by a processor of a computing device for managing data delay in an end-to-end communication path according to some embodiments.
[0025] Figure 8B 、 Figure 8C And Figure 8D Is a process flow diagram illustrating operations that can be performed by a processor of a computing device as part of a method for managing data delay in an end-to-end communication path according to some embodiments.
[0026] Figure 9 Is a component block diagram of a network element device suitable for use with various embodiments.
[0027] Figure 10 Is a component block diagram of a wireless device suitable for use with various embodiments. Detailed Description
[0028] Various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numerals will be used throughout the drawings to refer to the same or like parts. References to specific examples and specific implementations are for illustrative purposes only and are not intended to limit the scope of the claims.
[0029] Various embodiments include systems and methods for managing end-to-end QoS in a communication path spanning a first communication network and a second communication network. Various embodiments may enable network elements to determine QoS requirements for the first communication network based on end-to-end QoS requirements and the achieved QoS of the second communication network (such as a communication path through a 5G network and one or more non-5G networks). Various embodiments may enable network elements to determine the achieved QoS of the second communication network (e.g., one or more non-5G networks).
[0030] Various embodiments include systems and methods for measuring data packet latency in an end-to-end communication path spanning one or more communication networks. In some embodiments, a first computing device may be configured to transmit messages to and / or receive messages from a second computing device; and determine data packet latency in the communication path between the first computing device and the second computing device based on timing information associated with the messages.
[0031] The term "network element" is used herein to refer to any one or all of the computing devices that are part of or communicate with a communication network, such as a server, router, gateway, hub device, switch device, bridge device, repeater device, or another electronic device including a memory, communication component, and programmable processor. A wireless device communicating with a network may be considered a network element of such a network.
[0032] As used herein, the terms "network," "communication network," and "system" may interchangeably refer to a part or all of a communication network or an interconnected network. A network may include multiple network elements. A network may include a wireless network and / or may support one or more functions or services of a wireless network.
[0033] As used herein, "wireless network", "cellular network", and "wireless communication network" may interchangeably refer to a part or all of the wireless network of a carrier associated with a wireless device and / or a subscription on the wireless device. The techniques described herein can be used in various wireless communication networks, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), FDMA, Orthogonal FDMA (OFDMA), Single-Carrier FDMA (SC-FDMA), and other networks. Generally, any number of wireless networks can be deployed in a given geographical area. Each wireless network can support at least one radio access technology, which can operate on one or more frequencies or frequency ranges. For example, a CDMA network can implement Universal Terrestrial Radio Access (UTRA) (including Wideband Code Division Multiple Access (WCDMA) standard), CDMA2000 (including IS-2000, IS-95, and / or IS-856 standards), etc. In another example, a TDMA network can implement GSM Enhanced Data Rates for GSM Evolution (EDGE). In another example, an OFDMA network can implement Evolved UTRA (E-UTRA) (including LTE standard), Institute of Electrical and Electronics Engineers (IEEE) 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, etc. A wireless network using the LTE standard can be referred to, and thus the terms "Evolved Universal Terrestrial Radio Access", "E-UTRAN", and "eNodeB" can also be used interchangeably herein to refer to the wireless network. However, such references are provided merely as examples and are not intended to exclude wireless networks using other communication standards. For example, although various third-generation (3G) systems, fourth-generation (4G) systems, and fifth-generation (5G) systems are discussed herein, those systems are cited merely as examples and can be replaced with future-generation systems (e.g., sixth-generation (6G) or higher-generation systems) in various examples.
[0034] The term "wireless device" as used herein refers to any one or all of the following: wireless router devices, radios, cellular telephones, smart phones, portable computing devices, personal or mobile multimedia players, laptop computers, tablet computers, smartbooks, ultrabooks, palmtop computers, wireless email receivers, Internet-enabled multimedia cellular telephones, medical devices and equipment, biosensors / devices, wearable devices (including smart watches, smart clothing, smart glasses, smart wristbands, smart jewelry (e.g., smart rings, smart bracelets)), entertainment devices (e.g., wireless game controllers, music and video players, satellite radios, etc.), Internet of Things (IoT) devices enabled with wireless networks (including smart meters / sensors, industrial manufacturing equipment, large and small machines and appliances for home or enterprise use), wireless communication components within autonomous and semi-autonomous vehicles, wireless devices added or incorporated into various mobile platforms, global positioning system devices, and similar electronic and computing devices that include memory, wireless communication components, and programmable processors.
[0035] The term "system-on-a-chip" (SOC) as used herein refers to a single integrated circuit (IC) chip that contains multiple resources or processors integrated on a single substrate. A single SOC may contain circuitry for digital, analog, mixed-signal, and radio frequency functions. A single SOC may also include any number of general-purpose or special-purpose processors (such as digital signal processors, modem processors, video processors, etc.), memory blocks (such as ROM, RAM, flash memory, etc.), and resources (such as timers, voltage regulators, oscillators, etc.). Each SOC may also include software for controlling the integrated resources and processors, as well as for controlling peripheral devices.
[0036] The term "system-in-package" (SIP) as used herein may refer to a single module or package that contains multiple resources, computing units, cores or processors on two or more IC chips, a substrate, or an SOC. For example, an SIP may include a single substrate with multiple IC chips or semiconductor die stacked on it in a vertical configuration. Similarly, an SIP may include one or more multi-chip modules (MCMs) on which multiple ICs or semiconductor die are encapsulated into a unified substrate. An SIP may also include multiple independent SOCs coupled together via high-speed communication circuitry and packaged closely together (such as on a single motherboard or within a single wireless device). The proximity of the SOCs enables high-speed communication as well as sharing of memory and resources.
[0037] It is relatively complex to provide QoS for applications, services, or data streams involving communications across two or more different types of networks. A communication network may be able to determine information about its own network elements (including devices that communicate with or convey information to these network elements, e.g., devices connected to the communication network) and configure the operation of its own network elements. However, a communication network may not be able to obtain information about the operation of other communication networks. For example, an application client of a wireless device may communicate with another device (e.g., an application server or another wireless device) via a communication path. The communication path (″end-to-end″ communication path) between two endpoint devices may span multiple networks.
[0038] As an example, to provide an augmented reality application, wireless smart glasses may communicate with an application server (transmitting signals to and receiving signals from the application server) via a communication path that spans multiple communication networks. For example, the smart glasses may communicate with a smartphone via a Wi-Fi network; the smartphone may communicate with a 5G network base station via a cellular communication link; the 5G network may communicate with an interconnected network (e.g., the Internet); and the interconnected network may communicate with a wired network using Ethernet including the application server. In this example, the communication path between the smart glasses and the application server spans a Wi-Fi network, a 5G network, an interconnected network, and a wired Ethernet network. The augmented reality application of the smart glasses may require specific QoS to meet one or more application requirements. One network (e.g., the 5G network) may be able to configure its various network elements according to the QoS requirements of the application. However, the 5G network generally has no control over the configuration or operation of the network elements of the Wi-Fi network, the interconnected network, or the wired Ethernet network.
[0039] Various embodiments include methods and network devices configured to perform methods for managing end-to-end QoS in a communication path spanning a first communication network and a second communication network (which may include one or more other communication networks). For example, the first communication network may include a 5G network, and the second communication network may not be a 5G network. Various operations may be performed by network elements of the communication network acting as measurement entities. In various embodiments, network elements of the first communication network may determine end-to-end QoS requirements for delivering packets from a packet source to a packet destination via the communication path. For example, an application, service, or data stream may request QoS requirements or may be associated with QoS requirements. In various embodiments, the QoS requirements may reflect the performance requirements of the application, service, or data stream. Network elements of the first communication network may determine the QoS provided by the second communication network within the communication path. Based on the QoS provided by the second communication network, network elements of the first communication network may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements.
[0040] In some embodiments, a network element may determine a packet error rate of a second communication network. In such embodiments, the network element may determine a required packet error rate of a first communication network based on the determined packet error rate of the second communication network. The terms "packet error rate" and "packet loss rate" may be used interchangeably herein. In some embodiments, a network element may determine an available throughput of a second communication network. In such embodiments, the network element may determine a throughput requirement of the first communication network based on the determined available throughput of the second communication network. In some embodiments, a network element may measure an end-to-end achieved QoS, identify the QoS provided by the first communication network, and determine the QoS provided by the second communication network within a communication path based on the end-to-end achieved QoS and the QoS provided by the first communication network.
[0041] In some embodiments, a network element may apply a 5G QoS identifier (5QI) associated with one or more network element configurations and / or one or more measurement operations to one or more network elements of a first communication network to configure the network elements to perform operations such that the network elements can determine the QoS provided by the second communication network within a communication path. In some embodiments, any or all of the 5QIs described herein may be defined in a communication standard or a technical standard. In some embodiments, a 5QI may be associated with one or more attributes or parameters, including at least one of constant packet delay, packet delay budget, packet error rate, default priority level, default maximum data burst volume, or another attribute or parameter.
[0042] In some embodiments, a network element may apply a packet delay measurement 5QI corresponding to a constant packet delay in a first communication network and may determine the QoS provided by the second communication network within a communication path based on the end-to-end achieved packet delay and the constant packet delay in the first communication network.
[0043] In some embodiments, a network element may apply a packet loss rate 5QI corresponding to a constant packet loss rate in a first communication network and may determine the QoS provided by the second communication network within a communication path based on the end-to-end achieved packet loss rate and the constant packet loss rate in the first communication network.
[0044] In some embodiments, a network element may apply a packet loss rate 5QI associated with a packet loss measurement process that excludes packet loss in a first communication network and may determine the QoS provided by the second communication network within a communication path based on the end-to-end achieved packet loss and the packet loss measurement process.
[0045] In some embodiments, a network element may apply an available bandwidth 5QI associated with an available bandwidth measurement procedure that configures resources of a first communication network such that packet loss in the first communication network is substantially negligible relative to packet loss in a second communication network, and may determine QoS provided by the second communication network within a communication path based on the end - to - end achieved available bandwidth and the available bandwidth measurement procedure.
[0046] In some embodiments, a network element may apply an available bandwidth 5QI associated with an available bandwidth measurement procedure in which data packets are transmitted back - to - back in a first communication network, and may determine QoS provided by the second communication network within a communication path based on the end - to - end achieved available bandwidth and the available bandwidth measurement procedure.
[0047] In some embodiments, a network element may apply a network measurement 5QI associated with a network measurement procedure for performing end - to - end measurements of measurement packets transmitted along a communication path, and may determine QoS provided by the second communication network within a communication path based on the end - to - end achieved QoS and the network measurement procedure.
[0048] Various embodiments may improve the operation of a communication network by enabling the configuration of network elements to provide QoS that meets the QoS requirements for a device, application, or service. Various embodiments may improve the operation of a first communication network by enabling the determination of QoS provided by another communication network, which may include network elements that are not under the control of the first communication network or that may not otherwise provide information to the first communication network.
[0049] Figure 1A FIG. 1 is a system block diagram illustrating an example communication system 100 suitable for implementing any of the various embodiments. The communication system 100 may be a 5G New Radio (NR) network, or any other suitable network (such as a Long - Term Evolution (LTE) network). Although FIG. 1 illustrates a 5G network, future generations of networks may include the same or similar elements. Accordingly, references to 5G networks and 5G network elements in the following description are for illustrative purposes and are not intended to be limiting.
[0050] The communication system 100 may include a heterogeneous network architecture that includes a core network 140 and various wireless devices (illustrated in FIG. 1 as user equipments (UEs) 120a - 120e). The communication system 100 may also include several base stations (illustrated as BS110a, BS110b, BS110c, and BS 110d) and other network entities. A base station is an entity that communicates with wireless devices and may also be referred to as Node B, Long Term Evolution evolved Node B (eNodeB or eNB), access point (AP), radio head, transmission reception point (TRP), New Radio base station (NR BS), 5G Node B (NB), next generation Node B (gNodeB or gNB), etc. Each base station may provide communication coverage for a specific geographical area. In 3GPP, the term "cell" may refer to the coverage area of a base station, the base station subsystem serving that coverage area, or a combination thereof, depending on the context in which the term is used. The core network 140 may be any type of core network, such as an LTE core network (e.g., an EPC network), a 5G core network, etc.
[0051] Base stations 110a - 110d may provide communication coverage for macrocells, picocells, femtocells, another type of cell, or a combination thereof. A macrocell may cover a relatively large geographical area (e.g., with a radius of several kilometers) and may allow unconstrained access by wireless devices with a service subscription. A picocell may cover a relatively small geographical area and may allow unconstrained access by wireless devices with a service subscription. A femtocell may cover a relatively small geographical area (e.g., a home) and may allow constrained access by wireless devices associated with that femtocell (e.g., wireless devices in a Closed Subscriber Group (CSG)). A base station for a macrocell may be referred to as a macro BS. A base station for a picocell may be referred to as a pico BS. A base station for a femtocell may be referred to as a femto BS or a home BS. In the example illustrated in FIG. 1, base station 110a may be a macro BS for macrocell 102a, base station 110b may be a pico BS for picocell 102b, and base station 110c may be a femto BS for femtocell 102c. Base stations 110a - 110d may support one or more (e.g., three) cells. The terms "eNB", "base station", "NR BS", "gNB", "TRP", "AP", "Node B", "5G NB", and "cell" may be used interchangeably herein.
[0052] In some examples, the cell may not be stationary, and the geographical area of the cell may move according to the location of the mobile base station. In some examples, base stations 110a - 110d may be interconnected with each other and with one or more other base stations or network nodes (not illustrated) in the communication system 100 using any suitable transport network via various types of backhaul interfaces such as direct physical connections, virtual networks, or combinations thereof.
[0053] Base stations 110a - 110d may communicate with the core network 140 over a wired or wireless communication link 126. Wireless devices 120a - 120e may communicate with base stations 110a - 110d over a wireless communication link 122.
[0054] The wired communication link 126 may use a variety of wired networks such as Ethernet, TV cable, telephone, fiber optic, and other forms of physical network connections, which may use one or more wired communication protocols such as Ethernet, Point - to - Point Protocol, High - level Data Link Control (HDLC), Advanced Data Communication Control Protocol (ADCCP), and Transmission Control Protocol / Internet Protocol (TCP / IP).
[0055] The communication system 100 may also include relay stations such as relay BS110d. A relay station is an entity that can receive a data transmission from an upstream station (e.g., a base station or a wireless device) and forward that data transmission to a downstream station (e.g., a wireless device or a base station). A relay station can also be a wireless device that can relay transmissions for other wireless devices. In the example illustrated in FIG. 1, the relay station 110d may communicate with the macro base station 110a and the wireless device 120d to facilitate communication between the base station 110a and the wireless device 120d. A relay station may also be referred to as a relay base station, a repeater base station, a repeater, etc.
[0056] The communication system 100 may be a heterogeneous network including different types of base stations (e.g., macro base stations, pico base stations, femto base stations, relay base stations, etc.). These different types of base stations may have different transmission power levels, different coverage areas, and different impacts on interference in the communication system 100. For example, a macro base station may have a high transmission power level (e.g., 5 watts to 40 watts), while pico base stations, femto base stations, and relay base stations may have lower transmission power levels (e.g., 0.1 watt to 2 watts).
[0057] The network controller 130 may be coupled to a set of base stations and may provide coordination and control for these base stations. The network controller 130 may communicate with the base stations via the backhaul. The base stations may also communicate with each other directly or indirectly via a wireless or wired backhaul, for example.
[0058] Wireless devices 120a, 120b, 120c can be dispersed throughout the communication system 100, and each wireless device can be stationary or mobile. The wireless devices can also be referred to as access terminals, terminals, mobile stations, subscriber units, stations, user equipment (UE), etc.
[0059] Macro base station 110a can communicate with the communication network 140 over a wired or wireless communication link 126. Wireless devices 120a, 120b, 120c can communicate with base stations 110a - 110d over wireless communication links 122.
[0060] Wireless communication links 122 and 124 can include multiple carrier signals, frequencies, or frequency bands, each of which can include multiple logical channels. Wireless communication links 122 and 124 can utilize one or more radio access technologies (RATs). Examples of RATs that can be used in the wireless communication link include: 3GPP LTE, 3G, 4G, 5G (such as NR), GSM, code division multiple access (CDMA), wideband code division multiple access (WCDMA), worldwide interoperability for microwave access (WiMAX), time division multiple access (TDMA), and other cellular RATs for mobile phone communication technologies. Other examples of RATs that can be used in one or more of the various wireless communication links within the communication system 100 include mid - range protocols (such as Wi-Fi, LTE-U, LTE - Direct, LAA, MuLTEfire) and relatively short - range RATs (such as ZigBee, Bluetooth, and Bluetooth low energy (LE)).
[0061] A specific wireless network (e.g., LTE) uses Orthogonal Frequency Division Multiplexing (OFDM) on the downlink and Single Carrier Frequency Division Multiplexing (SC-FDM) on the uplink. OFDM and SC-FDM divide the system bandwidth into multiple (K) orthogonal subcarriers, which are also often referred to as frequency tones, frequency bins, etc. Each subcarrier can be modulated with data. Generally speaking, modulation symbols are transmitted using OFDM in the frequency domain and using SC-FDM in the time domain. The spacing between adjacent subcarriers can be fixed, and the total number of subcarriers (K) can depend on the system bandwidth. For example, the subcarrier spacing can be 15 kHz, and the minimum resource allocation (referred to as a "resource block") can be 12 subcarriers (or 180 kHz). Thus, for system bandwidths of 1.25 megahertz (MHz), 2.5 MHz, 5 MHz, 10 MHz, or 20 MHz, the nominal Fast Fourier Transform (FFT) size can be equal to 128, 256, 512, 1024, or 2048, respectively. The system bandwidth can also be divided into subbands. For example, a subband can cover 1.08 MHz (i.e., 6 resource blocks), and for system bandwidths of 1.25 MHz, 2.5 MHz, 5 MHz, 10 MHz, or 20 MHz, there can be 1, 2, 4, 8, or 16 subbands, respectively.
[0062] Although some descriptions of specific implementations may use terms and examples associated with LTE technology, some specific implementations can be applicable to other wireless communication systems (such as New Radio (NR) or 5G networks). NR can use OFDM with Cyclic Prefix (CP) on both the uplink (UL) and downlink (DL), and includes support for half-duplex operation using Time Division Duplex (TDD). A single component carrier bandwidth of 100 MHz can be supported. An NR resource block can span 12 subcarriers with a subcarrier bandwidth of 75 kHz over a duration of 0.1 millisecond (ms). Each radio frame can include 50 subframes with a length of 10 ms. Thus, each subframe can have a length of 0.2 ms. Each subframe can indicate the link direction for data transmission (i.e., DL or UL), and the link direction of each subframe can be switched dynamically. Each subframe can include DL / UL data as well as DL / UL control data. Beamforming can be supported and the beam direction can be configured dynamically. Multi-Input Multi-Output (MIMO) transmission with precoding can also be supported. The MIMO configuration in the DL can support up to 8 transmit antennas (multi-layer DL transmission with up to eight streams) and up to two streams per wireless device. Multi-layer transmission with up to two streams per wireless device can be supported. Aggregation of multiple cells can be supported using up to eight serving cells. Alternatively, NR can support different air interfaces other than the OFDM-based air interface.
[0063] Some wireless devices can be considered machine type communication (MTC) or evolved or enhanced machine type communication (eMTC) wireless devices. MTC and eMTC wireless devices include, for example, robots, drones, remote devices, sensors, meters, monitors, location tags, etc., which can communicate with a base station, another device (e.g., a remote device), or some other entity. A wireless computing platform can provide connectivity to a network (e.g., a wide area network such as the Internet or a cellular network) or provide connectivity to the network, for example, via a wired or wireless communication link. Some wireless devices can be considered Internet of Things (IoT) devices, or can be implemented as narrowband IoT (NB-IoT) devices. Wireless devices 120a - 120e can be included inside a housing that houses the components of wireless devices 120a - 120e, such as processor components, memory components, similar components, or combinations thereof.
[0064] Generally speaking, any number of communication systems and any number of wireless networks can be deployed in a given geographical area. Each communication system and wireless network can support a specific radio access technology (RAT) and can operate on one or more frequencies. The RAT can also be referred to as a radio technology, an air interface, etc. The frequency can also be referred to as a carrier, a frequency channel, etc. Each frequency can support a single RAT in a given geographical area to avoid interference between communication systems of different RATs. In some cases, 4G / LTE and / or 5G / NR RAT networks can be deployed. For example, a 5G non-standalone (NSA) network can use 4G / LTE RAT on the 4G / LTE RAN side of the 5G NSA network and use 5G / NR RAT on the 5G / NR RAN side of the 5G NSA network at the same time. Both the 4G / LTE RAN and the 5G / NR RAN can be connected to each other and connected to the 4G / LTE core network (e.g., an evolved packet core (EPC) network) in the 5G NSA network. Other example network configurations can include a 5G standalone (SA) network in which the 5G / NR RAN is connected to a 5G core network.
[0065] In some specific implementations, two or more wireless devices 120a - 120e (e.g., illustrated as wireless device 120a and wireless device 120e) can use one or more sidelink channels 124 to communicate directly (e.g., without using base stations 110a - 110d as intermediaries to communicate with each other). For example, wireless devices 120a to 120e can communicate using peer - to - peer (P2P) communication, device - to - device (D2D) communication, vehicle - to - everything (V2X) protocols (which can include vehicle - to - vehicle (V2V) protocols, vehicle - to - infrastructure (V2I) protocols, or similar protocols), mesh networks, or similar networks or combinations thereof. In such cases, wireless devices 120a - 120e can perform scheduling operations, resource selection operations, and other operations described elsewhere herein as being performed by base stations 110a - 110d.
[0066] Figures 1B to 1D is a system block diagram illustrating example communication systems 150, 160, 170, and 180 suitable for implementing any of the various embodiments. Refer to Figures 1A to 1D , communication systems 150, 160, 170, and 180 illustrate example end - to - end communication paths between two endpoint devices across multiple communication networks. It should be understood that the examples illustrated in communication systems 150, 160, 170, and 180 are non - restrictive, and other specific implementations of end - to - end communication paths between two endpoint devices across multiple communication networks are possible.
[0067] Refer to Figure 1B , an application client executed on UE 152a (e.g., wireless device 120a - 120e) can communicate with an application client executed on UE 158 (e.g., wireless device 120a - 120e). The communication path between UE 152a and UE 158 can span two networks, such as 5G network 151a and non - 5G network 151b. In some embodiments, 5G network 151a can include UE 152a that can communicate with gNB 152b via a cellular communication link 153, 5G core network 152c, and a user plane function (UPF) 152d that can enable communication between 5G network 151a and non - 5G network 151b. Non - 5G network 151b can include an interconnected network (such as the Internet 154), a Wi - Fi access point (AP) 156, and a wireless device 158 that can communicate with the Wi - Fi access point 156 via a Wi - Fi wireless communication link 157.
[0068] Refer to Figure 1C, an application client executed on a UE 162a (e.g., wireless device 120a - 120e) can communicate with an application client executed on a UE 168 (e.g., wireless device 120a - 120e). The communication path between the UE 162a and the UE 168 can span two networks, such as a 5G network 161a and a non - 5G network 161. In some embodiments, the 5G network 161a can include a UE 162a that can communicate with a gNB 152b via a cellular communication link 163, a 5G core network 162c, and a user plane function 162d that can enable communication between the 5G network 161a and the non - 5G network 161b. The non - 5G network 161b can include an interconnected network such as the Internet 164, a 4G network 166a, a 4G base station such as an eNB 166b, and a wireless device 168 that can communicate with the eNB 166b via a 4G wireless communication link 167.
[0069] Reference Figure 1D , a communication system 170 can include three networks. An application client executed on a wireless device 174 (illustrated as smart glasses) in a first non - 5G network 171b can communicate with an application server 176 in a second non - 5G network 171c via a 5G network 171a. In this way, the communication path between the wireless device 174 and the application server 176 can span three communication networks. In some embodiments, the first non - 5G network 171b can include a wireless device 174 that can communicate with a wireless device (UE) 172a via a Wi - Fi communication link 173. The 5G network 171a can include a UE 172a that can communicate with a gNB 172b via a cellular communication link 175, a 5G core network 172c, and a user plane function 172d that can enable communication between the 5G network 171a and the second non - 5G network 171c. The second non - 5G network 171c can include an application server 176 that can communicate with the 5G network via a wired communication link 177.
[0070] Reference Figure 1E, the communication system 180 may include three networks. An application client executing on a wireless device 184 (illustrated as smart glasses) in a first non-5G network 181b may communicate with an application server 188 in a second non-5G network 181c via a 5G network 181a. In this way, the communication path 189 between the wireless device 184 and the application server 188 may span three communication networks. In some embodiments, the first non-5G network 181b may include the wireless device 184, which may communicate with a wireless device (UE) 182a via a Wi-Fi communication link 181b. The 5G network 181a may include a UE 182a that may communicate with a gNB 182b via a cellular communication link 183, a 5G core network 182c, and a user plane function 182d that enables communication between the 5G network 181a and the second non-5G network 181c. The second non-5G network 181c may include an interconnected network (such as the Internet) 186 that may communicate with the 5G network via a wired communication link 185, and an application server 188 that may communicate with the interconnected network 186 via a wired communication link 187.
[0071] Figure 2 is a component block diagram illustrating an example computing and wireless modem system 200 suitable for implementing any of the various embodiments. The various embodiments may be implemented on several single-processor and multi-processor computer systems, including a system-on-chip (SOC) or a system-in-package (SIP).
[0072] Referring to FIGS. 1 and Figure 2 , the illustrated example computing device 200 (which may be a SIP in some embodiments) includes two SOCs 202, 204 coupled to a clock 206, a voltage regulator 208, and a wireless transceiver 266 configured to transmit and receive wireless communications to / from wireless devices (e.g., 120a - 120e) or base stations (e.g., 110a - 110d) via an antenna (not shown). In some specific implementations, the first SOC 202 may operate as a central processing unit (CPU) of the wireless device, which executes instructions by performing arithmetic, logical, control, and input / output (I / O) operations specified by the instructions of software applications. In some specific implementations, the second SOC 204 may operate as a dedicated processing unit. For example, the second SOC 204 may operate as a dedicated 5G processing unit responsible for managing high-capacity, high-speed (such as 5 Gbps, etc.) and / or very high-frequency short-wavelength (such as 28 GHz millimeter-wave spectrum, etc.) communications.
[0073] The first SOC 202 may include a digital signal processor (DSP) 210, a modem processor 212, a graphics processor 214, an application processor 216, one or more coprocessors 218 (such as a vector coprocessor) connected to one or more of these processors, a memory 220, custom circuitry 222, system components and resources 224, an interconnect / bus module 226, one or more temperature sensors 230, a thermal management unit 232, and a thermal power envelope (TPE) component 234. The second SOC 204 may include a 5G modem processor 252, a power management unit 254, an interconnect / bus module 264, a plurality of millimeter-wave transceivers 256, a memory 258, and various additional processors 260, such as an application processor, a packet processor, etc.
[0074] Each of the processors 210, 212, 214, 216, 218, 252, 260 may include one or more cores, and each processor / core may perform operations independently of other processors / cores. For example, the first SOC 202 may include a processor that executes a first type of operating system (such as FreeBSD, LINUX, OS X, etc.) and a processor that executes a second type of operating system (such as MICROSOFT WINDOWS10). Additionally, any or all of the processors 210, 212, 214, 216, 218, 252, 260 may be included as part of a processor cluster architecture (such as a synchronous processor cluster architecture, an asynchronous or heterogeneous processor cluster architecture, etc.).
[0075] The first SOC 202 and the second SOC 204 may include various system components, resources, and custom circuitry for managing sensor data, analog-to-digital conversion, wireless data transmission, and for performing other specialized operations, such as decoding data packets and processing encoded audio and video signals for rendering in a web browser. For example, the system components and resources 224 of the first SOC 202 may include power amplifiers, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components for supporting processors and software clients operating on a wireless device. The system components and resources 224 and / or the custom circuitry 222 may also include circuitry for interfacing with peripheral devices (such as cameras, electronic displays, wireless communication devices, external memory chips, etc.).
[0076] The first SOC 202 and the second SOC 204 can communicate via the interconnect / bus module 250. The various processors 210, 212, 214, 216, 218 can be interconnected via the interconnect / bus module 226 to one or more memory elements 220, system components and resources 224, and custom circuits 222, as well as the thermal management unit 232. Similarly, the processor 252 can be interconnected via the interconnect / bus module 264 to the power management unit 254, the millimeter-wave transceiver 256, the memory 258, and various additional processors 260. The interconnect / bus modules 226, 250, 264 can include an array of reconfigurable logic gates and / or implement a bus architecture (such as CoreConnect, AMBA, etc.). The communication can be provided by a high-performance interconnect, such as a high-performance on-chip network (NoC).
[0077] The first SOC 202 and / or the second SOC 204 may further include an input / output module (not illustrated) for communicating with resources external to the SOC, such as the clock 206 and the voltage regulator 208. Resources external to the SOC, such as the clock 206, the voltage regulator 208, can be shared by two or more of the internal SOC processors / cores in the internal SOC processors / cores.
[0078] In addition to the example SIP 200 discussed above, some embodiments can also be implemented in a variety of computing systems, which can include a single processor, multiple processors, multi-core processors, or any combination thereof.
[0079] Figure 3 is a component block diagram illustrating a software architecture 300 including a radio protocol stack for the user plane and the control plane in wireless communication, which is applicable to implement any of the various embodiments. Referring to FIGS. 1 to Figure 3, the wireless device 320 may implement the software architecture 300 to facilitate communication between the wireless device 320 (e.g., wireless devices 120a - 120e, 200) and the base station 350 (e.g., base stations 110a - 110d) of the communication system (e.g., 100). In various embodiments, the layers in the software architecture 300 may form logical connections with corresponding layers in the software of the base station 350. The software architecture 300 may be distributed among one or more processors (e.g., processors 212, 214, 216, 218, 252, 260). Although illustrated with respect to one radio protocol stack, in a multi - SIM (Subscriber Identity Module) wireless device, the software architecture 300 may include multiple protocol stacks, each of which may be associated with a different SIM (e.g., in a dual - SIM wireless communication device, two protocol stacks are respectively associated with two SIMs). Although the following is described with reference to LTE communication layers, the software architecture 300 may support any one of various standards and protocols for wireless communication, and / or may include additional protocol stacks that support any one of various standards and protocols for wireless communication.
[0080] The software architecture 300 may include a Non - Access Stratum (NAS) 302 and an Access Stratum (AS) 304. The NAS 302 may include functions and protocols that support packet filtering, security management, mobility control, session management, and traffic and signaling between the SIM (such as SIM 204) of the wireless device and its core network 140. The AS 304 may include functions and protocols that support communication between the SIM (such as SIM 204) and entities (such as base stations) of the supported access network. Specifically, the AS 304 may include at least three layers (Layer 1, Layer 2, and Layer 3), and each layer may contain various sub - layers.
[0081] In both the user plane and the control plane, Layer 1 (L1) of the AS 304 may be the Physical Layer (PHY) 306, which may oversee functions for implementing transmission and / or reception on the air interface via a wireless transceiver (e.g., 266). Examples of such Physical Layer 306 functions may include Cyclic Redundancy Check (CRC) attachment, decoding blocks, scrambling and descrambling, modulation and demodulation, signal measurement, MIMO, etc. The physical layer may include various logical channels, including the Physical Downlink Control Channel (PDCCH) and the Physical Downlink Shared Channel (PDSCH).
[0082] In the user plane and the control plane, the layer 2 (L2) of the AS 304 may be responsible for the link between the wireless device 320 and the base station 350 on the physical layer 306. In some specific implementations, the layer 2 may include a Media Access Control (MAC) sublayer 308, a Radio Link Control (RLC) sublayer 310, a Packet Data Convergence Protocol (PDCP) 312 sublayer, and a Service Data Adaptation Protocol (SDAP) 317 sublayer, and each sublayer forms a logical connection terminated at the base station 350.
[0083] In the control plane, the layer 3 (L3) of the AS 304 may include a Radio Resource Control (RRC) sublayer 3. Although not shown, the software architecture 300 may include additional layer 3 sublayers, as well as various upper layers above layer 3. In some specific implementations, the RRC sublayer 313 may provide functions including broadcasting system information, paging, and establishing and releasing RRC signaling connections between the wireless device 320 and the base station 350.
[0084] In various embodiments, the SDAP sublayer 317 may provide a mapping between Quality of Service (QoS) flows and Data Radio Bearers (DRBs). In some specific implementations, the PDCP sublayer 312 may provide uplink functions including multiplexing between different radio bearers and logical channels, sequence number addition, handover data handling, integrity protection, encryption, and header compression. In the downlink, the PDCP sublayer 312 may provide functions including in-sequence delivery of data packets, duplicate data packet detection, integrity verification, decryption, and header decompression.
[0085] In the uplink, the RLC sublayer 310 may provide segmentation and concatenation of upper layer data packets, retransmission of lost data packets, and Automatic Repeat reQuest (ARQ). While in the downlink, the RLC sublayer 310 functions may include reordering of data packets to compensate for out-of-order reception, reassembly of upper layer data packets, and ARQ.
[0086] In the uplink, the MAC sublayer 308 may provide functions including multiplexing between logical and transport channels, random access procedures, logical channel prioritization, and Hybrid ARQ (HARQ) operations. In the downlink, the MAC layer functions may include channel mapping within the cell, demultiplexing, Discontinuous Reception (DRX), and HARQ operations.
[0087] Although the software architecture 300 may provide the function of sending data through a physical medium, the software architecture 300 may further include at least one host layer 314 to provide data delivery services to various applications in the wireless device 320. In some specific implementations, the application-specific functions provided by the at least one host layer 314 may provide an interface between the software architecture and the general-purpose processor 206.
[0088] In other specific implementations, the software architecture 300 may include one or more higher logical layers (such as transport, session, presentation, application, etc.) that provide host layer functions. For example, in some specific implementations, the software architecture 300 may include a network layer (such as the Internet Protocol (IP) layer), where logical connections terminate at a Packet Data Network (PDN) Gateway (PGW). In some specific implementations, the software architecture 300 may include an application layer, where logical connections terminate at another device (such as an end-user device, a server, etc.). In some specific implementations, the software architecture 300 may further include a hardware interface 316 between the physical layer 306 and communication hardware (such as one or more Radio Frequency (RF) transceivers) in the AS 304.
[0089] Figure 4 is a component block diagram illustrating a system 400 configured to manage end-to-end QoS in a communication path across a first communication network and a second communication network. Referring to FIGS. 1 to Figure 4 , the system 400 may include network elements 402 of a 5G network, such as wireless devices (e.g., 110a - 110d, 200, 320), base stations (e.g., 120a - 120e, 200, 350), or other network elements of a 5G network, including any network elements of the core network 140 or 5G networks 151a, 161a, 171a, and 181a.
[0090] The network element 402 may be a computing device (such as a server or a similar computer) including one or more processors 428 coupled to an electronic storage device 426 and a transceiver 427 (which may be a wired transceiver and / or a wireless transceiver (e.g., 266)). In the network element 402, the transceiver 427 may be configured to receive messages transmitted in a transmission and pass such messages to the processor 428 for processing. Similarly, the processor 428 may be configured to pass messages for transmission to the transceiver 427 for transmission. The network element 402 may transmit or receive messages to or from the communication network 424 via wired and / or wireless communication links.
[0091] Referring to the base station 402, the processor 428 may be configured by machine-readable instructions 406. The machine-readable instructions 406 may include one or more instruction modules. The instruction modules may include computer program modules. The instruction modules may include one or more of an end-to-end QoS module 408, a QoS determination module 410, a network measurement module 412, a QoS configuration module 414, or other instruction modules.
[0092] The end-to-end QoS module 408 may be configured to determine end-to-end QoS requirements for delivering packets from a packet source to a packet destination through a communication path.
[0093] The QoS determination module 410 may be configured to determine the QoS provided by the second communication network within the communication path. The QoS determination module 410 may be configured to determine the packet error rate of the second communication network. The QoS determination module 410 may be configured to determine the available throughput of the second communication network. The QoS determination module 410 may be configured to measure the end-to-end achieved QoS, identify the QoS provided by the first communication network, and determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the QoS provided by the first communication network.
[0094] The network measurement module 412 may be configured to apply a packet delay measurement 5QI corresponding to a constant packet delay in the first communication network to the first communication network, and determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the constant packet delay in the first communication network. In some embodiments, the network measurement module 412 may be configured to apply a packet loss rate 5QI corresponding to a constant packet loss rate in the first communication network to the first communication network, and determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the constant packet loss rate in the first communication network. In some embodiments, the network measurement module 412 may be configured to apply a packet loss rate 5QI associated with a packet loss measurement process excluding packet losses in the first communication network to the first communication network, and determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the packet loss measurement process.
[0095] In some embodiments, the network measurement module 412 may be configured to apply an available bandwidth 5QI associated with an available bandwidth measurement process to a first communication network, the available bandwidth measurement process configuring resources of the first communication network such that packet loss in the first communication network is substantially negligible relative to packet loss in a second communication network, and determining QoS provided by the second communication network within a communication path based on end-to-end implemented QoS and the available bandwidth measurement process. In some embodiments, the network measurement module 412 may be configured to apply an available bandwidth 5QI associated with an available bandwidth measurement process to a first communication network, in which data packets are transmitted back-to-back in the first communication network, and determining QoS provided by the second communication network within a communication path based on end-to-end implemented QoS and the available bandwidth measurement process. In some embodiments, the network measurement module 412 may be configured to apply a network measurement 5QI associated with a network measurement process for performing end-to-end measurements of measurement packets transmitted along a communication path to a first communication network, and determining QoS provided by the second communication network within a communication path based on end-to-end implemented QoS and the network measurement process. In some aspects, the measurement packets may be test packets, probe packets, or packets of an application between two endpoint devices.
[0096] The QoS configuration module 414 may be configured to configure the first communication network to provide sufficient QoS to support end-to-end QoS requirements based on the QoS provided by the second communication network. The QoS configuration module 414 may be configured to determine a required packet error rate of the first communication network based on a determined packet error rate of the second communication network. The QoS configuration module 414 may be configured to determine a throughput requirement of the first communication network based on a determined available throughput of the second communication network.
[0097] The electronic storage device 426 may include a non-transitory storage medium that stores information electronically. The electronic storage medium of the electronic storage device 426 may include a system storage device provided integrally (i.e., substantially immovably) with the network element 402 and / or one or both of a removable storage device removably connected to the network element 402 via, for example, a port (e.g., a Universal Serial Bus (USB) port, a FireWire port, etc.) or a drive (e.g., a disk drive, etc.). The electronic storage device 426 may include one or more of the following: an optically readable storage medium (e.g., an optical disc, etc.), a magnetically readable storage medium (e.g., a magnetic tape, a magnetic hard disk drive, a floppy disk drive, etc.), a charge-based storage medium (e.g., an EEPROM, a RAM, etc.), a solid-state storage medium (e.g., a flash drive, etc.), and / or other electronically readable storage media. The electronic storage device 426 may include one or more virtual storage resources (e.g., a cloud storage device, a virtual private network, and / or other virtual storage resources). The electronic storage device 426 may store software algorithms, information determined by the processor 428, information received from the network element 402, or other information that enables the network element 402 to operate as described herein.
[0098] The processor 428 may be configured to provide information processing capabilities in the network element 402. Accordingly, the processor 428 may include one or more of the following: a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information. Although the processor 428 is illustrated as a single entity, this is for illustrative purposes only. In some embodiments, the processor 428 may include multiple processing units and / or processor cores. The processing units may be physically located within the same device, or the processor 428 may represent the processing functionality of multiple devices operating in cooperation. The processor 428 may be configured to execute the modules 408-414 and / or other modules by: software; hardware; firmware; some combination of software, hardware, and / or firmware; and / or other mechanisms for configuring the processing capabilities on the processor 428. As used herein, the term "module" may refer to any component or set of components that perform the functionality attributed to that module. This may include one or more physical processors, processor-readable instructions, circuits, hardware, storage media, or any other component during the execution of processor-readable instructions.
[0099] The following description of the functionality provided by different modules 408 - 414 is for illustrative purposes and is not intended to be limiting, as any one of the modules 408 - 414 may provide more or less functionality than that described. For example, one or more of the modules 408 - 414 may be eliminated, and some or all of their functionality may be provided by other modules 408 - 414. As another example, the processor 428 may be configured to execute one or more additional modules that may perform some or all of the functionality attributed to one of the modules 408 - 414.
[0100] Figure 5 is a process flow diagram illustrating method 500 for enhancing coverage for initial access performed by a processor of a computing device acting as a network element according to various embodiments. Referring to FIGS. 1 to Figure 5 The operations of method 500 may be performed by a processor of a computing device (such as processors 210, 212, 214, 216, 218, 252, 260, 428), a base station device (such as base stations 110a - 110d, 200, 350), or a wireless device (e.g., 110a - 110d, 200, 320), the computing device being configured to act as a network element (e.g., 402) of core network 140 or 5G networks 151a, 161a, 171a, and 181a.
[0101] In various embodiments, the processor may perform the operations of blocks 502 and 504 in any order or substantially simultaneously (as indicated by the dashed box).
[0102] In block 502, the processor may determine end - to - end QoS requirements for communicating a packet from a packet source to a packet destination via a communication path. In some embodiments, the communication path may span two or more communication networks, such as a first communication network and a second communication network. In some embodiments, the first communication network may include a 5G network, and the second communication network may include a non - 5G network. In some embodiments, the processor may determine end - to - end QoS requirements associated with an application or an application client executing on an endpoint device (e.g., 152a, 162a, 172a, 182a). In some embodiments, the processor may receive a message including the end - to - end QoS requirements from the application or the application client. In some embodiments, the processor may determine the end - to - end QoS requirements based on one or more messages from the application, the application client, and / or the endpoint device. The components for performing the operations of block 502 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and end - to - end QoS module 408.
[0103] In block 504, the processor may determine the QoS provided by the second communication network within the communication path. In some embodiments, the processor may determine the packet error rate of the second communication network. In some embodiments, the processor may determine the available throughput of the second communication network. In some embodiments, the processor may measure the end-to-end achieved QoS, identify the QoS provided by the first communication network, and determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the QoS provided by the first communication network. The components for performing the operations of block 504 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS determination module 410.
[0104] In block 506, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirement based on the QoS provided by the second communication network. In some embodiments, the processor may transmit one or more messages to one or more network elements of the first communication network to configure the operations of one or more network elements of the first communication network to perform QoS operations to provide sufficient QoS to support the end-to-end QoS requirement. The components for performing the operations of block 506 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS configuration module 414.
[0105] Figures 6A to 6I is a process flow diagram illustrating operations 600a - 600i that can be performed by a processor of a computing device configured to act as a network element as part of a method 500 for managing end-to-end QoS in a communication path spanning a first communication network and a second communication network. Figure 6J and Figure 6K is a conceptual diagram illustrating an example packet loss measurement. Figure 6L is a conceptual diagram illustrating an example available bandwidth measurement. Referring to FIGS. 1 to Figure 6L , operations 600a - 600i may be performed by processors (such as processors 210, 212, 214, 216, 218, 252, 260, 428) of network elements (such as 402) of a core network 140 or 5G networks 151a, 161a, 171a, and 181a, base station devices (such as base stations 110a - 110d, 200, 350), or wireless devices (e.g., 110a - 110d, 200, 320).
[0106] Referring to Figure 6A , blocks 602 and 604 are respectively those that can be used as Figure 5Examples of operations performed by portions of blocks 502 and 504 in []. In various embodiments, the processor may perform the operations of blocks 602 and 604 in any order or substantially simultaneously (as indicated by the dashed boxes).
[0107] In block 602, the processor may determine an end-to-end packet error rate for communicating a packet from a packet source to a packet destination via a communication path. In some embodiments, the communication path may span two or more communication networks, such as a first communication network and a second communication network. In some specific implementations, the first communication network and the second communication network may be different types of networks and / or implement different communication protocols (e.g., a 5G network and a non-5G network). Components for performing the operations of block 602 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and an end-to-end QoS module 408.
[0108] In block 604, the processor may determine the packet error rate of the second communication network in block 602. Components for performing the operations of block 604 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 410.
[0109] In block 606, the processor may determine the required packet error rate of the first communication network based on the determined packet error rate of the second communication network. Components for performing the operations of block 606 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS determination module 410.
[0110] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the QoS provided by the second communication network.
[0111] Reference Figure 6B , blocks 610 and 612 are examples of operations that may be performed as part of blocks 502 and 504 in Figure 5 respectively. In various embodiments, the processor may perform the operations of blocks 610 and 612 in any order or substantially simultaneously (as indicated by the dashed boxes).
[0112] In block 610, a processor may determine an end-to-end throughput requirement for communicating a packet from a packet source to a packet destination via a communication path. In some embodiments, the communication path may span two or more communication networks, such as a first communication network and a second communication network. In some implementations, the first communication network and the second communication network may be different types of networks and / or implement different communication protocols (e.g., a 5G network and a non-5G network). Components for performing the operations of block 610 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and an end-to-end QoS module 408.
[0113] In block 612, the processor may determine the available throughput of the second communication network in block 610. Components for performing the operations of block 612 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 410.
[0114] In block 614, the processor may determine the throughput requirement of the first communication network based on the determined available throughput of the second communication network. Components for performing the operations of block 614 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS determination module 410.
[0115] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirement based on the QoS provided by the second communication network.
[0116] Reference Figure 6C, after determining, in block 502 of method 500 as described, the end-to-end QoS requirements for communicating a packet from a packet source to a packet destination via a communication path, or after determining, in block 504 of method 500 as described, the QoS provided by a second communication network within the communication path, the processor may measure the end-to-end achieved QoS in block 620. In some embodiments, the processor may perform one or more measurements of packet delay, packet loss, packet departure and arrival times, packet dispersion, and / or other measurements to determine the QoS achieved (provided) across the end-to-end communication path (e.g., from one endpoint to the other endpoint) of the first and second communication networks. Components for performing the operations of block 620 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and network measurement module 410.
[0117] In block 622, the processor may identify the QoS provided by the first communication network. In some embodiments, the processor may determine the QoS provided by the first communication network. In some embodiments, the processor may select the QoS to be provided by the first communication network. In some embodiments, the processor may identify, select, or set the QoS provided by the first communication network to be substantially constant or substantially unchanged. Components for performing the operations of block 622 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and QoS determination module 410.
[0118] In block 624, the processor may determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the QoS provided by the first communication network. In some embodiments, by configuring the operation of one or more network elements of the first communication network to provide a substantially constant or substantially unchanged QoS, the processor may determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the substantially constant or substantially unchanged QoS provided by the first communication network. Components for performing the operations of block 624 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and QoS determination module 410.
[0119] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the QoS provided by the second communication network.
[0120] ReferenceFigure 6D After determining, in block 502 of method 500 as described, the end-to-end QoS requirements for communicating a packet from a packet source to a packet destination via a communication path, or after determining, in block 504 of method 500 as described, the QoS provided by a second communication network within the communication path, the processor may apply, in block 630, a packet delay measurement 5G QoS identifier (5QI) corresponding to a constant packet delay in the first communication network to the first communication network. In some embodiments, the packet delay measurement 5QI may be configured and associated with an operation that provides a substantially constant or substantially unchanging packet delay to packets processed and / or transmitted by the first communication network. In some embodiments, in response to the packet delay measurement 5QI, one or more network elements of the first communication network may be configured to provide a substantially constant packet delay to packets processed and / or transmitted by the network elements of the first communication network. In some embodiments, one or more network elements of the first communication network may include a base station (which may include a media access control (MAC) scheduler, routing functions, etc.), one or more intermediate nodes, and a user plane function. The components for performing the operation of block 630 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS configuration module 414.
[0121] In block 632, the processor may measure the end-to-end achieved packet delay. The components for performing the operation of block 632 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 412.
[0122] In block 634, the processor may determine the QoS provided by the second communication network within the communication path based on the end-to-end packet latency and the constant packet latency in the first communication network. In some embodiments, the measurement packet may be transmitted end-to-end along a communication path spanning multiple communication networks (e.g., the first communication network and the second communication network). In some embodiments, the processor may determine the packet latency of the second communication network based on the end-to-end packet latency and the substantially constant packet latency provided by the first communication network. In some embodiments, the packet latency provided (incurred, caused, associated) by the second communication network may be expressed as Dn = De2e - Dc, where Dn represents the packet latency of the second communication network (which may be a non-5G communication network), De2e represents the end-to-end packet latency, and Dc represents the substantially constant packet latency of the first communication network. The components for performing the operations of block 634 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as network elements, wireless transceiver 266, transceiver 427, and network measurement module 412.
[0123] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirement based on the QoS provided by the second communication network.
[0124] Reference Figure 6E , after determining the end-to-end QoS requirement for transmitting a packet from a packet source to a packet destination via a communication path in block 502 of method 500 as described, or after determining the QoS provided by the second communication network within the communication path in block 504 of method 500 as described, the processor may apply a packet loss rate 5QI corresponding to the constant packet loss rate in the first communication network to the first communication network in block 640. In some embodiments, the packet loss rate 5QI may be configured and associated with an operation of providing a substantially constant or substantially unchanging packet loss rate to the packets processed and / or transmitted by the first communication network. In some embodiments, in response to the packet loss rate measurement 5QI, one or more network elements of the first communication network may be configured to provide a substantially constant packet loss rate to the packets processed and / or transmitted by the network elements of the first communication network. The components for performing the operations of block 640 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as network elements, wireless transceiver 266, transceiver 427, and QoS configuration module 414.
[0125] In block 642, the processor may measure the end-to-end realized packet loss rate. Components for performing the operations of block 642 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and network measurement module 412.
[0126] In block 644, the processor may determine the packet loss rate provided by the second communication network within the communication path based on the end-to-end realized packet loss rate and a constant packet loss rate in the first communication network. In some embodiments, the measurement packets may be transmitted end-to-end along a communication path spanning multiple communication networks. In some embodiments, the processor may determine the packet loss rate of the second communication network based on the end-to-end packet loss rate and a substantially constant packet loss rate incurred (caused by, associated with, provided by) by the first communication network. In some embodiments, the packet loss rate provided by the second communication network may be expressed as:
[0127]
[0128] where Pn represents the packet loss rate of the second communication network (which may be a non-5G communication network), Pe2e represents the end-to-end packet loss rate, and Pc represents the substantially constant packet loss rate provided by the first communication network. Components for performing the operations of block 644 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and network measurement module 412.
[0129] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirement based on the QoS provided by the second communication network.
[0130] Reference Figure 6F, before measuring the end - to - end implemented QoS in block 620 as described, the processor may apply a packet loss rate 5QI associated with a packet loss measurement process that excludes packet loss in the first communication network to the first communication network. In some embodiments, the packet loss rate 5QI may be configured and associated with an operation that provides a substantially constant or substantially unchanging packet loss rate to packets processed and / or transmitted by the first communication network. In some embodiments, in response to the packet loss rate measurement 5QI, one or more network elements of the first communication network may be configured to provide a substantially constant packet loss rate to packets processed and / or transmitted by the network elements of the first communication network. The components for performing the operations of block 650 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and QoS configuration module 414.
[0131] In block 652, the processor may measure the end - to - end implemented packet loss. The components for performing the operations of block 652 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, wireless transceiver 266, transceiver 427, and network measurement module 412.
[0132] In block 654, the processor may determine the QoS provided by the second communication network within the communication path based on the end - to - end implemented packet loss and the packet loss measurement process. In some embodiments, the measurement packets may be transmitted end - to - end along a communication path that spans multiple communication networks. In some embodiments, the processor may measure packet loss at multiple points along the communication path and may perform one or more operations to exclude packet loss in the first communication network.
[0133] For example, refer to Figure 6J, an application client 690a (e.g., executing on a wireless device 174) may send several packets N1 addressed to an application server 690e (e.g., 176, 188) during a first time period. An intermediate device (such as UE 690b (e.g., UE 172a, 182a)) may receive several packets N2 during a second time period. The second time period may include the same duration as the first time period and may have a first time offset (e.g., the second time period may be later than the first time period by the first time offset). The first time offset may be based on the latency from the application client 690a to the intermediate device UE 690b (e.g., the latency that the packets will experience). A network element of the 5G core network (such as UPF 690d (e.g., UPF 172d or another network element of the 5G core network 172c)) may receive several packets N3 during a third time period. In some embodiments, the number of packets N3 may reflect packet loss at one or more network elements (such as at gNB 690c). The third time period may include the same duration as the first and second time periods and may have a second time offset (e.g., the third time period may be later than the second time period by the second time offset). The application server 690e may receive several packets N4 during a fourth time period. The fourth time period may include the same duration as the first, second, and third time periods and may have a third time offset (e.g., the fourth time period may be later than the third time period by the third time offset). In this example, the packet loss incurred (provided by, associated with) by the second communication network (or in this example, the second communication networks 171b and 171c) may be expressed as:
[0134]
[0135] where Pn represents the packet loss rate of the second communication network. In this way, the processor may determine the packet loss rate attributable to the second communication network through a packet loss measurement process that excludes packet loss in the first communication network.
[0136] In various embodiments, the packet loss rate at more or fewer points along the communication path (i.e., more or fewer N may be measured) depends on the configuration of the network. For example, the packet loss rate between two nearby or co-located network elements (such as a UE co-located with a base station) may not be measured.
[0137] As another example, referring to Figure 6K, the UE 692a (e.g., UE 152a, 162a, 172a, 182a) can be co-located with an application client. In some embodiments, the application client can execute on the UE 692a (e.g., UE 152a, 162a), and the UE 692a can be located near the device (e.g., wireless devices 174, 184) that executes the application client. In this example, the UE 692a can send several packets N1 addressed to the application server 692de (e.g., 158, 168) during a first time period. An intermediate device (such as the UPF 692c (e.g., UPF 152d, 162d)) can receive several packets N2 during a second time period. The second time period can be the same duration as the first time period and can have a first time offset (e.g., the second time period can be the first time offset later than the first time period). The first time offset can be based on the latency from the UE 692a to the intermediate device UPF 692c (e.g., the latency that the packet will experience). In some embodiments, the number of packets N2 can reflect packet loss at one or more network elements (such as at the gNB 692b). The application server 692d can receive several packets N3 during a third time period. The third time period can be the same duration as the first time period and the second time period and can have a third time offset (e.g., the third time period can be the second time offset later than the second time period). In this example, the packet loss incurred (provided by, associated with) by the second communication network (or in this example, the second communication networks 171b and 171c) can be expressed as:
[0138]
[0139] where Pn represents the packet loss rate of the second communication network. In this way, the processor can determine the packet loss rate attributable to the second communication network through a packet loss measurement process that excludes packet loss in the first communication network. The components for performing the operations of block 652 can include the processors 210, 212, 214, 216, 218, 252, 260, 428 of the computing device serving as network elements, the wireless transceiver 266, the transceiver 427, and the network measurement module 412.
[0140] Then, in block 506 of the method 500 as described, the processor can configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirement based on the QoS provided by the second communication network.
[0141] Reference Figure 6G, after determining, in block 502 of method 500 as described, end-to-end QoS requirements for communicating a packet from a packet source to a packet destination via a communication path, or after determining, in block 504 of method 500 as described, the QoS provided by a second communication network within the communication path, the processor may apply, in block 660, an available bandwidth 5QI associated with an available bandwidth measurement process that configures the resources of the first communication network such that packet loss in the first communication network is substantially negligible relative to packet loss in the second communication network.
[0142] In some embodiments, the available bandwidth 5QI may be configured and associated with operations that provide substantially negligible packet loss in the first network relative to packets processed and / or transmitted by the second communication network. In some embodiments, in response to the available bandwidth measurement 5QI, one or more network elements of the first communication network may be configured to process and / or transmit packets in a manner that provides substantially negligible packet loss. For example, the processor may "over-provision" the transmission and / or processing resources of the first communication network such that the network elements of the first communication network do not provide a bottleneck to the end-to-end communication path relative to the second communication network. In some embodiments, the network elements of the first communication network may be provisioned in this manner for a relatively short period of time, such as the duration of one or more measurement operations. The components for performing the operations of block 660 may include processors 210, 212, 214, 216, 218, 252, 260, 428, wireless transceiver 266, transceiver 427, and QoS configuration module 414 that act as network elements.
[0143] In block 662, the processor may measure the end-to-end realized available bandwidth. The components for performing the operations of block 662 may include processors 210, 212, 214, 216, 218, 252, 260, 428, wireless transceiver 266, transceiver 427, and network measurement module 412 that act as network elements.
[0144] In block 664, the processor may determine the QoS provided by the second communication network within the communication path based on the available bandwidth and the available bandwidth measurement process for the end-to-end implementation. For example, although the network elements of the first communication network are configured to provide substantially negligible packet loss in the first network, the processor may measure the end-to-end available bandwidth, data rate, and / or bit rate. In such an implementation, the processor may determine the bandwidth, data rate, and / or bit rate of the second network to be substantially the same as the measured bandwidth, data rate, and / or bit rate. In some implementations, this method is particularly useful for determining the available bandwidth for a User Datagram Protocol (UDP) traffic flow or a Transmission Control Protocol (TCP) traffic flow. The components for performing the operations of block 664 may include processors 210, 212, 214, 216, 218, 252, 260, 428, which are computing devices acting as network elements, wireless transceiver 266, transceiver 427, and network measurement module 412.
[0145] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the QoS provided by the second communication network.
[0146] Reference Figure 6H , after determining the end-to-end QoS requirements for delivering packets from a packet source to a packet destination via a communication path in block 502 of method 500 as described, or after determining the QoS provided by the second communication network within the communication path in block 504 of method 500 as described, the processor may apply the available bandwidth 5QI associated with the available bandwidth measurement process, in which data packets are transmitted back-to-back in the first communication network, to the first communication network in block 670.
[0147] In some embodiments, in response to an available bandwidth 5QI, one or more network elements of a first communication network may be configured to process and / or transmit packets back-to-back in a manner that introduces substantially negligible packet dispersion between or among the transmitted packets. For example, the available bandwidth 5QI may be associated with a packet dispersion technique such that network elements of the first communication network are configured to transmit packets in a manner that does not introduce or increase a time gap between or among the transmitted packets. In some embodiments, network elements of the first communication network may be configured to use the General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) in the user plane to achieve a substantially negligible time gap between packets in order to encapsulate packets (e.g., measurement packets) and transmit these packets via GTP-U packets in a GTP-U tunnel in the first communication network. In some embodiments, the transmitted packets may arrive at the UPF (e.g., 152d, 162, 172d, 182d) back-to-back for routing to a second communication network. The components for performing the operations of block 670 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS configuration module 414.
[0148] In block 672, the processor may measure the end-to-end realized available bandwidth. The components for performing the operations of block 672 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 412.
[0149] In block 674, the processor may determine the QoS provided by the second communication network within a communication path based on the end-to-end realized available bandwidth and an available bandwidth measurement process. In some embodiments, although network elements of the first communication network are configured to transmit packets back-to-back in a manner that introduces substantially negligible packet dispersion between or among the transmitted packets, the processor may measure the time gap between packets arriving at an endpoint device (e.g., 158, 168, 176, 188). In such embodiments, the processor may determine the time gap between packets arriving at the endpoint device (e.g., in the second communication network) to indicate the bandwidth provided by the second communication network.
[0150] For example, referring to Figure 6L, a 5G network may include a UE 694a, a gNB 694b, and a UPF 694c. The UE 694a (which may include or be close to an application client) may transmit two packets [1] and [2] (e.g., measurement packets) to the gNB 694b (e.g., 152b, 162b, 172b, 182b). The gNB 694b may encapsulate the packets [1] and [2] in GTP-U packets and may transmit the GTP-U packets via a GTP-U tunnel (which may be identified by a tunnel endpoint identifier (TEID)) to the UPF 694c. The packets [1] and [2] may arrive at the UPF 694c back-to-back, and the UPF 694c may transmit the packets [1] and [2] to an application server 694d in a non-5G network. The time gap between the packets [1] and [2] may be measured at the application server 694d. The time gap measured by this packet dispersion technique may reflect the available bandwidth of the non-5G network.
[0151] In such embodiments, the network element may determine the available bandwidth measured via the packet dispersion technique as the available bandwidth of the second communication network. In some embodiments, in the case where the communication path spans two or more second communication networks (e.g., as in communication systems 170 and 180), the network element may perform measurements on each second communication network using, for example, the packet dispersion technique, and the network element may determine the minimum value of the available bandwidth as the available bandwidth of all second communications. The components for performing the operations of block 674 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 412.
[0152] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the QoS provided by the second communication network.
[0153] Reference Figure 6I, after determining, in block 502 of method 500 as described, the end-to-end QoS requirements for transmitting a packet from a packet source to a packet destination via a communication path, or after determining, in block 504 of method 500 as described, the QoS provided by a second communication network within the communication path, the processor may apply, in block 680, a network measurement 5QI associated with a network measurement procedure for performing end-to-end measurements of measurement packets transmitted along the communication path to the first communication network. In some embodiments, the network measurement 5QI may be configured and associated with the operation of measuring dedicated measurement packets (i.e., packets that are transmitted for measurement purposes and do not carry other signaling or data). In some embodiments, in response to the packet delay measurement 5QI, one or more network elements of the first communication network may be configured to specifically transmit network measurement packets in a QoS flow for network measurement purposes. The components for performing the operation of block 680 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a QoS configuration module 414.
[0154] In block 682, the processor may measure the end-to-end achieved QoS. The components for performing the operation of block 682 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 412.
[0155] In block 684, the processor may determine the QoS provided by the second communication network within the communication path based on the end-to-end achieved QoS and the network measurement procedure. In some embodiments, a network element may act as a measurement entity to perform end-to-end measurements of measurement packets to determine the QoS provided by the second communication network. The components for performing the operation of block 684 may include processors 210, 212, 214, 216, 218, 252, 260, 428 of a computing device acting as a network element, a wireless transceiver 266, a transceiver 427, and a network measurement module 412.
[0156] Then, in block 506 of method 500 as described, the processor may configure the first communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the QoS provided by the second communication network.
[0157] In various embodiments, a measurement entity may be configured to measure packet delay or message delay (″non-5G delay″) incurred or caused by one or more non-5G networks. In various embodiments, the measurement entity may be configured to coordinate measurement processes performed on the various entities involved. In various embodiments, the measurement entity may be executed by a processor in a UE, a processor in a network element in a 5G network, a processor executing and applying a client, or a processor executing in an application server.
[0158] In some embodiments, the measurement entity may be configured to determine message delay or packet delay based on measurement messages including timestamps transmitted between two endpoint devices (e.g., a packet source and a packet destination) along a multi-network communication path. In some embodiments, the measurement message may include a timestamp request in a timestamp response. In some embodiments, the measurement message may include a Real-Time Protocol (RTP) or Real-Time Control Protocol (RTCP) message. In some embodiments, the endpoint devices may include smart glasses and an application server communicating via a communication path. In some embodiments, the endpoint devices may include two UEs communicating via a communication path.
[0159] Figure 7A Illustrated are component elements and delay elements in an end-to-end communication path 700a according to various embodiments. Key challenges in a 5G relay architecture involve correctly estimating the QoS allocation required to support services (such as AR sessions, mixed reality (MR) sessions, etc.) that may be performed by a UE (such as augmented reality (AR) glasses 702a (e.g., 174, 184)). The QoS allocation may consider a wireless communication link (e.g., a ″tethered″ link) from the AR glasses 702a to a telephone device 702b or another device (a ″5G device″) that also communicates with the 5G network. Aspects of this wireless communication link affect many QoS parameters, including bit rate, packet loss, delay, and jitter.
[0160] Reference Figure 7A , components of end-to-end delay communication (″D e2e ″) may include tethered link delay (″D n,1 ″), delay on an intermediate communication network (″D c ″), and delay caused by a communication link between the UPF 702d and the edge application server 702e (″D n,2 ″). In some embodiments, D n ≡D n,1 +D n,2 . In some aspects, the edge application server 702e may be replaced by a terminal device (e.g., a pair of AR glasses different from the AR glasses 702a).
[0161] The telephone 702b may estimate the tethered link Dn,1 The impact on the overall QoS requirements is such that the device can perform operations for the smooth performance of the AR / MR session. Additionally, the phone 702b (via the media access function) and / or network elements such as the UPF 790a can determine the latency D caused by the communication link (e.g., the Internet communication link) between the UPF 702d and the edge application server 702e n,2 .
[0162] In some embodiments, the phone 702b and / or the UPF 702d can estimate the latency D by performing measurement tests for latency, packet loss, and bit rate or by exchanging information with the radio access network (RAN) (e.g., gNB 702c) or the AF that manages the QoS policy n,2 . A consideration to be addressed in the measurement test for latency is that certain types of packets sent according to different protocols can experience different latencies through the communication path. Since the purpose of measuring the communication link latency D n,2 is for the elements of the 5G core network (e.g., UPF 702d) to be able to adjust their QoS allocation for the 5G network to support the delivery of data packets within the latency requirements of the applications executing on the UE, the measurement test method should ensure that the latency of data packets consistent with the application traffic is measured and avoid measuring the latency of packet types with different latencies from the application data packets
[0163] Figures 7B to 7E is a signal diagram illustrating alternative message packet formats 700b, 700c, 700d, and 700e for measuring the data packet latency in an end-to-end communication path. The end-to-end communication path can include the communication path between the first computing device 704 and the second computing device 706. The communication path can traverse the communication network 708, which can include the communication path between the first computing device 704 and the second computing device 706, and the communication network includes a first communication network that is a 5G network (or other cellular network) and a second communication network that is not a 5G network (e.g., Wi-Fi , etc.).
[0164] In some embodiments, the computing device can be configured to determine (measure, calculate, obtain) the end-to-end latency (″data packet latency″) incurred by one or more data packets traversing the communication path. In some embodiments, the computing device (e.g., 704) can be configured to transmit and / or receive measurement packets to / from another computing device (e.g., 706). However, due to the differences in the way measurement packets and data packets are handled by the communication network and the differences in packet size, using typical measurement packets can result in inaccurate measurements of the data packet latency
[0165] Delay measurement methods should accommodate the fact that a communication network may apply different QoS to measurement packets that are different from data packets (e.g., packets including image, audio, video, multimedia data, gesture data, and other application data). Differences in delay measurement can occur because conventional measurement packets may be handled using a different protocol than data packets. For example, in a cellular communication network (e.g., a 5G network), measurement packets (e.g., echo messages and echo reply messages) may be handled using the Internet Control Message Protocol (ICMP) that may include protocol number 1 in the data packet header, while data packets may be handled using the Real-Time Protocol (RTP) or User Datagram Protocol (UDP) that may include protocol number 17 in the packet header. Measurement packets and data packets may have different IP 5-tuples with different IP source addresses, IP destination addresses, source port numbers, destination port numbers, and / or protocol numbers. Measurement packets and data packets may be mapped to different QoS flows and thus receive different QoS handling in a communication network such as a 5G network. Regarding non-cellular communication networks (e.g., non-5G networks), measurement packets and data packets may be configured with different Differentiated Services Code Point (DSCP) values in the IP packet header and may be mapped to different access categories in a Wi-Fi network. Additionally, data packets are generally substantially larger than measurement packets (including a substantially greater number of bits), and due to such size differences, delay measurements using measurement packets may not represent the actual data delay incurred by data packets, especially for low-bitrate communication links.
[0166] Various embodiments include mechanisms for improving the accuracy of data delay measurement. A computing device configured to perform methods 700b - 700e may determine a data packet delay between a first computing device and a second computing device and may use the determined packet delay to set a quality of service for a communication path between the first computing device and the second computing device, or may provide the determined delay packet for use in setting a quality of service for a communication path between the first computing device and the second computing device.
[0167] Reference Figure 7BIn the message diagram 700b illustrated, the first computing device 704 may send a first packet 710a to the second computing device 706 at time T1. The first packet 710a may include a header portion 710c and a payload portion including delay measurement information 710b. The header portion 710c may be configured to indicate that the first packet 710a is a data packet. The header portion 710c may also be configured to indicate the payload type of the payload portion. The payload type may indicate that the payload portion includes delay measurement information 710b. For example, the first packet 710a may be a packet configured according to a protocol such as RTP or Secure (SRTP). The header portion 710c may indicate a delay measurement payload type according to RTP or SRTP. In some embodiments, the first packet 710a may be configured with one or more padding bits such that the size of the first packet 710a is substantially the same as the size of a data packet. In some embodiments, the delay measurement information 710b may include an echo message according to the ICMP protocol. In some embodiments, the delay measurement information 710b may include a sequence number, a timestamp message, a timestamp, and / or a set of timestamps.
[0168] The second computing device 706 may send a second packet 712a to the first computing device 704. The second packet 712a may include a header portion 712b and a payload portion including a delay measurement message 712c. The first computing device 704 may receive the second packet 712a at time T2. The header portion 712b may be configured to indicate that the second packet 712a is a data packet. The header portion 712b may also be configured to indicate that the payload type of the payload portion is or includes delay measurement information 712c. In some embodiments, the second packet 712a may be a packet configured according to a protocol such as RTP or SRTP, and the header portion 712b may indicate a delay measurement payload type according to RTP or SRTP. In some embodiments, the delay measurement message 712a may include an echo reply message according to the ICMP protocol. In some embodiments, the delay measurement message 712c may include a sequence number, a timestamp message, a timestamp, and / or a set of timestamps. In some embodiments, the second packet 712a may be configured with one or more padding bits such that the size of the second packet 712a is substantially the same as the size of a data packet. In some embodiments, the first computing device 704 may determine the round-trip time (RTT) of the data packet as T2 - T1. In some embodiments, the delay measurement information 710b and / or 712c may not include a Synchronization Source (SSRC) field and / or other Real-Time Transport Protocol (RTP) Control Protocol (RCTP) fields. This may reduce the size of the first packet 710a and / or the second packet 712a such that the first packet 710a and / or the second packet 712a incur lower processing and / or transmission overhead.
[0169] ReferenceFigure 7C In the message diagram 700c illustrated in FIG. 7, a first computing device 704 may send a first packet 714a to a second computing device 706 at time T1. The first packet 714a may include a header portion 714c and a payload portion including timestamp information 714b. In some embodiments, the timestamp information 714b may include a timestamp message. In some embodiments, the timestamp message may be an ICMP timestamp message. In some embodiments, the timestamp message may be a Network Time Protocol (NTP) timestamp message. In some embodiments, the timestamp message may be a Precision Time Protocol (PTP) timestamp message. In some embodiments, the timestamp information 714b may include an indication of time T1 (which may be a timestamp). The second computing device 706 may receive the first packet 714a at time T2. In some embodiments, the first packet 714a may be configured with one or more padding bits such that the size of the first packet 714a is substantially the same as the size of a data packet.
[0170] The second computing device 706 may send a second packet 716a at time T3. The second packet 716a may include a header portion 716b and a payload portion including timestamp response information 716c. In some embodiments, the timestamp response information 716c may include a timestamp response message. In some embodiments, the timestamp response information 716c may include indications of times T1, T2, and T3. The first computing device 704 may receive the second packet 716a at time T4. In some embodiments, the second packet 716a may be configured with one or more padding bits such that the size of the second packet 716a is substantially the same as the size of a data packet.
[0171] In some embodiments, the header 710c may carry a different Synchronization Source (SSRC) than the SSRC of the RTP packet carrying the media, and this difference indicates to the second computing device 706 that the payload of the RTP packet is delay measurement information 710b. This RTP packet 710a may include the same IP 5-tuple as the RTP packet carrying the media, and the two packets may receive the same QoS treatment in the communication network. In some embodiments, the header 712b may carry (include) different information in the Synchronization Source (SSRC) field than the SSRC of the RTP packet carrying the media information (media data). This difference (the information in the SSRC field) may indicate to the first computing device 704 that the payload of the RTP packet includes delay measurement information 712c. In some embodiments, using the information in the SSRC field to indicate that the payload includes delay measurement information (e.g., rather than media data) is applicable to SRTP.
[0172] In some embodiments, the first computing device 704 may determine the data packet round-trip time (RTT) as T4 - T3 + T2 - T1. In some embodiments, the first computing device may determine the one-way data latency as (T4 - T3 + T2 - T1) / 2. In some embodiments, the first computing device 704 and the second computing device 706 may be time-synchronized. In such embodiments, the first computing device 704 may determine the one-way data latency from the first computing device 704 to the second computing device 706 as T2 - T1. In some embodiments, the first computing device 704 may determine the one-way data latency from the second computing device 706 to the first computing device 704 as T4 - T3.
[0173] Reference Figure 7D and Figure 7E In reference to the message diagrams 700d and 700e illustrated in and, delay measurement messages and data (e.g., data content such as images, audio, video, multimedia data, poses, etc.) may be included in the data packet. In some embodiments, data packets that include only delay measurement messages in the payload portion of the packet (such as may be performed in message diagrams 700b and 700c as described) may be treated differently from real data packets (i.e., packets having a header portion indicating that the payload includes data and having data in the payload portion). For example, depending on or through the application of one or more of different 5QI, DSCP, access categories, or other QoS treatments, data packets that include only delay measurement messages may be treated differently by the communication network than data packets that include data in the payload portion, particularly in cases where the communication network QoS is allocated using or based on the type of the packet's payload.
[0174] Reference Figure 7DIn the message diagram 700d illustrated, a first computing device 704 may send a first packet 720a to a second computing device 706 at time T1. The first packet 720a may include a header portion 720e, a header extension portion 720d, and a payload portion including a data portion 720c and latency measurement information 720b. The header portion 720e may be configured to indicate that the first packet 720a is a data packet. The header portion 720e may also be configured to indicate the payload type of the payload portion. The payload type may indicate that the payload portion includes the data portion 720c. For example, the first packet 720a may be a packet configured according to a protocol such as RTP or Secure (SRTP). The header portion 720e may indicate a data payload type according to RTP or SRTP. The header extension portion 720d may include instructions or information that enable the second computing device 706 to extract the latency measurement information 720b from the first packet 720a. In some embodiments, the header extension portion 720d may include the length of the data portion 720c. In some embodiments, the header extension portion 720d may include the starting bit position of the latency measurement information 720b. In some embodiments, the data portion 720c may be after the latency measurement information 720b, and this may allow the receiver to read the latency measurement information 720b earlier. In some embodiments, the latency measurement information 720b may include an echo message according to the ICMP protocol. In some embodiments, the latency measurement information 720b may include a sequence number, a timestamp message, a timestamp, and / or a set of timestamps.
[0175] The second computing device 706 may send a second packet 722a to the first computing device 704. The second packet 722a may include a header portion 722b, a header extension portion 722c, and a payload portion including a data portion 722d and latency measurement information 722e. The first computing device 704 may receive the second packet 722a at time T2.
[0176] The header portion 722b can be configured to indicate that the second packet 722a is a data packet. The header portion 722b can also be configured to indicate that the second packet 722a is a data packet. The header portion 722b can also be configured to indicate the payload type of the payload portion. The payload type can indicate that the payload portion includes a data portion 722d. For example, the second packet 722a can be a packet configured according to a protocol such as RTP or Secure (SRTP). The header portion 722b can indicate the data payload type according to RTP or SRTP. The header extension portion 722c can include instructions or information that can enable the first computing device 704 to extract delay measurement information 722e from the first packet 720a. In some embodiments, the data portion 722d can be after the delay measurement information 722e. In some embodiments, the delay measurement information 722e can include an echo reply message according to the ICMP protocol. In some embodiments, the delay measurement information 722e can include a sequence number, a timestamp message, a timestamp, and / or a set of timestamps. In some embodiments, the first computing device 704 can determine the round-trip time (RTT) of the data packet as T2 - T1.
[0177] Reference Figure 7E Referring to the message diagram 700e illustrated in FIG. 5, the computing device 704 can send a first packet 724a to the second computing device 706 at time T1. The first packet 724a can include a header portion 724e, a header extension portion 724d, and a payload portion including a data portion 724c and timestamp information 724b. The header portion 720e can be configured to indicate that the first packet 724a is a data packet. The header portion 724e can also be configured to indicate the payload type of the payload portion. The payload type can indicate that the payload portion includes a data portion 724c. For example, the first packet 724a can be a packet configured according to a protocol such as RTP or SRTP. The header portion 724e can indicate the data payload type according to RTP or SRTP. The header extension portion 724d can include instructions or information that can enable the second computing device 706 to extract the timestamp information 724b from the first packet 724a. In some embodiments, the header extension portion 724d can include the length of the data portion 724c. In some embodiments, the header extension portion 724d can include the starting bit position of the delay measurement information 724b. In some embodiments, the data portion 724c can be after the delay measurement information 724b. In some embodiments, the timestamp information 724b can include an indication of time T1. In some embodiments, the second computing device 706 can receive the first packet 724a at time T2.
[0178] The second computing device 706 may send a second packet 726a at time T3. The second packet 716a may include a header portion 726b, a header extension portion 726c, and a payload portion including a data portion 726d and timestamp response information 726e. In some embodiments, the timestamp response information 726e may include indications of times T1, T2, and T3. The header portion 726b may be configured to indicate that the first packet 726a is a data packet. The header portion 726b may also be configured to indicate the payload type of the payload portion, e.g., the payload type indicates that the payload portion includes the data portion 726d. For example, the first packet 726a may be a packet configured according to a protocol such as RTP or SRTP. The header portion 726b may indicate the data payload type according to RTP or SRTP. The header extension portion 726c may include instructions or information that enable the first computing device 704 to extract the timestamp response information 726e from the second packet 726a. In some embodiments, the data portion 726d may follow the latency measurement information 726e. In some embodiments, the first computing device 704 receives the second packet 726a at time T4.
[0179] In some embodiments, e.g., in message diagram 700d( Figure 7D ), the latency measurement information may be included in the RTP header extension or the SRTP header extension, rather than in the payload of the RTP packet or the SRTP packet. In some embodiments, e.g., in message diagram 700e( Figure 7E ), the timestamp information and / or the timestamp response information may be included in the RTP header extension or the SRTP header extension, rather than in the payload of the RTP packet or the SRTP packet.
[0180] In some embodiments, the first computing device 704 may determine the round-trip time (RTT) of the data packet as T4 - T3 + T2 - T1. In some embodiments, the first computing device may determine the one-way data latency as (T4 - T3 + T2 - T1) / 2. In some embodiments, the first computing device 704 and the second computing device 706 may be time synchronized. In such embodiments, the first computing device 704 may determine the one-way data latency from the first computing device 704 to the second computing device 706 as T2 - T1. In some embodiments, the first computing device 704 may determine the one-way data latency from the second computing device 706 to the first computing device 704 as T4 - T3.
[0181] Figure 7F and Figure 7GFIG. 700f and FIG. 700g are signal diagrams illustrating operations executable by computing devices 704 and 706 according to various embodiments to configure computing devices 704 and 706 to perform operations for measuring data packet latency in an end-to-end communication path. The end-to-end communication path may include a communication path between a first computing device 704 and a second computing device 706. The communication path may traverse a communication network 708, which may include a communication path between the first computing device 704 and the second computing device 706, and the communication network includes a first communication network that is a 5G network (or other cellular network) and a second communication network that is not a 5G network (e.g., Wi-Fi, etc.). For clarity, operations 700f and 700g are described in terms of RTP, but this is not a limitation on the applicability of such operations.
[0182] In various embodiments, the first computing device 704 and the second computing device 706 may transmit and receive information including capabilities or configuration information that may enable the first computing device 704 and the second computing device 706 to be set up to perform, send, and / or receive in-band latency measurements. Such configuration information may enable the first computing device 704 and the second computing device 706 to perform operations such as negotiation operations and select the type of message to use and the structure or content of such messages.
[0183] Referring Figure 7F , in some embodiments, operation 700f may be performed in embodiments where the measurement information is treated as a packet payload. In some embodiments, the first computing device 704 may send a configuration offer (e.g., an SDP offer) 730 to the second computing device 706. The configuration offer 730 may include one or more options for configuration parameters or settings that the first computing device 704 and the second computing device 706 may use to send or receive in-band latency measurements.
[0184] For example, the configuration offer 730 may include information such as "m = measurement 49200 3GPPM 99" indicating the media type "m", the port number on which the measurement will be performed, and / or the port number from which the measurement information will be sent (e.g., 49200). For example, the measurement type may include 3GPP measurement ("3GPPM").
[0185] The configuration offer 730 may also include an indication of one or more payload types (e.g., "99" and "101", or another suitable indication of the payload type), and information that describes or defines the indicated payload types. For example, the configuration offer 730 may include information about payload type 99, such as "a=rtpmap:99 3GPPDM / 1000" and "a=fmtp:99 DelayMeasurementInfoType=2" which indicate 3GPP delay measurement, where "DelayMeasurementInfoType" identifies the delay measurement type. The delay measurement type may be, for example, an echo message, an echo response message, a timestamp message, a timestamp, or a set of timestamps.
[0186] The second computing device 706 may receive the configuration offer 730, and may formulate a configuration answer (e.g., an SDP answer) 732 and send the configuration answer to the first computing device 704. The configuration answer 732 may indicate the delay measurement method supported (or selected) by the second computing device 706 in the configuration offer 730. The configuration answer 732 may include, for example, information such as "m=measurement 59200 3GPPM 99" which indicates the media type "m", the port number on which the measurement will be performed, the port number from which the measurement information will be sent (e.g., 59200), and / or the payload type (e.g., "99"). The configuration answer 732 may also include information that describes or defines the indicated payload types, such as "a=rtpmap:99 3GPPDM / 1000" and "a=fmtp:99 DelayMeasurementInfoType=2" which indicate 3GPP delay measurement, where "DelayMeasurementInfoType" identifies the delay measurement type. The delay measurement type may be, for example, an echo message, an echo response message, a timestamp message, a timestamp, or a set of timestamps.
[0187] The first computing device 704 and the second computing device 706 may use the selected or indicated configuration information to perform, send, and / or receive in-band delay measurements.
[0188] Reference Figure 7G, in some embodiments, operation 700g may be performed in embodiments where information measurements can be treated as modified header extensions, such as RAN header extensions. For example, the first computing device 704 may send a configuration offer (e.g., an SDP offer) 742 that includes information indicating a packet header extension associated with a Uniform Resource Name (URN). For example, the configuration offer 742 may include the extension mapping attribute "a=extmap:1 urn:3gpp:2023:delay-measurement", where "extmap" indicates an extension mapping, "urn" indicates a URN, and "3gpp:2023:delay-measurement" indicates a 3GPP measurement of delay.
[0189] The second computing device 706 may receive the configuration offer 742 and may formulate and send a configuration answer (e.g., an SDP answer) 744. In some embodiments, the configuration answer 744 may include the same information as the configuration offer 742, which indicates acceptance of the proposed parameters, or the configuration answer 744 may include different information from the configuration offer 742, which indicates different proposed parameters for use by the computing device 704 and the computing device 706. The first computing device 704 and the second computing device 706 may use the selected or indicated configuration information to perform, send, and / or receive in-band delay measurements via the modified header extension.
[0190] Figure 7H , Figure 7I , Figure 7J and Figure 7K are diagrams illustrating information structures 700h, 700f, and 700j that may be used by the computing devices 704 and 706 to send or receive in-band delay measurement information according to various embodiments. For example, the computing devices 704 and 706 may use the information structures 700h, 700f, and 700j in any of the methods and / or operations 700a–700e.
[0191] Referring Figure 7H , the information structure 700h may include fields having information such as a sequence number 750a, a timestamp 750b, one or more SSRC identifiers 750c, and one or more contributing source (CSRC) identifiers 750d. The information structure 700h may indicate a length 750e and a header extension 750f (which may be defined by a configuration file). In some embodiments, the timestamp may refer to Coordinated Universal Time (UTC) or Universal Time (UT) (i.e., the number of milliseconds since midnight at Greenwich Mean Time).
[0192] Referring Figure 7I, a first computing device (e.g., 704) may send an information structure 700i to a second computing device (e.g., 706). The information structure 700i may include fields having information such as a timestamp 752 (e.g., Network Time Protocol (NTP) timestamp T1) and other suitable information.
[0193] Reference Figure 7J , a second computing device (e.g., 706) may send an information structure 700j to the first computing device (e.g., 704). The information structure 700j may include fields having information such as a timestamp T1' 754, one or more delay measurements 754b and 754c (e.g., T2 - T1, T3 - T2, etc.) and other suitable information.
[0194] Reference Figure 7K , the information structure 700k may include fields having information such as a message type or information type 756a, a code 756b, checksum information 756c, an identifier 756d, a sequence number 756e, an origin timestamp 756f, a receive timestamp 756g, a transmit timestamp 756h and other suitable information. The information structure 700k may be an ICMP timestamp message (e.g., when the receive timestamp 756g and / or the transmit timestamp 756h do not exist) or a timestamp reply message.
[0195] Figure 8A is a process flow diagram illustrating a method 800a for managing data delay in an end - to - end communication path that may be executed by a processor of a computing device according to some embodiments. Referring to FIGS. 1 to Figure 8A , the operations of the method 800a may be performed by a processor (such as processors 210, 212, 214, 216, 218, 252, 260) (referred to as the "processor") of a computing device (e.g., a first computing device) configured to act as an endpoint computing device (e.g., 152a, 158, 162a, 168, 174, 172a, 176, 182a, 184, 188, 320, 702a, 702e, 704, 706). In some embodiments, the computing device may include a processor, a memory (e.g., 220, 258, 902, 908, 1016) coupled to the processor, and instructions stored in the memory and executable by the processor to cause the computing device to perform the operations of the method 800a.
[0196] In block 802, the processor may send a first delay measurement message to a second computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet. In some embodiments, the communication path between the first computing device and the second computing device may span a first communication network that is a 5G network and a second communication network that is not a 5G network.
[0197] In some embodiments, the processor may configure the first packet such that the header portion of the first packet indicates that the payload portion of the first packet may include a first delay measurement message. In some embodiments, the processor may configure the first packet to have substantially the same size as a data packet. In some embodiments, the processor may configure the first packet such that the first delay measurement message may include an echo message. In some embodiments, the processor may configure the first packet such that the payload portion of the first packet may include a first delay measurement message and a data portion. In some embodiments, the processor may configure a header extension for the first packet, the header extension being configured to indicate to a second computing device how to extract the first delay measurement message from the first packet.
[0198] In block 804, the processor may receive a second delay measurement message from a second computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet. In some embodiments, the header portion of the second packet may indicate that the payload portion of the second packet may include a second delay measurement message. In some embodiments, the second delay measurement message in the second packet may include an echo response message. In some embodiments, the payload portion of the second packet may include a second delay measurement message and a data portion. In some embodiments, the second packet may include a header extension, the header extension being configured to indicate to the first computing device how to extract the second delay measurement message from the second packet.
[0199] In block 806, the processor may determine a data packet delay between the first computing device and the second computing device based on the transmission timing information of the first packet and the reception timing information of the second packet. In some embodiments, the transmission timing information of the first delay measurement message may include a first transmission time. In some embodiments, the reception timing information of the second delay measurement message may include a first transmission time, a first reception time of the second computing device, a second transmission time of the second computing device for the second delay measurement, and a second reception time of the first computing device for the second delay measurement. In some embodiments, the processor may determine the data packet delay based on the first transmission time and the first reception time, the second transmission time and the second reception time, or the first transmission time, the first reception time, the second transmission time, and the second reception time.
[0200] In block 808, the processor may use the determined packet delay to set a quality of service for the communication path between the first computing device and the second computing device.
[0201] After the operations of block 808 are performed, a processor of a computing device acting as a network endpoint may perform the operations of blocks 502 and 504 of method 500 as described. Additionally, the operations in method 800a and method 500 may be performed continuously, periodically, or intermittently such that a communication network can adjust the QoS of a portion of a communication path in response to application data latency requirements and changes in link quality of various portions of the communication path.
[0202] Figure 8B , Figure 8C and Figure 8D are process flow diagrams illustrating operations 800b - 800d executable by a processor of a computing device as part of method 800a for managing data latency in an end - to - end communication path. Referring to FIGS. 1 to Figure 8D , operations 800b - 800d may be performed by a processor (such as processors 210, 212, 214, 216, 218, 252, 260), referred to herein as a "processor", of a computing device (such as a first computing device) configured to act as an endpoint computing device (e.g., 152a, 158, 162a, 168, 174, 172a, 176, 182a, 184, 188, 320, 702a, 702e, 704, 706). In various embodiments, the computing device may be configured to determine whether the data packet latency is changing (e.g., increasing). The computing device may also be configured to send an indication of the changed (increased) data packet latency to a network element of the communication network. In some embodiments, the computing device may include a processor, a memory (e.g., 220, 258, 902, 908, 1016) coupled to the processor, and instructions stored in the memory and executable by the processor to cause the computing device to perform operations 800b - 800d.
[0203] Referring to Figure 8B , after performing the operations of blocks 802 - 808 as described with reference to Figure 8A , in determination block 810, the processor may determine whether the difference between the data packet latency (D1) and a previously determined data packet latency (D0) between a first computing device and a second computing device exceeds a latency threshold. In some embodiments, the processor may determine whether the absolute value of the difference between D1 and D0 (i.e., |D1 - D0|) exceeds the latency threshold as illustrated.
[0204] In response to determining that the difference between the data packet latency and the previously determined data packet latency does not exceed the latency threshold (i.e., determination block 810 = "no"), the processor may perform the operations of blocks 802 - 808 as described with reference to Figure 8A .
[0205] In response to determining that the difference between the data packet delay and a previously determined data packet delay does not exceed a delay threshold (i.e., determining that block 810 = "yes"), the processor may, in block 812, send the determined data packet delay to a network element of the communication network. In some embodiments, the processor may configure a message that includes the data packet delay (D1) such that the network element of the communication network can use the determined packet delay to set the quality of service for the communication path between the first computing device and the second computing device. In some embodiments, the processor may send an indication of the determined data packet delay to a network element (e.g., a network element of the communication network that supports the communication path between the first computing device and the second computing device). The indication may be configured (e.g., in terms of information content and format) such that the network element of the communication network can configure the communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the determined data packet delay.
[0206] The processor may perform the operations of blocks 802-822 from time to time.
[0207] Reference Figure 8C , after performing the operations of blocks 802-808 as described in reference Figure 8A , the processor may, in decision block 820, determine whether the data packet delay (D1) is greater than a previously determined data packet delay (D0) between the first computing device and the second computing device (e.g., whether D1 > D0).
[0208] In response to determining that the data packet delay is not greater than the previously determined data packet delay (i.e., determining that block 810 = "no"), the processor may perform the operations of blocks 802-808 as described in reference Figure 8A .
[0209] In response to determining that the data packet delay is greater than the previously determined data packet delay (i.e., determining that block 810 = "yes"), the processor may, in block 822, send the determined data packet delay to a network element of the communication network. In some embodiments, the processor may configure a message that includes the data packet delay (D1) such that the network element of the communication network can use the determined packet delay to set the quality of service for the communication path between the first computing device and the second computing device. In some embodiments, the processor may send an indication of the determined data packet delay to a network element (e.g., a network element of the communication network that supports the communication path between the first computing device and the second computing device), the indication being configured (e.g., in terms of information content and format) such that the network element of the communication network can configure the communication network to provide sufficient QoS to support the end-to-end QoS requirements based on the determined data packet delay.
[0210] The processor may perform the operations of blocks 802-822 from time to time.
[0211] Reference Figure 8D , in some embodiments, according to various embodiments, a first computing device may send to and receive from a second computing device configuration information that may enable the first computing device to perform operations to configure the first computing device for performing operations for measuring data packet latency in an end-to-end communication path (e.g., operations 700f and 700g).
[0212] In block 830, the processor may send a configuration offer to the second computing device, the configuration offer including first configuration information for the transmission and reception of delay measurement information.
[0213] In block 832, the processor may receive a configuration response from the second computing device, the configuration response including second configuration information that is a subset of the first configuration information.
[0214] In block 834, the processor may use the second configuration to send first delay measurement information and receive second delay measurement information.
[0215] As described, in block 802, the processor may send a first delay measurement message to the second computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet.
[0216] Figure 9 is a component block diagram of a network element device suitable for use with various embodiments. Such network element devices (e.g., network elements (e.g., 402) of the core network 140 or 5G networks 151a, 161a, 171a, and 181a, base station devices such as base stations 110a - 110d, 200, 350, etc.) may at least include Figure 9 the illustrated components. Referring to FIGS. 1 to Figure 9, the network element device 900 generally may include a processor 901 coupled to a volatile memory 902 and a large-capacity non-volatile memory such as a disk drive 908. The network element device 900 may also include a peripheral memory access device 906 coupled to the processor 901, such as a floppy disk drive, a compact disc (CD) or a digital video disc (DVD) drive. The network element device 900 may also include a network access port 904 (or interface) coupled to the processor 901 for establishing a data connection to a network such as the Internet or a local area network coupled to other system computers and servers. The network element device 900 may include one or more antennas 907 for transmitting and receiving electromagnetic radiation, and the one or more antennas may be connected to a wireless communication link. The network element device 900 may include additional access ports for coupling to peripheral devices, external memories or other devices, such as USB, Firewire, Thunderbolt, etc.
[0217] Figure 10 is a component block diagram of a wireless device 1000 suitable for use with various embodiments. In some embodiments, the wireless device 1000 may operate as a network element. Referring to FIGS. 1 to Figure 10 , various embodiments may be implemented on a variety of wireless devices 1000 (e.g., wireless devices 120a - 120e, 200, 320, 404), examples of which are illustrated in the form of a smart phone in Figure 10 . The wireless device 1000 may include a first system-on-chip (SOC) 202 (e.g., an SOC-CPU) coupled to a second SOC 204 (e.g., an SOC with 5G capabilities). The first SOC 202 and the second SOC 204 may be coupled to an internal memory 1016, a display 1012 and may be coupled to a speaker 1014. Additionally, the wireless device 1000 may include an antenna 1004 for transmitting and receiving electromagnetic radiation, and the antenna may be connected to a transceiver 427, which is coupled to one or more processors in the first SOC 202 and / or the second SOC 204. The wireless device 1000 may include menu selection buttons or rocker switches 1020 for receiving user input.
[0218] The wireless device 1000 may include a sound codec circuit 1010 that digitizes sound received from a microphone into data packets suitable for wireless transmission and decodes received sound data packets to generate an analog signal provided to the speaker to generate sound. One or more of the processors in the first SOC 202 and the second SOC 204, the wireless transceiver 266, and the codec 1010 may include digital signal processor (DSP) circuitry (not shown separately).
[0219] The processors of network element device 900 and wireless device 1000 can be any programmable microprocessor, microcomputer, or one or more multiprocessor chips that can be configured by software instructions (applications) to perform multiple functions including some of the specific implementations described below. In some wireless devices, multiple processors may be provided, such as one processor dedicated to wireless communication functions within SOC 204 and one processor dedicated to running other applications within SOC 202. Software applications can be stored in memories 902, 1016 and then these software applications are accessed and loaded into the processors. The processors may include internal memories sufficient to store the software application instructions.
[0220] The various embodiments illustrated and described are provided only as examples to illustrate the various features of the claims. However, the features shown and described with respect to any given embodiment need not be limited to the associated embodiment and can be used or combined with other embodiments shown and described. Additionally, the claims are not intended to be limited to any one exemplary embodiment. For example, one or more of methods and operations 500, 600a - 600i, 700b - 700g, and 800a - 800d can replace or combine with one or more operations of methods and operations 500, 600a - 600i, 700b - 700g, and 800a - 800d.
[0221] Specific implementation examples are described in the following paragraphs. Although some of the specific implementation examples in the following are described according to example methods, further example specific implementations may include: example methods implemented by a base station, the base station including a processor configured with processor - executable instructions for performing the operations of the methods of the following specific implementation examples; example methods implemented by a base station, the base station including components for performing the functions of the methods of the following specific implementation examples; and the example methods discussed in the following paragraphs can be implemented as a non - transitory processor - readable storage medium storing processor - executable instructions configured to cause the processor of the base station to perform the operations of the methods of the following specific implementation examples.
[0222] Example 1. A method executed by a processor of a first computing device, the method comprising: sending first delay measurement information to a second computing device in a first packet, the first packet having a header portion configured to indicate that the packet is a data packet; receiving second delay measurement information from the second computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet; determining a data packet delay between the first computing device and the second computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; and using the determined packet delay to set a quality of service for a communication path between the first computing device and the second computing device.
[0223] Example 2. The method according to Example 1, wherein the header portion of the first packet indicates that the payload portion of the first packet includes the first delay measurement information.
[0224] Example 3. The method according to Example 2, wherein the synchronization source (SSRC) field of the header portion of the first packet is configured to indicate that the payload portion of the first packet includes the first delay measurement information.
[0225] Example 4. The method according to any one of Examples 1 to 3, wherein the header portion of the second packet indicates that the payload portion of the second packet includes the second delay measurement information.
[0226] Example 5. The method according to Example 4, wherein the SSRC field of the header portion of the second packet is configured to indicate that the payload portion of the second packet includes the second delay measurement information.
[0227] Example 6. The method according to any one of Examples 1 to 5, the method comprising: configuring the first packet such that the first delay measurement information or the second delay measurement information includes one or more of the following: an echo message, an echo reply message, a timestamp message, a timestamp, or a set of timestamps.
[0228] Example 7. The method according to any one of Examples 1 to 6, wherein the first delay measurement information or the second delay measurement information is included in an RTP header extension or in the payload portion of an RTP / SRTP packet.
[0229] Example 8. The method according to any one of Examples 1 to 7, wherein the transmission timing information of the first delay measurement message includes a first transmission time; the reception timing information of the second delay measurement message includes the first transmission time, a first reception time of the second computing device, a second transmission time of the second computing device for the second delay measurement, and a second reception time of the first computing device for the second delay measurement; and the method further includes: determining the data packet delay based on the first transmission time and the first reception time, the second transmission time and the second reception time, or the first transmission time, the first reception time, the second transmission time, and the second reception time.
[0230] Example 9. The method according to any one of Examples 1 to 8, the method includes: configuring the first packet such that a payload portion of the first packet includes the first delay measurement information and a data portion.
[0231] Example 10. The method according to any one of Examples 1 to 9, the method includes: configuring a header extension for the first packet, the header extension being configured to indicate to the second computing device how to extract the first delay measurement information from the first packet.
[0232] Example 11. The method according to any one of Examples 1 to 10, the method further includes: as part of setting a quality of service for a communication link between the first computing device and the second computing device, using the determined packet delay to: determine whether a difference between the data packet delay and a previously determined data packet delay between the first computing device and the second computing device exceeds a delay threshold; and in response to determining that the difference between the data packet delay and the previously determined data packet delay exceeds the delay threshold, send the determined data packet delay to a network element of a communication network.
[0233] Example 12. The method according to any one of Examples 1 to 11, wherein using the determined packet delay as part of setting a quality of service for a communication link between the first computing device and the second computing device includes: determining whether the data packet delay is greater than a previously determined data packet delay between the computing device and the second computing device; and in response to determining that the data packet delay is greater than the previously determined data packet delay, send the determined data packet delay to a network element of a communication network.
[0234] Example 13. The method according to any one of Examples 1 to 12, wherein transmitting the determined data packet delay includes: transmitting an indication of the determined data packet delay, the indication being configured to enable the network element of the communication network to configure the communication network based on the determined data packet delay to provide sufficient quality of service (QoS) to support end-to-end QoS requirements.
[0235] Example 14. The method according to any one of Examples 1 to 13, wherein the communication path between the first computing device and the second computing device spans a first communication network that is a 5G network and a second communication network that is not a 5G network.
[0236] Example 15. The method according to any one of Examples 1 to 14, the method comprising: sending a configuration offer to the second computing device, the configuration offer including first configuration information for the transmission and reception of delay measurement information; receiving a configuration response from the second computing device, the configuration response including second configuration information that is a subset of the first configuration information; and using the second configuration to transmit the first delay measurement information and receive the second delay measurement information.
[0237] As used in this application, the terms "component", "module", "system", etc. are intended to include computer-related entities, such as but not limited to hardware, firmware, combinations of hardware and software, software, or software in execution, which are configured to perform particular operations or functions. For example, a component can be but is not limited to a process running on a processor, a processor, an object, an executable, a thread of execution, a program, or a computer. By way of illustration, both an application running on a wireless device and the wireless device can be referred to as components. One or more components can reside within a process or thread of execution, and a component can be localized on one processor or core or distributed between two or more processors or cores. In addition, these components can execute from various non-transitory computer-readable media on which various instructions or data structures are stored. The components can communicate through local or remote processes, function or procedure calls, electronic signals, data packets, memory read / write, and other known network, computer, processor, or process-related communication methodologies.
[0238] Several different cellular and mobile communication services and standards are available and envisioned in the future, all of which are implementable and benefit from various embodiments. Such services and standards include, for example, the Third Generation Partnership Project (3GPP), Long Term Evolution (LTE) systems, Third Generation Wireless Mobile Communication Technology (3G), Fourth Generation Wireless Mobile Communication Technology (4G), Fifth Generation Wireless Mobile Communication Technology (5G), and subsequent generation 3GPP technologies, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), 3GSM, General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA) systems (such as cdmaOne, CDMA1020TM), GSM Enhanced Data Rates for GSM Evolution (EDGE), Advanced Mobile Phone System (AMPS), Digital AMPS (IS-136 / TDMA), Evolution-Data Optimized (EV-DO), Digital Enhanced Cordless Telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Local Area Network (WLAN), Wi-Fi Protected Access I and II (WPA, WPA2), and Integrated Digital Enhanced Network (iDEN). Each of these technologies involves, for example, the transmission and reception of voice, data, signaling, and / or content messages. It should be understood that any reference to terms and / or technical details related to individual telecommunication standards or technologies is for illustrative purposes only and is not intended to limit the scope of the claims to a particular communication system or technology, unless specifically recited in the claim language.
[0239] The foregoing method descriptions and process flow diagrams are provided only as illustrative examples and are not intended to require or imply that the operations of the various embodiments must be performed in the order given. As will be appreciated by those skilled in the art, the order of operations in the foregoing embodiments may be performed in any order. Words such as "thereafter," "then," "next," etc. are not intended to limit the order of operations; these words are used to guide the reader through the description of the method. Additionally, any reference to an element of a claim in the singular form (e.g., a reference using the articles "a," "an," or "the") should not be construed as limiting that element to the singular.
[0240] The various illustrative logical blocks, modules, components, circuits, and algorithm operations described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and operations have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the claims.
[0241] Hardware for implementing the various illustrative logical components, logical boxes, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed using a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. While a general-purpose processor may be a microprocessor, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of receiver intelligent objects, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some operations or methods may be performed by circuitry specific to a given function.
[0242] In one or more embodiments, the described functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored as one or more instructions or code on a non-transitory computer-readable storage medium or a non-transitory processor-readable storage medium. Operations of a method or algorithm disclosed herein may be implemented in a processor-executable software module or processor-executable instructions that may reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium may be any storage medium that can be accessed by a computer or a processor. By way of example and not limitation, such non-transitory computer-readable or processor-readable storage medium may include RAM, ROM, EEPROM, FLASH memory, CD-ROM or other optical disk storage, disk storage or other magnetic storage intelligent objects, or any other medium that can be used to store the desired program code in the form of instructions or data structures and that can be accessed by a computer. As used herein, disk and optical disk include compact disk (CD), laser disk, optical disk, digital versatile disk (DVD), floppy disk, and Blu-ray disk, where disks typically reproduce data magnetically, while optical disks reproduce data optically with lasers. Combinations of the above are also included within the scope of non-transitory computer-readable and processor-readable media. Additionally, operations of a method or algorithm may reside as one or any combination or collection of code and / or instructions on a non-transitory processor-readable storage medium and / or a computer-readable storage medium that may be incorporated into a computer program product.
[0243] The foregoing description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the claims. Various modifications to these embodiments will be apparent to those skilled in the art, and the generic principles defined herein can be applied to other embodiments without departing from the scope of the claims. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the broadest scope consistent with the following claims and the principles and novel features disclosed herein.
Claims
1. A first computing device, the first computing device comprising: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the first computing device to: send first delay measurement information to a second computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet; receive second delay measurement information from the second computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet; determine a data packet delay between the first computing device and the second computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; and use the determined packet delay to set a quality of service for a communication path between the first computing device and the second computing device.
2. The first computing device according to claim 1, wherein the instructions are further executable by the processor to cause the first computing device to: configure the header portion of the first packet to indicate that the payload portion of the first packet includes the first delay measurement information.
3. The first computing device according to claim 2, wherein a synchronization source (S SRC) field of the header portion of the first packet is configured to indicate that the payload portion of the first packet includes the first delay measurement information.
4. The first computing device according to claim 1, wherein the header portion of the second packet is further configured to indicate that the payload portion of the second packet includes the second delay measurement information.
5. The first computing device according to claim 4, wherein an S SRC field of the header portion of the second packet is configured to indicate that the payload portion of the second packet includes the second delay measurement information.
6. The first computing device according to claim 1, wherein the instructions are further executable by the processor to cause the first computing device to: configure the first packet and the second packet such that the first delay measurement information or the second delay measurement information includes one or more of the following: an echo message, an echo reply message, a timestamp message, a timestamp, or a set of timestamps.
7. The first computing device according to claim 1, wherein the first delay measurement information or the second delay measurement information is included in an RTP header extension or a payload portion of an RTP / SRTP packet.
8. The first computing device according to claim 1, wherein: the transmission timing information of the first delay measurement information includes a first transmission time; the reception timing information of the second delay measurement information includes the first transmission time, a first reception time of the second computing device, a second transmission time of the second delay measurement by the second computing device, and a second reception time of the second delay measurement by the first computing device; and The instruction can also be executed by the processor to cause the first computing device to determine the data packet delay based on the first transmission time and the first reception time, the second transmission time and the second reception time, or the first transmission time, the first reception time, the second transmission time, and the second reception time.
9. The first computing device according to claim 1, wherein the instruction can also be executed by the processor to cause the computing device to configure the first packet such that a payload portion of the first packet includes the first delay measurement information and a data portion.
10. The first computing device according to claim 1, wherein the instruction can also be executed by the processor to cause the computing device to configure a header extension for the first packet, the header extension being configured to indicate to the second computing device how to extract the first delay measurement information from the first packet.
11. The first computing device according to claim 1, wherein the instruction can also be executed by the processor to cause the computing device to use the determined packet delay, as part of setting a quality of service for a communication link between the first computing device and the second computing device, to: determine whether a difference between the data packet delay and a previously determined data packet delay between the first computing device and the second computing device exceeds a delay threshold; and in response to determining that the difference between the data packet delay and the previously determined data packet delay exceeds the delay threshold, send the determined data packet delay to a network element of a communication network.
12. The first computing device according to claim 1, wherein the instruction can also be executed by the processor to cause the first computing device to use the determined packet delay, as part of setting a quality of service for a communication link between the first computing device and the second computing device, to: determine whether the data packet delay is greater than a previously determined data packet delay between the first computing device and the second computing device; and in response to determining that the data packet delay is greater than the previously determined data packet delay, send the determined data packet delay to a network element of a communication network.
13. The first computing device according to claim 1, wherein the instruction can also be executed by the processor to cause the first computing device to send the determined data packet delay, i.e., an indication of the determined data packet delay, the indication being configured such that the network element of the communication network can configure the communication network to provide sufficient quality of service (QoS) to support end-to-end QoS requirements based on the determined data packet delay.
14. The first computing device according to claim 1, wherein the communication path between the first computing device and the second computing device spans a first communication network that is a 5G network and a second communication network that is not a 5G network.
15. The first computing device according to claim 1, wherein the instructions are further executable by the processor to cause the first computing device to: Send a configuration offer to the second computing device, the configuration offer including first configuration information for delaying the sending and receiving of the measurement information; Receive a configuration response from the second computing device, the configuration response including second configuration information that is a subset of the first configuration information; and Use the second configuration to send the first delay measurement information and receive the second delay measurement information.
16. A method executed by a processor of a first computing device, the method comprising: Sending first delay measurement information to a second computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet; Receiving second delay measurement information from the second computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet; Determining a data packet delay between the first computing device and the second computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; And Using the determined packet delay to set a quality of service for a communication path between the first computing device and the second computing device.
17. The method according to claim 16, wherein the header portion of the first packet indicates that the payload portion of the first packet includes the first delay measurement information.
18. The method according to claim 16, the method comprising: Receiving the second delay measurement information from the second computing device in the second packet, wherein the header portion of the second packet indicates that the payload portion of the second packet includes the second delay measurement information.
19. The method according to claim 16, the method comprising: Configuring the first packet and the second packet such that the first delay measurement information or the second delay measurement information includes one or more of the following: an echo message, an echo response message, a timestamp message, a timestamp, or a set of timestamps.
20. The method according to claim 16, wherein the delay measurement information is included in an RTP header extension or in the payload portion of an RTP / SRTP packet.
21. The method according to claim 16, wherein: The transmission timing information of the first delay measurement information includes a first transmission time; The timing information of the second delay measurement information includes the first transmission time, a first reception time of the second computing device, a second transmission time of the second computing device for a second delay measurement, and a second reception time of the first computing device for the second delay measurement; And The method further includes: determining the data packet delay based on the first transmission time and the first reception time, the second transmission time and the second reception time, or the first transmission time, the first reception time, the second transmission time, and the second reception time.
22. The method according to claim 16, the method comprising: Configuring the first packet such that the payload portion of the first packet includes the first delay measurement information and a data portion.
23. The method according to claim 16, the method comprising: Configure a header extension for the first packet, the header extension being configured to indicate to the second computing device how to extract the first delay measurement information from the first packet.
24. The method according to claim 16, the method further comprising: As part of setting a quality of service for a communication link between the first computing device and the second computing device, use the determined packet delay to: Determine whether a difference between the data packet delay and a previously determined data packet delay between the first computing device and the second computing device exceeds a delay threshold; And In response to determining that the difference between the data packet delay and the previously determined data packet delay exceeds the delay threshold, send the determined data packet delay to a network element of the communication network.
25. The method according to claim 16, wherein using the determined packet delay as part of setting a quality of service for a communication link between the first computing device and the second computing device includes: Determine whether the data packet delay is greater than a previously determined data packet delay between the first computing device and the second computing device; And In response to determining that the data packet delay is greater than the previously determined data packet delay, send the determined data packet delay to a network element of the communication network.
26. The method according to claim 16, wherein sending the determined data packet delay to a network element of a communication network comprises: Send an indication of the determined data packet delay, the indication being configured to enable the network element of the communication network to configure the communication network based on the determined data packet delay to provide sufficient quality of service (QoS) to support end-to-end QoS requirements.
27. The method according to claim 16, wherein the communication path between the first computing device and the second computing device spans a first communication network that is a 5G network and a second communication network that is not a 5G network.
28. The method according to claim 16, the method further comprising: Send a configuration offer to the second computing device, the configuration offer including first configuration information for the sending and receiving of the delay measurement information; Receive a configuration response from the second computing device, the configuration response including second configuration information that is a subset of the first configuration information; And Use the second configuration to send the first delay measurement information and receive the second delay measurement information.
29. A computing device, the computing device comprising: Means for sending first delay measurement information to another computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet; Means for receiving second delay measurement information from the other computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet; Means for determining a data packet delay between the computing device and the other computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; And Means for using the determined packet delay to set a quality of service for a communication path between the computing device and the other computing device.
30. A non-transitory processor-readable medium storing processor-executable instructions thereon, the processor-executable instructions being configured to cause a processing device in a computing device to perform operations, the operations including: Sending first delay measurement information to another computing device in a first packet, the first packet having a header portion configured to indicate that the first packet is a data packet; Receiving second delay measurement information from the other computing device in a second packet, the second packet having a header portion configured to indicate that the second packet is a data packet; Determining a data packet delay between the computing device and the other computing device based on the transmission timing information of the first packet and the reception timing information of the second packet; And Setting a quality of service for a communication path between the computing device and the other computing device using the determined packet delay.