System and method for content retrieval from remote network regions

Information

  • Patent Grant
  • 12126671
  • Patent Number
    12,126,671
  • Date Filed
    Monday, November 14, 2022
    2 years ago
  • Date Issued
    Tuesday, October 22, 2024
    2 months ago
Abstract
Systems and methods for retrieving regional content via remote access point servers are disclosed. In one embodiment, the disclosure relates to a network system for content retrieval from remote network regions. The network system may comprise a first device. The first device may be configured to receive a request for content. The content may be on one or more content servers located in a remote network region. The first device may be further configured to at least one of forwarding the request, via tunneling, to a destination access point server located in proximity to the one or more content servers and receiving the content from the destination access point server, obtaining the content from a cache of the first device.
Description
FIELD OF THE DISCLOSURE

The present disclosure relates generally to networks, and more particularly, to retrieving regional content via remote access point servers.


BACKGROUND OF THE DISCLOSURE

Within the internet's client-server topology, the further the distance from client to server, the higher the latency or round trip time (RTT) between the two and the slower the fulfillment and delivery of a data request. The number of hops across intermediary network devices between the client and the server is defined as hop count and is subject to an Internet Protocol limit of time-to-live (TTL) also known as a hop limit which defines the maximum number of allowed hops before a packet is dropped as undeliverable. This TTL limit is imposed to prevent congestion due to unrouteable packets that would otherwise loop through the internet indefinitely clogging the pipes. When making connections over long distances, this safety mechanism can also cause problems for deliverable packets. As a packet transits a hop an integer of one is subtracted from the TTL. Once the TTL hits zero, then the packet will be dropped. Therefore even if the path is good, if it has too many hops, then it will still be rendered undeliverable.


Content delivery networks (CDN) were developed to bring cloned copies of content from distant servers to be hosted on and served from CDN servers as close to the requesting client as possible. These CDN servers offer a significant performance increase, as what used to be remotely hosted data is now cached on servers at locations in close proximity to the requesting client. The shorter the distance, the lower the latency and fewer hops, the faster content will be delivered. Where content is globally equivalent (the same everywhere), this represents a desired performance gain.


In the case of content which differs by region but is available via the same universal resource locator (URL) which automatically sends traffic to client devices based on a geo-location mechanism such as a map marker, this can represent a problem as only content from the region where the request is made is served. However, the end user might desire content to be served from a different geographic location.


To get content from another region, some users manually force traffic through public proxies or proxy servers but this practice is limiting for a number of reasons. It can be slow and is usually insecure because in most cases, the user does not control the proxy servers that their traffic transits through. This method usually needs to be manually configured. It is point-to-point such that that they have to execute/retrieve code on one region, then reconfigure the proxy client to retrieve content from a different proxy server in another region, and so on. Not only is this time consuming but it is not advantageous as they are not able to concurrently view content from more than one region. There is no control over the network path taken between client and proxy server and between proxy server and target content server. This can also result in slow speeds and low bandwidth.


Soft VPN's can also be utilized for this purpose but there is no control over the network in the middle and like proxy servers, these need to be configured to be used per region as it these are only point-to-point.


In view of the foregoing, it may be understood that there may be significant need to allow for multiple, concurrent secure and fast streams to multiple regions with low latency and hop count.


SUMMARY OF THE DISCLOSURE

Systems and methods for retrieving regional content via remote access point servers are disclosed. In one embodiment, the disclosure relates to a network system for content retrieval from remote network regions. The network system may comprise a first device. The first device may be configured to receive a request for content. The content may be on one or more content servers located in a remote network region. The first device may be further configured to at least one of forwarding the request, via tunneling, to a destination access point server located in proximity to the one or more content servers and receiving the content from the destination access point server, obtaining the content from a cache of the first device.


In accordance with other aspects of this embodiment, the destination access point server is configured to pull the content from the one or more content servers.


In accordance with other aspects of this embodiment, between the first device and the destination access point server, the network system further comprise one or more intermediate tunnels connecting one or more intermediate access pointer servers and one or more intermediate routing devices.


In accordance with other aspects of this embodiment, at least one of the intermediate access point servers and the destination access point server is configured to perform a Domain Name System (DNS) lookup to locate the one or more content servers.


In accordance with other aspects of this embodiment, at least one of the intermediate routing devices, the first device, the intermediate access point servers, and the destination access point server is configured to perform a Domain Name System (DNS) lookup from a cache to locate the one or more content servers.


In accordance with other aspects of this embodiment, at least one of the intermediate routing devices, the intermediate access point servers, and the destination access point server is configured to cache the content.


In accordance with other aspects of this embodiment, the cached content is synchronized across the intermediate routing devices, the first device, the intermediate access point servers, and the destination access point server.


In accordance with other aspects of this embodiment, at least one of the intermediate routing devices, the first device, the intermediate access point servers, and the destination access point server is configured to at least one of compressing the content and decompressing the content.


In accordance with other aspects of this embodiment, at least one of the intermediate routing devices and the first device is configured to perform smart routing based on a global virtual network.


In accordance with other aspects of this embodiment, the smart routing is based on at least one of best bandwidth, lowest latency, fewest hops, and no packet loss.


In accordance with other aspects of this embodiment, the smart routing is based on at least one of real-time statistics and historical statistics.


In accordance with other aspects of this embodiment, the destination access point server is further configured to pull the content from the one or more content servers simultaneously.


In accordance with other aspects of this embodiment, the content from the one or more content server comprises one or more links to additional content as constituent parts.


In accordance with other aspects of this embodiment, the destination content server is further configured to pull content from the one or more links.


In accordance with other aspects of this embodiment, the content of the one or more links is pulled from a remote region in which content of a page containing the one or more links is located.


In accordance with other aspects of this embodiment, the destination access point server is further configured to pull the content from the one or more links simultaneously.


In accordance with other aspects of this embodiment, the content may be validated.


In accordance with other aspects of this embodiment, the validation is based on at least one of file size check and hash check.


In another embodiment, the disclosure relates to a method for content retrieval from remote network regions. According to the method, a request for content may be received by a first device. The content may be on one or more content servers located in a remote network region. The request may be forwarding, via tunneling, to a destination access point server located in proximity to the one or more content servers and the content from the destination access point server may be received. The content may be obtained from a cache of the first device.


In still another embodiment, the disclosure relates to a non-transitory computer readable medium storing a computer-readable program of content retrieval from remote network region. The program may include computer-readable instructions to receive, by the first device, a request for content. The content may be on one or more content servers located in a remote network region; The program may include computer-readable instructions to forward the request, via tunneling, to a destination access point server located in proximity to the one or more content servers and receiving the content from the destination access point server. The program may include computer-readable instructions to obtain the content from a cache of the first device.


The present disclosure will now be described in more detail with reference to particular embodiments thereof as shown in the accompanying drawings. While the present disclosure is described below with reference to particular embodiments, it should be understood that the present disclosure is not limited thereto. Those of ordinary skill in the art having access to the teachings herein will recognize additional implementations, modifications, and embodiments, as well as other fields of use, which are within the scope of the present disclosure as described herein, and with respect to which the present disclosure may be of significant utility.





BRIEF DESCRIPTION OF THE DRAWINGS

In order to facilitate a fuller understanding of the present disclosure, reference is now made to the accompanying drawings, in which like elements are referenced with like numerals. These drawings should not be construed as limiting the present disclosure, but are intended to be illustrative only.



FIG. 1 shows a block diagram depicting resolution of universal resource locator (URL) via lookup through internet domain name system (DNS) for routing from Host (client) to the numeric IP address of the Host (server).



FIG. 2 shows a block diagram depicting CDN resolution and content delivery where content is globally equivalent.



FIG. 3 shows a block diagram depicting CDN resolution and delivery of regionally specific content.



FIG. 4 shows a block diagram depicting CDN resolution and delivery of regionally specific content with explicit blocking.



FIG. 5 shows a block diagram depicting how a proxy server works.



FIG. 6 shows a block diagram illustrating geographic destination DNS resolution and content delivery via a Global Virtual Network (GVN) in accordance with an embodiment of the present disclosure.



