Content caching devices or web-caches that cache frequently viewed web pages, pictures and multi-media content are deployed in the internet for reducing transport latencies, and reducing download times for frequently accessed content across the internet. Similarly, web-proxies/caches are also deployed at enterprise sites to cache frequently used Internet web-content within the enterprise network.
Caching devices 10 can also be used in mobile wireless network, for example, a 3G/UMTS network 20. The wireless network includes a Radio Access Network (RAN) 21 and a Core Network (CN) 22. A typical wireless network is shown in
The GGSN 3 (Gateway GPRS Service Node) connects the mobile wireless network to the IP Core Network. The Gateway GPRS Support Node (GGSN) 3 is a main component of the GPRS (General Packet Radio Service) network. The GGSN 3 is responsible for compatibility between the GPRS network and external packet switched networks, such as the Internet 1 and X.25 networks.
When viewed from an external network, the GGSN 3 appears as a router to a sub-network, because the GGSN 3 hides the GPRS infrastructure from the external network. When the GGSN 3 receives data addressed to a specific user, it checks if the user is active. If it is, the GGSN 3 forwards the data to the SGSN 4 serving the mobile user. However if the mobile user is inactive, the data are discarded, or a paging procedure is initiated to locate and notify the mobile device. For data originated within the GPRS network, the GGSN 3 routes these mobile-originated packets to the correct external network.
The GGSN 3 converts the GPRS packets coming from the SGSN 4 into the appropriate packet data protocol (PDP) format (e.g., IP or X.25) and sends them out on the corresponding packet data network. For incoming packets, the PDP addresses are converted to the GSM address of the destination user. The readdressed packets are then sent to the responsible SGSN 4. In order to accomplish this function, the GGSN 3 stores the current SGSN address of the user and its associated profile in its location register. The GGSN 3 is responsible for IP address assignment and is the default router for the connected user equipment (UE) 7. The GGSN 3 also performs authentication functions.
A Serving GPRS Support Node (SGSN) 4 is responsible for the delivery of data packets from and to the mobile stations within its geographical service area. Its tasks include packet routing and transfer, mobility management (attach/detach and location management), logical link management, and authentication and charging functions. The location register of the SGSN 4 stores location information and user profiles of all GPRS users registered with this SGSN 4.
The Radio Network Controller (or RNC) 5 is a governing element in the radio access network and is responsible for controlling the Node Bs 6 that are connected to it. The RNC 5 carries out radio resource management, some of the mobility management functions and is the point where encryption is done before user data is sent to and from the mobile. The RNC 5 connects to the SGSN (Serving GPRS Support Node) 4 in the Packet Switched Core Network.
Node B 6 is a term used to denote the base transceiver station (BTS) in the UMTS/3GPP Architecture. As in all cellular systems, such as GSM, Node B (or BTS) 6 contains radio frequency transmitter(s) and the receiver(s) used to communicate directly with the user equipment, which move freely around it.
The user equipment (UE) 7 comprises all user equipment, including handsets, smart phones and computing equipment.
Radio Access Networks (RANs), such as in GSM/GPRS, 3G/UMTS/HSDPA/HSUPA, LTE, CDMA network etc., have their own private networks (PLMN) and interconnect to the Internet/IP networks through gateway devices (GGSN in GSM/GPRS, 3G/UMTS/HSDPA/HSUPA, and PDSN in CDMA). Content caches 10 are typically deployed outside of the RAN as shown in
One reason for this is, while the user application payloads are TCP/IP, those payloads are embedded within Radio Access Network Protocols that are specific to the specific RAN. Thus, within the RAN, application payloads are not directly visible for performing content-aware caching and other optimizations. The RAN network 20 is deployed as a transport network that transports user IP traffic (Bearer IP traffic) using either ATM or IP transports. Regardless of the type of transport, the RAN network transports the user payloads in per user/per service tunnels. Such tunnels are terminated within the PDSN or GGSN 3, which forwards the bearer IP traffic to the public IP network using IP forwarding rules. Thus in the prior art deployments, the RAN network is content un-aware.
Mobile operators maintain and charge subscribers based on content usage (for example, based on bytes downloaded per month), and maintain usage quotas per plan periods (per day, week, month etc.). Such charging policies also include pre-paid charging, post paid-charging etc. Such accounting and charging is typically done at the interface between the mobile network and public network, for example in the GGSN 3 as shown in
Co-pending Patent Publication No. 2010/0034089, entitled “Content Caching in the Radio Access Network”, filed Aug. 6, 2009, the contents of which are incorporated by reference, proposes deploying Content Aware Ran Caches in the Radio Access Network at one or more locations.
However, it would be beneficial if there were additional features that may be implemented using a cache in the RAN.
The current invention identifies methods and procedures for classifying devices by mapping device categories, managing the caches as multiple classes (termed “colored caches” where each color maps to a set of device types), optimizing delivery for certain device classes (for example, iPhones or Droid smartphones) to improve the mobile user's Quality Of Experience (QOE).
Another aspect of the current invention uses the locally derived device class and content type information to select the interface/network domain, and/or local CDN device (Content Delivery Network Device) when the deployment configuration has multiple core network interfaces as shown in
A third aspect of the current invention is to add information learned from interpreting specific UE's control plane, user plane protocols and service plane interactions with operator network devices, such as HLR, PCRF, RADIUS, and SPR, using header enrichment (for example, through additional headers in HTTP requests), while forwarding the selected requests to locally connected CDN devices, or to other external devices through the traffic offload interface, or by re-encapsulating the user requests along with additional headers into the associated user plane protocol and then forwarding to the Core Network.
Additionally, many web-sites re-direct mobile client requests for top page requests to different content (for example to WAP pages), when they recognize the requesting device is a feature phone or smart-phone with a smaller screen-size etc, so that the page being loaded is more readable from mobile handsets. Many websites make the top pages of the site as non-cacheable (so that transit devices do not cache and serve the pages from cache), and redirect the requests to WAP-content-gateway when they recognize the request is from a mobile handset. For making the content cache-friendly so that caching device could cache and serve the correct content (for example WAP-content-gateway for feature phones, and regular pages for full PCs, and smart phones), some web-sites use “vary” and user agent headers, indicating that this content should be served by an intermediate cache only if the User Agent header in the client http-request matches with the user agent header when the response was sent by the web-site. Some web sites do not mark the top page as non-cacheable, and also do not use the “vary header” in the http response as an indication to the transit cache. However, they send a HTTP-Response with a Status code indicating redirect to client request when they recognize the request is from a mobile handset. Therefore, this type of web-site sends different page content to a full featured device (such as laptop computer), as compared to a mobile handset (due to re-directing to WAP-Content-gateway). Furthermore, the response headers do not indicate that the data should not be cached, and the data is not marked with a “vary-header”. In this scenario, it will be unknown to the transit cache to which client requests this cached content should be served, and to which client requests it should be re-directed to WAP-content-gateway. The current invention proposes that the caching device identify such sites that have these characteristics (i.e. sites that cause redirects to WAP-content-gateway, mark the content as cacheable, but do not use vary-header with user agent field), and to explicitly mark the page in local cache to denote that the data should only be served for certain client device types only.
As stated above, FIGS. 3,4 and 5 illustrate possible locations where a RAN-C 8 may be deployed within the RAN. When these RAN Caches are deployed, the devices are used to cache frequently used content, examine the incoming client requests and, if the requested object (such as, for example, a URL request within HTTP GET or PUT Requests) is found locally in the cache, the RAN Cache 9 delivers content to the client device 7. The device may further identify the delivered content based on the User and Device attributes, such as device identification (International Mobile Equipment Identifier or device type) obtained by interpreting a plurality of control plane and user plane protocols, such as RANAP in UMTS/3G network when placed on the IuPS interface as in
In another embodiment, a dedicated hardware device having embedded instructions or state machines may be used to perform the functions described. Throughout this disclosure, the terms “control logic” and “processing unit” are used interchangeably to designate an entity adapted to perform the set of functions described.
The RANC 8 also contains software capable of performing the functions described herein. The software may be written in any suitable programming language and the choice is not limited by this disclosure. Additionally, all applications and software described herein are computer executable instructions that are contained on a computer-readable media. For example, the software and applications may be stored in a read only memory, a rewritable memory, or within an embedded processing unit. The particular computer on which this software executes is application dependent and not limited by the present invention.
While the Figures show the RAN-C as a separate device, it may also become part of an existing component. For example, it may be embedded in an existing component, such as the RNC or SGSN and provide the functionality described above.
As stated above, co-pending U.S Patent Publication No. 2010/0034089 describes the operation of a content aware RAN-Cache by intercepting the Control Plane (CP) and User Plane (UP) Protocols in one or more standard interface protocols such as IuPS protocol interface in 3G/UMTS network. As described in that Publication, the caching device intercepts the UP protocol packets, extracts the user IP traffic from the encapsulated tunnels, identifies application protocols such as HTTP, determines if the requested content is already in cache, and delivers the requested objects to the client if those objects are in its local cache (provided that these objects are cacheable and within the limits of the expiration timer as defined by the application protocol).
The present invention describes the system and method needed to capture the device type, and/or application type in the specific device and use this information in a variety of ways. Examples include controlling which version of a web page (WAP or standard) is delivered to the device, or to creating a partition within the cache specific for a particular class or classes of device, or performing device and/or application specific delivery optimizations based on the device and/or application class.
The RAN-C 8 intercepts and interprets the control protocols, such as RANAP in a UMTS Network, when a new UE session is established. Based on this, the RAN-C 8 device extracts the device identity, from either the IMEI, IMEI-SV or MEI fields, as shown in step 210. The RAN-C then searches the TAC database to determine the UE characteristics, such as handset brand, model and other parameters, as shown in step 220. In step 230, the RAN-C 8 may then map the brand and model number to device classes, such as iPhone, Droid, other-SmartPhone, feature phone, laptop interconnect card, etc. The list and number of device classes is arbitrary, based on the device-class based differentiation supported by RAN-C. For example, in one embodiment, the RAN-C 8 may support two cache domains, one for laptop interconnect cards, and another for handset devices. Thus, in this embodiment, simply categorizing brand and model numbers as handsets and laptop interconnect cards may be sufficient.
In other embodiments, to improve QOE for specific products, such as iPhones, the RAN-C 8 may maintain an additional cache domain and service differentiation for iPhones. In this embodiment, the RAN-C may map the brand and model numbers into three device classes. In other embodiments, the RAN-C 8 may further distinguish other devices, such as Droids, iPads, tablets, and other user equipment, based on device brand and model. Such mapping is contained in a database or lookup table within the RAN-C 8, and not present in externally available databases that contains IMEI information.
The device identity (IMEI/MEI) information described in step 210 above may not always be available. This check is performed in step 225. There are various scenarios in which the device identity information may not be available, including:
In such cases, the RAN-C 8 may approximate the device class from other attributes such as UE Class Mark values, as shown in step 240. UE Class Mark values are described in the 3GPP specification, and are known to those skilled in the art.
In some embodiments, the device class information cannot be identified from the control plane using any of the methods described above. In this case, the RAN-C 8 may use information from the user plane to determine the device type, as shown in
Similar to the user agent header in the HTTP application, other applications may also convey their versions or variations to specific devices. For example, a video player application may convey its version, the device it is running on and other information using client application fields in the corresponding protocols, such as RTMP and HTTP. The RAN-C that is intercepting Control Plane and User Plane Protocols decodes the control plane and some application protocols to determine the method of classifying the user device and/or user application making the request, as shown in step 254.
Using the steps shown in
Content caching mechanisms use caching and replacement policies for cacheable objects based on frequency of use, time of use, and other parameters measured for a number of users. In mobile networks, a small number of users, typically laptop users with high speed 3G/HSDPA/HSDPA+ dongles consume very large amounts of network bandwidth. Such large, frequent accesses by a small number of users populate the caches heavily with objects/content accessed by those users. Partitioning the cache per device class overcomes this problem by preserving the content accessed from those classes of devices. Also, devices, such as iPhones, may have customized applications for specific site/content type accesses (for example, the iPhone YouTube application). When new device types and applications are launched, maintaining and managing delivery based on device class improves the QOE for that device class.
In some embodiments, the device class may be specific to the device or type of device. In other embodiments, the device class may be further categorized according to the application being executed on the device. For example, it may be possible that different classes exist for an iPhone running a YouTube application and an iPhone running a Safari browser application. Thus, the term, device class may include attributes of the device itself, or attributes related to the applications being executed on the device.
For maintaining caches per device class as described above, the device class identified in
The determination of device classes also allows other functionality to be implemented in the RAN. For example, the 3GPP Standards Organization is currently defining Selective IP Traffic offload by which portion of mobile traffic is off-loaded from mobile core-network to an alternate interface that connects to an alternate IP Network. This is described in 3GPP 23.829 V1.1.0, Technical Report, Local IP Access and Selected IP Traffic Offload (Release 10), the contents of which are incorporated herein by reference in their entirety.
The present invention extends the offload mechanism in a content caching device (RAN-C), by directing all accesses from certain device classes to the offload interface, or by using the offload interface for cache-miss operations based on device class, as shown in step 270. The default interface for data access through the core is the corresponding mobile core network as described in Co-pending Patent Publication No. 2010/0034089. In one embodiment, the RAN-C 8 may over-ride the default for certain device classes. In one example, all user sessions from a class of devices, such as laptop interconnect cards, could be re-directed to Traffic Offload Interface, thereby bypassing the content caching/proxy entirely. In another embodiment, any cache-miss operations from a class of devices, such as laptops, could be directed to the offload interface. In another embodiment, only HTTP traffic for laptop interconnect cards is re-directed to the Traffic Offload Interface. The choice of which traffic to offload may be based on device class, the type of content requested, and the result of the cache operation.
In another embodiment of the current invention, traffic is forwarded from selected device classes to a locally connected CDN (Content Delivery Network) device 15, as shown in step 280. A CDN device 15 operates with user IP packets and does not process mobile user plane or control plane protocols. The RAN-C 8, as deployed in any of the wireless mobile networks shown in
In the prior art technologies as shown in
In a further embodiment, the caching control and forwarding selection decisions described in steps 260, 270 and 280, which are based on device class, could be further enhanced. One such enhancement is the inclusion of the user's service plan in the selection. This may be achieved by the RAN-C by registering with the Operator's Service plane, such as a RADIUS server, identifying the user's service plan type, and storing the plan-type along with the UE device type when user plane session is established. Subsequently, when user plane packets are received from UE on the corresponding user plane session, RAN-C 8 performs caching and destination selection functions based on the limitations of the service plan. For example, a higher-end plan may utilize the cache, the traffic offload interface or the CDN to speed access to users who pay more for their service. Conversely, lower cost plans may not be cached, or may never be offloaded.
The content delivery and core-interface selection described in steps 260, 270 and 280 may be for the entire user plane traffic (TCP, UDP, DNS, HTTP etc.), or only portions of the traffic, such as HTTP only. In other words, the RAN-C 8 may forward only HTTP traffic for iPhones to the local CDN. In another embodiment, the RAN-C 8 may forward only DNS and HTTP traffic to the local CDN.
The above description describes implementing certain functionality based on the type of device that the user has. However, the above described functionality can also be implemented based on other criteria. For example, the use of separate cache partitions, traffic offload, and CDN delivery may be based solely on the user's service plan. In some embodiments, those users having a premium plan may have additional functionality.
In another embodiment, these features may be based on the client application being used by the user. For example, certain applications may have a different monetization scheme than the traditional “per byte downloaded” plan. One such example usage is that the RAN-C may detect that an application is a DRM compliant video player, such as a NetFlix Player. The operator may have a different monetization scheme for this application. For example, there may be a fixed fee per movie, regardless of byte count. Therefore, the RAN-C may make the decision to offload the traffic for this tunnel, as it is not important to the operator that the bytes be counted as they pass through the core network. Other applications may also have similar monetization schemes that make them ideal candidates to be offloaded to the TOI interface rather than forwarding through the SGSN/GGSN. Similarly, these applications may be likely candidates for caching, as the downloaded byte count is not important.
In another embodiment of the current invention, the locally determined information such as device class, UE capabilities, or location information inferred by interpreting per UE control plane protocols, is propagated by using extension headers in the user plane protocols, such as HTTP. The location information inferred by the RAN-C by interpreting the per user Control Plane traffic need to be distinguished by the GEO codes information that certain mobile devices with GPS propagate to the applications. The location information inferred by the RAN-C is not dependent on the mobile device capabilities (such as GPS). The placement of RAN-C in wireless mobile network in the RAN inherently makes it local to the RAN that it is placed. Such location information is coarse, for example, a city area or group of BTS locations covered by the RNC. Additionally, by interpreting the “Initial UE Message” (RANAP protocol) in the control plane, RAN-C identifies the Node-B/eNodeB that the mobile device is associated with. From this message, RAN-C infers the sector or location area or Service Area (LAI/SAI) that the mobile device is located. Thus, this information elements are less granular than the GEO co-ordinates, but more granular than centrally located GGSNs. Additionally, the present invention identifies that while the mobile device or an application running on the mobile device may obtain GEO-Coordinates, that information is not directly available to remote applications. Furthermore, enabling GPS hardware to get GEO-code information consumes significant handset battery power. Thus, the present invention uses the UE's registration with the network (Sector) as coarse location information.
In this embodiment, the UE requests identified by de-encapsulating the user plane protocol, are enhanced with extension headers and forwarded to the default CN interface after re-encapsulating to the original protocols, or forwarded to the local CDN device, or to the offload network as in
While the concept of header enrichment to http request headers, and adding extension headers to other protocols may exist in the prior art, the present invention does more than simply add an extension header. Rather, the present invention extracts the information from other mobile control plane, user plane, and service plane protocols, converts to a class or other short attribute, and adds locally known/configured information such as the location of the RAN-C (for example the street address configured in RAN-C) or by mapping Sector ID, Location Area ID (LAI), or Service Area ID (SAI), or Tracking Area ID (TAI) of a mobile user to approximate geographical location.
The nature of the locally included extension headers is dependent on the corresponding application protocol they are added to. For example, for http requests, the information is added using header enrichment. For DNS requests, the information is added using vendor unique extensions.
The information added by RAN-C may include: mobile device class, handset brand, and model, RAN-C location, inferred geographical location of the mobile user, Radio Access Technology type, Subscriber Service plan type, inferred QOS parameters to the user device, inferred priority of the user request, and other characteristics.
The added information described above assists the CDN in tailoring the responses with most relevant content, per the current mobile device, Radio Conditions, type of user, service plan, and location.
The present disclosure is not to be limited in scope by the specific embodiments described herein. Indeed, other various embodiments of and modifications to the present disclosure, in addition to those described herein, will be apparent to those of ordinary skill in the art from the foregoing description and accompanying drawings. Thus, such other embodiments and modifications are intended to fall within the scope of the present disclosure. Further, although the present disclosure has been described herein in the context of a particular implementation in a particular environment for a particular purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto and that the present disclosure may be beneficially implemented in any number of environments for any number of purposes.
This application claims priority of U.S. Provisional Patent Application 61/364,560, filed Jul. 15, 2010, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61364560 | Jul 2010 | US |