Content node network address selection for content delivery
Summary by NHIP
Content node address selection
A method selects a network address for a content node based on path performance relative to the lookup request's originating address range. The secondary DNS server assigns multiple addresses, evaluates paths defined by originating address ranges, and replies with an address meeting a performance threshold.
Claim Score by NHIP
Abstract
Systems, methods, apparatuses, and software that select network addresses of a content node of a content delivery network are provided herein. In one example, a method of operating a control node to perform network address selection that selects between different communication service providers according to network characteristics is presented. The control node receives a domain name lookup request from an end user device to reach a content node. The control node processes network characteristics and the domain name lookup request to select a network address that corresponds to one of the communication service providers. The end user device can use the selected network address to reach the content node over the selected communication service provider.

Term
8.1 yearsleft in the term
Expires 15 November 2034, including 65 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
17 claims: 4 independent, 13 dependent
- 1Broadest claimClaim Score 35, narrow(NHIP)A method to enhance access to content cached on a content node from a content server, the content node being in a content delivery network, the method comprising:receiving, at a secondary domain name system (DNS) server, a lookup request, associated with a request for the content, forwarded from a primary domain name system (DNS) server;within the secondary domain name system (DNS) server: assigning multiple network addresses to the content node;defining each of a plurality of paths to the content delivery network in terms of an originating address range in a plurality of originating address ranges and one of the multiple network addresses assigned to the content node;evaluating a relative performance of the plurality of paths to the content delivery network;identifying the originating address range in the plurality of originating address ranges associated with the lookup request;in response to the lookup request, selecting which of the multiple network addresses assigned to the content node to use based on the relative performance of a subset of the plurality of paths that are associated with the originating network address range of the lookup request;replying to the lookup request with the selected network address that meets a performance threshold level;within the content node: receiving the request for content at the selected network address;and responding to the request for content.
- 8A method of accelerating access to content cached on a content node from a content server, the content node being in a content delivery network, the method comprising:receiving, at a secondary domain name system (DNS) server, a lookup request forwarded from a primary domain name system (DNS) server;within the secondary domain name system (DNS) server: assigning multiple network addresses to the content node;defining each of a plurality of paths to the content delivery network in terms of: an originating address range associated with a local Internet service provider;and one of the multiple network addresses associated with a plurality of long haul Internet service providers;evaluating a relative performance of the plurality of paths to the content delivery system;identifying the originating address range in the plurality of originating address ranges associated with a lookup request for the content;in response to the lookup request, selecting which of the multiple network addresses assigned to the content node to use based on the relative performance of a subset of the plurality of paths that are associated with the originating network address range of the lookup request;and replying to the lookup request with the selected network address that meets a performance threshold level;within the content node: receiving the request for content at the selected network address;and responding to the request for content.
- 10A content delivery network, comprising:one or more content nodes, comprising one or more processors, having multiple network addresses assigned to the content node, the content node configured to: cache content from a content server;receive requests for content using one or more associated network addresses;transfer content to at least a requesting end user device having an originating address;receive a domain name query associated with a lookup request for the content, the lookup request forwarded from a primary domain name system (DNS) server, the domain name query defining each of a plurality of paths to the content node in terms of an originating address range in a plurality of originating address ranges and one of the multiple network addresses assigned to the content node, evaluate a relative performance of a plurality of paths to the content node, identify the originating address range associated with the lookup request for the content, in response to the lookup request, select a network address from the multiple network addresses assigned to the content node based on the relative performance of a subset of the plurality of paths that are associated with the originating network address range, and reply to the domain name query with the selected network address that meets a performance threshold level.
- 17A content delivery network, comprising:one or more content nodes, comprising one or more processors, having multiple network addresses assigned to the content node, the content node configured to: cache content from a content server;receive requests for content using one or more associated network addresses;transfer content to at least a requesting end user device having an originating address;receive a domain name query associated with a lookup request for the content, the lookup request forwarded from a primary domain name system (DNS) server, the domain name query defining each of a plurality of paths to the content node in terms of an originating address range in a plurality of originating address ranges and one of the multiple network addresses assigned to the content node, evaluate a relative performance of a plurality of paths to the content node, identify the originating address range associated with the lookup request for the content, in response to the lookup request, select a network address from the multiple network addresses assigned to the content node based on the relative performance of a subset of the plurality of paths that are associated with the originating network address range, and reply to the domain name query with the selected network address that meets a performance threshold level;a management system, comprising one or more processors, in communication with the content node and configured to: transfer configuration information to the content node;monitor operational performance of the content node;and provide operational performance to an administrator.
Independent claims4
60 paragraphs in 6 sections, as filed
RELATED APPLICATIONS
0001This application hereby claims the benefit of and priority to U.S. Provisional Patent Application 61/883,866, titled “CONTENT DELIVERY NODE NETWORK ADDRESS SELECTION FOR A CONTENT DELIVERY SYSTEM,” filed Sep. 27, 2013, and which is hereby incorporated by reference in its entirety.
TECHNICAL FIELD
0002Aspects of the disclosure are related to the field of packet communication networks, and in particular, delivery of content over packet communication networks.
TECHNICAL BACKGROUND
0003Network-provided content, such as Internet web pages or media content such as video, pictures, music, and the like, are typically served to end users via networked computer systems. End user requests for the network content are processed and the content is responsively provided over various network links. These networked computer systems can include origin hosting servers which originally host network content of content creators or originators, such as web servers for hosting a news website. However, these computer systems of individual content creators can become overloaded and slow due to frequent requests of content by end users.
0004Content delivery networks have been developed which add a layer of caching between the origin servers of the content providers and the end users. The content delivery systems typically have one or more content nodes distributed across a large geographic region to provide faster and lower latency access to the content for the end users. When end users request content, such as a web page, which is handled through a content node, the content node is configured to respond to the end user requests instead of the origin servers. In this manner, a content node can act as a cache for the origin servers. However, when a content node communicates over different communication service providers, such as Internet Service Providers (ISPs), the various ISPs and other packet networks over which end user content requests and content delivery are handled can add additional slowdowns and latency.
OVERVIEW
0005Systems, methods, and software that select network addresses of a content node are provided herein. In one example, a method of network address selection that selects between different communication service providers according to network characteristics is presented. In some examples, the selection of network addresses is performed during a domain name translation process. Also in this example, one or more non-transitory computer readable media having stored thereon program instructions executable by one or more data storage systems of a content node is presented. When executed by the one or more data storage systems, the program instructions can select network addresses according to network characteristics.
BRIEF DESCRIPTION OF THE DRAWINGS
0006Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the views. While multiple embodiments are described in connection with these drawings, the disclosure is not limited to the embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
0007<figref idref="DRAWINGS">FIG. 1</figref> is a system diagram illustrating a communication system.
0008<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram illustrating a method of operating a control node.
0009<figref idref="DRAWINGS">FIG. 3</figref> is a system diagram illustrating a communication system.
0010<figref idref="DRAWINGS">FIG. 4</figref> is a sequence diagram illustrating an example method of operating a communication system.
0011<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating an internal configuration of a control system.
0012<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating an internal configuration of a content node.
0013<figref idref="DRAWINGS">FIG. 7</figref> is a system diagram illustrating a communication system.
DETAILED DESCRIPTION
0014Network content, such as web page content, typically includes content such as text, hypertext markup language (HTML) pages, pictures, video, audio, code, scripts, or other content viewable by an end user in a browser or other application. This various network content can be cached by the nodes of a content delivery network. The network content includes example website content referenced in <figref idref="DRAWINGS">FIG. 1</figref>, such as “www.gamma.gov,” “www.alpha.com,” and “www.beta.net,” among others. When a content delivery network is employed, the content delivery network can act as a proxy to cache content delivery between origin servers and the end user devices.
0015The content delivery networks typically have one or more content nodes distributed across a large geographic region to provide faster and lower latency local access to the content for the end users. When end users request content, such as a web page, a locally proximate content node will respond to the content request instead of the associated origin server. Various techniques can be employed to ensure the content node responds to content requests instead of the origin servers, such as associating web content of the origin servers with network addresses of the content nodes instead of network addresses of the origin servers using domain name system (DNS) registration and lookup procedures.
0016As a first example employing a content delivery network, <figref idref="DRAWINGS">FIG. 1</figref> is presented. <figref idref="DRAWINGS">FIG. 1</figref> is a system diagram illustrating communication system <b>100</b>. Communication system <b>100</b> includes content delivery network <b>110</b>, packet switched networks <b>105</b>, control node <b>150</b> and at least one end user device <b>130</b>. Content delivery network (CDN) <b>110</b> includes one or more content nodes, such as content node (CN) <b>120</b>.
0017End user device <b>130</b> is representative of an end user device which can request and receive network content, and any number of end user devices <b>130</b> can make content requests to the one or more content nodes, such as content node <b>120</b>. Content node <b>120</b> communicates to end user device <b>130</b> over network links <b>170</b>-<b>173</b> that communicate with communication service providers <b>141</b> and <b>142</b>. In some examples, content node <b>120</b> comprises a cache node.
0018To further illustrate <figref idref="DRAWINGS">FIG. 1</figref>, a brief description of the operation of communication system <b>100</b> is included. In operation, control node <b>150</b> can perform domain name translation for end user devices, such as a domain name translation service (DNS). This domain name translation can translate a domain name or other alphanumeric network identifier for content into a network address. Control node <b>150</b> identifies network characteristics for end user device <b>130</b> and communication service providers <b>141</b> and <b>142</b>. When end user device <b>130</b> attempts to retrieve content, end user device <b>130</b> can issue lookup request <b>151</b> to control node <b>150</b> over at least network link <b>174</b>. Control node <b>150</b> processes the network characteristics and lookup request <b>151</b> to select a network address with which end user device <b>130</b> reaches cached content on content node <b>120</b> or some other content node.
0019Communication interface <b>123</b> of content node <b>120</b> communicates using at least network addresses <b>121</b> and <b>122</b>. In this example, content node <b>120</b> has multiple network addresses <b>121</b> and <b>122</b>, control node <b>150</b> can select either network address <b>121</b> or network address <b>122</b> when processing lookup request <b>151</b> to select a network address for retrieving content from content node <b>120</b>. Although network addresses <b>121</b> and <b>122</b> can identify the same content node <b>120</b>, a content request destined for network address <b>121</b> is transferred over a different communication service provider than a content request destined for network address <b>122</b>. Control node <b>150</b> identifies and processes at least the network characteristics of communications service providers <b>141</b> and <b>142</b> to select either of network addresses <b>121</b> and <b>122</b>. This selection can depend on which communication service provider currently has more desirable network characteristics, among other considerations. After selecting a network address responsive to lookup request <b>151</b>, control node <b>150</b> transfers <b>152</b> the selected network address for receipt by end user device <b>130</b>.
0020After end user device <b>130</b> receives the selected network address, device <b>130</b> issues a content request using the network address. The content request is issued for delivery to content node <b>120</b> over any of communication service providers <b>141</b>-<b>142</b> that is associated with the network address. For example, network address <b>121</b> is routed over communication service provider <b>141</b>, while network address <b>122</b> is routed over communication service provider <b>142</b>. Content node <b>120</b> then receives the content request over the selected communication service provider associated with the selected network address. Responsive to the content request, content node <b>120</b> delivers content requested by end user device <b>130</b>. For example, if the content requested is associated with www.alpha.com, then content node <b>120</b> responsively transfers the content for www.alpha.com for delivery to end user device <b>130</b>. The content can be delivered over any of communication service providers <b>141</b> or <b>142</b>.
0021<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram illustrating a method of operating control node <b>150</b>. Control node <b>150</b> receives (<b>201</b>) lookup request <b>151</b> from end user device <b>130</b> for content cached by content node <b>120</b>. Lookup request <b>151</b> includes at least the domain name of a content site. Based on lookup request <b>151</b>, control node <b>150</b> determines that the requested domain name is for a content site with content cached by content node <b>120</b>. Control node <b>150</b> can be configured with information about the network topology of communication system <b>100</b>, and control node <b>150</b> can be aware that network addresses <b>121</b>-<b>122</b> reach content node <b>120</b>. Control node <b>150</b> can also be aware that network addresses <b>121</b>-<b>122</b> routes through communication service providers <b>141</b>-<b>142</b>, respectively.
0022Control node <b>150</b> identifies (<b>202</b>) network characteristics for at least end user device <b>130</b> and communication service providers <b>141</b>-<b>142</b>. The network characteristics can include characteristics, such as performance data, collected previously or received by control node <b>150</b>. The network characteristics can include real-time metrics of current network conditions, and can include past performance metrics. For example, network conditions can be such that communication service provider <b>141</b> can deliver content to end user device <b>130</b> with a higher throughput or lower latency than communication service provider <b>142</b>. Such network conditions are reflected in the network characteristics that control node <b>150</b> identifies.
0023Control node <b>150</b> processes (<b>203</b>) the network characteristics and lookup request <b>151</b> to select a network address for end user device <b>130</b> to reach content node <b>120</b>. The selected network address corresponds to one of communication service providers <b>141</b>-<b>142</b>. Control node <b>150</b> transfers (<b>204</b>) the selected network address for delivery to user device <b>130</b>, as indicated by message <b>152</b>. End user device <b>130</b> can then issue content requests to that network address. Any of end user device <b>130</b>, communication service providers <b>141</b>-<b>142</b>, and content node <b>120</b> can report to control node <b>150</b> about network performance information. This network performance information can include performance information for the present content request or a response that occurs when end user device <b>130</b> uses the selected network address.
0024Referring back to the elements of <figref idref="DRAWINGS">FIG. 1</figref>, end user device <b>130</b> can be a user device, subscriber equipment, customer equipment, access terminal, smartphone, personal digital assistant (PDA), computer, tablet computing device, e-book, Internet appliance, media player, game console, or some other user communication apparatus, including combinations thereof. Content node <b>120</b>, communication service providers <b>141</b>-<b>142</b>, and control node <b>150</b> can each include communication interfaces, network interfaces, processing systems, computer systems, microprocessors, storage systems, storage media, or some other processing devices or software systems, and can be distributed among multiple devices. Examples of content node <b>120</b>, communication service providers <b>141</b>-<b>142</b>, and control node <b>150</b> can each include software such as an operating system, logs, databases, utilities, drivers, caching software, networking software, and other software stored on a computer-readable medium. Content delivery network <b>110</b>, in addition to including content node <b>120</b>, can include equipment and links to route communications between content node <b>120</b>, communication service providers <b>141</b>-<b>142</b>, and control node <b>150</b>, among other operations.
0025Communication links <b>170</b>-<b>174</b> each use metal, glass, optical, air, space, or some other material as the transport media. Communication links <b>170</b>-<b>174</b> can each use various communication protocols, such as Time Division Multiplex (TDM), asynchronous transfer mode (ATM), Internet Protocol (IP), Ethernet, synchronous optical networking (SONET), hybrid fiber-coax (HFC), circuit-switched, communication signaling, wireless communications, or some other communication format, including combinations, improvements, or variations thereof. Communication links <b>170</b>-<b>174</b> can each be a direct link or can include intermediate networks, systems, or devices, and can include a logical network link transported over multiple physical links. Although one main link for each of links <b>170</b>-<b>174</b> is shown in <figref idref="DRAWINGS">FIG. 1</figref>, it should be understood that links <b>170</b>-<b>174</b> are merely illustrative to show communication modes or access pathways. In other examples, further links can be shown, with portions of the further links shared and used for different communication sessions or different content types, among other configurations. Communication links <b>170</b>-<b>174</b> can each include many different signals sharing the same associated link, as represented by the associated lines in <figref idref="DRAWINGS">FIG. 1</figref>, comprising resource blocks, access channels, paging channels, notification channels, forward links, reverse links, user communications, communication sessions, overhead communications, carrier frequencies, other channels, timeslots, spreading codes, transportation ports, logical transportation links, network sockets, packets, or communication directions.
0026<figref idref="DRAWINGS">FIG. 3</figref> is a system diagram illustrating communication system <b>300</b>. Communication system <b>300</b> includes domain name servers (DNS) <b>304</b>-<b>305</b>, end user device <b>330</b>, packet switched networks <b>309</b> and content delivery network <b>310</b>. Elements of packet switched networks <b>309</b> are configured such that a content request from end user device <b>330</b> is routed through end user internet service provider (ISP) <b>306</b> and a selected one of long haul ISP <b>307</b> or <b>308</b>. A DNS architecture in this example includes DNS <b>304</b> and <b>305</b>. Primary DNS <b>305</b> receives lookup requests over network link <b>303</b> transferred by end user device <b>330</b>. If the lookup request is for a domain name or network location at which cached content resides, then primary DNS <b>305</b> delegates the lookup request by forwarding the request over network link <b>302</b> to secondary DNS <b>304</b>.
0027In this example, the network addresses are Internet protocol (IP) addresses. Content that is cached on cache node <b>311</b> and cache node <b>312</b> is reachable by associated IP addresses <b>313</b>-<b>316</b>. Secondary DNS <b>304</b> processes a lookup request received from primary DNS <b>305</b> along with at least network characteristics of end user device <b>330</b> and the three ISPs <b>306</b>-<b>308</b> when selecting an IP address. Since a content request passes through two ISPs, secondary DNS <b>304</b> can select an IP address according to the network characteristics of any pairing of ISPs, among other selections.
0028Content requests arrive at cache node <b>311</b> over either of link <b>374</b> or <b>372</b> depending on which long haul ISP <b>307</b> or <b>308</b> routes the selected IP address. When selecting IP addresses that are associated with cache node <b>311</b>, secondary DNS <b>304</b> can process network or communication status data such as latency, throughput, outages, price schedules, and network performance issues with causes such as buffer saturation, packet window not tuned, page swap, disk wait, packet loss, bottleneck, and congestion. While processing secondary DNS <b>304</b> can consider performance constraints of network links <b>370</b>-<b>376</b>, perhaps including latency measured with Internet control message protocol (ICMP) pings or with actual delivery time data for content-related traffic as measured by end user device <b>330</b>, other end user devices not pictured in <figref idref="DRAWINGS">FIG. 3</figref>, or cache node <b>311</b>, among other monitoring systems or devices. End user device <b>330</b> properties can also be processed by secondary DNS <b>304</b>. For example the IP address of an end user device can be associated with a range of IP addresses that are showing poor performance such as latency higher than a latency threshold. The latency discussed herein can include latency for a request for content issued to a selected content node and the delivery of that content to an end user device.
0029Secondary DNS <b>304</b> can receive and process communication status data in real time to control dynamic routing decisions by selecting network addresses that are provided responsive to DNS lookup requests. For example, long haul ISPs <b>307</b> and <b>308</b> might usually share equally the traffic of content requests going to cache node <b>311</b>. By repeatedly applying its IP-address selection criteria to the most recent communication status data, secondary DNS <b>304</b> can tune the routing of content to better fit current conditions.
0030In this example, end user device <b>330</b> attempts to retrieve content that is stored at cache node <b>311</b>. Secondary DNS <b>304</b> selects IP address <b>313</b> and tells end user device <b>330</b> to use IP address <b>313</b> to reach cache node <b>311</b>. Content requests directed to IP address <b>313</b> go through long haul ISP <b>307</b> in this example. If long haul ISP <b>307</b> begins to show signs of operational stress, including failures to meet quality thresholds, secondary DNS <b>304</b> can discontinue telling end user devices that cache node <b>311</b> is reachable at IP address <b>313</b> and instead instruct end user devices to reach content at an alternate IP address. <figref idref="DRAWINGS">FIG. 3</figref> indicates the degraded service with dashed lines for long haul ISP <b>307</b>, network links <b>373</b> and <b>374</b>, and IP address <b>313</b>. According to network characteristics, secondary DNS <b>304</b> can respond to subsequent lookup requests by selecting other cache node addresses than IP address <b>313</b>, such as IP addresses <b>314</b>-<b>316</b>. By selecting among IP addresses and associated routing dynamically, selection of IP address by secondary DNS <b>304</b> can shape traffic in real time according to performance, cost, and quality constraints, among other considerations.
0031<figref idref="DRAWINGS">FIG. 4</figref> is a sequence diagram illustrating a method of operating <figref idref="DRAWINGS">FIG. 3</figref>. It should be understood that he operations of <figref idref="DRAWINGS">FIG. 4</figref> can also be applied to similar elements of <figref idref="DRAWINGS">FIG. 1</figref>. Elements shown in <figref idref="DRAWINGS">FIG. 4</figref> operate to select and use network addresses in communication system <b>300</b>. Communication system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref> can also perform the behavior shown in <figref idref="DRAWINGS">FIG. 4</figref>, although variations are possible.
0032During operation, end user device <b>330</b> attempts to retrieve content, such as in a browser application or other end user application. The content can be presented to end user device <b>330</b> using a domain name, such as www.alpha.com, and user device <b>330</b> first must translate the domain name into a network address, such as an IP address, along with directory or path information. To translate the domain name, end user device <b>330</b> issues a domain name lookup request, which in this example is received by primary DNS <b>305</b>. Although link <b>303</b> is shown in <figref idref="DRAWINGS">FIG. 3</figref>, it should be understood that the domain name lookup request can be transported over any number of network links or packet networks, including the Internet.
0033End use device <b>330</b> attempts to request content by first delivering (<b>401</b>) a lookup request of a site domain to DNS <b>305</b>. DNS <b>305</b> determines that the domain name requested is associated with a secondary DNS system, and DNS <b>305</b> forwards the lookup request to secondary DNS <b>304</b>. According to the network characteristics of end user device <b>330</b> and the various communication service providers available, secondary DNS <b>304</b> determines which communication service provider is currently desirable and selects an IP address that will reach cache node <b>311</b> through that communication service provider. In a first example, long haul ISP <b>307</b> currently has network characteristics that indicate higher performance than the network characteristics of long haul ISP <b>308</b>. Because of these network characteristics, secondary DNS <b>304</b> selects an IP address that involves long haul ISP <b>307</b>. To reach content on cache node <b>311</b> through long haul ISP <b>307</b>, IP address <b>313</b> is selected. Secondary DNS <b>304</b> communicates (<b>402</b>) IP address <b>313</b> back to end user device <b>330</b>.
0034When end user device <b>330</b> requests (<b>403</b>) the cached content, end user device <b>330</b> does so using selected IP address <b>313</b> to ensure that the content request reaches cache node <b>311</b> through (<b>404</b>) long haul ISP <b>307</b>. Cache node <b>311</b> receives the content request at IP address <b>313</b>, processes the content request, and replies (<b>405</b>, <b>406</b>) with the desired cached content. Any network performance measurements made by end user device <b>330</b> for this retrieval of cached content are transferred (<b>407</b>) back to secondary DNS <b>304</b>. Cache node <b>311</b> can also report network performance measurements to secondary DNS <b>304</b>. End user device <b>330</b> can reuse the IP address selected by secondary DNS <b>304</b> by issuing multiple content requests to that IP address. End user device <b>330</b> can subsequently make another domain name lookup request to obtain another selected IP address based on more recent network characteristics.
0035At a later time, long haul ISP <b>307</b> experiences performance degradation, and end user device <b>330</b> prepares to retrieve more cached content. Secondary DNS <b>304</b> receives (<b>408</b>) another lookup request from end user device <b>330</b>. According to network performance characteristics, secondary DNS decides to route content retrieval through long haul ISP <b>308</b> instead of long haul ISP <b>309</b>. As such secondary DNS <b>304</b> selects IP address <b>314</b> of the same cache node <b>311</b>. Secondary DNS <b>304</b> transfers (<b>409</b>) the selected IP address <b>314</b> to end user device <b>330</b>. End user device <b>330</b> uses selected IP address <b>314</b> to request and receive cached content through long haul ISP <b>308</b> (<b>410</b>-<b>413</b>). Again, end user device <b>330</b> can report (<b>414</b>) performance measurements to secondary DNS <b>304</b>. Cache node <b>311</b> can also report network performance measurements to secondary DNS <b>304</b>.
0036The performance information or performance characteristics can be identified or determined in different ways. In some examples, secondary DNS <b>304</b> receives performance information transferred by various network devices, such as content nodes and end user devices that indicate performance of content requests and content delivery responsive to those content requests. In further examples, dedicated monitoring equipment is employed, such as management systems or monitoring systems, that monitor performance of various communication service providers associated with the various content nodes. As current performance conditions change, then different network addresses can be provided responsive to domain name lookup requests to route traffic over different communication service providers.
0037In yet further examples, performance associated with content requests of other end user devices is monitored and processed to make network address selections. For example, a second end user device can issue a content request to a network address, and performance of the request and subsequent content delivery via that network address and communication service provider can be monitored. The second user device can provide this performance information to DNS <b>304</b>, or the content node involved in delivery the requested content can deliver the performance information to DNS <b>304</b>. Instead of DNS <b>304</b> receiving the performance information, a different monitoring system can receive this performance information and provide it to DNS <b>304</b> periodically.
0038As discussed herein, the performance information can include latency information and transfer throughput information. The latency information can be related to a latency of a content request being fulfilled and having content transferred to an end user. The latency information can also relate to the delay between an end user device issuing a content request and that content request getting accepted by a content node. The throughput information can relate to data transfer throughput, bandwidth, or other data transfer characteristics related to a volume of content transferred to one or more end user devices. For example, a specific communication service provider can be monitored by a content node or other monitoring system to determine a volume of content that is presently being handled by the communication service provider. When the volume of content falls below a threshold level, then another communication service provider can be selected to handle content requests or content delivery.
0039Address ranges of various end user devices can be monitored as well. Network performance associated with a range of network addresses that correspond to end user devices can be monitored. When a particular address range, such as that associated with a particular ISP or long-haul provider, shows signs of poor performance, then that particular ISP or long-haul provider can be avoided. When a subsequent domain name lookup request is received from an end user device that falls within that address range is received, an alternate network address can be returned which routes any associated content requests over a different ISP or long-haul provider. For example, the second end user device mentioned above can be associated with a particular end user address range that is currently experiencing degraded performance. A subsequent domain name lookup request from another end user device can provide an alternate network address for a content node than that provided prior to the degraded performance.
0040<figref idref="DRAWINGS">FIG. 5</figref> illustrates the internal configuration of control system <b>500</b>. Control system <b>500</b> can be an implementation of control node <b>150</b> in <figref idref="DRAWINGS">FIG. 1</figref> and secondary DNS <b>304</b> in <figref idref="DRAWINGS">FIG. 3</figref>, although control node <b>150</b> and secondary DNS <b>304</b> can have different internal configurations. Control system <b>500</b> comprises communication interface <b>510</b>, and processing system <b>501</b>. Processing system <b>501</b> includes processing circuitry <b>520</b>, RAM <b>530</b>, and storage <b>540</b>. Processing system <b>501</b> is linked to communication interface <b>510</b>. Processing system <b>501</b> includes processing circuitry <b>520</b> which is connected to RAM <b>530</b> that stores operating software. Control system <b>500</b> can include other components such as an enclosure that are not shown for clarity.
0041Processing system <b>501</b> can be implemented within a single processing device but can also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system <b>501</b> include general purpose central processing units, microprocessors, application specific processors, and logic devices, as well as any other type of processing device. In some examples, processing system <b>501</b> includes physically distributed processing devices, such as cloud computing systems.
0042Communication interface <b>510</b> includes one or more network interfaces for communicating over communication networks, such as packet networks, the Internet, and the like. The network interfaces can include one or more local or wide area network communication interfaces which can communicate over Ethernet or Internet protocol (IP) links. Examples of communication interface <b>510</b> include network interface card equipment, transceivers, modems, and other communication circuitry. In some examples, communication interface <b>510</b> receives domain name lookup requests issued by end user devices and transfers network addresses associated with content delivery nodes for receipt by end user devices responsive to domain name lookup requests.
0043RAM <b>530</b> and storage <b>540</b> can each comprise any non-transitory storage media readable by processing system <b>501</b> and capable of storing software. RAM <b>530</b> can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Storage <b>540</b> can include non-volatile storage media, such as solid state storage media, flash memory, or solid state storage system. RAM <b>530</b> and storage <b>540</b> can each be implemented as a single storage device but can also be implemented across multiple storage devices or sub-systems. RAM <b>530</b> and storage <b>540</b> can each comprise additional elements, such as controllers, capable of communicating with processing system <b>501</b>.
0044Software stored on or in RAM <b>530</b> or storage <b>540</b> can comprise computer program instructions, firmware, or some other form of machine-readable processing instructions having processes that when executed by processing system <b>501</b> direct control system <b>500</b> to receive domain name lookup requests from end user devices for cached content, identify network characteristics of end user devices and communication service providers, process network characteristics and domain name lookup requests to select network addresses corresponding to communication service providers for end user devices to reach cache nodes, and transfer network addresses to end user devices, among other operations. The software of control system <b>500</b> can also include user software applications. The software can be implemented as a single application or as multiple applications. In general, the software can, when loaded into processing system <b>501</b> and executed, transform processing system <b>501</b> from a general-purpose device into a special-purpose device customized as described herein.
0045In one example, RAM <b>530</b> or storage <b>540</b> stores executable instructions for modules <b>531</b>-<b>532</b> as shown, although other implementations can use different modules. Network performance module <b>531</b> identifies network characteristics of at least end user devices and communication service providers. Content node (CN) selection module <b>532</b> processes the network characteristics and domain name lookup requests to select network addresses of cache nodes. CN selection module <b>532</b> can include various data structures, such as databases or lookup tables, that relate network addresses for content nodes to domain names or other information. For example, lookup table <b>533</b> is included in <figref idref="DRAWINGS">FIG. 5</figref>. CN selection module <b>532</b> can reference lookup table <b>533</b> to determine which network addresses relate to which domain names. As seen in lookup table <b>533</b>, two network addresses are indicated for www.alpha.com, namely IP addresses 192.168.1.1 and 10.10.20.10. CN selection module <b>532</b> can select among these IP addresses based on at least the network performance information and characteristics discussed herein.
0046<figref idref="DRAWINGS">FIG. 6</figref> illustrates the internal configuration of content node <b>600</b>. Content node <b>600</b> can be an implementation of content node <b>120</b> in <figref idref="DRAWINGS">FIG. 1</figref>, or cache nodes <b>311</b> and <b>312</b> in <figref idref="DRAWINGS">FIG. 3</figref>. Content node <b>120</b> and cache nodes <b>311</b> and <b>312</b> can have different internal configurations. Content node <b>600</b> includes communication interface <b>610</b>, and processing system <b>601</b>. Processing system <b>601</b> includes processing circuitry <b>620</b>, RAM <b>630</b>, and storage <b>640</b>. In operation, processing system <b>601</b> is operatively linked to communication interface <b>610</b>, RAM <b>630</b>, and storage <b>640</b> by processing circuitry <b>620</b>. Processing system <b>601</b> is capable of executing software stored in RAM <b>630</b> or storage <b>640</b>. When executing the software, processing system <b>601</b> drives content node <b>600</b> to operate as described herein. Content node <b>600</b> can also include other elements, such as user interfaces, computer systems, databases, distributed storage and processing elements, and the like.
0047Processing system <b>601</b> can be implemented within a single processing device but can also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system <b>601</b> include general purpose central processing units, microprocessors, application specific processors, and logic devices, as well as any other type of processing device. In some examples, processing system <b>601</b> includes physically distributed processing devices, such as cloud computing systems.
0048Communication interface <b>610</b> includes one or more network interfaces for communicating over communication networks, such as packet networks, the Internet, and the like. The network interfaces can include one or more local or wide area network communication interfaces which can communicate over Ethernet or Internet protocol (IP) links. Communication interface <b>610</b> can include network interfaces configured to communicate using one or more network addresses, which can be associated with different network links to different communication service providers. Examples of communication interface <b>610</b> include network interface card equipment, transceivers, modems, and other communication circuitry. Communication interface <b>610</b> is associated with at least network addresses <b>615</b>-<b>616</b> for sending and receiving data over a network. Network addresses <b>615</b>-<b>616</b> can be IP addresses.
0049RAM <b>630</b> and storage <b>640</b> together can comprise a data storage system, such as in data storage system <b>641</b> for storage of cached content <b>642</b>, although variations are possible. RAM <b>630</b> and storage <b>640</b> can each comprise any non-transitory storage media readable by processing system <b>601</b> and capable of storing software. RAM <b>630</b> can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Storage <b>640</b> can include non-volatile storage media, such as solid state storage media, flash memory, or solid state storage system. RAM <b>630</b> and storage <b>640</b> can each be implemented as a single storage device but can also be implemented across multiple storage devices or sub-systems. RAM <b>630</b> and storage <b>640</b> can each comprise additional elements, such as controllers, capable of communicating with processing system <b>601</b>.
0050Software stored on or in RAM <b>630</b> or storage <b>640</b> can comprise computer program instructions, firmware, or some other form of machine-readable processing instructions having processes that when executed by processing system <b>601</b> direct content node <b>600</b> to operate as described herein. For example, software drives content node <b>600</b> to receive requests for content, determine if the content is stored in content node <b>600</b>, retrieve content from origin servers, transfer content to end user devices, and manage data storage systems for handling and storing the content, among other operations. The software can also include user software applications. The software can be implemented as a single application or as multiple applications. In general, the software can, when loaded into processing system <b>601</b> and executed, transform processing system <b>601</b> from a general-purpose device into a special-purpose device customized as described herein.
0051As an example employing multiple content nodes in a content delivery network, <figref idref="DRAWINGS">FIG. 7</figref> is presented. <figref idref="DRAWINGS">FIG. 7</figref> can include one or more of content node <b>120</b> of <figref idref="DRAWINGS">FIG. 1</figref>, which can handle content requests from various end user devices, such as end user device <b>130</b>. <figref idref="DRAWINGS">FIG. 7</figref> is a system diagram illustrating communication system <b>700</b>. Communication system <b>700</b> includes content delivery network <b>710</b>, end user devices <b>730</b>-<b>732</b>, origin servers <b>740</b>-<b>741</b>, management system <b>760</b>, Internet Service Providers (ISP) <b>780</b>-<b>781</b>, and DNS node <b>790</b>. Content delivery network <b>710</b> includes one or more content nodes (CN) <b>711</b>-<b>713</b>. Each of CN <b>711</b>-<b>713</b> can include one or more data storage systems, such as that illustrated for CN <b>713</b> as data storage system <b>720</b>. Data storage system <b>720</b> can be an example of content data storage <b>641</b> of <figref idref="DRAWINGS">FIG. 6</figref>. End user devices <b>730</b>-<b>732</b> are representative of a plurality of end user devices, which can request and receive network content, and any number of end user devices <b>730</b>-<b>732</b> can be associated with each of content nodes <b>711</b>-<b>713</b>. CN <b>711</b>-<b>713</b> and ones of end users <b>730</b>-<b>732</b> communicate over associated network links <b>770</b>-<b>772</b>. Content delivery network <b>710</b> and origin servers <b>740</b>-<b>741</b> communicate over associated network links <b>773</b>-<b>774</b>. Content delivery network <b>710</b> and management system <b>760</b> communicate over link <b>775</b>. DNS node <b>790</b> and at least content delivery network <b>710</b> communicate over link <b>776</b>. Although not shown in <figref idref="DRAWINGS">FIG. 7</figref> for clarity, each of CN <b>711</b>-<b>713</b> can also communicate with each other over network links.
0052To further illustrate <figref idref="DRAWINGS">FIG. 7</figref>, a brief description of the operation of communication system <b>700</b> is included. In operation, end user devices <b>730</b>-<b>732</b> request network content, such as content <b>745</b>-<b>746</b> associated with origin servers <b>740</b>-<b>741</b>. Instead of these requests being handled by the individual origin servers <b>740</b>-<b>741</b>, individual content nodes <b>711</b>-<b>713</b> of content delivery network <b>710</b> receive the content requests over ones of links <b>770</b>-<b>772</b> and process the content requests for delivery of the content to the associated end user devices <b>730</b>-<b>732</b>. Requested network content that is already stored in ones of CN <b>711</b>-<b>713</b> can be provided quickly to the end user devices, while network content that is not already stored in ones of CN <b>711</b>-<b>713</b> can be responsively requested by an associated one of CN <b>711</b>-<b>713</b> from an appropriate origin server <b>740</b>-<b>741</b> for delivery by the CN and possible caching by the CN. In this manner, each of CN <b>711</b>-<b>713</b> can act as intermediary proxy nodes to provide local and fast access for end user devices <b>730</b>-<b>732</b> to network content of origin servers <b>740</b>-<b>741</b> without burdening origin servers <b>740</b>-<b>741</b>. <figref idref="DRAWINGS">FIG. 7</figref> shows cached content <b>721</b> included in data storage system <b>720</b> of CN <b>713</b> as comprised of content <b>745</b>-<b>746</b>, and thus content <b>745</b>-<b>746</b> is currently shown as cached by CN <b>713</b>. Other configurations are possible, including subsets of content <b>745</b>-<b>746</b> being cached in individual ones of CN <b>711</b>-<b>713</b>.
0053Although <figref idref="DRAWINGS">FIG. 7</figref> shows content <b>745</b>-<b>746</b> of origin servers <b>740</b>-<b>741</b> being cached by data storage system <b>720</b>, CN <b>711</b>-<b>713</b> can handle other content. For example, dynamic content generated by activities of end user devices <b>730</b>-<b>732</b> need not originally reside on origin servers <b>740</b>-<b>741</b>, and can be generated due to scripting or code included in web page content delivered by CN <b>711</b>-<b>713</b>. This dynamic content can also be cached by ones of CN <b>711</b>-<b>713</b>, and can be specific to a particular end user device during a communication session.
0054In the present example of system <b>700</b>, CNs <b>711</b>-<b>713</b> are configured to deliver content that is cached on behalf of one or more origin servers. Each of CNs <b>711</b>-<b>713</b> can have one or more network addresses associated therewith which can interface with an associated communication service provider, such as an Internet Service Provider. As a specific example, CN <b>711</b> has two network addresses (not shown for clarity in <figref idref="DRAWINGS">FIG. 7</figref>) associated therewith. A first network address is associated with ISP ‘A’ <b>780</b> and a second network address is associated with ISP ‘B’ <b>781</b>. The network addresses can be Internet Protocol (IP) addresses, or can include other network addresses, such as Ethernet addresses, ATM node identifiers, and the like. When an end user device, such as end user device <b>730</b>, desires to retrieve content associated with a domain name, such as during web browsing and clicking a hyperlink, a query is issued to a domain name lookup service. This domain name lookup service translates a domain name, and possibly other path information, into a network address that is resolvable by network routing systems to reach a destination. In this example, the domain name query is transferred to DNS node <b>790</b> which translates a domain name included in the domain name query into a network address. If the domain name is associated with content cached by CN <b>711</b>, for example, then a network address of CN <b>711</b> is identified by DNS node <b>790</b> and responsively transferred for delivery to end user device <b>730</b>. However, in this example, CN <b>711</b> has at least two network addresses associated therewith, and each network address is associated with a different ISP. DNS node <b>790</b>, or another control node such as that described herein, can identify and process network performance characteristics to select a desired network address for CN <b>711</b>. This selected network address can be associated with any of ISP <b>780</b>-<b>781</b> and when a content request is issued by end user device <b>730</b> using the selected network address, the content request will propagate/route over the associated ISP to reach CN <b>711</b>.
0055Referring back to the elements of <figref idref="DRAWINGS">FIG. 7</figref>, CN <b>711</b>-<b>713</b>, origin servers <b>740</b>-<b>741</b>, management system <b>760</b>, and DNS node <b>790</b> can each include communication interfaces, network interfaces, processing systems, computer systems, microprocessors, storage systems, storage media, or some other processing devices or software systems, and can be distributed among multiple devices. Examples of CN <b>711</b>-<b>713</b>, origin servers <b>740</b>-<b>741</b>, management system <b>760</b>, and DNS node <b>790</b> can each include software such as an operating system, logs, databases, utilities, drivers, caching software, networking software, and other software stored on a computer-readable medium. Content delivery network <b>710</b>, in addition to including CN <b>711</b>-<b>713</b>, can include equipment and links to route communications between CN <b>711</b>-<b>713</b> and any of end user devices <b>730</b>-<b>732</b>, origin servers <b>740</b>-<b>741</b>, management system <b>760</b>, ISPs <b>780</b>-<b>781</b>, and DNS node <b>790</b>, among other operations. Although one DNS node <b>790</b> is shown in <figref idref="DRAWINGS">FIG. 7</figref>, more than one DNS node can be employed, such as geographically distributed DNS nodes, or a hierarchical DNS node architecture with primary DNS nodes and secondary or private DNS nodes.
0056End user devices <b>730</b>-<b>732</b> can each be a user device, subscriber equipment, customer equipment, access terminal, smartphone, personal digital assistant (PDA), computer, tablet computing device, e-book, Internet appliance, media player, game console, or some other user communication apparatus, including combinations thereof.
0057Management system <b>760</b> handles configuration changes and status information for system operators and for the origin server operators or managers. For example, administrator <b>750</b> can use management system <b>760</b> to transfer configuration <b>751</b> to content delivery network <b>710</b>. Configuration <b>751</b> may alter the handling of network content requests by CN <b>711</b>-<b>713</b>, may purge content from CN <b>711</b>-<b>713</b>, or may provide other configuration information. Also, management system <b>760</b> can monitor status information for the operation of end user devices, ISPs <b>780</b>-<b>781</b>, and CN <b>711</b>-<b>713</b>, such as operational statistics and network performance information, and provide this status information as <b>753</b> to administrator <b>750</b>, or to a control node such as DNS node <b>790</b>. Although one management system is illustrated in the present example, it should be understood that any number of management systems may be employed.
0058ISPs <b>780</b>-<b>781</b> each comprise one or more packet networks, routers, switches, bridges, links, and other packet network handling equipment and systems. ISPs <b>780</b>-<b>781</b> can each be operated by different service providers, and can include local and long-haul communication systems.
0059Communication links <b>770</b>-<b>776</b> each use metal, glass, optical, air, space, or some other material as the transport media. Communication links <b>770</b>-<b>776</b> can each use various communication protocols, such as Time Division Multiplex (TDM), asynchronous transfer mode (ATM), Internet Protocol (IP), Ethernet, synchronous optical networking (SONET), hybrid fiber-coax (HFC), circuit-switched, communication signaling, wireless communications, or some other communication format, including combinations, improvements, or variations thereof. Communication links <b>770</b>-<b>776</b> can each be a direct link or can include intermediate networks, systems, or devices, and can include a logical network link transported over multiple physical links. Although one main link for each of links <b>770</b>-<b>776</b> is shown in <figref idref="DRAWINGS">FIG. 7</figref>, it should be understood that links <b>770</b>-<b>776</b> are merely illustrative to show communication modes or access pathways. In other examples, further links can be shown, with portions of the further links shared and used for different communication sessions or different content types, among other configurations. Communication links <b>770</b>-<b>776</b> can each include many different signals sharing the same associated link, as represented by the associated lines in <figref idref="DRAWINGS">FIG. 7</figref>, comprising resource blocks, access channels, paging channels, notification channels, forward links, reverse links, user communications, communication sessions, overhead communications, carrier frequencies, other channels, timeslots, spreading codes, transportation ports, logical transportation links, network sockets, packets, or communication directions.
0060The included descriptions and figures depict specific embodiments to teach those skilled in the art how to make and use the best mode. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these embodiments that fall within the scope of the invention. Those skilled in the art will also appreciate that the features described above can be combined in various ways to form multiple embodiments. As a result, the invention is not limited to the specific embodiments described above, but only by the claims and their equivalents.
Contents6
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10931778B2 | Cited by | United States of America | Applicant |
| US11695855B2 | Cited by | United States of America | Applicant |
| US11677818B2 | Cited by | United States of America | Applicant |
| US2018343232A1 | Cited by | United States of America | Search report |
| US11930439B2 | Cited by | United States of America | Applicant |
| US11218437B2 | Cited by | United States of America | Search report |
| US11470179B2 | Cited by | United States of America | Applicant |
| US12062068B2 | Cited by | United States of America | Applicant |
| US10470060B1 | Cited by | United States of America | Applicant |
| US11860982B2 | Cited by | United States of America | Applicant |
| US10887380B2 | Cited by | United States of America | Search report |
| US10404657B2 | Cited by | United States of America | Search report |
| US2024364781A1 | Cited by | United States of America | Search report |
| US12047441B2 | Cited by | United States of America | Applicant |
| US2002029275A1 | Cites | United States of America | Applicant |
| US2002087722A1 | Cites | United States of America | Search report |
| US2003005152A1 | Cites | United States of America | Applicant |
| US2003065763A1 | Cites | United States of America | Applicant |
| US2003099202A1 | Cites | United States of America | Applicant |
| US2003101278A1 | Cites | United States of America | Search report |
| US2004249971A1 | Cites | United States of America | Applicant |
| US2006271655A1 | Cites | United States of America | Search report |
| US2009248786A1 | Cites | United States of America | Applicant |
| US2010125673A1 | Cites | United States of America | Applicant |
| US2010125675A1 | Cites | United States of America | Applicant |
| US2010161760A1 | Cites | United States of America | Search report |
| US2011066607A1 | Cites | United States of America | Applicant |
| US2011131290A1 | Cites | United States of America | Applicant |
| US2011173339A1 | Cites | United States of America | Applicant |
| US2011225284A1 | Cites | United States of America | Applicant |
| US2011295942A1 | Cites | United States of America | Applicant |
| US2012117240A1 | Cites | United States of America | Applicant |
| WO2012131287A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2012254421A1 | Cites | United States of America | Applicant |
| US2012290693A1 | Cites | United States of America | Applicant |
| US2013013764A1 | Cites | United States of America | Applicant |
| US2013018978A1 | Cites | United States of America | Applicant |
| US2013060893A1 | Cites | United States of America | Applicant |
| US2014149601A1 | Cites | United States of America | Search report |
| US2014258450A1 | Cites | United States of America | Search report |
| US2014344331A1 | Cites | United States of America | Search report |
| US2015067113A1 | Cites | United States of America | Applicant |
| US6484143B1 | Cites | United States of America | Applicant |
| US6587438B1 | Cites | United States of America | Search report |
| US6931109B1 | Cites | United States of America | Applicant |
| US7039709B1 | Cites | United States of America | Search report |
| US7653689B1 | Cites | United States of America | Applicant |
| US7716367B1 | Cites | United States of America | Applicant |
| US8463933B2 | Cites | United States of America | Applicant |
| US8472324B1 | Cites | United States of America | Search report |
| US8489731B2 | Cites | United States of America | Applicant |
| US8688681B1 | Cites | United States of America | Search report |
| US20020029275A1 | Cites | United States of America | Applicant |
| US20020087722A1 | Cites | United States of America | Search report |
| US20030005152A1 | Cites | United States of America | Applicant |
| US20030065763A1 | Cites | United States of America | Applicant |
| US20030099202A1 | Cites | United States of America | Applicant |
| US20030101278A1 | Cites | United States of America | Search report |
| US20040249971A1 | Cites | United States of America | Applicant |
| US20060271655A1 | Cites | United States of America | Search report |
| US20090248786A1 | Cites | United States of America | Applicant |
| US20100125673A1 | Cites | United States of America | Applicant |
| US20100125675A1 | Cites | United States of America | Applicant |
| US20100161760A1 | Cites | United States of America | Search report |
| US20110066607A1 | Cites | United States of America | Applicant |
| US20110131290A1 | Cites | United States of America | Applicant |
| US20110173339A1 | Cites | United States of America | Applicant |
| US20110225284A1 | Cites | United States of America | Applicant |
| US20110295942A1 | Cites | United States of America | Applicant |
| US20120117240A1 | Cites | United States of America | Applicant |
| US20120254421A1 | Cites | United States of America | Applicant |
| US20120290693A1 | Cites | United States of America | Applicant |
| US20130013764A1 | Cites | United States of America | Applicant |
| US20130018978A1 | Cites | United States of America | Applicant |
| US20130060893A1 | Cites | United States of America | Applicant |
| US20140149601A1 | Cites | United States of America | Search report |
| US20140258450A1 | Cites | United States of America | Search report |
| US20140344331A1 | Cites | United States of America | Search report |
| US20150067113A1 | Cites | United States of America | Applicant |
11 members in 4 offices; this record represents the family
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 201361883866 | United States of America | P | |
| 201361883866 | United States of America | P | |
| 201414483358 | United States of America | A | |
| 61883866 | – | – | – |
| US201361883866P | – | – | – |
| US201414483358 | – | – | – |
Members11
| Document | Office | Kind | |
|---|---|---|---|
| GB201418124D0 | United Kingdom | D0 | |
| US2015095516A1 | United States of America | A1 | |
| WO2015047859A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP2878096A1 | European Patent Office (EPO) | A1 | |
| GB2530349A | United Kingdom | A | |
| EP2878096A4 | European Patent Office (EPO) | A4 | |
| US10097503B2This record | United States of America | B2 | |
| US2019075075A1 | United States of America | A1 | |
| US10715480B2 | United States of America | B2 | |
| US2020344199A1 | United States of America | A1 | |
| US11336614B2 | United States of America | B2 |
110 transactions on the USPTO file
Allowed after 2 non-final rejections, 2 final rejections, 2 RCEs and 1 appeal.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 1
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Post CardPST_CRD | PST_CRD | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Notice of Restarted Response PeriodMNRES | MNRES | |
| Letter Restarting Period for Response (i.e. Letter re References)NRES | NRES | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Mail Appeals conf. Proceed to BPAIMAPCP | MAPCP | |
| Pre-Appeals Conference Decision - Proceed to BPAIAPCP | APCP | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request for Pre-Appeal Conference FiledAP.C | AP.C | |
| Notice of Appeal FiledN/AP | N/AP | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Reference capture on IDSRCAP | RCAP | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 10097503
- Publication, DOCDB
- 10097503
- Publication, EPODOC
- US10097503
- Application
- 14483358
- Application, DOCDB
- 201414483358
- Application, EPODOC
- US201414483358
Titles
- English
- Content node network address selection for content delivery
Patent term adjustment
- A delay
- +153 daysthe office missed an examination deadline
- Applicant delay
- −88 days
- Net adjustment
- 65 days
Classification
- CPC, 9
- H04L61/1511
- H04L67/101
- H04L61/4511
- H04L43/0829
- H04L43/0852
- H04L67/2842
- H04L43/0888
- H04L43/10
- H04L67/568
- IPC, 3
- H04L29 12
- H04L29 08
- H04L12 26
- USPC, 1
- 370238000