Search

US-12621243-B2 - Cross-layer application network flow adaptation

US12621243B2US 12621243 B2US12621243 B2US 12621243B2US-12621243-B2

Abstract

In one embodiment, an agent executed on a device receives performance metrics regarding a transport layer of the device. The agent sends the performance metrics to an application executed on the device. The application makes, based on the performance metrics, a determination indicating one or more adjustments to a packet flow of a plurality of packet flows sent by the application. The application, based on the determination, sends an adjusted packet flow according to the one or more adjustments as part of the plurality of packet flows.

Inventors

  • Giovanna Carofiglio
  • Luca MUSCARIELLO
  • Jordan François Jean Augé
  • Mauro SARDARA
  • Michele Papalini

Assignees

  • CISCO TECHNOLOGY, INC.

Dates

Publication Date
20260505
Application Date
20220228

Claims (20)

  1. 1 . A method, comprising: receiving, by an application agent executed on an end user computing device, performance metrics of outgoing packet flows observed at a transport layer of the end user computing device from an operating-system service agent on the end user computing device; in response to the performance metrics for a particular packet flow of a plurality of packet flows of an application satisfying a per-flow condition, making, by the application agent, a determination to adjust a transport function for the particular packet flow while maintaining a different transport function for at least one other packet flow of the application; causing, by the application agent, configuration of the transport function for the particular packet flow by the operating-system service agent according to the determination; and causing, by the application agent, transmission of the particular packet flow as an adjusted packet flow by the operating-system service agent according to the determination as part of the plurality of packets flows.
  2. 2 . The method as in claim 1 , wherein the transport function comprises a loss protection function.
  3. 3 . The method as in claim 1 , wherein the determination further adjusts by modifying socket options associated with the particular packet flow.
  4. 4 . The method as in claim 1 , wherein the determination is further to adjust transport layer parametrization different than default parametrization applied to the particular packet flow at the transport layer.
  5. 5 . The method as in claim 1 , wherein the operating-system service agent sends the performance metrics to the application agent using Hybrid Information-Centric Networking.
  6. 6 . The method as in claim 1 , wherein the performance metrics regarding the transport layer comprise round trip time information, loss rate, jitter, queuing delay, or explicit congestion signals.
  7. 7 . The method as in claim 1 , wherein the performance metrics are sent to the application agent at a periodic interval configured at the application.
  8. 8 . The method as in claim 1 , wherein the performance metrics are sent to the application agent in response to the operating-system service agent detecting a network change event.
  9. 9 . The method as in claim 1 , wherein the determination is based on Quality of Experience profile associated with the application.
  10. 10 . The method as in claim 1 , wherein the plurality of packet flows comprises a video flow and an audio flow.
  11. 11 . An end user computing device, comprising: one or more interfaces; a processor coupled to the one or more interfaces and configured to execute one or more processes; and a memory configured to store a process that is executable by the processor, the process when executed configured to: receive, by an application agent executed on the end user computing device, performance metrics of outgoing packet flows observed at a transport layer of the end user computing device from an operating-system service agent on the end user computing device; in response to the performance metrics for a particular packet flow of a plurality of packet flows of an application satisfying a per-flow condition, making, by the application agent, a determination to adjust a transport function for the particular packet flow while maintaining a different transport function for at least one other packet flow of the application; cause, by the application agent, configuration of the transport function for the particular packet flow by the operating-system service agent according to the determination; and cause, by the application agent, transmission of the particular packet flow as an adjusted packet flow by the operating-system service agent according to the determination as part of the plurality of packets flows.
  12. 12 . The end user computing device as in claim 11 , wherein the transport function comprises a loss protection function.
  13. 13 . The end user computing device as in claim 11 , wherein determination further adjusts by modifying socket options associated with the particular packet flow.
  14. 14 . The end user computing device as in claim 11 , wherein the determination is further to adjust transport layer parametrization different than default parametrization applied to the particular packet flow at the transport layer.
  15. 15 . The end user computing device as in claim 11 , wherein the operating-system service agent sends the performance metrics to the application agent using Hybrid Information-Centric Networking.
  16. 16 . The end user computing device as in claim 11 , wherein the performance metrics regarding the transport layer comprise round trip time information, loss rate, jitter, queuing delay, or explicit congestion signals.
  17. 17 . The end user computing device as in claim 11 , wherein the performance metrics are sent to the application agent at a periodic interval configured at the application.
  18. 18 . The end user computing device as in claim 11 , wherein the performance metrics are sent to the application agent at in response to the operating-system service agent detecting a network change event.
  19. 19 . The end user computing device as in claim 11 , wherein the determination is based on Quality of Experience profile associated with the application.
  20. 20 . A tangible, non-transitory, computer-readable medium storing program instructions that cause an end user computing device to execute a process comprising: receiving, by an application agent executed on the end user computing device, performance metrics of outgoing packet flows observed at a transport layer of the end user computing device from an operating-system service agent on the end user computing device; in response to the performance metrics for a particular packet flow of a plurality of packet flows of an application satisfying a per-flow condition, making, by the application agent, a determination to adjust a transport function for the particular packet flow while maintaining a different transport function for at least one other packet flow of the application; causing, by the application agent, configuration of the transport function for the particular packet flow by the operating-system service agent according to the determination; and causing, by the application agent, transmission of the particular packet flow as an adjusted packet flow by the operating-system service agent according to the determination as part of the plurality of packets flows.

