CN117811967A - Apparatus and method for packet loss management - Google Patents

Apparatus and method for packet loss management Download PDF

Info

Publication number
CN117811967A
CN117811967A CN202311838179.3A CN202311838179A CN117811967A CN 117811967 A CN117811967 A CN 117811967A CN 202311838179 A CN202311838179 A CN 202311838179A CN 117811967 A CN117811967 A CN 117811967A
Authority
CN
China
Prior art keywords
packet
packets
type
category
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311838179.3A
Other languages
Chinese (zh)
Inventor
D·B·波拉克
孙倩
K·桑塔南
C·M·加里多
B·F·帕特森
K·A·罗伯特森
向显博
E·V·奥特加·冈萨雷斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/996,796 external-priority patent/US11824737B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN117811967A publication Critical patent/CN117811967A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure relates to an apparatus and method for packet loss management. Disclosed herein is a device implementing a system for packet loss management, the device may include a memory and at least one processor configured to identify a plurality of packet categories provided for transmission to an electronic device. The at least one processor may be further configured to determine respective packet loss values for respective ones of the plurality of packet categories. The at least one processor may be further configured to identify a particular category of the plurality of packet categories for which the determined respective packet loss value satisfies the packet loss condition. The at least one processor may be further configured to adjust subsequent transmissions of packets in the particular packet class based at least in part on the determined respective packet loss values for the particular packet class meeting the packet loss condition.

Description

