1. Field of the Invention
The present invention relates to computer and communication networks, and more particularly relates to real-time computer-controlled systems for controlling transport and delivery of distributed media or other application content across a standard best-effort network or packet-switched networks, in general.
2. Related Art
Exponential growth in demand for electronic transactions based on Internet and/or intranet technologies are driving the need for a communication infrastructure that can rapidly enable, transport, and guarantee performance for new communications services.
Best-effort networks, such as Internet Protocol (“IP”) networks, enable connectivity between a provider (or source) of information and a consumer (or end-user) of that information. Best-effort networks are typically unable to provide network services beyond connectivity, such as guaranteed performance, common to other types of networks such as an asynchronous transfer mode (“ATM”) networks, since best-effort networks do not allocate network resources to deliver the required services and performance. For example, all packets flowing through an IP network are treated equally on a first-come-first-serve basis. As a result, best-effort networks exhibit substantial variations in their performance such as the delay experienced by packets flowing through the network and the resulting throughput measured in terms of bits transported per unit of time. Distributed application performance requirements are typically defined and included in a Service Level Agreement (“SLA”) between the provider and the consumer, in terms of the application ‘Quality of Service’ (“QoS”).
Presently best-effort networks are typically used for non-real-time applications such as File Transfer Protocol (“FTP”) and e-mail. In such applications, substantial delays or other performance variations do not have an adverse impact on the process being performed by the application. Best-effort networks are also used for certain interactive applications such as web browsing or delivery of non-real-time content, e.g., images or text.
More recently, best-effort networks have been used to transport and deliver multi-media content in non-real-time, e.g., streamed audio and video. Various delay and other performance management techniques, typically referred to as ‘edge-services’, such as content redirecting, buffering, caching, and pre-fetching are used to create a perception of real-time delivery of the media content. For example, Content Delivery Networks (“CDN”) are media delivery systems, or overlay networks, that use edge-services to deliver cacheable media or data content in perceived real-time.
Real-time applications, including multi-media or other distributed software applications operating over uncertain environments such as best-effort networks, typically generate non-cacheable content that is required to be transported to a destination in real-time or near real-time. As referred to herein, ‘real-time’ refers to a class of applications that receive an input and provide a response to the input in a time interval that is sufficiently responsive, i.e., in real-time, relative to the process being performed, monitored or controlled by the application. For example, an automatic pilot application must respond to input data on changing flight conditions or the position of other aircraft in real-time and responsively to maintain control of the aircraft. It is well-known that the process time constant is typically related to the required real-time response period, measured in units of time. Examples of network based real-time applications include half-duplex applications such as video surveillance and monitoring and all full-duplex applications such as Internet telephony and Internet video-conferencing. Such real-time applications typically cannot use the edge services for performance improvements since real-time control is essential.
Prior art for performing real-time control applications in a distributed computing environment has primarily relied on the use of dedicated networks such as ATM networks. In IP networks QoS enhancements have been proposed for implementation at the network layer. These enhancements are in the form of new network protocols that must be supported by all routers present on a given route. These proposed protocols either reserve resources for certain flows or discriminate between different types of information packets traveling through them. Presently, however, no widespread adoption of these protocols has been observed. A summary of the state-of-the-art in network and application-level QoS solutions is described in a recent technical paper entitled “Theories and Models for Internet Quality of Service” by V. Firoiu, J. Y. Le Boudec, D. Towsley, and Z. L. Zhang, Proceedings of the IEEE, Vol. 90, No. 9, pp. 1565-1591, September 2002.
Another prior art technique is an edge-based framework for flow (or congestion) control technique proposed by Professor S. Kalyanaraman and his students at the Rensselaer Polytechnic Institute (‘RPI’). A reference for this work is a recent PhD dissertation by D. Harrison entitled, “Edge-to-edge Control: A Congestion Avoidance and Service Differentiation Architecture for the Internet”, Department of Computer Science, RPI, May 2002. The thesis advisor for this work was Professor S. Kalyanaraman. This technique attempts primarily to influence IP network congestion from the edges. Hence it is a transport-level solution. It is not an application-level solution and it is not intended to address QoS of real-time applications. Furthermore, it has no predictive components or capabilities.
It should therefore be appreciated that a need exists to provide an application-level, or an edge solution, to control the transport and delivery of media or other application content across a standard, best-effort network Furthermore, it would be desirable for this solution to meet QoS specifications of real-time, as well as non-real-time, applications.
The foregoing need is addressed by the present invention. According to one form of the invention, a method and system for actively controlling transport and delivery of content across best-effort networks includes computing expected content bit rate values associated with a distributed application, and expected quality of service (QoS) metrics for the application. Along with the actual measurements that are indicative of the content bit rate and metrics, the expected bit rates and metrics are used to control the bit rate being generated by the application. The expected bit rates and metrics may be based on measured values of previous bit rates and metrics, or their various transformations, as well as previously forecasted bit rates and metrics, or their various transformations. The forecasting of bit rates and metric may be facilitated by the use of an appropriate predictive algorithm. In this manner, active control of content being transported and delivered over best-effort networks is achieved without substantially modifying the core network infrastructure.
In one aspect of the present invention, a method for forecasting the bit rate of content generated by the distributed application includes receiving measurements for the bit rate measured over a finite time horizon, and previously forecasted values for the bit rate. The previously forecasted values are generated responsive to previous measurements. New forecasted values for the bit rate over the horizon are computed responsive to the measurements and the previously forecasted values.
In another aspect of the present invention, a method for forecasting Quality of Service (“QoS”) metrics for a distributed application, includes receiving measurements for the QoS metrics experienced by packets of the application content over a finite time horizon, and previously measured and forecasted values for the metrics and the bit rate. The QoS defines acceptable levels of networked or distributed application performance. New forecasted values for the QoS metrics over the horizon are computed responsive to the measurements and the previously forecasted values.
Other forms, as well as additional aspects, objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings illustrating embodiments in which the invention may be practiced. It should be understood, however, that the drawings and detailed description are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
The following terminology may be useful in understanding the present invention. It is to be understood that the terminology described herein is for the purpose of description and should not be regarded as limiting.
Media Content—Typically refers to the digital content that is in the form of frames, packets or even bits, which must be processed or utilized by an application in a particular time-sequence and at a specified predetermined rate. Examples of media content include digital audio and video streams.
Content Delivery Networks (CDN)—CDN's are typically overlay networks, which are networks that are overlaid or built on the top of existing networks, e.g. the Internet. CDN's are typically used to reduce network traffic congestion and, as a result, the latency experienced by the media content in client-server distribution models. CDN's are generally effective for delivery and distribution of non-real-time (or cacheable) media or data content.
Open Pluggable Edge Services (“OPES”)—OPES are a new class of services that would be deployed at application-level intermediaries in a network
Packet-switched Networks—These are generally digital networks that operate on the principle of splitting the media content to be delivered into packets and then transporting these packets independently of each other. The sender splits the content, i.e., packetizes it, and the receiver assembles it back together. Packet-switched networks are in contrast to circuit-switched networks, such as the existing telephone networks. Circuit-switched networks typically reserve a path (or connection) between a source and destination for transporting content, and keep the connection open until all content has been transported.
Internet Protocol (IP)—The IP standard, and variations thereof such as IPsec, and IPv6, is the most widely deployed network layer (Layer 3) protocol.
Transmission Control Protocol (“TCP”), User Datagram Protocol (“UDP”)—Two of the popular standards for transport layer (Layer 4) protocols. The TCP protocol typically includes congestion control and is used to transport media content that is not delay-sensitive but needs to be delivered in its entirety, e.g., file transfer. The UDP protocol is typically used to transport media content that is delay-sensitive, e.g. audio or video streams.
IntServ, DiffServ, MPLS—A set of recent network layer protocols proposed for use in enforcing levels of quality-of-service (QoS) in IP networks.
Unicast, Multicast Mode—One-to-one and one-to-many mode of communication.
Voice over IP (“VoIP”)—The transport of voice media content over an IP network rather than a circuit-switched network, such as the telephone system.
Digital Signal Processor (“DSP”)—A computing device that is typically optimized for improved performance of certain operations, such as a Fast-Fourier Transform (“FFT”) processing.
Proportional-Integral-Derivative (“PID”) Controller—A well-known and widely used algorithm for performing control.
Wide Area Networks (“WAN”)—WAN's are typically geographically distributed networks that are characterized by large capacities to carry traffic. WAN's are generally used to connect various metropolitan or local area networks (“LANs”). They are typically heterogeneous, e.g. Internet.
Best-effort Networks—These are packet-switched networks that typically offer connectivity. Generally, no other network service is offered because no network resource is reserved to perform the network services. In a best-effort network, all message packets traveling though the network are treated equally on a first-come-first-serve basis. As a result these networks typically exhibit significant variations in the delay experienced by message packets traveling from a source to a destination. The resulting throughput (or amount of bits transported per unit time) also varies. In general, a best-effort network includes any network that exhibits at least some of the characteristics of the best-effort network described above.
Asynchronous Transfer Mode (ATM) Networks—This is a widely used WAN technology which offers several service classes for differentiation of traffic.
End-to-end (“e2e”) Delay—The cumulative time delay a message packet experiences as it travels between two end-points of a packet-switched network, e.g., from the source sending the packet to the destination receiving the packet.
Delay Jitter—The time variation of the e2e delay.
Packet Loss—These are the message packets dropped (lost or discarded) on their way to a destination as a result of congested routers encountered on their routes.
Throughput—The effective transport rate of an e2e route. In other words, throughput is the amount of media content transported per unit time. This quantity is typically upper bound by the lowest link bandwidth (“BW”) of the route.
Quality-of-Service (QoS)—A set of measurable metrics that determine the acceptability of a network service or an application. For media applications such as audio and/or video this set may consist of metrics such as e2e delay, e2e delay jitter, packet loss, and throughput requirements.
Service Level Agreement (SLA)—Agreements made between service providers and consumers for guaranteed levels of service performance in exchange for variable price structures.
Generally speaking, the present invention describes a method, system, and computer program product to control transport and delivery of media and other application content across a standard best-effort network Embodiments of the invention predict or forecast media content bit rate associated with an application and predict or forecast QoS metrics for the application. The forecasted bit rates and QoS metrics are used to control the bit rate being generated by the application. The forecasted bit rates and QoS metrics may be based on measured values of previous bit rates and QoS metrics as well as previously forecasted bit rates and QoS metrics. The forecasting of bit rates and metrics may be facilitated by an appropriate predictive control algorithm. In this manner, active control of media or application content over a best-effort network is achieved without substantially modifying the core network infrastructure.
Turning now to the drawings,
In one embodiment, the OPES services are embedded in a computing platform such as a network appliance. For half-duplex, unicast applications, ACC system 100 as depicted in
Sender network appliance 110 receives media content from one or more sources. In one embodiment, sender network appliance 110 receives media content streams or flows associated with a plurality of sources that are to be delivered to corresponding destinations, with each media content stream having a single source and a single destination. ACC system 100 manipulates the media content streams flowing out of network appliance 110 to control the QoS metrics of the corresponding real-time media or data application. In one embodiment, ACC system 100 deploys predictive flow control techniques to control the QoS metrics.
In full-duplex applications, the media application source and the destination have similar roles. The sending and/or receiving of media or other application content may be independent of each other and may occur concurrently. In this mode, network appliances 110 and 120 may be programmed to perform sending and receiving functions. For example, sender network appliance 110 also functions as a receiver network appliance, and similarly, receiver network appliance 120 also functions as a sender network appliance.
Referring to
In addition to the network appliance embodiment, a number of possible architectural variations of this invention are also contemplated, as follows:
1) Embedded QoS control in encoders/decoders is a new generation of encoders/decoders (or codecs) designed to vary the generated bit-rate using predictive network QoS metrics and “look-ahead” source traffic information. The information used by such encoders/decoders is in addition to the information widely used by current generation of encoders/decoders for quantization and compression.
2) Active QoS control as an application middleware service.
3) Active QoS control embedded in edge-routers.
4) Multi-peer (or multicast) implementations, with the same possible options as outlined above in the case of the peer-to-peer (or unicast) implementations.
5) Implementation that is in combination with the various route-control architectures currently promoted by various vendors.
Further details of the techniques to control delivery of media content across the best-effort network are illustrated in
A best-effort network 240 delivers the media content 205, in accordance with no pre-defined QoS metrics, to a corresponding destination, e.g., content destination 260. An ACC controller, such as a content source controller (or a send rate controller) 220 controls the send rate of the media content 205 to be in compliance with the QoS metrics for the application. Content source controller 220 receives measurement information describing QoS metrics from a QoS overlay network 245. The QoS overlay network 245 is an overlay network, similar to a CDN, which is built on the top of the existing best-effort network 240.
Information describing the QoS metrics such as an e2e delay of network 240 is collected from various destination devices corresponding to various sources. Computing a difference in clock synchronized time stamp values collected at a destination and source location may be used to measure the e2e delay for each flow. Content source controller 220 performs control action by receiving measurement information describing QoS metrics and content source bit rate, forecasting content source bit rate and QoS metrics, comparing the received measurement information with the QoS metrics required for the application, and adjusting the send rate of the content source received to be in compliance with the required QoS metrics. The control algorithm deployed within content source controller 220 may vary from a simple PID algorithm to a more advanced model predictive control (“WPC”) algorithm. The QoS metrics required for a given application may be pre-defined, may be programmed, may be defined interactively on a display screen of a computer, or adaptively selected by the application. A summary of the state-of-the-art in available packet measurement techniques and tools is described in a technical paper entitled “Internet Performance Monitoring” by T. M. Chen and L. Hu, Proceedings of the IEEE, Vol. 90, No. 9, pp. 1592-1603, September 2002.
In one embodiment, the ACC controller functions may be performed in a content destination controller 250 (or receive rate controller) rather than content source controller 220. In this embodiment, content destination controller 250 still controls source media content 205 send rate to be in compliance with the required QoS metrics, though the ACC controller implementation is at the destination. In one embodiment, the ACC controller functions may include predictive and control components at content source controller 220 and/or content destination controller 250. Further details of the components of the content source controller 220 and the content destination controller 250 are illustrated in
In one embodiment, in addition to the predictive and control components at the source, the application-level QoS control solution for halfduplex applications may also include additional components such as:
In one embodiment, the application-level QoS control solution for full-duplex applications may include additional components such as:
In one embodiment, the bit rate forecasting may be performed independently outside of ACC controller 300 and the results of the computation, e.g., the expected bit rate for the media content, may be sent to ACC controller 300. For example, the bit rate forecasting may be performed independently outside of content source controller 220 depicted in
Additional details of bit rate forecasting component 310, QoS metrics forecasting component 320, and ACC algorithm computing component 330 are described below.
In one embodiment, bit rate forecasting component 310 forecasts the source traffic bit-rate over a finite time horizon. Prediction of the bit rate (or the expected bit rate) is performed in terms of average bits/sec, in terms of individual frame sizes, or in terms of packet sizes. The algorithm to arrive at the expected value may be based on well-known single-step-ahead or multi-step-ahead prediction algorithms. For example, the technical paper entitled ‘Multi-Step-Ahead Prediction in Complex Process Systems using Dynamic Recurrent Neural Networks, Parlos, Alexander G., 0. T. Rais, and A. F. Atiya, Neural Networks, Vol. 13, No. 7, pp. 765-786, September 2000, describes one such predictive algorithm and is incorporated herein by reference.
Bit rate forecasting component 310 receives, typically by a software process, two inputs:
Previously forecasted bit rate values 360 are generated by the software process responsive to previous measurements for the bit rate, e.g., delay_1370 generates the previously forecasted values 360 in response to expected bit rate values. Bit rate forecasting component 310 computes new forecasted values (also referred to as expected values) 315 for the bit rate over the horizon responsive to the measurements and the previously forecasted values. The computation includes well-known single-step-ahead or multi-step-ahead prediction algorithms including linear adaptive prediction and forecasting algorithms. For example, the technical paper entitled ‘Neuro-Predictive Process Control Using On-line Controller Adaptation’, Parlos, Alexander G., S. Parthasarthy, and A. F. Atiya, IEEE Transactions on Control Systems Technology, Vol. 9, No., 5, pp. 741-755, September 2001, describes one such predictive algorithm and is incorporated herein by reference.
To re-iterate, media source bit-rate forecasting component 310 utilizes a combination of previous measurements and predictions of source traffic level and their various transformations, and, well known single-step-ahead or multi-step-ahead prediction algorithms, including linear adaptive prediction and forecasting algorithms to generate the expected bit rate 315 for media content. Being an edge solution, the media source bit-rate forecasting component is advantageously independent of the compression algorithms and other encoder details, and is independent of the underlying network architecture and protocol details of the network layers 1-4. In one embodiment, the edge solution may be incorporated within an encoder to further improve the efficiency of algorithm implementation.
In one embodiment, QoS metrics forecasting component 320 forecasts the values for the QoS metrics over a finite time horizon. In one embodiment, the expected QoS metrics may be forecast in terms of an e2e delay experienced by packets and (indirectly) the anticipated packet losses. Additional predictions of e2e delay variations and throughput may also be performed. Prediction is performed in terms of an e2e delay or e2e delay change, either per packet or as an average for a number of packets within a finite window. The algorithm to arrive at the expected values may be based on well known single-step-ahead or multi-step-ahead prediction algorithms. For example, the technical paper entitled ‘Identification of the Internet End-to-end Delay Dynamics Using Multi-Step Neuro-Predictors’, Parlos, Alexander G., International Joint Conference on Neural Networks, Honolulu, Hi., May 2002, describes one such predictive method for forecasting QoS metrics and is incorporated herein by reference.
The QoS metrics forecasting component 320 receives, typically by a software process, a plurality of inputs:
In one embodiment, QoS metrics measurements 270 may include current and previous (or delayed) metrics measurements and their various transforms (such as their scaled values or their moving averages). In one embodiment, previously forecasted bit rate values 360 and previously forecasted QoS metrics 380 may include current and previous (or delayed) forecasts and their various transforms (such as their scaled values or their moving averages). Thus, the expected, predicted, or forecasted QoS metrics may be based on measured values of the QoS metrics as well as previously forecasted bit rates and metrics. In one embodiment, additional inputs for the time-of-the-day, and the day-of-the-week may also be received to improve the forecasting process.
The previously forecasted bit rate values 360 and QoS metrics 380 are generated by the software process responsive to earlier bit rate and QoS measurements, delay 2390 generates the previously forecasted QoS metrics 380 in response to expected QoS values. QoS metrics forecasting component 320 computes new forecasted or expected values for QOS metrics 325 over the horizon responsive to the measurements and the previously forecasted values. The computation includes well-known single-step-ahead or multi-step-ahead prediction algorithms including linear adaptive prediction and forecasting algorithms, such as the multi-step neuro-predictor algorithm cited earlier.
To re-iterate, QoS metrics forecasting component 320 utilizes a combination of past measurements and predictions of network e2e delay and source send rates and their various transforms, and, well known single-step-ahead or multi-step-ahead prediction algorithms, including linear adaptive prediction and forecasting algorithms, to generate expected QoS metrics. Being an edge solution, the QoS metrics forecasting component 320 is advantageously based on existing network standards, is independent of the compression algorithms and other encoder details, is independent of the underlying network architecture and is independent of protocol details of the network layers 1-4. In one embodiment, the edge solution may be incorporated within an encoder to further improve the efficiency of algorithm implementation.
QoS metrics forecasting component 320 may thus be used to predict expected QoS metrics such as e2e delays, e2e delay variations, fraction of packet losses, and application throughput (per flow or aggregate).
In one embodiment, ACC algorithm computing component 330 controls, adjusts or throttles the required per-flow (or even aggregate) bit-rate to meet the applicable QoS specifications. As described earlier, ACC algorithm computing component 330 receives, typically by a software process:
ACC algorithm computing component 330 generates controller output 340 based at least partially on expected bit rate 315, measured bit rate 350, expected QoS metrics 325, measured QoS metrics 270 and media content 205 source. The send rate of the content source is controlled based at least partially on these parameters. In one embodiment, ACC algorithm computing component 330 implements the computed variable bit-rate by scheduling single packets at variable inter-departure times, by scheduling multiple simultaneous (or bursts of) packets at fixed inter-departure times, or by preventing certain packets from departing at all, e.g., by delaying them or dropping them. This technique of controlling has advantageously an indirect positive impact on network congestion since, by delaying or even dropping packets at the edges rather than the network core the effects of network congestion are mitigated.
The computation of expected bit rate 315 and expected QoS metrics 325 may include well-known algorithms such as a PID algorithm augmented with predictive information, inverse-delay control with predictive information, model-predictive control, other linear predictive or non-predictive algorithms and the neuro-predictive control algorithm cited earlier.
Being an edge solution, ACC algorithm computing component 330 is advantageously decentralized, and scalable to accommodate a large number of simultaneous flows. Component 330 compensates for anticipated e2e delays and e2e delay variations by throttling the source send rate of each flow. Additionally, component 330 indirectly controls the packet loss rate thereby advantageously reducing losses in unreliable protocols, such as UDP, and reducing retransmissions in reliable protocols, such as TCP, thereby improving flow throughput.
As one skilled in the art would appreciate, any or all of ACC controller 300 components depicted in
Referring to
The software process then computes (block 420) new forecasted values for the bit rate over the horizon, responsive to the measurements and the previously forecasted values. The new forecasted values are sent (block 430) to a controller, the controller controlling the bit rate in response to the new forecasted values.
Referring to
The software process, responsive to the measurements and the previously forecasted values of QoS metrics and bit rate, computes (block 520) new forecasted values for the QoS metrics 325. The new forecasted values 325 are sent (block 530) to a controller, the controller controlling the bit rate in response to the new forecasted values.
Referring to
Referring now to
In various embodiments system 710 takes a variety of forms, including a personal computer system, client/server system, mainframe computer system, parallel processing computer system, workstation, digital signal processor (DSP), Internet appliance, PDA, an embedded processor with memory, etc. That is, it should be understood that the term “computer system” is intended to encompass any device having a processor that executes instructions from a memory medium.
The memory medium preferably stores instructions (also known as a “software program”) for implementing various embodiments of a method in accordance with the present invention. In various embodiments the one or more software programs are implemented in various ways, including procedure-based techniques, component-based techniques, and/or object-oriented techniques, among others. Specific examples include XML, C, C++, Java and Microsoft Foundation Classes (MFC).
The description of the present embodiment has been presented for purposes of illustration, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. To reiterate, the embodiments were chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention.
Various other embodiments having various modifications may be suited to a particular use contemplated, but may be within the scope of the present invention. For example, those of ordinary skill in the art will appreciate that the hardware and methods illustrated herein may vary depending on the implementation. Also, while the present invention has been described as a software process, those of ordinary skill in the art will appreciate that hardware and/or firmware implementation may be a preferred option depending on application requirements. Additionally, it is important to note that while the present invention has been described in the context of a computer system having a processor and memory, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed as computer readable medium of instructions in a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, CD-ROM, CD-RW, DVD and transmission-type media such as digital and analog communications links.
To reiterate, many additional aspects, modifications and variations are also contemplated and are intended to be encompassed within the scope of the following claims. Moreover, it should be understood that in the following claims, actions are not necessarily performed in the particular sequence in which they are set out.
This application is related to U.S. provisional patent application Ser. No. 60/341,605, filed Dec. 14, 2001 and entitled “ACTIVE CONTENT CONTROL”. The Applicant hereby claims the benefit of this provisional patent application under 35 U.S.C. §119(e). The entire content of this provisional application is incorporated herein by this reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US02/39828 | 12/13/2002 | WO |
Number | Date | Country | |
---|---|---|---|
60341605 | Dec 2001 | US |