Patent Publication Number: US-8973067-B2

Title: Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe

Description:
This application is a continuation of U.S. application Ser. No. 13/403,075, filed Feb. 23, 2012, the disclosure of which is incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to communication networks and, more particularly, to managing utilization of network resources. 
     BACKGROUND 
     Adaptive HTTP streaming technology (such as Apple HTTP Live Streaming (HLS), Microsoft Smooth Streaming, Adobe Dynamic Streaming over HTTP or MPEG DASH) is being implemented to handle increasing consumer demands for streaming video from Over The Top (OTT) applications on OTT content servers (e.g., movies/TV on demand) to User Equipment nodes (UEs) (e.g., such as set-top-boxes, multimedia computers, and wireless terminals) across a core network. 
     Internet service providers (ISPs) have long struggle with how to provide a sufficient Quality of Service (QoS) level to their customers in view of bandwidth limitations in their networks. ISPs have attempted to manage use of their network resources by various strategies for charging customers for consumption, limiting bandwidth provided to particular customers, and banning certain types of network traffic. 
     Some existing network management schemes allow UEs to attempt to take as much bandwidth as desired for HTTP adaptive streaming from a content provider regardless of how much bandwidth is actually available to the content provider. UEs and content providers may only “adapt” to changing network conditions when the available bandwidth is fully consumed. This can be a problem for content providers who may want to control the bandwidth they provide to individual streams. 
     Some existing network management schemes implemented by ISPs are controversial, both with customers and with government agencies. Laws that will enforce “Net Neutrality”, which will ban ISPs from restricting bandwidth usage by content types, have been enacted by the Netherlands and are being considered in many other countries. Consequently, streaming media continues to disproportionately utilize ISP network resources and IPSs do not have adequate network management schemes to regulate such usage. 
     SUMMARY 
     Some embodiments are directed to a method by a pipe control node for managing network resources that are used to transport network traffic. The method includes allocating network resources to a virtual pipe for transporting a plurality of multimedia streams through the network. Utilization of the network resources by the plurality of multimedia streams transported through the virtual pipe is monitored relative to the network resources allocated to the virtual pipe. The network resources that are used by the plurality of multimedia streams transported through the virtual pipe are managed in response to the monitored utilization. 
     Accordingly, the virtual pipe can be managed to allow streaming devices to consume only as much bandwidth as is allocated to the virtual pipe, without interfering with traffic that is transported outside the virtual pipe. In some further embodiments, network resources may be allocated for transporting bandwidth intensive video streams while preventing/avoiding interference with the network resources that are available for transporting other network traffic (e.g. non-video streams, such as web browsing traffic) outside the virtual pipe. Correspondingly, the network resources that are allocated for transporting streams through the virtual pipe may be reserved for use by those streams so that the other network traffic does not interfere with the streams transported through the virtual pipe. Within the virtual pipe, the bandwidth resources provided to individual streams can be managed to, for example, provide tiered management of streams (e.g. based on device type, user account, or content type) so that streams of a same tier level have their access to network resources managed in a same scheduling algorithm. 
     Some other embodiments are directed to a pipe control node that manages network resources which are used to transport network traffic. The pipe control node includes circuitry that is configured to allocate network resources to a virtual pipe for transporting a plurality of multimedia streams through the network. The circuitry monitors utilization of the network resources by the plurality of multimedia streams transported through the virtual pipe relative to the network resources allocated to the virtual pipe. The circuitry manages the network resources that are used by the plurality of multimedia streams transported through the virtual pipe in response to the monitored utilization. 
     Other methods and apparatuses according to embodiments of the invention will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional methods and apparatuses be included within this description, be within the scope of the present invention, and be protected by the accompanying claims. Moreover, it is intended that all embodiments disclosed herein can be implemented separately or combined in any way and/or combination. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are included to provide a further understanding of the disclosure and are incorporated in and constitute a part of this application, illustrate certain non-limiting embodiment(s) of the invention. In the drawings: 
         FIG. 1  is a block diagram of a communications system that is configured to operate according to some embodiments; 
         FIG. 2  is a more detailed block diagram of the communication system of  FIG. 1  showing further aspects of a virtual video pipe configured according to some embodiments; 
         FIG. 3  is a block diagram of a pipe control mode configured according to some embodiments; 
         FIG. 4  is a data flow diagram that illustrates operations and methods performed by various nodes of the system of  FIG. 2  configured according to some embodiments; 
         FIG. 5  is a flowchart of operations and methods may be performed by a pipe control node according to some embodiments; 
         FIG. 6  illustrates example operation of a scheduling algorithm that may be used to control timing of delay between receipt of data packets and forwarding of the data packets from a network node; 
       FIGS.  7  and  8 A-E illustrate a virtual pipe, and operations and methods for dynamically resizing resources allocated to video streams transported by the virtual pipe; 
         FIG. 9-15  are flowcharts of operations and methods by a pipe control mode according to some embodiments; and 
         FIG. 16  is a block diagram of an example network node of  FIGS. 1-4  that is configured according to some embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     The invention will now be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. 
     In accordance with various embodiments of the present invention, an ISP or other network operator can allocate network resources for a “virtual pipe” that is used to transport HTTP traffic associated with multimedia streams and, in particular, video streams. Network resources can be allocated to the virtual pipe for transporting a plurality of multimedia streams through a network. The virtual pipe can be managed to allow streaming devices to consume only as much bandwidth as is allocated to the virtual pipe, without interfering with traffic that is transported outside the virtual pipe. 
     Accordingly, network resources can be allocated for transporting bandwidth intensive video streams while preventing/avoiding interference with the network resources that are available for transporting other network traffic (e.g. non-video streams, such as web browsing traffic) outside the virtual pipe. Correspondingly, the network resources that are allocated for transporting streams through the virtual pipe can be reserved for use by those steams so that the other network traffic does not interfere with the streams transported through the virtual pipe. Within the virtual pipe, the bandwidth resources provided to individual streams can be managed to, for example, provide tiered management of streams (e.g. based on device type, user account, or content type) so that streams of a same tier level have their access to network resources managed according to a same scheduling algorithm, such as a Fair Network Queuing algorithm. 
       FIG. 1  is a block diagram of a communications system that is configured to operate according to some embodiments. Referring to  FIG. 1 , a plurality of UEs  130  and/or a plurality of applications (“App  1 ” . . . “App n”) on one or more UEs can communicate through an IP Multimedia Subsystem (IMS)  100  and IP core network  140  in order to receive selected content from a content delivery network servers  150  and/or other content servers  154 . 
     The content delivery network servers  150  can include time-shifted TV content servers  152 , video on-demand content servers  152 , and/or broadcast video servers  152 . The other content servers  154  may, for example, primarily contain web page content, social network content, etc. The UEs  130  may include, but are not limited to, set-top-boxes, multimedia computers, wireless terminals, and other electronic devices that are configured to receive multimedia streams. 
     In accordance with some embodiments, the system further includes a pipe control node  102  that manages network resources which are used to transport network traffic. The pipe control node comprises circuitry that is configured to allocate network resources to a virtual pipe  110  for transporting a plurality of video streams through the network. The pipe control node  102  circuitry monitors utilization of the network resources by the plurality of video streams transported through the virtual pipe relative to the network resources allocated to the virtual pipe. The pipe control node  102  circuitry manages the network resources that are used by the plurality of video streams transported through the virtual pipe in response to the monitored utilization. 
     Although various embodiments are described herein in the context of providing a virtual video pipe for transporting video streams, the invention is not limited thereto and may be used to transport other information relating to the video streams (e.g. manifest information), informational descriptions of the video streams, single/multi-language audio streams, or other types of network traffic. Accordingly, the pipe controller  102  may allocate network resources to another virtual pipe  120  for transporting a plurality of other types of network traffic. Although only two virtual pipes  110  and  120  are shown in  FIG. 1  for convenience of illustration, the pipe control node  102  may manage any number of virtual pipes and the associated network resources used by traffic that is allowed to be transported using the resources allocated to the respective virtual pipes. The network resources that are assigned to a virtual pipe, monitored for utilization, and managed may include bandwidth, latency, priority, and/or other parameters that affect QoS associated with transporting traffic through network nodes within the IMS  100 , the core network  140 , and/or other network nodes. Moreover, although various embodiments are described herein in the context of controlling network resources in an IMS  100  and mobile network (e.g., radio network controller), the invention is not limited thereto and may be applied to manage other types of network resources. 
       FIG. 2  is a more detailed block diagram of the communication system of  FIG. 1  showing further aspects of the management of network resources allocated to the virtual video pipe  110 . In the example of  FIG. 2 , UEs  130  ( FIG. 1 ) can communicate with the content delivery network  150  to request and receive a video streams through the IP core network  140 , a radio network controller  200 , a mobile backhaul network  240 , and one or more radio transceiver base stations  242  that provide wireless communication service to the UEs  130 . The video streams can flow through an edge router  210  and adaptive streaming server  230  in the radio network controller  200 . The adaptive streaming server  230  can regulate bandwidth of individual video streams responsive to available network bandwidth resources to the UEs  130  through the mobile backhaul network  240  and radio transceiver base stations  242 . The content delivery network  150  may, in some embodiments, provide video streams toward the adaptive streaming server  230 , and an adaptive streaming compatible transcoder  220  can adaptively transcode the video streams to generate different bandwidth video streams that can be selectively provided to the UEs  130  responsive to the available network resources (e.g., available communication bandwidth) therebetween. The adaptive streaming server  230  can communicate with the edge router  210  through a Network Management System (NMS) and Policy Management Interface to monitor and control available network resources. 
     The pipe control node  102  may control the edge router  210  to negotiate and establish with one or more network nodes  142  of the IP core network  140  the allocation, monitoring, and management of network resources that will transport certain types of network traffic and/or network traffic from one or more defined source network nodes (e.g. one or more of the content delivery network servers  150 . The pipe control node  102  may control the adaptive streaming server  230  to negotiate with one or more network nodes of the mobile backhaul network  240  for the allocation, monitoring, and management of network resources for the video pipe  110  that will transport certain types of network traffic and/or network traffic from one or more defined source network nodes (e.g. one or more of the content delivery network servers  150 . 
       FIG. 3  is a block diagram of a pipe control mode  102  configured according to some embodiments. Although various communication flows are indicated by arrows to show example primary communication directions, it is to be understood that communications can occur opposite to the arrows. The pipe control node  102  may include circuitry for packet input  300 , virtual pipe resource manager  310 , an output buffer  320 , and packet transmitter  330 . The packet input  300  may be configured to receive a manifest message from a content server  152  which identifies, for example, URL addresses from which video streams having defined data bandwidth can be read (e.g., URL 1 —4 Mbs, URL 2 —2 Mbs, URL 3 —1 Mbs). The packet input  300  may select among the URL addresses for reading the associated video stream in response to decisions by the virtual pipe resource manager  310  which is managing the data bandwidth utilized by the associated video streams. The packet input  300  can temporarily store the received packets for a video stream in an input buffer. 
     Various example operations and methods that can be performed at least partially by the virtual pipe resource manager  310  will now be explained with reference to the flowcharts of  FIGS. 9-15 . The resource manager  310  manages network resources which are used to transport network traffic. The resource manager  310  allocates (block  900 — FIG. 9 ) network resources to the virtual pipe  110  for transporting a plurality of video (or other multimedia) streams through the network. The resource manager  310  monitors (block  902 — FIG. 9 ) utilization of the network resources by the plurality of multimedia streams transported through the virtual pipe relative to the network resources allocated to the virtual pipe. For example, the edge router  210 , the adaptive streaming server  230 , and/or other network nodes may communicate resource utilization information to the resource manager  310 . The resource manager  310  manages (block  904 — FIG. 9 ) the network resources that are used by the plurality of multimedia streams transported through the virtual pipe in response to the monitored utilization. 
     The pipe control node  102  may, in some embodiments, receive network traffic that only relates to video streams that are to be transported by network resources allocated to the virtual video pipe  110 . However, in some other embodiments, it may receive other network traffic that is not be managed through the resources of the video pipe  110  and, therefore, can be further configured to distinguish between different types of network traffic. The resource manager  310  may determine (block  1000 — FIG. 10 ) whether particular network traffic for a video stream is to be transported by network resources allocated to the video pipe  110 , and which may be determined by comparing a source address of packets of the video stream to a known list of source addresses of network nodes (e.g., the content servers  152 ) that provide video streams for the video pipe  110 . The resource manager  310  includes (block  1002 — FIG. 10 ) the particular network traffic in the virtual pipe  110 , using network resources allocated to the virtual pipe  110 , in response to the particular network traffic transporting a video stream. Otherwise, the resource manager  310  excludes (block  1002 — FIG. 10 ) the particular network traffic from utilization of the network resources allocated to the virtual pipe  110  in response to the particular network traffic not transporting a video stream. 
     The resource manager  310  may constrain (block  1100 — FIG. 11 ) the network resources used by each of the video streams transported through the virtual pipe  110  in response to a combined utilization of the network resources by the video streams exceeding a defined threshold level. When the combined utilization of the network resources exceeds the defined threshold level, the resource manager  310  may begin controlling the network resources used by individual ones of the video streams by controlling a time delay between when data packets for each of the video streams arrives when they leave. For example, the resource manager  310  may control (block  1102 — FIG. 11 ) timing of delay, between arrival of data packets of the video streams at an input buffer (e.g., at the packet input  300  of the control node  102  or another network node) and placement of the packets in an output buffer  320  for forwarding from the control node  102  (or another network node) by a packet transmitter  330  through the video pipe  110 , responsive to a defined scheduling algorithm. The scheduling algorithm may be a Fair Network Queuing (FNQ) algorithm, a round-robin algorithm, etc. 
       FIG. 5  is a flowchart of example operations and methods that may be performed by the control node  102  to manage resource utilization by the video streams according to a FNQ algorithm. Packets for the video streams are received or fetched from know URLs at the content servers  152  (block  500 ), and are assembled (block  502 ) into one or more buffers. A FNQ time delay is separately calculated (block  504 ) for packets of each of the video streams, and the packets associated with each of the video streams are separately delayed (block  506 ) by the calculated FNQ time delay before being placed (block  508 ) in an output buffer  330  for transmission by a packet transmitter  330  through the video pipe  110 . A decision (block  510 ) is made as to whether more packets remain in input buffers for the various video streams. When no remaining packet traffic is to be transmitted for a particular one of the video streams, the pipe control node  102  and/or another network node may close (block  512 ) the session/socket for the particular video stream. 
       FIG. 6  illustrates example operations of a scheduling algorithm that may be used, e.g., by the pipe control node  102 , to control timing of delay between receipt of data packets and forwarding of the data packets from a network node using network resources of the video pipe  110 . Three buffers  610 ,  620 ,  630  are shown in the example of  FIG. 6  for convenience of description, although the buffers may reside in one physical buffer memory or within separate physical buffer memories. Packets for different video streams are temporarily stored in different buffers  610 ,  620 ,  630 . The timing between when packets are placed in the buffers  610 ,  620 ,  630  and subsequently read from the buffers  610 ,  620 ,  630  for transmission through the network is controlled responsive to a defined scheduling algorithm. 
     In one embodiment, the resource manager  310  of the control node  102  may sequentially read a packet(s) from each of the buffers  610 ,  620 ,  630  for transmission through the network in a defined order (e.g., read packet(s) from buffer  610  to reduce level to illustrated level  612 , read packet(s) from buffer  620  to reduce level to illustrated level  622 , and read packet(s) from buffer  630  to reduce level to illustrated level  623 ), and may repeat the reading cycle while skipping buffers that become empty and including more buffers as packets arrive for other video streams. An equal number of packets may be read from each of the buffers  610 ,  620 ,  630  during each cycle, or more packets may be read from particular ones of the buffers  610 ,  620 ,  630  and/or may be read more frequently from particular ones of buffers  610 ,  620 ,  630  having packets for higher priority designated video streams, higher requested bandwidth video streams, and/or which are associated with a customer and/or UE having a designated tier of service (e.g., a higher tier of service than another one or more of the other video streams associated with other ones of the buffers). 
     Illustrative Use Examples: 
     FIGS.  7  and  8 A-E illustrate a virtual pipe, and operations and methods for dynamically resizing network resources that are allocated to video streams transported by the virtual pipe, and which operations and methods may be performed by the pipe control node  102 . Referring to  FIG. 7 , an Internet pipe through network nodes has been illustrates as having a 30 Gbs (gigabits per second) bandwidth limitation. The Internet pipe contains a video delivery pipe  110  that has been allocated 10 Gbs of bandwidth for transporting video (or other multimedia) streams through the Internet pipe. The remaining 20 Gbs of bandwidth remains for use in transporting other network/Internet traffic, and which may be formally allocated and managed as another pipe  120  for that traffic or may be unmanaged by the pipe control node  102 . 
     The size of (e.g., amount of data bandwidth allocated to) the virtual video pipe  110  may be dynamically controlled in response to utilization of the network resources allocated to the virtual video pipe  110  and/or in response to utilization of the network resources that remain outside the virtual video pipe  110  (e.g., within another traffic pipe  120 ). Various relevant operations and methods for regulating the size of the virtual video pipe  110  are shown in  FIGS. 14 and 15 . 
     When regulating the size of the video pipe  110 , the pipe control node  102  may compare (block  1400 — FIG. 14 ) requested data rates for the video streams (e.g., which may be information received as part of a video stream manifest from the content servers  152 ) to a combined data bandwidth (e.g., 10 Gbs) allocated to the virtual pipe for use by the plurality of video streams. The pipe control node  102  may control (block  1402 — FIG. 14 ) the combined data bandwidth allocated to the virtual pipe responsive to the comparison. 
     Alternatively or additionally, when regulating the size of the video pipe  110 , the pipe control node  102  may compare (block  1500 — FIG. 15 ) requested data rates for the video streams (e.g., which may be information received as part of a video stream manifest from the content servers  152 ) to allowed data rates for the video streams subject to the available resources of the network (e.g., what actual data rates have each of the video streams been provided by the network). The pipe control node  102  may control (block  1502 — FIG. 15 ) the combined data bandwidth allocated to the virtual pipe responsive to the comparison. 
     Reference is now made to the examples of  FIGS. 8A-E  in which the data bandwidth that is allocated to a virtual pipe  800  (e.g., video pipe  110  in  FIG. 1 ) is dynamically resized responsive to the utilization of the network resources of the virtual pipe  800 . 
     In  FIG. 8A , 10 Mbs of network bandwidth has been allocated to the virtual pipe  800 . The virtual pipe  800  is inside a 54 Mbs physical pipe. Three video streams  802 ,  804 ,  806  are presently being transported using resources of the virtual pipe  800 . The combined bandwidth that is presently requested by the three video streams exceeds the total network bandwidth allocated to the virtual pipe  800 . However, the video streams are not yet managed (e.g., using a scheduling algorithm, such as FNQ) according to embodiments of the present invention and, consequently, some of the video streams are disproportionately constrained relative to one another. The video stream  802  originated from connection address 192.166.0.67, requested 4 Mbs (e.g., information received from the content server), but is presently using only 1.65 Mbs of the network bandwidth. The video stream  804  (connection address 192.168.0.25) requested 4 Mbs and is presently using 3.68 Mbs of the network bandwidth. However, in contrast to streams  802  and  804 , the video stream  806  (connection address 192.266.0.110) requested 4 Mbs and is presently using 4 Mbs, which is the entire bandwidth requested. Consequently, video stream  806  has been provided its entire requested bandwidth, but has thereby left insufficient remaining resources for the video streams  802  and  804  and resulted in disproportionate negative consequences thereto. 
     In  FIG. 8B , the network bandwidth allocated to the virtual pipe  800  has been dynamically increased to 15 Mbs in response to growth in the combined bandwidth requests of the three video streams relative to the requested bandwidths shown in  FIG. 8A . The video stream  802  now requests and receives 4.19 Mbs of the network bandwidth. The video stream  804  now requests and receives 6.17 Mbs of the network bandwidth. However, in contrast to streams  802  and  804 , the other video stream  806  still requests 4 Mbs but is now constrained to using only 3.62 Mbs. Thus, the video streams  802  and  804  have left insufficient remaining resources for use by the video stream  806 . 
     In  FIG. 8C , the network bandwidth allocated to the virtual pipe  800  has been dynamically decreased to 8 Mbs in response to, for example, reallocate network bandwidth of the Internet pipe  800  for use by other network traffic (e.g. pipe  120  of  FIG. 7 ) and/or in response to a decrease in the combined bandwidth requests of the streams  802 ,  804 ,  806  decreasing to 12 Mbs. In response to the requested data rates for the streams (12 Mbs) exceeding a defined threshold value, such as the network bandwidth (8 Mbs) allocated to the virtual pipe  800 , the bandwidth that is provided to each of the video streams  802 - 806  is separately controlled responsive to a defined scheduling algorithm (e.g., FNQ scheduling algorithm). The video stream  802  now requests 4 Mbs and is constrained to using 2.36 Mbs, video stream  804  now requests 4 Mbs and is constrained to using 2.36 Mbs, and video stream  806  now requests 4 Mbs and is constrained to using 2.91 Mbs. Accordingly, the bandwidth allowed for each of the video streams is controlled to more fairly balance the constraint imposed on the three video streams. The video stream  806  may be granted a higher bandwidth because it is associated with a higher tier service level then the other video streams  802  and  806 . 
     In  FIG. 8D , a fourth video stream  808  is now also carried by the virtual pipe  800 , and the network bandwidth allocated to the virtual pipe  800  has been shrunk to or remains at 8 Mbs. Each of the four video streams is controlled according to a defined scheduling algorithm (e.g., FNQ scheduling algorithm). The fourth video stream  808  requests 1.5 Mbs and is constrained to using 1.28 Mbs, which is proportionally more bandwidth than is allowed for use by the other three video streams  802 - 806 , which have each requested 4 Mbs and been constrained to 2.3 Mbs, 1.63 Mbs, and 3.26 Mbs respectively. The fourth video stream  808  may be associated with a high tier service level than the other three video streams  802 - 806  and, therefore, may be allowed to have proportionally more bandwidth than the other three video streams  802 - 806 . 
     In  FIG. 8E , the network bandwidth allocated to the virtual pipe  800  has been dynamically increased to 10 Mbs in response to, for example, the excessive combined bandwidth requested by the four video streams. Each of the four video streams is controlled according to a defined scheduling algorithm (e.g., FNQ scheduling algorithm), and the fourth video stream  808  is provided proportionally more bandwidth than the other three video streams  802 - 806  because of, for example, the fourth video stream  808  being associated with a high tier service level than the other three video streams  802 - 806 . 
     Illustrative Use Examples: 
       FIG. 4  is a data flow diagram that illustrates operations and methods performed by various nodes of the system of  FIG. 2  configured according to some embodiments. Referring to  FIG. 4 , video streaming sessions are established  400  between the UEs  130  and one or more video content servers  152 . Traffic associated with the video streams is assigned  402  to a video pipe. The video pipe may be established  404  between two or more network nodes, although it may be extend further along the session pathway between the UEs  130  and the adaptive streaming server  230  through the mobile network  240 . Internet browsing sessions are separately established  406  and, in some embodiments, may be managed in a similar manner to that described above for the video streams by being assigned  408  to another pipe  410  that may extend at least partially along the session pathway. 
     Utilization of the network resources by the plurality of video streams transported through the video pipe is monitored  412  relative to the network resources that are allocated to the video pipe. The network resources that are allocated to the video pipe may, in some embodiments, be dynamically controlled  414 . While the monitored utilization of the network resources allocated to the video pipe exceeds the defined threshold, the video streams for the sessions are constrained  416 . 
     In one embodiment, the control node  102  can constrain the resource is used by different ones of the video streams by controllably delay the respective video streams, as described above. Alternatively or additionally, according to the operations and methods of  FIG. 12 , the control node  102  may communicate with the adaptive streaming server  230  to control (block  1200 — FIG. 12 , block  418 — FIG. 4 ) a data rate of the video streams that are output by the adaptive streaming server  230 . In yet another alternative or additional embodiment, according to the operations and methods of  FIG. 13 , the control node  102  may communicate with the content server  152  to control (block  1300 — FIG. 13 , block  422 — FIG. 4 ) a data rate of the video streams that are output by the content server  152 . In yet another alternative or additional embodiment, the control node  102  may communicate with the transcoder  220  to control (block  420 — FIG. 4 ) a data rate of the video streams that are output by the transcoder  220 . 
     Example Network Node: 
       FIG. 16  is a block diagram of a network node  1600  that is configured according to some embodiments. The network node  1600  which may be used in one or more of the network nodes described above with regard to  FIGS. 1-15 , including, but not limited to, the pipe control node  102 , the adaptive streaming server  230 , edge router  210 , the core network  140 , the content delivery network server  150 , the UE  130 , and/or the mobile network  240 . The network node  1600  can include one or more network interfaces  1630 , processor circuitry  1610 , and memory circuitry/devices  1620  that contain functional modules  1622 . The network node  1600  may further include radio transceiver circuitry when included in a wireless communication type of UE  130  (e.g., mobile phone/data terminal). 
     The processor circuitry  1610  may include one or more data processing circuits, such as a general purpose and/or special purpose processor (e.g. microprocessor and/or digital signal processor). The processor circuitry  1610  is configured to execute computer program instructions from the functional modules  1622  in the memory circuitry/devices  1620 , described below as a computer readable medium, to perform some or all of the operations and methods that are described above for one or more of the embodiments, such as the embodiments of  FIGS. 1-15 . 
     Further Definitions and Embodiments: 
     In the above-description of various embodiments of the present invention, it is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense expressly so defined herein. 
     When an element is referred to as being “connected”, “coupled”, “responsive”, or variants thereof to another element, it can be directly connected, coupled, or responsive to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected”, “directly coupled”, “directly responsive”, or variants thereof to another element, there are no intervening elements present. Like numbers refer to like elements throughout. Furthermore, “coupled”, “connected”, “responsive”, or variants thereof as used herein may include wirelessly coupled, connected, or responsive. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Well-known functions or constructions may not be described in detail for brevity and/or clarity. The term “and/or” includes any and all combinations of one or more of the associated listed items. 
     As used herein, the terms “comprise”, “comprising”, “comprises”, “include”, “including”, “includes”, “have”, “has”, “having”, or variants thereof are open-ended, and include one or more stated features, integers, elements, steps, components or functions but does not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof. Furthermore, as used herein, the common abbreviation “e.g.”, which derives from the Latin phrase “exempli gratia,” may be used to introduce or specify a general example or examples of a previously mentioned item, and is not intended to be limiting of such item. The common abbreviation “i.e.”, which derives from the Latin phrase “id est,” may be used to specify a particular item from a more general recitation. 
     Example embodiments are described herein with reference to block diagrams and/or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It is understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions that are performed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuitry to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block(s). 
     These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the functions/acts specified in the block diagrams and/or flowchart block or blocks. 
     A tangible, non-transitory computer-readable medium may include an electronic, magnetic, optical, electromagnetic, or semiconductor data storage system, apparatus, or device. More specific examples of the computer-readable medium would include the following: a portable computer diskette, a random access memory (RAM) circuit, a read-only memory (ROM) circuit, an erasable programmable read-only memory (EPROM or Flash memory) circuit, a portable compact disc read-only memory (CD-ROM), and a portable digital video disc read-only memory (DVD/Blu-Ray). 
     The computer program instructions may also be loaded onto a computer and/or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer and/or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks. Accordingly, embodiments of the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor such as a digital signal processor, which may collectively be referred to as “circuitry,” “a module” or variants thereof. 
     It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated. Moreover, although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows. 
     Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, the present specification, including the drawings, shall be construed to constitute a complete written description of various example combinations and subcombinations of embodiments and of the manner and process of making and using them, and shall support claims to any such combination or subcombination. 
     Many variations and modifications can be made to the embodiments without substantially departing from the principles of the present invention. All such variations and modifications are intended to be included herein within the scope of the present invention.