Apparatus and method for packet loss management
Description of the division
The present application is a divisional application of an invention patent application with the application number 202010864987.7 and the name of "apparatus and method for packet loss management", which is 25/8/2020.
Cross Reference to Related Applications
This patent application claims the benefit of priority from U.S. provisional patent application 62/906,006, entitled "Per-Packet Type Packet Loss Management", filed on day 9, 25, 2019, and claims the benefit of priority from U.S. provisional patent application 62/897,987, entitled "Multi-Path Connection Management", filed on day 9, 2019, the disclosure of each of which is hereby incorporated herein in its entirety.
Technical Field
The present description relates generally to packet loss management, including managing packet loss on a per packet type basis.
Background
A user of an electronic device may stream audio and/or video to and/or from his electronic device. For example, a user may stream audio and/or video content from a server and/or the user may use their respective devices to participate in a communication session, such as an audio and/or video conference session, with one or more other participants. Packet losses experienced by a user's electronic device when streaming audio and/or video may result in a degradation of the quality of the presented audio and/or video stream.
Drawings
Some features of the subject technology are shown in the appended claims. However, for purposes of explanation, several embodiments of the subject technology are set forth in the following figures.
Fig. 1 illustrates an exemplary network environment for implementing packet loss management on a per packet type basis in accordance with one or more implementations.
Fig. 2 illustrates an exemplary electronic device that can implement the system for packet loss management on a per packet type basis in accordance with one or more implementations.
Fig. 3 illustrates a flow diagram of an exemplary process for per packet type based packet loss management in accordance with one or more implementations.
Fig. 4 illustrates a flow diagram of an exemplary process for per packet type based packet loss management for a particular presentation in accordance with one or more implementations.
FIG. 5 illustrates an exemplary electronic system that can be used to implement various aspects of the subject technology in accordance with one or more implementations.
Detailed Description
The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configuration in which the subject technology may be practiced. The accompanying drawings are incorporated in and constitute a part of this specification. The specific embodiments include specific details for the purpose of providing a thorough understanding of the subject technology. The subject technology is not limited to the specific details described herein, however, and may be practiced using one or more other implementations. In one or more implementations, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.
The subject system performs packet loss management on a per packet type basis, as opposed to, for example, on a per connection basis. For example, the subject system can divide packets being transmitted and/or provided for transmission to another device into different packet categories. The category may be determined based on one or more characteristics common to the groups transmitting the packets, such as packet size, packet content type (e.g., audio packets, video packets, etc.), corresponding quality of service, one or more packet labels, etc. The subject system may then measure and/or determine a separate packet loss value, such as a packet loss rate, for each packet class being transmitted.
When the packet loss value for a particular packet class meets a packet loss condition, such as a packet loss threshold, the subject system can adaptively modify transmission of subsequent packets in that class, such as to reduce and/or mitigate packet loss. In one or more implementations, the subject system can modify characteristics of packets in a packet class for which the corresponding packet loss value satisfies the packet loss condition, such as to conform to characteristics of another packet class that does not satisfy the packet loss condition. For example, if a packet of a class having a first packet size is experiencing a greater packet loss than a packet of a class having a second packet size, the subject system may change the first packet size, such as to be similar and/or identical to the second packet size. In this way, the subject system provides discrete control over packet loss management over different types of packets transmitted over a connection.
Fig. 1 illustrates an exemplary network environment 100 for implementing packet loss management on a per packet type basis in accordance with one or more implementations. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
Network environment 100 includes electronic devices 102, 103, and 104, network 106, and server 108. The network 106 may communicatively couple (directly or indirectly) any two or more of the electronic devices 102-104 and/or the server 108, for example. In one or more implementations, the network 106 may be an interconnection network that may include the internet and/or devices communicatively coupled to the internet. For purposes of explanation, network environment 100 is shown in FIG. 1 as including electronic devices 102-104 and a single server 108; however, network environment 100 may include any number of electronic devices and any number of servers.
The server 108 may be and/or may include all or a portion of the electronic system discussed below with respect to fig. 5. Server 108 may include one or more servers, such as a server cloud, that may be used to facilitate video-audio conferences between electronic devices 102-104. For purposes of explanation, a single server 108 is shown and discussed with respect to various operations, such as facilitating video-audio conferences. However, these operations and other operations discussed herein may be performed by one or more servers, and each different operation may be performed by the same or a different server.
One or more of the electronic devices 102-104 may be, for example, a portable computing device such as a laptop computer, a smart phone, a smart speaker, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device such as a smart watch, a band, etc., or any other suitable device including, for example, one or more wireless interfaces, such as a WLAN (e.g., wiFi) radio, a cellular radio, a bluetooth radio, a Zigbee radio, a Near Field Communication (NFC) radio, and/or other radio. In fig. 1, by way of example, electronic devices 102 and 104 are each shown as smart phones, and electronic device 103 is shown as a laptop computer.
The electronic devices 102-104 may be configured to participate in a communication session, such as an audio-video conference session, for example, a session in which two or more of the electronic devices 102-104 may participate in transmitting video and/or audio content streams (e.g., application data) between participant devices. Each of the electronic devices 102-104 may be and/or may include all or a portion of the devices discussed below with respect to fig. 2 and/or the electronic systems discussed below with respect to fig. 5.
In the subject system, one of the electronic devices 102-104, such as electronic device 102, may initiate a communication session with another one of the electronic devices 103-104 and/or server 108, such as via a transmission control protocol/internet protocol (TCP/IP) or User Datagram Protocol (UDP) connection. The electronic device 102 may then transmit packets for the communication session over the connection. The electronic device 102 may divide packets being transmitted and/or packets provided for transmission into different categories through the connection of the communication session based on characteristics of the packets. For example, the first type of packets may correspond to video packets, and the second type of packets may correspond to audio packets, and so on. The electronic device 102 may then monitor packet loss values, such as packet loss rates, packet error rates, bit error rates, etc., for each identified packet class transmitted over the connection and/or provided for transmission.
When the packet loss value for a given packet class satisfies the packet loss condition, the electronic device 102 may adaptively modify subsequent transmissions of packets in the packet class to mitigate packet loss. For example, the electronic device 102 may utilize packets in a given packet class to increase redundancy of transmissions and/or be provided for redundancy of transmissions, may change the size of packets in a given packet class, may utilize different communication interfaces and/or connections to transmit packets in a given packet class, and so forth. An exemplary process for performing packet loss management based on each packet type is discussed further below with respect to fig. 3 and 4.
Fig. 2 illustrates an exemplary electronic device 102 that can implement a system for packet loss management on a per packet type basis in accordance with one or more implementations. For example, the electronic device 102 of FIG. 2 may correspond to any of the electronic devices 102-104 or to the server 108 of FIG. 1. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of these components may be made without departing from the spirit or scope of the claims set forth herein. Additional components, different components, or fewer components may be provided.
The electronic device 102 may include a processor 202, a memory 204, and communication interfaces 206a-206b. The processor 202 may comprise suitable logic, circuitry, and/or code that may be enabled to process data and/or control the operation of the electronic device 102. In this regard, the processor 202 may be enabled to provide control signals to various other components of the electronic device 102. The processor 202 may also control the transfer of data between portions of the electronic device 102. In addition, the processor 202 may enable an operating system or otherwise execute code to manage the operation of the electronic device 102.
The memory 204 may comprise suitable logic, circuitry, and/or code that may enable storage of various types of information, such as received data, generated data, code, and/or configuration information. Memory 204 may include, for example, random Access Memory (RAM), read Only Memory (ROM), flash memory, and/or magnetic storage devices.
The communication interfaces 206a-206b may comprise suitable logic, circuitry, and/or code that may enable wired or wireless communication over the network 106, such as between any of the other electronic devices 103-104 and/or the server 108. In one or more implementations, all or a portion of the same circuitry may be shared by both of the communication interfaces 206a-206b. The communication interfaces 206a-206b may include, for example, one or more of the following: bluetooth communication interface, cellular communication interface (e.g., 3G, 4G, LTE, 5G, etc.), NFC interface, zigbee communication interface, WLAN communication interface (WiFi, wiMAX, liFi, 2.4GHz, 5GHz, etc.) communication interface, USB communication interface, ethernet communication interface, millimeter wave (e.g., 60 GHz) communication interface, or generally any communication interface.
In one or more implementations, when one of the communication interfaces 206a-206b, such as the communication interface 206a, is capable of communicating via a different communication protocol, standard, and/or frequency, such as LTE, 5G, etc., each of the different communication protocols, standards, and/or frequencies may be considered different link parameters for the purpose of establishing an available link with another electronic device.
For purposes of explanation, the electronic device 102 is shown in FIG. 2 as including two communication interfaces 206a-206b; however, the electronic device 102 may include any number of communication interfaces.
In one or more implementations, one or more of the processor 202, the memory 204, the communication interfaces 206a-206b, and/or one or more portions thereof may be implemented in software (e.g., subroutines and code), may be implemented in hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a programmable logic unit (PLD), a controller, a state machine, a gate logic unit, discrete hardware components, or any other suitable device), and/or a combination of both.
Fig. 3 illustrates a flow diagram of an exemplary process 300 for per packet type based packet loss management in accordance with one or more implementations. For purposes of explanation, the process 300 is described herein primarily with reference to the electronic devices 102, 104 of FIG. 1. However, the process 300 is not limited to the electronic devices 102, 104 of fig. 1, and one or more blocks (or operations) of the process 300 may be performed by one or more other components of the server 108 and other suitable devices (e.g., any of the electronic devices 102-104). For further explanation purposes, the blocks of process 300 are described herein as occurring sequentially or linearly. However, multiple blocks of process 300 may occur in parallel. Furthermore, the blocks of process 300 need not be performed in the order shown, and/or one or more blocks of process 300 need not be performed and/or may be replaced by other operations.
The process 300 may begin, for example, after a communication session is established between the electronic devices 102, 104, such as using a TCP/IP or UDP connection. The electronic device 102 may transmit different types of packets, such as video packets, audio packets, control packets, etc., to the electronic device 104 over the connection and vice versa. The electronic device 102 may identify a class of packets being transmitted and/or provided for transmission over the connection (302).
Each identified packet category may be associated with one or more particular features. Features may include, for example, packet content type (e.g., video, audio, control, etc.), packet size (e.g., less than X bytes, X to Y bytes, greater than Y bytes, etc.), quality of service associated with the packet, redundancy scheme, one or more packet labels, communication interface for transmitting the packet (e.g., cellular, wi-Fi, etc.), connection type for transmitting the packet (e.g., TCP/IP (v 4/v 6), UDP, etc.), or any feature that may generally classify the packet.
In one or more implementations, the electronic device 102 can monitor characteristics of packets being transmitted and/or provided for transmission over a connection to identify common characteristics between packets. The electronic device 102 may then dynamically divide the packets into categories based on the common characteristics. In one or more implementations, different packet categories may be at least partially predetermined. In one or more implementations, the electronic device 102 can dynamically adjust the class of packets, such as based on different packet characteristics that are monitored as being associated with the same or similar packet loss values. In one or more implementations, if packet losses within a category are unevenly distributed among different types of packets within the category, the electronic device 102 may further subdivide packets of a particular category into multiple different categories.
The electronic device 102 may determine a respective packet loss value for each respective packet class (304). The packet loss values may include one or more of packet error rate, bit error rate, packet loss rate, and the like. In one or more implementations, the electronic device 102 can measure a packet loss value for each respective packet class, such as based on received acknowledgement packets and/or retransmission requests.
In one or more implementations, the electronic device 102 can receive a packet loss value for each respective packet class from the electronic device 104. For example, the electronic device 102 may transmit an indication of the respective characteristics of each packet category to the electronic device 104. The electronic device 104 may then measure the packet loss value for each category and transmit an indication thereof back to the electronic device 102.
The electronic device 102 may identify a particular packet class for which the determined packet loss value satisfies the packet loss condition (306). The packet loss condition may be, for example, a packet loss threshold that is met when exceeded. In one or more implementations, each different packet class may be associated with a different packet loss condition, and/or one or more of the packet classes may be associated with the same packet loss condition.
Upon identifying a particular packet class for which the determined packet loss value satisfies the packet loss condition (306), the electronic device 102 may adjust subsequent transmissions of packets in the packet class based at least in part on the determined packet loss condition being satisfied (308). For example, the electronic device 102 may increase redundancy associated with the packet class, such as forward error correction coding, redundant data transmission, etc., without increasing redundancy associated with other transmission packet classes for which the corresponding packet loss value does not satisfy the packet loss condition.
In one or more implementations, the electronic device 102 can determine one or more characteristics of one or more packet categories for which the respective packet loss value does not satisfy the packet loss condition, and the electronic device 102 can modify subsequent transmissions of packets in the determined categories based on the one or more characteristics of the one or more packet categories for which the respective packet loss value does not satisfy the packet loss condition.
For example, if a first type of packet associated with a first packet size is experiencing packet loss that satisfies the packet loss condition and a second type of packet characterized by a second packet size is not experiencing packet loss that satisfies the packet loss condition, electronic device 102 may resize subsequent packets in the first type of packet to be similar and/or identical to the second packet size.
In one or more implementations, if a first type of packet associated with a first amount of redundancy (e.g., a first redundancy scheme) is experiencing packet loss that satisfies a packet loss condition and a second type of packet characterized by a second amount of redundancy (e.g., a second redundancy scheme) is not experiencing packet loss that satisfies a packet loss condition, the electronic device 102 can reduce the amount of redundancy associated with the second type of packet and can increase the amount of redundancy associated with the first type of packet, such as to satisfy a particular bit rate and/or transmission rate constraint. The amount of redundancy increase for the first type of packet may be based in part on the amount of redundancy decrease for the second type of packet. In one or more implementations, subsequent transmissions of the first type of packet are regulated substantially inversely proportional to subsequent transmissions of the second type of packet.
Fig. 4 illustrates a flow diagram of an exemplary process 400 for per-packet type based packet loss management for a particular presentation in accordance with one or more implementations. For purposes of explanation, the process 400 is described herein primarily with reference to the electronic devices 102, 104 of fig. 1. However, the process 400 is not limited to the electronic devices 102, 104 of fig. 1, and one or more blocks (or operations) of the process 400 may be performed by one or more other components of the server 108 and other suitable devices (e.g., any of the electronic devices 102-104). For further explanation purposes, the blocks of process 400 are described herein as occurring sequentially or linearly. However, multiple blocks of process 400 may occur in parallel. Furthermore, the blocks of process 400 need not be performed in the order shown, and/or one or more blocks of process 400 need not be performed and/or may be replaced by other operations.
The electronic device 102 determines a first packet loss value for a first type of packet corresponding to a particular presentation being transmitted and/or provided for transmission to the electronic device 104 (402). The particular presentation may include, for example, audio streams and video streams being transmitted from electronic device 102 to electronic device 104 and/or provided for transmission, such as for a video conference. In one or more implementations, the first packet loss value may be measured at the electronic device 104 and transmitted and/or provided to the electronic device 102 for transmission, and/or the first packet loss value may be determined locally at the electronic device 102. The first type of packet may be characterized by at least one first feature. The first packet loss value may be, for example, a packet loss rate, a packet error rate, a bit error rate, or any metric that may generally indicate packet loss.
The electronic device 102 may also measure a second packet loss value for the second type of packet corresponding to the particular presentation being transmitted and/or provided for transmission to the electronic device 104 (404). In one or more implementations, the characteristics of the second class of packets may be characterized by at least one second characteristic that may be different from the at least one first characteristic. For example, one of the first type of packet or the second type of packet may correspond to a video stream being transmitted and/or provided for transmission for a video conference, and the other of the first type of packet or the second type of packet may correspond to an audio stream being transmitted for a video conference.
When the first packet loss value satisfies the first packet loss condition, the electronic device 102 may adaptively perform a first modification to the transmission of the first type of packet for the particular presentation (406). For example, the first packet loss condition may be satisfied when the first packet loss value exceeds a predetermined packet loss threshold. For example, if the packet class includes video packets of a particular size, the electronic device 102 may modify the transmission of the first class of packets by adjusting the size of the subsequently transmitted video packets.
When the second packet loss value satisfies the second packet loss condition, the electronic device 102 may adaptively perform a second modification to the transmission of the second type of packet for the particular presentation (408). In one or more implementations, the second packet loss condition may be different from the first packet loss condition. For example, if the second type of packet includes an audio packet, the electronic device 102 may add redundancy associated with the transmission of the audio packet.
In one or more implementations, if the second packet loss value exceeds the first packet loss value, the electronic device 102 may reduce redundancy associated with the first type of packet and may increase redundancy associated with the second type of packet, such as to satisfy a bit rate and/or transmission rate constraint. The electronic device 102 may continuously monitor and adaptively modify the amount of redundancy transmitted and/or the redundancy provided for transmission for each packet class, such as based on the measured packet loss value for each packet class.
In one or more implementations, the electronic device can conform at least one characteristic of the second type of packet to the characteristic of the first type of packet if the second packet loss value exceeds the first packet loss value. For example, if the second type of packet is a large packet and the first type of packet is a small packet, the electronic device 102 may reduce the size of the second type of packet, such as to be similar and/or the same as the size of the second type of packet.
As noted above, one aspect of the present technology is to collect and use data from a variety of sources. The present disclosure contemplates that in some examples, such collected data may include personal information data that uniquely identifies or may be used to contact or locate a particular person. Such personal information data may include demographic data, location-based data, telephone numbers, email addresses, social network identifiers, home addresses, data or records related to the user's health or wellness level (e.g., vital sign measurements, medication information, exercise information), birth date, or any other identifying information or personal information.
The present disclosure recognizes that the use of such personal information data in the present technology may be used to benefit users. The present disclosure also contemplates the use of personal information data to benefit a user. For example, health and fitness data may be used to provide insight into the overall health of a user, or may be used as positive feedback to individuals using technology to pursue health goals.
The present disclosure contemplates that entities responsible for collecting, analyzing, disclosing, transmitting, storing, or otherwise using such personal information data will adhere to established privacy policies and/or privacy practices. In particular, such entities should exercise and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be readily accessible to the user and should be updated as the collection and/or use of the data changes. Personal information from users should be collected for legal and reasonable use by entities and not shared or sold outside of these legal uses. In addition, such collection/sharing should be performed after informed consent is received from the user. Moreover, such entities should consider taking any necessary steps to defend and secure access to such personal information data and to ensure that others having access to the personal information data adhere to their privacy policies and procedures. In addition, such entities may subject themselves to third party evaluations to prove compliance with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted to collect and/or access specific types of personal information data and to suit applicable laws and standards including specific considerations of jurisdiction. For example, in the united states, the collection or acquisition of certain health data may be governed by federal and/or state law, such as the health insurance flow and liability act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be processed accordingly. Thus, different privacy practices should be maintained for different personal data types in each country.
In spite of the foregoing, the present disclosure also contemplates embodiments in which a user selectively prevents use or access to personal information data. That is, the present disclosure contemplates that hardware elements and/or software elements may be provided to prevent or block access to such personal information data. For example, the present technology may be configured to allow a user to choose to participate in the collection of personal information data "opt-in" or "opt-out" during or at any time after the registration service. In addition to providing the "opt-in" and "opt-out" options, the present disclosure contemplates providing notifications related to accessing or using personal information. For example, the user may be notified that his personal information data will be accessed when the application is downloaded, and then be reminded again just before the personal information data is accessed by the application.
Further, it is an object of the present disclosure that personal information data should be managed and processed to minimize the risk of inadvertent or unauthorized access or use. Once the data is no longer needed, risk can be minimized by limiting the data collection and deleting the data. In addition, and when applicable, included in certain health-related applications, the data de-identification may be used to protect the privacy of the user. De-identification may be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting positioning data at a city level instead of at an address level), controlling how data is stored (e.g., aggregating data among users), and/or other methods, as appropriate.
Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that the various embodiments may be implemented without accessing such personal information data. That is, various embodiments of the present technology do not fail to function properly due to the lack of all or a portion of such personal information data. For example, content may be selected and delivered to a user by requesting content based on non-personal information data or small amounts of personal information, such as devices associated with the user, other non-personal information, or publicly available information.
FIG. 5 illustrates an electronic system 500 that may be utilized to implement one or more implementations of the subject technology. The electronic system 500 may be, and/or may be part of, one or more of the electronic devices 102-104 and/or the server 108 shown in fig. 1. Electronic system 500 may include various types of computer-readable media and interfaces for various other types of computer-readable media. Electronic system 500 includes bus 508, one or more processing units 512, system memory 504 (and/or a cache), ROM 510, persistent storage 502, input device interface 514, output device interface 506, and one or more network interfaces 516, or subsets and variations thereof.
Bus 508 generally represents the entire system bus, peripheral bus, and chipset bus that communicatively connect the many internal devices of electronic system 500. In one or more implementations, the bus 508 communicatively connects the one or more processing units 512 with the ROM 510, the system memory 504, and the persistent storage 502. One or more processing units 512 retrieve the instructions to be executed and the data to be processed from these various memory units in order to perform the processes of the subject disclosure. In different implementations, one or more of the processing units 512 may be a single processor or a multi-core processor.
ROM 510 stores static data and instructions required by one or more processing units 512 and other modules of electronic system 500. Persistent storage 502, on the other hand, may be a read-write memory device. Persistent storage 502 may be a non-volatile memory unit that stores instructions and data even when electronic system 500 is turned off. In one or more implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) may be used as persistent storage 502.
In one or more implementations, removable storage devices (such as floppy disks, flash memory drives, and their corresponding disk drives) may be used as persistent storage 502. Like persistent storage 502, system memory 504 may be a read-write memory device. However, unlike persistent storage 502, system memory 504 may be a volatile read-write memory, such as random access memory. The system memory 504 may store any of the instructions and data that may be needed by the one or more processing units 512 at runtime. In one or more implementations, the processes of the subject disclosure are stored in system memory 504, persistent storage 502, and/or ROM 510. The one or more processing units 512 retrieve the instructions to be executed and the data to be processed from these various memory units in order to perform one or more embodied processes.
Bus 508 is also connected to input device interface 514 and output device interface 506. The input device interface 514 enables a user to communicate information and select commands to the electronic system 500. Input devices that may be used with input device interface 514 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 506 may, for example, enable display of images generated by the electronic system 500. Output devices that may be used with output device interface 506 may include, for example, printers and display devices, such as Liquid Crystal Displays (LCDs), light Emitting Diode (LED) displays, organic Light Emitting Diode (OLED) displays, flexible displays, flat panel displays, solid state displays, projectors, or any other device for outputting information. One or more implementations may include a device that serves as both an input device and an output device, such as a touch screen. In these implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input.
Finally, as shown in fig. 5, bus 508 also couples electronic system 500 to one or more networks and/or to one or more network nodes, such as server 108 shown in fig. 1, through one or more network interfaces 516. In this manner, electronic system 500 may be part of a computer network, such as a LAN, a wide area network ("WAN") or an intranet, or may be part of a network of networks, such as the Internet. Any or all of the components of electronic system 500 may be used with the subject disclosure.
Implementations within the scope of the present disclosure may be partially or fully implemented using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) having one or more instructions written thereon. The tangible computer readable storage medium may also be non-transitory in nature.
A computer readable storage medium may be any storage medium that can be read, written, or otherwise accessed by a general purpose or special purpose computing device including any processing electronics and/or processing circuitry capable of executing the instructions. By way of example, and not limitation, computer readable media can comprise any volatile semiconductor memory such as RAM, DRAM, SRAM, T-RAM, Z-RAM and TTRAM. The computer readable medium may also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, feRAM, feTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack, FJG, and Millipede memories.
Furthermore, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.
The instructions may be directly executable or may be used to develop executable instructions. For example, the instructions may be implemented as executable or non-executable machine code, or may be implemented as high-level language instructions that may be compiled to produce executable or non-executable machine code. Further, the instructions may also be implemented as data, or may include data. Computer-executable instructions may also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, and the like. As will be appreciated by one of skill in the art, details including, but not limited to, the number, structure, sequence, and organization of instructions may vary significantly without altering the underlying logic, functionality, processing, and output.
While the above discussion primarily refers to a microprocessor or multi-core processor executing software, one or more implementations are performed by one or more integrated circuits, such as an ASIC or FPGA. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.
Those of skill in the art will appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms 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. The various components and blocks may be arranged differently (e.g., arranged in a different order, or divided in a different manner) without departing from the scope of the subject technology.
It should be understood that the specific order or hierarchy of blocks in the processes disclosed herein is an illustration of an exemplary approach. Based on design preference requirements, it should be understood that the particular order or hierarchy of blocks in the process may be rearranged or all illustrated blocks may be performed. Any of these blocks may be performed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous. Moreover, the partitioning of various system components in the implementations described above should not be understood as requiring such partitioning in all implementations, and it should be understood that program components and systems may generally be integrated together in a single software product or packaged into multiple software products.
As used in this specification and any claims of this patent application, the terms "base station," "receiver," "computer," "server," "processor," and "memory" refer to an electronic or other technical device. These terms exclude a person or group of people. For purposes of this specification, the term "display" or "displaying" means displaying on an electronic device.
As used herein, the phrase "at least one of" after separating a series of items of any of the items with the term "and" or "is a modification of the list as a whole, rather than modifying each member (i.e., each item) in the list. The phrase "at least one of" does not require the selection of at least one of each item listed; rather, the phrase allows for the inclusion of at least one of any one item and/or the meaning of at least one of any combination of items and/or at least one of each item. For example, the phrase "at least one of A, B and C" or "at least one of A, B or C" each refer to a only, B only, or C only; A. any combination of B and C; and/or at least one of each of A, B and C.
The predicates "configured to", "operable to", and "programmed to" do not mean any particular tangible or intangible modification to a subject but are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control operations or components may also mean that the processor is programmed to monitor and control operations or that the processor is operable to monitor and control operations. Likewise, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.
Phrases such as an aspect, this aspect, another aspect, some aspects, one or more aspects, an implementation, the implementation, another implementation, some implementations, one or more implementations, an embodiment, the embodiment, another embodiment, some embodiments, one or more embodiments, a configuration, the configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, and the like are all for convenience and do not imply that disclosure involving such one or more phrases is essential to the subject technology nor that such disclosure applies to all configurations of the subject technology. The disclosure relating to such one or more phrases may apply to all configurations or one or more configurations. The disclosure relating to such one or more phrases may provide one or more examples. A phrase such as an aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to other previously described phrases.
The word "exemplary" is used herein to mean "serving as an example, instance, or illustration. Any embodiment described herein as "exemplary" or as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments. Furthermore, to the extent that the terms "includes," "has," and the like are used in either the description or the claims, such terms are intended to be inclusive in a manner similar to the term "comprising" as "comprising" is interpreted when employed as a transitional word in a claim.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Furthermore, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element should be construed in accordance with the specification of 35u.s.c. ≡112 (f) unless the element is explicitly stated using the phrase "means for … …" or, in the case of method claims, the element is stated using the phrase "step for … …".
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in a singular value is not intended to mean "one only" but rather "one or more" unless specifically so stated. The term "some" means one or more unless specifically stated otherwise. The terminology of male (e.g., his) includes female and neutral (e.g., her and its), and vice versa. Headings and sub-headings (if any) are used for convenience only and do not limit the subject disclosure.

