WO2016202091A1 - Network architecture with network gateway assisted local cache - Google Patents
Network architecture with network gateway assisted local cache Download PDFInfo
- Publication number
- WO2016202091A1 WO2016202091A1 PCT/CN2016/079991 CN2016079991W WO2016202091A1 WO 2016202091 A1 WO2016202091 A1 WO 2016202091A1 CN 2016079991 W CN2016079991 W CN 2016079991W WO 2016202091 A1 WO2016202091 A1 WO 2016202091A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- network
- access node
- local cache
- cache server
- network access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/12—Setup of transport tunnels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0247—Traffic management, e.g. flow control or congestion control based on conditions of the access network or the infrastructure network
Definitions
- Various features relate to mobile networks, and more particularly to a network architecture with a network gateway assisted local cache.
- network access nodes e.g., base stations, evolved Node Bs (eNBs) , network access points
- eNBs evolved Node Bs
- network access points serving such client devices are consuming large amounts of resources (e.g., backhaul resources) in mobile networks to meet user demand.
- resources e.g., backhaul resources
- such consumption of resources may cause network congestion, which typically results in degradation of performance (e.g., reduced content downloading/streaming rates) .
- mobile network operators may increase the amount of available resources to meet user demand, the cost of such increase is generally high. Therefore, there is a need for methods and devices that improve content delivery in a mobile network.
- a method for a first network node obtains information associated with a local cache server that is proximate to a network access node serving a client device.
- the first network node transmits a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
- the local cache server and the network access node are located at or near an edge of a network.
- the first network node receives, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device, obtains the identification information associated with the network access node, and transmits the identification information associated with the network access node to the network entity.
- obtaining the identification information associated with the network access node includes transmitting a second request to a second network node, the second request being for the identification information associated with the network access node, and receiving the identification information associated with the network access node from the second network node.
- the information associated with a local cache server is a network address of the local cache server.
- the network entity is a global server load balancing node of a content delivery network or a server load balancing device.
- the first network node is a packet data network gateway or a mobility management entity, and wherein the second network node is a serving gateway.
- a device in an aspect, includes means for obtaining information associated with a local cache server that is proximate to a network access node serving a client device.
- the device further includes means for transmitting a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
- the local cache server and the network access node are located at or near an edge of a network.
- the device further includes means for receiving, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device, means for obtaining the identification information associated with the network access node, and means for transmitting the identification information associated with the network access node to the network entity.
- the means for obtaining the identification information associated with the network access node may be configured to transmit a second request to a network node, the second request being for the identification information associated with the network access node, and receive the identification information associated with the network access node from the network node.
- the information associated with a local cache server is a network address of the local cache server.
- the network entity is a global server load balancing node of a content delivery network or a server load balancing device.
- the device is a packet data network gateway or a mobility management entity, and wherein the network node is a serving gateway.
- a method for a network access node receives a request for content from a client device, establishes a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content, receives the content from the local cache server via the communication link, and transmits the content to the client device.
- the local cache server and the network access node are located at or near an edge of a network.
- the network access node transmits the request for content to a gateway using an Evolved Packet switched System (EPS) bearer.
- EPS Evolved Packet switched System
- the communication link includes a tunnel established using a General Packet Radio Service Tunnel Protocol, and the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets.
- the network access node transmits the content to the client device by forwarding the content to the client device using a Packet Data Convergence Protocol.
- the request for content from the client device is included in a first data packet.
- the network access node determines whether a destination network address in the first data packet corresponds to a network address of the local cache server, performs a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node, and transmits the first data packet to the local cache server.
- the network access node determines whether the destination network address in the first data packet corresponds to the network address of the local cache server by determining whether the destination network address matches a network address in a list of cache server network addresses.
- the content received from the local cache server via the communication link is included in one or more second data packets.
- the network access node performs a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device, and transmits the one or more second data packets to the client device.
- the network access node establishes the communication link by establishing a tunnel between the network access node and the local cache server, where the content from the local cache server is received directly from the local cache server through the tunnel.
- the network access node establishes the communication link by transmitting a request to create a tunnel to the local cache server.
- a device in an aspect, includes means for receiving a request for content from a client device, means for establishing a communication link with a local cache server that is proximate to the device, the local cache server configured to store the requested content, means for receiving the content from the local cache server via the communication link, and means for transmitting the content to the client device.
- the local cache server and the device are located at or near an edge of a network.
- the device transmits the request for content to a gateway using an Evolved Packet switched System (EPS) bearer.
- EPS Evolved Packet switched System
- the communication link includes a tunnel established using a General Packet Radio Service Tunnel Protocol, and the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets.
- the means for transmitting the content to the client device is configured to forward the content to the client device using a Packet Data Convergence Protocol.
- the request for content from the client device is included in a first data packet.
- the device further includes means for determining whether a destination network address in the first data packet corresponds to a network address of the local cache server, means for performing a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the device, and means for transmitting the first data packet to the local cache server.
- the means for determining whether the destination network address in the first data packet corresponds to the network address of the local cache server is configured to determine whether the destination network address matches a network address in a list of cache server network addresses.
- the content received from the local cache server via the communication link is included in one or more second data packets.
- the device further includes means for performing a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the device to the network address of the client device, and means for transmitting the one or more second data packets to the client device.
- the means for establishing the communication link is configured to establish a tunnel between the device and the local cache server, where the content from the local cache server is received directly from the local cache server through the tunnel.
- the means for establishing the communication link is configured to transmit a request to create a tunnel to the local cache server.
- a method for a network entity receives a first request for a location of content from a client device, obtains identification information of a first network access node associated with the client device, and transmits the location of the content based on the identification information of the first network access node.
- the network entity is a global server load balancing (GSLB) node or a server load balancing (SLB) device.
- the first network access node is a base station serving the client device or a network gateway (e.g., a packet data network gateway (P-GW) ) associated with the client device.
- P-GW packet data network gateway
- obtaining the identification information of the first network access node associated with the client device includes sending a second request to a second network access node, and receiving, from the second network access node, a response including the identification information of the first network access node associated with the client device.
- the second request includes an Internet Protocol (IP) address of the client device, an International Mobile Subscriber Identity (IMSI) of the client device, or information that identifies the client device to the second network access node.
- the identification information of the first network access node associated with the client device is an actual identification (ID) , an ID configured for the first network access node to indicate an optimal cache server (e.g., local cache server) , or an Internet Protocol (IP) address of the first network access node.
- ID actual identification
- ID configured for the first network access node to indicate an optimal cache server (e.g., local cache server)
- IP Internet Protocol
- a device in an aspect, includes means for receiving a first request for a location of content from a client device, means for obtaining identification information of a first network access node associated with the client device, and means for transmitting the location of the content based on the identification information of the first network access node.
- the device is a global server load balancing (GSLB) node or a server load balancing (SLB) device.
- the first network access node is a base station serving the client device or a network gateway (e.g., a packet data network gateway (P-GW) ) associated with the client device.
- P-GW packet data network gateway
- the means for obtaining the identification information of the first network access node associated with the client device is configured to send a second request to a second network access node, and receive, from the second network access node, a response including the identification information of the first network access node associated with the client device.
- the second request includes an Internet Protocol (IP) address of the client device, an International Mobile Subscriber Identity (IMSI) of the client device, or information that identifies the client device to the second network access node.
- IP Internet Protocol
- IMSI International Mobile Subscriber Identity
- the identification information of the first network access node associated with the client device is an actual identification (ID) , an ID configured for the first network access node to indicate an optimal cache server (e.g., local cache server) , or an Internet Protocol (IP) address of the first network access node.
- ID actual identification
- ID configured for the first network access node to indicate an optimal cache server (e.g., local cache server)
- IP Internet Protocol
- FIG. 1 illustrates a diagram of a network architecture for content delivery in a mobile network.
- FIG. 2 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the present disclosure.
- FIG. 3 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
- FIG. 4 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
- FIG. 5 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
- FIG. 6 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
- FIG. 7 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
- FIG. 8 illustrates a network architecture for content delivery in accordance with various aspects of the disclosure.
- FIG. 9 illustrates a diagram of a local cache server protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure.
- FIG. 10 illustrates a signal flow diagram of a procedure to establish a tunnel for forwarding packets from a local cache server to a network access node in accordance with various aspects of the disclosure.
- FIG. 11 illustrates a signal flow diagram of a signaling procedure to terminate a data forwarding tunnel in accordance with various aspects of the disclosure.
- FIG. 12 (including FIGS. 12A, 12B, and 12C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
- FIG. 13 illustrates a signal flow diagram for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
- FIG. 14 illustrates a diagram of a network architecture for content delivery with a local cache in accordance with various aspects of the disclosure.
- FIG. 15 illustrates a diagram of a client device protocol stack, network access node protocol stack, and a local cache server protocol stack in accordance with various aspects of the disclosure.
- FIG. 16 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
- FIG. 17 (including FIGS. 17A, 17B, and 17C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
- FIG. 18 illustrates a diagram of a network architecture for content delivery with a local cache server in accordance with various aspects of the disclosure.
- FIG. 19 illustrates a diagram of an interface including a mobile device protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure.
- FIG. 20 illustrates a diagram of an interface including a network access node protocol stack and a local cache server protocol stack in accordance with various aspects of the disclosure.
- FIG. 21 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
- FIG. 22 (including FIGS. 22A, 22B, and 22C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
- FIG. 23 illustrates a signal flow diagram for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
- FIG. 24 is an illustration of an apparatus configured to communicate in a network according to one or more aspects of the disclosure.
- FIG. 25 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
- FIG. 26 is an illustration of an apparatus configured to communicate in a network according to one or more aspects of the disclosure
- FIG. 27 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
- FIG. 28 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
- FIG. 29 is an illustration of an apparatus configured for communication in a network according to one or more aspects of the disclosure.
- FIG. 30 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
- exemplary is used herein to mean “serving as an example, instance, or illustration. ” Any implementation or aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term “aspects” does not require that all aspects of the disclosure include the discussed feature, advantage, or mode of operation.
- obtaining as used herein may include one or more operations including, but not limited to, receiving, generating, determining, or any combination thereof.
- FIG. 1 illustrates a diagram of a network architecture 100 for content delivery in a mobile network.
- the network architecture 100 includes a number of client devices (e.g., client device 1 102, client device 2 104, and client device N 106) , a network access node 108, a backhaul 110, a packet data network gateway (P-GW) 112, a core cache server 114, a backbone 116, a content delivery node 118, and a network node 120 that implements a Policy and Charging Rules Function (PCRF) 122.
- client devices e.g., client device 1 102, client device 2 104, and client device N 10
- P-GW packet data network gateway
- core cache server 114 e.g., a packet data network gateway (P-GW) 112
- PCRF Policy and Charging Rules Function
- each of the client devices may be a cellular telephone (e.g., a smartphone) , a personal computer (e.g., a laptop) , a digital media (e.g., audio and/or video files) player, a gaming device, or any other suitable device that is configured to communicate with a network.
- a client device may be referred to as a user equipment (UE) or an access terminal (AT) .
- UE user equipment
- AT access terminal
- a client device as referred to herein may be a mobile device or a static device.
- a network access node as referred to herein may be an evolved Node B, a base station, a network access point, or a network access gateway.
- the term “node” may represent a physical entity, such as a device, a server, a network entity, or a processing circuit. Accordingly, for example, a network node (e.g., network node 120) may be referred to as a network node device.
- the content delivery node 118 may be an over-the-top (OTT) content server that delivers content, such as the content 126 in FIG. 1.
- OTT over-the-top
- content may include, among other things, digital media files (e.g., music, movies, pre-recorded television program episodes, etc. ) , live streaming media, software, applications, documents, and/or data associated with social networks.
- the content delivery node 118 may deliver the content 126 to the core cache server 114 through the backbone 116, and the P-GW 112 may obtain the content 126 from the core cache server 114 for delivery to requesting client devices (e.g., client device 1 102, client device 2 104, and/or client device N 106) over the backhaul 110.
- the backbone 116 may include one or more lines (e.g., data paths) , routers, switches, and other suitable equipment configured to provide an appropriate amount of bandwidth for traffic from the content delivery node 118 to the core cache server 114 (or to the P-GW 112) .
- the content delivery node 118 may be coupled to (or may be a part of) a content delivery network (CDN) (e.g., an Internet content delivery network) .
- CDN may include a distributed system of servers deployed in multiple data centers across the Internet in order to serve content to end-users with high availability and high performance.
- CDN nodes may be deployed in multiple locations, typically over multiple backbones.
- a CDN may treat a mobile network as a black box and may cache content at a gateway (e.g., at the core cache server 114 coupled to the P-GW 112) or at a higher level.
- the network access node 108 may be considered the edge node of a cellular network
- the P-GW 112 may be considered the edge node from the perspective of the CDN.
- the content 126 cached at the core cache server 114 may be repeatedly transmitted to the network access node 108 via the backhaul 110 for delivery to requesting client devices.
- the P-GW 112 may transmit a first instance (e.g., the content 126a) of the content 126 to the client device 1 102, a second instance (e.g., the content 126b) of the content 126 to the client device 2 104, and an Nth instance (e.g., the content 126c) of the content 126 to the client device N 106.
- Such repeat transmissions (e.g., the first, second, and Nth instances) of the content 126 may require mobile network operators to either deploy more backhaul to accommodate the additional traffic, which typically leads to higher costs, or experience higher backhaul congestion.
- FIG. 2 illustrates a diagram of a network architecture 200 for content delivery in a mobile network with a local cache server in accordance with various aspects of the present disclosure.
- the network architecture 200 includes a number of client devices (e.g., client device 1 202, client device 2 204, and client device N 206) , a network access node 208, a backhaul 210, a local cache server 212, a P-GW 214, a backbone 216, a content delivery node 218, and a network node 220 that implements a Policy and Charging Rules Function (PCRF) 222.
- PCRF Policy and Charging Rules Function
- each of the client devices may be a cellular telephone (e.g., a smartphone) , a personal computer (e.g., a laptop) , a digital media (e.g., audio and/or video files) player, a gaming device, or any other suitable device that is configured to communicate with a network.
- a client device may be referred to as a user equipment (UE) or an access terminal (AT) .
- UE user equipment
- AT access terminal
- a client device as referred to herein may be a mobile device or a static device.
- the network access node 208 may be an eNB, base station, or a network access point.
- the content delivery node 218 may be an over-the-top (OTT) content server that delivers content, such as the content 228 in FIG. 2.
- the content delivery node 218 may deliver the content 228 to the P-GW 214 through the backbone 216, and the P-GW 214 may deliver the content 228 the local cache server 212.
- the local cache server 212 is configured inside the mobile network (e.g., at an edge of the backhaul 210 and/or in close proximity to the network access node 208) , the local cache server 212 may be said to be “below” the P-GW 214.
- the local cache server 212 may transmit the content 228 to one or more requesting client devices through the network access node 208.
- the local cache server 212 may transmit a first instance (e.g., the content 228a) of the content 226 to the client device 1 202, a second instance (e.g., the content 228b) of the content 226 to the client device 2 204, and an Nth instance (e.g., the content 228c) of the content 226 to the client device N 206. Since the local cache server 212 is below the P-GW 214, the configuration of FIG. 2 avoids repeated transmissions (e.g., as previously described with respect to FIG. 1) over the backhaul 210. Accordingly, user experience may be improved by achieving a shorter delay in the delivery of content and/or by reducing the probability of interruptions during the delivery of the content.
- the P-GW 214 may obtain the location of a client device (e.g., client device 1 202, client device 2 204, and client device N 206) at the radio access network (RAN) level.
- a client device e.g., client device 1 202, client device 2 204, and client device N 206
- the P-GW 214 may provide the client device’s actual edge location to such GSLB node.
- the actual edge location of a client device may assist the CDN to locate the suitable real edge local cache server (e.g., the local cache server 212) that is close to the client device.
- the local cache server 212 also referred to as a local content server (CS)
- CS local content server
- FIG. 3 illustrates a diagram of a network architecture 300 for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
- the network architecture 300 includes a client device 302, a network access node 304, a backhaul 306, a local cache server 308, a P-GW 310, local domain name system (local DNS) server 312, a firewall 314, a domain name system (DNS) server 316, a content delivery network (CDN) node 318, and a global server load balancing (GSLB) node 320.
- the client device 302 may receive downlink (DL) traffic or may transmit uplink (UL) traffic via the communication link 322.
- DL downlink
- UL uplink
- the communication link 322 may be established over a Uu radio interface.
- the network access node 304 may receive traffic from (or transmit traffic to) the P-GW 310 via the communication link 324.
- the communication link 324 may be established over an S5/S8 interface (and/or an S1 interface when a serving gateway (S-GW) is configured between the network access node 304 and the P-GW 310) .
- S-GW serving gateway
- the P-GW 310 determines the radio access network (RAN) level location of the client device 302 and provides information indicating the RAN level location to the CDN node 318.
- RAN radio access network
- the information indicating the RAN level location of the client device 302 may be the network access node (e.g., the identity of the network access node 304) currently serving the client device 302.
- a direct path may be established between the network access node 304 and the local cache server 308 for downlink transfer of the content 309.
- such direct path may be tunnel based and may be set up by the P-GW 310 for forwarding packets (e.g., data packets carrying at least a portion of the content 309) or may be set up by the network access node 304 to achieve an Internet Protocol (IP) aware RAN tunnel via the network access node 304.
- IP Internet Protocol
- the path may be IP based with network address translation (NAT) by the network access node 304 to achieve IP aware RAN network address translation via the network access node 304.
- the content fetch request may be transmitted to the local cache server 308. If the requested content from the client device 302 has been cached in the local cache server 308, the cached content (e.g., the content 309 cached in the local cache server 308) may be transmitted to the client device 302 directly from the local cache server 308 via the network access node 304. If the local cache server 308 determines that the requested content is not cached in the local cache server 308, the local cache server 308 may fetch the requested content from an upper layer (e.g., CDN node 318) for the client device 302.
- an upper layer e.g., CDN node 318
- FIG. 4 illustrates a signal flow diagram 400 of a signaling procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 400 includes a client device 402, a network access node 404, a local cache server 406, a mobility management entity (MME) 408, a serving gateway 410, a packet data network gateway (P-GW) 412, a local domain name system (local DNS) server 414, a firewall (FW) 416, a domain name system (DNS) server 418, and a global server load balancing (GSLB) node 420.
- MME mobility management entity
- P-GW packet data network gateway
- local DNS local domain name system
- FW firewall
- DNS domain name system
- DNS domain name system
- GSLB global server load balancing
- the client device 402, network access node 404, local cache server 406, P-GW 412, local DNS 414, firewall 416, DNS server 418, and the GSLB node 420 of FIG. 4 respectively correspond to the client device 302, network access node 304, local cache server 308, P-GW 310, local DNS server 312, firewall 314, DNS server 316, and the GSLB node 320 of FIG. 3.
- the client device (CD) 402 may establish 422 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 402 and the P-GW 412, which may be referred to as a packet data network (PDN) connection) with the P-GW 412 and may acquire an IP address or domain name from the P-GW 412.
- IP Internet Protocol
- PDN packet data network
- the client device 402 may transmit DNS queries 424, 428, and 432 in an iterative manner.
- the client device 402 may transmit the DNS query 424 to the local DNS server 414, the DNS query 424 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name.
- FQDN_1 first fully qualified domain name
- the local DNS server 414 may transmit a DNS response 426 that refers the client device 402 to another server (e.g., the DNS server 418) and allows the client device 402 to pursue the query.
- a Canonical Name (CNAME) record at the DNS server 418 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) .
- the DNS server 418 may transmit a DNS response 430 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name.
- the second fully qualified domain name may serve as an indication to the client device 402 to proceed to transmit a query (e.g., the DNS query 432) to the GSLB node 420.
- a recursive DNS query approach may not be suitable in the configuration of FIG. 4 because with the recursive DNS query approach, the local DNS server 414 may pursue the query for the client device 402 at another server. Therefore, from the perspective of the GSLB node 420, the query IP may always be the IP address of the local DNS server 414 and not the IP address of the client device 402. As a result, the GSLB node 420 may not locate the actual edge location of the client device 402.
- a firewall (e.g., the firewall 416) may be configured between a P-GW (e.g., the P-GW 412) and a GSLB node (e.g., the GSLB node 420) . Therefore, the IP address of the client device 402 may be a P-GW subnet IP address or a global IP address (e.g., an IPv6 address) . If the IP address of the client device 402 is a P-GW subnet IP address, a network address translation (NAT) operation 434 may be performed at the firewall 416 before the DNS query 432 is transmitted to GSLB node 420.
- NAT network address translation
- the incoming request source IP is a P-GW configurable IP address after the network address translation operation or a global IP address of the client device 402.
- the GSLB node 420 may transmit a message 436 to the P-GW 412 serving the client device 402.
- the message 436 may be a query (e.g., request) for information associated with the network access node serving the client device 402 and may include the IP address of the client device 402.
- the message 436 may be received by the firewall 416 and forwarded (e.g., as the message 440) to the P-GW 412.
- the firewall 416 may apply an application layer gateway (ALG) function (or other application layer gateway function) to translate the application layer information before transmitting the message 440 to the P-GW 412.
- ALG application layer gateway
- the firewall 416 may implement the ALG function to translate the NAT IP address and port of the client device 402 to the subnet IP address and port of the client device 402.
- the message 440 may be received by the P-GW 412 and forwarded (e.g., as the message 442) to the S-GW 410.
- the S-GW 410 may have information regarding the location of the client device 402 because the S-GW 410 may have a connection (e.g., an S1 connection or interface) setup with the network access node 404 serving the client device 402.
- the S-GW 410 may transmit a message 444 to the P-GW 412, the message 444 including information associated with the network access node 404 (e.g., information indicating the identity or IP address of the network access node 404) serving the client device 402.
- the message 444 may be received by the P-GW 412 and forwarded (e.g., as the message 446) to the GSLB node 420.
- the message 436 may be received by the firewall 416 and forwarded (e.g., as the message 450) to the GSLB node 420.
- the firewall 416 may apply the previously described ALG function to translate the subnet IP address and port of the client device 402 to the global IP address and port of the client device 402 before transmitting the message 450 to the GSLB node 420.
- the GSLB node 420 may be configured to include or have access to a database regarding mapping information for the network access node 404 serving the client device 402 and suitable local cache server information. For example, the mapping may be based on location information, load information, content hit data, content miss data, and/or other suitable information.
- the GSLB node 420 may transmit a message 454 to the P-GW 412 that acknowledges the query in the message 436.
- the message 454 may include information regarding the local cache server 406.
- the message 454 may include an IP address of the local cache server 406.
- the message 454 may include the IP address of the local cache server 406 and the IP address of the client device 402. As shown in FIG. 4, the message 454 may be received by the firewall 416 and forwarded (e.g., as the message 458) to the P-GW 412.
- the firewall 416 may apply the previously described ALG function to translate the global IP address and port of the local cache server 406 to the subnet IP address and port of the local cache server 406 before transmitting the message 458.
- the GSLB node 420 may then transmit a DNS response 460 to the client device 402, the DNS response 460 including the address of the local cache server 406.
- FIG. 5 illustrates a diagram of a network architecture 500 for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
- the network architecture 500 includes a client device 502, a network access node 504, a backhaul 506, a local cache server 508, a P-GW 510, a local domain name system (local DNS) server 512, a firewall 514, a domain name system (DNS) server 516, a content delivery network (CDN) node 518, a global server load balancing (GSLB) node 520, and a server load balancing (SLB) device 522.
- local DNS domain name system
- DNS domain name system
- DNS domain name system
- CDN content delivery network
- GSLB global server load balancing
- SLB server load balancing
- the client device 502 may receive downlink (DL) traffic or may transmit uplink (UL) traffic via the communication link 524.
- the communication link 524 may be established over a Uu radio interface.
- the network access node 504 may receive traffic from (or transmit traffic to) the P-GW 510 via the communication link 526.
- the communication link 526 may be established over an S5/S8 interface (and/or an S1 interface when a serving gateway (S-GW) is configured between the network access node 504 and the P-GW 510) .
- S-GW serving gateway
- FIG. 6 illustrates a signal flow diagram 600 of a signaling procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 600 includes a client device 602, an S-GW 604, a P-GW 606, a server load balancing (SLB) device 608, a local DNS server 610, a firewall 612, a DNS server 614, and a GSLB node 616.
- the client device 602, the P-GW 606, the SLB device 608, the local DNS server 610, the firewall 612, the DNS server 614, and the GSLB node 616 of FIG. 6 respectively correspond to the client device 502, the P-GW 510, the SLB device 522, the local DNS server 512, the firewall 514, the DNS server 516, and the GSLB node 520 of FIG. 5.
- the client device 602 may establish 618 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 602 and the P-GW 606, which may be referred to as a packet data network (PDN) connection) with the P-GW 606 and may acquire an IP address or domain name from the P-GW 606.
- IP Internet Protocol
- the client device 602 may transmit a DNS query 620 to the local DNS server 610, the DNS query 620 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name.
- the DNS query 620 may be received by the P-GW 606 and forwarded (e.g., as the DNS query 622) to the local DNS server 610.
- IP Internet Protocol
- PDN packet data network
- the local DNS server 610 may transmit a DNS query 624 that includes the FQDN_1 to the DNS server 614.
- the DNS server 614 may transmit a DNS response 626 that refers the local DNS server 610 to another server or node (e.g., the GLSB node 616) thereby allowing the local DNS server 610 to continue pursuing the query.
- a first Canonical Name (CNAME1) record at the DNS server 614 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) .
- the DNS server 614 may transmit a DNS response 626 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name.
- the second fully qualified domain name may serve as an indication to the local DNS server 610 to proceed to transmit a query to the GSLB node 616. Accordingly, the local DNS server 610 may proceed to transmit a DNS query 628 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name to the GSLB node 616.
- the GSLB node 616 may transmit a DNS response 630 that refers the client device 602 to another server or node (e.g., the SLB device 608) .
- a second Canonical Name (CNAME2) record at the GSLB node 616 may point (e.g., correspond) the second fully qualified domain name to a third fully qualified domain name (FQDN_3) .
- the GSLB node 616 may transmit a DNS response 630 that includes the third fully qualified domain name (FQDN_3) or a portion of the third fully qualified domain name to the local DNS server 610.
- the local DNS server 610 may transmit a DNS query 632 that includes the third fully qualified domain name (FQDN_3) associated with the CNAME2 record to the SLB device 608.
- the SLB device 608 may transmit a DNS query 634 that requests the IP address of the client device 602 to the local DNS server 610.
- the DNS query 634 may include a special domain name (e.g., requester_ [id] , where [id] is the value of an ID parameter in the DNS query 632) .
- private signaling may be defined between the SLB device 608 and local DNS server 610 for the query of the IP address of the client device 602.
- a reserved operation code (opcode) may be implemented at the local DNS server 610 for identifying the IP address of the client device 602.
- the local DNS server 610 may transmit a DNS response 636 to the SLB device 608 that includes the IP address of the client device 602.
- the local DNS server 610 may transmit a DNS query 638 that includes the third fully qualified domain name (FQDN_3) associated with the CNAME2 record and that includes the IP address of the client device (CD) 602 to the SLB device 608.
- the third fully qualified domain name (FQDN_3) may be extended to include the IP address of the client device 602.
- the local DNS server 610 may transmit the third fully qualified domain name (FQDN_3) associated with the CNAME2 record and the IP address of the client device 602 to the SLB device 608 using private signaling between the SLB device 608 and local DNS server 610.
- FQDN_3 third fully qualified domain name
- the first set of optional signals identified as “Option A” and the second set of optional signals identified as “Option B” previously described with respect to FIG. 6 may be implemented as alternative options. For example, if the first set of optional signals identified as “Option A” are implemented, the second set of optional signals identified as “Option B” may not be implemented. As another example, if the second set of optional signals identified as “Option B” are implemented, the first set of optional signals identified as “Option A” may not be implemented.
- the SLB device 608 may transmit a query 640 for information regarding the network access node serving the client device 602 to the P-GW 606.
- the query 640 may include the IP address of the client device 602.
- the P-GW 606 may transmit the query (e.g., as the query 642) to the S-GW 604.
- the S-GW 604 may transmit a message 644 that includes information regarding the network access node serving the client device 602.
- the P-GW 606 may transmit the message (e.g., as the message 646) to the SLB device 608.
- the SLB device 608 may be configured to include or have access to a database that includes a mapping between network access nodes in the network and suitable (e.g., proximate or nearby) local cache servers. For example, such mapping may be based on location information, load information, a content hit data, a content miss data, and/or other suitable information.
- the SLB device 608 may determine 648 a suitable local cache server (e.g., local cache server 508 in FIG. 5) for the network access node (e.g., the network access node 504 serving the client device 502 in FIG. 5) .
- the SLB device 608 may transmit a DNS response 650 that includes the information regarding the suitable local cache server determined by the SLB device 608 to the local DNS server 610.
- the SLB device 608 may further transmit an acknowledgment 652 for the query 640 to P-GW 606, where the acknowledgment 652 includes the information regarding the suitable local cache server determined by the SLB device 608 and the IP address of the client device 602.
- the local DNS server 610 may transmit a DNS response 654 (e.g., in response to the DNS query 622) to the client device 602.
- the DNS response 654 may be received by the P-GW 606 and forwarded to the client device 602.
- FIG. 7 illustrates a signal flow diagram 700 of a signaling procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 700 includes a client device 702, a serving gateway (S-GW) 704, a packet data network gateway (P-GW) 706, a server load balancing (SLB) device 708, a local domain name system (local DNS) server 710, a firewall 712, a domain name system (DNS) server 714, and a global server load balancing (GSLB) node 716.
- client device 702, the P-GW 706, the SLB device 708, the local DNS server 710, the firewall 712, the DNS server 714, and the GSLB node 716 of FIG. 7 respectively correspond to the client device 502, the P-GW 510, the SLB device 522, the local DNS server 512, the firewall 514, the DNS server 516, and the GSLB node 520 of FIG. 5.
- the client device 702 may establish 718 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 702 and the P-GW 706, which may be referred to as a packet data network (PDN) connection) with the P-GW 706 and may acquire an IP address or domain name from the P-GW 706.
- IP Internet Protocol
- the client device 702 may transmit DNS queries 720, 724, 728, and 732 in an iterative manner.
- the client device 702 may transmit the DNS query 720 to the local DNS server 710, the DNS query 720 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name.
- FQDN_1 first fully qualified domain name
- the local DNS server 710 may transmit a DNS response 722 that refers the client device 702 to another server (e.g., the DNS server 714) and allows the client device 702 to pursue the query.
- a first Canonical Name (CNAME1) record at the DNS server 714 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) .
- the DNS server 714 may transmit a DNS response 726 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name.
- the second fully qualified domain name may serve as an indication to the client device 702 to proceed to transmit a query to the GSLB node 716.
- the client device 702 may proceed to transmit a DNS query 728 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name to the GSLB node 716.
- the GSLB node 716 may transmit a DNS response 730 that refers the client device 702 to another server or node (e.g., the SLB device 708) .
- a second Canonical Name (CNAME2) record at the GSLB node 716 may point (e.g., correspond) the second fully qualified domain name to a third fully qualified domain name (FQDN_3) .
- the GSLB node 716 may transmit a DNS response 730 that includes the third fully qualified domain name (FQDN_3) or a portion of the third fully qualified domain name to the client device 702.
- the SLB device 708 may transmit a query 734 for information regarding the network access node serving the client device 702 to the P-GW 706.
- the query 734 may include the IP address of the client device 702.
- the P-GW 706 may transmit the query to the S-GW 704.
- the S-GW 704 may transmit a message 736 that includes information regarding the network access node serving the client device 702.
- the P-GW 706 may transmit the message to the SLB device 708.
- the SLB device 708 may be configured to include or have access to a database that includes a mapping between network access nodes in the network and suitable (e.g., proximate or nearby) local cache servers. For example, such mapping may be based on location information, load information, a content hit, a content miss, and/or other suitable information.
- the SLB device 708 may determine 738 a suitable local cache server (e.g., local cache server 508 in FIG. 5) for the network access node (e.g., the network access node 504 serving the client device 502 in FIG. 5) .
- the SLB device 708 may transmit an acknowledgment 740 for the query 734 to P-GW 706, where the acknowledgment 740 includes the information regarding the suitable local cache server determined by the SLB device 708 and the IP address of the client device 702.
- the SLB device 708 may further transmit a DNS response 742 (e.g., in response to the DNS query 732) to the client device 702.
- FIG. 8 illustrates a network architecture 800 for content delivery in accordance with various aspects of the disclosure.
- the network architecture 800 includes a client device 802, a network access node 804, a backhaul 806, a packet data network gateway (P-GW) 808, a backbone 810, a content delivery node 812, and a local cache server (CS) 814.
- P-GW packet data network gateway
- the P-GW 808 is in communication with the network access node 804 via the backhaul 806 and is in communication with the content delivery node 812 via the backbone 810.
- the client device 802 may transmit a content request 816 to the network access node 804.
- the content request 816 may include a destination associated with the local cache server 814.
- the destination associated with the local cache server 814 may be an IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 8) of the local cache server 814.
- the network access node 804 may transmit the content request from the client device 802 to the P-GW 808.
- the network access node 804 may transmit the content request in a message 818 based on a user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) .
- GPRS General Packet Radio Service
- GTP-U General Packet Radio Service
- the P-GW 808 may transmit an IP packet 820 that includes the content request to the local cache server 814.
- the IP packet 820 may include the IP address of the local cache server 814 (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 8) as the destination for the IP packet 820.
- the local cache server 814 may receive the IP packet 820 and may determine whether the requested content is stored at the local cache server 814.
- the local cache server may transmit a content response 822 that includes at least a portion of the requested content directly to the network access node 804.
- the network access node 804 may forward the content response (e.g., as the content response 826 in FIG. 8) to the client device 802.
- the link between the local cache server 814 and the network access node 804 may be a downlink tunnel (e.g., represented in FIG. 8 with the oval 824) .
- the downlink tunnel (also referred to as a client device specific downlink tunnel) may be a GTP-U tunnel.
- the P-GW 808 may trigger a procedure for setting up the downlink tunnel.
- the P-GW 808 may trigger a network entity (e.g., a mobility management entity (MME) ) to request the network access node 804 to set up a downlink tunnel for receiving IP data packets.
- MME mobility management entity
- the P-GW 808 may notify the local cache server 814 regarding the configured downlink tunnel for the client device 802. Thereafter, any downlink IP data packets containing content transmitted from the local cache server 814 to the IP address of the client device 802 may be transmitted to the client device 802 through the configured downlink tunnel. Therefore, from the perspective of the network access node 804, the delivery of IP data packets through the configured downlink tunnel may be similar in operation to a handover scenario in a mobile network. For example, in a handover scenario, a target network access node may receive forwarded IP data packets from both a source network node and a core network. It should be noted, however, that the configuration of FIG.
- the local cache server 814 may communicate with upper layer entities, such as the content delivery node 812, similar to communications with a CDN server. For example, when content requested by a client device 802 is not stored at the local cache server 814 (e.g., when a cache miss occurs) , the local cache server 814 may retrieve the requested content from the CDN server. Accordingly, when content requested by a client device 802 is not stored at the local cache server 814, the local cache server 814 may pull the content from content delivery node 812.
- upper layer entities such as the content delivery node 812
- the local cache server 814 is proximate to the network access node 804.
- the local cache server 814 may serve a group of network access nodes.
- mobile network operators MNOs
- MNOs mobile network operators
- edge nodes e.g., network nodes at the edge of the backhaul 806
- the local cache servers may be subject to heavier usage and may experience a reduction in bandwidth, which may result in increased content response latency. Therefore, a tradeoff may exist between the operating efficiency of a local cache server and Mobile Content Delivery Network (MCDN) deployment cost.
- MCDN Mobile Content Delivery Network
- FIG. 9 illustrates a diagram 900 of a local cache server protocol stack 902 and a network access node protocol stack 904 in accordance with various aspects of the disclosure.
- the local cache server protocol stack 902 may be implemented at the local cache server 814 in FIG. 8 and the network access node protocol stack 904 may be implemented at the network access node 804 in FIG. 8.
- the local cache server protocol stack 902 and the network access node protocol stack 904 include a General Packet Radio Service (GPRS) Tunneling Protocol (GTP) layer, a User Datagram Protocol (UDP) layer, an Internet Protocol (IP) layer, a Layer 2 protocol (L2) layer, and a Layer 1 protocol (L1) layer.
- GPRS General Packet Radio Service
- GTP General Packet Radio Service
- UDP User Datagram Protocol
- IP Internet Protocol
- L2 Layer 2 protocol
- L1 Layer 1 protocol
- FIG. 10 illustrates a signal flow diagram 1000 of a procedure to establish a tunnel for forwarding packets from a local cache server to a network access node in accordance with various aspects of the disclosure.
- the signal flow diagram 1000 includes a client device 1002, a network access node 1004, a local cache server 1006, a mobility management entity (MME) 1008, a serving gateway (S-GW) 1010, a packet data network gateway (P-GW) 1012, a local domain name system (DNS) server 1014, a firewall 1016, a domain name system (DNS) server 1018, and a global server load balancing (GSLB) node 1020.
- MME mobility management entity
- S-GW serving gateway
- P-GW packet data network gateway
- DNS local domain name system
- DNS domain name system
- GSLB global server load balancing
- the client device 1002, the network access node 1004, the local cache server 1006, and the P-GW 1012 of FIG. 10 respectively correspond to the client device 802, the network access node 804, the local cache server 814, and the P-GW 808 of FIG. 8.
- the client device 1002 may determine 1022 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 1006) with the assistance of the P-GW 1012 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7.
- the GSLB node 1020 may direct the client device 1002 to the local cache server 1006.
- the P-GW 1012 may receive a trigger regarding the local cache server 1006 for the client device 1002 and may proceed to establish (e.g., set up) a tunnel between the network access node 1004 and the local cache server 1006.
- the P-GW 1012 may transmit a request message 1024 including a request for establishing (e.g., creating) a data forwarding tunnel to the network access node 1004.
- the message 1024 may be received by the MME 1008 and forwarded to the network access node 1004.
- the request for establishing the data forwarding tunnel included in the message 1024 may be a request directed to the network access node 1004 for establishing a GTP-U tunnel between the network access node 1004 and the local cache server 1006.
- the network access node 1004 may establish a data forwarding tunnel (also referred to as a downlink tunnel) for receiving IP data packets from the local cache server 1006 and may transmit a response message 1026 configured to notify the P-GW 1012 that the requested data forwarding tunnel has been established.
- the response message 1026 may include a downlink (DL) tunnel endpoint identifier (TEID) that is associated with the network access node 1004. As shown in FIG. 10, the response message 1026 may be received by the MME 1008 and may be forwarded to the P-GW 1012.
- DL downlink
- TEID tunnel endpoint identifier
- the MME 1008 may transmit a message 1028 that notifies the local cache server 1006 that a data forwarding tunnel (e.g., a downlink (DL) GTP-U tunnel) has been established for the client device 1002.
- a data forwarding tunnel e.g., a downlink (DL) GTP-U tunnel
- the message 1028 may include the DL tunnel endpoint identifier (TEID) that is associated with the network access node 1004 and the IP address of the client device 1002.
- the client device 1002 may transmit a content request 1030 and may indicate the destination of the content request 1030 as the IP address of the local cache server 1006.
- the P-GW 1012 may receive the content request 1030 and may route the content request 1030 (e.g., as the content request 1032 in FIG. 10) to the local cache server 1006.
- the local cache server 1006 may determine whether the requested content is stored (e.g., cached) at the local cache server 1006 and may transmit a message 1034 (also referred to as a content response) that includes one or more IP data packets carrying the content requested by the client device 1002 when the requested content is cached in the storage of the local cache server 1006. Otherwise, the local cache server 1006 may fetch the requested content from an upper layer (e.g., a CDN node (s) ) , such as the GSLB node 1020) when the requested content is not cached in the storage of the local cache server 1006.
- an upper layer e.g., a CDN node (s)
- the local cache server 1006 may deliver the content requested by the client device 1002 to the network access node 1004 by transmitting downlink IP data packets to the network access node 1004 through the data forwarding tunnel established between the network access node 1004 and the local cache server 1006 for the client device 1002.
- the local cache server 1006 may obtain downlink IP data packets carrying the requested content and may include (e.g., in a header of each downlink IP data packet) the IP address of the client device 1002 as the destination.
- the local cache server 1006 may then encapsulate such downlink IP data packets using the GTP-U protocol based on the network access node DL TEID to generate GTP-U packets. Accordingly, as shown in FIG.
- the local cache server 1006 may transmit a message 1034 including the GTP-U packets to the network access node 1004.
- the network access node 1004 may deliver 1036 the GTP-U packets from the local cache server 1006 and other packets from the S-GW 1010 and/or the P-GW 1012 to a Packet Data Convergence Protocol (PDCP) layer implemented at the network access node 1004 similar to data forwarding in a handover scenario.
- PDCP Packet Data Convergence Protocol
- the network access node 1004 may remove the encapsulation associated with the GTP-U protocol from the GTP-U packets to recover the downlink IP data packets carrying the requested content prior to delivery to the PDCP layer.
- the PDCP layer may be implemented by the network access node 1004 to convert each downlink IP data packet carrying the requested content to a PDCP packet. Accordingly, the network access node 1004 may transmit such PDCP packets 1038 to the client device 1002. The network access node 1004 may then transmit data volume information 1040 to the local DNS server 1014.
- FIG. 11 illustrates a signal flow diagram 1100 of a signaling procedure to terminate a data forwarding tunnel in accordance with various aspects of the disclosure.
- FIG. 11 includes a network access node 1102, a local cache server 1104, a mobility management entity (MME) 1106, a serving gateway (S-GW) 1108, and a packet data network (P-GW) gateway 1110.
- MME mobility management entity
- S-GW serving gateway
- P-GW packet data network gateway
- the P-GW 1110 may determine to terminate a data forwarding tunnel (e.g., a downlink (DL) GTP-U tunnel as previously described with reference to FIGS. 8-10) .
- a data forwarding tunnel e.g., a downlink (DL) GTP-U tunnel as previously described with reference to FIGS. 8-10) .
- the P-GW 1110 may determine to terminate a data forwarding tunnel due to expiration of a timer or other reasons.
- the P-GW 1110 may initiate termination of a data forwarding tunnel between the local cache server 1104 and the serving network access node 1102 by transmitting a request 1112 to delete the data forwarding tunnel to the local cache server 1104.
- the local cache server may transmit a response 1114 to the request 1112 to the P-GW 1110.
- the P-GW 1110 may then transmit a request 1116 to delete the data forwarding tunnel to the network access node 1004.
- the request 1116 may be received by the MME 1106 and may be forwarded by the MME 1106 to the network access node 1102.
- the network access node 1102 may transmit a response 1118 to the request 1116 to the P-GW 1110.
- the response 1118 may be received by the MME 1106 and may be forwarded by the MME 1106 to the P-GW 1110.
- FIG. 12 illustrates a signal flow diagram 1200 of a handover procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 1200 includes a client device 1202, a source network access node 1204, a target network access node 1206, a source mobility management entity (MME) 1208, a target MME 1210, a source serving gateway (S-GW) 1212, a target S-GW 1214, a packet data network gateway (P-GW) 1216, and a local cache server (local CS) 1218.
- MME mobility management entity
- S-GW source serving gateway
- P-GW packet data network gateway
- local CS local cache server
- the P-GW 1216 transmits downlink (DL) data 1220 (also referred to as DL user plane data) intended for the client device 1202.
- DL data 1220 may be received by the source S-GW 1212 and forwarded to the source network access node 1204.
- the source network access node 1204 may transmit the DL data 1220 to the client device 1202.
- the local cache server 1218 may transmit downlink (DL) data 1222 intended for the client device 1202 directly to the source network access node 1204.
- the source network access node 1204 may determine 1224 to initiate a handover of the client device 1202 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 1204 to the target network access node 1206.
- the source network access node 1204 may transmit a message 1226 to the source MME 1208 indicating that a handover is required.
- the message 1226 may include the downlink GPRS tunneling protocol user plane (GTP-U) tunnel endpoint identifier (TEID) for the local cache server 1218 to be set up by target network access node 1206.
- the source MME 1208 may transmit a forward relocation request message 1228 to the selected target MME 1210. As shown in FIG.
- the target MME 1210 may transmit a create session request message 1230 to the target S-GW 1214 and may receive a create session response message 1232.
- the create session response message 1232 may include S-GW addresses and TEIDs for uplink traffic.
- the target MME 1210 may transmit a handover request 1234 to the target network access node 1206 and may receive a handover request acknowledgment (ACK) 1236.
- ACK handover request acknowledgment
- the target network access node 1206 may establish a GTP-U tunnel TEID_CS.
- the GTP-U tunnel TEID_CS may enable the target network access node 1206 to receive downlink data from the source network access node 1204, where the downlink data was previously forwarded to the source network access node 1204 from the local cache server 1218.
- the target MME 1210 may transmit a create indirect data forwarding tunnel request 1238 to the target S-GW 1214 if the source S-GW 1212 is relocated.
- a GTP-U tunnel TEID for the local cache server 1218 may be established at the target S-GW 1214 if indirect data forwarding is needed.
- the target MME 1210 may receive a create indirect data forwarding tunnel response message 1240.
- the target MME 1210 may transmit a forward relocation response message 1242 to the source MME 1208 in response to the forward relocation response request 1228. If indirect data forwarding is to be implemented, the source MME 1208 may transmit a create indirect data forwarding tunnel request message 1244 to the source S-GW 1212.
- the source MME 1208 may receive a create indirect data forwarding tunnel response message 1246 from the source S-GW 1212.
- the source MME 1208 may transmit a handover command 1248 to the source network access node 1204.
- the source network access node 1204 may transmit the handover command 1249 to the client device 1202. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 1204 may transmit a network access node status transfer message 1250 to the source MME 1208.
- the network access node status transfer message 1250 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers.
- PDCP Packet Data Convergence Protocol
- HFN Hyper Frame Number
- the source MME 1208 may transmit a forward access context notification message 1252 to the target MME 1210 and may receive a forward access context acknowledgment (ACK) message 1254.
- the target MME 1210 may transmit an MME status transfer message 1256 to the target network access node 1206.
- the source network access node 1204 may forward 1258 data packets to the target network access node 1206.
- the source network access node 1204 may forward 1260 data packets to the source S-GW 1212.
- the source S-GW 1212 may forward the data packets to the target S-GW 1214, and the target S-GW 1214 may forward the data packets to the target access node 1206.
- the client device 1202 may detach 1262 from the old cell (e.g., the source network access node 1204) and may synchronize to the new cell (e.g., the target network access node 1206) . The client device 1202 may then transmit a handover confirm message 1264 to the target network access node 1206. The target network access node 1206 may then transmit downlink data packets 1266 that were forwarded from the source network access node 1204 (e.g., the data packets that were forwarded from the source network access node 1204 via direct or indirect forwarding as previously described) to the client device 1202. The client device 1202 may transmit uplink user plane data 1268 to the target network access node 1206.
- the source network access node 1204 e.g., the data packets that were forwarded from the source network access node 1204 via direct or indirect forwarding as previously described
- the target network access node 1206 may forward the uplink user plane data to the P-GW 1216 via the target S-GW 1214.
- the target network access node 1206 may transmit a handover notify message 1270 to the target MME 1210.
- the target MME 1210 may transmit a forward relocation complete notification message 1271 to the source MME 1208 and may receive a forward relocation complete acknowledgment (ACK) message 1272.
- the target MME 1210 may transmit a modify bearer request message 1273 to the target S-GW 1214. If the source S-GW 1212 has been relocated, the target S-GW 1214 may transmit a modify bearer request message 1274 to the P-GW 1216 and may receive a modify bearer response message 1275.
- the target S-GW 1214 may transmit a modify bearer response message 1276 to the target MME 1210.
- the P-GW 1216 may transmit an update tunnel message 1277 to the local cache server 1218.
- the update tunnel message 1277 may notify the local cache server 1218 to update (e.g., switch) the downlink GTP-U TEID from the source network access node 1204 to the target network access node 1206.
- the local cache server 1218 may transmit an update tunnel acknowledgment (ACK) message 1278 to the P-GW 1216.
- the local cache server 1218 may transmit downlink data (e.g., IP data packets carrying content requested by the client device 1202) directly to the target network access node 1206.
- the target network access node 1206 may transmit the downlink data from the local cache server 1218 to the client device 1202.
- the P-GW 1216 may transmit downlink user plane data 1280 to the target S-GW 1214.
- the target S-GW 1214 may forward the downlink user plane data to the client device 1202 via the target network access node 1206.
- the client device 1202 may initiate a Tracking Area Update procedure 1281.
- the source MME 1208 may transmit a delete session request message 1282 to the source S-GW 1212.
- the source MME 1208 may further transmit a client device context release command 1283 to the source network access node 1204 and may receive a client device context release complete message 1284.
- the source MME 1208 may receive a delete session response message 1285 from the source S-GW 1212.
- the source MME 1208 may then transmit a delete indirect data forwarding tunnel request message 1286 to the source S-GW 1212 and may receive a delete indirect data forwarding tunnel response message 1287 from the source S-GW 1212.
- the target MME 1210 may then transmit a delete indirect data forwarding tunnel request message 1288 to the target S-GW 1214 and may receive a delete indirect data forwarding tunnel response message 1289 from the target S-GW 1214.
- FIG. 13 illustrates a signal flow diagram 1300 for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 1300 includes a client device 1302, a source network access node 1304, a target network access node 1306, a source serving gateway (S-GW) 1308, a target S-GW 1310, a P-GW 1312, and a local cache server 1314.
- S-GW source serving gateway
- the client device 1302 may transmit a new content fetch request 1316 to the local cache server 1314 via the target network access node 1306.
- the client device 1302 may transmit the new content fetch request 1316 to the target network access node 1306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) .
- the target network access node 1306 may receive the new content fetch request 1316 and may transmit a content fetch request message 1318 to the target S-GW 1310, which may forward the content fetch request message 1318 to the local cache server 1314 via the P-GW 1312.
- the local cache server 1314 may transmit a content fetch response 1320 directly to the target network access node 1306.
- the target network access node 1306 may then transmit the content fetch response 1320 to the client device 1302. Therefore, the signaling procedure within the dotted lines 1315 may be applicable when the client device 1302 transmits a new content fetch request.
- the signaling procedure within the dotted lines 1315 may also be applicable for those cases where data forwarding is not supported in handover and an application layer time out occurs. In such cases, the client device 1302 may retransmit the content fetch request to the local cache server 1314 via the target network access node 1306.
- the client device 1302 may transmit a new content fetch request 1322 to the target network access node 1306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) .
- the target network access node 1306 may receive the new content fetch request 1322 and may forward the new content fetch request to the target S-GW 1310 (e.g., as the message 1324) by applying the user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) .
- GPRS General Packet Radio Service
- GTP-U General Packet Radio Service
- the GTP-U packets carrying the content fetch request may be transmitted to the target S-GW by implementing DASH over IP.
- the target S-GW 1310 may forward the GTP-U packets carrying the content fetch request to the P-GW 1312.
- the P-GW 1312 may then forward the content fetch request to the local cache server 1314 in a message 1326 by implementing DASH over IP.
- the local cache server 1314 may transmit a content response message 1328 (e.g., downlink content data) to the client device 1302 via the P-GW 1312, the target S-GW 1310, and the target network access node 1306. Therefore, the signaling procedure within the dotted lines 1321 may apply when the target network access node 1306 does not support a tunnel between the target network access node 1306 and the local cache server 1314.
- IP Internet Protocol
- a network access node may be configured to interpret Internet Layer Protocol information, such as data packets based on the Internet Protocol (IP) . Therefore, in an aspect of the present disclosure, the communication between the network access node and a local cache server (e.g., a cache server that is close to the network access node) may be based on IP or a tunnel. When IP is implemented, the network access node may be configured to have a network address translation (NAT) function to change the client device subnet IP address and port to the network access node IP address and port.
- NAT network address translation
- the communication between the local content server and Internet CDN may also be based on IP.
- the content of the local cache server may be pushed by the Internet CDN server or pulled from the Internet CDN (e.g., a content delivery node of the Internet CDN) .
- a network access node may implement IP based on a configurable list of IP addresses.
- Such configurable list of IP addresses may include the IP addresses of local cache servers. Therefore, for each IP packet (e.g., uplink IP packet) received from a client device, if the target IP address of an IP packet is found in the list of IP addresses, the network access mode may consider the target IP address as a special IP address (e.g., an IP address of a local cache server) .
- an uplink IP packet from a client device which includes a request for content may will be routed to the local cache server via an established tunnel for the client device as previously described, or after a network address translation (NAT) operation as previously described.
- the content from a local cache server may be transmitted back to the target network access node directly, and then transmitted to the client device.
- NAT network address translation
- a local cache server may serve a group of network access nodes. In such aspect, duplication of the same content at many local cache servers may be avoided.
- the target IP address of such uplink IP packet may be associated with a local cache server. If the target IP address is not found in the list of IP addresses of the different network access node, the uplink IP packet from the client device may be routed to the Internet as GTP-U packets and then to the local cache server.
- an uplink IP packet may be communicated from the client device to the local cache server along a network path that includes the client device, the different network access node, a serving gateway (S-GW) , a packet data network gateway (P-GW) , and the local cache server.
- a downlink IP packet carrying the requested content may be communicated from the local cache server to the client device along a network path that includes the local cache server, the P-GW, the S-GW, the different network access node, and the client device.
- the local cache server may obtain the requested content from an Internet CDN (e.g., a content delivery node of the Internet CDN) for the client device.
- an Internet CDN e.g., a content delivery node of the Internet CDN
- FIG. 14 illustrates a diagram of a network architecture 1400 for content delivery with a local cache in accordance with various aspects of the disclosure.
- the network architecture 1400 includes a client device 1402, a network access node 1404, a backhaul 1406, a packet data network gateway (P-GW) 1408, a backbone 1410, a content delivery node 1412, and a local cache server 1414.
- the P-GW 1408 is in communication with the network access node 1404 via the backhaul 1406 and is in communication with the content delivery node 1412 via the backbone 1410.
- the client device 1402 may transmit an IP packet 1416 that includes a content request to the network access node 1404.
- the IP packet 1416 may include source information and destination information.
- the source information may include the IP address of the client device 1402 and the destination information may include the IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 14) of the local cache server 1414.
- the network access node 1404 may receive the IP packet 1416 and may transmit an IP packet 1418 that includes the content request to the local cache server 1414.
- the network access node 1404 may perform a NAT operation on the source information in the IP packet 1416.
- the network access node 1404 may translate the IP address and port of the client device 1402 to the IP address and port of the network access node 1404.
- the IP packet 1418 may include the IP address and port of the network access node 1404 as the source information and the IP address of the local cache server 1414 as destination information.
- the local cache server 1414 may receive the IP packet 1418 and may determine whether the requested content is stored at the local cache server 1414. When the requested content is stored at the local cache server 1414 (e.g., when a cache hit occurs) , the local cache server 1414 may transmit an IP packet 1420 that includes a content response (e.g., at least a portion of the requested content) to the network access node 1404.
- a content response e.g., at least a portion of the requested content
- the local cache server 1414 may transmit the IP packet 1420 directly to the network access node 1404.
- the network access node 1404 may receive the IP packet 1420 and may transmit an IP packet 1422 that includes the content response to the client device 1402.
- the network access node 1404 may perform a NAT operation on the destination information in the IP packet 1420.
- the network access node 1404 may translate the IP address and port of the network access node 1404 to the IP address and port of the client device 1402.
- the IP packet 1422 may include the IP address and port of the local cache server 1414 as the source information and may include the IP address of the client device 1402 as the destination information.
- anti-spoofing features may be disabled to allow NAT operations.
- FIG. 15 illustrates a diagram 1500 of a client device protocol stack 1502, network access node protocol stack 1504, and a local cache server protocol stack 1506 in accordance with various aspects of the disclosure.
- the client device protocol stack 1502 may be implemented at the client device 1402 in FIG. 14, the network access node protocol stack 1504 may be implemented at the network access node 1404 in FIG. 14, and the local cache server protocol stack 1506 may be implemented at the local cache server 1414 in FIG. 14.
- the client device protocol stack 1502 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) , and an Internet Protocol (IP) layer.
- PHY physical
- MAC media access control
- RLC radio link layer
- PDCP packet data convergence protocol
- IP Internet Protocol
- the network access node protocol stack 1504 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) , and an Internet Protocol (IP) layer.
- the PDCP layer, the RLC layer, and the MAC layer may interface with the Layer 2 protocol (L2) layer, and the PHY layer may interface with the Layer 1 protocol (L1) layer.
- the local cache server 1506 may include an L1 layer, an L2 layer, and an IP layer.
- FIG. 16 illustrates a signal flow diagram 1600 of a signaling procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 1600 includes a client device 1602, a network access node 1604, a local cache server 1606, a serving gateway (S-GW) 1608, a packet data network gateway (P-GW) 1610, a local domain name system (local DNS) server 1612, a firewall 1614, a domain name system (DNS) server 1616, and a global server load balancing (GSLB) node 1618.
- client device 1602, the network access node 1604, the local cache serve 1606, and the P-GW 1610 of FIG. 16 respectively correspond to the client device 1402, the network access node 1404, the local cache server 1414, and the P-GW 1408 of FIG. 14.
- the client device 1602 may determine 1620 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 1606) with the assistance of the P-GW 1610 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7.
- the GSLB node 1618 may direct the client device 1602 to the local cache server 1606.
- the client device 1602 may transmit an IP packet 1622 (e.g., an uplink IP packet) that includes a Hypertext Transfer Protocol (HTTP) request to the network access node 1604.
- the IP packet 1622 may include source information and destination information.
- the source information may include the IP address of the client device 1602 and the destination information may include the IP address (e.g., IP address “A” ) of the local cache server 1606.
- the network access node 1604 may receive the IP packet 1622 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) .
- the network access node 1604 may perform a network address translation (NAT) operation on the source information in the IP packet 1622. For example, the network access node 1604 may translate the IP address and port of the client device 1602 to the IP address and port of the network access node 1604.
- NAT network address translation
- the network access node 1604 may transmit an IP packet 1626 that includes the HTTP request to the local cache server 1606, where the IP packet 1626 includes the IP address and port of the network access node 1604 as the source information and the IP address of the local cache server 1606 as the destination information.
- the local cache server 1606 may receive the IP packet 1626 and may determine whether the requested HTTP is stored at the local cache server 1606. When the requested HTTP is stored at the local cache server 1606 (e.g., when a cache hit occurs) , the local cache server 1606 may transmit an IP packet 1628 that includes an HTTP response (e.g., at least a portion of the requested HTTP) directly to the network access node 1604.
- the network access node 1604 may receive the IP packet 1628 and may perform a NAT operation on the destination information in the IP packet 1628. For example, the network access node 1604 may translate the IP address and port of the network access node 1604 to the IP address and port of the client device 1602. Accordingly, the network access node 1604 may transmit an IP packet 1632 that includes an HTTP response to the client device 1602, where the IP packet 1632 includes the IP address and port of the client device 1602 as the source information and may include the IP address of the local cache server 1606 as the destination information. The network access node 1604 may then transmit data volume information 1634 to the P-GW 1610. Therefore, in the aspect described with reference to FIG. 16, the network access node 1608 serves as a proxy for client device 1602.
- FIG. 17 illustrates a signal flow diagram 1700 of a handover procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 1700 includes a client device 1702, a source network access node 1704, a target network access node 1706, a source mobility management entity (MME) 1708, a target MME 1710, a source serving gateway (S-GW) 1712, a target S-GW 1714, a packet data network gateway (P-GW) 1716, and a local cache server (local CS) 1718.
- MME mobility management entity
- S-GW source serving gateway
- P-GW packet data network gateway
- the P-GW 1716 transmits downlink (DL) data 1720 (also referred to as DL user plane data) intended for the client device 1702.
- DL data 1720 may be received by the source S-GW 1712 and forwarded to the source network access node 1704.
- the source network access node 1704 may transmit the DL data 1720 to the client device 1702.
- the local cache server 1718 may transmit downlink (DL) data 1722 intended for the client device 1702 directly to the source network access node 1704.
- the source network access node 1704 may determine 1724 to initiate a handover of the client device 1702 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 1704 to the target network access node 1706.
- the source network access node 1704 may transmit a message 1726 to the source MME 1708 indicating that a handover is required.
- the Source MME 1708 may transmit a forward relocation request message 1728 to the selected target MME 1710.
- the target MME 1710 may transmit a create session request message 1730 to the target S-GW 1714 and may receive a create session response message 1732.
- the create session response message 1732 may include S-GW addresses and TEIDs for uplink traffic.
- the target MME 1710 may transmit a handover request 1734 to the target network access node 1706 and may receive a handover request acknowledgment (ACK) 1736.
- the target MME 1710 may transmit a create indirect data forwarding tunnel request 1738 to the target S-GW 1714 if the source S-GW 1712 is relocated.
- the target MME 1710 may receive a create indirect data forwarding tunnel response message 1740.
- the target MME 1710 may transmit a forward relocation response message 1742 to the source MME 1708 in response to the forward relocation request message 1728.
- the source MME 1708 may transmit a create indirect data forwarding tunnel request message 1744 to the source S-GW 1712.
- the source MME 1708 may receive a create indirect data forwarding tunnel response message 1746 from the source S-GW 1712.
- the source MME 1708 may transmit a handover command 1748 to the source network access node 1704.
- the source network access node 1704 may transmit the handover command 1749 to the client device 1702. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 1704 may transmit a network access node status transfer message 1750 to the source MME 1708.
- PDCP Packet Data Convergence Protocol
- the network access node status transfer message 1750 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers.
- HFN Hyper Frame Number
- the source MME 1708 may transmit a forward access context notification message 1752 to the target MME 1710 and may receive a forward access context acknowledgment (ACK) message 1754.
- the target MME 1710 may transmit an MME status transfer message 1756 to the target network access node 1706. If direct data forwarding applies, the source network access node 1704 may forward 1758 data packets to the target network access node 1706.
- the source network access node 1704 may forward 1760 data packets to the source S-GW 1712.
- the source S-GW 1712 may forward the data packets to the target S-GW 1714, and the target S-GW 1714 may forward the data packets to the target network access node 1706.
- the client device 1702 may detach 1762 from the old cell (e.g., the source network access node 1704) and may synchronize to the new cell (e.g., the target network access node 1706) .
- the client device 1702 may then transmit a handover confirm message 1764 to the target network access node 1706.
- the target network access node 1706 may then transmit downlink data packets 1766 that were forwarded from the source network access node 1704 (e.g., the data packets that were forwarded from the source network access node 1704 via direct or indirect forwarding as previously described) to the client device 1702.
- the client device 1702 may transmit uplink user plane data 1768 to the target network access node 1706.
- the target network access node 1706 may forward the uplink user plane data to the P-GW 1716 via the target S-GW 1714.
- the uplink user plane data 1768 may include an uplink content request (e.g., an IP packet) that indicates the IP address of the local cache server 1718 as the destination address.
- the uplink content request may be an HTTP request.
- the target network access node 1706 may perform a network address translation operation by translating the source address of the uplink content request (e.g., IP packet) from the IP address of the client device 1702 to the IP address of the target network access node 1706.
- the target network access node 1706 may then transmit the uplink content request (e.g., uplink content request 1769 in FIG. 17B) to the local cache server 1718.
- the target network access node 1706 may transmit a handover notify message 1770 to the target MME 1710.
- the target MME 1710 may transmit a forward relocation complete notification message 1771 to the source MME 1708 and may receive a forward relocation complete acknowledgment (ACK) message 1772.
- the target MME 1710 may transmit 1773 a modify bearer request message 1773 to the target S-GW 1714. If the source S-GW 1712 has been relocated, the target S-GW 1714 may transmit a modify bearer request message 1774 to the P-GW 1716 and may receive a modify bearer response message 1775.
- the target S-GW 1714 may transmit a modify bearer response message 1776 to the target MME 1710.
- the local cache server 1718 may transmit downlink data 1779 (e.g., IP data packets carrying content requested by the client device 1702) to the target network access node 1706.
- the target network access node 1706 may perform a network address translation operation on the IP data packets of the downlink data 1779 (e.g., translate the destination information of the downlink IP data packets from the IP address of the target network access node 1706 to the IP address of the client device 1702) and may transmit the downlink data from the local cache server 1718 to the client device 1702.
- the P-GW 1716 may transmit downlink user plane data 1780 to the target S-GW 1714.
- the target S-GW 1714 may forward the downlink user plane data to the client device 1702 via the target network access node 1706.
- the client device 1702 may initiate a Tracking Area Update procedure 1781.
- the source MME 1708 may transmit a delete session request message 1782 to the source S-GW 1712.
- the source MME 1708 may further transmit a client device context release command 1783 to the source network access node 1704 and may receive a client device context release complete message 1784.
- the source MME 1708 may receive a delete session response message 1785 from the source S-GW 1712.
- the source MME 1708 may then transmit a delete indirect data forwarding tunnel request message 1786 to the source S-GW 1712 and may receive a delete indirect data forwarding tunnel response message 1787 from the source S-GW 1712.
- the target MME 1710 may then transmit a delete indirect data forwarding tunnel request message 1788 to the target S-GW 1714 and may receive a delete indirect data forwarding tunnel response message 1789 from the target S-GW 1714.
- FIG. 18 illustrates a diagram of a network architecture 1800 for content delivery with a local cache server in accordance with various aspects of the disclosure.
- the network architecture 1800 includes a client device 1802, a network access node 1804, a backhaul 1806, a packet data network gateway (P-GW) 1808, a backbone 1810, a content delivery node 1812, and a local cache server 1814.
- P-GW packet data network gateway
- the P-GW 1808 is in communication with the network access node 1804 via the backhaul 1806 and is in communication with the content delivery node 1812 via the backbone 1810.
- the client device 1802 may transmit an IP packet 1816 that includes a content request to the network access node 1804.
- the IP packet 1816 may include source information and destination information.
- the source information may include the IP address of the client device 1802 and the destination information may include the IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 18) of the local cache server 1814.
- the network access node 1804 may receive the IP packet 1816 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) . Therefore, the network access node 1804 may determine that the IP packet 1816 is intended for the local cache server 1814.
- the network access node 1804 may trigger establishment of a tunnel (e.g., the tunnel 1822) .
- the network access node may transmit an IP packet 1818 that includes the content request to the local cache server 1814 via the tunnel 1822.
- the network access node may transmit the IP packet 1818 directly to the local cache server 1814 via the tunnel 1822.
- the IP packet 1818 may include the IP address of the client device 1802 as the source information and the IP address of the local cache server 1814 as destination information.
- the local cache server 1814 may receive the IP packet 1818 and may determine whether the requested content is stored at the local cache server 1814. When the requested content is stored at the local cache server 1814 (e.g., when a cache hit occurs) , the local cache server 1814 may transmit an IP packet 1820 that includes a content response (e.g., at least a portion of the requested content) to the network access node 1804 via the tunnel 1822. In some aspects, the local cache server 1814 may transmit the IP packet 1820 directly to the network access node 1804 via the tunnel 1822.
- a content response e.g., at least a portion of the requested content
- the IP packet 1820 may include the IP address of the local cache server 1814 as the source information and the IP address of the client device 1802 as the destination information.
- the network access node 1804 may receive the IP packet 1820 and may transmit an IP packet 1824 that includes the content response to the client device 1802.
- the IP packet 1824 may include the IP address of the local cache server 1814 as the source information and may include the IP address of the client device 1802 as the destination information.
- FIG. 19 illustrates a diagram of an interface 1900 including a mobile device protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure.
- the interface 1900 may be a Uu interface.
- the client device protocol stack 1902 may be implemented at the client device 1802 in FIG. 18, and the network access node protocol stack 1904 may be implemented at the network access node 1804 in FIG. 18.
- the client device protocol stack 1902 and the network access node protocol stack 1904 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) layer, and an Internet Protocol (IP) layer.
- PHY physical
- MAC media access control
- RLC radio link layer
- PDCP packet data convergence protocol
- IP Internet Protocol
- FIG. 20 illustrates a diagram of an interface 2000 including a network access node protocol stack 2002 and a local cache server protocol stack 2004 in accordance with various aspects of the disclosure.
- the network access node protocol stack 2002 may be implemented at the network access node 1804 in FIG. 18, and the local cache server protocol stack 2004 may be implemented at the local cache server 1814 in FIG. 18.
- the network access node protocol stack 2002 and the local cache server protocol stack 2004 include a General Packet Radio Service (GPRS) Tunneling Protocol (GTP) layer, a User Datagram Protocol (UDP) layer, an Internet Protocol (IP) layer, a Layer 2 protocol (L2) layer, and a Layer 1 protocol (L1) layer.
- GPRS General Packet Radio Service
- GTP General Packet Radio Service
- UDP User Datagram Protocol
- IP Internet Protocol
- L2 Layer 2 protocol
- L1 Layer 1 protocol
- FIG. 21 illustrates a signal flow diagram 2100 of a signaling procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 2100 includes a client device 2102, a network access node 2104, a local cache server 2106, a serving gateway (S-GW) 2108, a packet data network gateway (P-GW) 2110, a local domain name system (local DNS) server 2112, a firewall 2114, a domain name system (DNS) server 2116, and a global server load balancing (GSLB) node 2118.
- client device 2102, the network access node 2104, the local cache serve 2106, and the P-GW 2110 of FIG. 21 respectively correspond to the client device 1802, the network access node 1804, the local cache server 1814, and the P-GW 1808 of FIG. 18.
- the client device 2102 may determine 2120 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 2106) with the assistance of the P-GW 2110 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7.
- the GSLB node 2118 may direct the client device 2102 to the local cache server 2106.
- the client device 2102 may transmit an IP packet 2122 (e.g., an uplink IP packet) that includes a Hypertext Transfer Protocol (HTTP) request to the network access node 2104.
- the IP packet 2122 may include source information and destination information.
- the source information may include the IP address of the client device 2102 and the destination information may include the IP address (e.g., IP address “A” ) of the local cache server 2106.
- the network access node 2104 may receive the IP packet 2122 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) .
- the network access node 2104 may determine that a tunnel between the network access node 2104 and local cache server 2106 has not been established for the client device 2102.
- the network access node 2104 may trigger establishment of a tunnel by transmitting a create tunnel request message 2124 to the local cache server 2106.
- the network access node 2104 may receive a create tunnel response message 2126 from the local cache server 2106.
- the network access node 2104 may transmit an HTTP request message 2128 directly to the local cache server 2106 via the established tunnel.
- the local cache server 2106 may transmit an HTTP response message 2130 (e.g., the HTTP response message 2130 including at least a portion of the requested HTTP) directly to the network access node 2104 via the established tunnel.
- the network access node 2104 may transmit an IP packet 2132 that includes the HTTP response from the local cache server 2106 to the client device 2102.
- the IP packet 2132 may include the IP address of the local cache server 2106 as the source information and the IP address of the client device 2102 as the destination information (also referred to as target destination information) .
- the network access node 2104 may then transmit data volume information 2134 to the P-GW 2110.
- FIG. 22 illustrates a signal flow diagram 2200 of a handover procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 2200 includes a client device 2202, a source network access node 2204, a target network access node 2206, a source mobility management entity (MME) 2208, a target MME 2210, a source serving gateway (S-GW) 2212, a target S-GW 2214, a packet data network gateway (P-GW) 2216, and a local cache server (local CS) 2218.
- MME mobility management entity
- S-GW source serving gateway
- P-GW packet data network gateway
- the P-GW 2216 transmits downlink (DL) data 2220 (also referred to as DL user plane data) intended for the client device 2202.
- DL data 2220 may be received by the source S-GW 2212 and forwarded to the source network access node 2204.
- the source network access node 2204 may transmit the DL data 2220 to the client device 2202.
- the local cache server 2218 may transmit downlink (DL) data 2222 intended for the client device 2202 directly to the source network access node 2204.
- the source network access node 2204 may determine 2224 to initiate a handover of the client device 2202 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 2204 to the target network access node 2206.
- the source network access node 2204 may transmit a message 2226 to the source MME 2208 indicating that a handover is required.
- the message 2226 may include the downlink GPRS tunneling protocol user plane (GTP-U) tunnel endpoint identifier (TEID) for the local cache server 2218 to be set up by target network access node 2206.
- the source MME 2208 may transmit a forward relocation request message 2228 to the selected target MME 2210. As shown in FIG.
- the target MME 2210 may transmit a create session request message 2230 to the target S-GW 2214 and may receive a create session response message 2232.
- the create session response message 2232 may include S- GW addresses and TEIDs for uplink traffic.
- the target MME 2210 may transmit a handover request 2234 to the target network access node 2206 and may receive a handover request acknowledgment (ACK) 2236.
- ACK handover request acknowledgment
- the target network access node 2206 may establish a GTP-U tunnel TEID_CS.
- the GTP-U tunnel TEID_CS may enable the target network access node 2206 to receive downlink data from the source network access node 2204, where the downlink data was previously forwarded to the source network access node 2204 from the local cache server 2218.
- the target MME 2210 may transmit a create indirect data forwarding tunnel request 2238 to the target S-GW 2214 if the source S-GW 2212 is relocated.
- a GTP-U tunnel TEID for the local cache server 2218 may be established at the target S-GW 2214 if indirect data forwarding is needed.
- the target MME 2210 may receive a create indirect data forwarding tunnel response message 2240.
- the target MME 2210 may transmit a forward relocation response message 2242 to the source MME 2208 in response to the forward relocation request message 2228. If indirect data forwarding is to be implemented, the source MME 2208 may transmit a create indirect data forwarding tunnel request message 2244 to the source S-GW 2212.
- the source MME 2208 may receive a create indirect data forwarding tunnel response message 2246 from the source S-GW 2212.
- the source MME 2208 may transmit a handover command 2248 to the source network access node 2204.
- the source network access node 2204 may transmit the handover command 2249 to the client device 2202. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 2204 may transmit a network access node status transfer message 2250 to the source MME 2208.
- the network access node status transfer message 2250 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers.
- PDCP Packet Data Convergence Protocol
- HFN Hyper Frame Number
- the source MME 2208 may transmit a forward access context notification message 2252 to the target MME 2210 and may receive a forward access context acknowledgment (ACK) message 2254.
- the target MME 2210 may transmit an MME status transfer message 2256 to the target network access node 2206.
- the source network access node 2204 may forward 2258 data packets to the target network access node 2206.
- the source network access node 2204 may forward 2260 data packets to the source S-GW 2212.
- the source S-GW 2212 may forward the data packets to the target S-GW 2214, and the target S-GW 2214 may forward the data packets to the target access node 2206.
- the client device 2202 may detach 2262 from the old cell (e.g., the source network access node 2204) and may synchronize to the new cell (e.g., the target network access node 2206) .
- the client device 2202 may then transmit a handover confirm message 2264 to the target network access node 2206.
- the target network access node 2206 may then transmit downlink data packets 2266 that were forwarded from the source network access node 2204 (e.g., the data packets that were forwarded from the source network access node 2204 via direct or indirect forwarding as previously described) to the client device 2202.
- the client device 2202 may transmit uplink user plane data 2268 to the target network access node 2206.
- the target network access node 2206 may forward the uplink user plane data to the P-GW 2216 via the target S-GW 2214.
- the target network access node 2206 may transmit a handover notify message 2270 to the target MME 2210.
- the target MME 2210 may transmit a forward relocation complete notification message 2271 to the source MME 2208 and may receive a forward relocation complete acknowledgment (ACK) message 2272.
- the target MME 2210 may transmit a modify bearer request message 2273 to the target S-GW 2214. If the source S-GW 2212 has been relocated, the target S-GW 2214 may transmit a modify bearer request message 2274 to the P-GW 2216 and may receive a modify bearer response message 2275.
- the target S-GW 2214 may transmit a modify bearer response message 2276 to the target MME 2210.
- the P-GW 2216 may transmit downlink user plane data 2280 to the target S-GW 2214.
- the target S-GW 2214 may forward the downlink user plane data to the client device 2202 via the target network access node 2206.
- the client device 2202 may initiate a Tracking Area Update procedure 2281.
- the source MME 2208 may transmit a delete session request message 2282 to the source S-GW 2212.
- the source MME 2208 may further transmit a client device context release command 2283 to the source network access node 2204 and may receive a client device context release complete message 2284.
- the source network access node 2204 may transmit an update tunnel indication message 2285 to the local cache server 2218 after the client device 2202 has established a connection to the target network access node 2206.
- the update tunnel indication message 2285 may notify the local cache server 2218 to update (e.g., switch) the downlink GTP-U TEID from the source network access node 2204 to the target network access node 2206. Thereafter, the local cache server 2218 may transmit downlink data (e.g., IP data packets carrying content requested by the client device 2202) directly to the target network access node 2206.
- the source MME 2208 may receive a delete session response message 2286 from the source S-GW 2212.
- the source MME 2208 may then transmit a delete indirect data forwarding tunnel request message 2287 to the source S-GW 2212 and may receive a delete indirect data forwarding tunnel response message 2288 from the source S-GW 2212.
- the target MME 2210 may then transmit a delete indirect data forwarding tunnel request message 2289 to the target S-GW 2214 and may receive a delete indirect data forwarding tunnel response message 2290 from the target S-GW 2214.
- the local cache server 2218 may transmit downlink data (e.g., IP data packets carrying content requested by the client device 2202) directly to the target network access node 2206.
- the target network access node 2206 may forward the downlink data from the local cache server 2218 to the client device 2202.
- FIG. 23 illustrates a signal flow diagram 2300 for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
- the signal flow diagram 2300 includes a client device 2302, a source network access node 2304, a target network access node 2306, a source serving gateway (S-GW) 2308, a target S-GW 2310, a P-GW 2312, and a local cache server 2314.
- S-GW source serving gateway
- the client device 2302 may transmit a new content fetch request 2316 to the local cache server 2314 via the target network access node 2306.
- the client device 2302 may transmit the new content fetch request 2316 to the target network access node 2306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) .
- the target network access node 2306 may receive the new content fetch request 2316 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) .
- the target network access node 2306 may further determine a tunnel established between the target network access node 2306 and the local cache server 2314 for the client device 2302.
- the target network access node 2306 may transmit a content fetch request message 2318 directly to the local cache server 2314 over the tunnel.
- the local cache server 2314 may transmit a content fetch response 2320 directly to the target network access node 2306 over the tunnel.
- the target network access node 2306 may then transmit the content fetch response 2320 to the client device 2302. Therefore, the signaling procedure within the dotted lines 2315 may be applicable when the client device 2302 transmits a new content fetch request.
- the signaling procedure within the dotted lines 2315 may also be applicable for those cases where data forwarding is not supported in handover and an application layer time out occurs. In such cases, the client device 2302 may retransmit the content fetch request to the local cache server 2314 via the target network access node 2306.
- the client device 2302 may transmit a new content fetch request 2322 to the target network access node 2306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) .
- the target network access node 2306 may receive the new content fetch request 2322 and may determine that the destination information indicates an IP address that is not within a configurable list of IP addresses (e.g., local CS IP addresses) .
- the target network access node 230 may forward the new content fetch request to the target S-GW 2310 (e.g., as the message 2324) by applying the user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) .
- GPRS General Packet Radio Service
- the GTP-U packets carrying the content fetch request may be transmitted to the target S-GW 2310 by implementing DASH over IP.
- the target S-GW 2310 may forward the GTP-U packets carrying the content fetch request to the P-GW 2312.
- the P-GW 2312 may then forward the content fetch request to the local cache server 2314 in a message 2326 by implementing DASH over IP.
- the local cache server 2314 may transmit a content response message 2328 (e.g., downlink content data) to the client device 2302 via the P-GW 2312, the target S-GW 2310, and the target network access node 2306. Therefore, the signaling procedure within the dotted lines 2321 may apply when the destination information in a new content fetch request from the client device 2302 indicates an IP address that is not within a configurable list of IP addresses.
- the serving network access node In both the packet forwarding approach and the IP aware radio access network (RAN) approach, from the serving network access node perspective, there may be two downlink data flows. For example, one data flow may be received by the serving network access node from an S-GW, while another data flow may be received from a local cache server.
- the serving network access node may combine the data flow from the local cache server into the bearer in which the client device sends the uplink content request. This may be similar to the operation of a target network access node in a handover scenario with data forwarding.
- the serving network access node may add a PDCP number to data packets according to the packet arrival order and may then deliver the data packets to client device in the air interface.
- the serving network access node e.g., a network access node currently transmitting content (e.g., IP data packets) to a client device
- content e.g., IP data packets
- the serving network access node may not have IP aware capability in the packet forwarding approach.
- the serving network access node may have IP aware capability in the IP aware RAN approach.
- the serving network access node may be capable of interpreting the Internet Protocol (IP) layer.
- IP Internet Protocol
- a network node e.g., a P-GW or MME may trigger setup of a direct tunnel between a local cache server and the serving network access node in addition to providing information associated with the serving network access node of the client device.
- the network node may not set up a separate tunnel between the serving network access node and the local cache server.
- the data packets are sent from/to the serving network access node to/from the local cache server via NAT IP packets or a tunnel which is set up by the serving network access node.
- the uplink content fetch request is routed to the network node via the legacy EPS bearer, then routed to the local cache server.
- the uplink packets targeted to the configured IP address may be routed to the local cache server directly by the serving network access node.
- the downlink packets containing the content from the local cache server may be transmitted to the client device via a client device specific direct tunnel between the serving network access node and the local cache server.
- the downlink packets are sent back to the client device via the legacy IP routing (NAT approach) or a tunnel (tunnel approach) .
- a network node e.g. a P-GW or MME in a mobile network (e.g. an LTE network) may assist a GSLB node in selecting a CDN cache server for the client device. This may be useful when cache servers are deployed below the P-GW level (e.g., proximate to the serving network access node) , which is also referred to as a mobile CDN (MCDN) configuration.
- the MCDN may either work standalone or as a further acceleration of Internet CDN in a hierarchal type configuration.
- LTE Long Term Evolution
- LTE related entities e.g., the manner in which a P-GW may provide assistance in determining the local cache server of a serving network access node
- the assistance provided by a network node may have two aspects: 1) the manner in which a local cache server is located for a client device and 2) the manner in which content requested by the client device is delivered from a content server (e.g., a content delivery node of a CDN) to the serving network access node directly.
- a content server e.g., a content delivery node of a CDN
- Two example network architectures and associated procedures for location of the local cache server may involve application level gateway (ALG) network address translation (NAT) and an SLB device in a 3GPP network.
- ALG application level gateway
- NAT network address translation
- SLB device SLB device in a 3GPP network.
- the DNS may be configured with DNS protocol enhancement/extension to enable the DNS to know the querying client device’s IP address in a recursive querying approach.
- two example approaches include: 1) packet forwarding and 2) IP aware RAN. Because NAT is widely used in mobile Internet, the aspects disclosed herein take NAT into consideration. If NAT is not implemented, the approaches described herein may be used by simply excluding operations and functions related to NAT. In comparison to the Selected IP Traffic Offload (SIPTO) /local gateway (L-GW) with Internet CDN approach, the aspects described herein do not expose the network access node to the Internet. Therefore, the aspects described herein may have reduced costs in IP security and networking.
- SIPTO Selected IP Traffic Offload
- L-GW local gateway
- FIG. 24 is an illustration of an apparatus 2400 configured to communicate in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIG. 25 described below) .
- the apparatus 2400 may be a network node (e.g., a P-GW or MME) .
- the apparatus 2400 includes a network communication interface (e.g., at least one transceiver) 2402, a storage medium 2404, a user interface 2406, a memory device 2408, and a processing circuit 2410.
- the signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2410 and the overall design constraints.
- the signaling bus links together various circuits such that each of the network communication interface 2402, the storage medium 2404, the user interface 2406, and the memory device 2408 are coupled to and/or in electrical communication with the processing circuit 2410.
- the signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
- the network communication interface 2402 may be adapted to facilitate communication of the apparatus 2400.
- the network communication interface 2402 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network.
- the network communication interface 2402 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
- the memory device 2408 may represent one or more memory devices. As indicated, the memory device 2408 may maintain network-related information /along with other information used by the apparatus 2400. In some implementations, the memory device 2408 and the storage medium 2404 are implemented as a common memory component. The memory device 2408 may also be used for storing data that is manipulated by the processing circuit 2410 or some other component of the apparatus 2400.
- the storage medium 2404 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information.
- code such as processor executable code or instructions (e.g., software, firmware)
- the storage medium 2404 may also be used for storing data that is manipulated by the processing circuit 2410 when executing code.
- the storage medium 2404 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
- the storage medium 2404 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer.
- a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
- an optical disk e.g., a compact disc (CD) or a digital versatile disc (DVD)
- a smart card e.g., a compact disc (CD)
- the storage medium 2404 may be embodied in an article of manufacture (e.g., a computer program product) .
- a computer program product may include a computer-readable medium in packaging materials.
- the storage medium 2404 may be a non-transitory (e.g., tangible) storage medium.
- the storage medium 2404 may be coupled to the processing circuit 2410 such that the processing circuit 2410 can read information from, and write information to, the storage medium 2404. That is, the storage medium 2404 can be coupled to the processing circuit 2410 so that the storage medium 2404 is at least accessible by the processing circuit 2410, including examples where at least one storage medium is integral to the processing circuit 2410 and/or examples where at least one storage medium is separate from the processing circuit 2410 (e.g., resident in the apparatus 2400, external to the apparatus 2400, distributed across multiple entities, etc. ) .
- Code and/or instructions stored by the storage medium 2404 when executed by the processing circuit 2410, causes the processing circuit 2410 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2404 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2410, as well as to utilize the network communication interface 2402 for network communication utilizing their respective communication protocols.
- the processing circuit 2410 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2404.
- code or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- the processing circuit 2410 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations.
- the processing circuit 2410 may include circuitry configured to implement desired code provided by appropriate media in at least one example.
- the processing circuit 2410 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code.
- Examples of the processing circuit 2410 may include a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine.
- the processing circuit 2410 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2410 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
- the processing circuit 2410 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein.
- the term “adapted” in relation to the processing circuit 2410 may refer to the processing circuit 2410 being one or more of configured, employed, implemented, and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
- the processing circuit 2410 may include one or more of a receiving circuit/module 2420, a transmitting circuit/module 2422, an identification information obtaining circuit/module 2424, a local cache server information obtaining circuit/module 2425, and a tunnel requesting circuit/module 2426 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIG. 25) .
- the receiving circuit/module 2420 may include circuitry and/or instructions (e.g., receiving instructions 2430 stored on the storage medium 2404) adapted to perform several functions relating to, for example, receiving, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device.
- the transmitting circuit/module 2422 may include circuitry and/or instructions (e.g., transmitting instructions 2432 stored on the storage medium 2404) adapted to perform several functions relating to, for example, transmitting the identification information associated with the network access node to the network entity.
- the identification information obtaining circuit/module 2424 may include circuitry and/or instructions (e.g., identification information obtaining instructions 2434 stored on the storage medium 2404) adapted to perform several functions relating to, for example, obtaining the identification information associated with the network access node.
- the local cache server information obtaining circuit/module 2425 may include circuitry and/or instructions (e.g., local cache server information obtaining instructions 2435 stored on the storage medium 2404) adapted to perform several functions relating to, for example, obtaining information associated with a local cache server that is proximate to a network access node serving a client device.
- the tunnel requesting circuit/module 2426 may include circuitry and/or instructions (e.g., tunnel requesting instructions 2436 stored on the storage medium 2404) adapted to perform several functions relating to, for example, transmitting a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
- circuitry and/or instructions e.g., tunnel requesting instructions 2436 stored on the storage medium 2404
- instructions stored by the storage medium 2404 when executed by the processing circuit 2410, causes the processing circuit 2410 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2404 may include one or more of the receiving instructions 2430, the transmitting instructions 2432, the identification information obtaining instructions 2434, the local cache server information obtaining instructions 2435, and/or the tunnel requesting instructions 2436.
- FIG. 25 is a flowchart 2500 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network node (e.g., a P-GW, an MME, or the apparatus 2400) . It should be understood that the operations indicated by dotted lines in FIG. 25 represent optional operations.
- a network node e.g., a P-GW, an MME, or the apparatus 2400.
- a first network node may receive, from a network entity, a first request for identification information associated with a network access node serving a client device, the first request including an identifier associated with the client device 2502.
- the network entity is a global server load balancing (GSLB) node of a content delivery network or a server load balancing (SLB) device.
- the first network node may obtain the identification information associated with the network access node 2504.
- the first network node may obtain the identification information by transmitting a second request to a second network node, the second request being for the identification information associated with the network access node, and receiving the identification information associated with the network access node from the second network node.
- the first network node may transmit the identification information associated with the network access node to the network entity 2506.
- the first network node may obtain information associated with a local cache server that is proximate to a network access node serving a client device 2508.
- the local cache server and the network access node may be located at or near an edge of a network (e.g., at or near the edge of a backhaul) .
- the first network node may receive information associated with the local cache server.
- the information associated with a local cache server may be a network address of the local cache server.
- the first network node may transmit a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node from the local cache server 2510.
- the request for a tunnel may be the request message 1024 previously described with reference to FIG. 10.
- FIG. 26 is an illustration of an apparatus 2600 configured to communicate in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIGS. 27, 28 described below) .
- the apparatus 2600 may be a network access node.
- the apparatus 2600 includes a communication interface (e.g., at least one transceiver) 2602, a network communication interface 2603, a storage medium 2604, a user interface 2606, a memory device 2608, and a processing circuit 2610.
- a communication interface e.g., at least one transceiver
- the apparatus 2600 includes a communication interface (e.g., at least one transceiver) 2602, a network communication interface 2603, a storage medium 2604, a user interface 2606, a memory device 2608, and a processing circuit 2610.
- the signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2610 and the overall design constraints.
- the signaling bus links together various circuits such that each of the communication interface 2602, the network communication interface 2603, the storage medium 2604, the user interface 2606, and the memory device 2608 are coupled to and/or in electrical communication with the processing circuit 2610.
- the signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
- the communication interface 2602 may be adapted to facilitate wireless communication of the apparatus 2600.
- the communication interface 2602 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more communication devices in a network.
- the communication interface 2602 may be coupled to one or more antennas 2612 for wireless communication within a wireless communication system.
- the communication interface 2602 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
- the communication interface 2602 includes a transmitter 2614 and a receiver 2616.
- the network communication interface 2603 may be adapted to facilitate communication of the apparatus 2600.
- the network communication interface 2603 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network.
- the network communication interface 2603 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
- the memory device 2608 may represent one or more memory devices. As indicated, the memory device 2608 may maintain network-related information /along with other information used by the apparatus 2600. In some implementations, the memory device 2608 and the storage medium 2604 are implemented as a common memory component. The memory device 2608 may also be used for storing data that is manipulated by the processing circuit 2610 or some other component of the apparatus 2600.
- the storage medium 2604 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information.
- code such as processor executable code or instructions (e.g., software, firmware)
- the storage medium 2604 may also be used for storing data that is manipulated by the processing circuit 2610 when executing code.
- the storage medium 2604 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
- the storage medium 2604 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer.
- a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
- an optical disk e.g., a compact disc (CD) or a digital versatile disc (DVD)
- a smart card e.g., a compact disc (CD)
- the storage medium 2604 may be embodied in an article of manufacture (e.g., a computer program product) .
- a computer program product may include a computer-readable medium in packaging materials.
- the storage medium 2604 may be a non-transitory (e.g., tangible) storage medium.
- the storage medium 2604 may be coupled to the processing circuit 2610 such that the processing circuit 2610 can read information from, and write information to, the storage medium 2604. That is, the storage medium 2604 can be coupled to the processing circuit 2610 so that the storage medium 2604 is at least accessible by the processing circuit 2610, including examples where at least one storage medium is integral to the processing circuit 2610 and/or examples where at least one storage medium is separate from the processing circuit 2610 (e.g., resident in the apparatus 2600, external to the apparatus 2600, distributed across multiple entities, etc. ) .
- Code and/or instructions stored by the storage medium 2604 when executed by the processing circuit 2610, causes the processing circuit 2610 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2604 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2610, as well as to utilize the communication interface 2602 for wireless communication and the network communication interface 2603 for network communication, utilizing their respective communication protocols.
- the processing circuit 2610 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2604.
- code or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- the processing circuit 2610 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations.
- the processing circuit 2610 may include circuitry configured to implement desired code provided by appropriate media in at least one example.
- the processing circuit 2610 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code.
- Examples of the processing circuit 2610 may include a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine.
- the processing circuit 2610 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2610 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
- the processing circuit 2610 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein.
- the term “adapted” in relation to the processing circuit 2610 may refer to the processing circuit 2610 being one or more of configured, employed, implemented, and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
- the processing circuit 2610 may include one or more of a receiving circuit/module 2620, a transmitting circuit/module 2622, a communication link establishing circuit/module 2624, a destination network address determining circuit/module 2626, and/or a network address translating circuit/module 2628 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIGS. 27 and 28) .
- the receiving circuit/module 2620 may include circuitry and/or instructions (e.g., the receiving instructions 2630 stored on the storage medium 2604) adapted to perform several functions relating to, for example, receiving a request for content from a client device, and/or receiving the content from the local cache server via the communication link.
- the transmitting circuit/module 2622 may include circuitry and/or instructions (e.g., the transmitting instructions 2632 stored on the storage medium 2604) adapted to perform several functions relating to, for example, transmitting the content to the client device, transmitting the request for content to a gateway using an Evolved Packet switched System (EPS) bearer, transmitting the first data packet to the local cache server, and/or transmitting the one or more second data packets to the client device.
- EPS Evolved Packet switched System
- the communication link establishing circuit/module 2624 may include circuitry and/or instructions (e.g., the communication link establishing instructions 2634 stored on the storage medium 2604) adapted to perform several functions relating to, for example, establishing a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content.
- the destination network address determining circuit/module 2626 may include circuitry and/or instructions (e.g., the destination network address determining instructions 2636 stored on the storage medium 2604) adapted to perform several functions relating to, for example, determining whether a destination network address in the first data packet corresponds to a network address of the local cache server.
- the network address translating circuit/module 2628 may include circuitry and/or instructions (e.g., the network address translating instructions 2638 stored on the storage medium 2604) adapted to perform several functions relating to, for example, performing a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node, and/or performing a second network address translation operation on one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device.
- a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node
- performing a second network address translation operation on one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device.
- instructions stored by the storage medium 2604 when executed by the processing circuit 2610, causes the processing circuit 2610 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2604 may include one or more of the receiving instructions 2630, the transmitting instructions 2632, the communication link establishing instructions 2634, the destination network address determining instructions 2636, and/or the network address translating instructions 2638.
- FIG. 27 is a flowchart 2700 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network access node (e.g., the apparatus 2600) . It should be understood that the operations indicated by dotted lines in FIG. 27 represent optional operations.
- a network access node e.g., the apparatus 2600
- a network access node may receive a request for content from a client device 2702.
- the network access node may transmit the request for content to a gateway using an Evolved Packet switched System (EPS) bearer 2704.
- EPS Evolved Packet switched System
- the network access node may establish a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content 2706.
- the local cache server and the network access node are located at or near an edge of a network.
- the network access node may receive the content from the local cache server via the communication link 2708.
- the network access node may transmit the content to the client device 2710.
- FIG. 28 is a flowchart 2800 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network access node (e.g., the apparatus 2600) . It should be understood that the operations indicated by dotted lines in FIG. 28 represent optional operations.
- a network access node e.g., the apparatus 2600
- the network access node may receive a request for content from a client device 2802.
- the network access node may establish a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content 2804.
- the local cache server and the network access node are located at or near an edge of a network.
- the network access node may determine whether a destination network address in the first data packet corresponds to a network address of the local cache server 2806.
- the network access node may determine whether a destination network address in the first data packet corresponds to a network address of a local cache server by determining whether the destination network address matches a network address in a list of cache server network addresses.
- the network access node may perform a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node 2808.
- the network access node may transmit the first data packet to the local cache server 2810.
- the network access node may receive the content from the local cache server via the communication link 2812.
- the network access node may perform a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device 2814.
- the network access node may transmit the content to the client device 2816.
- FIG. 29 is an illustration of an apparatus 2900 configured for communication in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIG. 30 described below) .
- the apparatus 2900 may be a network entity (e.g., a GSLB node or an SLB device) .
- the apparatus 2900 includes a network communication interface (e.g., at least one transceiver) 2902, a storage medium 2904, a user interface 2906, a memory device 2908, and a processing circuit 2910.
- a network communication interface e.g., at least one transceiver
- the signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2910 and the overall design constraints.
- the signaling bus links together various circuits such that each of the network communication interface 2902, the storage medium 2904, the user interface 2906, and the memory device 2908 are coupled to and/or in electrical communication with the processing circuit 2910.
- the signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
- the network communication interface 2902 may be adapted to facilitate communication of the apparatus 2900.
- the network communication interface 2902 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network.
- the network communication interface 2902 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
- the memory device 2908 may represent one or more memory devices. As indicated, the memory device 2908 may maintain network-related information /along with other information used by the apparatus 2900. In some implementations, the memory device 2908 and the storage medium 2904 are implemented as a common memory component. The memory device 2908 may also be used for storing data that is manipulated by the processing circuit 2910 or some other component of the apparatus 2900.
- the storage medium 2904 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information.
- code such as processor executable code or instructions (e.g., software, firmware)
- the storage medium 2904 may also be used for storing data that is manipulated by the processing circuit 2910 when executing code.
- the storage medium 2904 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
- the storage medium 2904 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer.
- a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
- an optical disk e.g., a compact disc (CD) or a digital versatile disc (DVD)
- a smart card e.g., a compact disc (CD)
- the storage medium 2904 may be embodied in an article of manufacture (e.g., a computer program product) .
- a computer program product may include a computer-readable medium in packaging materials.
- the storage medium 2904 may be a non-transitory (e.g., tangible) storage medium.
- the storage medium 2904 may be coupled to the processing circuit 2910 such that the processing circuit 2910 can read information from, and write information to, the storage medium 2904. That is, the storage medium 2904 can be coupled to the processing circuit 2910 so that the storage medium 2904 is at least accessible by the processing circuit 2910, including examples where at least one storage medium is integral to the processing circuit 2910 and/or examples where at least one storage medium is separate from the processing circuit 2910 (e.g., resident in the apparatus 2900, external to the apparatus 2900, distributed across multiple entities, etc. ) .
- Code and/or instructions stored by the storage medium 2904 when executed by the processing circuit 2910, causes the processing circuit 2910 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2904 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2910, as well as to utilize the network communication interface 2902 for network communication utilizing their respective communication protocols.
- the processing circuit 2910 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2904.
- code or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- the processing circuit 2910 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations.
- the processing circuit 2910 may include circuitry configured to implement desired code provided by appropriate media in at least one example.
- the processing circuit 2910 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code.
- Examples of the processing circuit 2910 may include a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine.
- the processing circuit 2910 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2910 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
- the processing circuit 2910 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein.
- the term “adapted” in relation to the processing circuit 2910 may refer to the processing circuit 2910 being one or more of configured, employed, implemented, and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
- the processing circuit 2910 may include one or more of a content location request receiving circuit/module 2920, an identification information obtaining circuit/module 2922, and/or a content location transmitting circuit/module 2924 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIG. 30) .
- the content location request receiving circuit/module 2920 may include circuitry and/or instructions (e.g., the content location request receiving instructions 2930 stored on the storage medium 2904) adapted to perform several functions relating to, for example, receiving a first request for a location of content from a client device.
- the identification information obtaining circuit/module 2922 may include circuitry and/or instructions (e.g., the identification information obtaining instructions 2932 stored on the storage medium 2904) adapted to perform several functions relating to, for example, obtaining identification information of a first network access node associated with the client device.
- the content location transmitting circuit/module 2924 may include circuitry and/or instructions (e.g., the content location transmitting instructions 2934 stored on the storage medium 2904) adapted to perform several functions relating to, for example, transmitting the location of the content based on the identification information of the first network access node.
- the storage medium 2904 when executed by the processing circuit 2910, causes the processing circuit 2910 to perform one or more of the various functions and/or process operations described herein.
- the storage medium 2904 may include one or more of the content location request receiving instructions 2930, the identification information obtaining instructions 2932, and/or the content location transmitting instructions 2934,
- FIG. 30 is a flowchart 3000 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network entity (e.g., a GSLB node or the apparatus 2900) .
- a network entity e.g., a GSLB node or the apparatus 2900.
- a network entity may receive a first request for a location of content from a client device 3002.
- the network entity may obtain identification information of a first network access node associated with the client device 3004.
- the local cache server and the network access node are located at or near an edge of a network.
- the network entity may transmit the location of the content based on the identification information of the first network access node 3006.
- aspects of the present disclosure may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
- a process is terminated when its operations are completed.
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc.
- a process corresponds to a function
- its termination corresponds to a return of the function to the calling function or the main function.
- a storage medium may represent one or more devices for storing data, including read-only memory (ROM) , random access memory (RAM) , magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine-readable mediums and, processor-readable mediums, and/or computer-readable mediums for storing information.
- ROM read-only memory
- RAM random access memory
- magnetic disk storage mediums magnetic disk storage mediums
- optical storage mediums flash memory devices and/or other machine-readable mediums and, processor-readable mediums, and/or computer-readable mediums for storing information.
- the terms “machine-readable medium” , “computer-readable medium” , and/or “processor-readable medium” may include, but are not limited to non-transitory mediums such as portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying instruction (s) and/or data.
- various methods described herein may be fully or partially implemented by instructions and/or data that may be stored in a “machine-readable medium” , “computer-readable medium” , and/or “processor-readable medium” and executed by one or more processors, machines and/or devices.
- aspects of the disclosure may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof.
- the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage (s) .
- a processor may perform the necessary tasks.
- a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- a processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
- a storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
In one aspect, a method for a first network node includes obtaining information associated with a local cache server that is proximate to a network access node serving a client device, and transmitting a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server. In another aspect, a method for a network access node includes receiving a request for content from a client device, establishing a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content, receiving the content from the local cache server via the communication link, and transmitting the content to the client device.
Description
CROSS-REFERENCE TO RELATED APPLICATION (S)
This application claims priority to and the benefit of PCT patent application number PCT/CN2015/081925 filed on June 19, 2015, the entire content of which is incorporated herein by reference.
Various features relate to mobile networks, and more particularly to a network architecture with a network gateway assisted local cache.
Background
As the demand for content (e.g., movies, videos, and/or music) by users of client devices (e.g., wireless communication devices) continues to rapidly increase, network access nodes (e.g., base stations, evolved Node Bs (eNBs) , network access points) serving such client devices are consuming large amounts of resources (e.g., backhaul resources) in mobile networks to meet user demand. However, such consumption of resources may cause network congestion, which typically results in degradation of performance (e.g., reduced content downloading/streaming rates) . Although mobile network operators may increase the amount of available resources to meet user demand, the cost of such increase is generally high. Therefore, there is a need for methods and devices that improve content delivery in a mobile network.
SUMMARY
The following presents a simplified summary of some aspects of the disclosure to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated features of the disclosure, and is intended neither to identify key or critical elements of all aspects of the disclosure nor to delineate the scope of any or all aspects of the disclosure. Its sole purpose is to present various
concepts of some aspects of the disclosure in a simplified form as a prelude to the more detailed description that is presented later.
In an aspect, a method for a first network node is provided. The first network node obtains information associated with a local cache server that is proximate to a network access node serving a client device. The first network node transmits a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server. In an aspect, the local cache server and the network access node are located at or near an edge of a network. In an aspect, the first network node receives, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device, obtains the identification information associated with the network access node, and transmits the identification information associated with the network access node to the network entity. In an aspect, obtaining the identification information associated with the network access node includes transmitting a second request to a second network node, the second request being for the identification information associated with the network access node, and receiving the identification information associated with the network access node from the second network node. In an aspect, the information associated with a local cache server is a network address of the local cache server. In an aspect, the network entity is a global server load balancing node of a content delivery network or a server load balancing device. In an aspect, the first network node is a packet data network gateway or a mobility management entity, and wherein the second network node is a serving gateway.
In an aspect, a device is provided. The device includes means for obtaining information associated with a local cache server that is proximate to a network access node serving a client device. The device further includes means for transmitting a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server. In an aspect, the local cache server and the network access node are located at or near an edge of a network. In an aspect, the device further includes means for receiving, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device, means for obtaining the identification information associated
with the network access node, and means for transmitting the identification information associated with the network access node to the network entity. In an aspect, the means for obtaining the identification information associated with the network access node may be configured to transmit a second request to a network node, the second request being for the identification information associated with the network access node, and receive the identification information associated with the network access node from the network node. In an aspect, the information associated with a local cache server is a network address of the local cache server. In an aspect, the network entity is a global server load balancing node of a content delivery network or a server load balancing device. In an aspect, the device is a packet data network gateway or a mobility management entity, and wherein the network node is a serving gateway.
In an aspect, a method for a network access node is provided. The network access node receives a request for content from a client device, establishes a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content, receives the content from the local cache server via the communication link, and transmits the content to the client device. In an aspect, the local cache server and the network access node are located at or near an edge of a network. In an aspect, the network access node transmits the request for content to a gateway using an Evolved Packet switched System (EPS) bearer. In an aspect, the communication link includes a tunnel established using a General Packet Radio Service Tunnel Protocol, and the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets. In an aspect, the network access node transmits the content to the client device by forwarding the content to the client device using a Packet Data Convergence Protocol. In an aspect, the request for content from the client device is included in a first data packet. In such aspect, the network access node determines whether a destination network address in the first data packet corresponds to a network address of the local cache server, performs a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node, and transmits the first data packet to the local cache server. In an aspect, the network access node determines whether the destination network address in the first data packet corresponds to the network address of the local cache server by determining whether the
destination network address matches a network address in a list of cache server network addresses. In an aspect, the content received from the local cache server via the communication link is included in one or more second data packets. In such aspect, the network access node performs a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device, and transmits the one or more second data packets to the client device. In an aspect, the network access node establishes the communication link by establishing a tunnel between the network access node and the local cache server, where the content from the local cache server is received directly from the local cache server through the tunnel. In an aspect, the network access node establishes the communication link by transmitting a request to create a tunnel to the local cache server.
In an aspect, a device is provided. The device includes means for receiving a request for content from a client device, means for establishing a communication link with a local cache server that is proximate to the device, the local cache server configured to store the requested content, means for receiving the content from the local cache server via the communication link, and means for transmitting the content to the client device. In an aspect, the local cache server and the device are located at or near an edge of a network. In an aspect, the device transmits the request for content to a gateway using an Evolved Packet switched System (EPS) bearer. In an aspect, the communication link includes a tunnel established using a General Packet Radio Service Tunnel Protocol, and the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets. In an aspect, the means for transmitting the content to the client device is configured to forward the content to the client device using a Packet Data Convergence Protocol. In an aspect, the request for content from the client device is included in a first data packet. In such aspect, the device further includes means for determining whether a destination network address in the first data packet corresponds to a network address of the local cache server, means for performing a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the device, and means for transmitting the first data packet to the local cache server. In an aspect, the means for
determining whether the destination network address in the first data packet corresponds to the network address of the local cache server is configured to determine whether the destination network address matches a network address in a list of cache server network addresses. In an aspect, the content received from the local cache server via the communication link is included in one or more second data packets. In such aspect, the device further includes means for performing a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the device to the network address of the client device, and means for transmitting the one or more second data packets to the client device. In an aspect, the means for establishing the communication link is configured to establish a tunnel between the device and the local cache server, where the content from the local cache server is received directly from the local cache server through the tunnel. In an aspect, the means for establishing the communication link is configured to transmit a request to create a tunnel to the local cache server.
In an aspect, a method for a network entity is provided. The network entity receives a first request for a location of content from a client device, obtains identification information of a first network access node associated with the client device, and transmits the location of the content based on the identification information of the first network access node. In an aspect, the network entity is a global server load balancing (GSLB) node or a server load balancing (SLB) device. In an aspect, the first network access node is a base station serving the client device or a network gateway (e.g., a packet data network gateway (P-GW) ) associated with the client device. In an aspect, obtaining the identification information of the first network access node associated with the client device includes sending a second request to a second network access node, and receiving, from the second network access node, a response including the identification information of the first network access node associated with the client device. In an aspect, the second request includes an Internet Protocol (IP) address of the client device, an International Mobile Subscriber Identity (IMSI) of the client device, or information that identifies the client device to the second network access node. In an aspect, the identification information of the first network access node associated with the client device is an actual identification (ID) , an ID configured for the first network
access node to indicate an optimal cache server (e.g., local cache server) , or an Internet Protocol (IP) address of the first network access node.
In an aspect, a device is provided. The device include means for receiving a first request for a location of content from a client device, means for obtaining identification information of a first network access node associated with the client device, and means for transmitting the location of the content based on the identification information of the first network access node. In an aspect, the device is a global server load balancing (GSLB) node or a server load balancing (SLB) device. In an aspect, the first network access node is a base station serving the client device or a network gateway (e.g., a packet data network gateway (P-GW) ) associated with the client device. In an aspect, the means for obtaining the identification information of the first network access node associated with the client device is configured to send a second request to a second network access node, and receive, from the second network access node, a response including the identification information of the first network access node associated with the client device. In an aspect, the second request includes an Internet Protocol (IP) address of the client device, an International Mobile Subscriber Identity (IMSI) of the client device, or information that identifies the client device to the second network access node. In an aspect, the identification information of the first network access node associated with the client device is an actual identification (ID) , an ID configured for the first network access node to indicate an optimal cache server (e.g., local cache server) , or an Internet Protocol (IP) address of the first network access node.
These and other aspects of the disclosure will become more fully understood upon a review of the detailed description, which follows. Other aspects, features, and implementations of the disclosure will become apparent to those of ordinary skill in the art, upon reviewing the following description of specific implementations of the disclosure in conjunction with the accompanying figures. While features of the disclosure may be discussed relative to certain implementations and figures below, all implementations of the disclosure can include one or more of the advantageous features discussed herein. In other words, while one or more implementations may be discussed as having certain advantageous features, one or more of such features may also be used in accordance with the various implementations of the disclosure discussed herein. In similar fashion, while certain implementations may be discussed below as device,
system, or method implementations it should be understood that such implementations can be implemented in various devices, systems, and methods.
FIG. 1 illustrates a diagram of a network architecture for content delivery in a mobile network.
FIG. 2 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the present disclosure.
FIG. 3 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
FIG. 4 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
FIG. 5 illustrates a diagram of a network architecture for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure.
FIG. 6 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
FIG. 7 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
FIG. 8 illustrates a network architecture for content delivery in accordance with various aspects of the disclosure.
FIG. 9 illustrates a diagram of a local cache server protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure.
FIG. 10 illustrates a signal flow diagram of a procedure to establish a tunnel for forwarding packets from a local cache server to a network access node in accordance with various aspects of the disclosure.
FIG. 11 illustrates a signal flow diagram of a signaling procedure to terminate a data forwarding tunnel in accordance with various aspects of the disclosure.
FIG. 12 (including FIGS. 12A, 12B, and 12C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
FIG. 13 illustrates a signal flow diagram for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
FIG. 14 illustrates a diagram of a network architecture for content delivery with a local cache in accordance with various aspects of the disclosure.
FIG. 15 illustrates a diagram of a client device protocol stack, network access node protocol stack, and a local cache server protocol stack in accordance with various aspects of the disclosure.
FIG. 16 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
FIG. 17 (including FIGS. 17A, 17B, and 17C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
FIG. 18 illustrates a diagram of a network architecture for content delivery with a local cache server in accordance with various aspects of the disclosure.
FIG. 19 illustrates a diagram of an interface including a mobile device protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure.
FIG. 20 illustrates a diagram of an interface including a network access node protocol stack and a local cache server protocol stack in accordance with various aspects of the disclosure.
FIG. 21 illustrates a signal flow diagram of a signaling procedure in accordance with various aspects of the disclosure.
FIG. 22 (including FIGS. 22A, 22B, and 22C) illustrates a signal flow diagram of a handover procedure in accordance with various aspects of the disclosure.
FIG. 23 illustrates a signal flow diagram for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure.
FIG. 24 is an illustration of an apparatus configured to communicate in a network according to one or more aspects of the disclosure.
FIG. 25 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
FIG. 26 is an illustration of an apparatus configured to communicate in a network according to one or more aspects of the disclosure
FIG. 27 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
FIG. 28 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
FIG. 29 is an illustration of an apparatus configured for communication in a network according to one or more aspects of the disclosure.
FIG. 30 is a flowchart illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure.
In the following description, specific details are given to provide a thorough understanding of the various aspects of the disclosure. However, it will be understood by one of ordinary skill in the art that the aspects may be practiced without these specific details. For example, circuits may be shown in block diagrams in order to avoid obscuring the aspects in unnecessary detail. In other instances, well-known circuits, structures and techniques may not be shown in detail in order not to obscure the aspects of the disclosure.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration. ” Any implementation or aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects of the disclosure. Likewise, the term “aspects” does not require that all aspects of the disclosure include the discussed feature, advantage, or mode of operation. The term “obtaining” as used herein may include one or more operations including, but not limited to, receiving, generating, determining, or any combination thereof.
FIG. 1 illustrates a diagram of a network architecture 100 for content delivery in a mobile network. As shown in FIG. 1, the network architecture 100 includes a number of client devices (e.g., client device 1 102, client device 2 104, and client device N 106) , a network access node 108, a backhaul 110, a packet data network gateway (P-GW) 112, a core cache server 114, a backbone 116, a content delivery node 118, and a network node 120 that implements a Policy and Charging Rules Function (PCRF) 122. For example, each of the client devices (e.g., client device 1 102, client device 2 104, and/or client device N 106) may be a cellular telephone (e.g., a smartphone) , a personal computer (e.g., a laptop) , a digital media (e.g., audio and/or video files) player, a gaming device, or any other suitable device that is configured to communicate with a
network. A client device may be referred to as a user equipment (UE) or an access terminal (AT) . For example, a client device as referred to herein may be a mobile device or a static device. For example, a network access node as referred to herein may be an evolved Node B, a base station, a network access point, or a network access gateway. In accordance with the various aspects disclosed herein, the term “node” may represent a physical entity, such as a device, a server, a network entity, or a processing circuit. Accordingly, for example, a network node (e.g., network node 120) may be referred to as a network node device.
For example, the content delivery node 118 may be an over-the-top (OTT) content server that delivers content, such as the content 126 in FIG. 1. For example, the term “content” as used as used herein may include, among other things, digital media files (e.g., music, movies, pre-recorded television program episodes, etc. ) , live streaming media, software, applications, documents, and/or data associated with social networks. In one aspect of the present disclosure, the content delivery node 118 may deliver the content 126 to the core cache server 114 through the backbone 116, and the P-GW 112 may obtain the content 126 from the core cache server 114 for delivery to requesting client devices (e.g., client device 1 102, client device 2 104, and/or client device N 106) over the backhaul 110. In an aspect, the backbone 116 may include one or more lines (e.g., data paths) , routers, switches, and other suitable equipment configured to provide an appropriate amount of bandwidth for traffic from the content delivery node 118 to the core cache server 114 (or to the P-GW 112) .
In an aspect, the content delivery node 118 may be coupled to (or may be a part of) a content delivery network (CDN) (e.g., an Internet content delivery network) . For example, such CDN may include a distributed system of servers deployed in multiple data centers across the Internet in order to serve content to end-users with high availability and high performance. CDN nodes may be deployed in multiple locations, typically over multiple backbones. A CDN may treat a mobile network as a black box and may cache content at a gateway (e.g., at the core cache server 114 coupled to the P-GW 112) or at a higher level. For example, although the network access node 108 may be considered the edge node of a cellular network, the P-GW 112 may be considered the edge node from the perspective of the CDN. As shown in FIG. 1, the content 126 cached at the core cache server 114 may be repeatedly transmitted to the network access node 108 via the backhaul 110 for delivery to requesting client devices. For example,
the P-GW 112 may transmit a first instance (e.g., the content 126a) of the content 126 to the client device 1 102, a second instance (e.g., the content 126b) of the content 126 to the client device 2 104, and an Nth instance (e.g., the content 126c) of the content 126 to the client device N 106. Such repeat transmissions (e.g., the first, second, and Nth instances) of the content 126 may require mobile network operators to either deploy more backhaul to accommodate the additional traffic, which typically leads to higher costs, or experience higher backhaul congestion.
FIG. 2 illustrates a diagram of a network architecture 200 for content delivery in a mobile network with a local cache server in accordance with various aspects of the present disclosure. As shown in FIG. 2, the network architecture 200 includes a number of client devices (e.g., client device 1 202, client device 2 204, and client device N 206) , a network access node 208, a backhaul 210, a local cache server 212, a P-GW 214, a backbone 216, a content delivery node 218, and a network node 220 that implements a Policy and Charging Rules Function (PCRF) 222. For example, each of the client devices (e.g., client device 1 202, client device 2 204, and/or client device N 206) may be a cellular telephone (e.g., a smartphone) , a personal computer (e.g., a laptop) , a digital media (e.g., audio and/or video files) player, a gaming device, or any other suitable device that is configured to communicate with a network. A client device may be referred to as a user equipment (UE) or an access terminal (AT) . For example, a client device as referred to herein may be a mobile device or a static device. For example, the network access node 208 may be an eNB, base station, or a network access point.
For example, the content delivery node 218 may be an over-the-top (OTT) content server that delivers content, such as the content 228 in FIG. 2. In one aspect of the present disclosure, the content delivery node 218 may deliver the content 228 to the P-GW 214 through the backbone 216, and the P-GW 214 may deliver the content 228 the local cache server 212. Since the local cache server 212 is configured inside the mobile network (e.g., at an edge of the backhaul 210 and/or in close proximity to the network access node 208) , the local cache server 212 may be said to be “below” the P-GW 214. The local cache server 212 may transmit the content 228 to one or more requesting client devices through the network access node 208. For example, the local cache server 212 may transmit a first instance (e.g., the content 228a) of the content 226 to the client device 1 202, a second instance (e.g., the content 228b) of the content 226
to the client device 2 204, and an Nth instance (e.g., the content 228c) of the content 226 to the client device N 206. Since the local cache server 212 is below the P-GW 214, the configuration of FIG. 2 avoids repeated transmissions (e.g., as previously described with respect to FIG. 1) over the backhaul 210. Accordingly, user experience may be improved by achieving a shorter delay in the delivery of content and/or by reducing the probability of interruptions during the delivery of the content.
In an aspect, the P-GW 214 may obtain the location of a client device (e.g., client device 1 202, client device 2 204, and client device N 206) at the radio access network (RAN) level. When the P-GW 214 receives a request from a global server load balancing (GSLB) node implemented by a CDN, the P-GW 214 may provide the client device’s actual edge location to such GSLB node. The actual edge location of a client device may assist the CDN to locate the suitable real edge local cache server (e.g., the local cache server 212) that is close to the client device. Once located, the local cache server 212 (also referred to as a local content server (CS) ) may be used to serve content to the client device instead of the P-GW 214.
I. Locating a Local Cache Server in a Mobile Communication Network
i) Network Address Translation (NAT)
FIG. 3 illustrates a diagram of a network architecture 300 for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure. As shown in FIG. 3, the network architecture 300 includes a client device 302, a network access node 304, a backhaul 306, a local cache server 308, a P-GW 310, local domain name system (local DNS) server 312, a firewall 314, a domain name system (DNS) server 316, a content delivery network (CDN) node 318, and a global server load balancing (GSLB) node 320. In an aspect, the client device 302 may receive downlink (DL) traffic or may transmit uplink (UL) traffic via the communication link 322. For example, the communication link 322 may be established over a Uu radio interface. In an aspect, the network access node 304 may receive traffic from (or transmit traffic to) the P-GW 310 via the communication link 324. For example, the communication link 324 may be established over an S5/S8 interface (and/or an S1 interface when a serving gateway (S-GW) is configured between the network access node 304 and the P-GW 310) .
In one aspect, when the P-GW 310 receives a trigger (e.g., a query from the GSLB node 320 for identification of a network access node that is currently serving the
client device 302) , the P-GW 310 determines the radio access network (RAN) level location of the client device 302 and provides information indicating the RAN level location to the CDN node 318. For example, the information indicating the RAN level location of the client device 302 may be the network access node (e.g., the identity of the network access node 304) currently serving the client device 302. In an aspect, after the P-GW 310 determines the network access node (e.g., the identity of the network access node 304) currently serving the client device 302, a direct path may be established between the network access node 304 and the local cache server 308 for downlink transfer of the content 309. In one aspect, such direct path may be tunnel based and may be set up by the P-GW 310 for forwarding packets (e.g., data packets carrying at least a portion of the content 309) or may be set up by the network access node 304 to achieve an Internet Protocol (IP) aware RAN tunnel via the network access node 304. In another aspect, the path may be IP based with network address translation (NAT) by the network access node 304 to achieve IP aware RAN network address translation via the network access node 304. The content fetch request may be transmitted to the local cache server 308. If the requested content from the client device 302 has been cached in the local cache server 308, the cached content (e.g., the content 309 cached in the local cache server 308) may be transmitted to the client device 302 directly from the local cache server 308 via the network access node 304. If the local cache server 308 determines that the requested content is not cached in the local cache server 308, the local cache server 308 may fetch the requested content from an upper layer (e.g., CDN node 318) for the client device 302.
FIG. 4 illustrates a signal flow diagram 400 of a signaling procedure in accordance with various aspects of the disclosure. The signal flow diagram 400 includes a client device 402, a network access node 404, a local cache server 406, a mobility management entity (MME) 408, a serving gateway 410, a packet data network gateway (P-GW) 412, a local domain name system (local DNS) server 414, a firewall (FW) 416, a domain name system (DNS) server 418, and a global server load balancing (GSLB) node 420. In an aspect, the client device 402, network access node 404, local cache server 406, P-GW 412, local DNS 414, firewall 416, DNS server 418, and the GSLB node 420 of FIG. 4 respectively correspond to the client device 302, network access node 304, local cache server 308, P-GW 310, local DNS server 312, firewall 314, DNS server 316, and the GSLB node 320 of FIG. 3.
As shown in FIG. 4, the client device (CD) 402 may establish 422 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 402 and the P-GW 412, which may be referred to as a packet data network (PDN) connection) with the P-GW 412 and may acquire an IP address or domain name from the P-GW 412. The client device 402 may transmit DNS queries 424, 428, and 432 in an iterative manner. For example, the client device 402 may transmit the DNS query 424 to the local DNS server 414, the DNS query 424 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name. The local DNS server 414 may transmit a DNS response 426 that refers the client device 402 to another server (e.g., the DNS server 418) and allows the client device 402 to pursue the query. In an aspect, a Canonical Name (CNAME) record at the DNS server 418 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) . In such aspect, the DNS server 418 may transmit a DNS response 430 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name. For example, the second fully qualified domain name may serve as an indication to the client device 402 to proceed to transmit a query (e.g., the DNS query 432) to the GSLB node 420. It should be noted that a recursive DNS query approach may not be suitable in the configuration of FIG. 4 because with the recursive DNS query approach, the local DNS server 414 may pursue the query for the client device 402 at another server. Therefore, from the perspective of the GSLB node 420, the query IP may always be the IP address of the local DNS server 414 and not the IP address of the client device 402. As a result, the GSLB node 420 may not locate the actual edge location of the client device 402.
In an aspect, a firewall (e.g., the firewall 416) may be configured between a P-GW (e.g., the P-GW 412) and a GSLB node (e.g., the GSLB node 420) . Therefore, the IP address of the client device 402 may be a P-GW subnet IP address or a global IP address (e.g., an IPv6 address) . If the IP address of the client device 402 is a P-GW subnet IP address, a network address translation (NAT) operation 434 may be performed at the firewall 416 before the DNS query 432 is transmitted to GSLB node 420. When the GSLB node 420 receives the DNS query 432, the incoming request source IP is a P-GW configurable IP address after the network address translation operation or a global IP address of the client device 402.
As shown in FIG. 4, the GSLB node 420 may transmit a message 436 to the P-GW 412 serving the client device 402. The message 436 may be a query (e.g., request) for information associated with the network access node serving the client device 402 and may include the IP address of the client device 402. As shown in FIG. 4, the message 436 may be received by the firewall 416 and forwarded (e.g., as the message 440) to the P-GW 412. In an aspect, when a network address translation operation 438 needs to be performed, the firewall 416 may apply an application layer gateway (ALG) function (or other application layer gateway function) to translate the application layer information before transmitting the message 440 to the P-GW 412. For example, the firewall 416 may implement the ALG function to translate the NAT IP address and port of the client device 402 to the subnet IP address and port of the client device 402.
As shown in FIG. 4, the message 440 may be received by the P-GW 412 and forwarded (e.g., as the message 442) to the S-GW 410. The S-GW 410 may have information regarding the location of the client device 402 because the S-GW 410 may have a connection (e.g., an S1 connection or interface) setup with the network access node 404 serving the client device 402. The S-GW 410 may transmit a message 444 to the P-GW 412, the message 444 including information associated with the network access node 404 (e.g., information indicating the identity or IP address of the network access node 404) serving the client device 402. The message 444 may be received by the P-GW 412 and forwarded (e.g., as the message 446) to the GSLB node 420. As shown in FIG. 4, the message 436 may be received by the firewall 416 and forwarded (e.g., as the message 450) to the GSLB node 420. In an aspect, when a network address translation operation 448 needs to be performed, the firewall 416 may apply the previously described ALG function to translate the subnet IP address and port of the client device 402 to the global IP address and port of the client device 402 before transmitting the message 450 to the GSLB node 420.
In an aspect, the GSLB node 420 may be configured to include or have access to a database regarding mapping information for the network access node 404 serving the client device 402 and suitable local cache server information. For example, the mapping may be based on location information, load information, content hit data, content miss data, and/or other suitable information. After determining 452 the suitable local cache server (e.g., local cache server 406) , the GSLB node 420 may transmit a message 454 to the P-GW 412 that acknowledges the query in the message 436. In an
aspect, the message 454 may include information regarding the local cache server 406. For example, the message 454 may include an IP address of the local cache server 406. In another example, the message 454 may include the IP address of the local cache server 406 and the IP address of the client device 402. As shown in FIG. 4, the message 454 may be received by the firewall 416 and forwarded (e.g., as the message 458) to the P-GW 412. In an aspect, when a network address translation 456 operation needs to be performed, the firewall 416 may apply the previously described ALG function to translate the global IP address and port of the local cache server 406 to the subnet IP address and port of the local cache server 406 before transmitting the message 458. The GSLB node 420 may then transmit a DNS response 460 to the client device 402, the DNS response 460 including the address of the local cache server 406.
ii) Server Load Balancing Device
FIG. 5 illustrates a diagram of a network architecture 500 for content delivery in a mobile network with a local cache server in accordance with various aspects of the disclosure. As shown in FIG. 5, the network architecture 500 includes a client device 502, a network access node 504, a backhaul 506, a local cache server 508, a P-GW 510, a local domain name system (local DNS) server 512, a firewall 514, a domain name system (DNS) server 516, a content delivery network (CDN) node 518, a global server load balancing (GSLB) node 520, and a server load balancing (SLB) device 522. In an aspect, the client device 502 may receive downlink (DL) traffic or may transmit uplink (UL) traffic via the communication link 524. For example, the communication link 524 may be established over a Uu radio interface. In an aspect, the network access node 504 may receive traffic from (or transmit traffic to) the P-GW 510 via the communication link 526. For example, the communication link 526 may be established over an S5/S8 interface (and/or an S1 interface when a serving gateway (S-GW) is configured between the network access node 504 and the P-GW 510) .
a. Signaling Procedure with Extended DNS Message
FIG. 6 illustrates a signal flow diagram 600 of a signaling procedure in accordance with various aspects of the disclosure. The signal flow diagram 600 includes a client device 602, an S-GW 604, a P-GW 606, a server load balancing (SLB) device 608, a local DNS server 610, a firewall 612, a DNS server 614, and a GSLB node 616. In an aspect, the client device 602, the P-GW 606, the SLB device 608, the local DNS server 610, the firewall 612, the DNS server 614, and the GSLB node 616 of
FIG. 6 respectively correspond to the client device 502, the P-GW 510, the SLB device 522, the local DNS server 512, the firewall 514, the DNS server 516, and the GSLB node 520 of FIG. 5.
As shown in FIG. 6, the client device 602 may establish 618 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 602 and the P-GW 606, which may be referred to as a packet data network (PDN) connection) with the P-GW 606 and may acquire an IP address or domain name from the P-GW 606. The client device 602 may transmit a DNS query 620 to the local DNS server 610, the DNS query 620 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name. The DNS query 620 may be received by the P-GW 606 and forwarded (e.g., as the DNS query 622) to the local DNS server 610. The local DNS server 610 may transmit a DNS query 624 that includes the FQDN_1 to the DNS server 614. The DNS server 614 may transmit a DNS response 626 that refers the local DNS server 610 to another server or node (e.g., the GLSB node 616) thereby allowing the local DNS server 610 to continue pursuing the query. In an aspect, a first Canonical Name (CNAME1) record at the DNS server 614 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) . In such aspect, the DNS server 614 may transmit a DNS response 626 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name. For example, the second fully qualified domain name may serve as an indication to the local DNS server 610 to proceed to transmit a query to the GSLB node 616. Accordingly, the local DNS server 610 may proceed to transmit a DNS query 628 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name to the GSLB node 616. The GSLB node 616 may transmit a DNS response 630 that refers the client device 602 to another server or node (e.g., the SLB device 608) . In an aspect, a second Canonical Name (CNAME2) record at the GSLB node 616 may point (e.g., correspond) the second fully qualified domain name to a third fully qualified domain name (FQDN_3) . In such aspect, the GSLB node 616 may transmit a DNS response 630 that includes the third fully qualified domain name (FQDN_3) or a portion of the third fully qualified domain name to the local DNS server 610.
In an aspect, with reference to the first set of optional signals identified as “Option A” (e.g., the signals within the dotted lines labeled as Option A) in FIG. 6, the
local DNS server 610 may transmit a DNS query 632 that includes the third fully qualified domain name (FQDN_3) associated with the CNAME2 record to the SLB device 608. The SLB device 608 may transmit a DNS query 634 that requests the IP address of the client device 602 to the local DNS server 610. In one example, the DNS query 634 may include a special domain name (e.g., requester_ [id] , where [id] is the value of an ID parameter in the DNS query 632) . In another example, private signaling may be defined between the SLB device 608 and local DNS server 610 for the query of the IP address of the client device 602. In another example, a reserved operation code (opcode) may be implemented at the local DNS server 610 for identifying the IP address of the client device 602. The local DNS server 610 may transmit a DNS response 636 to the SLB device 608 that includes the IP address of the client device 602.
In another aspect, with reference to the second set of optional signals identified as “Option B” (e.g., the signals within the dotted lines labeled as Option B) in FIG. 6, the local DNS server 610 may transmit a DNS query 638 that includes the third fully qualified domain name (FQDN_3) associated with the CNAME2 record and that includes the IP address of the client device (CD) 602 to the SLB device 608. For example, the third fully qualified domain name (FQDN_3) may be extended to include the IP address of the client device 602. For example, the local DNS server 610 may transmit the third fully qualified domain name (FQDN_3) associated with the CNAME2 record and the IP address of the client device 602 to the SLB device 608 using private signaling between the SLB device 608 and local DNS server 610. It should be understood that the first set of optional signals identified as “Option A” and the second set of optional signals identified as “Option B” previously described with respect to FIG. 6 may be implemented as alternative options. For example, if the first set of optional signals identified as “Option A” are implemented, the second set of optional signals identified as “Option B” may not be implemented. As another example, if the second set of optional signals identified as “Option B” are implemented, the first set of optional signals identified as “Option A” may not be implemented.
As show in FIG. 6, the SLB device 608 may transmit a query 640 for information regarding the network access node serving the client device 602 to the P-GW 606. In an aspect, the query 640 may include the IP address of the client device 602. The P-GW 606 may transmit the query (e.g., as the query 642) to the S-GW 604. The S-GW 604 may transmit a message 644 that includes information regarding the
network access node serving the client device 602. The P-GW 606 may transmit the message (e.g., as the message 646) to the SLB device 608. In an aspect, the SLB device 608 may be configured to include or have access to a database that includes a mapping between network access nodes in the network and suitable (e.g., proximate or nearby) local cache servers. For example, such mapping may be based on location information, load information, a content hit data, a content miss data, and/or other suitable information. In this aspect, the SLB device 608 may determine 648 a suitable local cache server (e.g., local cache server 508 in FIG. 5) for the network access node (e.g., the network access node 504 serving the client device 502 in FIG. 5) . The SLB device 608 may transmit a DNS response 650 that includes the information regarding the suitable local cache server determined by the SLB device 608 to the local DNS server 610. The SLB device 608 may further transmit an acknowledgment 652 for the query 640 to P-GW 606, where the acknowledgment 652 includes the information regarding the suitable local cache server determined by the SLB device 608 and the IP address of the client device 602. The local DNS server 610 may transmit a DNS response 654 (e.g., in response to the DNS query 622) to the client device 602. The DNS response 654 may be received by the P-GW 606 and forwarded to the client device 602.
b. Signaling Procedure with Iterative DNS Requests
FIG. 7 illustrates a signal flow diagram 700 of a signaling procedure in accordance with various aspects of the disclosure. The signal flow diagram 700 includes a client device 702, a serving gateway (S-GW) 704, a packet data network gateway (P-GW) 706, a server load balancing (SLB) device 708, a local domain name system (local DNS) server 710, a firewall 712, a domain name system (DNS) server 714, and a global server load balancing (GSLB) node 716. In an aspect, client device 702, the P-GW 706, the SLB device 708, the local DNS server 710, the firewall 712, the DNS server 714, and the GSLB node 716 of FIG. 7 respectively correspond to the client device 502, the P-GW 510, the SLB device 522, the local DNS server 512, the firewall 514, the DNS server 516, and the GSLB node 520 of FIG. 5.
As shown in FIG. 7, the client device 702 may establish 718 an Internet Protocol (IP) bearer (e.g., for a connection between the client device 702 and the P-GW 706, which may be referred to as a packet data network (PDN) connection) with the P-GW 706 and may acquire an IP address or domain name from the P-GW 706. As shown in FIG. 7, the client device 702 may transmit DNS queries 720, 724, 728, and
732 in an iterative manner. For example, the client device 702 may transmit the DNS query 720 to the local DNS server 710, the DNS query 720 including a first fully qualified domain name (FQDN_1) or a portion of the first fully qualified domain name. The local DNS server 710 may transmit a DNS response 722 that refers the client device 702 to another server (e.g., the DNS server 714) and allows the client device 702 to pursue the query. In an aspect, a first Canonical Name (CNAME1) record at the DNS server 714 may point (e.g., correspond) the first fully qualified domain name to a second fully qualified domain name (FQDN_2) . In such aspect, the DNS server 714 may transmit a DNS response 726 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name. For example, the second fully qualified domain name may serve as an indication to the client device 702 to proceed to transmit a query to the GSLB node 716. Accordingly, the client device 702 may proceed to transmit a DNS query 728 that includes the second fully qualified domain name (FQDN_2) or a portion of the second fully qualified domain name to the GSLB node 716. The GSLB node 716 may transmit a DNS response 730 that refers the client device 702 to another server or node (e.g., the SLB device 708) . In an aspect, a second Canonical Name (CNAME2) record at the GSLB node 716 may point (e.g., correspond) the second fully qualified domain name to a third fully qualified domain name (FQDN_3) . In such aspect, the GSLB node 716 may transmit a DNS response 730 that includes the third fully qualified domain name (FQDN_3) or a portion of the third fully qualified domain name to the client device 702. The SLB device 708 may transmit a query 734 for information regarding the network access node serving the client device 702 to the P-GW 706. In an aspect, the query 734 may include the IP address of the client device 702. The P-GW 706 may transmit the query to the S-GW 704. The S-GW 704 may transmit a message 736 that includes information regarding the network access node serving the client device 702. The P-GW 706 may transmit the message to the SLB device 708. In an aspect, the SLB device 708 may be configured to include or have access to a database that includes a mapping between network access nodes in the network and suitable (e.g., proximate or nearby) local cache servers. For example, such mapping may be based on location information, load information, a content hit, a content miss, and/or other suitable information. In this aspect, the SLB device 708 may determine 738 a suitable local cache server (e.g., local cache server 508 in FIG. 5) for the network access node (e.g., the network access node 504 serving the
client device 502 in FIG. 5) . The SLB device 708 may transmit an acknowledgment 740 for the query 734 to P-GW 706, where the acknowledgment 740 includes the information regarding the suitable local cache server determined by the SLB device 708 and the IP address of the client device 702. The SLB device 708 may further transmit a DNS response 742 (e.g., in response to the DNS query 732) to the client device 702.
II. Content Delivery
i) Packet Forwarding
FIG. 8 illustrates a network architecture 800 for content delivery in accordance with various aspects of the disclosure. As shown in FIG. 8, the network architecture 800 includes a client device 802, a network access node 804, a backhaul 806, a packet data network gateway (P-GW) 808, a backbone 810, a content delivery node 812, and a local cache server (CS) 814. As shown in FIG. 8, the P-GW 808 is in communication with the network access node 804 via the backhaul 806 and is in communication with the content delivery node 812 via the backbone 810.
As shown in FIG. 8, the client device 802 may transmit a content request 816 to the network access node 804. In one aspect, the content request 816 may include a destination associated with the local cache server 814. For example, the destination associated with the local cache server 814 may be an IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 8) of the local cache server 814. The network access node 804 may transmit the content request from the client device 802 to the P-GW 808. For example, the network access node 804 may transmit the content request in a message 818 based on a user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) . The P-GW 808 may transmit an IP packet 820 that includes the content request to the local cache server 814. For example, the IP packet 820 may include the IP address of the local cache server 814 (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 8) as the destination for the IP packet 820. The local cache server 814 may receive the IP packet 820 and may determine whether the requested content is stored at the local cache server 814. When the requested content is stored at the local cache server 814 (e.g., when a cache hit occurs) , the local cache server may transmit a content response 822 that includes at least a portion of the requested content directly to the network access node 804. The network access node 804 may forward the content response (e.g., as the content response 826 in FIG. 8) to the client device 802.
In an aspect, the link between the local cache server 814 and the network access node 804 may be a downlink tunnel (e.g., represented in FIG. 8 with the oval 824) . For example, the downlink tunnel (also referred to as a client device specific downlink tunnel) may be a GTP-U tunnel. In an aspect, the P-GW 808 may trigger a procedure for setting up the downlink tunnel. In such aspect, the P-GW 808 may trigger a network entity (e.g., a mobility management entity (MME) ) to request the network access node 804 to set up a downlink tunnel for receiving IP data packets. After the network access node 804 has configured the downlink tunnel, the P-GW 808 may notify the local cache server 814 regarding the configured downlink tunnel for the client device 802. Thereafter, any downlink IP data packets containing content transmitted from the local cache server 814 to the IP address of the client device 802 may be transmitted to the client device 802 through the configured downlink tunnel. Therefore, from the perspective of the network access node 804, the delivery of IP data packets through the configured downlink tunnel may be similar in operation to a handover scenario in a mobile network. For example, in a handover scenario, a target network access node may receive forwarded IP data packets from both a source network node and a core network. It should be noted, however, that the configuration of FIG. 8 may not require sorting of IP data packets received from the local cache server 814 and the P-GW 808. In an aspect, the local cache server 814 may communicate with upper layer entities, such as the content delivery node 812, similar to communications with a CDN server. For example, when content requested by a client device 802 is not stored at the local cache server 814 (e.g., when a cache miss occurs) , the local cache server 814 may retrieve the requested content from the CDN server. Accordingly, when content requested by a client device 802 is not stored at the local cache server 814, the local cache server 814 may pull the content from content delivery node 812.
In the network architecture 800, the local cache server 814 is proximate to the network access node 804. In some aspects, the local cache server 814 may serve a group of network access nodes. In some aspects, mobile network operators (MNOs) may deploy scalable local cache servers to meet content acceleration requirements. For example, as the number of network access nodes served by one local cache server increases, an MNO may avoid costs by deploying fewer local cache servers and fewer storage devices for duplication of content at edge nodes (e.g., network nodes at the edge of the backhaul 806) . In such example, however, the local cache servers may be subject
to heavier usage and may experience a reduction in bandwidth, which may result in increased content response latency. Therefore, a tradeoff may exist between the operating efficiency of a local cache server and Mobile Content Delivery Network (MCDN) deployment cost.
FIG. 9 illustrates a diagram 900 of a local cache server protocol stack 902 and a network access node protocol stack 904 in accordance with various aspects of the disclosure. For example, the local cache server protocol stack 902 may be implemented at the local cache server 814 in FIG. 8 and the network access node protocol stack 904 may be implemented at the network access node 804 in FIG. 8. As shown in FIG. 9, the local cache server protocol stack 902 and the network access node protocol stack 904 include a General Packet Radio Service (GPRS) Tunneling Protocol (GTP) layer, a User Datagram Protocol (UDP) layer, an Internet Protocol (IP) layer, a Layer 2 protocol (L2) layer, and a Layer 1 protocol (L1) layer.
a. Signaling Procedure to Establish Tunnel for Packet Forwarding
FIG. 10 illustrates a signal flow diagram 1000 of a procedure to establish a tunnel for forwarding packets from a local cache server to a network access node in accordance with various aspects of the disclosure. The signal flow diagram 1000 includes a client device 1002, a network access node 1004, a local cache server 1006, a mobility management entity (MME) 1008, a serving gateway (S-GW) 1010, a packet data network gateway (P-GW) 1012, a local domain name system (DNS) server 1014, a firewall 1016, a domain name system (DNS) server 1018, and a global server load balancing (GSLB) node 1020. In an aspect, the client device 1002, the network access node 1004, the local cache server 1006, and the P-GW 1012 of FIG. 10 respectively correspond to the client device 802, the network access node 804, the local cache server 814, and the P-GW 808 of FIG. 8.
As shown in FIG. 10, the client device 1002 may determine 1022 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 1006) with the assistance of the P-GW 1012 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7. In one aspect, and in accordance with the signaling procedure discussed with respect to FIG. 4, the GSLB node 1020 may direct the client device 1002 to the local cache server 1006. The P-GW 1012 may receive a trigger regarding the local cache server 1006 for the client device 1002 and may proceed to establish (e.g., set up) a tunnel between the network access node 1004 and the local cache server 1006. For
example, to establish the tunnel between the network access node 1004 and the local cache server 1006, the P-GW 1012 may transmit a request message 1024 including a request for establishing (e.g., creating) a data forwarding tunnel to the network access node 1004. As shown in FIG. 10, the message 1024 may be received by the MME 1008 and forwarded to the network access node 1004. In one aspect, the request for establishing the data forwarding tunnel included in the message 1024 may be a request directed to the network access node 1004 for establishing a GTP-U tunnel between the network access node 1004 and the local cache server 1006. The network access node 1004 may establish a data forwarding tunnel (also referred to as a downlink tunnel) for receiving IP data packets from the local cache server 1006 and may transmit a response message 1026 configured to notify the P-GW 1012 that the requested data forwarding tunnel has been established. In an aspect, the response message 1026 may include a downlink (DL) tunnel endpoint identifier (TEID) that is associated with the network access node 1004. As shown in FIG. 10, the response message 1026 may be received by the MME 1008 and may be forwarded to the P-GW 1012. The MME 1008 may transmit a message 1028 that notifies the local cache server 1006 that a data forwarding tunnel (e.g., a downlink (DL) GTP-U tunnel) has been established for the client device 1002. For example, the message 1028 may include the DL tunnel endpoint identifier (TEID) that is associated with the network access node 1004 and the IP address of the client device 1002. The client device 1002 may transmit a content request 1030 and may indicate the destination of the content request 1030 as the IP address of the local cache server 1006. The P-GW 1012 may receive the content request 1030 and may route the content request 1030 (e.g., as the content request 1032 in FIG. 10) to the local cache server 1006. The local cache server 1006 may determine whether the requested content is stored (e.g., cached) at the local cache server 1006 and may transmit a message 1034 (also referred to as a content response) that includes one or more IP data packets carrying the content requested by the client device 1002 when the requested content is cached in the storage of the local cache server 1006. Otherwise, the local cache server 1006 may fetch the requested content from an upper layer (e.g., a CDN node (s) ) , such as the GSLB node 1020) when the requested content is not cached in the storage of the local cache server 1006.
In one aspect, the local cache server 1006 may deliver the content requested by the client device 1002 to the network access node 1004 by transmitting downlink IP
data packets to the network access node 1004 through the data forwarding tunnel established between the network access node 1004 and the local cache server 1006 for the client device 1002. For example, the local cache server 1006 may obtain downlink IP data packets carrying the requested content and may include (e.g., in a header of each downlink IP data packet) the IP address of the client device 1002 as the destination. The local cache server 1006 may then encapsulate such downlink IP data packets using the GTP-U protocol based on the network access node DL TEID to generate GTP-U packets. Accordingly, as shown in FIG. 10, the local cache server 1006 may transmit a message 1034 including the GTP-U packets to the network access node 1004. The network access node 1004 may deliver 1036 the GTP-U packets from the local cache server 1006 and other packets from the S-GW 1010 and/or the P-GW 1012 to a Packet Data Convergence Protocol (PDCP) layer implemented at the network access node 1004 similar to data forwarding in a handover scenario. In one aspect, the network access node 1004 may remove the encapsulation associated with the GTP-U protocol from the GTP-U packets to recover the downlink IP data packets carrying the requested content prior to delivery to the PDCP layer. In such aspect, the PDCP layer may be implemented by the network access node 1004 to convert each downlink IP data packet carrying the requested content to a PDCP packet. Accordingly, the network access node 1004 may transmit such PDCP packets 1038 to the client device 1002. The network access node 1004 may then transmit data volume information 1040 to the local DNS server 1014.
b. Signaling Procedure to Terminate Tunnel for Packet Forwarding
FIG. 11 illustrates a signal flow diagram 1100 of a signaling procedure to terminate a data forwarding tunnel in accordance with various aspects of the disclosure. FIG. 11 includes a network access node 1102, a local cache server 1104, a mobility management entity (MME) 1106, a serving gateway (S-GW) 1108, and a packet data network (P-GW) gateway 1110. In an aspect the network access node 1102, the local cache server 1104, and the P-GW 1110 in FIG. 11 may respectively correspond to the network access node 804, the local cache server 814, and the P-GW 808 in FIG. 8.
In one aspect of the present disclosure, the P-GW 1110 may determine to terminate a data forwarding tunnel (e.g., a downlink (DL) GTP-U tunnel as previously described with reference to FIGS. 8-10) . For example, the P-GW 1110 may determine to terminate a data forwarding tunnel due to expiration of a timer or other reasons. As
shown in FIG. 11, the P-GW 1110 may initiate termination of a data forwarding tunnel between the local cache server 1104 and the serving network access node 1102 by transmitting a request 1112 to delete the data forwarding tunnel to the local cache server 1104. The local cache server may transmit a response 1114 to the request 1112 to the P-GW 1110. The P-GW 1110 may then transmit a request 1116 to delete the data forwarding tunnel to the network access node 1004. As shown in FIG. 11, the request 1116 may be received by the MME 1106 and may be forwarded by the MME 1106 to the network access node 1102. The network access node 1102 may transmit a response 1118 to the request 1116 to the P-GW 1110. As shown in FIG. 11, the response 1118 may be received by the MME 1106 and may be forwarded by the MME 1106 to the P-GW 1110.
c. Handover Procedure
FIG. 12 (including FIGS. 12A, 12B, and 12C) illustrates a signal flow diagram 1200 of a handover procedure in accordance with various aspects of the disclosure. The signal flow diagram 1200 includes a client device 1202, a source network access node 1204, a target network access node 1206, a source mobility management entity (MME) 1208, a target MME 1210, a source serving gateway (S-GW) 1212, a target S-GW 1214, a packet data network gateway (P-GW) 1216, and a local cache server (local CS) 1218.
As shown in FIG. 12A, the P-GW 1216 transmits downlink (DL) data 1220 (also referred to as DL user plane data) intended for the client device 1202. The DL data 1220 may be received by the source S-GW 1212 and forwarded to the source network access node 1204. The source network access node 1204 may transmit the DL data 1220 to the client device 1202. As further shown in FIG. 12A, the local cache server 1218 may transmit downlink (DL) data 1222 intended for the client device 1202 directly to the source network access node 1204. The source network access node 1204 may determine 1224 to initiate a handover of the client device 1202 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 1204 to the target network access node 1206. The source network access node 1204 may transmit a message 1226 to the source MME 1208 indicating that a handover is required. In an aspect, the message 1226 may include the downlink GPRS tunneling protocol user plane (GTP-U) tunnel endpoint identifier (TEID) for the local cache server 1218 to be set up by target network access node 1206. The source MME 1208 may transmit a forward relocation request message 1228 to the selected target MME 1210.
As shown in FIG. 12A, if the source S-GW 1212 cannot serve the client device 1202 and needs to be relocated, the target MME 1210 may transmit a create session request message 1230 to the target S-GW 1214 and may receive a create session response message 1232. For example, the create session response message 1232 may include S-GW addresses and TEIDs for uplink traffic. The target MME 1210 may transmit a handover request 1234 to the target network access node 1206 and may receive a handover request acknowledgment (ACK) 1236. In an aspect, if the target network access node 1206 supports the TEID for the local cache server (local CS) setup, the target network access node 1206 may establish a GTP-U tunnel TEID_CS. The GTP-U tunnel TEID_CS may enable the target network access node 1206 to receive downlink data from the source network access node 1204, where the downlink data was previously forwarded to the source network access node 1204 from the local cache server 1218.
The target MME 1210 may transmit a create indirect data forwarding tunnel request 1238 to the target S-GW 1214 if the source S-GW 1212 is relocated. In an aspect, a GTP-U tunnel TEID for the local cache server 1218 may be established at the target S-GW 1214 if indirect data forwarding is needed. The target MME 1210 may receive a create indirect data forwarding tunnel response message 1240. The target MME 1210 may transmit a forward relocation response message 1242 to the source MME 1208 in response to the forward relocation response request 1228. If indirect data forwarding is to be implemented, the source MME 1208 may transmit a create indirect data forwarding tunnel request message 1244 to the source S-GW 1212. The source MME 1208 may receive a create indirect data forwarding tunnel response message 1246 from the source S-GW 1212. The source MME 1208 may transmit a handover command 1248 to the source network access node 1204. The source network access node 1204 may transmit the handover command 1249 to the client device 1202. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 1204 may transmit a network access node status transfer message 1250 to the source MME 1208. For example, the network access node status transfer message 1250 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers. If the source MME 1208 has been relocated, the source MME 1208 may transmit a forward access context notification message 1252 to the target MME 1210 and may receive a forward
access context acknowledgment (ACK) message 1254. With reference to FIG. 12B, the target MME 1210 may transmit an MME status transfer message 1256 to the target network access node 1206. If direct data forwarding applies, the source network access node 1204 may forward 1258 data packets to the target network access node 1206. However, if indirect data forwarding applies, the source network access node 1204 may forward 1260 data packets to the source S-GW 1212. The source S-GW 1212 may forward the data packets to the target S-GW 1214, and the target S-GW 1214 may forward the data packets to the target access node 1206.
The client device 1202 may detach 1262 from the old cell (e.g., the source network access node 1204) and may synchronize to the new cell (e.g., the target network access node 1206) . The client device 1202 may then transmit a handover confirm message 1264 to the target network access node 1206. The target network access node 1206 may then transmit downlink data packets 1266 that were forwarded from the source network access node 1204 (e.g., the data packets that were forwarded from the source network access node 1204 via direct or indirect forwarding as previously described) to the client device 1202. The client device 1202 may transmit uplink user plane data 1268 to the target network access node 1206. The target network access node 1206 may forward the uplink user plane data to the P-GW 1216 via the target S-GW 1214. The target network access node 1206 may transmit a handover notify message 1270 to the target MME 1210. The target MME 1210 may transmit a forward relocation complete notification message 1271 to the source MME 1208 and may receive a forward relocation complete acknowledgment (ACK) message 1272. The target MME 1210 may transmit a modify bearer request message 1273 to the target S-GW 1214. If the source S-GW 1212 has been relocated, the target S-GW 1214 may transmit a modify bearer request message 1274 to the P-GW 1216 and may receive a modify bearer response message 1275. The target S-GW 1214 may transmit a modify bearer response message 1276 to the target MME 1210.
With reference to FIG. 12C, the P-GW 1216 may transmit an update tunnel message 1277 to the local cache server 1218. For example, the update tunnel message 1277 may notify the local cache server 1218 to update (e.g., switch) the downlink GTP-U TEID from the source network access node 1204 to the target network access node 1206. The local cache server 1218 may transmit an update tunnel acknowledgment (ACK) message 1278 to the P-GW 1216. Thereafter, the local cache server 1218 may
transmit downlink data (e.g., IP data packets carrying content requested by the client device 1202) directly to the target network access node 1206. The target network access node 1206 may transmit the downlink data from the local cache server 1218 to the client device 1202. The P-GW 1216 may transmit downlink user plane data 1280 to the target S-GW 1214. The target S-GW 1214 may forward the downlink user plane data to the client device 1202 via the target network access node 1206.
The client device 1202 may initiate a Tracking Area Update procedure 1281. The source MME 1208 may transmit a delete session request message 1282 to the source S-GW 1212. The source MME 1208 may further transmit a client device context release command 1283 to the source network access node 1204 and may receive a client device context release complete message 1284. The source MME 1208 may receive a delete session response message 1285 from the source S-GW 1212. The source MME 1208 may then transmit a delete indirect data forwarding tunnel request message 1286 to the source S-GW 1212 and may receive a delete indirect data forwarding tunnel response message 1287 from the source S-GW 1212. The target MME 1210 may then transmit a delete indirect data forwarding tunnel request message 1288 to the target S-GW 1214 and may receive a delete indirect data forwarding tunnel response message 1289 from the target S-GW 1214.
d. Continuation of Service in User Plane After Handover
FIG. 13 illustrates a signal flow diagram 1300 for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure. The signal flow diagram 1300 includes a client device 1302, a source network access node 1304, a target network access node 1306, a source serving gateway (S-GW) 1308, a target S-GW 1310, a P-GW 1312, and a local cache server 1314.
In one aspect, after handover of the client device 1302 is completed, the client device 1302 may transmit a new content fetch request 1316 to the local cache server 1314 via the target network access node 1306. For example, the client device 1302 may transmit the new content fetch request 1316 to the target network access node 1306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) . The target network access node 1306 may receive the new content fetch request 1316 and may transmit a content fetch request message 1318 to the target S-GW 1310, which may forward the content fetch request message 1318 to the local cache server 1314 via the P-GW 1312. The local cache server 1314 may transmit a content
fetch response 1320 directly to the target network access node 1306. The target network access node 1306 may then transmit the content fetch response 1320 to the client device 1302. Therefore, the signaling procedure within the dotted lines 1315 may be applicable when the client device 1302 transmits a new content fetch request. The signaling procedure within the dotted lines 1315 may also be applicable for those cases where data forwarding is not supported in handover and an application layer time out occurs. In such cases, the client device 1302 may retransmit the content fetch request to the local cache server 1314 via the target network access node 1306.
In another aspect, after handover of the client device 1302 is completed, the client device 1302 may transmit a new content fetch request 1322 to the target network access node 1306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) . The target network access node 1306 may receive the new content fetch request 1322 and may forward the new content fetch request to the target S-GW 1310 (e.g., as the message 1324) by applying the user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) . The GTP-U packets carrying the content fetch request may be transmitted to the target S-GW by implementing DASH over IP. The target S-GW 1310 may forward the GTP-U packets carrying the content fetch request to the P-GW 1312. The P-GW 1312 may then forward the content fetch request to the local cache server 1314 in a message 1326 by implementing DASH over IP. The local cache server 1314 may transmit a content response message 1328 (e.g., downlink content data) to the client device 1302 via the P-GW 1312, the target S-GW 1310, and the target network access node 1306. Therefore, the signaling procedure within the dotted lines 1321 may apply when the target network access node 1306 does not support a tunnel between the target network access node 1306 and the local cache server 1314.
ii) Internet Protocol (IP) Aware Radio Access Network
A network access node may be configured to interpret Internet Layer Protocol information, such as data packets based on the Internet Protocol (IP) . Therefore, in an aspect of the present disclosure, the communication between the network access node and a local cache server (e.g., a cache server that is close to the network access node) may be based on IP or a tunnel. When IP is implemented, the network access node may be configured to have a network address translation (NAT) function to change the client device subnet IP address and port to the network access node IP address and port. The
communication between the local content server and Internet CDN may also be based on IP. The content of the local cache server may be pushed by the Internet CDN server or pulled from the Internet CDN (e.g., a content delivery node of the Internet CDN) .
A network access node may implement IP based on a configurable list of IP addresses. Such configurable list of IP addresses may include the IP addresses of local cache servers. Therefore, for each IP packet (e.g., uplink IP packet) received from a client device, if the target IP address of an IP packet is found in the list of IP addresses, the network access mode may consider the target IP address as a special IP address (e.g., an IP address of a local cache server) . In an aspect, an uplink IP packet from a client device which includes a request for content may will be routed to the local cache server via an established tunnel for the client device as previously described, or after a network address translation (NAT) operation as previously described. The content from a local cache server may be transmitted back to the target network access node directly, and then transmitted to the client device.
In an aspect, a local cache server may serve a group of network access nodes. In such aspect, duplication of the same content at many local cache servers may be avoided. In one scenario, when a client device moves to a different network access node and sends an uplink IP packet which includes a request for content, the target IP address of such uplink IP packet may be associated with a local cache server. If the target IP address is not found in the list of IP addresses of the different network access node, the uplink IP packet from the client device may be routed to the Internet as GTP-U packets and then to the local cache server. For example, an uplink IP packet may be communicated from the client device to the local cache server along a network path that includes the client device, the different network access node, a serving gateway (S-GW) , a packet data network gateway (P-GW) , and the local cache server. For example, a downlink IP packet carrying the requested content (e.g., in response to the content request) may be communicated from the local cache server to the client device along a network path that includes the local cache server, the P-GW, the S-GW, the different network access node, and the client device. In an aspect, when the requested content is not yet stored (e.g., cached) in the local cache server, the local cache server may obtain the requested content from an Internet CDN (e.g., a content delivery node of the Internet CDN) for the client device.
a. Network Address Translation at Network Access Node
FIG. 14 illustrates a diagram of a network architecture 1400 for content delivery with a local cache in accordance with various aspects of the disclosure. As shown in FIG. 14, the network architecture 1400 includes a client device 1402, a network access node 1404, a backhaul 1406, a packet data network gateway (P-GW) 1408, a backbone 1410, a content delivery node 1412, and a local cache server 1414. As shown in FIG. 14, the P-GW 1408 is in communication with the network access node 1404 via the backhaul 1406 and is in communication with the content delivery node 1412 via the backbone 1410.
As shown in FIG. 14, the client device 1402 may transmit an IP packet 1416 that includes a content request to the network access node 1404. In one aspect, the IP packet 1416 may include source information and destination information. For example, the source information may include the IP address of the client device 1402 and the destination information may include the IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 14) of the local cache server 1414. The network access node 1404 may receive the IP packet 1416 and may transmit an IP packet 1418 that includes the content request to the local cache server 1414. In one aspect, the network access node 1404 may perform a NAT operation on the source information in the IP packet 1416. For example, the network access node 1404 may translate the IP address and port of the client device 1402 to the IP address and port of the network access node 1404. Accordingly, the IP packet 1418 may include the IP address and port of the network access node 1404 as the source information and the IP address of the local cache server 1414 as destination information. The local cache server 1414 may receive the IP packet 1418 and may determine whether the requested content is stored at the local cache server 1414. When the requested content is stored at the local cache server 1414 (e.g., when a cache hit occurs) , the local cache server 1414 may transmit an IP packet 1420 that includes a content response (e.g., at least a portion of the requested content) to the network access node 1404. In some aspects, the local cache server 1414 may transmit the IP packet 1420 directly to the network access node 1404. The network access node 1404 may receive the IP packet 1420 and may transmit an IP packet 1422 that includes the content response to the client device 1402. In one aspect, the network access node 1404 may perform a NAT operation on the destination information in the IP packet 1420. For example, the network access node 1404 may translate the IP address and port of the network access node 1404 to the IP address and port of the client device 1402.
Accordingly, the IP packet 1422 may include the IP address and port of the local cache server 1414 as the source information and may include the IP address of the client device 1402 as the destination information. In some aspects, anti-spoofing features may be disabled to allow NAT operations.
FIG. 15 illustrates a diagram 1500 of a client device protocol stack 1502, network access node protocol stack 1504, and a local cache server protocol stack 1506 in accordance with various aspects of the disclosure. For example, the client device protocol stack 1502 may be implemented at the client device 1402 in FIG. 14, the network access node protocol stack 1504 may be implemented at the network access node 1404 in FIG. 14, and the local cache server protocol stack 1506 may be implemented at the local cache server 1414 in FIG. 14. As shown in FIG. 14, the client device protocol stack 1502 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) , and an Internet Protocol (IP) layer. The network access node protocol stack 1504 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) , and an Internet Protocol (IP) layer. The PDCP layer, the RLC layer, and the MAC layer may interface with the Layer 2 protocol (L2) layer, and the PHY layer may interface with the Layer 1 protocol (L1) layer. The local cache server 1506 may include an L1 layer, an L2 layer, and an IP layer.
1. Signaling Procedure for Service Setup
FIG. 16 illustrates a signal flow diagram 1600 of a signaling procedure in accordance with various aspects of the disclosure. The signal flow diagram 1600 includes a client device 1602, a network access node 1604, a local cache server 1606, a serving gateway (S-GW) 1608, a packet data network gateway (P-GW) 1610, a local domain name system (local DNS) server 1612, a firewall 1614, a domain name system (DNS) server 1616, and a global server load balancing (GSLB) node 1618. In an aspect, client device 1602, the network access node 1604, the local cache serve 1606, and the P-GW 1610 of FIG. 16 respectively correspond to the client device 1402, the network access node 1404, the local cache server 1414, and the P-GW 1408 of FIG. 14.
As shown in FIG. 16, the client device 1602 may determine 1620 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 1606) with the assistance of the P-GW 1610 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7. In one aspect, and in accordance with the signaling procedure discussed
with respect to FIG. 4, the GSLB node 1618 may direct the client device 1602 to the local cache server 1606. The client device 1602 may transmit an IP packet 1622 (e.g., an uplink IP packet) that includes a Hypertext Transfer Protocol (HTTP) request to the network access node 1604. In one aspect, the IP packet 1622 may include source information and destination information. For example, the source information may include the IP address of the client device 1602 and the destination information may include the IP address (e.g., IP address “A” ) of the local cache server 1606. The network access node 1604 may receive the IP packet 1622 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) . The network access node 1604 may perform a network address translation (NAT) operation on the source information in the IP packet 1622. For example, the network access node 1604 may translate the IP address and port of the client device 1602 to the IP address and port of the network access node 1604. Accordingly, the network access node 1604 may transmit an IP packet 1626 that includes the HTTP request to the local cache server 1606, where the IP packet 1626 includes the IP address and port of the network access node 1604 as the source information and the IP address of the local cache server 1606 as the destination information. The local cache server 1606 may receive the IP packet 1626 and may determine whether the requested HTTP is stored at the local cache server 1606. When the requested HTTP is stored at the local cache server 1606 (e.g., when a cache hit occurs) , the local cache server 1606 may transmit an IP packet 1628 that includes an HTTP response (e.g., at least a portion of the requested HTTP) directly to the network access node 1604. The network access node 1604 may receive the IP packet 1628 and may perform a NAT operation on the destination information in the IP packet 1628. For example, the network access node 1604 may translate the IP address and port of the network access node 1604 to the IP address and port of the client device 1602. Accordingly, the network access node 1604 may transmit an IP packet 1632 that includes an HTTP response to the client device 1602, where the IP packet 1632 includes the IP address and port of the client device 1602 as the source information and may include the IP address of the local cache server 1606 as the destination information. The network access node 1604 may then transmit data volume information 1634 to the P-GW 1610. Therefore, in the aspect described with reference to FIG. 16, the network access node 1608 serves as a proxy for client device 1602.
2. Handover Procedure
FIG. 17 (including FIGS. 17A, 17B, and 17C) illustrates a signal flow diagram 1700 of a handover procedure in accordance with various aspects of the disclosure. The signal flow diagram 1700 includes a client device 1702, a source network access node 1704, a target network access node 1706, a source mobility management entity (MME) 1708, a target MME 1710, a source serving gateway (S-GW) 1712, a target S-GW 1714, a packet data network gateway (P-GW) 1716, and a local cache server (local CS) 1718.
As shown in FIG. 17A, the P-GW 1716 transmits downlink (DL) data 1720 (also referred to as DL user plane data) intended for the client device 1702. The DL data 1720 may be received by the source S-GW 1712 and forwarded to the source network access node 1704. The source network access node 1704 may transmit the DL data 1720 to the client device 1702. As further shown in FIG. 17A, the local cache server 1718 may transmit downlink (DL) data 1722 intended for the client device 1702 directly to the source network access node 1704. The source network access node 1704 may determine 1724 to initiate a handover of the client device 1702 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 1704 to the target network access node 1706. The source network access node 1704 may transmit a message 1726 to the source MME 1708 indicating that a handover is required. The Source MME 1708 may transmit a forward relocation request message 1728 to the selected target MME 1710. As shown in FIG. 17A, if the source S-GW 1712 cannot serve the client device 1702 and needs to be relocated, the target MME 1710 may transmit a create session request message 1730 to the target S-GW 1714 and may receive a create session response message 1732. For example, the create session response message 1732 may include S-GW addresses and TEIDs for uplink traffic. The target MME 1710 may transmit a handover request 1734 to the target network access node 1706 and may receive a handover request acknowledgment (ACK) 1736. The target MME 1710 may transmit a create indirect data forwarding tunnel request 1738 to the target S-GW 1714 if the source S-GW 1712 is relocated. The target MME 1710 may receive a create indirect data forwarding tunnel response message 1740. The target MME 1710 may transmit a forward relocation response message 1742 to the source MME 1708 in response to the forward relocation request message 1728. If indirect data forwarding is to be implemented, the source MME 1708 may transmit a create indirect data forwarding tunnel request message 1744 to the source S-GW 1712. The source
MME 1708 may receive a create indirect data forwarding tunnel response message 1746 from the source S-GW 1712. The source MME 1708 may transmit a handover command 1748 to the source network access node 1704. The source network access node 1704 may transmit the handover command 1749 to the client device 1702. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 1704 may transmit a network access node status transfer message 1750 to the source MME 1708. For example, the network access node status transfer message 1750 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers. If the source MME 1708 has been relocated, the source MME 1708 may transmit a forward access context notification message 1752 to the target MME 1710 and may receive a forward access context acknowledgment (ACK) message 1754. With reference to FIG. 17B, the target MME 1710 may transmit an MME status transfer message 1756 to the target network access node 1706. If direct data forwarding applies, the source network access node 1704 may forward 1758 data packets to the target network access node 1706. However, if indirect data forwarding applies, the source network access node 1704 may forward 1760 data packets to the source S-GW 1712. The source S-GW 1712 may forward the data packets to the target S-GW 1714, and the target S-GW 1714 may forward the data packets to the target network access node 1706.
The client device 1702 may detach 1762 from the old cell (e.g., the source network access node 1704) and may synchronize to the new cell (e.g., the target network access node 1706) . The client device 1702 may then transmit a handover confirm message 1764 to the target network access node 1706. The target network access node 1706 may then transmit downlink data packets 1766 that were forwarded from the source network access node 1704 (e.g., the data packets that were forwarded from the source network access node 1704 via direct or indirect forwarding as previously described) to the client device 1702. The client device 1702 may transmit uplink user plane data 1768 to the target network access node 1706. The target network access node 1706 may forward the uplink user plane data to the P-GW 1716 via the target S-GW 1714. In an aspect, the uplink user plane data 1768 may include an uplink content request (e.g., an IP packet) that indicates the IP address of the local cache server 1718 as the destination address. For example, the uplink content request may be an HTTP request. If the target network access node 1706 determines that the IP address of
the local cache server 1718 is included in a configurable list of IP addresses (e.g., local CS IP addresses) of the target network access node 1706, the target network access node 1706 may perform a network address translation operation by translating the source address of the uplink content request (e.g., IP packet) from the IP address of the client device 1702 to the IP address of the target network access node 1706. The target network access node 1706 may then transmit the uplink content request (e.g., uplink content request 1769 in FIG. 17B) to the local cache server 1718. The target network access node 1706 may transmit a handover notify message 1770 to the target MME 1710. The target MME 1710 may transmit a forward relocation complete notification message 1771 to the source MME 1708 and may receive a forward relocation complete acknowledgment (ACK) message 1772. The target MME 1710 may transmit 1773 a modify bearer request message 1773 to the target S-GW 1714. If the source S-GW 1712 has been relocated, the target S-GW 1714 may transmit a modify bearer request message 1774 to the P-GW 1716 and may receive a modify bearer response message 1775. The target S-GW 1714 may transmit a modify bearer response message 1776 to the target MME 1710.
The local cache server 1718 may transmit downlink data 1779 (e.g., IP data packets carrying content requested by the client device 1702) to the target network access node 1706. The target network access node 1706 may perform a network address translation operation on the IP data packets of the downlink data 1779 (e.g., translate the destination information of the downlink IP data packets from the IP address of the target network access node 1706 to the IP address of the client device 1702) and may transmit the downlink data from the local cache server 1718 to the client device 1702. The P-GW 1716 may transmit downlink user plane data 1780 to the target S-GW 1714. The target S-GW 1714 may forward the downlink user plane data to the client device 1702 via the target network access node 1706.
The client device 1702 may initiate a Tracking Area Update procedure 1781. The source MME 1708 may transmit a delete session request message 1782 to the source S-GW 1712. The source MME 1708 may further transmit a client device context release command 1783 to the source network access node 1704 and may receive a client device context release complete message 1784. The source MME 1708 may receive a delete session response message 1785 from the source S-GW 1712. The source MME 1708 may then transmit a delete indirect data forwarding tunnel request message 1786
to the source S-GW 1712 and may receive a delete indirect data forwarding tunnel response message 1787 from the source S-GW 1712. The target MME 1710 may then transmit a delete indirect data forwarding tunnel request message 1788 to the target S-GW 1714 and may receive a delete indirect data forwarding tunnel response message 1789 from the target S-GW 1714.
b. Tunneling by Network Access Node
FIG. 18 illustrates a diagram of a network architecture 1800 for content delivery with a local cache server in accordance with various aspects of the disclosure. As shown in FIG. 18, the network architecture 1800 includes a client device 1802, a network access node 1804, a backhaul 1806, a packet data network gateway (P-GW) 1808, a backbone 1810, a content delivery node 1812, and a local cache server 1814. As shown in FIG. 18, the P-GW 1808 is in communication with the network access node 1804 via the backhaul 1806 and is in communication with the content delivery node 1812 via the backbone 1810.
As shown in FIG. 18, the client device 1802 may transmit an IP packet 1816 that includes a content request to the network access node 1804. In one aspect, the IP packet 1816 may include source information and destination information. For example, the source information may include the IP address of the client device 1802 and the destination information may include the IP address (e.g., IP address “A” , which is denoted as “IP_A” in FIG. 18) of the local cache server 1814. The network access node 1804 may receive the IP packet 1816 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) . Therefore, the network access node 1804 may determine that the IP packet 1816 is intended for the local cache server 1814. If a tunnel between the network access node 1804 and local cache server 1814 has not been established for the client device 1802, the network access node 1804 may trigger establishment of a tunnel (e.g., the tunnel 1822) . The network access node may transmit an IP packet 1818 that includes the content request to the local cache server 1814 via the tunnel 1822. In some aspects, the network access node may transmit the IP packet 1818 directly to the local cache server 1814 via the tunnel 1822.
The IP packet 1818 may include the IP address of the client device 1802 as the source information and the IP address of the local cache server 1814 as destination information. The local cache server 1814 may receive the IP packet 1818 and may
determine whether the requested content is stored at the local cache server 1814. When the requested content is stored at the local cache server 1814 (e.g., when a cache hit occurs) , the local cache server 1814 may transmit an IP packet 1820 that includes a content response (e.g., at least a portion of the requested content) to the network access node 1804 via the tunnel 1822. In some aspects, the local cache server 1814 may transmit the IP packet 1820 directly to the network access node 1804 via the tunnel 1822. The IP packet 1820 may include the IP address of the local cache server 1814 as the source information and the IP address of the client device 1802 as the destination information. The network access node 1804 may receive the IP packet 1820 and may transmit an IP packet 1824 that includes the content response to the client device 1802. The IP packet 1824 may include the IP address of the local cache server 1814 as the source information and may include the IP address of the client device 1802 as the destination information.
FIG. 19 illustrates a diagram of an interface 1900 including a mobile device protocol stack and a network access node protocol stack in accordance with various aspects of the disclosure. In one aspect, the interface 1900 may be a Uu interface. For example, the client device protocol stack 1902 may be implemented at the client device 1802 in FIG. 18, and the network access node protocol stack 1904 may be implemented at the network access node 1804 in FIG. 18. As shown in FIG. 19, the client device protocol stack 1902 and the network access node protocol stack 1904 may include a physical (PHY) layer, a media access control (MAC) layer, a radio link layer (RLC) , a packet data convergence protocol (PDCP) layer, and an Internet Protocol (IP) layer.
FIG. 20 illustrates a diagram of an interface 2000 including a network access node protocol stack 2002 and a local cache server protocol stack 2004 in accordance with various aspects of the disclosure. For example, the network access node protocol stack 2002 may be implemented at the network access node 1804 in FIG. 18, and the local cache server protocol stack 2004 may be implemented at the local cache server 1814 in FIG. 18. As shown in FIG. 20, the network access node protocol stack 2002 and the local cache server protocol stack 2004 include a General Packet Radio Service (GPRS) Tunneling Protocol (GTP) layer, a User Datagram Protocol (UDP) layer, an Internet Protocol (IP) layer, a Layer 2 protocol (L2) layer, and a Layer 1 protocol (L1) layer.
1. Signaling Procedure for Service Setup
FIG. 21 illustrates a signal flow diagram 2100 of a signaling procedure in accordance with various aspects of the disclosure. The signal flow diagram 2100 includes a client device 2102, a network access node 2104, a local cache server 2106, a serving gateway (S-GW) 2108, a packet data network gateway (P-GW) 2110, a local domain name system (local DNS) server 2112, a firewall 2114, a domain name system (DNS) server 2116, and a global server load balancing (GSLB) node 2118. In an aspect, client device 2102, the network access node 2104, the local cache serve 2106, and the P-GW 2110 of FIG. 21 respectively correspond to the client device 1802, the network access node 1804, the local cache server 1814, and the P-GW 1808 of FIG. 18.
As shown in FIG. 21, the client device 2102 may determine 2120 the location (e.g., identity) of a suitable local cache server (e.g., the local cache server 2106) with the assistance of the P-GW 2110 as previously described with respect to FIG. 4, FIG. 6, and/or FIG. 7. In one aspect, and in accordance with the signaling procedure discussed with respect to FIG. 4, the GSLB node 2118 may direct the client device 2102 to the local cache server 2106. The client device 2102 may transmit an IP packet 2122 (e.g., an uplink IP packet) that includes a Hypertext Transfer Protocol (HTTP) request to the network access node 2104. In one aspect, the IP packet 2122 may include source information and destination information. For example, the source information may include the IP address of the client device 2102 and the destination information may include the IP address (e.g., IP address “A” ) of the local cache server 2106. The network access node 2104 may receive the IP packet 2122 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) . The network access node 2104 may determine that a tunnel between the network access node 2104 and local cache server 2106 has not been established for the client device 2102. The network access node 2104 may trigger establishment of a tunnel by transmitting a create tunnel request message 2124 to the local cache server 2106. The network access node 2104 may receive a create tunnel response message 2126 from the local cache server 2106. The network access node 2104 may transmit an HTTP request message 2128 directly to the local cache server 2106 via the established tunnel. When the requested HTTP is stored at the local cache server 2106 (e.g., when a cache hit occurs) , the local cache server 2106 may transmit an HTTP response message 2130 (e.g., the HTTP response message 2130 including at least a portion of the requested HTTP) directly to the network access node 2104 via the
established tunnel. The network access node 2104 may transmit an IP packet 2132 that includes the HTTP response from the local cache server 2106 to the client device 2102. The IP packet 2132 may include the IP address of the local cache server 2106 as the source information and the IP address of the client device 2102 as the destination information (also referred to as target destination information) . The network access node 2104 may then transmit data volume information 2134 to the P-GW 2110.
2. Handover Procedure
FIG. 22 (including FIGS. 22A, 22B, and 22C) illustrates a signal flow diagram 2200 of a handover procedure in accordance with various aspects of the disclosure. The signal flow diagram 2200 includes a client device 2202, a source network access node 2204, a target network access node 2206, a source mobility management entity (MME) 2208, a target MME 2210, a source serving gateway (S-GW) 2212, a target S-GW 2214, a packet data network gateway (P-GW) 2216, and a local cache server (local CS) 2218.
As shown in FIG. 22A, the P-GW 2216 transmits downlink (DL) data 2220 (also referred to as DL user plane data) intended for the client device 2202. The DL data 2220 may be received by the source S-GW 2212 and forwarded to the source network access node 2204. The source network access node 2204 may transmit the DL data 2220 to the client device 2202. As further shown in FIG. 22A, the local cache server 2218 may transmit downlink (DL) data 2222 intended for the client device 2202 directly to the source network access node 2204. The source network access node 2204 may determine 2224 to initiate a handover of the client device 2202 (also referred to as a relocation procedure) , such as an S1 based handover, from the source network access node 2204 to the target network access node 2206. The source network access node 2204 may transmit a message 2226 to the source MME 2208 indicating that a handover is required. In an aspect, the message 2226 may include the downlink GPRS tunneling protocol user plane (GTP-U) tunnel endpoint identifier (TEID) for the local cache server 2218 to be set up by target network access node 2206. The source MME 2208 may transmit a forward relocation request message 2228 to the selected target MME 2210. As shown in FIG. 22A, if the source S-GW 2212 cannot serve the client device 2202 and needs to be relocated, the target MME 2210 may transmit a create session request message 2230 to the target S-GW 2214 and may receive a create session response message 2232. For example, the create session response message 2232 may include S-
GW addresses and TEIDs for uplink traffic. The target MME 2210 may transmit a handover request 2234 to the target network access node 2206 and may receive a handover request acknowledgment (ACK) 2236. In an aspect, if the target network access node 2206 supports the TEID for the local cache server (local CS) setup, the target network access node 2206 may establish a GTP-U tunnel TEID_CS. The GTP-U tunnel TEID_CS may enable the target network access node 2206 to receive downlink data from the source network access node 2204, where the downlink data was previously forwarded to the source network access node 2204 from the local cache server 2218.
The target MME 2210 may transmit a create indirect data forwarding tunnel request 2238 to the target S-GW 2214 if the source S-GW 2212 is relocated. In an aspect, a GTP-U tunnel TEID for the local cache server 2218 may be established at the target S-GW 2214 if indirect data forwarding is needed. The target MME 2210 may receive a create indirect data forwarding tunnel response message 2240. The target MME 2210 may transmit a forward relocation response message 2242 to the source MME 2208 in response to the forward relocation request message 2228. If indirect data forwarding is to be implemented, the source MME 2208 may transmit a create indirect data forwarding tunnel request message 2244 to the source S-GW 2212. The source MME 2208 may receive a create indirect data forwarding tunnel response message 2246 from the source S-GW 2212. The source MME 2208 may transmit a handover command 2248 to the source network access node 2204. The source network access node 2204 may transmit the handover command 2249 to the client device 2202. If Packet Data Convergence Protocol (PDCP) preservation applies, the source network access node 2204 may transmit a network access node status transfer message 2250 to the source MME 2208. For example, the network access node status transfer message 2250 may include PDCP and Hyper Frame Number (HFN) status of the Evolved UMTS Terrestrial Radio Access Network (E-UTRAN) radio access bearers. If the source MME 2208 has been relocated, the source MME 2208 may transmit a forward access context notification message 2252 to the target MME 2210 and may receive a forward access context acknowledgment (ACK) message 2254. With reference to FIG. 22B, the target MME 2210 may transmit an MME status transfer message 2256 to the target network access node 2206. If direct data forwarding applies, the source network access node 2204 may forward 2258 data packets to the target network access node 2206.
However, if indirect data forwarding applies, the source network access node 2204 may forward 2260 data packets to the source S-GW 2212. The source S-GW 2212 may forward the data packets to the target S-GW 2214, and the target S-GW 2214 may forward the data packets to the target access node 2206.
The client device 2202 may detach 2262 from the old cell (e.g., the source network access node 2204) and may synchronize to the new cell (e.g., the target network access node 2206) . The client device 2202 may then transmit a handover confirm message 2264 to the target network access node 2206. The target network access node 2206 may then transmit downlink data packets 2266 that were forwarded from the source network access node 2204 (e.g., the data packets that were forwarded from the source network access node 2204 via direct or indirect forwarding as previously described) to the client device 2202. The client device 2202 may transmit uplink user plane data 2268 to the target network access node 2206. The target network access node 2206 may forward the uplink user plane data to the P-GW 2216 via the target S-GW 2214. The target network access node 2206 may transmit a handover notify message 2270 to the target MME 2210. The target MME 2210 may transmit a forward relocation complete notification message 2271 to the source MME 2208 and may receive a forward relocation complete acknowledgment (ACK) message 2272. The target MME 2210 may transmit a modify bearer request message 2273 to the target S-GW 2214. If the source S-GW 2212 has been relocated, the target S-GW 2214 may transmit a modify bearer request message 2274 to the P-GW 2216 and may receive a modify bearer response message 2275. The target S-GW 2214 may transmit a modify bearer response message 2276 to the target MME 2210.
With reference to FIG. 22C, the P-GW 2216 may transmit downlink user plane data 2280 to the target S-GW 2214. The target S-GW 2214 may forward the downlink user plane data to the client device 2202 via the target network access node 2206. The client device 2202 may initiate a Tracking Area Update procedure 2281. The source MME 2208 may transmit a delete session request message 2282 to the source S-GW 2212. The source MME 2208 may further transmit a client device context release command 2283 to the source network access node 2204 and may receive a client device context release complete message 2284. The source network access node 2204 may transmit an update tunnel indication message 2285 to the local cache server 2218 after the client device 2202 has established a connection to the target network access
node 2206. For example, the update tunnel indication message 2285 may notify the local cache server 2218 to update (e.g., switch) the downlink GTP-U TEID from the source network access node 2204 to the target network access node 2206. Thereafter, the local cache server 2218 may transmit downlink data (e.g., IP data packets carrying content requested by the client device 2202) directly to the target network access node 2206. The source MME 2208 may receive a delete session response message 2286 from the source S-GW 2212. The source MME 2208 may then transmit a delete indirect data forwarding tunnel request message 2287 to the source S-GW 2212 and may receive a delete indirect data forwarding tunnel response message 2288 from the source S-GW 2212. The target MME 2210 may then transmit a delete indirect data forwarding tunnel request message 2289 to the target S-GW 2214 and may receive a delete indirect data forwarding tunnel response message 2290 from the target S-GW 2214. The local cache server 2218 may transmit downlink data (e.g., IP data packets carrying content requested by the client device 2202) directly to the target network access node 2206. The target network access node 2206 may forward the downlink data from the local cache server 2218 to the client device 2202.
3. Continuation of Service in User Plane After Handover
FIG. 23 illustrates a signal flow diagram 2300 for content delivery to a client device after a handover procedure in accordance with various aspects of the disclosure. The signal flow diagram 2300 includes a client device 2302, a source network access node 2304, a target network access node 2306, a source serving gateway (S-GW) 2308, a target S-GW 2310, a P-GW 2312, and a local cache server 2314.
In one aspect, after handover of the client device 2302 is completed, the client device 2302 may transmit a new content fetch request 2316 to the local cache server 2314 via the target network access node 2306. For example, the client device 2302 may transmit the new content fetch request 2316 to the target network access node 2306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) . The target network access node 2306 may receive the new content fetch request 2316 and may determine that the destination information indicates an IP address that is within a configurable list of IP addresses (e.g., local CS IP addresses) . The target network access node 2306 may further determine a tunnel established between the target network access node 2306 and the local cache server 2314 for the client device 2302. The target network access node 2306 may transmit a
content fetch request message 2318 directly to the local cache server 2314 over the tunnel. The local cache server 2314 may transmit a content fetch response 2320 directly to the target network access node 2306 over the tunnel. The target network access node 2306 may then transmit the content fetch response 2320 to the client device 2302. Therefore, the signaling procedure within the dotted lines 2315 may be applicable when the client device 2302 transmits a new content fetch request. The signaling procedure within the dotted lines 2315 may also be applicable for those cases where data forwarding is not supported in handover and an application layer time out occurs. In such cases, the client device 2302 may retransmit the content fetch request to the local cache server 2314 via the target network access node 2306.
In another aspect, after handover of the client device 2302 is completed, the client device 2302 may transmit a new content fetch request 2322 to the target network access node 2306 by implementing Dynamic Adaptive Streaming over HTTP (DASH) over the Internet Protocol (IP) . The target network access node 2306 may receive the new content fetch request 2322 and may determine that the destination information indicates an IP address that is not within a configurable list of IP addresses (e.g., local CS IP addresses) . The target network access node 230 may forward the new content fetch request to the target S-GW 2310 (e.g., as the message 2324) by applying the user plane General Packet Radio Service (GPRS) Tunneling Protocol (GTP-U) . The GTP-U packets carrying the content fetch request may be transmitted to the target S-GW 2310 by implementing DASH over IP. The target S-GW 2310 may forward the GTP-U packets carrying the content fetch request to the P-GW 2312. The P-GW 2312 may then forward the content fetch request to the local cache server 2314 in a message 2326 by implementing DASH over IP. The local cache server 2314 may transmit a content response message 2328 (e.g., downlink content data) to the client device 2302 via the P-GW 2312, the target S-GW 2310, and the target network access node 2306. Therefore, the signaling procedure within the dotted lines 2321 may apply when the destination information in a new content fetch request from the client device 2302 indicates an IP address that is not within a configurable list of IP addresses.
In both the packet forwarding approach and the IP aware radio access network (RAN) approach, from the serving network access node perspective, there may be two downlink data flows. For example, one data flow may be received by the serving network access node from an S-GW, while another data flow may be received
from a local cache server. The serving network access node may combine the data flow from the local cache server into the bearer in which the client device sends the uplink content request. This may be similar to the operation of a target network access node in a handover scenario with data forwarding. The serving network access node may add a PDCP number to data packets according to the packet arrival order and may then deliver the data packets to client device in the air interface.
In an aspect, the serving network access node (e.g., a network access node currently transmitting content (e.g., IP data packets) to a client device) may not have IP aware capability in the packet forwarding approach. However, the serving network access node may have IP aware capability in the IP aware RAN approach. For example, the serving network access node may be capable of interpreting the Internet Protocol (IP) layer.
In an aspect, in the packet forwarding solution, a network node (e.g., a P-GW or MME) may trigger setup of a direct tunnel between a local cache server and the serving network access node in addition to providing information associated with the serving network access node of the client device. In the IP aware RAN approach, the network node may not set up a separate tunnel between the serving network access node and the local cache server. In such case, the data packets are sent from/to the serving network access node to/from the local cache server via NAT IP packets or a tunnel which is set up by the serving network access node.
For uplink packets (e.g., sent from a client device and intended for a local cache server) received at the serving network access node, in the packet forwarding approach, the uplink content fetch request is routed to the network node via the legacy EPS bearer, then routed to the local cache server. In the IP aware RAN approach, all the uplink packets targeted to the configured IP address may be routed to the local cache server directly by the serving network access node.
For downlink packets (e.g., from a local cache server to a client device) sent from the serving network access node, in the packet forwarding approach, the downlink packets containing the content from the local cache server may be transmitted to the client device via a client device specific direct tunnel between the serving network access node and the local cache server. In the IP aware RAN approach, the downlink packets are sent back to the client device via the legacy IP routing (NAT approach) or a tunnel (tunnel approach) .
As disclosed herein, a network node (e.g. a P-GW or MME) in a mobile network (e.g. an LTE network) may assist a GSLB node in selecting a CDN cache server for the client device. This may be useful when cache servers are deployed below the P-GW level (e.g., proximate to the serving network access node) , which is also referred to as a mobile CDN (MCDN) configuration. The MCDN may either work standalone or as a further acceleration of Internet CDN in a hierarchal type configuration.
Although some aspects described herein are described in the context of Long Term Evolution (LTE) and LTE related entities (e.g., the manner in which a P-GW may provide assistance in determining the local cache server of a serving network access node) , it should be understood that the aspects disclosed herein may be applied in networks supporting protocols other than LTE. Therefore, it can be appreciated that the principles described herein may be generally applicable to other cellular or mobile networks, such as 3G or 5G networks.
As previously described, the assistance provided by a network node (e.g., P-GW or MME) may have two aspects: 1) the manner in which a local cache server is located for a client device and 2) the manner in which content requested by the client device is delivered from a content server (e.g., a content delivery node of a CDN) to the serving network access node directly. Two example network architectures and associated procedures for location of the local cache server may involve application level gateway (ALG) network address translation (NAT) and an SLB device in a 3GPP network. To enable SLB in a 3GPP network option, the DNS may be configured with DNS protocol enhancement/extension to enable the DNS to know the querying client device’s IP address in a recursive querying approach.
With respect to content delivery from a local cache server to a serving network access node directly, two example approaches include: 1) packet forwarding and 2) IP aware RAN. Because NAT is widely used in mobile Internet, the aspects disclosed herein take NAT into consideration. If NAT is not implemented, the approaches described herein may be used by simply excluding operations and functions related to NAT. In comparison to the Selected IP Traffic Offload (SIPTO) /local gateway (L-GW) with Internet CDN approach, the aspects described herein do not expose the network access node to the Internet. Therefore, the aspects described herein may have reduced costs in IP security and networking.
First Exemplary Apparatus and Method Thereon
FIG. 24 is an illustration of an apparatus 2400 configured to communicate in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIG. 25 described below) . In an aspect, the apparatus 2400 may be a network node (e.g., a P-GW or MME) . The apparatus 2400 includes a network communication interface (e.g., at least one transceiver) 2402, a storage medium 2404, a user interface 2406, a memory device 2408, and a processing circuit 2410.
These components can be coupled to and/or placed in electrical communication with one another via a signaling bus or other suitable component, represented generally by the connection lines in FIG. 24. The signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2410 and the overall design constraints. The signaling bus links together various circuits such that each of the network communication interface 2402, the storage medium 2404, the user interface 2406, and the memory device 2408 are coupled to and/or in electrical communication with the processing circuit 2410. The signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
The network communication interface 2402 may be adapted to facilitate communication of the apparatus 2400. For example, the network communication interface 2402 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network. The network communication interface 2402 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
The memory device 2408 may represent one or more memory devices. As indicated, the memory device 2408 may maintain network-related information /along with other information used by the apparatus 2400. In some implementations, the memory device 2408 and the storage medium 2404 are implemented as a common memory component. The memory device 2408 may also be used for storing data that is manipulated by the processing circuit 2410 or some other component of the apparatus 2400.
The storage medium 2404 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information. The storage medium 2404 may also be used for storing data that is manipulated by the processing circuit 2410 when executing code. The storage medium 2404 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
By way of example and not limitation, the storage medium 2404 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer. The storage medium 2404 may be embodied in an article of manufacture (e.g., a computer program product) . By way of example, a computer program product may include a computer-readable medium in packaging materials. In view of the above, in some implementations, the storage medium 2404 may be a non-transitory (e.g., tangible) storage medium.
The storage medium 2404 may be coupled to the processing circuit 2410 such that the processing circuit 2410 can read information from, and write information to, the storage medium 2404. That is, the storage medium 2404 can be coupled to the processing circuit 2410 so that the storage medium 2404 is at least accessible by the processing circuit 2410, including examples where at least one storage medium is integral to the processing circuit 2410 and/or examples where at least one storage medium is separate from the processing circuit 2410 (e.g., resident in the apparatus 2400, external to the apparatus 2400, distributed across multiple entities, etc. ) .
Code and/or instructions stored by the storage medium 2404, when executed by the processing circuit 2410, causes the processing circuit 2410 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2404 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2410, as well as to utilize the
network communication interface 2402 for network communication utilizing their respective communication protocols.
The processing circuit 2410 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2404. As used herein, the term “code” or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
The processing circuit 2410 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations. The processing circuit 2410 may include circuitry configured to implement desired code provided by appropriate media in at least one example. For example, the processing circuit 2410 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code. Examples of the processing circuit 2410 may include a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine. The processing circuit 2410 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2410 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
According to one or more aspects of the disclosure, the processing circuit 2410 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein. As used herein, the term “adapted” in relation to the processing circuit 2410 may refer to the processing circuit 2410 being one or more of configured, employed, implemented,
and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
According to at least one example of the apparatus 2400, the processing circuit 2410 may include one or more of a receiving circuit/module 2420, a transmitting circuit/module 2422, an identification information obtaining circuit/module 2424, a local cache server information obtaining circuit/module 2425, and a tunnel requesting circuit/module 2426 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIG. 25) .
The receiving circuit/module 2420 may include circuitry and/or instructions (e.g., receiving instructions 2430 stored on the storage medium 2404) adapted to perform several functions relating to, for example, receiving, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request including an identifier associated with the client device.
The transmitting circuit/module 2422 may include circuitry and/or instructions (e.g., transmitting instructions 2432 stored on the storage medium 2404) adapted to perform several functions relating to, for example, transmitting the identification information associated with the network access node to the network entity.
The identification information obtaining circuit/module 2424 may include circuitry and/or instructions (e.g., identification information obtaining instructions 2434 stored on the storage medium 2404) adapted to perform several functions relating to, for example, obtaining the identification information associated with the network access node.
The local cache server information obtaining circuit/module 2425 may include circuitry and/or instructions (e.g., local cache server information obtaining instructions 2435 stored on the storage medium 2404) adapted to perform several functions relating to, for example, obtaining information associated with a local cache server that is proximate to a network access node serving a client device.
The tunnel requesting circuit/module 2426 may include circuitry and/or instructions (e.g., tunnel requesting instructions 2436 stored on the storage medium 2404) adapted to perform several functions relating to, for example, transmitting a
request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
As mentioned above, instructions stored by the storage medium 2404, when executed by the processing circuit 2410, causes the processing circuit 2410 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2404 may include one or more of the receiving instructions 2430, the transmitting instructions 2432, the identification information obtaining instructions 2434, the local cache server information obtaining instructions 2435, and/or the tunnel requesting instructions 2436.
FIG. 25 is a flowchart 2500 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network node (e.g., a P-GW, an MME, or the apparatus 2400) . It should be understood that the operations indicated by dotted lines in FIG. 25 represent optional operations.
A first network node may receive, from a network entity, a first request for identification information associated with a network access node serving a client device, the first request including an identifier associated with the client device 2502. In an aspect, the network entity is a global server load balancing (GSLB) node of a content delivery network or a server load balancing (SLB) device. In an aspect, the first network node may obtain the identification information associated with the network access node 2504. In an aspect, the first network node may obtain the identification information by transmitting a second request to a second network node, the second request being for the identification information associated with the network access node, and receiving the identification information associated with the network access node from the second network node. The first network node may transmit the identification information associated with the network access node to the network entity 2506. The first network node may obtain information associated with a local cache server that is proximate to a network access node serving a client device 2508. For example, the local cache server and the network access node may be located at or near an edge of a network (e.g., at or near the edge of a backhaul) . In such example, the first network node may receive information associated with the local cache server. In an aspect, the information associated with a local cache server may be a network address of the local cache server. The first network node may transmit a request for a tunnel between the
local cache server and the network access node for delivery of data to the network access node from the local cache server 2510. For example, the request for a tunnel may be the request message 1024 previously described with reference to FIG. 10.
Second Exemplary Apparatus and Method Thereon
FIG. 26 is an illustration of an apparatus 2600 configured to communicate in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIGS. 27, 28 described below) . In an aspect, the apparatus 2600 may be a network access node. The apparatus 2600 includes a communication interface (e.g., at least one transceiver) 2602, a network communication interface 2603, a storage medium 2604, a user interface 2606, a memory device 2608, and a processing circuit 2610.
These components can be coupled to and/or placed in electrical communication with one another via a signaling bus or other suitable component, represented generally by the connection lines in FIG. 26. The signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2610 and the overall design constraints. The signaling bus links together various circuits such that each of the communication interface 2602, the network communication interface 2603, the storage medium 2604, the user interface 2606, and the memory device 2608 are coupled to and/or in electrical communication with the processing circuit 2610. The signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
The communication interface 2602 may be adapted to facilitate wireless communication of the apparatus 2600. For example, the communication interface 2602 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more communication devices in a network. The communication interface 2602 may be coupled to one or more antennas 2612 for wireless communication within a wireless communication system. The communication interface 2602 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers. In the illustrated example, the communication interface 2602 includes a transmitter 2614 and a receiver 2616.
The network communication interface 2603 may be adapted to facilitate communication of the apparatus 2600. For example, the network communication interface 2603 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network. The network communication interface 2603 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
The memory device 2608 may represent one or more memory devices. As indicated, the memory device 2608 may maintain network-related information /along with other information used by the apparatus 2600. In some implementations, the memory device 2608 and the storage medium 2604 are implemented as a common memory component. The memory device 2608 may also be used for storing data that is manipulated by the processing circuit 2610 or some other component of the apparatus 2600.
The storage medium 2604 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information. The storage medium 2604 may also be used for storing data that is manipulated by the processing circuit 2610 when executing code. The storage medium 2604 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
By way of example and not limitation, the storage medium 2604 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer. The storage medium 2604 may be embodied in an article of manufacture (e.g., a computer program product) . By way of example, a computer program product may include a computer-readable medium in packaging materials. In view of the above,
in some implementations, the storage medium 2604 may be a non-transitory (e.g., tangible) storage medium.
The storage medium 2604 may be coupled to the processing circuit 2610 such that the processing circuit 2610 can read information from, and write information to, the storage medium 2604. That is, the storage medium 2604 can be coupled to the processing circuit 2610 so that the storage medium 2604 is at least accessible by the processing circuit 2610, including examples where at least one storage medium is integral to the processing circuit 2610 and/or examples where at least one storage medium is separate from the processing circuit 2610 (e.g., resident in the apparatus 2600, external to the apparatus 2600, distributed across multiple entities, etc. ) .
Code and/or instructions stored by the storage medium 2604, when executed by the processing circuit 2610, causes the processing circuit 2610 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2604 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2610, as well as to utilize the communication interface 2602 for wireless communication and the network communication interface 2603 for network communication, utilizing their respective communication protocols.
The processing circuit 2610 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2604. As used herein, the term “code” or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
The processing circuit 2610 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations. The processing circuit 2610 may include circuitry configured to implement desired code provided by appropriate media in at least one example. For example, the processing circuit 2610 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code. Examples of the processing circuit 2610 may include a general purpose processor, a digital signal
processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine. The processing circuit 2610 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2610 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
According to one or more aspects of the disclosure, the processing circuit 2610 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein. As used herein, the term “adapted” in relation to the processing circuit 2610 may refer to the processing circuit 2610 being one or more of configured, employed, implemented, and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
According to at least one example of the apparatus 2600, the processing circuit 2610 may include one or more of a receiving circuit/module 2620, a transmitting circuit/module 2622, a communication link establishing circuit/module 2624, a destination network address determining circuit/module 2626, and/or a network address translating circuit/module 2628 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIGS. 27 and 28) .
The receiving circuit/module 2620 may include circuitry and/or instructions (e.g., the receiving instructions 2630 stored on the storage medium 2604) adapted to perform several functions relating to, for example, receiving a request for content from a client device, and/or receiving the content from the local cache server via the communication link.
The transmitting circuit/module 2622 may include circuitry and/or instructions (e.g., the transmitting instructions 2632 stored on the storage medium 2604)
adapted to perform several functions relating to, for example, transmitting the content to the client device, transmitting the request for content to a gateway using an Evolved Packet switched System (EPS) bearer, transmitting the first data packet to the local cache server, and/or transmitting the one or more second data packets to the client device.
The communication link establishing circuit/module 2624 may include circuitry and/or instructions (e.g., the communication link establishing instructions 2634 stored on the storage medium 2604) adapted to perform several functions relating to, for example, establishing a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content.
The destination network address determining circuit/module 2626 may include circuitry and/or instructions (e.g., the destination network address determining instructions 2636 stored on the storage medium 2604) adapted to perform several functions relating to, for example, determining whether a destination network address in the first data packet corresponds to a network address of the local cache server.
The network address translating circuit/module 2628 may include circuitry and/or instructions (e.g., the network address translating instructions 2638 stored on the storage medium 2604) adapted to perform several functions relating to, for example, performing a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node, and/or performing a second network address translation operation on one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device.
As mentioned above, instructions stored by the storage medium 2604, when executed by the processing circuit 2610, causes the processing circuit 2610 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2604 may include one or more of the receiving instructions 2630, the transmitting instructions 2632, the communication link establishing instructions 2634, the destination network address determining instructions 2636, and/or the network address translating instructions 2638.
FIG. 27 is a flowchart 2700 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network access node (e.g., the apparatus 2600) . It should be understood that the operations indicated by dotted lines in FIG. 27 represent optional operations.
A network access node may receive a request for content from a client device 2702. The network access node may transmit the request for content to a gateway using an Evolved Packet switched System (EPS) bearer 2704. The network access node may establish a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content 2706. In an aspect, the local cache server and the network access node are located at or near an edge of a network. The network access node may receive the content from the local cache server via the communication link 2708. The network access node may transmit the content to the client device 2710.
FIG. 28 is a flowchart 2800 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network access node (e.g., the apparatus 2600) . It should be understood that the operations indicated by dotted lines in FIG. 28 represent optional operations.
The network access node may receive a request for content from a client device 2802. The network access node may establish a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content 2804. In an aspect, the local cache server and the network access node are located at or near an edge of a network. The network access node may determine whether a destination network address in the first data packet corresponds to a network address of the local cache server 2806. In an aspect, the network access node may determine whether a destination network address in the first data packet corresponds to a network address of a local cache server by determining whether the destination network address matches a network address in a list of cache server network addresses. The network access node may perform a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node 2808. The network access node may transmit the first data packet to the local cache server 2810. The network access node may receive the content from the local cache server via the communication link 2812. The network
access node may perform a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device 2814. The network access node may transmit the content to the client device 2816.
Third Exemplary Apparatus and Method Thereon
FIG. 29 is an illustration of an apparatus 2900 configured for communication in a network according to one or more aspects of the disclosure (e.g., aspects related to the method of FIG. 30 described below) . In an aspect, the apparatus 2900 may be a network entity (e.g., a GSLB node or an SLB device) . The apparatus 2900 includes a network communication interface (e.g., at least one transceiver) 2902, a storage medium 2904, a user interface 2906, a memory device 2908, and a processing circuit 2910.
These components can be coupled to and/or placed in electrical communication with one another via a signaling bus or other suitable component, represented generally by the connection lines in FIG. 29. The signaling bus may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 2910 and the overall design constraints. The signaling bus links together various circuits such that each of the network communication interface 2902, the storage medium 2904, the user interface 2906, and the memory device 2908 are coupled to and/or in electrical communication with the processing circuit 2910. The signaling bus may also link various other circuits (not shown) such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
The network communication interface 2902 may be adapted to facilitate communication of the apparatus 2900. For example, the network communication interface 2902 may include circuitry and/or code (e.g., instructions) adapted to facilitate the communication of information bi-directionally with respect to one or more devices (e.g., network entities) in a network. The network communication interface 2902 can be configured with one or more standalone receivers and/or transmitters, as well as one or more transceivers.
The memory device 2908 may represent one or more memory devices. As indicated, the memory device 2908 may maintain network-related information /along with other information used by the apparatus 2900. In some implementations, the
memory device 2908 and the storage medium 2904 are implemented as a common memory component. The memory device 2908 may also be used for storing data that is manipulated by the processing circuit 2910 or some other component of the apparatus 2900.
The storage medium 2904 may represent one or more computer-readable, machine-readable, and/or processor-readable devices for storing code, such as processor executable code or instructions (e.g., software, firmware) , electronic data, databases, or other digital information. The storage medium 2904 may also be used for storing data that is manipulated by the processing circuit 2910 when executing code. The storage medium 2904 may be any available media that can be accessed by a general purpose or special purpose processor, including portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying code.
By way of example and not limitation, the storage medium 2904 may include a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a card, a stick, or a key drive) , a random access memory (RAM) , a read only memory (ROM) , a programmable ROM (PROM) , an erasable PROM (EPROM) , an electrically erasable PROM (EEPROM) , a register, a removable disk, and any other suitable medium for storing code that may be accessed and read by a computer. The storage medium 2904 may be embodied in an article of manufacture (e.g., a computer program product) . By way of example, a computer program product may include a computer-readable medium in packaging materials. In view of the above, in some implementations, the storage medium 2904 may be a non-transitory (e.g., tangible) storage medium.
The storage medium 2904 may be coupled to the processing circuit 2910 such that the processing circuit 2910 can read information from, and write information to, the storage medium 2904. That is, the storage medium 2904 can be coupled to the processing circuit 2910 so that the storage medium 2904 is at least accessible by the processing circuit 2910, including examples where at least one storage medium is integral to the processing circuit 2910 and/or examples where at least one storage medium is separate from the processing circuit 2910 (e.g., resident in the apparatus 2900, external to the apparatus 2900, distributed across multiple entities, etc. ) .
Code and/or instructions stored by the storage medium 2904, when executed by the processing circuit 2910, causes the processing circuit 2910 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2904 may include operations configured for regulating operations at one or more hardware blocks of the processing circuit 2910, as well as to utilize the network communication interface 2902 for network communication utilizing their respective communication protocols.
The processing circuit 2910 is generally adapted for processing, including the execution of such code/instructions stored on the storage medium 2904. As used herein, the term “code” or “instructions” shall be construed broadly to include without limitation programming, instructions, instruction sets, data, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
The processing circuit 2910 is arranged to obtain, process and/or send data, control data access and storage, issue commands, and control other desired operations. The processing circuit 2910 may include circuitry configured to implement desired code provided by appropriate media in at least one example. For example, the processing circuit 2910 may be implemented as one or more processors, one or more controllers, and/or other structure configured to execute executable code. Examples of the processing circuit 2910 may include a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may include a microprocessor, as well as any conventional processor, controller, microcontroller, or state machine. The processing circuit 2910 may also be implemented as a combination of computing components, such as a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, an ASIC and a microprocessor, or any other number of varying configurations. These examples of the processing circuit 2910 are for illustration and other suitable configurations within the scope of the disclosure are also contemplated.
According to one or more aspects of the disclosure, the processing circuit 2910 may be adapted to perform any or all of the features, processes, functions, operations and/or routines for any or all of the apparatuses described herein. As used herein, the term “adapted” in relation to the processing circuit 2910 may refer to the processing circuit 2910 being one or more of configured, employed, implemented, and/or programmed to perform a particular process, function, operation and/or routine according to various features described herein.
According to at least one example of the apparatus 2900, the processing circuit 2910 may include one or more of a content location request receiving circuit/module 2920, an identification information obtaining circuit/module 2922, and/or a content location transmitting circuit/module 2924 that are adapted to perform any or all of the features, processes, functions, operations and/or routines described herein (e.g., features, processes, functions, operations and/or routines described with respect to FIG. 30) .
The content location request receiving circuit/module 2920 may include circuitry and/or instructions (e.g., the content location request receiving instructions 2930 stored on the storage medium 2904) adapted to perform several functions relating to, for example, receiving a first request for a location of content from a client device.
The identification information obtaining circuit/module 2922 may include circuitry and/or instructions (e.g., the identification information obtaining instructions 2932 stored on the storage medium 2904) adapted to perform several functions relating to, for example, obtaining identification information of a first network access node associated with the client device.
The content location transmitting circuit/module 2924 may include circuitry and/or instructions (e.g., the content location transmitting instructions 2934 stored on the storage medium 2904) adapted to perform several functions relating to, for example, transmitting the location of the content based on the identification information of the first network access node.
As mentioned above, instructions stored by the storage medium 2904, when executed by the processing circuit 2910, causes the processing circuit 2910 to perform one or more of the various functions and/or process operations described herein. For example, the storage medium 2904 may include one or more of the content location
request receiving instructions 2930, the identification information obtaining instructions 2932, and/or the content location transmitting instructions 2934,
FIG. 30 is a flowchart 3000 illustrating a method for an apparatus in a network in accordance with various aspects of the disclosure. The method may be performed by a network entity (e.g., a GSLB node or the apparatus 2900) .
A network entity may receive a first request for a location of content from a client device 3002. The network entity may obtain identification information of a first network access node associated with the client device 3004. In an aspect, the local cache server and the network access node are located at or near an edge of a network. The network entity may transmit the location of the content based on the identification information of the first network access node 3006.
It is noted that the aspects of the present disclosure may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Moreover, a storage medium may represent one or more devices for storing data, including read-only memory (ROM) , random access memory (RAM) , magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine-readable mediums and, processor-readable mediums, and/or computer-readable mediums for storing information. The terms “machine-readable medium” , “computer-readable medium” , and/or “processor-readable medium” may include, but are not limited to non-transitory mediums such as portable or fixed storage devices, optical storage devices, and various other mediums capable of storing, containing or carrying instruction (s) and/or data. Thus, the various methods described herein may be fully or partially implemented by instructions and/or data that may be stored in a “machine-readable medium” , “computer-readable medium” , and/or “processor-readable medium” and executed by one or more processors, machines and/or devices.
Furthermore, aspects of the disclosure may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. When
implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage (s) . A processor may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
The various illustrative logical blocks, modules, circuits, elements, and/or components described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The methods or algorithms described in connection with the examples disclosed herein may be embodied directly in hardware, in a software module executable by a processor, or in a combination of both, in the form of processing unit, programming instructions, or other directions, and may be contained in a single device or distributed across multiple devices. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. A storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the aspects disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
The various features of the invention described herein can be implemented in different systems without departing from the invention. It should be noted that the foregoing aspects of the disclosure are merely examples and are not to be construed as limiting the invention. The description of the aspects of the present disclosure is intended to be illustrative, and not to limit the scope of the claims. As such, the present teachings can be readily applied to other types of apparatuses and many alternatives, modifications, and variations will be apparent to those skilled in the art.
Claims (30)
- A method for a first network node comprising:obtaining information associated with a local cache server that is proximate to a network access node serving a client device; andtransmitting a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
- The method of claim 1, wherein the local cache server and the network access node are located at or near an edge of a network.
- The method of claim 1, further comprising:receiving, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request comprising an identifier associated with the client device;obtaining the identification information associated with the network access node; andtransmitting the identification information associated with the network access node to the network entity.
- The method of claim 3, wherein obtaining the identification information associated with the network access node comprises:transmitting a second request to a second network node, the second request being for the identification information associated with the network access node; andreceiving the identification information associated with the network access node from the second network node.
- The method of claim 1, wherein the information associated with a local cache server is a network address of the local cache server.
- The method of claim 3, wherein the network entity is a global server load balancing node of a content delivery network or a server load balancing device.
- The method of claim 1, wherein the first network node is a packet data network gateway or a mobility management entity, and wherein the second network node is a serving gateway.
- A device, comprising:a network communication interface configured to communicate with one or more network entities;a processing circuit coupled to the network communication interface, the processing circuit configured toobtain information associated with a local cache server that is proximate to a network access node serving a client device; andtransmit a request for a tunnel between the local cache server and the network access node for delivery of data to the network access node directly from the local cache server.
- The device of claim 8, wherein the processing circuit is further configured toreceive, from a network entity, a first request for identification information associated with the network access node serving the client device, the first request comprising an identifier associated with the client device;obtain the identification information associated with the network access node; andtransmit the identification information associated with the network access node to the network entity.
- The device of claim 9, wherein the processing circuit configured to obtain the identification information associated with the network access node is further configured totransmit a second request to a network node, the secondrequest being for the identification information associated with the network access node; andreceive the identification information associated with the network access node from the network node.
- A method for a network access node, comprising:receiving a request for content from a client device;establishing a communication link with a local cache server that is proximate to the network access node, the local cache server configured to store the requested content;receiving the content from the local cache server via the communication link; andtransmitting the content to the client device.
- The method of claim 11, wherein the local cache server and the network access node are located at or near an edge of a network.
- The method of claim 11, further comprising:transmitting the request for content to a gateway using an Evolved Packet switched System (EPS) bearer.
- The method of claim 11, wherein the communication link includes a tunnel established using a General Packet Radio Service Tunnel Protocol, and wherein the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets.
- The method of claim 11, wherein transmitting the content to the client device comprises forwarding the content to the client device using a Packet Data Convergence Protocol.
- The method of claim 11, wherein the request for content from the client device is included in a first data packet, further comprising:determining whether a destination network address in the first data packet corresponds to a network address of the local cache server;performing a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the network access node; andtransmitting the first data packet to the local cache server.
- The method of claim 16, wherein determining whether the destination network address in the first data packet corresponds to the network address of the local cache server comprises determining whether the destination network address matches a network address in a list of cache server network addresses.
- The method of claim 16, wherein the content received from the local cache server via the communication link is included in one or more second data packets, further comprising:performing a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the network access node to the network address of the client device; andtransmitting the one or more second data packets to the client device.
- The method of claim 11, wherein establishing the communication link comprises establishing a tunnel between the network access node and the local cache server, wherein the content from the local cache server is received directly from the local cache server through the tunnel.
- The method of claim 11, wherein establishing the communication link comprises transmitting a request to create a tunnel to the local cache server.
- A device, comprising:a wireless communication circuit configured to communicate with a client device;a network communication interface configured to communicate with one or more network entities; anda processing circuit coupled to the wireless communication circuit and the network communication interface, the processing circuit configured toreceive a request for content from the client device;establish a communication link with a local cache server that is proximate to the device, the local cache server configured to store the requested content;receive the content from the local cache server via the communication link; andtransmit the content to the client device.
- The device of claim 21, wherein the local cache server and the device are located at or near an edge of a network.
- The device of claim 21, wherein the processing circuit is further configured totransmit the request for content to a gateway using an Evolved Packet switched System (EPS) bearer.
- The device of claim 21, wherein the communication link comprises a tunnel established using a General Packet Radio Service Tunnel Protocol, and wherein the content is received directly from the local cache server via the tunnel in one or more General Packet Radio Service Tunnel Protocol user plane packets.
- The device of claim 21, wherein the processing circuit configured to transmit the content to the client device is further configured toforward the content to the client device using a Packet Data Convergence Protocol.
- The device of claim 21, wherein the request for content from the client device is included in a first data packet, wherein the processing circuit is further configured todetermine whether a destination network address in the first data packet corresponds to a network address of the local cache server;perform a first network address translation operation on the first data packet by changing a source address of the first data packet from a network address of the client device to a network address of the device; andtransmit the first data packet to the local cache server.
- The device of claim 26, wherein the processing circuit configured to determine whether the destination network address in the first data packet corresponds to the network address of the local cache server is further configured to determine whether the destination network address matches a network address in a list of cache server network addresses.
- The device of claim 26, wherein the content received from the local cache server via the communication link is included in one or more second data packets, wherein the processing circuit is further configured to:perform a second network address translation operation on the one or more second data packets by changing a destination address of the one or more second data packets from the network address of the device to the network address of the client device; andtransmit the one or more second data packets to the client device.
- The device of claim 21, wherein the processing circuit configured to establish the communication link is further configured toestablish a tunnel between the device and the local cache server, wherein the content from the local cache server is received directly from the local cache server through the tunnel.
- The device of claim 21, wherein the processing circuit configured to establish the communication link is further configured to transmit a request to create a tunnel to the local cache server.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2015/081925 WO2016201690A1 (en) | 2015-06-19 | 2015-06-19 | Methods and apparatuses for pgw assisted local cache |
| CNPCT/CN2015/081925 | 2015-06-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016202091A1 true WO2016202091A1 (en) | 2016-12-22 |
Family
ID=57544704
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2015/081925 Ceased WO2016201690A1 (en) | 2015-06-19 | 2015-06-19 | Methods and apparatuses for pgw assisted local cache |
| PCT/CN2016/079991 Ceased WO2016202091A1 (en) | 2015-06-19 | 2016-04-22 | Network architecture with network gateway assisted local cache |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2015/081925 Ceased WO2016201690A1 (en) | 2015-06-19 | 2015-06-19 | Methods and apparatuses for pgw assisted local cache |
Country Status (1)
| Country | Link |
|---|---|
| WO (2) | WO2016201690A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020126271A1 (en) | 2018-12-20 | 2020-06-25 | British Telecommunications Public Limited Company | Cellular telecommunications network |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102014053A (en) * | 2010-11-17 | 2011-04-13 | 华为技术有限公司 | Service issuing method, device and communication system |
| CN102065502A (en) * | 2011-01-27 | 2011-05-18 | 新邮通信设备有限公司 | System information acquisition method in LTE (Long Term Evolution) system and UE (User Equipment) |
| US20140269482A1 (en) * | 2013-03-12 | 2014-09-18 | Motorola Solutions, Inc. | Method and apparatus for propagating public safety multicast and broadcast services among public safety personnel |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101262489B (en) * | 2007-03-09 | 2011-03-16 | 中兴通讯股份有限公司 | A content distribution network system and method |
| JP2010049526A (en) * | 2008-08-22 | 2010-03-04 | Sony Ericsson Mobile Communications Ab | Mobile electronic apparatus, content playback device, content acquisition method, content whereabouts notification method, content acquisition program, content whereabouts notification method, and content use system |
| CN102202418B (en) * | 2011-02-23 | 2013-12-04 | 华为技术有限公司 | Method for establishing service and method, equipment and system for providing service |
| US9571566B2 (en) * | 2011-06-15 | 2017-02-14 | Juniper Networks, Inc. | Terminating connections and selecting target source devices for resource requests |
-
2015
- 2015-06-19 WO PCT/CN2015/081925 patent/WO2016201690A1/en not_active Ceased
-
2016
- 2016-04-22 WO PCT/CN2016/079991 patent/WO2016202091A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102014053A (en) * | 2010-11-17 | 2011-04-13 | 华为技术有限公司 | Service issuing method, device and communication system |
| CN102065502A (en) * | 2011-01-27 | 2011-05-18 | 新邮通信设备有限公司 | System information acquisition method in LTE (Long Term Evolution) system and UE (User Equipment) |
| US20140269482A1 (en) * | 2013-03-12 | 2014-09-18 | Motorola Solutions, Inc. | Method and apparatus for propagating public safety multicast and broadcast services among public safety personnel |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016201690A1 (en) | 2016-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12120029B2 (en) | Method for implementing service continuity and related device | |
| US9635594B2 (en) | Method; apparatus and computer program product for moving a UE context application service handover between access nodes | |
| US10015643B2 (en) | Managing multicast traffic | |
| CN107925920B (en) | System and method for mobility management in a distributed software-defined network packet core system | |
| JP6092959B2 (en) | Method and apparatus for local data caching | |
| EP2768250A1 (en) | Method and Apparatus for Receiving Information From a Communications Network | |
| US10841834B2 (en) | Legacy network maximum transmission unit isolation capability through deployment of a flexible maximum transmission unit packet core design | |
| US8767728B2 (en) | Tunnel gateway managed caching architecture | |
| US10299171B2 (en) | First service network node, a second service network node and methods relating to handling of a service session | |
| US11950128B2 (en) | Edge offloading in a mobile network having a converged core architecture | |
| US20160156404A1 (en) | Establishment of packet data network connection via relay user equipment | |
| EP3479549B1 (en) | Information centric networking for long term evolution | |
| US20240205150A1 (en) | System and methods for supporting low mobility devices in next generation wireless network | |
| US20130208591A1 (en) | Mobile-Access Information Based Adaptation of Network Address Lookup for Differentiated Handling of Data Traffic | |
| US9781590B2 (en) | Per-host locator to enable mobility gateway relocation in distributed mobility management | |
| US9585052B2 (en) | Determining a traffic bearer for data traffic between a terminal and a content data source of a content data network | |
| CN106464744A (en) | Systems and methods for providing IP address translation services | |
| JP2024517718A (en) | Selective import of UE addresses into VRFs in a 5G network | |
| JP2024517717A (en) | PFCP Session Load Balancer | |
| US10701600B2 (en) | 5G core network optimized local handover | |
| WO2018188728A1 (en) | Handover with no or limited mme involvement | |
| KR102485601B1 (en) | Method of selecting optimal network node for contents delivery service and apparatus therefor | |
| WO2016202091A1 (en) | Network architecture with network gateway assisted local cache | |
| WO2017214991A1 (en) | Data transmission method, gateway apparatus, and network apparatus | |
| WO2019062527A1 (en) | Discovery method and configuration method of local data network, terminal, core network device and base station |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16810832 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16810832 Country of ref document: EP Kind code of ref document: A1 |