FIG. 7 shows a flowchart of Advanced Smart Routing (ASR) within a GVN in accordance with an embodiment of the present disclosure.



FIG. 8 shows a block diagram illustrating the geographic destination mechanism (GDM) within a GVN in accordance with an embodiment of the present disclosure.



FIG. 9 shows a block diagram illustrating software architecture of end point device and access point server connected within a GVN in accordance with an embodiment of the present disclosure.



FIG. 10 shows a block diagram illustrating operation of the access point server in accordance with an embodiment of the present disclosure.





DETAILED DESCRIPTION OF EMBODIMENTS

In some embodiments, regional content retrieval disclosed herein uses a combination of smart-routing, tunnels through the topology of the mesh of devices of a Global Virtual Network (GVN) to reach Access Point Servers (SRV_AP) in target geographic locations, content pulling agents working with content delivery agents, chained caching and other embodiments which allow a host (client) to specify a desired region to fetch content from and to receive content from there as if they were physically located in that region. Advanced smart routing and point to multi-point topology also offer the advantages of concurrent streams from multiple remote regions defined by source host (client) or target host (server) or target URL, or other.


In some embodiments, each request may be routed to a geographic destination of their choosing via a Content Delivery Agent (CDA) located on an end-point device (EPD) in close proximity to them. The content from multiple target geographic regions is simultaneously served to them as an independent stream per request from an SRV_AP server in the region where the desired content is located on a host (server) via content pulling agent (CPA) running on their behalf. An SRV_AP server may also pull content from multiple content servers simultaneously. To improve performance and increase speed, content fetched files and streams can be sent either as individual files or clumps of combined files via chained caches. Send back control and input interactions between CDA to CPA for execution and data stream flow manipulation with delivery of fetched content served by the CDA on the EPD from local cache.


In some embodiments, traffic flow through a GVN to an SRV_AP with CPA in close proximity to the target content server in the desired geographic location. Data traffic flows through chained caches transmitted via secure, advanced smart routing (ASR) of wrapped and obfuscated tunnels through SRV_AP and then to a CDA on the EPD which originally made the request for content.


In some embodiments, a device in the system disclosed herein may receive and/or intercept what would otherwise be a pass-through request for content.


The FIGS. 1-5 illustrate how the internet works without and with content delivery networks (CDN) delivering content from Host Servers to Host Clients. There are advantages to CDN's but where content differs by region, some serious limitations need to be overcome. This background information is to provide background perspective on why techniques disclosed herein can provide a better, more robust quality of service (QoS).



FIG. 1 shows a block diagram depicting resolution of universal resource locator (URL) via lookup through internet domain name system (DNS) for routing from Host (client) to the numeric IP address of the Host (server). A content request or push from host client (C) 101 to host server (S) 301 as files or streams or blocks of data flows in the direction of 001. The response 002 of content delivery from host S to host C as files or streams or blocks of data. The host client device 101 in Client-Server (C-S) relationship that makes request to access content from a remote host S or sends data to remote host S via a universal resource locator (URL) or other network reachable address.


The connection from the host client to the internet is marked as P01—connection from client 101 to POP 102 directly facing or can be located in a local area network (LAN) which then connects to the internet via a point of presence (POP) can be referred to as the last mile connection. The point of presence (POP) 102 which represents connection provided from an end point by an internet service provider (ISP) to the internet via their network and its interconnects. If the URL is a domain name rather than a numeric address, then this URL is sent to domain name system (DNS) server 103 where the domain name is translated to an IPv4 or IPv6 or other address for routing purposes.


Traffic from client 101 to server 301 is routed through the Internet 120 representing transit between POPs (102 and 302) including peering, backhaul, or other transit of network boundaries.


The connection P02 from POP 102 to DNS 103 to look up a number address from a universal resource locator (URL) to get the IPv4 address or other numeric address of target server can be directly accessed from the POP 102, or via the Internet 120. The connection P03 from POP 102 of an ISP to the Internet 120 can be single-honed or multi-honed. There is a connection P04 from the Internet 120 to the ISP's or internet data center's (IDC) internet-facing POP 302. The connection P05 from the POP 302 of the server to the host 301 can be direct or via multiple hops.


The lookups from name to numeric address via domain name systems is a standard on the Internet today and assumes that the DNS server is integral and that its results are current and can be trusted.



FIG. 2 shows a block diagram depicting CDN resolution and content delivery where content is globally equivalent. FIG. 2 includes various network paths (e.g., P001, P002, etc.) Content Delivery Networks (CDN) can offer significant advantages in speed and flexibility and load balancing when serving content to clients. Content requests 001 flow from host client (C) 101 to host server (S) and the reply 002 flow of content delivery returns from host S to host C as packetized files or streams or blocks of data.


The host client 101, can be a device such as a laptop, desktop computer, phone, tablet, or other device that acts as a client in a Client-Server (CS) relationship. It makes request(s) to access content served by a remote host server via a universal resource locator (URL).


The POP 102, DNS server 103, Internet 120 operate in the same manner as noted in FIG. 1.


In the case of CDN infrastructure, CDN Map Markers 201 in coordination with CDN control server(s) 202 or similar mechanisms determine which region the client device is located in and which CDN server to connect to for content to be served.


If the client 101 is in Region A, it will be routed to the CDN server 503 in Region A via server's POP 403 in Region A. And clients 101 in Region B will connect to a CDN server 502 in Region B via server's POP 402 in Region B. And clients 101 in Region C will connect to a CDN server 501 in Region C via server's POP 401 in Region C.


In this example, there is a content equivalency for all served content and each CDN server of 501, 502 and 503 has an exact cloned copy of content from the Origin Server 601.


When content is globally equivalent, i.e. same content served on CDN Servers from Regions A, B, and C, then it will be equally replicated from an origin server 601 which feeds the content servers.


The initial CDN Map Marker 201 lookup via the P001 via 102 to P003 may be very quick or could take a relatively high lookup time if the CDN Map Marker server is located in a region far from the client device. Once the lookup is done, traffic will flow to the nearest and or best available CDN Server via P006.


For the sake of illustration of this figure, a region is defined as a geographic area which is different from another geographic area. It does not necessarily represent a great area but could be so and it also could represent a great distance from one region to another or they could be very close to each other. The key point is that clients in one region are to receive content via a CDN server from a specific region and not from another region.



FIG. 3 shows a block diagram depicting CDN resolution and delivery of regionally specific content. FIG. 3 includes various network paths (e.g., P001, P002, etc.) FIG. 3 is similar to FIG. 2, with the main difference between them is that the content for each region is different from the content of other regions. Between CDN servers 501, 502, and 503 and the Origin Server 601 are Content Regional Servers 701,702, and 703 which publish the regionally specific content to CDN servers in each region to be served to clients in their respective regions.



FIG. 4 shows a block diagram depicting CDN resolution and delivery of regionally specific content with explicit blocking. FIG. 4 includes various network paths (e.g., P001, P002, etc.) When a client 101 in one region wants content served by a server 502 or 503 from another region, no matter what they do, they will only be served content from the server 501 in their region. They cannot access other content even if they try to force it to connect to the content server in the region from where they desire to receive content. They keep being served content from their region without choice. Local DNS lookup 103 resolves with IP pointing only to their region's CDN server 501. This may be due to a Global IP address which maps to only a CND in their region (if global IP) or another reason. The result is that the client could be geo-blocked at path P007 or path P008.


Normal connection via path P005 based on current geographic location is not subject to blocking and traffic flows so that Host (client) 101 receives content for that geographic location via server 501.


For target regions 502 and 503 that are different from the current geographic location, traffic is stopped at path P007 and/or path P008 and Host (client) is denied content from the remote geographic destination(s). They may be forced to server in their current location 501 or receive nothing or an error message or just undesired content depending on the configuration and policy of the CDN control system 202.



FIG. 5 shows a block diagram depicting how a proxy server works. Content request or push 001 flow from host client (C) 101 to host server (S) 301 and may comprise packetized files or streams or blocks of data. Content delivery 001 flow from target host 301 to client host 101 and may comprise packetized files or streams or blocks of data.


Client 101, a client device in Client-Server(CS) relationship makes request to access content from a remote host, a server via a universal resource locator (URL) or numeric IP address or other.


