US20190081923A1 - Method and system for increasing speed of domain name system resolution within a computing device - Google Patents

Method and system for increasing speed of domain name system resolution within a computing device Download PDF

Info

Publication number
US20190081923A1
US20190081923A1 US16/186,551 US201816186551A US2019081923A1 US 20190081923 A1 US20190081923 A1 US 20190081923A1 US 201816186551 A US201816186551 A US 201816186551A US 2019081923 A1 US2019081923 A1 US 2019081923A1
Authority
US
United States
Prior art keywords
dns
server
content item
domain name
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US16/186,551
Inventor
Ofer Vilenski
Derry Shribman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hola Newco Ltd
Web Spark Ltd
Original Assignee
Hola Newco Ltd
Web Spark Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hola Newco Ltd, Web Spark Ltd filed Critical Hola Newco Ltd
Priority to US16/186,551 priority Critical patent/US20190081923A1/en
Assigned to HOLA NEWCO LTD. reassignment HOLA NEWCO LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHRIBMAN, DERRY, VILENSKI, OFER
Assigned to WEB SPARK LTD. reassignment WEB SPARK LTD. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: HOLA NEWCO LTD.
Publication of US20190081923A1 publication Critical patent/US20190081923A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects
    • H04L61/2053
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • G06F17/30864
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • H04L61/1511
    • H04L61/1552
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names
    • H04L61/6009
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • the present invention is generally related to domain name system resolution, and more particularly is related to increasing the speed of domain name system resolution.
  • the Internet maintains two principal namespaces, the domain name hierarchy (e.g., ‘birds.images.wikipedia.org’), which is designed to be ‘human readable’, and the Internet Protocol (IP) address system (e.g., ‘207.142.131.242’) which is easier for computer programs to manipulate.
  • the Domain Name System maintains the domain namespace and provides translation services between these two principal namespaces.
  • the (DNS) contains Internet name servers and a communications protocol.
  • a DNS name server is a server that stores the DNS records required for the system and responds with answers to queries against its database.
  • FIG. 1 is a schematic diagram providing an example of the setup and components of a typical DNS system 100 .
  • a communication device 102 requires translation of a domain name.
  • “birds.images.wikipedia.org” is an exemplary domain name.
  • the DNS system 100 uses a DNS recursor 108 that will resolve this domain name and return the result to the communication device 102 .
  • the DNS recursor 108 uses authoritative domain name servers 130 for resolving this domain.
  • the DNS is a hierarchical naming system for computers, services, or any resource connected to the Internet or a private network.
  • the DNS associates various information with domain names assigned to each of the participants. Most importantly, the DNS translates domain names into the numerical identifiers associated with networking equipment for the purpose of locating and addressing these devices worldwide.
  • An often-used analogy to explain the DNS is that it serves as the “phone book” for the Internet by translating human-friendly computer hostnames into IP addresses.
  • the DNS distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative domain name servers for each domain.
  • Authoritative domain name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains.
  • the DNS also stores other types of information, such as the list of mail servers that accept email for a given Internet domain.
  • a domain name contains one or more parts, technically referred to as labels, which are conventionally concatenated, and delimited by dots, such as ‘birds.images.wikipedia.org’.
  • the right-most label conveys the top-level domain; for example, the domain name birds.images.wikipedia.org belongs to the top-level domain ‘org’.
  • the hierarchy of domains descends from right to left; each label to the left specifies a subdivision, or subdomain of the domain to the right.
  • each label to the left specifies a subdivision, or subdomain of the domain to the right.
  • the label ‘wikipedia’ specifies a subdomain of the ‘org’ domain
  • ‘images’ is a sub domain of ‘wikipedia.org’.
  • a hostname is a domain name that has at least one IP address associated.
  • the domain names ‘wikipedia.org’ and ‘images.wikipedia.org’ are also hostnames, whereas the ‘org’ domain is not.
  • the DNS is maintained by a distributed database system.
  • the nodes of this database system are the domain name servers.
  • Each domain has at least one authoritative domain name server that publishes information about that domain and the name servers of any domains subordinate to it.
  • the top of the hierarchy is served by root name servers 110 , 112 , which are the servers to query when looking up (resolving) a top-level domain name (TLD).
  • TLD top-level domain name
  • a domain name server When a domain name server is queried for a domain, it can return an “NS” entry, which is information about the next level name server that can service this request, or it can return an “A” entry, which is the final resolution to the domain in question.
  • authoritative domain name servers are sufficient for the operation of the Internet.
  • every DNS query starts with recursive queries at the root zone of the DNS and performs a recursive operation down the levels of the domains to provide the hostname associated with the domain in question.
  • the prior art DNS supports DNS caching by which caching DNS servers are responsible for querying the authoritative DNS servers, as well as storing the DNS query results for a period of time determined in the configuration (time-to-live) of the domain name record in question for use to answer future similar DNS requests they may receive.
  • this function implemented in the authoritative domain name server user applications gain efficiency in design and operation.
  • DNS caching and recursive functions in a DNS recursor 108 is not mandatory, the functions can be implemented independently in servers for special purposes.
  • Internet service providers typically provide DNS recursors 108 with cache for their customers.
  • many home networking routers implement DNS caches and recursors to improve efficiency in a local network.
  • the client-side of the DNS is referred to as a DNS resolver 106 .
  • the DNS resolver 106 is responsible for initiating and sequencing the queries that ultimately lead to a full resolution (translation) of the resource sought, e.g., translation of a domain name into an IP address.
  • a domain name resolver such as a DNS recursor 108 , determines the appropriate domain name servers responsible for the domain name in question by a sequence of queries starting with the right-most (top-level) domain label.
  • the process is started when a communication application 104 sends a request to the operating system 105 to translate a domain.
  • the operating system 105 sends a request to the DNS resolver 106 .
  • the DNS resolver 106 may or may not have a local cache to store previous DNS results. If a valid result exists in such a cache, it is returned to the communications application, otherwise, the DNS resolver 106 queries an external DNS recursor 108 .
  • the external DNS recursor 108 is configured with the known addresses of the root name servers 110 , 112 . This is often stored in a file which is updated periodically by an administrator from a reliable source.
  • the external DNS recursor 108 queries one of the root name servers 110 , 112 to find the next level authoritative domain name server authoritative for this domain.
  • the root name server 110 , 112 may return the authoritative domain name servers responsible for the “.org” domain in the example in FIG. 1 .
  • the external DNS recursor 108 queries the obtained next level authoritative domain name server for the domain in question, and may either receive a final answer (IP for this domain) or an address of an authoritative domain name server authoritative for the next-level domain.
  • the external DNS recursor 108 repeats the previous step until a final IP of the domain in question is returned.
  • the external DNS recursor 108 stores the requests it made to various authoritative domain name servers 130 (requests are the domain names to be resolved).
  • the responses received (a response received includes the IP address of the host or the IP address of the authoritative domain name servers for a sub-domain of the requested domain, the validity (TTL) for the response, as well as other information for this request) are cached by the external DNS recursor 108 .
  • the external DNS recursor 108 Upon receiving a new request for a domain name resolution, the external DNS recursor 108 sends the requested domain to the root name server 110 , 112 , obtains a response that is either the host IP of the requested domain, or an authoritative domain name server 130 that can continue the process for a sub domain of the requested domain. If a name server IP address of a sub domain is returned, it is queried for the requested domain, and either returns the host IP address of the domain, or the IP address of the authoritative domain name server of a sub domain of the requested domain, and so forth until the host IP address is received. Each of these answers from the authoritative domain name servers is typically stored in the cache of the external DNS recursor 108 .
  • the external DNS recursor 108 sends the request to its own local cache. If all requests are answered by the local cache, then a full resolution is made very quickly. If however, one or more of the entries in the list is expired or does not exist, then the external DNS recursor 108 queries the authoritative domain name servers 130 as described above, requiring a much longer resolution time.
  • Embodiments of the present invention provide a method and system for increasing speed of domain name system resolution within a computing device.
  • a system for resolving domain name system (DNS) queries contains a communication device for resolving DNS queries, wherein the communication device further comprising a memory and a processor that is configured by the memory, a cache storage for use by the communication device, and a network of authoritative domain name servers.
  • DNS domain name system
  • a process of the communication device looking up a DNS request within the cache storage if the communication device views an expired DNS entry within the cache storage, the communication device continues the process of looking up the DNS request in its cache while, in parallel, sending out a concurrent DNS request to an authoritative domain name server that the expired DNS entry belongs to. If the resulting answer from the authoritative name server is the same as the expired cached DNS entry, then the result of the DNS cache process is used as the final DNS response. If it is not the same, then the normal process continues, using the new DNS entry received.
  • a system for resolving domain name system (DNS) queries, wherein the system contains a communication device for resolving DNS queries, wherein the communication device further comprising a memory and a processor that is configured by the memory, a cache storage for use by the communication device, and a network of authoritative domain name servers.
  • DNS domain name system
  • the communication device queries more than one authoritative domain name server in parallel and uses a first answer received from the set of authoritative domain name servers as a final answer to that DNS level request.
  • a system for resolving domain name system (DNS) queries contains a communication device for resolving DNS queries, wherein the communication device further comprises a memory and a processor that is configured by the memory; a multitude of DNS recursors that are available to the computing device through a network; and a DNS resolver located within the communication device.
  • the DNS resolver of the communication device contains a list of DNS recursors and when the DNS resolver needs to do a DNS lookup, the DNS resolver queries all or a portion of the multitude of DNS recursors concurrently and uses a DNS recursor that first answers.
  • FIG. 1 is a schematic diagram illustrating a prior art DNS network/system configuration.
  • FIG. 2 is a schematic diagram illustrating a DNS network/system in accordance with the present invention.
  • FIG. 3 is a schematic diagram of a system containing a communication device and the external DNS recursors with which the communication device may communicate.
  • FIG. 4 is a flowchart illustrating how the DNS client chooses the recursor.
  • FIG. 5 is a flowchart illustrating a method of finding out all of the external DNS recursors that can be used.
  • FIG. 6 is a flowchart illustrating the use of all recursors in the list for DNS resolution.
  • FIG. 7 is a flowchart illustrating the new method of concurrently querying the DNS network and the local cache.
  • FIG. 8 is a flowchart illustrating the sub-system called ‘cache and network lookup’ of the system in FIG. 7 .
  • FIG. 9 is a flowchart illustrating the sub system called ‘cache lookup’ of the system in FIG. 7 .
  • FIG. 10 is a flowchart illustrating the sub system called ‘network lookup’ of the system in FIG. 7 .
  • FIG. 11 is a diagram illustrating a typical caching DNS recursor's cache.
  • the present method and system provides for faster and more reliable domain name resolution. Briefly described, these benefits can be achieved by implementing the present methods as part of a new DNS client, or communication device, either within the client computing device as a main embodiment, or external to the device in other embodiments.
  • a typical configuration of a computer will include the DNS forwarder (typically located, for example, in a home router) or a DNS resolver (typically located, for example, at the ISP of the user), or both.
  • the DNS resolver in the client learns about these DNS forwarders and resolvers through the IP configuration of each of the interfaces of the client.
  • the present method and system uses all forwarders and resolvers in the vicinity of the client and queries them concurrent to the other methods described.
  • the answer from the forwarder or resolver is faster to arrive than in the other methods (for example in the case where the DNS query and answer are already cached in the forwarder or resolver)
  • the answer from the forwarder or resolver gets used. This speeds up the time of resolution for the DNS request.
  • a typical caching DNS recursor uses its cache to resolve the DNS request without sending out network requests, if this is possible.
  • the DNS recursor does this by querying its own cache with the same queries it would have sent to the authoritative name servers, starting with the root server, and continuing to ‘deeper’ levels (i.e., lower in the DNS label hierarchy—e.g., querying the root server for the ‘.com’ authoritative domain server first, and then querying that server for the ‘wikipedia.com’ authoritative domain server, etc.) until getting to a resolution.
  • ‘deeper’ levels i.e., lower in the DNS label hierarchy—e.g., querying the root server for the ‘.com’ authoritative domain server first, and then querying that server for the ‘wikipedia.com’ authoritative domain server, etc.
  • a resolution cannot be made from the cache only, because of entries that either do not exist, or exist and are already expired.
  • a typical DNS server queries the relevant external authoritative domain name server before continuing the cache search and possibly running into another expired cache entry that would require another lengthy network request.
  • the IP address that is received from that name server is the same IP address that previously existed in the cache database of the DNS resolver, meaning that the final result is the result that existed in the cache of the caching DNS recursor. If the two or more expired cache entries were to be re-validated through the network concurrently to a cache search, that result would have been used, thus saving time.
  • the present method and system performs two steps concurrently.
  • the present method and system continues operation as if the expired cache entry is still valid and thus continues resolving the DNS request from the cache.
  • the present system and method queries the authoritative domain name server that provided the expired answer in the past for obtaining the latest valid entry for this URL. If, following the comparison of the cache entry to the one now received from the authoritative domain name server, the entry in the cache is still valid, the present method and system uses the final answer received from the first process herein. Acting on the assumption that the invalid cache entry was still valid is productive for the process.
  • the present method and system ignores the result received from the first step and continues normally with the result received from the authoritative domain name server.
  • This modification in the operation of the DNS recursor saves time, since in most cases of an expiration of a cached record, the record is still valid, and thus the serial recursive process would have been slower than the concurrent process of the present method and system.
  • the DNS client i.e., communication device queries all authoritative domain name servers known to it at the same level concurrently.
  • the DNS client uses the first response received from one of these authoritative domain name servers that were queried, as its final response. On average, this will minimize the time required to receive a response, since more servers are queried in parallel and thus the time it takes to receive a response is the minimum of all possibilities available to a regular DNS resolver.
  • the present DNS recursor uses all of the above methods (and combinations thereof) concurrently, whether located within the requesting communication device, or within another communication device, to be used by multiple communication devices.
  • the method and system of the present invention is provided in a DNS system similar to the DNS system of FIG. 1 , except that the communication device and/or DNS recursor(s) is different, as described herein.
  • a communication device 202 that requires translation of a domain name (“birds.images.wikipedia.org” in this example) uses an external DNS recursor 258 that will resolve the domain name and return the result to the communication device 202 .
  • the external DNS recursor 258 uses authoritative domain name servers 240 for resolving this domain.
  • an enhanced DNS resolver 206 that is located within the client communication device 202 .
  • Such functionality may, also or instead, be in the various types of external DNS recursors 258 , as shown by FIG. 2 .
  • a communication application 204 When a communication application 204 requires the resolution of a domain into an IP address, or other services that the DNS system 150 may provide, it sends the query to an operating system 205 , which passes it on to the enhanced DNS resolver 206 .
  • FIG. 3 is a schematic diagram of a system 200 containing a communication device 202 and external DNS recursors 216 , 218 , 220 , 222 , 224 with which the communication device 202 may communicate.
  • the communication device 202 contains a memory 203 .
  • the memory 203 contains the enhanced DNS resolver 206 , an operating system 205 , a DNS cache 208 , and communication applications 204 .
  • the communication applications 204 are applications that would need to make use of a DNS system, for example, to communicate with other applications on the network.
  • the communication device 202 may also contain a processor 209 .
  • the processor 209 is a hardware device for executing software, particularly that stored in the memory 203 , such as, but not limited to, the communication applications 204 and the enhanced DNS resolver 206 .
  • the processor 209 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the communication device 202 , a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing software instructions.
  • the memory 203 can include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.). Moreover, the memory 203 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 203 can have a distributed architecture, where various components are situated remote from one another, but can be accessed by the processor 209 .
  • the operating system 205 essentially controls the execution of programs within the communication device 202 and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
  • some of the external DNS recursors 216 , 218 , 220 are located on the same network as the communication device 202 , and some of the external DNS recursors 222 , 224 are reachable through the Internet 230 .
  • the communication device 202 contains several network interfaces 210 , 212 , 214 for connecting to the network.
  • one of the network interfaces 210 , 212 , 214 could be a physical Ethernet connection, another could be a WiFi connection, and another could be a cellular Internet connection.
  • Present-day DNS resolvers typically query the network interfaces in use, and choose a DNS recursor that is connected to one of these interfaces.
  • the DNS recursor to use is configured so that the recursor to be used is one located further away from the communication device, on the Internet, such as 222 and 224 .
  • DNS servers that are located further away are OpenDNS (www.opendns.com), and Google's DNS (8.8.8.8).
  • the memory 203 , processor 209 , and network interfaces 210 , 212 , 214 are communicatively coupled via a local interface 211 .
  • the local interface 211 can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art.
  • the local interface 211 may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface 211 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
  • FIG. 4 is a flow chart 300 illustrating general steps taken by the present method and system to increase speed of DNS resolution within the client communication device 202 , in accordance with a third exemplary embodiment of the invention.
  • any process descriptions or blocks in flow charts should be understood as representing modules, segments, portions of code, or steps that include one or more instructions for implementing specific logical functions in the process, and alternative implementations are included within the scope of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
  • the enhanced DNS resolver 206 creates a list of multiple external DNS recursors to use in a resolution process (block 302 ).
  • This list is comprised of the external DNS recursors available to the system on the client communication device 202 , and/or on the local area network, and/or anywhere on the network (as configured by the administrator).
  • the enhanced DNS resolver 206 queries these multiple external DNS recursors in parallel (block 304 ), using the first answer received from these queries as the final resolution of the DNS query (block 306 ).
  • the answer is the final answer for the DNS request. For example, if the full DNS request was to resolve images.wiki.org, the request for images.wiki.org is sent out to all these recursors, and the first recursor to reply with the fully resolved IP for this URL is recursor used.
  • the external DNS recursor can query a multitude of the same level authoritative domain name servers concurrently and use the first answer received from the servers (e.g., can query the root authoritative domain name servers 110 and 112 in FIG. 1 , and use the first answer received).
  • FIG. 5 is a flow chart 400 illustrating how in the present invention the enhanced DNS resolver 206 creates a list of multiple external DNS recursors for it to use in the DNS resolution process.
  • several DNS recursors are assigned using the following method.
  • a new DNS recursor list is created. Specifically, room is allocated in the memory of the computer.
  • the enhanced DNS resolver 206 queries all of the network interfaces 210 , 212 , 214 to find all of the external DNS recursors 216 , 218 , 220 that are connected to the local network of the communication device 202 .
  • the enhanced DNS resolver 206 adds these DNS recursors 210 , 212 , 214 to the list.
  • the enhanced DNS resolver 206 adds to this list other known DNS recursors 222 , 224 found on the Internet that it will use. This list of other known DNS recursors 222 , 224 is part of the configuration of the enhanced DNS resolver 206 , and may be changed by the user or the vendor of the enhanced DNS resolver, 206 from time to time.
  • FIG. 6 is a flow chart illustrating operation of the enhanced DNS resolver 206 for querying the DNS recursors 216 , 218 , 220 , 222 , 224 for the domain name translation, in accordance with a third exemplary embodiment of the invention.
  • the operating system 205 receives a domain name to resolve from a networking application.
  • the enhanced DNS resolver 206 looks up the domain in its DNS cache 208 if such a cache exists.
  • the enhanced DNS resolver 206 queries all or a portion of the DNS recursors 216 , 218 , 220 , 222 , 224 that are found in the DNS recursors list, and waits for the first valid response to be returned from these DNS recursors 216 , 218 , 220 , 222 , 224 . As shown by block 512 , when the first such valid response is received, the enhanced DNS resolver adds this DNS query and response to the DNS cache 208 (or modifies an existing entry), and returns the answer received to the requesting application 204 (block 520 ).
  • This process of using multiple DNS recursors reduces the time of response on average, since the response time from several DNS recursors varies, this process queries multiple sources and uses the minimum response time of all DNS recursors used.
  • either the enhanced DNS resolver 206 , or the DNS recursor 216 , 218 , 220 , 222 , 224 will query all known authoritative domain name servers for each level in parallel by sending out the same request (the domain name to be resolved), and waiting for the first answer received.
  • FIG. 7 is a flow chart 600 illustrating the main operation of the DNS system 150 , in accordance with the first exemplary embodiment of the invention.
  • a DNS request sent to the present system 150 is received, and the system 150 is initialized.
  • the requested domain (REQ_DOMAIN) is set to the domain requested of the DNS system 150 .
  • the root server parameter (ROOT_SERVER) is set to the list of root servers of the DNS system on the Internet.
  • the DNS system is comprised of root servers which are the highest hierarchy servers (that store information about who are the authoritative name servers for the .com, .net, .org, etc. domains.
  • the list of root servers of the DNS system are configured within the computer that is doing the DNS resolution (either the communication device such as 202 or the recursor such as 258 depending on where the resolution is taking place, in a configuration file, or other known methods).
  • REQ_TYPE is the type of answer that is expected (e.g., “A” for a host name, “NS” for a name server, etc.) for the resolution by the system 150 , and the CUR_SERVER variable is set to the ROOT_SERVER.
  • the system which may be the communication device 102 or the external DNS recursor 108 , depending on where the resolution is taking place, puts together the query packet that will be sent to the DNS cache 208 and possibly to elements in the DNS system for resolution.
  • the query packet is built in the same format as existing DNS packets are built in the pre-existing DNS network.
  • the format of the packet for making a DNS query is built exactly as defined in the DNS protocol.
  • the query packet that was constructed is sent to the DNS cache 208 and to the external DNS network of authoritative name servers by calling the LOOKUP_CACHE_AND_NETWORK process that is detailed in FIG. 8 .
  • the query packet is sent to the DNS cache for resolution, and in some cases also to the network, such that a response is received.
  • the response received has an “Answer” field, which may contain one of three options:
  • FIG. 8 is a flowchart 700 expanding on the process of “LOOKUP_CACHE_AND_NETWORK” from block 608 .
  • the DNS query is received.
  • the QUERY_SERVER_IP which is the authoritative domain name server to be queried at this stage of the process
  • the QUERY_DOMAIN which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller)
  • the QUERY_TYPE which is the type of response that this DNS request is expected to return.
  • a DNS cache lookup is performed by calling the CACHE_LOOKUP process that is detailed in FIG. 9 , by sending the CACHE_LOOKUP process the QUERY_SERVER_IP, the QUERY_DOMAIN and the QUERY_TYPE as the keys to the cache lookup.
  • a response is then checked (block 706 ).
  • the response packet from the DNS cache 208 which is similar to a DNS response packet, has an “Answer” field, which may contain one of two options:
  • the DNS system 150 determines whether the cached entry has expired or not, by checking its “TTL” (time to live”) entry that is derived from the DNS cache by calculating the difference in the time of validity stored in the DNS cache relative to the current time (the entry is said to be valid if the time stored in the “Valid” field of the DNS cache is in the future). If the cached entry is still valid, then the valid packet received from the DNS cache is returned to the caller of this process, as shown by block 716 .
  • TTL time to live
  • the cached entry is not valid (i.e., is expired)
  • a separate process is spawned, and the NETWORK_LOOKUP process is called from the new process.
  • the expired packet received from the cache is returned for further processing.
  • cached entries are not removed from the cache, since they are used to assist prediction of the DNS resolution path.
  • FIG. 9 is a flowchart 750 detailing the CACHE_LOOKUP process from block 704 .
  • the DNS query is received by the CACHE_LOOKUP process.
  • the QUERY_SERVER_IP which is the authoritative domain name server to be queried at this stage of the process
  • the QUERY_DOMAIN which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller)
  • the QUERY_TYPE which is the type of response that this DNS request is expected to return.
  • the query to the DNS cache is initialized by starting the CUR_SERVER_IP variable with the QUERY_SERVER_IP received in block 752 , and initializes the CUR_DOMAIN variable with the QUERY_DOMAIN that is to be searched for.
  • the cache lookup is performed, where the CUR_SERVER_IP, CUR_DOMAIN and QUERY_TYPE are used as the key in the search.
  • the TTL is calculated (block 758 ) by calculating the time left from the current time until the time in the “VALID” field of the entry found in the DNS cache. It should be noted that unlike prior art DNS systems, the present DNS system continues to store expired entries, and thus a negative TTL time may be received in this calculation. As shown by block 762 , this packet that is received as the answer to the cache request is returned to the caller of the CACHE_LOOKUP process.
  • the CUR_DOMAIN is cut one level from the left.
  • CUR_DOMAIN is “www.hola.org”
  • the resulting CUR_DOMAIN is now “hola.org”.
  • the resulting CUR_DOMAIN is now NULL (i.e., it was just a top level domain before, like “.com”, and now that has been ‘cut’)
  • NXDOMAIN is returned to the caller, meaning that a cache entry that is relevant to this domain does not exist.
  • the dns resolution system that is residing in the resolver or the recursor goes back to block 756 to look for a cache entry with a key that matches the new CUR_DOMAIN, the CUR_SERVER_IP and the QUERY_TYPE.
  • FIG. 10 is a flowchart 800 detailing the NETWORK_LOOKUP process from block 708 .
  • the DNS query is received.
  • the QUERY_SERVER_IP which is the authoritative domain name server to be queried at this stage of the process
  • the QUERY_DOMAIN which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller)
  • the QUERY_TYPE which is the type of response that this DNS request is expected to return.
  • the DNS query is built as a standard DNS packet, and transmitted to the authoritative domain name server identified by QUERY_SERVER_IP.
  • Block 808 shows the format of the DNS packet as it is received back from the authoritative domain name server.
  • the DNS packet received has two parts: the QUERY, which is the question that was asked of the authoritative domain name server; and the RESPONSE, which is the part where the answers are provided.
  • the ANSWER part of the response will include one of three answers:
  • the DNS lookup was for images.hola.org of type ‘A’ (meaning that the query is for the IP of the host images.hola.org)
  • the ANSWER can be “images.hola.org 10.71.1.1 A”.
  • the AUTH field may either be empty, or contain the additional information for the domain resolution in question.
  • the ANSWER field will be empty, and the AUTH filed will include the name of the entity it points to (e.g. the domain name of an authoritative domain name server), the type of the entity (e.g., “NS”), and the domain hierarchy for which this entity has authorization for (e.g., “.org”).
  • the IP of the name of the entity that it points to may be included in the AR field. If it is not included in the response, then a DNS lookup on this name needs to be performed before continuing the DNS resolution process.
  • the TTL field of the response is the time left for this information to be accurate (it is always greater than zero). After this time passes, the information provided by this response is no longer valid. This is very useful for caching systems, as it provides information on how long this may be cached and used. It should also be noted that the response may have multiple domains in the AUTH and AR fields. In this explanation, for simplicity, it is assumed that one answer is returned, since handling multiple answers is trivial based on the explanations in the present description.
  • the ANSWER field of the received response is evaluated. If the response is NXDOMAIN (i.e., such a domain does not exist), then an NXDOMAIN is returned back to the caller of the NETWORK_LOOKUP function.
  • the returned information is prepared to be cached, where the SERVER_IP is the IP of the authoritative domain name server that returned this answer, the IP is the IP of the next level authoritative domain name server that is pointed to by this answer.
  • DOMAIN is the DOMAIN received in the AUTH field for which this particular authoritative domain name server has authority for, and type is the type of this authoritative domain name server.
  • the TTL entry is formatted for the caching, by turning it into an absolute time for the DNS system to work with. So for example if the current date/time is now 11 Nov. 2010 4:36:00 am and the TTL returned in the RESPONSE
  • the entry is inserted into the cache and the flow returns to the INITIALIZE_THE_QUERY in MAIN, so that with this addition to the DNS cache, the domain can again try to be resolved directly from the DNS cache.
  • the key of the DNS cache is the combination of three entries: SERVER_IP; DOMAIN; and TYPE.
  • the final answer for the DNS lookup was received. As shown by block 822 , this answer is formatted for insertion into the DNS cache 208 , and flow resumes at block 816 where the TTL entry is created, the entry is inserted into the DNS cache as shown by block 818 , and as shown by block 820 , directs the flow to the INITIALIZE_THE_QUERY in MAIN, so that with this addition to the cache, the domain can for sure be resolved directly from the DNs cache.
  • FIG. 11 describes at a high level a cache system of a DNS recursor or resolver.
  • the key of the cache is typically the SERVER_IP 902 (the IP of the server that returned the answer that is cached in this entry) and DOMAIN 904 (the domain which was requested of the server who's IP is SERVER_IP).
  • TYPE is the type of the response received as described by the DNS protocol (NS, A, etc.)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

A system for resolving domain name system (DNS) queries, contains a communication device for resolving DNS queries, wherein the communication device further contains a memory and a processor that is configured by the memory, a cache storage for use by the communication device, and a network of authoritative domain name servers, where in a process of the communication device looking up a DNS request within the cache storage, if the communication device views an expired DNS entry within the cache storage, the communication device continues the process of looking up the DNS request in the cache storage while, in parallel, sending out a concurrent DNS request to an authoritative domain name server that the expired DNS entry belongs to.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is a continuation application, and claims priority to, co-pending U.S. patent application Ser. No. 15/836,871 filed on Dec. 10, 2017, and having the title “METHOD AND SYSTEM FOR INCREASING SPEED OF DOMAIN NAME SYSTEM RESOLUTION WITHIN A COMPUTING DEVICE”, which is a continuation application, and claims priority to, co-pending U.S. patent application Ser. No. 15/344,512 filed on Nov. 6, 2016, now issued U.S. Pat. No. 9,866,523, issued on Jan. 9, 2018; which is a continuation of, and claims priority to, U.S. patent application Ser. No. 14/717,267 filed on May 20, 2015, now issued U.S. Pat. No. 9,515,981, issued on Dec. 6, 2016, which is a continuation of, and claims priority to, U.S. patent application Ser. No. 14/162,953 filed on Jan. 24, 2014, now issued U.S. Pat. No. 9,043,429, issued on May 26, 2015, which is a continuation of U.S. Non-Provisional application entitled “METHOD AND SYSTEM FOR INCREASING SPEED OF DOMAIN NAME SYSTEM RESOLUTION WITHIN A COMPUTING DEVICE”, having Ser. No. 13/034,239 and filed on Feb. 24, 2011, now issued U.S. Pat. No. 8,671,221, issued on Mar. 11, 2014, which claims priority to a U.S. Provisional Application entitled, “METHOD AND SYSTEM FOR INCREASING SPEED OF DNS RESOLUTION WITHIN A COMPUTING DEVICE,” having Ser. No. 61/414,641, filed on Nov. 17, 2010, all of which are entirely incorporated herein by reference.
  • FIELD OF THE INVENTION
  • The present invention is generally related to domain name system resolution, and more particularly is related to increasing the speed of domain name system resolution.
  • BACKGROUND OF THE INVENTION
  • The Internet maintains two principal namespaces, the domain name hierarchy (e.g., ‘birds.images.wikipedia.org’), which is designed to be ‘human readable’, and the Internet Protocol (IP) address system (e.g., ‘207.142.131.242’) which is easier for computer programs to manipulate. The Domain Name System (DNS) maintains the domain namespace and provides translation services between these two principal namespaces. The (DNS) contains Internet name servers and a communications protocol.
  • A DNS name server is a server that stores the DNS records required for the system and responds with answers to queries against its database. FIG. 1 is a schematic diagram providing an example of the setup and components of a typical DNS system 100. A communication device 102 requires translation of a domain name. For purposes of the present example, “birds.images.wikipedia.org” is an exemplary domain name. The DNS system 100 uses a DNS recursor 108 that will resolve this domain name and return the result to the communication device 102. The DNS recursor 108 uses authoritative domain name servers 130 for resolving this domain.
  • The DNS is a hierarchical naming system for computers, services, or any resource connected to the Internet or a private network. The DNS associates various information with domain names assigned to each of the participants. Most importantly, the DNS translates domain names into the numerical identifiers associated with networking equipment for the purpose of locating and addressing these devices worldwide. An often-used analogy to explain the DNS is that it serves as the “phone book” for the Internet by translating human-friendly computer hostnames into IP addresses.
  • The DNS distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative domain name servers for each domain. Authoritative domain name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains. In general, the DNS also stores other types of information, such as the list of mail servers that accept email for a given Internet domain.
  • A domain name contains one or more parts, technically referred to as labels, which are conventionally concatenated, and delimited by dots, such as ‘birds.images.wikipedia.org’. The right-most label conveys the top-level domain; for example, the domain name birds.images.wikipedia.org belongs to the top-level domain ‘org’.
  • The hierarchy of domains descends from right to left; each label to the left specifies a subdivision, or subdomain of the domain to the right. For example: the label ‘wikipedia’ specifies a subdomain of the ‘org’ domain, and ‘images’ is a sub domain of ‘wikipedia.org’.
  • A hostname is a domain name that has at least one IP address associated. For example, the domain names ‘wikipedia.org’ and ‘images.wikipedia.org’ are also hostnames, whereas the ‘org’ domain is not.
  • The DNS is maintained by a distributed database system. The nodes of this database system are the domain name servers. Each domain has at least one authoritative domain name server that publishes information about that domain and the name servers of any domains subordinate to it. The top of the hierarchy is served by root name servers 110, 112, which are the servers to query when looking up (resolving) a top-level domain name (TLD). When a domain name server is queried for a domain, it can return an “NS” entry, which is information about the next level name server that can service this request, or it can return an “A” entry, which is the final resolution to the domain in question.
  • In principle, authoritative domain name servers are sufficient for the operation of the Internet. However, with only authoritative domain name servers operating, every DNS query starts with recursive queries at the root zone of the DNS and performs a recursive operation down the levels of the domains to provide the hostname associated with the domain in question.
  • To improve efficiency, reduce DNS traffic across the Internet, and increase performance in end-user applications, the prior art DNS supports DNS caching by which caching DNS servers are responsible for querying the authoritative DNS servers, as well as storing the DNS query results for a period of time determined in the configuration (time-to-live) of the domain name record in question for use to answer future similar DNS requests they may receive. With this function implemented in the authoritative domain name server, user applications gain efficiency in design and operation.
  • The combination of DNS caching and recursive functions in a DNS recursor 108 is not mandatory, the functions can be implemented independently in servers for special purposes.
  • Internet service providers typically provide DNS recursors 108 with cache for their customers. In addition, many home networking routers implement DNS caches and recursors to improve efficiency in a local network.
  • The client-side of the DNS is referred to as a DNS resolver 106. The DNS resolver 106 is responsible for initiating and sequencing the queries that ultimately lead to a full resolution (translation) of the resource sought, e.g., translation of a domain name into an IP address.
  • A domain name resolver, such as a DNS recursor 108, determines the appropriate domain name servers responsible for the domain name in question by a sequence of queries starting with the right-most (top-level) domain label.
  • An example of such a sequence is provided below for the resolution of the domain name ‘birds.images.wikipedia.org’. The process is started when a communication application 104 sends a request to the operating system 105 to translate a domain. The operating system 105 sends a request to the DNS resolver 106. The DNS resolver 106 may or may not have a local cache to store previous DNS results. If a valid result exists in such a cache, it is returned to the communications application, otherwise, the DNS resolver 106 queries an external DNS recursor 108. The external DNS recursor 108 is configured with the known addresses of the root name servers 110, 112. This is often stored in a file which is updated periodically by an administrator from a reliable source.
  • The external DNS recursor 108 queries one of the root name servers 110, 112 to find the next level authoritative domain name server authoritative for this domain. For example, the root name server 110, 112 may return the authoritative domain name servers responsible for the “.org” domain in the example in FIG. 1. The external DNS recursor 108 queries the obtained next level authoritative domain name server for the domain in question, and may either receive a final answer (IP for this domain) or an address of an authoritative domain name server authoritative for the next-level domain. The external DNS recursor 108 repeats the previous step until a final IP of the domain in question is returned.
  • When the external DNS recursor 108 has a caching system, the external DNS recursor 108 stores the requests it made to various authoritative domain name servers 130 (requests are the domain names to be resolved). The responses received (a response received includes the IP address of the host or the IP address of the authoritative domain name servers for a sub-domain of the requested domain, the validity (TTL) for the response, as well as other information for this request) are cached by the external DNS recursor 108.
  • Upon receiving a new request for a domain name resolution, the external DNS recursor 108 sends the requested domain to the root name server 110, 112, obtains a response that is either the host IP of the requested domain, or an authoritative domain name server 130 that can continue the process for a sub domain of the requested domain. If a name server IP address of a sub domain is returned, it is queried for the requested domain, and either returns the host IP address of the domain, or the IP address of the authoritative domain name server of a sub domain of the requested domain, and so forth until the host IP address is received. Each of these answers from the authoritative domain name servers is typically stored in the cache of the external DNS recursor 108.
  • In subsequent requests to the DNS system 100, the external DNS recursor 108 sends the request to its own local cache. If all requests are answered by the local cache, then a full resolution is made very quickly. If however, one or more of the entries in the list is expired or does not exist, then the external DNS recursor 108 queries the authoritative domain name servers 130 as described above, requiring a much longer resolution time.
  • Where in the past each Web page on the World Wide Web (WWW) typically had all of its content coming from one or two domains, the Web has evolved such that the content on each Web page now typically comes from multiple domains, and thus there are more domain name lookups per Web page. As an example, main content comes from the main domain, advertisements come from multiple ad servers, and widgets come from social networks. This makes the DNS resolution a constraining factor on page load times. Other network activities such as emails, etc., also rely on DNS. Thus, having a faster means of resolving domain names would benefit the speed of Internet based applications such as browsing and email.
  • The problem in the prior art DNS systems is that once an entry in the local cache has expired, the external DNS recursor must first resolve that entry again on the network to attempt to revalidate it, before continuing the DNS resolution. After revalidation, the process with the local cache continues. It is possible that then another cache entry that is required for the resolution will be expired, and again require a lengthy network lookup.
  • Another problem with the prior art DNS systems, is that they only query the DNS forwarder or DNS resolver that is available on one of its physical interfaces. With the prior art it is not possible to query all DNS forwarders and resolvers known to the host machine.
  • Yet another problem with the prior art DNS systems is as follows. For each level of hierarchy in the domain name system for which there is an authoritative domain name server, there is typically more than one such server. The DNS system knows about the multitude of servers, but only queries one server, and tries the other one if the initial query does not get answered. Again, this is a time consuming process.
  • Thus, a heretofore unaddressed need exists in the industry to address the aforementioned deficiencies and inadequacies.
  • SUMMARY OF THE INVENTION
  • Embodiments of the present invention provide a method and system for increasing speed of domain name system resolution within a computing device. Briefly described, in architecture, one embodiment of the system, among others, can be implemented as follows. A system for resolving domain name system (DNS) queries, contains a communication device for resolving DNS queries, wherein the communication device further comprising a memory and a processor that is configured by the memory, a cache storage for use by the communication device, and a network of authoritative domain name servers. In a process of the communication device looking up a DNS request within the cache storage, if the communication device views an expired DNS entry within the cache storage, the communication device continues the process of looking up the DNS request in its cache while, in parallel, sending out a concurrent DNS request to an authoritative domain name server that the expired DNS entry belongs to. If the resulting answer from the authoritative name server is the same as the expired cached DNS entry, then the result of the DNS cache process is used as the final DNS response. If it is not the same, then the normal process continues, using the new DNS entry received.
  • In accordance with a second exemplary embodiment of the invention, a system is provided for resolving domain name system (DNS) queries, wherein the system contains a communication device for resolving DNS queries, wherein the communication device further comprising a memory and a processor that is configured by the memory, a cache storage for use by the communication device, and a network of authoritative domain name servers. For each set of authoritative domain name servers within the network of authoritative domain name servers that exist for a DNS request, the communication device queries more than one authoritative domain name server in parallel and uses a first answer received from the set of authoritative domain name servers as a final answer to that DNS level request.
  • In accordance with a third exemplary embodiment of the invention, a system for resolving domain name system (DNS) queries is provided, wherein the system contains a communication device for resolving DNS queries, wherein the communication device further comprises a memory and a processor that is configured by the memory; a multitude of DNS recursors that are available to the computing device through a network; and a DNS resolver located within the communication device. The DNS resolver of the communication device contains a list of DNS recursors and when the DNS resolver needs to do a DNS lookup, the DNS resolver queries all or a portion of the multitude of DNS recursors concurrently and uses a DNS recursor that first answers.
  • It should be noted that the abovementioned three exemplary embodiments of the invention may instead be combined. Specifically, any combination of the three exemplary embodiments may be utilized.
  • Other systems, methods, features, and advantages of the present invention will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Many aspects of the invention 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 invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
  • FIG. 1 is a schematic diagram illustrating a prior art DNS network/system configuration.
  • FIG. 2 is a schematic diagram illustrating a DNS network/system in accordance with the present invention.
  • FIG. 3 is a schematic diagram of a system containing a communication device and the external DNS recursors with which the communication device may communicate.
  • FIG. 4 is a flowchart illustrating how the DNS client chooses the recursor.
  • FIG. 5 is a flowchart illustrating a method of finding out all of the external DNS recursors that can be used.
  • FIG. 6 is a flowchart illustrating the use of all recursors in the list for DNS resolution.
  • FIG. 7 is a flowchart illustrating the new method of concurrently querying the DNS network and the local cache.
  • FIG. 8 is a flowchart illustrating the sub-system called ‘cache and network lookup’ of the system in FIG. 7.
  • FIG. 9 is a flowchart illustrating the sub system called ‘cache lookup’ of the system in FIG. 7.
  • FIG. 10 is a flowchart illustrating the sub system called ‘network lookup’ of the system in FIG. 7.
  • FIG. 11 is a diagram illustrating a typical caching DNS recursor's cache.
  • DETAILED DESCRIPTION
  • The present method and system provides for faster and more reliable domain name resolution. Briefly described, these benefits can be achieved by implementing the present methods as part of a new DNS client, or communication device, either within the client computing device as a main embodiment, or external to the device in other embodiments.
  • As previously described, a typical configuration of a computer will include the DNS forwarder (typically located, for example, in a home router) or a DNS resolver (typically located, for example, at the ISP of the user), or both. The DNS resolver in the client learns about these DNS forwarders and resolvers through the IP configuration of each of the interfaces of the client.
  • Where prior art DNS resolvers use only one of these forwarders/resolvers, the present method and system uses all forwarders and resolvers in the vicinity of the client and queries them concurrent to the other methods described. In the case where the answer from the forwarder or resolver is faster to arrive than in the other methods (for example in the case where the DNS query and answer are already cached in the forwarder or resolver), the answer from the forwarder or resolver gets used. This speeds up the time of resolution for the DNS request.
  • As was also previously described with regard to the prior art, a typical caching DNS recursor uses its cache to resolve the DNS request without sending out network requests, if this is possible. The DNS recursor does this by querying its own cache with the same queries it would have sent to the authoritative name servers, starting with the root server, and continuing to ‘deeper’ levels (i.e., lower in the DNS label hierarchy—e.g., querying the root server for the ‘.com’ authoritative domain server first, and then querying that server for the ‘wikipedia.com’ authoritative domain server, etc.) until getting to a resolution. In some cases, a resolution cannot be made from the cache only, because of entries that either do not exist, or exist and are already expired. In the case where the entry found in the cache for this request is expired, a typical DNS server then queries the relevant external authoritative domain name server before continuing the cache search and possibly running into another expired cache entry that would require another lengthy network request. Many times, after resolving the expired cache entry via an external request to the authoritative name server, the IP address that is received from that name server is the same IP address that previously existed in the cache database of the DNS resolver, meaning that the final result is the result that existed in the cache of the caching DNS recursor. If the two or more expired cache entries were to be re-validated through the network concurrently to a cache search, that result would have been used, thus saving time.
  • In accordance with the present method and system, and a first exemplary embodiment of the invention, in order to avoid wasting time when cache entries are expired, the present method and system performs two steps concurrently. First, the present method and system continues operation as if the expired cache entry is still valid and thus continues resolving the DNS request from the cache. In parallel, the present system and method queries the authoritative domain name server that provided the expired answer in the past for obtaining the latest valid entry for this URL. If, following the comparison of the cache entry to the one now received from the authoritative domain name server, the entry in the cache is still valid, the present method and system uses the final answer received from the first process herein. Acting on the assumption that the invalid cache entry was still valid is productive for the process.
  • If the IP address received from the authoritative domain name server is not the same as the expired entry in the cache, the present method and system ignores the result received from the first step and continues normally with the result received from the authoritative domain name server. This modification in the operation of the DNS recursor saves time, since in most cases of an expiration of a cached record, the record is still valid, and thus the serial recursive process would have been slower than the concurrent process of the present method and system. In other cases (i.e., in the cases where the assumption that the expired cache entry was still valid, but following the query to the authoritative domain name server it turned out not to be valid), the time the present method and system takes is the same as the prior art process, meaning that if the cache entry was indeed invalid, then doing the two steps in parallel as described above did not waste time—the end result is returned in the same time it would have taken a ‘normal’ DNS process to return a valid answer.
  • As also previously described regarding the prior art, there are several authoritative domain name servers that serve the same level (e.g., there are multiple root servers and there are multiple servers handling the ‘.org’ TLD). When an external DNS recursor needs to query for a certain level, the recursor will choose one of the authoritative domain name servers available for that level, and use its response. If the authoritative domain name server does not respond, then the DNS client will query a different authoritative domain name server within that level, thus taking longer to respond.
  • Alternatively, in accordance with the present invention, and a second exemplary embodiment of the invention, the DNS client (i.e., communication device) queries all authoritative domain name servers known to it at the same level concurrently. The DNS client uses the first response received from one of these authoritative domain name servers that were queried, as its final response. On average, this will minimize the time required to receive a response, since more servers are queried in parallel and thus the time it takes to receive a response is the minimum of all possibilities available to a regular DNS resolver.
  • As described in additional detail herein, the present DNS recursor uses all of the above methods (and combinations thereof) concurrently, whether located within the requesting communication device, or within another communication device, to be used by multiple communication devices.
  • The method and system of the present invention is provided in a DNS system similar to the DNS system of FIG. 1, except that the communication device and/or DNS recursor(s) is different, as described herein. In accordance with the present invention, within the DNS system 150 illustrated by FIG. 2, a communication device 202 that requires translation of a domain name (“birds.images.wikipedia.org” in this example) uses an external DNS recursor 258 that will resolve the domain name and return the result to the communication device 202. The external DNS recursor 258 uses authoritative domain name servers 240 for resolving this domain.
  • Functionality of the present invention is provided by an enhanced DNS resolver 206 that is located within the client communication device 202. Such functionality may, also or instead, be in the various types of external DNS recursors 258, as shown by FIG. 2.
  • When a communication application 204 requires the resolution of a domain into an IP address, or other services that the DNS system 150 may provide, it sends the query to an operating system 205, which passes it on to the enhanced DNS resolver 206.
  • FIG. 3 is a schematic diagram of a system 200 containing a communication device 202 and external DNS recursors 216, 218, 220, 222, 224 with which the communication device 202 may communicate. As shown by FIG. 3, the communication device 202 contains a memory 203. The memory 203 contains the enhanced DNS resolver 206, an operating system 205, a DNS cache 208, and communication applications 204. The communication applications 204 are applications that would need to make use of a DNS system, for example, to communicate with other applications on the network.
  • The communication device 202 may also contain a processor 209. The processor 209 is a hardware device for executing software, particularly that stored in the memory 203, such as, but not limited to, the communication applications 204 and the enhanced DNS resolver 206. The processor 209 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the communication device 202, a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing software instructions.
  • The memory 203 can include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.). Moreover, the memory 203 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 203 can have a distributed architecture, where various components are situated remote from one another, but can be accessed by the processor 209.
  • The operating system 205 essentially controls the execution of programs within the communication device 202 and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
  • In accordance with the exemplary system 200 illustrated by FIG. 3, some of the external DNS recursors 216, 218, 220 are located on the same network as the communication device 202, and some of the external DNS recursors 222, 224 are reachable through the Internet 230. The communication device 202 contains several network interfaces 210, 212, 214 for connecting to the network. For example, one of the network interfaces 210, 212, 214 could be a physical Ethernet connection, another could be a WiFi connection, and another could be a cellular Internet connection. Present-day DNS resolvers typically query the network interfaces in use, and choose a DNS recursor that is connected to one of these interfaces. In other cases, the DNS recursor to use is configured so that the recursor to be used is one located further away from the communication device, on the Internet, such as 222 and 224. Examples of such DNS servers that are located further away are OpenDNS (www.opendns.com), and Google's DNS (8.8.8.8).
  • The memory 203, processor 209, and network interfaces 210, 212, 214 are communicatively coupled via a local interface 211. The local interface 211 can be, for example but not limited to, one or more buses or other wired or wireless connections, as is known in the art. The local interface 211 may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface 211 may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
  • FIG. 4 is a flow chart 300 illustrating general steps taken by the present method and system to increase speed of DNS resolution within the client communication device 202, in accordance with a third exemplary embodiment of the invention. It should be noted that any process descriptions or blocks in flow charts should be understood as representing modules, segments, portions of code, or steps that include one or more instructions for implementing specific logical functions in the process, and alternative implementations are included within the scope of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
  • Referring to FIG. 4, the enhanced DNS resolver 206 creates a list of multiple external DNS recursors to use in a resolution process (block 302). This list is comprised of the external DNS recursors available to the system on the client communication device 202, and/or on the local area network, and/or anywhere on the network (as configured by the administrator). The enhanced DNS resolver 206 then queries these multiple external DNS recursors in parallel (block 304), using the first answer received from these queries as the final resolution of the DNS query (block 306). The answer is the final answer for the DNS request. For example, if the full DNS request was to resolve images.wiki.org, the request for images.wiki.org is sent out to all these recursors, and the first recursor to reply with the fully resolved IP for this URL is recursor used.
  • It should be noted that, as is described in further detail hereinbelow, to speed up the DNS process, the external DNS recursor can query a multitude of the same level authoritative domain name servers concurrently and use the first answer received from the servers (e.g., can query the root authoritative domain name servers 110 and 112 in FIG. 1, and use the first answer received).
  • Creating a List of Multiple DNS Recursors to Use in a Resolution Process
  • FIG. 5 is a flow chart 400 illustrating how in the present invention the enhanced DNS resolver 206 creates a list of multiple external DNS recursors for it to use in the DNS resolution process. In the present invention several DNS recursors are assigned using the following method. As shown by block 402, a new DNS recursor list is created. Specifically, room is allocated in the memory of the computer.
  • As shown by block 404, the enhanced DNS resolver 206 queries all of the network interfaces 210, 212, 214 to find all of the external DNS recursors 216, 218, 220 that are connected to the local network of the communication device 202. The enhanced DNS resolver 206 adds these DNS recursors 210, 212, 214 to the list. As shown by block 406, the enhanced DNS resolver 206 adds to this list other known DNS recursors 222, 224 found on the Internet that it will use. This list of other known DNS recursors 222, 224 is part of the configuration of the enhanced DNS resolver 206, and may be changed by the user or the vendor of the enhanced DNS resolver, 206 from time to time.
  • Ouerying Multiple DNS Recursors in Parallel
  • FIG. 6 is a flow chart illustrating operation of the enhanced DNS resolver 206 for querying the DNS recursors 216, 218, 220, 222, 224 for the domain name translation, in accordance with a third exemplary embodiment of the invention. As shown by block 502, the operating system 205 receives a domain name to resolve from a networking application. As shown by block 504, the enhanced DNS resolver 206 looks up the domain in its DNS cache 208 if such a cache exists.
  • If the domain exists in the cache, and is still valid, the resolution of this domain is returned from the DNS cache 208 (block 520) and the process is complete. If however, the domain does not exist in the DNS cache 208, or is no longer valid, then, as shown by block 510, the enhanced DNS resolver 206 queries all or a portion of the DNS recursors 216, 218, 220, 222, 224 that are found in the DNS recursors list, and waits for the first valid response to be returned from these DNS recursors 216, 218, 220, 222, 224. As shown by block 512, when the first such valid response is received, the enhanced DNS resolver adds this DNS query and response to the DNS cache 208 (or modifies an existing entry), and returns the answer received to the requesting application 204 (block 520).
  • This process of using multiple DNS recursors reduces the time of response on average, since the response time from several DNS recursors varies, this process queries multiple sources and uses the minimum response time of all DNS recursors used.
  • Querying Multiple Name Servers in the Same Level Concurrently
  • In accordance with the present invention, either the enhanced DNS resolver 206, or the DNS recursor 216, 218, 220, 222, 224 will query all known authoritative domain name servers for each level in parallel by sending out the same request (the domain name to be resolved), and waiting for the first answer received.
  • Use of this method shortens the average response time per domain level, since the various authoritative domain name servers will have varying response times, and the new enhanced DNS resolver 206, or the DNS recursor 216, 218, 220, 222, 224 will use the shortest of these times.
  • Faster DNS by Ouerying the Network in Parallel to the Cache for Expired Entries
  • Operation of the present method and system begins when the communication application 204 sends a request for a domain name resolution to the operating system. FIG. 7 is a flow chart 600 illustrating the main operation of the DNS system 150, in accordance with the first exemplary embodiment of the invention. As shown by block 602, a DNS request sent to the present system 150 is received, and the system 150 is initialized. The requested domain (REQ_DOMAIN) is set to the domain requested of the DNS system 150. The root server parameter (ROOT_SERVER) is set to the list of root servers of the DNS system on the Internet. As is known by those having ordinary skill in the art, the DNS system is comprised of root servers which are the highest hierarchy servers (that store information about who are the authoritative name servers for the .com, .net, .org, etc. domains. The list of root servers of the DNS system are configured within the computer that is doing the DNS resolution (either the communication device such as 202 or the recursor such as 258 depending on where the resolution is taking place, in a configuration file, or other known methods). REQ_TYPE is the type of answer that is expected (e.g., “A” for a host name, “NS” for a name server, etc.) for the resolution by the system 150, and the CUR_SERVER variable is set to the ROOT_SERVER.
  • It should be noted that there are multiple authoritative domain name servers that are authoritative for each level in the domain hierarchy. For instance, there are multiple authoritative domain name servers handling the “Root” hierarchy, and multiple servers handling the “.com” hierarchy. For simplicity, the following describes the simple case of one authoritative domain name server per hierarchy.
  • As shown by block 606, the system, which may be the communication device 102 or the external DNS recursor 108, depending on where the resolution is taking place, puts together the query packet that will be sent to the DNS cache 208 and possibly to elements in the DNS system for resolution. The query packet is built in the same format as existing DNS packets are built in the pre-existing DNS network. The format of the packet for making a DNS query is built exactly as defined in the DNS protocol.
  • As shown by block 608, the query packet that was constructed is sent to the DNS cache 208 and to the external DNS network of authoritative name servers by calling the LOOKUP_CACHE_AND_NETWORK process that is detailed in FIG. 8. During the LOOKUP_CACHE_AND_NETWORK phase, the query packet is sent to the DNS cache for resolution, and in some cases also to the network, such that a response is received. As shown by block 610, the response received has an “Answer” field, which may contain one of three options:
      • 1. “NXDOMAIN”, which means that the DNS system determined that there is no authoritative domain name server that knows of a domain by the name that was requested. In such a case, “NXDOMAIN” is returned to the caller of the system (block 620), thereby telling the caller that such a domain does not exist.
      • 2. “EMPTY”, which means that an answer was received, but the answer is not of the type that the user was looking for (for example, the user was looking for an “A” record, which means that the user was looking for the IP of a specific host, and the DNS server that was queried returned a name of an authoritative domain name server that can help to further break down or resolve the request). In such a case, the CUR_SERVER_IP variable, which is the name of the server currently being queried for the requested domain, is modified to be the name of the authoritative domain name server (RESP_AUTH_NAME) returned by the current response. This typically is the authoritative domain name server that is hierarchically lower than the authoritative domain name server queried. The system then returns to block 608 to lookup the requested domain in the DNS cache 208 and network. It should be noted that the authoritative name server to query, what to ask it, etc., is all defined by the query packet that was built in block 606 (send the request to the server who's IP is CUR_SERVER_IP, ask it about the domain defined in the REA_DOMAIN part of the packet, and ask for an answer of the type defined by REQ_TYPE). It should be noted that the IP address of the RESP_AUTH_NAME is not always provided—the “Auth” field in DNS responses holds the name of the authoritative domain name server to be queried but not its IP address. The IP address is provided in the “AR” field. However, it is valid in DNS protocol to not have the IP of the server provided in the AR field. In such a case, a separate DNS lookup will need to be done on the authoritative domain name server that is returned in the “Auth” field.
      • 3. Not “NXDOMAIN” and not “EMPTY”, which means that a resolution was received. In such a case the enhanced DNS resolver 206 or external DNS recursor 258 is ready to return this answer received back to the caller of the DNS system 150. However, as shown by block 612, the system 206, 258 first checks on whether there are any outstanding calls to the DNS network, and waits to get the calls back before returning. If there are such outstanding requests then, as shown by block 618, the DNS system 150 sleeps to wait for these calls. If there are no such outstanding requests, as shown by block 616, the system responds to its caller with the answer to the DNS request.
  • FIG. 8 is a flowchart 700 expanding on the process of “LOOKUP_CACHE_AND_NETWORK” from block 608. As shown by block 702, the DNS query is received. There are three parameters in the received DNS query that are most relevant to this process: the QUERY_SERVER_IP, which is the authoritative domain name server to be queried at this stage of the process; the QUERY_DOMAIN, which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller); and the QUERY_TYPE, which is the type of response that this DNS request is expected to return.
  • As shown by block 704, a DNS cache lookup is performed by calling the CACHE_LOOKUP process that is detailed in FIG. 9, by sending the CACHE_LOOKUP process the QUERY_SERVER_IP, the QUERY_DOMAIN and the QUERY_TYPE as the keys to the cache lookup. A response is then checked (block 706). The response packet from the DNS cache 208, which is similar to a DNS response packet, has an “Answer” field, which may contain one of two options:
      • 1. “NXDOMAIN”, which means that the cache did not find an entry that meets the criteria. In such a case, as shown by block 708, the function NETWORK_LOOKUP is called (FIG. 10) with the parameters received in 702, and then in 712 the answer from that function is then sent back to the caller of the “CACHE AND NETWORK LOOKUP” function.
  • Not “NXDOMAIN”, which means that a cache entry was found. In such a case, as shown by block 710, the DNS system 150 determines whether the cached entry has expired or not, by checking its “TTL” (time to live”) entry that is derived from the DNS cache by calculating the difference in the time of validity stored in the DNS cache relative to the current time (the entry is said to be valid if the time stored in the “Valid” field of the DNS cache is in the future). If the cached entry is still valid, then the valid packet received from the DNS cache is returned to the caller of this process, as shown by block 716. However, if the cached entry is not valid (i.e., is expired), then, as shown by block 714, a separate process is spawned, and the NETWORK_LOOKUP process is called from the new process. In parallel to this process, as shown by block 716 the expired packet received from the cache is returned for further processing.
  • It should be noted that in the present DNS system, cached entries are not removed from the cache, since they are used to assist prediction of the DNS resolution path.
  • FIG. 9 is a flowchart 750 detailing the CACHE_LOOKUP process from block 704. Referring to FIG. 9, as shown by block 752, the DNS query is received by the CACHE_LOOKUP process. There are three parameters in the received DNS query that are most relevant to this process: the QUERY_SERVER_IP, which is the authoritative domain name server to be queried at this stage of the process, the QUERY_DOMAIN, which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller), and the QUERY_TYPE which is the type of response that this DNS request is expected to return.
  • As shown by block 754, the query to the DNS cache is initialized by starting the CUR_SERVER_IP variable with the QUERY_SERVER_IP received in block 752, and initializes the CUR_DOMAIN variable with the QUERY_DOMAIN that is to be searched for. As shown by block 756, the cache lookup is performed, where the CUR_SERVER_IP, CUR_DOMAIN and QUERY_TYPE are used as the key in the search.
  • If the key matches an entry in the DNS cache, then the TTL is calculated (block 758) by calculating the time left from the current time until the time in the “VALID” field of the entry found in the DNS cache. It should be noted that unlike prior art DNS systems, the present DNS system continues to store expired entries, and thus a negative TTL time may be received in this calculation. As shown by block 762, this packet that is received as the answer to the cache request is returned to the caller of the CACHE_LOOKUP process.
  • If the key does not match an entry in the DNS cache, as shown by block 760, the CUR_DOMAIN is cut one level from the left. As an example, if CUR_DOMAIN is “www.hola.org”, then after block 760 the resulting CUR_DOMAIN is now “hola.org”. If the resulting CUR_DOMAIN is now NULL (i.e., it was just a top level domain before, like “.com”, and now that has been ‘cut’), then as shown by block 764 “NXDOMAIN” is returned to the caller, meaning that a cache entry that is relevant to this domain does not exist. However, if the CUR_DOMAIN is not NULL, then the dns resolution system, that is residing in the resolver or the recursor goes back to block 756 to look for a cache entry with a key that matches the new CUR_DOMAIN, the CUR_SERVER_IP and the QUERY_TYPE.
  • FIG. 10 is a flowchart 800 detailing the NETWORK_LOOKUP process from block 708. As shown by block 802, the DNS query is received. There are three parameters in the received query that are most relevant to this process: the QUERY_SERVER_IP, which is the authoritative domain name server to be queried at this stage of the process, the QUERY_DOMAIN, which is the domain that this whole DNS process is looking to resolve (received by this DNS system form the external caller), and the QUERY_TYPE which is the type of response that this DNS request is expected to return.
  • As shown by block 804 it is tested whether an identical DNS query has already been sent out to the DNS network, and if so, returns the answer that was previously received for the previous such search that was executed. This is done mostly to eliminate un-needed network traffic.
  • As shown by block 806, the DNS query is built as a standard DNS packet, and transmitted to the authoritative domain name server identified by QUERY_SERVER_IP. Block 808 shows the format of the DNS packet as it is received back from the authoritative domain name server.
  • The DNS packet received has two parts: the QUERY, which is the question that was asked of the authoritative domain name server; and the RESPONSE, which is the part where the answers are provided. The ANSWER part of the response will include one of three answers:
      • 1. Domain, Type and IP: which is the answer to the question that was asked.
  • For example, if the DNS lookup was for images.hola.org of type ‘A’ (meaning that the query is for the IP of the host images.hola.org), then the ANSWER can be “images.hola.org 10.71.1.1 A”.
      • 2. NXDOMAIN: which means that the authoritative domain name server replied that there is no such domain under its authority
      • 3. NO ANSWER: which means that this authoritative domain name server does not have authority over the requested domain, but knows of the next-level authoritative domain name server that can provide additional information (or the final answer) for this domain resolution. The additional information will be in the AUTH field of the RESPONSE.
  • The AUTH field may either be empty, or contain the additional information for the domain resolution in question. In case the authoritative domain name server wanted to provide back a name server that may provide additional information about the domain in question, the ANSWER field will be empty, and the AUTH filed will include the name of the entity it points to (e.g. the domain name of an authoritative domain name server), the type of the entity (e.g., “NS”), and the domain hierarchy for which this entity has authorization for (e.g., “.org”). Note that the IP of the name of the entity that it points to may be included in the AR field. If it is not included in the response, then a DNS lookup on this name needs to be performed before continuing the DNS resolution process.
  • The TTL field of the response is the time left for this information to be accurate (it is always greater than zero). After this time passes, the information provided by this response is no longer valid. This is very useful for caching systems, as it provides information on how long this may be cached and used. It should also be noted that the response may have multiple domains in the AUTH and AR fields. In this explanation, for simplicity, it is assumed that one answer is returned, since handling multiple answers is trivial based on the explanations in the present description.
  • As shown by block 810, the ANSWER field of the received response is evaluated. If the response is NXDOMAIN (i.e., such a domain does not exist), then an NXDOMAIN is returned back to the caller of the NETWORK_LOOKUP function.
  • If the response is NO_ANSWER (i.e., it is a referral to a sub domain DNS server), as shown by block 812, the returned information is prepared to be cached, where the SERVER_IP is the IP of the authoritative domain name server that returned this answer, the IP is the IP of the next level authoritative domain name server that is pointed to by this answer. DOMAIN is the DOMAIN received in the AUTH field for which this particular authoritative domain name server has authority for, and type is the type of this authoritative domain name server.
  • As shown by block 816 the TTL entry is formatted for the caching, by turning it into an absolute time for the DNS system to work with. So for example if the current date/time is now 11 Nov. 2010 4:36:00 am and the TTL returned in the RESPONSE|TTL section of the packet is 2 min, then the TTL is set to 4:38:00.
  • As shown by block 818, the entry is inserted into the cache and the flow returns to the INITIALIZE_THE_QUERY in MAIN, so that with this addition to the DNS cache, the domain can again try to be resolved directly from the DNS cache. The key of the DNS cache is the combination of three entries: SERVER_IP; DOMAIN; and TYPE. When an entry is inserted into the DNS cache (block 818), if a previous entry appears under the same key, the new entry replaces the previous entry with the same key.
  • If the response in block 810 is not EMPTY and not NXDOMAIN, then the final answer for the DNS lookup was received. As shown by block 822, this answer is formatted for insertion into the DNS cache 208, and flow resumes at block 816 where the TTL entry is created, the entry is inserted into the DNS cache as shown by block 818, and as shown by block 820, directs the flow to the INITIALIZE_THE_QUERY in MAIN, so that with this addition to the cache, the domain can for sure be resolved directly from the DNs cache.
  • FIG. 11 describes at a high level a cache system of a DNS recursor or resolver. The key of the cache is typically the SERVER_IP 902 (the IP of the server that returned the answer that is cached in this entry) and DOMAIN 904 (the domain which was requested of the server who's IP is SERVER_IP). The TYPE 906, RESPONSE_IP 908 and EXPIRE 910 fields are the data of the cache, where TYPE is the type of the response received as described by the DNS protocol (NS, A, etc.), the RESPONSE_IP is the IP that was provided as an answer by the authoritative domain name server to be the IP of the host (in case of a TYPE=A answer) or of the next level authoritative domain name server (in case of a TYPE=NS answer), and the EXPIRE field states whether this entry is still valid at this time, based on the expiration field that was received with the answer at the time it was received by the system.
  • It should be noted that the abovementioned three exemplary embodiments of the invention may instead be combined. Specifically, any combination of the three exemplary embodiments may be utilized.
  • It should be emphasized that the above-described embodiments of the present invention are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiments of the invention without departing substantially from the spirit and principles of the invention. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present invention and protected by the following claims.

Claims (22)

1. A method by a client device for use with a memory storing content items where each of the content items is associated with a memory stored content query and a memory stored expiration time, and for use with a server operative to provide content items over the Internet in response to received queries, the method comprising:
executing an operating system;
executing a software application that uses the operating system;
receiving or intercepting by the operating system from the software application a query for a content item;
checking if a content item that corresponds to the query is found in the memory and has not expired using the associated expiration time;
in response to the found content item being found and being valid:
fetching the found content item from the memory, and providing, by the operating system, the fetched content to the software application and using the fetched content item by the software application; and
in response to the found content item not being found or not being valid:
sending the query to the server over the Internet and receiving the corresponding content item and the associated expiration time over the Internet from the server;
providing, by the operating system, the received content item to the software application and using the received content item by the software application; and
storing, in the memory, the received content item and the associated expiration time.
2. The method according to claim 1, wherein each of the content items comprises an Internet Protocol (IP) address.
3. The method according to claim 2, for resolving Domain Name System (DNS) queries, wherein each of the queries comprises a DNS query.
4. The method according to claim 3, wherein the Internet Protocol (IP) address results from a DNS resolution over the Internet.
5. The method according to claim 4, wherein the server is a DNS recursor server.
6. The method according to claim 5, wherein the server is an authoritative domain name server.
7. The method according to claim 1, wherein the memory is a local cache memory in the client device.
8. The method according to claim 1, wherein the client device comprises a network interface, and wherein the communication with the server is via the network interface.
9. The method according to claim 8, wherein the network interface comprises a wired network interface.
10. The method according to claim 9, wherein the wired network interface comprises Local Area Network (LAN) interface.
11. The method according to claim 10, wherein the wired network interface comprises a physical Ethernet connection.
12. The method according to claim 8, wherein the network interface comprises a wireless network interface.
13. The method according to claim 12, wherein the wireless network interface comprises a cellular Internet connection.
14. The method according to claim 12, wherein the wireless network interface comprises a WiFi connection.
15. The method according to claim 1, for use with an additional server operative to provide content items over the Internet in response to received queries, the method further comprising sending the query to the additional server over the Internet in parallel to sending the query to the server over the Internet.
16. The method according to claim 15, further comprising receiving the corresponding content item and the associated expiration time over the Internet from the servers.
17. The method according to claim 16, wherein the providing, using, and storing of the received content item comprise respectively providing, using and storing of the first received content item from the servers.
18. The method according to claim 1, wherein in response to the found content item being found and not being valid, fetching the found content item from the memory, and providing, by the operating system, the fetched content to the software application and using the fetched content item by the software application.
19. The method according to claim 18, wherein in parallel to fetching and providing further comprising sending the query to the server over the Internet and receiving the corresponding content item and the associated expiration time over the Internet from the server.
20. The method according to claim 18, wherein in response to the received content item being different from the fetched content, providing, by the operating system, the received content to the software application and using the received content item by the software application.
21. The method according to claim 1, wherein the client device comprises a network interface, further preceded by:
querying, via the network interface, for detecting all relevant servers connected thereto;
storing identifiers of the detected servers;
selecting the server from the detected servers; and
using the selected server.
22. A non-transitory computer readable medium having computer executable instructions stored thereon, wherein the instructions include the method according to claim 1.
US16/186,551 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device Abandoned US20190081923A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/186,551 US20190081923A1 (en) 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US41464110P 2010-11-17 2010-11-17
US13/034,239 US8671221B2 (en) 2010-11-17 2011-02-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/162,953 US9043429B2 (en) 2010-11-17 2014-01-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/717,267 US9515981B2 (en) 2010-11-17 2015-05-20 Method and system for increasing speed of domain name system resolution within a computing device
US15/344,512 US9866523B2 (en) 2010-11-17 2016-11-06 Method and system for increasing speed of domain name system resolution within a computing device
US15/836,871 US10148612B2 (en) 2010-11-17 2017-12-10 Method and system for increasing speed of domain name system resolution within a computing device
US16/186,551 US20190081923A1 (en) 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/836,871 Continuation US10148612B2 (en) 2010-11-17 2017-12-10 Method and system for increasing speed of domain name system resolution within a computing device

Publications (1)

Publication Number Publication Date
US20190081923A1 true US20190081923A1 (en) 2019-03-14

Family

ID=46048839

Family Applications (7)

Application Number Title Priority Date Filing Date
US13/034,239 Active 2031-07-20 US8671221B2 (en) 2010-11-17 2011-02-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/162,953 Active US9043429B2 (en) 2010-11-17 2014-01-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/717,267 Active 2031-03-11 US9515981B2 (en) 2010-11-17 2015-05-20 Method and system for increasing speed of domain name system resolution within a computing device
US15/344,512 Active US9866523B2 (en) 2010-11-17 2016-11-06 Method and system for increasing speed of domain name system resolution within a computing device
US15/836,871 Active US10148612B2 (en) 2010-11-17 2017-12-10 Method and system for increasing speed of domain name system resolution within a computing device
US16/186,551 Abandoned US20190081923A1 (en) 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device
US16/186,550 Abandoned US20190081922A1 (en) 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device

Family Applications Before (5)

Application Number Title Priority Date Filing Date
US13/034,239 Active 2031-07-20 US8671221B2 (en) 2010-11-17 2011-02-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/162,953 Active US9043429B2 (en) 2010-11-17 2014-01-24 Method and system for increasing speed of domain name system resolution within a computing device
US14/717,267 Active 2031-03-11 US9515981B2 (en) 2010-11-17 2015-05-20 Method and system for increasing speed of domain name system resolution within a computing device
US15/344,512 Active US9866523B2 (en) 2010-11-17 2016-11-06 Method and system for increasing speed of domain name system resolution within a computing device
US15/836,871 Active US10148612B2 (en) 2010-11-17 2017-12-10 Method and system for increasing speed of domain name system resolution within a computing device

Family Applications After (1)

Application Number Title Priority Date Filing Date
US16/186,550 Abandoned US20190081922A1 (en) 2010-11-17 2018-11-11 Method and system for increasing speed of domain name system resolution within a computing device

Country Status (2)

Country Link
US (7) US8671221B2 (en)
WO (1) WO2012067862A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238499A1 (en) * 2015-10-13 2019-08-01 At&T Intellectual Property I, L.P. Method and apparatus for expedited domain name system query resolution

Families Citing this family (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100502367C (en) * 2007-04-04 2009-06-17 华为技术有限公司 Method and device for saving domain name system record
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8060936B2 (en) 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US8051480B2 (en) 2008-10-21 2011-11-01 Lookout, Inc. System and method for monitoring and analyzing multiple interfaces and multiple protocols
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US9042876B2 (en) 2009-02-17 2015-05-26 Lookout, Inc. System and method for uploading location information based on device movement
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8855601B2 (en) 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US8671221B2 (en) 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
EP2656590B1 (en) * 2010-12-21 2014-11-12 Thomson Licensing DNS forwarder for multi-core platforms
IL210169A0 (en) * 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US20120317153A1 (en) * 2011-06-07 2012-12-13 Apple Inc. Caching responses for scoped and non-scoped domain name system queries
US8738765B2 (en) * 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US9342698B2 (en) * 2011-12-30 2016-05-17 Verisign, Inc. Providing privacy enhanced resolution system in the domain name system
US8880686B2 (en) * 2011-12-30 2014-11-04 Verisign, Inc Providing privacy enhanced resolution system in the domain name system
US20140059071A1 (en) * 2012-01-11 2014-02-27 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for providing domain name resolution
US9642169B2 (en) * 2012-01-11 2017-05-02 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for facilitating access to a content source through a wireless mobile network
CN102572014B (en) * 2012-03-07 2015-12-02 华为终端有限公司 Message treatment method, device and system
US9215205B1 (en) * 2012-04-20 2015-12-15 Infoblox Inc. Hardware accelerator for a domain name server cache
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US10142282B2 (en) * 2012-11-05 2018-11-27 Pismo Labs Technology Limited Methods and gateways for processing DNS request
US9015833B2 (en) * 2012-11-07 2015-04-21 Trusteer, Ltd. Defense against DNS DoS attack
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US20140164645A1 (en) * 2012-12-06 2014-06-12 Microsoft Corporation Routing table maintenance
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US9852416B2 (en) 2013-03-14 2017-12-26 Lookout, Inc. System and method for authorizing a payment transaction
US10699273B2 (en) 2013-03-14 2020-06-30 Lookout, Inc. System and method for authorizing payment transaction based on device locations
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US9307412B2 (en) 2013-04-24 2016-04-05 Lookout, Inc. Method and system for evaluating security for an interactive service operation by a mobile device
US9935791B2 (en) * 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
CN104283979B (en) * 2013-07-11 2017-11-17 华为技术有限公司 The method, apparatus and system of message transmissions in multicast domain name system
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
KR102154788B1 (en) * 2014-10-02 2020-09-11 삼성전자주식회사 A DNS resolution method in a terminal of a wireless communication system, and an apparatus therefor
US9906497B2 (en) 2014-10-06 2018-02-27 Cryptzone North America, Inc. Multi-tunneling virtual network adapter
US9148408B1 (en) 2014-10-06 2015-09-29 Cryptzone North America, Inc. Systems and methods for protecting network devices
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
KR102264992B1 (en) 2014-12-31 2021-06-15 삼성전자 주식회사 Method and Device for allocating a server in wireless communication system
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10079799B2 (en) * 2015-10-14 2018-09-18 Cisco Technology, Inc. Using domain name server queries for managing access control lists
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9866519B2 (en) * 2015-10-16 2018-01-09 Cryptzone North America, Inc. Name resolving in segmented networks
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10412048B2 (en) 2016-02-08 2019-09-10 Cryptzone North America, Inc. Protecting network devices by a firewall
US9628444B1 (en) 2016-02-08 2017-04-18 Cryptzone North America, Inc. Protecting network devices by a firewall
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10440053B2 (en) 2016-05-31 2019-10-08 Lookout, Inc. Methods and systems for detecting and preventing network connection compromise
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
LT3767493T (en) 2017-08-28 2023-03-10 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
US11677713B2 (en) * 2018-10-05 2023-06-13 Vmware, Inc. Domain-name-based network-connection attestation
US11082339B2 (en) * 2018-10-12 2021-08-03 Hewlett Packard Enterprise Development Lp Domain name system (DNS) optimization for wide area networks
CN112565481B (en) * 2018-11-21 2022-04-12 Oppo广东移动通信有限公司 Electronic equipment, domain name query method and related product
LT4075304T (en) 2019-02-25 2023-07-25 Bright Data Ltd. System and method for url fetching retry mechanism
CN110022296B (en) * 2019-03-01 2021-05-18 口口相传(北京)网络技术有限公司 Real-time data processing method and device, storage medium and computer equipment
US10805417B2 (en) * 2019-03-08 2020-10-13 Charter Communications Operating, Llc Enhanced domain name system response caching
JP7309418B2 (en) * 2019-03-29 2023-07-18 キヤノン株式会社 COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD AND PROGRAM
EP4027618B1 (en) 2019-04-02 2024-07-31 Bright Data Ltd. Managing a non-direct url fetching service
CN110324435B (en) * 2019-06-19 2021-05-04 厦门网宿有限公司 Network request processing method and system
US10812442B1 (en) * 2019-09-23 2020-10-20 Citrix Systems, Inc. Intelligent redirector based on resolver transparency
US11711342B2 (en) * 2020-01-17 2023-07-25 Cisco Technology, Inc. Endpoint-assisted access control for network security devices
US11444931B1 (en) 2020-06-24 2022-09-13 F5, Inc. Managing name server data
EP3937470A1 (en) 2020-07-07 2022-01-12 Deutsche Telekom AG Domain name request multiplication for multipath-access
CN114221934B (en) * 2021-12-13 2024-05-07 牙木科技股份有限公司 Domain name resolution caching method, DNS server and computer readable storage medium
US20230224271A1 (en) * 2022-01-11 2023-07-13 Comcast Cable Communications, Llc Systems, methods, and apparatuses for improved domain name resolution

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862735B1 (en) * 2006-12-05 2014-10-14 Aol Inc. IP address management of multiple DHCP and DNS servers
US8898773B2 (en) * 2006-03-20 2014-11-25 Nixu Software Oy Applianced domain name server
US8924519B2 (en) * 2009-11-03 2014-12-30 Microsoft Corporation Automated DNS configuration with local DNS server
US9015318B1 (en) * 2009-11-18 2015-04-21 Cisco Technology, Inc. System and method for inspecting domain name system flows in a network environment
US9053320B2 (en) * 2010-04-20 2015-06-09 Verisign, Inc Method of and apparatus for identifying requestors of machine-generated requests to resolve a textual identifier
US20150213131A1 (en) * 2004-10-29 2015-07-30 Go Daddy Operating Company, LLC Domain name searching with reputation rating
US9197486B2 (en) * 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
US9225794B2 (en) * 2009-03-31 2015-12-29 Google Inc. Adaptive DNS pre-resolution
US9270646B2 (en) * 2009-04-20 2016-02-23 Citrix Systems, Inc. Systems and methods for generating a DNS query to improve resistance against a DNS attack
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US9712484B1 (en) * 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9906488B2 (en) * 2010-10-26 2018-02-27 Cedexis, Inc. Surrogate name delivery network
US20180351777A1 (en) * 2010-09-16 2018-12-06 Google Inc. Trustworthy Provisioning of DNS Resolutions Within Web Content
US20190394298A1 (en) * 2010-04-01 2019-12-26 Cloudflare, Inc. Internet-based proxy service for responding to server offline errors

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233642A (en) 1990-07-27 1992-08-21 Dell Usa Corp Processor which performs memory access in parallel with cache access and method used therrfor
GB9921029D0 (en) * 1999-09-06 1999-11-10 Univ Bristol Communication networks
US8195823B2 (en) * 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US8204082B2 (en) * 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7716367B1 (en) * 2000-07-20 2010-05-11 Akamai Technologies, Inc. Network performance monitoring in a content delivery service
US6842770B1 (en) * 2000-08-18 2005-01-11 Apple Computer, Inc. Method and system for seamlessly accessing remotely stored files
CA2427266C (en) * 2000-11-01 2005-03-29 Snapnames.Com, Inc. Registry-integrated internet domain name acquisition system
US6795848B1 (en) * 2000-11-08 2004-09-21 Hughes Electronics Corporation System and method of reading ahead of objects for delivery to an HTTP proxy server
AU2002257217A1 (en) 2001-04-24 2002-11-05 Broadcom Corporation Alerting system, architecture and circuitry
US20020178238A1 (en) 2001-05-23 2002-11-28 Thomas Fletcher Caching address information in a communications system
US7099957B2 (en) * 2001-08-23 2006-08-29 The Directtv Group, Inc. Domain name system resolution
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US7086061B1 (en) * 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
JP3703457B2 (en) * 2003-01-21 2005-10-05 キヤノン株式会社 Address notification method, program, and apparatus
US7299491B2 (en) * 2003-04-30 2007-11-20 Microsoft Corporation Authenticated domain name resolution
US7584301B1 (en) * 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US8224964B1 (en) * 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7827260B2 (en) 2004-10-12 2010-11-02 International Business Machines Corporation Apparatus, system, and method for configuring zone control of a network feature in a heterogeneous network
US20060117020A1 (en) * 2004-12-01 2006-06-01 John Toebes Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device
US7844735B2 (en) * 2005-05-03 2010-11-30 International Business Machines Corporation Determining address of edge server by using authoritative domain name server and bypassing assigned domain name server
US7707314B2 (en) * 2005-11-21 2010-04-27 Limelight Networks, Inc. Domain name resolution resource allocation
US8291117B1 (en) * 2012-02-15 2012-10-16 Limelight Networks, Inc. Scaled domain name service
US8010701B2 (en) * 2005-12-19 2011-08-30 Vmware, Inc. Method and system for providing virtualized application workspaces
US7827280B2 (en) * 2006-02-28 2010-11-02 Red Hat, Inc. System and method for domain name filtering through the domain name system
US8606926B2 (en) * 2006-06-14 2013-12-10 Opendns, Inc. Recursive DNS nameserver
US8200842B1 (en) * 2006-10-25 2012-06-12 Cellco Partnership Automatic traffic control using dynamic DNS update
EP1919155A1 (en) * 2006-10-31 2008-05-07 Alcatel Lucent Resolution of flexible address schemes for IMS services
US20080162724A1 (en) * 2006-12-29 2008-07-03 Nokia Corporation Direct domain name service query
US8701010B2 (en) * 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
ES2326560T3 (en) * 2007-07-05 2009-10-14 Conveneer Ab METHOD, APPARATUS AND SYSTEM FOR THE MANAGEMENT OF MOBILITY AND EFFICIENT RECOVERY OF INFORMATION IN A COMMUNICATIONS NETWORK.
EP2015236A1 (en) * 2007-07-10 2009-01-14 Ubs Ag Redirection technique in a communication network
US7836207B2 (en) * 2007-12-20 2010-11-16 Fast Health Corporation System and method for redirecting a website upon the occurrence of a disaster or emergency event
US8849970B1 (en) * 2008-02-07 2014-09-30 Netapp, Inc. Transparent redirection of clients to a surrogate payload server through the use of a proxy location server
US7962597B2 (en) * 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8156243B2 (en) * 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8601090B1 (en) * 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
FI20080345A0 (en) * 2008-05-09 2008-05-09 Joikusoft Oy Ltd Symbian S60 phone as 3G bandwidth combiner
US8677018B2 (en) * 2008-08-25 2014-03-18 Google Inc. Parallel, side-effect based DNS pre-caching
US20150207888A1 (en) * 2008-09-19 2015-07-23 Limelight Networks, Inc. Multicast mapped look-up on content delivery networks
US9172713B2 (en) * 2008-09-24 2015-10-27 Neustar, Inc. Secure domain name system
US8266288B2 (en) * 2008-10-23 2012-09-11 International Business Machines Corporation Dynamic expiration of domain name service entries
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
US7930428B2 (en) * 2008-11-11 2011-04-19 Barracuda Networks Inc Verification of DNS accuracy in cache poisoning
US8447856B2 (en) * 2008-11-25 2013-05-21 Barracuda Networks, Inc. Policy-managed DNS server for to control network traffic
US20150365305A1 (en) * 2009-04-07 2015-12-17 Verisign, Inc. Domain name system traffic analysis
US8527658B2 (en) * 2009-04-07 2013-09-03 Verisign, Inc Domain traffic ranking
US8676989B2 (en) * 2009-04-23 2014-03-18 Opendns, Inc. Robust domain name resolution
US8769057B1 (en) * 2009-05-07 2014-07-01 Sprint Communications Company L.P. Employing a hierarchy of servers to resolve fractional IP addresses
US8782236B1 (en) * 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8935428B2 (en) * 2009-06-24 2015-01-13 Broadcom Corporation Fault tolerance approaches for DNS server failures
US8103795B2 (en) * 2009-07-09 2012-01-24 International Business Machines Corporation TCP/IP host name resolution on a private network
US8966033B2 (en) * 2009-08-17 2015-02-24 At&T Intellectual Property I, L.P. Integrated proximity routing for content distribution
US8543640B2 (en) * 2009-09-25 2013-09-24 At&T Intellectual Property I, L.P. Method and apparatus for managing user endpoint devices in a communication network
US8433771B1 (en) * 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
CA2772181C (en) * 2009-10-12 2018-04-17 Lg Electronics Inc. Mobile terminated communication method and related devices
US9385988B2 (en) * 2009-11-04 2016-07-05 Cedexis, Inc. Internet infrastructure survey
CA2779995A1 (en) 2009-12-10 2011-06-16 Akzo Nobel Chemicals International B.V. Process for the polymerization of styrene
US8103915B2 (en) * 2010-02-12 2012-01-24 Verizon Patent And Licensing Inc. Failure system for domain name system client
US8370940B2 (en) * 2010-04-01 2013-02-05 Cloudflare, Inc. Methods and apparatuses for providing internet-based proxy services
EP2556438B1 (en) * 2010-04-03 2016-08-10 Openwave Mobility, Inc. Reverse dns lookup with modified reverse mappings
US8694659B1 (en) * 2010-04-06 2014-04-08 Symantec Corporation Systems and methods for enhancing domain-name-server responses
US8793355B2 (en) * 2010-04-27 2014-07-29 Symantec Corporation Techniques for directory data resolution
US8326980B2 (en) * 2010-04-28 2012-12-04 Microsoft Corporation Using DNS reflection to measure network performance
US8423607B2 (en) * 2010-06-01 2013-04-16 Qualcomm Incorporated Fallback procedures for domain name server update in a mobile IP registration
WO2011160113A2 (en) * 2010-06-18 2011-12-22 Akamai Technologies, Inc. Extending a content delivery network (cdn) into a mobile or wireline network
US20110320524A1 (en) * 2010-06-29 2011-12-29 Alcatel-Lucent Usa Inc. Technique For Effectively Reducing Latency Of Locating A Resource On A Network
US8347100B1 (en) * 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
EP2596618A1 (en) * 2010-07-22 2013-05-29 Telefonaktiebolaget L M Ericsson (PUBL) Node selection in a packet core network
US8819282B2 (en) * 2010-08-06 2014-08-26 International Business Machines Corporation Using unique local unicast addresses in a global domain name server
US9037712B2 (en) * 2010-09-08 2015-05-19 Citrix Systems, Inc. Systems and methods for self-loading balancing access gateways
US8832283B1 (en) * 2010-09-16 2014-09-09 Google Inc. Content provided DNS resolution validation and use
US8788576B2 (en) * 2010-09-27 2014-07-22 Z124 High speed parallel data exchange with receiver side data handling
US9003035B1 (en) * 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8819283B2 (en) * 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8549148B2 (en) * 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8694642B2 (en) * 2010-10-21 2014-04-08 Opendns, Inc. Selective proxying in domain name systems
WO2012061243A1 (en) * 2010-11-05 2012-05-10 Citrix Systems, Inc. Systems and methods for managing domain name system security (dnssec)
WO2012063099A1 (en) * 2010-11-08 2012-05-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for enabling dns redirection in mobile telecommunication systems
US8468222B2 (en) * 2010-11-16 2013-06-18 Edgecast Networks, Inc. Discrete mapping for targeted caching
WO2012065641A1 (en) * 2010-11-17 2012-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Dns server arrangement and method
US8671221B2 (en) * 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
WO2012094675A2 (en) * 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US9059884B2 (en) * 2011-01-20 2015-06-16 Openwave Mobility, Inc. Routing of IP traffic directed at domain names using DNS redirection
US20120271945A1 (en) * 2011-04-20 2012-10-25 Microsoft Corporation Obtaining Server Address when Domain Name System Proxy Solution Fails
US8798028B2 (en) * 2011-05-16 2014-08-05 Futurewei Technologies, Inc. System, apparatus, and method for distributed home agents in a mobile IP environment
US9088415B2 (en) * 2011-08-03 2015-07-21 Cisco Technology, Inc. Authentication of cache DNS server responses
US9973590B2 (en) * 2011-11-26 2018-05-15 Bing Wu User identity differentiated DNS resolution
US8824299B1 (en) * 2014-02-28 2014-09-02 tw telecom holdings, inc. Selecting network services based on hostname

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20150213131A1 (en) * 2004-10-29 2015-07-30 Go Daddy Operating Company, LLC Domain name searching with reputation rating
US8898773B2 (en) * 2006-03-20 2014-11-25 Nixu Software Oy Applianced domain name server
US8862735B1 (en) * 2006-12-05 2014-10-14 Aol Inc. IP address management of multiple DHCP and DNS servers
US9197486B2 (en) * 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
US9225794B2 (en) * 2009-03-31 2015-12-29 Google Inc. Adaptive DNS pre-resolution
US9270646B2 (en) * 2009-04-20 2016-02-23 Citrix Systems, Inc. Systems and methods for generating a DNS query to improve resistance against a DNS attack
US8924519B2 (en) * 2009-11-03 2014-12-30 Microsoft Corporation Automated DNS configuration with local DNS server
US9015318B1 (en) * 2009-11-18 2015-04-21 Cisco Technology, Inc. System and method for inspecting domain name system flows in a network environment
US20190394298A1 (en) * 2010-04-01 2019-12-26 Cloudflare, Inc. Internet-based proxy service for responding to server offline errors
US9053320B2 (en) * 2010-04-20 2015-06-09 Verisign, Inc Method of and apparatus for identifying requestors of machine-generated requests to resolve a textual identifier
US20180351777A1 (en) * 2010-09-16 2018-12-06 Google Inc. Trustworthy Provisioning of DNS Resolutions Within Web Content
US9712484B1 (en) * 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9906488B2 (en) * 2010-10-26 2018-02-27 Cedexis, Inc. Surrogate name delivery network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238499A1 (en) * 2015-10-13 2019-08-01 At&T Intellectual Property I, L.P. Method and apparatus for expedited domain name system query resolution
US10798050B2 (en) * 2015-10-13 2020-10-06 At&T Intellectual Property I, L.P. Method and apparatus for expedited domain name system query resolution
US11399005B2 (en) 2015-10-13 2022-07-26 At&T Intellectual Property I, L.P. Method and apparatus for expedited domain name system query resolution

Also Published As

Publication number Publication date
US20150256507A1 (en) 2015-09-10
US20180103007A1 (en) 2018-04-12
US9866523B2 (en) 2018-01-09
US20140143370A1 (en) 2014-05-22
US9515981B2 (en) 2016-12-06
US9043429B2 (en) 2015-05-26
US20120124239A1 (en) 2012-05-17
US10148612B2 (en) 2018-12-04
WO2012067862A1 (en) 2012-05-24
US20190081922A1 (en) 2019-03-14
US20170054681A1 (en) 2017-02-23
US8671221B2 (en) 2014-03-11

Similar Documents

Publication Publication Date Title
US10148612B2 (en) Method and system for increasing speed of domain name system resolution within a computing device
US11909639B2 (en) Request routing based on class
US11606388B2 (en) Method for minimizing the risk and exposure duration of improper or hijacked DNS records
EP2556438B1 (en) Reverse dns lookup with modified reverse mappings
JP5404766B2 (en) Method and system for requesting routing
JP4159337B2 (en) How to resolve virtual network names
US20210029076A1 (en) Methods and systems for implementing very large dns zones
US9264358B2 (en) Alias resource record sets
US9021129B2 (en) Request routing utilizing client location information
US7558880B2 (en) Dynamic DNS registration method, domain name solution method, DNS proxy server, and address translation device
US7970765B1 (en) Network device for providing integrated DNS caching services
US20070124487A1 (en) DNS server
US11438427B2 (en) Discovery of resources in a local network
CA2741895A1 (en) Request routing and updating routing information utilizing client location information
WO2001033364A1 (en) Device for searching name of communication node device in communication network
CN114866508B (en) Domain name resolution method, and domain name-based data processing method and device
STANDARD Media Device Control Discovery (MDCD)

Legal Events

Date Code Title Description
AS Assignment

Owner name: HOLA NEWCO LTD., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VILENSKI, OFER;SHRIBMAN, DERRY;REEL/FRAME:047498/0535

Effective date: 20181031

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: WEB SPARK LTD., ISRAEL

Free format text: CHANGE OF NAME;ASSIGNOR:HOLA NEWCO LTD.;REEL/FRAME:048119/0240

Effective date: 20180315

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION