Advances in Internet and wireless technologies have triggered an exponential upsurge in the amount of content that is accessible by wireless devices. Different content types, such as video, audio, and webpages, pose different demands for quality of service (QOS). In order to improve QOS, traffic can be steered to certain delivery optimization resources. Typically, traffic is steered to optimization resources according to a static set of steering rules. For example, a static set of Uniform Resource Locators (URLs) is used to steer HTTP requests for video content. However, the landscape of Internet delivered video changes rapidly, with hot websites and videos appearing and disappearing relatively quickly. Therefore, a static set of steering rules can become out-of-date in a short duration of time. When a static set of steering rules becomes out-of-date, some video data may be delivered to wireless devices without the benefit of the optimization resources that are available to improve QOS.
Embodiments of a method are described. In one embodiment, a method for dynamic traffic steering is described. The method for dynamic traffic steering involves receiving a request for content at a steering component, comparing information in the request with steering criteria in the steering component, steering the request based on the comparing, and continuously updating the steering criteria based on requests that are subsequently received at the steering component. In another embodiment, a method for dynamic traffic steering is described. The method for dynamic traffic steering involves receiving a request for content at a steering component, comparing a destination Internet Protocol (IP) address of the request with a list of IP addresses, if the destination IP address of the request is on the list of IP addresses, sending the request to an optimization platform, transmitting the request from the optimization platform to a content server that is identified in the request, receiving a response to the request from the content server at the optimization platform, and optimizing the response for delivery at the optimization platform, if the destination IP address of the request is not on the list of IP addresses, sending the request to a discovery proxy, transmitting the request for content from the discovery proxy to the content server that is identified by the request, receiving the response to a request from the content server at the discovery proxy, scanning the response at the discovery proxy to determine whether or not the response contains video content, and updating the steering criteria in response to the determination that is made by the discovery proxy, and continuously updating the steering criteria based on requests that are subsequently received at the steering component. Other embodiments of a method are also described.
Embodiments of a traffic controller for dynamic traffic steering are also described. In one embodiment, a traffic controller for dynamic traffic steering includes a steering component configured to maintain steering criteria for steering requests for content, an optimization platform configured to optimize delivery of content requested by at least one of the requests for content, and a discovery proxy configured to perform a content discovery process to update the steering criteria. Other embodiments of a traffic controller for dynamic traffic steering are also described.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example of the principles of the invention.
Throughout the description, similar reference numbers may be used to identify similar elements.
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
The mobile device 102 of the content delivery system 100 is typically a handheld wireless device, such as a cell phone, a mobile phone, a smartphone, a pad computer, a Personal Digital Assistant (PDA), a handheld gaming device etc, which can wirelessly communicate using radio frequency (RF) communications signals. The mobile device can support various different RF communications protocols, including without limitation, Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access (CDMA), Worldwide Interoperability for Microwave Access (WiMax) and communications protocols as defined by the 3rd Generation Partnership Project (3GPP) or the 3rd Generation Partnership Project 2 (3GPP2), 4G Long Term Evolution (LTE) and IEEE 802.16 standards bodies. Although some wireless communications protocols are identified herein, it should be understood that present disclosure is not limited to the cited wireless communications protocols. The mobile device is configured to request content from the video content server 114 and/or the non-video content server 116 on behalf of a user and to render received content for displaying to the user. The user may be a single person, multiple persons, other entity or entities.
The radio access network 104 of the content delivery system 100 is configured to facilitate radio communications between the mobile device 102 and a core network that includes the data gateway 106, the traffic controller 108, the Internet gateway 110, the Internet 112, the video content server 114, and the non-video content server 116. In an embodiment, the radio access network includes one or more base stations to facilitate communications among mobile devices that are within a communication range of the base stations. Each base station has at least one RF transceiver and the base stations communicate with the mobile devices using RF communication signals. The radio access network facilitates network communications among multiple mobile stations within the same radio access network and between mobile stations in other radio access networks and provides interfaces to facilitate communications with other entities, such as a Public Switched Telephone Network (PSTN), a Wide Area Network (WAN), the Internet, Internet servers, hosts, etc., which are outside of the radio access network. In an embodiment, the network elements depicted in
Data signals communicated between the mobile device 102 and the radio access network 104 include, but are not limited to, analog and/or digital RF signals (i.e., radio waves) for any type of communication mode, including text messaging, multimedia messaging, voice calling, and Internet browsing. The radio access network can support various different RF communications protocols, including without limitation, GSM, UMTS, CDMA, WiMax and communications protocols as defined by 3GPP, 3GPP2, or IEEE 802.16. Although some wireless communications protocols are identified herein, it should be understood that present disclosure is not limited to the cited wireless communications protocols.
Although the content delivery system 100 depicted in
The data gateway 106 of the content delivery system 100 configures outgoing data access requests for use with one or more networks and configures incoming data for use by or display on the mobile device 102. As shown, the data gateway interfaces directly with the radio access network 104 and the traffic controller 108, although other embodiments may include other intermediate functional elements. In one embodiment, the data gateway uses GPRS Tunneling Protocol (GTP) to communicate with the radio access network. Other embodiments may use other communications protocols. Other conventional operations of the data gateway are known. For example, the data gateway enables users of mobile devices to roam between cells, for example, to move between different locations within the radio access network, by tracking the mobile device's identity across the network. The data gateway may also provide authentication and data formatting functions.
The traffic controller 108 of the content delivery system 100 is configured to monitor requests for content that are sent from the mobile device 102 to the video content server 114 and/or the non-video content server 116, to determine the content types of the requests, and to optimize the delivery of the requested content. The traffic controller acts as a proxy server between the mobile device and the video content server and/or the non-video content server and dynamically steers the traffic between the mobile device and the video content server and/or the non-video content server.
In the embodiment depicted in
The steering component 210 of the traffic controller 208 is configured to maintain steering criteria for steering requests for content. The steering component may maintain steering criteria solely based on information from one layer of the Open Systems Interconnection (OSI) model, which is shown in
In the embodiment depicted in
In an embodiment, the whitelist 222, the blacklist 224 and the third category “other” 226 contain destination address information, e.g., destination IP addresses. If a request for content is destined to a destination that is on the whitelist, the steering component 210 directs the request to the optimization platform 212 for content delivery optimization. For example, the steer component may perform an IP address lookup by checking the destination IP address of the request against the whitelist. If a request for content is destined to a destination that is on the blacklist, the steering component does not direct the request to the optimization platform. Instead, the steering component directs the request to a bypass route. If a request for content is destined to a destination that is neither on the whitelist nor on the blacklist, the steering component directs the request to the discovery proxy 220. The discovery proxy implements the content discovery process in which the discovery proxy determines whether or not the returned content includes content of interest and adds information related to the request to either the whitelist or the blacklist. For example, at the start of a deployment of the traffic controller 208, the whitelist stored in the steering component contains a list of IP addresses of popular known video sites. In addition to the list of IP addresses of popular known video sites, the whitelist may include additional information such as IP address lifetime, destination port, source port, time-of-day. The steering component can check destination IP addresses of requests that are sent from the mobile device 102. If a request from the mobile device is destined to an IP address that is on the whitelist, the steering component directs the request to the optimization platform for video content delivery optimization. If a request from the mobile device is destined to an IP address that is not on the whitelist, the request is subjected to the content discovery process by steering the request to the discovery proxy. The discovery proxy implements the content discovery process in which the discovery proxy determines whether or not the returned content includes video content. If the discovery proxy determines that the returned content includes video content, the discovery proxy identifies the source of the video content. The discovery proxy then notifies the steering component with details about the video content source (e.g., the IP address), so that the steering criteria maintained in the steering component can be updated to include information about the newly discovered video content source. For example, the whitelist is updated to include the IP address of the newly discovered video content source. As a result, the next time there is a request for the newly discovered source, the request can be steered accordingly. In an embodiment, the whitelist is empty at the start of a deployment of the traffic controller. The empty whitelist is then populated by IP addresses that are learned by the discovery proxy. If the requested content does not include video content, the steering criteria maintained in the steering component can be updated to include the destination information of the request. For example, the destination IP address in the request is stored in a blacklist. In an embodiment, any future request for content that is destined to an IP address that is on the blacklist is sent to the Internet gateway 110 through the bypass route and is not directed to the optimization platform. The third category “other” may not be in the form of a list. Rather, the third category “other” can include all of the IP addresses that are neither on the whitelist nor on the blacklist. From the population of request addresses in the third category “other,” new entries are discovered for addition to either the whitelist or the blacklist.
In an embodiment, the request for content that the steering component 210 receives is a single IP packet or multiple IP packets.
The optimization platform 212 adds value to the content delivery system 100 with intelligent, device-aware and policy-aware delivery of video content and other content of interest, and reduces costs while increasing effective bandwidth. The optimization platform enables service providers to define subscriber level, time-of-day-based, or volume-based policies that influence the optimization decision. For example, with the optimization platform 212, service providers can identify video content in a response and optimize video content on demand, to reduce network cost while increasing utilization of existing network assets. The optimization platform can deliver the right amount of video data for smooth playback, but not too much at once, eliminate wasted bandwidth in case the user moves on to newer content before finishing watching the current video, increase network efficiency with a caching system, perform offline transcoding, and adjust the optimized media bit-rate delivered to the subscriber based on available network bandwidth. In the embodiment depicted in
Each of the media optimizer proxies 214, 216, and 218 of the optimization platform 212 is configured to optimize video content for delivery to the mobile device 102 and/or to the radio access radio access network 104 according to criteria such as characteristics of the mobile device, the radio access network, and/or the video content. In an embodiment, each media optimizer proxy includes a transcoding module that is configured to encode video content that is being delivered into encoded video content, whose data size is smaller than the data size of the video content that is being delivered. The transcoding module may encode the video content based on the physical dimensions and resolution of the mobile device display, perceived bandwidth of the communications channel between the content and the mobile device, and supported codecs and delivery protocols of the mobile device. The transcoding module may also be configured to encode the content that is being delivered into encoded content that is more secure. By encoding the content that is being delivered into a smaller or more secure encoded form, the content delivery is optimized.
The response from the video server 114 and/or the non-video server 116, which may be a HTTP response, can be transmitted in a single IP packet or multiple IP packets. Each response IP packet may have a similar format to the exemplary request IP packet shown in
In the operation example illustrated in
In the example illustrated in
In the example illustrated in
In the example illustrated in
Although the discovery proxy 220 is external to the steering component 210 in the embodiment depicted in
In a static traffic steering approach, pre-configured rules are used to steer requests for delivery optimization. For example, URLs in the HTTP GET request can be used to steer requests through an optimization platform. With the fast changing Internet video content delivery landscape where hot websites and videos appear and disappear relatively quickly, pre-configured rules can become out-of-date in a short duration of time. Compared with the static traffic steering approach, the traffic controller 108 of
In addition, compared with a traffic steering approach in which only the whitelist 222 is implemented and updated, the traffic controller 108 of
Although the traffic controllers 108, 208, 1208 are described above with respect to video content, the traffic controllers can also be used for the delivery optimization of other type or types of content. For example, the discovery proxy 220 can be used to detect content such as text, webpage, image, or any combination of video and non-video content by, for example, looking at the HTTP header in the HTTP response. The steering component 210, 1210 may maintain a whitelist, a blacklist and/or a third category “other” that steering criteria related to any combination of video and non-video content. The optimization platform 212 may optimize the delivery of any combination of video and non-video content.
Referring back to
The video content server 114 of the content delivery system 100 is configured to store video content, to process requests for video content from the mobile device 102, and to provide requested video content to the mobile device over at least one delivery protocol. The video content server may serve video content over a single video transport protocol or more than one video transport protocol. In an embodiment, the video content server serves video content over HTTP such as HTTP-Progressive Download (HTTP-PD) or HTTP-Adaptive Streaming (HTTP-AS), Real Time Messaging Protocol (RTMP), and/or real time streaming protocol (RTSP) or other similar protocols such as Real-time Transport Protocol (RTP) and Real Data Transport (RDT) from a content encoder or from pre-encoded content stored in a video content database (not shown). The video server may belong to a video web site, such as YouTube.com, Google Videos, Metacafe.com, and Hulu.com.
The non-video content server 116 of the content delivery system 100 is configured to store non-video content, to process requests for non-video content from the mobile device 102, to provide requested non-video content to the mobile device. The non-video content can be text, webpage, image, or any combination thereof. The non-video server may include a database (not shown) for storing non-video content. In an embodiment, the non-video content server is an HTTP server.
The video content server 114 may be physically connected to the non-video content server 116. For example, the video content server may be directly connected to the non-video content server or indirectly connected to the non-video content server through an intermediate network. The video content server may be the same as the non-video content server. For example, the video content server and the non-video content server may be located in the same physical server. In an embodiment, video content server and non-video content are distinguished by Layer 3 and Layer 4 information, e.g., IP address and port number. For example, video content is located at IP address A, port B while non-video content is located at IP address A, port C, where A represents an IP address and B and C represent different ports numbers. In another example, video content is located at IP address A, port B while non-video content is located at IP address D, port C, where A and D represent different IP addresses.
Although the operations herein are shown and described in a particular order, the order of the operations may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
It should also be noted that at least some of the operations may be implemented using software instructions stored on a computer useable storage medium for execution by a computer. As an example, an embodiment of a computer program product includes a computer useable storage medium to store a computer readable program that, when executed on a computer, causes the computer to perform operations, as described herein.
Furthermore, embodiments of at least portions of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include a compact disk with read only memory (CD-ROM), a compact disk with read/write (CD-R/W), and a digital video disk (DVD).
In an embodiment, at least one of the functionalities of the traffic controller 108 of
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.
This application is entitled to the benefit of provisional U.S. patent application Ser. No. 61/389,702, filed Oct. 4, 2010.
Number | Date | Country | |
---|---|---|---|
61389702 | Oct 2010 | US |