This request goes through a GW device running proxy client software 510 running on the host client 101. This proxy client connects to a Proxy Server via tunnel, encrypted or unencrypted via path P530 from GW510 to point of presence (POP) 540 and then over the Internet as a part of a WAN 550 to path P532 to the Proxy Server in remote region. The traffic egresses from the proxy server 560 via path P533 into the open internet 120 and connect to host server 103 in target region via P534 through POP 542 and via P535.


The host server views the traffic as coming from the IP address and geographic of the proxy server. If this IP is in the same region as defined by the server in the target region, the desired content will be served. To aid in this localization, proxy servers will usually connect to DNS servers 570 in the same region as the proxy server is located.


To address the issues and limitations described in FIG. 1 through FIG. 5, the FIGS. 6 through 9 illustrate the operations of geographic destination and some of its possible applications. There are more possibilities for which this mechanism and these methods can be applied.



FIG. 6 shows a block diagram illustrating geographic destination DNS resolution and content delivery via a Global Virtual Network (GVN) in accordance with an embodiment of the present disclosure. In some embodiments, Advanced-Smart-Routing within an endpoint device routes traffic via connections either directly to the Internet for local connections or via tunnels to a global virtual network (GVN) and its mesh of servers and other devices. Content retrieval from content servers in target regions may be realized via various paths. FIG. 6 demonstrates various possible paths to illustrate some of the functionality of the techniques disclosed herein.


In some embodiments, the host client 101 connects through P618 to a local area network 620 and from there to an end point device 630. Smart routing within the EPD routes traffic through one of multiple tunnels P611 through P615 to a point of presence (POP) 632. These paths may flow through the pop as follows:


P611 connects through the POP 632 to P611-1 and through the internet 641 via path P611-2 to a host server 651 in the same target region as the host client 101. This example may be for accessing a content or CDN server in very close proximity to the location of the host client which does not go through the GVN.


P612 is a secure tunnel which connects through POP 632 to an access point server (SRV_AP) 662 via path P612-1, WAN 672 and path P612-2. A Content Pulling Agent (CPA) at SRV_AP 662 may perform DNS lookups at DNS 682 through P612-3 and via internet 642 and path P612-4. When the CPA on SRV_AP 662 receives the numeric address result of the lookup, it requests content from host server 652 via P612-5.


P613 is a secure tunnel which behaves in the same manner as P612 (e.g., P613-1, P613-2, and WAN 673) and achieves similar results with the only difference between them is that the tunnel connects to the first SRV_AP 663 and then through another tunnel P613-3 to WAN 673-1 to P613-4 to a second SRV_AP 663-2 and from there to retrieve content from host target server 653 with DNS lookup from DNS 683 and through Internet 693 in much the same way as SRV_AP 662 operates.


P614 is a secure tunnel which behaves in the same manner as P612 (e.g., P614-1, P614-2, P614-3, P614-4, WAN 674, SRV_AP 664, Internet 644, Target 654). The difference is that DNS lookup is from a cache within the EPD 630. From there, advanced smart routing sends the traffic down to SRV_AP 664 to retrieve content from host server 654, without a DNS lookup in target region.


P615 is a secure tunnel P615-1 bridged through WAN 675 to P615-2 to SRV_AP 665 where within the SRV_AP 665 it bridges to another tunnel P615-3 through WAN 675-1 to P615-4 where the tunnel completes a secure bridge to EPD 631. Traffic egresses from the EPD 631 via P615-5 to a POP 635 in the target region. DNS lookups are made from the POP 635 to DNS server 685 via P615-6. DNS lookup may also be made via lookup in cache of EPD 631 or through internet 645 to another DNS server in that region or another location. Content from host server 655 is pulled through P615-8 to internet 645 to pop 635 to EPD 631 for sending back to EPD 630. In some embodiment, EPD 631 may send cached contents to EPD 630. In other embodiments, EPD 631 may pull contents from Host 655.



FIG. 7 shows a flowchart of Advanced Smart Routing (ASR) within a GVN in accordance with an embodiment of the present disclosure. FIG. 7 illustrates how Advanced Smart Routing (ASR) operates within a Global Virtual Network. FIG. 7 includes various LANs (e.g., 702, 704), Internet (e.g., 707, 729), SRV_APs (e.g., 710, 719), POPs (e.g., 728, 717), WANs (e.g., 118), client (e.g, 101, 716,), EPD (703, 721), DNS (e.g, 714, 706), and paths (P701-P731).


From the starting point of a host client device 101 in a local area network (LAN) 702 connected to an end point device (EPD) 703, the GVN may offer the EPD 703 a multitude of connection paths to multiple potential termination points. This is a flowchart of a high level view of the routing logic a packet could take as it transits a GVN utilizing ASR for optimal performance. From the perspective of the host client 101, their traffic will flow through an internet protocol (IP) network with as few number of hops and best possible latency at the third layer of the GVN. The first layer of the GVN is the base internet with automatic configuration of a construct of virtual interfaces, tunnels, routing and other networking policies. The second layer of the GVN is where the algorithms, software and logic to govern operation between layer three and layer one.


The first main routing decision is at a logic gate 704 within the EPD 703 where traffic either egresses to the local Internet 707 where the EPD 703 is located via path P704 or if it is to go through a secure wrapped and obfuscated tunnel via P707 to the access point server (SRV_AP) 710 offering the best connectivity to the region where SRV_AP 710 is located. Prior to traffic egressing SRV_AP 710, it passes through a routing logic gate 711. Traffic to egress locally to the Internet 713 will go via path P711 to either a host client 715 or a host server 716 there. If traffic is not local but rather to be relayed to another region, it will go via path P716 through a tunnel P718 to the next SRV_AP 719.


At SRV_AP 719, three of many possible routing options are illustrated by the paths that traffic can take. There may be a logic gate 726 to determine if traffic should remain and egress to the local Internet 729 and then to target 731/732 and possibly via DNS lookup at 730 or if it should go through a tunnel via P726 to a SRV_AP 727 in another region. Another possibility is illustrated via path P719 which demonstrates a tunnel from SRV_AP 719 to another EPD 721 in a distant region. This is an EPD 703 to EPD 721 connected via multiple bridged tunnels.


A further possibility is for traffic to reach client devices 725/723 in the LAN 722 where EPD 721 is located through the EPD's connection P721.



FIG. 8 shows a block diagram illustrating the geographic destination mechanism within a GVN in accordance with an embodiment of the present disclosure. The Geographic Destination Mechanism describes a system utilizing the advantages offered by a GVN overlaid on top of the internet. It is a system of secure tunnels, smart routed via access point servers to an egress point in another region to fetch remote content as if the requesting client was geo-located in that region. FIG. 8 includes various paths (e.g., P802-P818, P821-P826, and P830-P834), cache (e.g., 821-823), SRV_AP (e.g, 831 and 832), WANs (e.g., 850 and 851), Internet (e.g., 810), DNS (e.g., 804, 860), POP (e.g., 870), client 101 and host target 840.


The GVN connects devices from within LAN 802 to distant host servers 803 or clients on either the internet 810 or within another LAN. One advantage of the GVN is that it may allow a distant device to pull data files and streams from servers in remote regions as if the client was located in that region. This advantage overcomes limitation of inefficient routing, geo-blocking, too many hops, or other problems on the open internet. Advanced Smart Routing (ASR) ensures that the most optimal path through the GVN is taken and chained caches 821/822/823 working in lockstep or coordination with Content Delivery Agents (CDA) 803 requesting data from Content Pulling Agents (CPA) 830 pull data into access point servers (SRV_AP) 832 and make this data available for delivery as soon as possible.


In this embodiment, when a host client 101 wants to fetch content from host server 840 in the target region, it may do a domain name systems (DNS) lookup from DNS 804 or query its geographic destination DNS cache within the CDA to convert the uniform resource locator (URL) into a numeric address. From this numeric IP address, ASR routes traffic to the SRV_AP 832 closest to the target content.