Claims (20)

1. An apparatus, comprising:
a memory; and
processing circuitry configured to:
determining respective link parameters for respective ones of the plurality of packet categories;
identifying a particular packet class of the plurality of packet classes for which the determined respective link parameter satisfies a condition; and
Subsequent processing of packets in the particular packet class is adjusted based at least in part on the determined respective link parameters for the particular packet class meeting the conditions of the particular class.
2. The apparatus of claim 1, wherein the respective packet category of the plurality of packet categories is characterized by a respective feature.
3. The apparatus of claim 2, wherein the respective characteristics of at least one respective category of the plurality of grouping categories comprises at least one of: packet size, packet content type, quality of service, packet flag, or packet redundancy scheme.
4. The device of claim 1, wherein the processing circuit is further configured to:
identifying another particular category of the plurality of packet categories for which the determined link parameter does not satisfy the condition;
reducing the amount of redundancy associated with the other particular category; and
another amount of redundancy associated with the particular category is increased, the increased amount of redundancy based at least in part on the decreased amount of redundancy.
5. The apparatus of claim 4, wherein the particular packet category corresponds to a video packet and the other particular packet category corresponds to an audio packet.
6. The device of claim 1, wherein the processing circuit is further configured to:
dynamically determining common characteristics between the packets; and
the packets are divided into the plurality of packet categories based at least in part on the dynamically determined common characteristics between the packets.
7. The apparatus of claim 1, further comprising:
the packet is provided for transmission to the electronic device over the single connection.
8. A method, comprising:
determining a first link parameter for a first type of packet, the first type of packet characterized by at least one first characteristic;
determining a second link parameter for a second type of packet, the second type of packet characterized by at least one second characteristic, the first type of packet and the second type of packet corresponding to a particular presentation;
adaptively performing a first modification to the first type of packet when the first link parameter satisfies a first condition; and
a second modification to the second class of packets is adaptively performed when the second link parameter satisfies a second condition different from the first condition.
9. The method of claim 8, wherein the at least one first characteristic of the first type of packet comprises a video packet type having a particular size, and performing the first modification on the first type of packet comprises adjusting the particular size of the first type of packet.
10. The method of claim 8, wherein when the first link parameter does not satisfy the first condition and the second link parameter satisfies the second condition:
reducing a first amount of redundancy provided for transmission with the first type of packet; and
a second amount of redundancy provided for transmission with the second type of packet is increased.
11. The method of claim 8, wherein when the first link parameter does not satisfy the first condition and the second link parameter satisfies the second condition:
the at least one second characteristic of the second class of packets is adaptively modified to conform to the at least one first characteristic of the first class of packets.
12. The method of claim 8, wherein the at least one first characteristic comprises at least one of a packet size, a packet type, or a quality of service.
13. The method of claim 8, wherein the first modification is different from the second modification.
14. The method of claim 8, further comprising:
determining a common characteristic between the packets, the common characteristic comprising the at least one first characteristic and the at least one second characteristic; and
The packets are partitioned into the first type of packets and the second type of packets based at least in part on the determined common characteristics between the packets.
15. The method of claim 8, wherein the particular presentation comprises an audio-video presentation, the first type of packets comprise audio packets, and the second type of packets comprise video packets.
16. A non-transitory machine-readable medium comprising code, which when executed by one or more processors, causes the one or more processors to perform operations, the code comprising:
code for determining common characteristics between packets;
code for dividing the packets into a plurality of categories based at least in part on the determined common characteristics between the packets;
code for determining respective link parameters for respective ones of the plurality of packet categories;
code for identifying a particular category of the plurality of packet categories for which the determined respective link parameter meets a condition; and
code for adjusting a packet in the particular packet class based at least in part on the determined respective link parameters for the particular packet class meeting the condition.
17. The non-transitory machine readable medium of claim 16, wherein the respective category of the plurality of grouping categories is characterized by a respective feature.
18. The non-transitory machine readable medium of claim 16, wherein the respective features of at least one respective category of the plurality of categories comprises at least one of:
packet size, packet content type, quality of service, packet flag, or packet redundancy scheme.
19. The non-transitory machine readable medium of claim 16, wherein the code further comprises:
code for identifying another particular category of the plurality of packet categories for which the determined link parameter does not satisfy the condition;
code for reducing an amount of redundancy associated with the other particular category; and
code for increasing another amount of redundancy associated with the particular category, the increased amount of redundancy based at least in part on the decreased amount of redundancy.
20. The non-transitory machine readable medium of claim 19, wherein the particular grouping category corresponds to a video grouping and the other particular grouping category corresponds to an audio grouping.
CN202311838179.3A 2019-09-09 2020-08-25 Apparatus and method for packet loss management Pending CN117811967A (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962897987P 2019-09-09 2019-09-09
US62/897,987 2019-09-09
US201962906006P 2019-09-25 2019-09-25
US62/906,006 2019-09-25
US16/996,796 US11824737B2 (en) 2019-09-09 2020-08-18 Per-packet type packet loss management
US16/996,796 2020-08-18
CN202010864987.7A CN112468758B (en) 2019-09-09 2020-08-25 Apparatus and method for packet loss management

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010864987.7A Division CN112468758B (en) 2019-09-09 2020-08-25 Apparatus and method for packet loss management

Publications (1)

Publication Number Publication Date
CN117811967A true CN117811967A (en) 2024-04-02

Family

ID=74832835

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010864987.7A Active CN112468758B (en) 2019-09-09 2020-08-25 Apparatus and method for packet loss management
CN202311838179.3A Pending CN117811967A (en) 2019-09-09 2020-08-25 Apparatus and method for packet loss management

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010864987.7A Active CN112468758B (en) 2019-09-09 2020-08-25 Apparatus and method for packet loss management

Country Status (2)

Country Link
US (1) US20240007365A1 (en)
CN (2) CN112468758B (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628610B1 (en) * 1999-06-28 2003-09-30 Cisco Technology, Inc. Methods and apparatus for managing a flow of packets using change and reply signals
US20080115185A1 (en) * 2006-10-31 2008-05-15 Microsoft Corporation Dynamic modification of video properties
KR20080052043A (en) * 2006-12-07 2008-06-11 삼성전자주식회사 Method and apparatus for streaming av data
CN101662455A (en) * 2008-08-29 2010-03-03 深圳华为通信技术有限公司 Method and device for data transmission
US8750207B2 (en) * 2010-10-15 2014-06-10 Apple Inc. Adapting transmission to improve QoS in a mobile wireless device
US11736406B2 (en) * 2017-11-30 2023-08-22 Comcast Cable Communications, Llc Assured related packet transmission, delivery and processing

Also Published As

Publication number Publication date
US20240007365A1 (en) 2024-01-04
CN112468758B (en) 2023-12-15
CN112468758A (en) 2021-03-09

Similar Documents

Publication Publication Date Title
US11233836B2 (en) Concurrent audio streaming to multiple wireless audio output devices
US20240007863A1 (en) Temporary pairing for wireless devices
US11382017B2 (en) Inter-device communication session continuity facilitated by a wireless audio output device
US20190104163A1 (en) Multiway audio-video conferencing
CN110620755B (en) Device, system for forwarding a content stream and method of receiving a content stream
US20190104281A1 (en) Multiway audio-video conferencing with multiple communication channels per device
US11791939B2 (en) Dynamic redundancy for multimedia content
CN112468758B (en) Apparatus and method for packet loss management
US11281802B2 (en) Providing obfuscated user identifiers for managing user-specific application state on multiuser devices
US11824737B2 (en) Per-packet type packet loss management
US11509423B2 (en) Dynamic redundancy for multimedia content
US20220385643A1 (en) End-to-end encryption for location sharing
US20200382298A1 (en) Device-relationship based communication
US11757978B2 (en) Multi-path connection management
US11595789B2 (en) Missed communication notification
US11012322B2 (en) Notification of service availability on a device
US11637886B2 (en) Cellular communication protocol aware multimedia streaming
US11943054B2 (en) Block acknowledgment for a multicast transmission with multiple concurrent streams
US20210329551A1 (en) Last sequence number indication
US20240107368A1 (en) Resource allocation for low latency wireless communication
US20140122652A1 (en) Systems and methods for sharing bandwidth across multiple video streams
US20230086527A1 (en) Low latency wireless communication
US20220368551A1 (en) Lightweight chat session participant
WO2024064169A1 (en) Resource allocation for low latency wireless communication
WO2023235340A1 (en) Application-specific do not disturb configuration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination