The present invention relates to information retrieval, and in particular to a method and system for geo-locating a device to a cache location.
The evolved packet core (EPC) has been gaining popularity over previous mobile generation network architectures, e.g., 2G and 3G, as a technology that allows for the implementing of new value added services and enablement of new applications. In particular, the previous mobile generation network architectures, e.g., 2G and 3G, rely on two separate sub-domains for routing packets: a circuit-switched sub-domain for voice packets and a packet-switched sub-domain for data packets. However, using two separate domains for routing packets requires separate processing and switching of voice and data. This arrangement adds to the cost of the network and limits functionality.
EPC is an all internet protocol (IP) network architecture that converges the framework for packet-based real-time and non-real-time services, i.e. converges data and voice onto the same routing domain. For example, EPC has a unified single IP domain for processing and switching of mobile voice and data traffic while maintaining quality requirements for real-time services. In particular, EPC provides an all-IP mobile core for Long Term Evolution (LTE) technologies that allows for end-to-end IP service across the LTE network, e.g., voice traffic is treated as an IP-based network application with specific quality/performance requirements.
The EPC may be linked or connected to content distribution networks (CDNs) that provide content to users in the EPC. In particular, a CDN includes an assortment of cache servers placed at various locations within the CDN in which the assortment of cache servers cache or replicate content provided by a content provider. The use of cache servers allows the CDN and/or content provider to handle abrupt increases in content requests by referring the content requesters to one of the cache servers. For example, assume a sudden surge in web content requests for a specific video has been received by the content provider or a mobile network operator. If the content provider handles all the content requests, the content provider may become so inundated that the content provider will have to temporarily take the requested content offline, e.g., make the content temporarily unavailable to users. As such, the content provider may have an agreement with a CDN that allows the content provider to refer the content request to a cache server such that the cache server provides the requested content to the user.
However, the CDN refers the content requester to the closest cache server in the CDN. In particular, the closest cache server to an EPC is typically an edge cache server in the CDN. For example, all users in the EPC may connect to the CDN via a packet data network gateway (P-GW) in which all users will likely be referred to the same cache server in the CDN. The P-GW serves as the internet protocol (IP) gateway for all users communicating via a specific EPC. As such, all users in the EPC are likely to be sent the same cache server in the CDN even though geographically closer caches in the EPC may be available, thereby increasing network inefficiency, wasting networking resources, adding to network latency, etc.
Accordingly, it is desirable to have a system and method that allows for the distribution of caches throughout the EPC and allows CDNs to make efficient use of the caches in the EPC.
The present invention advantageously provides a method and system for accurately locating a mobile device to a geographically efficient cache location.
According to one embodiment a network element in a network includes a receiver that receives a content request message. The received content request message indicates content to be transmitted to a device. The network element includes a processor in communication with the receiver. The processor generates a modified content request message by inserting identification data into the content request message. The identification data identifies at least one of a plurality of network nodes in the network. The network element includes a transmitter that transmits the modified content request message to a content distribution network server. The receiver further receives a redirect message based on the modified content request message. The redirect message identifies that a one of the plurality of network nodes is a cache location storing the indicated content.
According to another embodiment, a system is provided in which the system includes a server having a receiver. The receiver receives a modified content request message that indicates content to be downloaded to a device. The modified content request message includes identification data corresponding to at least one network node in a network. The server includes a processor in communication with the receiver. The processor evaluates the modified content request message to determine the identification data. The processor determines a first cache location based at least in part on the identification data. The first cache location is a network node that stores the indicated content in which the first cache location is geographically closer to the device than other cache locations at other network nodes.
According to yet another embodiment, a method is provided for geo-locating a device to a cache location. The method includes receiving a content request message that indicates content to be transmitted to a device. The method includes generating a modified content request message by inserting identification data into the content request message. The identification data corresponds to at least one node in the network. The method includes transmitting the modified content request message and forwarding a redirect message generated in response to the transmitted modified content request message. The redirect message directs the device to one of a plurality of cache locations storing the indicated content. The direction being based at least in part on geographic location.
A more complete understanding of the present invention, and the attendant advantages and features thereof, will be more readily understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
The present invention advantageously provides a system and method that allows geo-location of a device to a cache. Accordingly, the system and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
Referring now to the drawing figures in which like reference designators refer to like elements there is shown in
Device 12 may include a transmitter 20 and receiver 22 for communicating with node 14 via a communications network using communication protocols known in the art, e.g., using internet protocols. For example, the communications network may be a mobile communications network, as described in detail below with respect to
Node 14 may include transmitter 30, receiver 32, processor 34 and memory 36 in communication with each other. In particular, transmitter 30, receiver 32, processor 34 and memory 36 may generally correspond to the components in device 12, with size and performance being adjusted based on design needs, while providing the functionality described herein with respect to node 14. For example, transmitter 30 and receiver 32 may provide transmission and reception of data communications to/from device 12 and packet core 16, among other communication devices, gateways and servers. Memory 36 may store enrichment module 38 and node cache 40, among other modules and caches. Enrichment module 38 performs the process of modifying a content request message or packet. For example, enrichment module 38 includes instructions, which when executed by processor 38, cause processor 34 to perform the enrichment or modifying process, discussed in detail below with reference to
Node cache 40 may store any digital content such as static content and streaming media, among other digital content. In particular, static content may refer to content that does not change very often. For example, static content may include static hyper-text markup language (HTML) pages, images, documents, software patches, audio files and video files, among other digital content. Streaming content may refer to digital content such on-demand multimedia digital content and content that is presented on device 12 display while being delivered by node 14 or other devices, servers and gateways.
Packet core 16 may be an IP-based core network. For example, packet core 18 may be an evolved packet core (EPC) network that is based on end-to-end IP based transmission in and out of EPC network, e.g., all-IP based. For example, data and voice may be communicated through EPC via IP packets. Packet core 18 is discussed in detail below with respect to
Content network 18 may be a content distribution network (CDN) that provides caches of content throughout content network 18. In particular, content network 18 may include one or more servers 42a to 42n (collectively referred to as “server 42”). Server 42 may include transmitter 44, receiver 46, processor 48 and memory 50, among other components. In particular transmitter 44, receiver 46, processor 48 and memory 50 may generally correspond to the components in device 12, with size and performance being adjusted based on design needs, while providing the functionality described herein with respect to server 42. For example, transmitter 44 and receiver 46 may provide transmission and reception of data communications to and from packet core 16, other content networks and content provider networks, among other networks and devices.
Memory 50 may include redirect module 52 and server cache 54, among other modules and caches. Redirect module 52 performs the process of geo-locating device 12 with the geographically closest cache. For example, redirect module 52 includes instructions, which when executed by processor 48, cause processor 48 to perform the redirect process, discussed in detail below with reference to
Packet core 16 may include packet distribution network gateway 70 (referred to as “P-GW”). In particular, P-GW may provide connectivity to external data communication networks such as content network 18. P-GW may act as a point of entrance and exit of traffic for the packet core 18 based network. P-GW 70 may include transmitter 72, receiver 74, processor 76 and memory 78, among other gateway components. Transmitter 72, receiver 74, processor 76 and memory 78 may generally correspond to the components in device 12, with size and performance being adjusted based on design needs, while providing the functionality described herein with respect to P-GW 70. For example, transmitter 72 and receiver 74 may provide transmission and reception of data communications to and from S-GW 70 and content network 18, among other networks and packet core 16 devices. Memory 78 may includes enrichment module 80 and P-GW cache 82. Enrichment module 80 performs the process of modifying a content request message or packet. For example, enrichment module 80 includes instructions, which when executed by processor 76, cause processor 76 to perform the enrichment process, discussed in detail with reference to
The cache locations in packet core 18 based network may be distributed based at least in part on a location criteria. For example, the location criteria may indicate that network elements routing high amounts of network traffic are to have a corresponding cache location. As another example, the location criteria may indicate that one or more anchor points in the packet core 18 based network each have a cache location. In particular, one or more network elements that provide anchor points for other network elements. Continuing the example, S-GW 56 may provide an anchor point for device 12 hand-over from node 14a to node 14b such that data communications from device 12 will continue to be routed through S-GW 56. The one or more anchor points such as node 14, S-GW 56 and P-GW 70 may each have a cache location that stores content. The location criteria may be based at least in part on a number of devices that communicate with the network via a specific network element. For example, a large number devices 12 may communicate via node 14a, S-GW 56b and P-GW 70 such that each of these network elements has corresponding cache locations. Node 14a may have node cache 40, S-GW 56b may have S-GW cache 68 and P-GW70 may have P-GW cache 82 while other network elements may not have corresponding cache locations. The location criteria may be based at least in part on the network architecture employed in system 10. Other location criteria may be used to determine the placement of cache location within the packet core 18 based network such as criteria used in content distribution networks.
Moreover, the specific content stored in each cache location may be based on a caching criteria. In particular, the content stored in a cache location in the packet core 18 based network may be based on the frequency at which the specific content has been previously requested. For example, the number of requests (X) for a specific video may be higher than the number of other requests (Y) for other content such that the specific video will be stored at a cache location closer to device 12 than cache locations storing the other content, X and Y being respective whole numbers. The content stored in the cache location may be periodically updated such that sudden demands for specific content are taken into account. Other caching criteria may be incorporated such as criteria used in determining cache locations in content distribution networks.
An exemplary enrichment process for facilitating geo-location of device 12 to a cache location is described with reference to
In particular, the identification data may correspond to the network element performing the enrichment process. For example, as the content request message is routed to server 42, node 14 may enrich the content request or modified content request message with identification data corresponding to node 14 or to another network element. In particular, node 14 may insert an IP address corresponding to node 14 or another network element. Alternatively, node 14 may determine whether node 14 has a cache, e.g., node cache. If node 14 has node cache 40, node 14 may insert a uniform resource locator (URL) corresponding to node cache 40 into the content request message. If node 14 does not have node cache 40, node 14 forwards content request message according to network communication protocols without performing the enrichment process. The modified content request message from node 14 may be received at P-GW 70, in which P-GW 70 performs the enrichment process on the previously modified content request message, i.e., enriches the previously modified content request message with identification data corresponding to P-GW 70. The enrichment process may be performed by one or more networks elements.
The enrichment process may be performed by one or more network elements. For example, P-GW 70 may generate the modified content request message by inserting identification data into the content request message. The identification data may correspond to one or more network elements and/or may correspond to the element performing enrichment. Continuing the example, P-GW 70 may insert identification data corresponding to node 14, S-GW 56 and P-GW 70 such that the modified content request message contains information of several network elements. In particular, the one network element generating the modified content request message may interrogate a management node (not shown) that provides information corresponding to several network elements in system 10. For example, the identification data may include an IP address of node 14, S-GW 56 and P-GW 70, among other network elements. The identification data may include a uniform resource locator (URL) designating some or all cache locations located in system 10. As another example, P-GW 70 may insert identification data corresponding only to P-GW 70 such that the content request message is enriched only with identification data corresponding to P-GW 70, i.e., corresponding to the network element performing the enrichment. In particular, one or more of the network elements that route or forward the content request message toward server 42 may each enrich the content request message (or already modified content request message) with identification data corresponding to network element performing the forwarding.
The order in which the identification data corresponding to one or more forwarding network elements is inserted may be maintained. In particular, inserted identification data may be stacked such that first inserted identification data is located at the bottom of the stack, i.e., at the bottom of identification data stack in the modified content request message. If the forwarding network element does not have a cache location and/or the indicated content stored, the particular forwarding network element may not insert any corresponding identification data, e.g., the forwarding network element continues to route or forward the content request message via known communication protocols without modifying the content request message.
The network element performing the enrichment process may transmit the modified content request message toward server 42, e.g., toward content distribution network server, according to network communication protocols (Step S104). The network element may receive a redirect message in response to the transmitted modified content request message (Step S106). The redirect message may include redirect data that indicates to device 12 one of the cache locations in system 10 (e.g., node cache 40, server cache 54) from which device 12 may download requested content, e.g., the redirect data identifies one of the cache locations storing the content. Alternatively, the redirect message may indicate device 12 to which the indicated content is to be transmitted. In particular, server 42 may transmit the redirect message to a cache location such that device 12 does not have to initiate downloading of indicated content from the cache location, e.g., the redirect message may cause the cache location transmit the indicated content to device 12 in response to receiving the redirect message from server 42. Of note, the term “download” as used herein refers generally to the receipt of content. The content can be downloaded in a format in which the content may be stored for a short term or long term by device 12, or downloaded in a format in which the content is “streamed”. The identified one of the cache locations may be geographically closer than the remaining cache locations or nodes. The network element may transmit the redirect message to device 12 according to network communication protocols (Step S108). For example, the transmitted modified content request message may be received at server 42 in which server 42 generates the redirect message that is transmitted to device 12 via one or more network elements, as discussed in detail with respect to
An exemplary redirect process for geo-locating device 12 to a cache location is described with reference to
If the identification data includes the identity of at least one network element, server 42 determines cache locations (Step S118). In particular, server 42 interrogates the at least one network element to determine cache data indicating whether the at least one node has a cache location. The at least one network element may include P-GW 70, S-GW 56 and/or node 14, among other nodes, servers and gateways in packet core 18 based network. Interrogation of a network element may include requesting information from the network element via an interrogation message such that the network element transmits the requested information back to server 42 in response to interrogation message. For example, identification data identifies node 14a, node 14b and P-GW 70 by respective IP addresses in which server 42 may utilize the IP addresses to interrogate node 14a, node 14b and P-GW 70 to determine respective cache information. Server 42 interrogates node 14a to determine cache information in which the cache information indicates whether node 14a has a cache location or whether node 14a has a cache location storing the indicated content. Server 42 may interrogate some or all of the identified network elements to determine cache information. Server 42 may determine the one or more cache locations based at least in part on the cache information received from the interrogation.
Referring back to Step S114, if the identification data includes at least one cache location, server 42 determines cache locations based at least in part on the at least one cache location identified in the identification message (Step S120). Server 42 may determine whether the determined at least one cache location stores the indicated content (Step S122). In particular, server 42 may interrogate the determined at least one cache location for cache information indicating whether the at least one cache location stores the indicated content. For example, server 42 interrogates determined cache locations at node 14a, node 14b and P-GW70 to determine whether the cache locations store the indicated content, e.g., whether the cache locations store the content requested by device 12. Alternatively, Step S122 may be skipped such that server 42 does not interrogate the cache locations to determine whether the cache locations actually store the indicated content. In particular, server 42 may determine the cache locations likely to have the indicated content (not shown). For example, server 42 may determine that certain cache locations are more active than other cache locations during a predefined period. Server 42 may determine the cache locations likely to have the indicated content based on previously transmitted redirect messages, redirect messages are discussed in detail with respect to Step S126. Other criteria may be used by server 42 to determine the likelihood of a cache location storing the requested content.
Server 42 determines the cache location geographically closest to the requesting device (Step S124). For example, server 42 may determine the geographic network topology of the determined cache locations relative to device 12. The network topology may be determined based at least in part on the ordering or layering of identification data in modified content request message received at server 42. In particular, server 42 may determine that identification data at the bottom of the identification data stack corresponds to a network element logically closest to device 12, e.g., identification data at the bottom of the identification stack was inserted by a network element logically closer to device 12 than the network element that inserted identification data at the top of the identification stack. The logical location of the network elements in the network may correspond to geographical location such that the logically closest location is also the geographically closest location. Continuing the example, node 14a and S-GW 56a may be determined to have cache locations storing the indicated content in which server 42 maps the geographic network topology of node 14a, S-GW 56a and device 12. Server 42 may determine that node 14a is the closest cache location storing the indicated content based at least in part on the geographic network topology. The network topology may be based at least in part on one or more network element IP addresses and/or one or more internet distance estimation algorithms that allow server 42 to generate the network topology of network elements corresponding to identification data.
Server 42 may push the indicated content to the geographically closest cache location. For example, server 42 may transmit the indicated content to the geographically closest cache location if Step S122 has been skipped, as noted above. In particular, server 42 determines the geographically closest cache location likely having the indicated content in which pushing the indicated content ensures the cache location has the indicated stored. The indicated content may be pushed to the cache location with the redirect message that is discussed below.
After server 42 determines the geographically closest cache location to device 12, server 42 generates a redirect message (Step S126). In particular, the redirect message may include redirect data that identifies the geographically closest cache location. For example, the redirect data may include a URL corresponding to the geographically closet cache location or may include an IP address of the network element having the geographically closest cache location. Server 42 may transmit the redirect message to device 12 such that the redirect message directs device 12 to the geographically closest cache location storing the indicated content, e.g., device 12 downloads the indicated content from the geographically closest cache location (Step S128).
An exemplary content request process for facilitating geo-location of device 12 to a cache location is described with reference to
An exemplary example of system 10 for facilitating geo-location of device 12 to a cache location is described with reference to
At time 2, mobile device 12 may generate and transmit a content request message to content network 18a requesting the specific content. The content request message may be modified by the enrichment process at least once before reaching network 18a, as discussed with respect to
The present invention can be realized in hardware, software, or a combination of hardware and software. Any kind of computing system, or other apparatus adapted for carrying out the methods described herein, is suited to perform the functions described herein.
A typical combination of hardware and software could be a specialized or general purpose computer system having one or more processing elements and a computer program stored on a storage medium that, when loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in a computing system is able to carry out these methods. Storage medium refers to any volatile or non-volatile storage device.
Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described herein above. In addition, unless mention was made above to the contrary, it should be noted that all of the accompanying drawings are not to scale. A variety of modifications and variations are possible in light of the above teachings without departing from the scope and spirit of the invention, which is limited only by the following claims.