The EPD 808 makes a tunnel P802 to WAN 850 to P803 to first SRV_AP 831 which connects to the destination SRV_AP 832 via a second tunnel P804 to WAN 851 to P805. The CPA 830 will connect to the host server 840 to fetch the content. Where this content is a web page, the CPA 830 will download the content and parse it to make a list of links from which to pull content as files and streams (from multitude of sources). Many websites today serve images, files, content, video streams and other content from many different servers. The URL links for this content need to be indexed and the CPA will do DNS lookups from DNS server 860 for all URLs in that region.


The CPA 830 will fetch and cache content into a cache 821 attached to the SRV_AP 832. The content in the cache can be either as individual files or a glob of files or a combination of both.


The content may be synchronized on the fly from cache 821 to the cache 822 on SRV_AP 831 in middle region between region of host server 840 and region of EPD 803 and host client 103. From the cache 822, the content may be synchronized on the fly to cache 823 at location of EPD 803. Once the content is in the EPD 803, it can either be accessible by host client 101 connecting to the EPD 803 via LAN 802 or direct connect. In other embodiment, the synchronization of the content among the caches may be scheduled.


In some embodiments, the geographic destination mechanism disclosed herein retrieves content from a distant region as if the requesting client was in that region with DNS lookups for that content and all of the associated streams done in that region.


In some embodiments, the retrieving of content files and streams from a powerful SRV_AP in a multi-honed data center in close proximity to the host servers is able to rapidly retrieve data into the SRV_AP.


In some embodiments, the Content Pulling Agent 830 fetches content items, caches them, and combines them into an amalgamation or glob or clump of files. This can be compressed and efficiently transmitted back to EPD 803.


In some embodiments, chained caches relay data on the fly. In some embodiments, SRV_APs such as 831 and 832 are connected via large pipes via international backhaul. In some embodiments, multiple SRV_APs are connected. By breaking a long round trip path into a series of paths connected to each other, data transmission throughput can be boosted.


In some embodiments, the Global Virtual Network to route traffic via the most efficient route and tunnels as possible. In some implementations, efficient routing may be based on real-time statistics. In other implementations, efficient routing may be based on historical statistics.



FIG. 9 shows a block diagram illustrating software architecture of end point device and access point server connected within a GVN in accordance with an embodiment of the present disclosure. As shown in FIG. 9, the software and hardware can be distributed within the network devices and across different circuit boards, processors, network interface cards, and memory.


An end-point device (EPD) 902 and an access point server (SRV_AP) 904 may be connected to each other via secure tunnels described by communication path P903-A to a point of presence (POP) 909-A, by communication path P903-B through a WAN 910 to communication path P903-C to POP 909-B to communication path P903-D.


The software architecture of EPD 902 and SRV_AP 904 may be similar with the differentiation by role of each device. EPD 902 may have a Content Delivery Agent (CDA) D006 and the SRV_AP 904 may have a Content Pulling Agent (CPA) D106.


The lowest level of each device, the Memory D001/D101 and Processors D002/D102 and the network interfaces D003/D103 may be on the hardware level. The operating system (O/S) D004/D104 may be a LINUX system or equivalent system such as Debian or other. The operating system D004/D104 may include packages and configuration for routing, hosting, communications and other system level operations.


A system software layer D005/D105 of the Global Virtual Network's (GVN's) operational systems may be present on top of the operating system. The system software layer D005/D105 may include custom commands, system modules and other constituent parts operating here, as well as other components of the GVN. Each type of device of the GVN may have some or all of these portions of the system software layer depending on their role.


On the EPD 902, content delivery agent D006 may act as a middle man between the requesting client and the content pulling agent D106 on the remote SRV_AP 904. Communication between content delivery agent D006 and content pulling agent D106 may be processed by cache manager D007/D107, compression engines D008/D108, connectivity manager D009/D109 which may include routing D0010/D1010 and connections DO 11/D111 and other modules and related software. The flow of information between them may egress the EPD 902 via path P903-A, or the SRV_AP 904 via path P903-D.


On the SRV_AP 904, in addition to communicating to host servers 908, the content delivery agent D106 may perform DNS lookups in the target region from DNS 910 (via path P904).


In some embodiments, the cache manager D007/D107 may check that data is replicated between caches in either direction. The cache manager D007/D107 may also check the replicated data is an integral, exact cloned copy. The cache manager D007/D107 may also flush old content to ensure that its memory & storage does not become too bloated and that it also operates at maximum efficiency. The compression engine D008/D108 will either compress or decompress data depending on traffic flow.


In some embodiments, the connectivity manager D009/D109 manage a construct of virtual interfaces (VIF), tunnels, aggregations of tunnels, network bridges and other elements related to connectivity between devices of the GVN.


In some embodiments, the routing manager D010/D110 may ensure that packets flow through the appropriate VIF, tunnel or egress to the open internet.


In some embodiments, the connections manager D011/D111 may continually test, build, destroy, link and perform other operations on tunnels and various connections between devices of the GVN.


In some embodiments, EPD 902 communicates with client 101 through LAN 902, via paths P901 and P902. SRV_AP 904 may communicate with host server 904 through Internet 906 and POP 907 via paths P905, P906, and P907.



FIG. 10 shows a block diagram illustrating operation of the access point server in accordance with an embodiment of the present disclosure.


In some embodiments, the content pulling agent (CPA) D302 resides on the SRV_AP 1000. The CPA D302 may receive the target URL/URI from the content delivery agent 1012 located on EPD 1014. By way of example, this target address that the client wishes to reach is located in another region from the client and is where the client wishes to pull content from.


The CPA D302 may pass the request address to the remote fetcher bot (R.F.BOT) D301. R.F.BOT D301 may perform the DNS lookup and then to use that information to put content via data pull 1006. In some embodiments, the DNS information is cached in the cache manager D304 through database B304. In other embodiments, the DNS information may be fetched from a DNS server, such as 1010.


The R.F.BOT D301 may work in conjunction with CPA D302 to parse the fetched results via CP01 to seek any other addresses for auxiliary content which can and should be pulled as constituent parts of that content.


The content may comprise images 1001, text files 1002, files 1003 in various format such as CSS, JS, and other formats, files 1004 from 3rd party sites. The content may reside on content host server 1040. The content may reside on more than one content server. Requests may be stored in database D302 for access and future reference by CPA D302 and R.F.BOT D301.


In some embodiments, each content stream 1050/1051/1052/1053 may be pulled in parallel.


In some embodiments, content from data pull 1006 may be passed to CPA D302 and stored in database B302. In other embodiments, contents from data pull 1006 may be passed to cache manager D303 and stored in database B303. The cached content may be transferred either as a file clump 1005 or as separate files.


Depending on distance from origin to geographic destination region, the file type and QoS, the pulled files in the cache may be clumped into one single file for unified transfer through the chained cache or as individual files which may be sent in parallel, concurrent streams.


The various content files may also be clumped together into one large file—so instead of for example 30 data files individually controlled and transported over a large distance, it would be only one file, but that file as multiple streams. And then it is unclumped at the EPD side and served again as 30 files


The present disclosure is not to be limited in scope by the specific embodiments described herein. Indeed, other various embodiments of and modifications to the present disclosure, in addition to those described herein, will be apparent to those of ordinary skill in the art from the foregoing description and accompanying drawings. Thus, such other embodiments and modifications are intended to fall within the scope of the present disclosure. Further, although the present disclosure has been described herein in the context of at least one particular implementation in at least one particular environment for at least one particular purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto and that the present disclosure may be beneficially implemented in any number of environments for any number of purposes. Accordingly, the claims set forth below should be construed in view of the full breadth and spirit of the present disclosure as described herein.

