The exponential growth of the Internet and World Wide Web required substantially scalable data delivery solutions for ever increasing cable, DSL and other wireline broadband networks. Mirroring or replication of some sites at different geographical locations was not adequate to meet the exponential growth of data traffic. Content Delivery Networks (CDN) emerged to address the scalability and performance problems posed by ever-increasing broadband subscribers and traffic. CDNs use a variety of techniques including web caching to reduce bandwidth requirements, reduce server load, and improve the user response times for content stored in the cache. Specifically, web caching refers to the storing of copies of web documents such as HTML pages, video, image and other multimedia objects in a distributed cache; subsequent requests for web content may be satisfied from the cache if certain conditions are met. CDNs achieve reduced round trip times for interactive web-browsing sessions by bringing content closer to the user. CDNs may also pre-fetch and store content in their caches before the actual request is made in order to increase the cache hit rate
Some wireline providers also deploy web caches in their networks in order to reduce their Internet bandwidth needs and enhance the web browsing experience for their subscribers as shown in
Content caching devices, or web-caches, that cache frequently viewed web pages, pictures and multi-media content are traditionally deployed in the internet for reducing transport latencies, and reducing download times for heavily 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. Such devices are currently used within mobile wireless networks, with certain limitations.
a shows the network elements in an exemplary wireline network, as is commonly found today. Multiple user devices 7 attach to a local network medium, such as DSL, cable, or other internet connection. The local DSL or cable backhaul 8 connects to the metro network 9, such as through a DSLAM (DSL Access Multiplexer) or CMTS (Cable Modem Terminal System) 11. Routers 2 are used to move packets through the internet 12 in accordance with their source and destination addresses. Servers host websites that contain the original content for those websites. However, in an effort to save time and network traffic, web caches 1 or other similar devices are used to store replicas of this original content. Thus, throughout the internet, there may be one or more web caches 1 that provide the requested data without having to burden server 14. In large metro areas, it is also common to introduce cache servers 1 in the metro network 9.
Caching devices can also be used in mobile wireless network, for example, a 3G/UMTS network 20. The wireless network includes a Radio Access Network (RAN) and a Core Network (CN). 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 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 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.
Therefore, it would be beneficial if caching devices could be made to operate within the RAN. This would allow more efficient access to content, minimize internet traffic and transfer times. Furthermore, network elements in the RAN are more localized, with lower capacity (throughput and simultaneous users). This facilitates insertion of a lower capacity caching and content-aware optimization device. Such a network would better scale as it facilitates distributed deployment. A method and system to allow caching within a RAN would be advantageous.
The present invention defines methods to intercept traffic at standard interface points as defined by Cellular/Wireless networks (GSM/GPRS, 3G/UMTS/HSDPA/HSUPA, CDMA, WIMAX, LTE), emulate the respective protocols on either side of the interception point, extract user/application payloads within the intercepted packets, perform optimizations, and re-encapsulate with the same protocol, and deliver the content transparently. The optimizations include but are not limited to Content Caching, prediction & pre-fetching of frequently used content, performance of content-aware transport optimizations (TCP, UDP, RTP, HTTP, HTML etc.) for reducing back-haul bandwidth, and improvement of user experience. An additional embodiment of the current invention includes injecting opportunistic content (location based, profile based, past history based, or advertisement content) based on the information derived while monitoring control plane protocols. The methods outlined remove interface protocol layers on the intercepted interface to facilitate caching and content delivery optimizations, such as deep-packet inspection of user application packets, collection of Business Intelligence, enforcement of operator defined policy controls to protect operator's RAN network, validation of user's access privileges, and prevention of access to unauthorized content (for example parental controls).
In order to facilitate a fuller understanding of the present disclosure, reference is now made to the accompanying drawings, in which like features are referenced with like numerals. These figures should not be construed as limiting the present disclosure, but are intended to be exemplary only.
a & 1b illustrate deployments of Content Caches in the Wireline Network and Mobile Operator Networks, respectively, in the prior art;
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 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.
The Serving Gateway (SG) routes and forwards user data packets, while also acting as the mobility anchor for the user plane during inter-eNodeB handovers and as the anchor for mobility between LTE and other 3GPP technologies (terminating the S4 interface and relaying the traffic between 2G/3G systems and PDN-GW). It manages and stores UE contexts, e.g. parameters of the IP bearer service, network internal routing information.
Thus, the MME serves as a control plane device, while the SG is a user plane device. While these entities are physical separate, the interface to the MME is S1-Control plane, while the interface to the SG is S1-user plane. In the embodiment where they are physically together, the interface is simply S1.
The PDN Gateway (PDN-GW) 114 provides connectivity from the UE 107 to external packet data networks by being the point of exit and entry of traffic for the UE 107. A UE 107 may have simultaneous connectivity with more than one PDN-GW 114 for accessing multiple PDNs. The PDN-GW 114 performs policy enforcement, packet filtering for each user, charging support, lawful Interception and packet screening. Another key role of the PDN-GW is to act as the anchor for mobility between 3GPP and non-3GPP technologies such as WiMAX and 3GPP2 (CDMA 1X and EvDO).
In such an environment, the RANC 112 can be inserted between the eNode B 106 and the MME 113, using the S1 interface 115 at both ends. Alternatively, RANC 112 may be inserted between the MME/Serving Gateway and the PDN-GW 114 using the S5 interface.
In the case where the MME and SG are separate, the RANC may logically be between the eNodeB and the MME in the control plane and between the eNodeB and the SG in the user plane, using the S1 protocol.
Having described the various locations within the RAN network where the RANC can be placed, a description of its operation now follows. While the protocol diagrams shown in
In operation, software operates at each level to parse the information required at that level. After the protocol information for that layer has been stripped off, the remainder of the packet is forwarded to the next higher protocol layer. This process continues until the packet has been fully decomposed. In the case of pass through traffic, the packet is then reconstructed by appending protocol information as the packet is passed down the layers. In other words, packet headers are reattached in the opposite order in which they are removed, such that the L1 information is the first to be removed on an incoming packet and the last to be appended on an outgoing packet.
The transport level proxy operation includes, but is not limited to, terminating the transport level connection, such as the TCP connection, extracting the application payload, and forwarding the application payload on a new TCP connection on the other interface. When forwarding the payload on the new connection, the payload is re-encapsulated using the same IuPS protocols on the 2nd interface.
The Application Proxy and Cache operation includes, but is not limited to, understanding the application protocol, such as HTTP, RTMP, FTP etc., understanding the object types such as HTML, video objects etc., performing application optimizations, content cache operations or both. In cache operations, the cache recognizes the object requested by the user and serves the content from local content cache rather than forwarding the request on the 2nd interface.
Further detailed description is now provided for the operation of the RANC. Reference is made to
First, in order to properly operate, the RANC must be logically invisible to the surrounding devices. This is accomplished by acting as a proxy device. The RANC intercepts the control protocol, such as IuB, IuPS or Gn, and functions as a proxy. In other words, in the embodiment shown in
By snooping the packets, the RANC 112 identifies when the data path tunnel is established (i.e. PDP context is attached) and determines the associated subscriber identity. The RANC 112 may parse the Radio Access Bearer (RAB) establishment messages within in RANAP protocol to identify the GTU-Tunnel ID, and the corresponding UE session. This process establishes a context between the data-path tunnel (GTP-U tunnel) and the associated user.
Alternatively, rather than learning the context from the IuPS control path, the RANC 112 monitors new user plane tunnels (GTP-U tunnels), and corresponding IP addresses (within the GTP-U tunnel). When a new GTP-U tunnel is recognized, it extracts the user IP address within the tunnel and queries an external service plane network element such as a RADIUS server to map the IP address to a user identification and the corresponding user profile. Information such as whether the user is pre-paid or post-paid, and the rate plan (unlimited or limited plan, type of data services authorized etc.) may be obtained in this manner. Although this requires access to the RADIUS server, it minimizes the amount of context that the RANC 112 must parse from the transmitted packets.
UE Information, such as that parsed by snooping RAB establishment messages, or by using the RADIUS server, as described above, may also be used in a number of ways. For example, using these techniques, the RANC may obtain User Profile information such as Rate Plan, User Priority, level of authorization (general internet, operator specific on-deck content). Knowing this information, the RANC may then prioritize traffic while delivering data to the RNC.
For example, a user's rate plan may include a quota limit per month (Mbytes/Gbytes per month), and Fair-usage or best effort service beyond the quota limit, etc. When a user session is established, by monitoring the control plane protocols, the RANC determines that the specific UE is subject to a Fair-Usage policy. Thereafter, when congestion is detected, or data volume to the RNC increases and approaches peak, the RANC limits traffic to the UEs subject to the Fair-Use policy. Methods to limiting traffic include, not delivering from local Cache and/or turning off optimizations for these User Sessions.
In another example, an operator offers on-deck content as an additional service/rate plan. During session establishment, the RANC determines if a specific UE has subscribed to on-deck content, and delivers any cached content from the on-deck sites, only if the user subscribed to such a rate plan.
Information parsed by monitoring the RANAP protocol can also serve other purposes. For example, by monitoring RANAP protocol on the IuPS interface (see
From monitoring RANAP messages, the RANC may also identify the unique International Mobile Equipment Identifier (IMEI) or Mobile Equipment Identifier (MEI), and the type of device (such as iPhone®, BlackBerry®, laptop computer, etc.). In addition to or alternatively, the RANC may identify the User Agent type such as the type of web-browser (Internet Explorer, Safari, FireFox etc.), the type of OS (Windows XP, MAC OS, etc.), from HTTP Requests within the user plane GTP-U packets received from RNC.
The device type determined above can be used to format or process the packets. For example, while delivering cached or un-cached (cache-miss) content retrieved from internet servers, the RANC may use the UE type information to perform device specific content adaptation. Such adaptations include but are not limited to, formatting to the screen size, and selecting an alternate file with different resolution. In one particular embodiment, a website may offer a video in two or more resolutions. Based on UE type information, which the RANC determined by decapsulating and decoding RANAP messages, the RANC may optimize the user experience by selecting the resolution best supported by the UE device.
As described above, the RANC can parse RANAP messages. By monitoring the Radio Access Bearer (RAB) Assignment Requests within the RANAP messages, the RANC may identify the QOS parameters to be used for a specific UE. Example QOS parameters include, but are not limited to, type of service, Maximum Bit Rate (MBR), Guaranteed Bit Rate (GBR), and Traffic Handling Priority. By knowing these QOS parameters, the RANC may perform content optimizations, such as prioritizing Audio streams while delivering multi-media content. One example showing the application of QOS parameters by the RANC follows. Assume that the user establishes a RAB, and the MBR parameter in the RAB Assignment Request message specifies 100 Kbps, and the user selects a High Definition streaming video that requires 300 Kbps. The user's selection request is received through GTP-U tunnel corresponding to the specific RAB by RANC. The RANC first determines if the multi-media object is in its cache, or whether it needs to be fetched from remote server. In either case, the RANC processes the protocol headers, and application specific content headers (such as FLV headers), recognizes the selected content requires 300 Kbps rate. Since the RANC is aware that the user device is only capable of supporting 199 Kbps, the RANC delivers only audio portion of the stream, thereby adhering to the MBR parameter.
An additional application of monitoring the control plane information is the identification of the location area to which the UE is attached. In some radio network deployments, the location area corresponds to the specific wireless sector. Since the RANC is intercepting all of the user plane traffic on the interface, with control plane correlation, it can identify the total traffic targeted to a particular sector. Based on the total identified traffic, the RANC may determine when a sector is nearing congestion. When sector congestion is detected, the RANC may attempt to reduce congestion by limiting the traffic sent to peak users, limiting multimedia streams, or controlling traffic to specific types of devices (for example to PC interface cards).
Using the UE data as described above, in conjunction with the QOS information, the RANC may prioritize the per User GTP-U traffic for the purpose of improving the quality of experience for a number of users. Such prioritizations include, but are not limited to, throttling peak users, and fair usage policy during periods of congestion. For example, the RANC may detect that one or more devices is creating the vast majority of the traffic, and throttling traffic to other devices. The RANC may use some algorithm to throttling back to offending devices.
Within each GTP-U tunnel, the RANC may further decode the IP-Packet type, IP-Protocol type (TCP, UDP), and SRC/DST Port numbers to identify the application protocol type (for example Web/HTTP traffic), RTP Traffic, FTP traffic, RTMP, Object type (for example html, flv, .mp4, .mp3 file types) etc. For each protocol-type, RANC may perform application specific decoding and optimizations. As explained above, for HTTP traffic, this may include the creation of a cache. For other protocols, for example for FTP traffic, the RANC may perform split TCP operations, by separating the RANC to UE TCP connection from the RANC to internet server TCP connection. The FTP object may also be cached by the RANC by using a caching and replacement policies for FTP objects. In another example, for live streaming with RTP, the RANC maintains a local transit buffer and satisfy UE retransmission requests from its local buffer rather than forwarding retransmission requests to the internet server.
For each Subscriber/GTP-Tunnel, the RANC identifies TCP packets and performs TCP Proxy operations. The TCP proxy operations include, but are not limited to, maintenance of separate TCP connections to the UEs, while establishing TCP connections as needed with servers towards the Core Network, maintenance of transit buffer, and local retransmissions to the UEs. While some TCP proxy operations may be known in prior art, the RANC is unique in that, in order to provide these services, it must decapsulate and remove other interface protocols. Other devices that perform TCP split or proxy operations do so while transmitting IP packets. However, as seen in
As can be seen by the examples above, monitoring of the RANAP protocol allows the RANC to determine specific actions being requested by the devices on either side of the RANC. Based on this knowledge, the RANC can augment or modify the packets being transmitted so as to better customize them for the specific UE. In another embodiment, the RANC improves response time and lowers overall network by caching some frequently used content.
The RANC may maintain a cache of frequently accessed web pages, video clips, FTP files etc. Such content caching may be common across all users—thus cache replacement and refill is independent of number of users. Thus, this reduces latency and improves quality of experience for users that access the top content. Alternatively, caches can be segmented such that each user's content occupies a percentage of the entire cache. Mechanisms to determine which content should be stored in the cache in the RANC and how to segment the cache currently exist and are known to those of ordinary skill in the art.
The RANC may also maintain a history of frequently accessed content for each user. While caching and replacing content, the RANC may retain a minimum percentage of content for each user. Thus, the cache may improve the total quality of experience for large set of users.
In the User Plane traffic received from RNC, the RANC may extract bearer IP packets within each per user GTP-U tunnel, identify protocol type, type of information requested (for example URL information for HTTP traffic), and compare against the locally cached content. If the requested URL is found in the cache, the RANC returns responses, thus delivering the requested information. While returning these responses, the RANC emulates the SGSN and GGSN so as to be indistinguishable to the RNC. Thus, the RANC creates bearer IP packets and sends them in the corresponding GTP-U tunnel. Similarly for FTP traffic, the RANC emulates the FTP server while returning requested file from the local cache. If the user requested information is not found in the cache, it reconstructs the request emulating an RNC/IuPS processing and forwards to the Core Network (SGSN/GGSN).
The RANC may adjust the sequence numbers within the per user service flow (GTP-U) packets if the sequence number option is used on the IuPS interface. For example, suppose the RANC delivers a cached object from its local cache, which requires transferring 100 GTP-U packets to the RNC. Each GTP-U packet must have a unique sequence number and therefore, the corresponding sequence numbers in the GTP-U header would be incremented. Since this object is not fetched through SGSN, sequence numbers used between the RANC-RNC and the SGSN-RNC now differ by 100. To compensate for this difference, the RANC may adjust the GTP-U sequence numbers for subsequent packets that are forwarded from the SGSN to the RNC for the specific GTP-U tunnel.
For protocols in the bearer IP plane that the RANC does not provide performance assistance or caching, it receives the packets from one interface (RNC or SGSN) and forwards to the other interface (SGSN or RNC) after re-adjusting the GTP-U sequence numbers, if necessary.
Another aspect of the current invention is to opportunistically inject content in the User plane to a specific UE, based on information learned from the control plane (such as location area, device type etc., that described earlier), and the content-aware application processing in the user plane. Such opportunistic content could be contextual, based on the user's access history, location area, advertisement content, etc. For example, while processing http requests, the RANC processes both http requests and http-responses. While processing the http responses, the RANC identifies the content type (such as html pages). To inject opportunistic content, the RANC may modify the html page to include additional URL links, additional html content, or Java scripts, etc. Thus, when the UE client receives the page, the page contains the original page from origin server, as well as RANC determined content. While methods of modifying web-page contents are known in prior art, the present invention, is able to determine this additional content based on information derived from control and user planes after decapsulating the interface protocols.
The placement of the RANC in the network may enable additional functionality. In one embodiment, the RANC is deployed between the Cell Station (NodeB, BTS) and the Cell Station Controller (RNC, BSC, or ASN Gateway in WiMax), as shown in
In a specific embodiment, the RANC may be configured to intercept the BTS< >RNC protocols (IuB Interface protocols), as shown in
While monitoring the CQI as described above, the RANC may adjust the TCP congestion window for a specific TCP session to the UE. The TCP congestion window is a measure of the number of bytes that can be outstanding at a particular time. This adjustment may be to achieve a plurality of objectives, such as but not limited to, achievement of maximum throughput to the UE (across traffic for all flows to the specific UE), reduction of packets in flight across all flows to the UE thereby reducing response times for new user inputs, reduction of congestion at the RNC, and optimal throughput to all users while maintaining fairness to active users.
Another aspect of the current invention is TCP optimizations in the user IP traffic of each UE based on Over the Air-Bandwidth (OTA-BW) and Round Trip Time (RTT) for TCP Connections between the RANC and UE. In the embodiment above, the RANC obtains OTA-BW from CQI when placed between the BTS and the RNC. Alternatively, the RANC may obtain OTA-BW information by explicitly requesting such information from either the UE or the RNC. In another embodiment, the RANC determines OTA-BW and RTT information by monitoring recent traffic to the UE or by explicitly sending protocol level or application level PING to the UE. Based on the estimate of the OTA-BW, and the RTT, the RANC adjusts the initial TCP congestion window for maximal system throughput. Adjusting the TCP congestion window based on throughput and RTT has been done in the prior art, however, the RANC is unique in the way that it acquires OTA-BW and RTT information.
Mobility is one important aspect of wireless access networks, such as 3G, LTE, CDMA and WIMAX. Since the subscriber handset or laptop may move from a cell coverage area served by one cell site (BTS or NodeB) to another cell coverage area, the RANC must address mobility issues, depending on its location within the network (i.e. which interface it is intercepting). Thus, if content to a specific mobile device is delivered from a RANC in one location, when the mobile device moves to a different location, the context of previous content delivery and any associated transfer state would have to be transferred from the previously accessed RANC to the RANC in the new coverage area. The invention outlines methods to continue active traffic through RANC in the new coverage area and transfer context between the 2 RANCs in a mobile wireless environment.
For supporting mobility, each RANC communicates with its neighboring RANCs. Each RANC maintains the identification of RNC that it is connected to, and the list of RANCs and the RNCs that they connect to. While monitoring IuPS control protocol as described earlier, Source RANC 112, which connects to Source RNC 105, recognizes a relocation request and the identification of the target RNC. It determines the Target RANC 112a that connects to target RNC 105a and initiates a context transfer with the target RANC. The Source RANC handles relocation of a UE for which it is performing content aware operations to the Target RANC by two basic operations. First, as shown in
This application is a continuation of U.S. patent application Ser. No. 13/339,629, filed Dec. 29, 2011, which is a continuation of U.S. patent application Ser. No. 12/536,537, filed Aug. 6, 2009 (now U.S. Pat. No. 8,111,630 issued Feb. 7, 2012), which claims priority of U.S. Provisional Patent Application Ser. No. 61/086,521, filed Aug. 6, 2008, the contents of which are herein incorporated by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
6105064 | Davis et al. | Aug 2000 | A |
6694349 | Zou | Feb 2004 | B1 |
6907501 | Tariq et al. | Jun 2005 | B2 |
6996085 | Travostino et al. | Feb 2006 | B2 |
7047312 | Aweya et al. | May 2006 | B1 |
7318100 | Demmer et al. | Jan 2008 | B2 |
7568071 | Kobayashi et al. | Jul 2009 | B2 |
7583594 | Zakrzewski | Sep 2009 | B2 |
7739383 | Short et al. | Jun 2010 | B1 |
7797369 | Glickman | Sep 2010 | B2 |
7965634 | Aoyanagi | Jun 2011 | B2 |
7991905 | Roussos et al. | Aug 2011 | B1 |
8111630 | Kovvali et al. | Feb 2012 | B2 |
8161158 | Curcio et al. | Apr 2012 | B2 |
8190674 | Narayanan et al. | May 2012 | B2 |
8208430 | Valmikam et al. | Jun 2012 | B2 |
8576744 | Kovvali et al. | Nov 2013 | B2 |
8717890 | Kovvali et al. | May 2014 | B2 |
8799480 | Kovvali et al. | Aug 2014 | B2 |
20030003919 | Beming et al. | Jan 2003 | A1 |
20030095526 | Froehlich et al. | May 2003 | A1 |
20030120805 | Couts et al. | Jun 2003 | A1 |
20030145038 | Bin Tariq et al. | Jul 2003 | A1 |
20030179720 | Cuny | Sep 2003 | A1 |
20030195977 | Liu et al. | Oct 2003 | A1 |
20040068571 | Ahmavaara | Apr 2004 | A1 |
20040098748 | Bo et al. | May 2004 | A1 |
20040214586 | Loganathan et al. | Oct 2004 | A1 |
20040223505 | Kim et al. | Nov 2004 | A1 |
20040240390 | Seckin | Dec 2004 | A1 |
20040264368 | Heiskari et al. | Dec 2004 | A1 |
20050033857 | Imiya | Feb 2005 | A1 |
20050097085 | Shen et al. | May 2005 | A1 |
20050117583 | Uchida et al. | Jun 2005 | A1 |
20050135428 | Hellgren | Jun 2005 | A1 |
20050136973 | Llamas et al. | Jun 2005 | A1 |
20050157646 | Addagatla et al. | Jul 2005 | A1 |
20060018294 | Kynaslahti et al. | Jan 2006 | A1 |
20060117139 | Kobayashi et al. | Jun 2006 | A1 |
20060159121 | Sakata et al. | Jul 2006 | A1 |
20060167975 | Chan et al. | Jul 2006 | A1 |
20060193289 | Ronneke et al. | Aug 2006 | A1 |
20060274688 | Maxwell et al. | Dec 2006 | A1 |
20070025301 | Petersson et al. | Feb 2007 | A1 |
20070113013 | Knoth | May 2007 | A1 |
20070143218 | Vasa | Jun 2007 | A1 |
20070174428 | Lev Ran et al. | Jul 2007 | A1 |
20070223379 | Sivakumar et al. | Sep 2007 | A1 |
20070230342 | Skog | Oct 2007 | A1 |
20070254671 | Liu | Nov 2007 | A1 |
20080026789 | Llamas et al. | Jan 2008 | A1 |
20080052366 | Olsen et al. | Feb 2008 | A1 |
20080081637 | Ishii et al. | Apr 2008 | A1 |
20080082753 | Licht et al. | Apr 2008 | A1 |
20080162713 | Bowra et al. | Jul 2008 | A1 |
20080186912 | Huomo | Aug 2008 | A1 |
20080191816 | Balachandran et al. | Aug 2008 | A1 |
20080195745 | Bowra et al. | Aug 2008 | A1 |
20080244095 | Vos et al. | Oct 2008 | A1 |
20080273533 | Deshpande | Nov 2008 | A1 |
20080320151 | McCanne et al. | Dec 2008 | A1 |
20090019178 | Melnyk et al. | Jan 2009 | A1 |
20090019229 | Morrow et al. | Jan 2009 | A1 |
20090024835 | Fertig et al. | Jan 2009 | A1 |
20090029644 | Sue et al. | Jan 2009 | A1 |
20090043906 | Hurst et al. | Feb 2009 | A1 |
20090156213 | Spinelli et al. | Jun 2009 | A1 |
20090196233 | Zhu et al. | Aug 2009 | A1 |
20090210904 | Baron et al. | Aug 2009 | A1 |
20090270098 | Gallagher et al. | Oct 2009 | A1 |
20090274161 | Liu | Nov 2009 | A1 |
20090274224 | Harris | Nov 2009 | A1 |
20090287842 | Plamondon | Nov 2009 | A1 |
20090291696 | Cortes et al. | Nov 2009 | A1 |
20100020685 | Short et al. | Jan 2010 | A1 |
20100023579 | Chapweske et al. | Jan 2010 | A1 |
20100034089 | Kovvali et al. | Feb 2010 | A1 |
20100057887 | Wang et al. | Mar 2010 | A1 |
20100067378 | Cohen et al. | Mar 2010 | A1 |
20100085962 | Issaeva et al. | Apr 2010 | A1 |
20100088369 | Sebastian et al. | Apr 2010 | A1 |
20100106770 | Taylor et al. | Apr 2010 | A1 |
20100158026 | Valmikam et al. | Jun 2010 | A1 |
20100161756 | Lewis et al. | Jun 2010 | A1 |
20100184421 | Lindqvist et al. | Jul 2010 | A1 |
20100195602 | Kovvali et al. | Aug 2010 | A1 |
20100205375 | Challener et al. | Aug 2010 | A1 |
20100215015 | Miao et al. | Aug 2010 | A1 |
20100272021 | Kopplin et al. | Oct 2010 | A1 |
20100291943 | Mihaly et al. | Nov 2010 | A1 |
20100325334 | Tsai et al. | Dec 2010 | A1 |
20110167170 | Kovvali et al. | Jul 2011 | A1 |
20110243553 | Russell | Oct 2011 | A1 |
20120077500 | Shaheen | Mar 2012 | A1 |
20120099533 | Kovvali et al. | Apr 2012 | A1 |
20120120788 | Hu | May 2012 | A1 |
20120184258 | Kovvali et al. | Jul 2012 | A1 |
20120191862 | Kovvali et al. | Jul 2012 | A1 |
20120220328 | Yu et al. | Aug 2012 | A1 |
20130246638 | Kovvali et al. | Sep 2013 | A1 |
Number | Date | Country |
---|---|---|
1754369 | Mar 2006 | CN |
2197187 | Jun 2010 | EP |
2001-518744 | Oct 2001 | JP |
2006-92341 | Apr 2006 | JP |
2006-155121 | Jun 2006 | JP |
2006-196008 | Jul 2006 | JP |
2007-536818 | Dec 2007 | JP |
9917499 | Apr 1999 | WO |
2005109825 | Nov 2005 | WO |
2008076073 | Jun 2008 | WO |
2010060438 | Jun 2010 | WO |
Entry |
---|
International Search Report/Written Opinion dated Oct. 6, 2009 in corresponding PCT application No. PCT/US2009/052871. |
International Preliminary Report on Patentability mailed Feb. 23, 2012 in corresponding PCT application No. PCT/US09/52871. |
Chinese Communication, with English translation, issued May 10, 2013 in corresponding Chinese patent application No. 200980139488.3. |
English translation of Japanese Communication, mailed Aug. 13, 2013 in corresponding Japanese patent application No. 2011-522222. |
International Search Report/Written Opinion dated Mar. 1, 2010 in co-pending PCT application No. PCT/US2009/069260. |
International Search Report/Written Opinion dated Mar. 12, 2010 in co-pending PCT application No. PCT/US10/22542. |
International Search Report/Written Opinion dated May 13, 2011 in co-pending PCT application No. PCT/US11/28477. |
International Search Report/Written Opinion mailed Feb. 29, 2012 in co-pending PCT application No. PCT/US2011/044156. |
International Search Report/Written Opinion mailed Feb. 29, 2012 in co-pending PCT application No. PCT/US2011/044361. |
RFC 1644-T/TCP—TCP Extensions for Translations Functional Specification, Jul. 1994—http://www.faqs.org/rfcs/rfc1644.html, 38 pages, R. Braden, et al. |
RFC 3135—Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations, Jun. 2001—http://www.faqs.org.rfcs/rfc3135.html, 48 pages, J. Border et al. |
RFC 2045—Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies; Nov. 1996—http://www.faqs.org/rfcs/rfc2045.html, 34 pages, N. Freed, et al. |
3GPP TR 23.829 V0.4.0 (Jan. 2010), Technical Report, “3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Local IP Access and Selected IP Traffic Offload; (Release 10)”, 29 pages, 3GPP Organizational Partners. |
Http header enrichment, http://news.thomasnet.com/fullstory/Software-optimizes-high-speed-wireless-data-networks-485934, “Software optimizes high-speed wireless data networks”, Jun. 26, 2006, 10 pages, Thomasnet News. |
Proceedings of the USENIX Symposium on Internet Technologies and Systems, Dec. 1997, “Cost-Aware WWW Proxy Caching Algorithms”, 15 pages, Cao, et al. |
The Book of Webmin . . . Or: How I Learned to Stop Worrying and Love UNIX, 2003, Chapter 12—Squid, 23 pages, Cooper. |
Proceedings of the 3rd International Workshop on Modeling Analysis and Simulation of Wireless and Mobil Systems (MSWIM '00), ACM, 2000, pp. 77-84, “Prefetching Policies for Energy Saving and Latency Reduction in a Wireless Broadcast Data Delivery System”, Grassi. |
Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, IEEE, 2007, “An Integrated Prefetching and Caching Scheme for Mobile Web Caching System”, p. 522-527, Jin, et al. |
Proceedings of the 22nd International Conference on Distributed Computing Systems (ICDCS '02), IEEE, 2002, “Power-Aware Prefetch in Mobile Environments”, 8 pages, Yin, et al. |
HP Labs Report No. HPL-1999-69, May 1999, pp. 1-17, “Enhancement and Validation of Squid's Cache Replacement Policy”, 18 pages, Dilley, et al. |
Office Action mailed Oct. 23, 2012 in co-pending U.S. Appl. No. 12/696,378. |
Final Rejection mailed Nov. 26, 2013 in co-pending U.S. Appl. No. 12/696,378. |
Notice of Allowance mailed Dec. 23, 2013 in co-pending U.S. Appl. No. 12/696,378. |
Office Action mailed Apr. 30, 2013 in co-pending U.S. Appl. No. 13/048,378. |
Final Rejection mailed Oct. 29, 2013 in co-pending U.S. Appl. No. 13/048,378. |
Office Action—Restriction—mailed Dec. 26, 2013 in co-pending U.S. Appl. No. 13/183,777. |
Office Action mailed Apr. 12, 2013 in co-pending U.S. Appl. No. 13/185,066. |
Final Rejection mailed Nov. 18, 2013 in co-pending U.S. Appl. No. 13/185,066. |
Office Action mailed Oct. 31, 2014 in co-pending U.S. Appl. No. 13/048,378. |
Office Action mailed May 23, 2014 in co-pending U.S. Appl. No. 13/183,777. |
Notice of Allowance mailed Mar. 27, 2014 in U.S. Appl. No. 13/185,066 (now US Patent No. 8,799,480). |
Number | Date | Country | |
---|---|---|---|
20140056137 A1 | Feb 2014 | US |
Number | Date | Country | |
---|---|---|---|
61086521 | Aug 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13339629 | Dec 2011 | US |
Child | 14071009 | US | |
Parent | 12536537 | Aug 2009 | US |
Child | 13339629 | US |