Description

TECHNICAL FIELD The present disclosure relates generally to computer networks, and, more particularly, to cross-layer application network flow adaptation. BACKGROUND Devices are increasingly being used for user-facing applications that provide a plethora of uses like gaming, videoconferencing, multimedia consumption, etc., all of which are executed at the application level of the Open Systems Interconnection (OSI) model. Conventionally, these applications lack visibility into performance of other OSI model layers, for example, the transport layer or the network layer. Applications may be configured to attempt to improve Quality of Experience (QoE) performance, which may be understood as an end user's subjective assessment of how a given application is performing, based on partial or incomplete network information. This results in applications oftentimes having slow reactions and/or incorrect solutions for network changes at other layers of the OSI model. BRIEF DESCRIPTION OF THE DRAWINGS The embodiments herein may be better understood by referring to the following description in conjunction with the accompanying drawings in which like reference numerals indicate identically or functionally similar elements, of which: FIGS. 1A-1B illustrate an example communication network; FIG. 2 illustrates an example network device/node; FIG. 3 illustrates an example device for cross-layer application network flow adaptation; FIG. 4 illustrates an example architecture for cross-layer application network flow adaptation; and FIG. 5 illustrates an example simplified procedure for cross-layer application network flow adaptation. DESCRIPTION OF EXAMPLE EMBODIMENTS Overview According to one or more embodiments of the disclosure, an agent executed on a device receives performance metrics regarding a transport layer of the device. The agent sends the performance metrics to an application executed on the device. The application makes, based on the performance metrics, a determination indicating one or more adjustments to a packet flow of a plurality of packet flows sent by the application. The application, based on the determination, sends an adjusted packet flow according to the one or more adjustments as part of the plurality of packet flows. Description A computer network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting data between end nodes, such as personal computers and workstations, or other devices, such as sensors, etc. Many types of networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect the nodes over dedicated private communications links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines, optical lightpaths, synchronous optical networks (SONET), or synchronous digital hierarchy (SDH) links, or Powerline Communications (PLC) such as IEEE 61334, IEEE P1901.2, and others. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other. Computer networks may be further interconnected by an intermediate network node, such as a router, to extend the effective “size” of each network. Smart object networks, such as sensor networks, in particular, are a specific type of network having spatially distributed autonomous devices such as sensors, actuators, etc., that cooperatively monitor physical or environmental conditions at different locations, such as, e.g., energy/power consumption, resource consumption (e.g., water/gas/etc. for advanced metering infrastructure or “AMI” applications) temperature, pressure, vibration, sound, radiation, motion, pollutants, etc. Other types of smart objects include actuators, e.g., responsible for turning on/off an engine or perform any other actions. Sensor networks, a type of smart object network, are typically shared-media networks, such as wireless or PLC networks. That is, in addition to one or more sensors, each sensor device (node) in a sensor network may generally be equipped with a radio transceiver or other communication port such as PLC, a microcontroller, and an energy source, such as a battery. Often, smart object networks are considered field area networks (FANs), neighborhood area networks (NANs), personal area networks (PANs), etc. Generally, size and cost constraints on smart object nodes (e.g., sensors) result in corresponding constraints on resources such as ene