Claims
  • 1. A method, comprising: receiving, by one or more processors, a request from a client device for a content to be delivered via tunneling, wherein the content is associated with a first geographic region and the client device is associated with a second geographic region;retrieving, by the one or more processors, a first portion of the content from at least one of one or more content servers, wherein the one or more content servers are associated with the first geographic region;parsing, by the one or more processors, the first portion of the content to identify an address for a second portion of the content;requesting, by the one or more processors, a domain name service (DNS) lookup based on the identified address;retrieving, by the one or more processors and without a specific request from the client device, the second portion of the content from at least one of the one or more content servers; anddirecting, by the one or more processors, the first and second portions of the content via a tunneling path towards the client device.
  • 2. The method of claim 1, wherein receiving the request for the content further comprises receiving the request for the content via one or more intermediate tunnels connected through one or more intermediate devices as part of the tunneling path.
  • 3. The method of claim 2, wherein at least one of the one or more intermediate devices is associated with a third geographic region.
  • 4. The method of claim 2, wherein the one or more intermediate devices are each associated with a respective cache, and wherein directing the first and second portions of the content via the tunneling path causes the first and second portions of the content to be synchronized across one or more of the respective caches.
  • 5. The method of claim 1, wherein the DNS lookup is performed by a DNS server associated with the first geographic region.
  • 6. The method of claim 1, wherein different parts of the second portion of the content are retrieved concurrently from a plurality of servers of the one or more content servers.
  • 7. The method of claim 1, further comprising combining, by the one or more processors, the first portion of the content and the second portion of the content into one or more files prior to directing the first and second portions of the content towards the client device.
  • 8. A system comprising: a non-transitory memory; andone or more processors configured to read instructions from the non-transitory memory that, when executed, cause the one or more processors to carry out operations comprising:receiving a request from a client device for a content to be delivered via tunneling, wherein the content is associated with a first geographic region and the client device is associated with a second geographic region;retrieving a first portion of the content from at least one of one or more content servers, wherein the one or more content servers are associated with the first geographic region;parsing the first portion of the content to identify an address for a second portion of the content;requesting a domain name service (DNS) lookup based on the identified address;retrieving, without a specific request from the client device, the second portion of the content from at least one of the one or more content servers; anddirecting the first and second portions of the content, via a tunneling path, towards the client device.
  • 9. The system of claim 8, wherein receiving the request for the content further comprises receiving the request for the content via one or more intermediate tunnels connected through one or more intermediate devices as part of the tunneling path.
  • 10. The system of claim 9, wherein at least one of the one or more intermediate devices is associated with a third geographic region.
  • 11. The system of claim 9, wherein the one or more intermediate devices are each associated with a respective cache, and wherein directing the first and second portions of the content via the tunneling path causes the first and second portions of the content to be synchronized across one or more of the respective caches.
  • 12. The system of claim 8, wherein the DNS lookup is performed by a DNS server associated with the first geographic region.
  • 13. The system of claim 8, wherein different parts of the second portion of the content are retrieved concurrently from a plurality of servers of the one or more content servers.
  • 14. The system of claim 8, wherein the operations further comprise combining the first portion of the content and the second portion of the content into one or more files prior to directing the first and second portions of the content towards the client device.
  • 15. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to carry out operations comprising: receiving a request from a client device for a content to be delivered via tunneling, wherein the content is associated with a first geographic region and the client device is associated with a second geographic region;retrieving a first portion of the content from at least one of one or more content servers, wherein the one or more content servers are associated with the first geographic region;parsing the first portion of the content to identify an address for a second portion of the content;requesting a domain name service (DNS) lookup based on the identified address;retrieving, without a specific request from the client device, the second portion of the content from at least one of the one or more content servers; anddirecting the first and second portions of the content via a tunneling path towards the client device.
  • 16. The non-transitory computer readable medium of claim 15, wherein receiving the request for the content further comprises receiving the request for the content via one or more intermediate tunnels connected through one or more intermediate devices as part of the tunneling path.
  • 17. The non-transitory computer readable medium of claim 16, wherein at least one of the one or more intermediate devices is associated with a third geographic region.
  • 18. The non-transitory computer readable medium of claim 16, wherein the one or more intermediate devices are each associated with a respective cache, and wherein directing the first and second portions of the content via the tunneling path causes the first and second portions of the content to be synchronized across one or more of the respective caches.
  • 19. The non-transitory computer readable medium of claim 15, wherein the DNS lookup is performed by a DNS server associated with the first geographic region.
  • 20. The non-transitory computer readable medium of claim 15, wherein the operations further comprise combining the first portion of the content and the second portion of the content into one or more files prior to directing the first and second portions of the content towards the client device.
Parent Case Info

This application is a continuation of U.S. patent application Ser. No. 17/097,935, entitled “System and Method for Content Retrieval from Remote Network Regions,” filed Nov. 13, 2020, which is a continuation of U.S. patent application Ser. No. 15/533,958, entitled “System and Method for Content Retrieval from Remote Network Regions,” filed Jun. 7, 2017, which is a U.S. National Stage application under 35 U.S.C. § 371 of International Patent Application No. PCT/US2015/064242, filed Dec. 7, 2015, which claims the benefit of and priority to U.S. Provisional Application No. 62/089,113 filed on Dec. 8, 2014; U.S. Provisional Application No. U.S. 62/100,406 filed on Jan. 6, 2015; U.S. Provisional Application No. 62/108,987 filed on Jan. 28, 2015; U.S. Provisional Application No. 62/144,293 filed on Apr. 7, 2015; U.S. Provisional Application No. 62/151,174 filed on Apr. 22, 2015; and U.S. Provisional Application No. 62/174,394 filed on Jun. 11, 2015, all of which are herein incorporated by reference in their entireties.

US Referenced Citations (349)
Number Name Date Kind
4890281 Balboni et al. Dec 1989 A
5828847 Gehr et al. Oct 1998 A
5893089 Kikinis Apr 1999 A
5940838 Schmuck et al. Aug 1999 A
6209039 Albright et al. Mar 2001 B1
6289201 Weber et al. Sep 2001 B1
6374302 Glasso et al. Apr 2002 B1
6463465 Nieuwejaar Oct 2002 B1
6477166 Sanzi et al. Nov 2002 B1
6593863 Pitio Jul 2003 B2
6611587 Brown et al. Aug 2003 B2
6671361 Goldstein Dec 2003 B2
6678241 Gai et al. Jan 2004 B1
6693876 Zey Jan 2004 B1
6690223 Wan Feb 2004 B1
6735207 Prasad et al. May 2004 B1
6785295 Graf et al. Aug 2004 B1
6879995 Chinta et al. Apr 2005 B1
6973048 Pitio Dec 2005 B2
6996117 Lee et al. Feb 2006 B2
7006505 Bleszynski et al. Feb 2006 B1
7039701 Wesley May 2006 B2
7069318 Burbeck et al. Jun 2006 B2
7145882 Limaye et al. Dec 2006 B2
7145922 Pitio Dec 2006 B2
7161899 Limaye et al. Jan 2007 B2
7161965 Pitio Jan 2007 B2
7173902 Daniell et al. Feb 2007 B2
7177929 Burbeck et al. Feb 2007 B2
7221687 Shugard May 2007 B2
7224706 Loeffler-Lejeune May 2007 B2
7254833 Cornelius et al. Aug 2007 B1
7269130 Pitio Sep 2007 B2
7310348 Trinh et al. Dec 2007 B2
7349403 Lee et al. Mar 2008 B2
7349411 Pitio Mar 2008 B2
7349435 Giacomini Mar 2008 B2
7389312 Ohran Jun 2008 B2
7433964 Raguram et al. Oct 2008 B2
7551623 Feroz et al. Jun 2009 B1
7577691 Novik et al. Aug 2009 B2
7584285 Hudson Sep 2009 B2
7587487 Gunturu Sep 2009 B1
7633909 Jones et al. Dec 2009 B1
7689722 Timms et al. Mar 2010 B1
7742405 Trinh et al. Jun 2010 B2
7742411 Trinh et al. Jun 2010 B2
7801030 Aggarwal et al. Sep 2010 B1
7822877 Chong et al. Oct 2010 B2
7870418 Sekaran et al. Jan 2011 B2
7886305 Ahmed et al. Feb 2011 B2
7930339 Tobita et al. Apr 2011 B2
7957311 Trinh et al. Jun 2011 B2
8010751 Yang et al. Aug 2011 B2
8064909 Spinelli et al. Nov 2011 B2
8069258 Howell Nov 2011 B1
8069435 Lai Nov 2011 B1
8073777 Barry et al. Dec 2011 B2
8107363 Saluja Jan 2012 B1
8239915 Satish et al. Aug 2012 B1
8259571 Raphel et al. Sep 2012 B1
8266672 Moore Sep 2012 B2
8401028 Mihaly et al. Mar 2013 B2
8422397 Ansari et al. Apr 2013 B2
8437641 Lee et al. May 2013 B2
8458786 Kailash et al. Jun 2013 B1
8544065 Archer et al. Sep 2013 B2
8611335 Wu et al. Dec 2013 B1
8611355 Sella et al. Dec 2013 B1
8625411 Srivivasan et al. Jan 2014 B2
8687791 Cordell et al. Apr 2014 B1
8699683 Jackson Apr 2014 B1
8769057 Breau et al. Jul 2014 B1
8798060 Vautrin et al. Aug 2014 B1
8838823 Guo Sep 2014 B2
8854965 Richards Sep 2014 B1
8861344 Trinh et al. Oct 2014 B2
8874680 Das Oct 2014 B1
8966075 Chickering et al. Feb 2015 B1
8976798 Border et al. Mar 2015 B2
9015310 Ochi Apr 2015 B2
9038151 Chua et al. May 2015 B1
9110820 Bent et al. Aug 2015 B1
9164702 Nesbit et al. Oct 2015 B1
9164795 Vincent Oct 2015 B1
9167501 Kempf et al. Oct 2015 B2
9172603 Padmanabhan et al. Oct 2015 B2
9213594 Strasser et al. Dec 2015 B2
9241004 April Jan 2016 B1
9253028 DeCusatis et al. Feb 2016 B2
9277452 Aithal et al. Mar 2016 B1
9294304 Sindhu Mar 2016 B2
9294497 Ben-Or et al. Mar 2016 B1
9298719 Noronha et al. Mar 2016 B2
9350644 Desai et al. May 2016 B2
9350710 Herle et al. May 2016 B2
9351193 Raleigh et al. May 2016 B2
9369433 Paul et al. Jun 2016 B1
9432258 Van der Merwe et al. Aug 2016 B2
9432336 Ostrowski Aug 2016 B2
9450817 Bahadur et al. Sep 2016 B1
9455924 Cicic et al. Sep 2016 B2
9461996 Hayton et al. Oct 2016 B2
9525663 Yuan et al. Dec 2016 B2
9525696 Kapoor et al. Dec 2016 B2
9544137 Brandwine Jan 2017 B1
9554061 Proctor et al. Jan 2017 B1
9565117 Dahod et al. Feb 2017 B2
9569587 Ansari et al. Feb 2017 B2
9590820 Shukla Mar 2017 B1
9590902 Lin et al. Mar 2017 B2
9609003 Chmielewski et al. Mar 2017 B1
9609482 Want et al. Mar 2017 B1
9641612 Yu May 2017 B2
9661050 Killick May 2017 B2
9699001 Addanki et al. Jul 2017 B2
9699135 Dinha Jul 2017 B2
9712484 Richardson Jul 2017 B1
9729539 Agrawal et al. Aug 2017 B1
9858559 Raleigh et al. Jan 2018 B2
9888042 Annamalaisami et al. Feb 2018 B2
9898317 Nakil et al. Feb 2018 B2
9948649 Zhao et al. Apr 2018 B1
10044678 Van der Merwe et al. Aug 2018 B2
10061664 Verkaik et al. Aug 2018 B2
10070369 Lynn, Jr. et al. Sep 2018 B2
10078754 Brandwine et al. Sep 2018 B1
10079839 Bryan et al. Sep 2018 B1
10084838 Gordon Sep 2018 B2
10091304 Hoffmann Oct 2018 B2
10142390 Seedorf Nov 2018 B2
10237253 Chen Mar 2019 B2
10275267 De Kadt et al. Apr 2019 B1
10331472 Wang Jun 2019 B2
10423481 Iturralde Sep 2019 B2
10574482 Ore et al. Feb 2020 B2
10659512 Nielsen May 2020 B1
10673712 Gosar et al. Jun 2020 B1
10708667 Waggoner Jul 2020 B1
10756929 Knutsen et al. Aug 2020 B2
10840360 Rubenstein et al. Nov 2020 B2
10904201 Ermagan et al. Jan 2021 B1
10922286 Rubenstein Feb 2021 B2
11032187 Hassan Jun 2021 B2
11038942 Nielsen Jun 2021 B2
11092447 Aiello et al. Aug 2021 B2
11108595 Rubenstein Dec 2021 B2
11403849 Weerasinghe Aug 2022 B2
11418366 Rubenstein Aug 2022 B2
20020007350 Yen Jan 2002 A1
20020029267 Sankuratripati et al. Mar 2002 A1
20020046253 Uchida et al. Apr 2002 A1
20020049901 Carvey Apr 2002 A1
20020087447 McDonald et al. Jul 2002 A1
20020186654 Tornar Dec 2002 A1
20030046529 Loison et al. Mar 2003 A1
20030110214 Sato Jun 2003 A1
20030072433 Brown et al. Aug 2003 A1
20030147403 Border et al. Aug 2003 A1
20030195973 Savarda Oct 2003 A1
20030233551 Kouznetsov et al. Dec 2003 A1
20040117839 Watson Jun 2004 A1
20040205339 Medin Oct 2004 A1
20040268151 Matsuda Dec 2004 A1
20050180319 Hutnik et al. Aug 2005 A1
20050203892 Wesley et al. Sep 2005 A1
20050208926 Hamada Sep 2005 A1
20050235352 Staats et al. Oct 2005 A1
20060020793 Rogers et al. Jan 2006 A1
20060031407 Dispensa et al. Feb 2006 A1
20060031483 Lund et al. Feb 2006 A1
20060047944 Kilian-Kehr Mar 2006 A1
20060075057 Gildea et al. Apr 2006 A1
20060179150 Farley et al. Aug 2006 A1
20060195896 Fulp et al. Aug 2006 A1
20060225072 Lari et al. Oct 2006 A1
20060288397 Uchida Dec 2006 A1
20070083482 Rathi et al. Apr 2007 A1
20070112812 Harvey et al. May 2007 A1
20070165672 Keels et al. Jul 2007 A1
20070168486 McCoy et al. Jul 2007 A1
20070168517 Weller et al. Jul 2007 A1
20070226043 Pietsch et al. Sep 2007 A1
20080010676 Dosa Racz et al. Jan 2008 A1
20080043742 Pong et al. Feb 2008 A1
20080091598 Fauleau Apr 2008 A1
20080117927 Donhauser et al. May 2008 A1
20080130891 Sun et al. Jun 2008 A1
20080168377 Stallings et al. Jul 2008 A1
20080191598 Yang et al. Aug 2008 A1
20080240121 Xiong et al. Oct 2008 A1
20080247386 Wildfeuer Oct 2008 A1
20080256166 Branson et al. Oct 2008 A1
20080260151 Fluhrer et al. Oct 2008 A1
20080301794 Lee Dec 2008 A1
20090003223 McCallum et al. Jan 2009 A1
20090092043 Lapuh et al. Apr 2009 A1
20090100165 Wesley, Sr. et al. Apr 2009 A1
20090106569 Roh et al. Apr 2009 A1
20090122990 Gundavelli et al. May 2009 A1
20090129386 Rune May 2009 A1
20090132621 Jensen et al. May 2009 A1
20090141734 Brown et al. Jun 2009 A1
20090144416 Chatley et al. Jun 2009 A1
20090144443 Vasseur et al. Jun 2009 A1
20090193428 Dalberg et al. Jul 2009 A1
20090213754 Melamed Aug 2009 A1
20090217109 Sekaran et al. Aug 2009 A1
20090259798 Wang et al. Oct 2009 A1
20100017603 Jones Jan 2010 A1
20100131616 Walter et al. May 2010 A1
20100250700 O'Brien et al. Sep 2010 A1
20100316052 Petersen Dec 2010 A1
20100325309 Cicic et al. Dec 2010 A1
20110007652 Bai Jan 2011 A1
20110170613 Tanaka Jul 2011 A1
20110185006 Raghav et al. Jul 2011 A1
20110231917 Chaturvedi et al. Sep 2011 A1
20110247063 Aabye et al. Oct 2011 A1
20110268435 Mizutani et al. Nov 2011 A1
20110314473 Yang et al. Dec 2011 A1
20120005264 McWhirter et al. Jan 2012 A1
20120005307 Das et al. Jan 2012 A1
20120082057 Welin et al. Apr 2012 A1
20120105637 Yousefi et al. May 2012 A1
20120158882 Oehme et al. Jun 2012 A1
20120179904 Dunn et al. Jul 2012 A1
20120185559 Wesley, Sr. et al. Jul 2012 A1
20120188867 Fiorone et al. Jul 2012 A1
20120196646 Crinon et al. Aug 2012 A1
20120210417 Shieh Aug 2012 A1
20120210434 Curtis et al. Aug 2012 A1
20120270580 Anisimov et al. Oct 2012 A1
20120320916 Sebastian Dec 2012 A1
20130032990 Hattori Feb 2013 A1
20130070751 Atwal et al. Mar 2013 A1
20130110787 Garimella et al. May 2013 A1
20130173900 Liu Jul 2013 A1
20130246623 Seth Sep 2013 A1
20130247167 Paul et al. Sep 2013 A1
20130259465 Blair Oct 2013 A1
20130262766 Lee Oct 2013 A1
20130283118 Rayner Oct 2013 A1
20130286835 Plamondon et al. Oct 2013 A1
20130287037 Bush et al. Oct 2013 A1
20130308471 Krzanowski et al. Nov 2013 A1
20130318233 Biswas et al. Nov 2013 A1
20130322255 Dillon Dec 2013 A1
20130343180 Kini et al. Dec 2013 A1
20140020942 Cho et al. Jan 2014 A1
20140026179 Deverajan et al. Jan 2014 A1
20140071835 Sun et al. Mar 2014 A1
20140086253 Yong Mar 2014 A1
20140101036 Phillips et al. Apr 2014 A1
20140108665 Arora et al. Apr 2014 A1
20140149549 Fu May 2014 A1
20140149552 Carney et al. May 2014 A1
20140169214 Nakajima Jun 2014 A1
20140181248 Deutsch et al. Jun 2014 A1
20140199962 Mohammed et al. Jul 2014 A1
20140210693 Bhamidipati et al. Jul 2014 A1
20140215059 Astiz Lezaun et al. Jul 2014 A1
20140226456 Khan et al. Aug 2014 A1
20140229945 Barkai et al. Aug 2014 A1
20140237464 Waterman et al. Aug 2014 A1
20140250066 Calkowski et al. Sep 2014 A1
20140269712 Kidambi Sep 2014 A1
20140269728 Jalan et al. Sep 2014 A1
20140278543 Kasdon Sep 2014 A1
20140280911 Wood et al. Sep 2014 A1
20140289826 Croome Sep 2014 A1
20140304728 Wendling Oct 2014 A1
20140310243 McGee et al. Oct 2014 A1
20140324931 Grube et al. Oct 2014 A1
20140331309 Spiers et al. Nov 2014 A1
20140337459 Kuang et al. Nov 2014 A1
20140341023 Kim et al. Nov 2014 A1
20140351939 Moore et al. Nov 2014 A1
20140359704 Chen Dec 2014 A1
20140362712 Agrawal et al. Dec 2014 A1
20140366119 Floyd et al. Dec 2014 A1
20140369230 Nallur Dec 2014 A1
20150006596 Fukui et al. Jan 2015 A1
20150056960 Egner et al. Feb 2015 A1
20150063117 DiBurro et al. Mar 2015 A1
20150063360 Thakkar et al. Mar 2015 A1
20150086018 Harjula et al. Mar 2015 A1
20150089582 Dilley et al. Mar 2015 A1
20150095384 Antony et al. Apr 2015 A1
20150121532 Barel Apr 2015 A1
20150128246 Feghali et al. May 2015 A1
20150207812 Back et al. Jul 2015 A1
20150222633 Smith et al. Aug 2015 A1
20150222637 Hung et al. Aug 2015 A1
20150248434 Avati et al. Sep 2015 A1
20150271104 Chikkamath et al. Sep 2015 A1
20150281176 Banfield Oct 2015 A1
20150319664 Perras Nov 2015 A1
20150326588 Vissamsetty et al. Nov 2015 A1
20150334041 Hedbor Nov 2015 A1
20150341223 Shen et al. Nov 2015 A1
20150363230 Kasahara et al. Dec 2015 A1
20160006695 Prodoehl et al. Jan 2016 A1
20160028586 Blair Jan 2016 A1
20160028770 Raleigh et al. Jan 2016 A1
20160048938 Jones et al. Feb 2016 A1
20160055323 Stuntebeck et al. Feb 2016 A1
20160077745 Patel et al. Mar 2016 A1
20160105530 Shribman et al. Apr 2016 A1
20160117277 Raindel et al. Apr 2016 A1
20160119279 Maslak et al. Apr 2016 A1
20160127492 Malwankar et al. May 2016 A1
20160134528 Lin et al. May 2016 A1
20160134543 Zhang et al. May 2016 A1
20160165463 Zhang Jun 2016 A1
20160224460 Bryant et al. Aug 2016 A1
20160226755 Hammam et al. Aug 2016 A1
20160255556 Michel et al. Sep 2016 A1
20160261575 Maldaner Sep 2016 A1
20160285977 Ng et al. Sep 2016 A1
20160308762 Teng et al. Oct 2016 A1
20160330736 Polehn et al. Nov 2016 A1
20160337223 Mackay Nov 2016 A1
20160337484 Tola Nov 2016 A1
20160352628 Reddy et al. Dec 2016 A1
20160364158 Narayanan et al. Dec 2016 A1
20160366233 Le et al. Dec 2016 A1
20170063920 Thomas et al. Mar 2017 A1
20170078922 Raleigh et al. Mar 2017 A1
20170105142 Hecht et al. Apr 2017 A1
20170201556 Fox et al. Jul 2017 A1
20170230821 Chong et al. Aug 2017 A1
20170344703 Ansari et al. Nov 2017 A1
20180013583 Rubenstein et al. Jan 2018 A1
20180024873 Milliron et al. Jan 2018 A1
20180034889 Rubenstein Feb 2018 A1
20180091417 Ore et al. Mar 2018 A1
20180198756 Dawes Jul 2018 A1
20200145375 Rubenstein May 2020 A1
20200213153 Rubenstein Jul 2020 A1
20200382341 Ore et al. Dec 2020 A1
20210044453 Knutsen et al. Feb 2021 A1
20210067579 Rubenstein Mar 2021 A1
20210165769 Rubenstein Jun 2021 A1
20210227026 Rubenstein Jul 2021 A1
20210342725 Marsden et al. Nov 2021 A1
20210345188 Shaheen Nov 2021 A1
20220027329 Rubenstein Jan 2022 A1
20230155979 Rubenstein May 2023 A1
Foreign Referenced Citations (55)
Number Date Country
2014381693 Aug 2016 AU
1315088 Sep 2001 CN
1392708 Jan 2003 CN
1536824 Oct 2004 CN
1754161 Mar 2006 CN
1829177 Sep 2006 CN
101079896 Nov 2007 CN
101282448 Oct 2008 CN
101478533 Jul 2009 CN
101599888 Dec 2009 CN
101765172 Jun 2010 CN
101855865 Oct 2010 CN
101969414 Feb 2011 CN
102006646 Apr 2011 CN
102209355 Oct 2011 CN
102340538 Feb 2012 CN
102457539 May 2012 CN
102687480 Sep 2012 CN
102739434 Oct 2012 CN
103118089 May 2013 CN
103384992 Nov 2013 CN
103828297 May 2014 CN
102255794 Jul 2014 CN
104320472 Jan 2015 CN
1498809 Jan 2005 EP
1530761 May 2005 EP
1635253 Mar 2006 EP
2154834 Feb 2010 EP
2357763 Aug 2011 EP
6430499 Nov 2018 JP
WO-0233551 Apr 2002 WO
WO-2003025709 Mar 2003 WO
WO-03041360 May 2003 WO
WO-2003090018 Oct 2003 WO
WO-2003088047 Oct 2003 WO
WO-2003090017 Oct 2003 WO
WO-2005065035 Jul 2005 WO
WO-2006055838 May 2006 WO
WO-2008058088 May 2008 WO
WO-2008067323 Jun 2008 WO
WO-2010072030 Jul 2010 WO
WO-2012100087 Jul 2012 WO
WO-2013068530 May 2013 WO
WO-2013120069 Aug 2013 WO
WO-2013135753 Sep 2013 WO
WO-2015021343 Feb 2015 WO
WO-2016073361 May 2016 WO
WO-2016094291 Jun 2016 WO
WO-2016110785 Jul 2016 WO
WO-2016123293 Aug 2016 WO
WO-2016162748 Oct 2016 WO
WO-2016162749 Oct 2016 WO
WO-2016164612 Oct 2016 WO
WO-2016198961 Dec 2016 WO
WO-2018049649 Mar 2018 WO
Non-Patent Literature Citations (41)
Entry
“Cisco HyperFlexes its muscles,” posted on Mar. 1, 2016 by UCSguru.com https://ucsguru.com/2016/03/01/cisco-hyperflexes-its-muscles/ (10 pages).
“Open Radio equipment Interface (ORI); ORI Interface Specification; Part 2: Control and Management (Release 4),” Group Specification, European Telecommunications Standards Institute (ETSI), 650, Route des Lucioles; F-06921 Sophia-Antipolis; France, vol. ORI, No. V4.1.1, Oct. 1, 2014 (185 pages).
“Operations and Quality of Service Telegraph Services, Global Virtual Network Service,” ITU-T Standard, International Telecommunication Union, Geneva, Switzerland, No. F.16, Feb. 21, 1995, pp. 1-23 (23 pages).
Baumgartner, A., et al., “Mobile core network virtualization: A model for combined virtual core network function placement and topology optimization,” Proceedings of the 2015 1st IEEE Conference on Network Softwarization (NetSoft), London, UK, 2015, pp. 1-9, doi: 10.1109/NetSoft, 2015 (9 pages).
Chen, Y., et al., “Resilient Virtual Network Service Provision in Network Virtualization Environments,” 2010 IEEE 16th International Conference on Parallel and Distributed Systems, Shanghai, China, 2010, pp. 51-58, doi: 10.1109/ICPADS.2010.26., 2010 (8 pages).
Chowdhury, N.M.M.K. et al., “Virtual Network Embedding with Coordinated Node and Link Mapping”, IEEE Communications Society Subject Matter Experts for Publication in the IEEE INFOCOM 2009, pp. 783-791. (Year: 2009) (9 pages).
Definition of “backbone” in Microsoft Computer Dictionary, 2002, Fifth Edition, Microsoft Press (2 pages).
Definition of “server” in Microsoft Computer Dictionary, Mar. 2002, Fifth Edition, Microsoft Press (3 pages).
Examination Report, dated Aug. 2, 2018, for European Patent Application No. 16734942.2 (8 pages).
Examination Report, dated Jul. 20, 2017, for Chinese Application No. 201680004969.3 (1 page).
Examination Report, dated Mar. 3, 2020, for Chinese Application No. 201680020937.2 (9 pages).
Examination Report, dated Mar. 5, 2020, for Chinese Patent Application No. 201580066318.2 (10 pages).
Examination Report, dated Oct. 19, 2018, for European Patent Application No. 16727220.2 (11 pages).
Extended European Search Report dated Sep. 7, 2018 received in related European Patent Application No. 16744078.3 (7 pages).
Extended European Search Report, dated Aug. 2, 2018, for European Patent Application No. 15866542.2 (8 pages).
Extended European Search Report, dated Sep. 7, 2018, for European Patent Application No. 16777297.9 (4 pages).
Extended Search Report, dated Nov. 29, 2018, for European Patent Application No. 16806960.7 (10 pages).
Figueiredo, R. J., et al., “Social VPNs: Integrating Overlay and Social Networks for Seamless P2P Networking,” 2008 IEEE 17th Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises, Rome, Italy, 2008, pp. 93-98, doi: 10.1109/WETICE.2008.43, 2008 (6 pages).
First Office Action, dated Jun. 3, 2020, for Chinese Patent Application No. 201680066545.X (11 pages).
Gkantsidis, et al., “Network Coding for Large Scale Content Distribution”, INFOCOM 2005, Miami, Florida, Mar. 13-17, pp. 2235-2245, 2005 (11 pages).
Gong, L. et al., “Revenue-Driven Virtual Network Embedding Based on Global Resource Information”, Globecom 2013, Next Generation Networking Symposium, pp. 2294-2299. (Year: 2013) (6 pages).
Haeri, S. et al., “Global Resource Capacity Algorithm with Path Splitting for Virtual Network Embedding”, 2016 IEEE, pp. 666-669. (Year: 2016) (4 pages).
International Search Report and Written Opinion, issued by the U.S. Patent and Trademark Office as International Searching Authority, mailed Jul. 7, 2016, for International Application No. PCT/US2016/026489 (7 pages).
International Search Report and Written Opinion, mailed Apr. 8, 2016, for International Application No. PCT/US2016/015278 (9 pages).
International Search Report and Written Opinion, mailed Aug. 10, 2016, for International Application No. PCT/IB2016/000531 (20 pages).
International Search Report and Written Opinion, mailed Aug. 23, 2017, for International Application No. PCT/IB2017/000580 (6 pages).
International Search Report and Written Opinion, mailed Dec. 28, 2016, for International Application No. PCT/IB2016/001161 (10 pages).
International Search Report and Written Opinion, mailed Feb. 12, 2016, for International Application No. PCT/US2015/064242 (9 pages).
International Search Report and Written Opinion, mailed Jul. 28, 2017, for International Application No. PCT/IB2017/000557 (6 pages).
International Search Report and Written Opinion, mailed Jun. 7, 2016, for International Application No. PCT/IB2016/000110 (8 pages).
International Search Report and Written Opinion, mailed May 11, 2017, for International Application No. PCT/IB2016/001867 (13 pages).
International Search Report and Written Opinion, mailed Sep. 1, 2017, for International Application No. PCT/IB2017/000613 (7 pages).
International Search Report and Written Opinion, mailed Sep. 23, 2016, for International Application No. PCT/IB2016/000528 (11 pages).
Marinos, et al., “Network Stack Specialization for Performance”, SIGCOMM '14 Chicago Illinois, Aug. 17-22, 2014, pp. 175-186 (12 pages).
Office Action, dated Mar. 12, 2020, for Chinese Patent Application No. 201680032657.3 (5 pages).
Office Action, dated Mar. 13, 2020, received in related Chinese Patent Application No. 201680021239.4 (9 pages).
Office Action, dated May 7, 2020, for Chinese Patent Application No. 201680020878.9 (7 pages).
Robert Russell, “Introduction to RDMA Programming,” Apr. 17, 2014, XP055232895, last retrieved from the Internet Oct. 5, 2021: URL:web.archive.org/web/20140417205540/http://www.cs.unh.edu/˜rdr/rdma-intro-module.ppt (76 pages).
Supplementary European Search Report, dated Dec. 11, 2019, for European Patent Application No. 17788882.3 (8 pages).
Supplementary Partial European Search Report, dated May 20, 2019, for European Patent Application No. 16872483.9 (8 pages).
Szeto, W. et al., “A multi-commodity flow based approach to virtual network resource allocation,” GLOBECOM' 03. IEEE Global Telecommunications Conference (IEEE Cat. No. 03CH37489), San Francisco, CA, USA, 2003, pp. 3004-3008, vol. 6, doi: 10.1109/GLOCOM.2003.1258787, 2003 (5 pages).
Related Publications (1)
Number Date Country
20230075806 A1 Mar 2023 US
Provisional Applications (6)
Number Date Country
62174394 Jun 2015 US
62151174 Apr 2015 US
62144293 Apr 2015 US
62108987 Jan 2015 US
62100406 Jan 2015 US
62089113 Dec 2014 US
Continuations (2)
Number Date Country
Parent 17097935 Nov 2020 US
Child 17986713 US
Parent 15533958 US
Child 17097935 US