Abstract:

Systems and methods are provided for resolving domain name services (DNS)
queries for address information about hosts on a network. The queries are
posited from remote users across a satellite or other remote link to a
network, and are monitored as they pass through a central node logically
present between the remote link and the network. A list of statistically
significant hosts on the network is maintained and transmitted from the
central node to the plurality of remote users across the remote link. By
providing the remote nodes with a current list of popular hosts and
associated address information, subsequent domain name services queries
placed for the statistically significant hosts may be resolved without
communicating across the remote link.

Claims:

1. A method of resolving a plurality of domain name services queries
posited from a plurality of remote users across a remote link to a
network, wherein each query requests address information about a host on
the network, the method comprising the steps of:monitoring the plurality
of domain name services queries as the queries pass through a central
node logically present between the remote link and the
network;maintaining a list of statistically significant hosts on the
network that are requested in the plurality of domain name services
queries; andtransmitting the list of statistically significant hosts from
the central node to the plurality of remote users across the remote link.

2. The method of claim 1 wherein the transmitting step allows subsequent
domain name services queries placed by each of the plurality of remote
users for the statistically significant hosts to be resolved without
communicating across the remote link.

3. The method of claim 1 wherein the transmitting step comprises
transmitting the list of statistically significant hosts to each the
plurality of remote users when that remote user is inactive.

4. The method of claim 1 wherein the transmitting step comprises
transmitting the list of statistically significant hosts to each the
plurality of remote users when the remote link is inactive.

5. The method of claim 1 wherein the transmitting step comprises
transmitting the list of statistically significant hosts to each of the
plurality of remote users when that remote user executes a startup
procedure.

7. The method of claim 6 wherein the updating is performed on a periodic
basis.

8. The method of claim 1 further comprising the step of processing the
plurality of domain name services queries to obtain the address
information about the hosts.

9. The method of claim 8 wherein the list of statistically significant
hosts is determined based upon a popularity of the hosts on the network.

10. The method of claim 9 wherein the maintaining step comprises updating
the address information for each of the hosts in the list of
statistically significant hosts.

11. A digital storage medium having computer-executable instructions
stored thereon, wherein the instructions are configure to execute the
method of claim 1.

12. A system for resolving domain name services queries posited from a
plurality of remote users across a remote link to a network, wherein each
query requests address information about a host on the network, the
system comprising:a domain name services module configured to obtain the
address information for the hosts identified in the plurality of domain
name services requests;a database of statistically significant hosts on
the network that are requested in the plurality of domain name services
queries, wherein the list comprises the address information obtained for
the statistically significant hosts; andan interface module configured to
transmit the database of statistically significant hosts to the plurality
of remote users across the remote link to thereby allow the remote users
to resolve subsequent domain name services requests relating to the
statistically significant hosts without traversing the remote link.

13. The system of claim 12 wherein the remote link is a satellite link.

14. The system of claim 13 wherein the interface module is an interface to
the satellite link.

15. A method of handling a domain name services query for address
information about an identified host residing across a remote link to a
network, the method comprising the steps of:receiving a list of
statistically significant hosts on the network;determining if the address
information about the host identified in the query is contained within
the list of statistically significant hosts;if the address information
about the host is contained in the list of statistically significant
hosts, resolving the domain name services query with the address
information contained in the list of statistically significant hosts, and
otherwise forwarding the domain name services query across the remote
link.

16. The method of claim 15 wherein the remote link is a satellite link.

17. The method of claim 15 further comprising the step of receiving an
updated list of statistically significant hosts via the remote link.

18. The method of claim 15 wherein the receiving step is performed when
the remote link is substantially idle.

19. The method of claim 15 wherein the receiving step is performed prior
to the receipt of the domain name services query.

20. A digital storage medium having computer-executable instructions
stored thereon, wherein the instructions are configure to execute the
method of claim 15.

Description:

TECHNICAL FIELD

[0001]The present invention generally relates to communications over a
digital network, and more particularly relates to systems and methods for
resolving domain name services (DNS) queries.

BACKGROUND

[0002]Usage of digital communications networks such as the Internet
continues to expand at a very rapid rate. One feature of the Internet
that has led to its widespread adoption is its convenience in identifying
destination hosts on the network. Computers generally address each other
using numeric addresses that can be expressed in binary, hexadecimal,
decimal or other numeric form. The well-known Internet Protocol (IP), for
example, identifies computers communicating on a network by a unique
four-byte address. These IP addresses are commonly expressed in human
terms as four decimal numbers separated by periods, e.g. "192.0.23.256".
These addresses, while useful to computers, are generally very difficult
for most humans to remember.

[0003]As a result, the domain name services (DNS) system has been
developed and widely deployed to map numerical addresses used by
computers to names that are more easily remembered by people. If a user
wishes to contact a particular host on the Internet (e.g.
"www.echostar.com"), for example, the user's computer contacts a DNS
server on the network to request the numeric address for that host (e.g.
"205.172.147.51"). The user's computer can then use the numeric address
to contact the relevant host on the network.

[0004]Although the Internet already links billions of users and nodes
worldwide, additional communications links are continually designed and
deployed into the marketplace. Satellite links, for example, have shown
great promise in providing access to communications networks in a
convenient wireless manner. Satellites are typically capable of
delivering very high data throughput levels across a wide service area
without requiring significant infrastructure (e.g. cables or land based
routers) to be in place. As a result, there is significant interest in
providing data access to the Internet or another network via satellite
links.

[0005]Satellite communications have a known disadvantage in inherent
latency. In the case of geo-synchronously orbiting satellites, for
example, the distance for the signal to travel into space and back to
earth can be significant, taking half a second or so to complete the
round-trip even at the speed of light. As a result of this inherent
feature in satellite communications, the user at the remote end of the
satellite connection can experience significant delays for certain tasks.
A conventional DNS query for an address of a remote host, for example,
typically involves transmitting a query to a DNS server across the
satellite link (250 ms) and receiving the reply from the DNS server
across the link (another 250 ms), thereby creating a delay of a half
second or so to complete the query. This delay time can be frustrating to
the end user.

[0006]It is therefore desirable to create systems and techniques for
efficiently resolving domain name services queries across satellite or
other links. These and other desirable features and characteristics will
become apparent from the subsequent detailed description and the appended
claims, taken in conjunction with the accompanying drawings and this
background section.

BRIEF SUMMARY

[0007]Various embodiments provide systems and methods for resolving domain
name services (DNS) queries for address information about hosts on a
network. The queries are posited from remote users across a satellite or
other remote link to a network, and are monitored as they pass through a
central node logically present between the remote link and the network. A
list of statistically significant hosts on the network is maintained and
transmitted from the central node to the plurality of remote users across
the remote link. By providing the remote nodes with a current list of
popular hosts and associated address information, subsequent domain name
services queries placed for the statistically significant hosts may be
locally resolved without communicating across the satellite or other
remote link.

[0008]Other embodiments relate to systems for resolving domain name
services queries posited from a plurality of remote users across a remote
link to a network, wherein each query requests address information about
a host on the network. The system includes a domain name services module
configured to obtain the address information for the hosts identified in
the plurality of domain name services requests. A database maintains a
list of the statistically significant hosts on the network that are
requested in the plurality of domain name services queries, as well as
the address information obtained for the statistically significant hosts.
An interface module transmits the database of statistically significant
hosts to the plurality of remote users across the remote link to thereby
allow the remote users to resolve subsequent domain name services
requests relating to the statistically significant hosts without
traversing the remote link.

[0009]Still other embodiments relate to methods of handling a domain name
services query for address information about an identified host residing
across a remote link to a network. A list of statistically significant
hosts on the network is received via the remote link. If the address
information about the host is contained in the list of statistically
significant hosts, the domain name services query is resolved with the
address information contained in the list of statistically significant
hosts. Otherwise, the domain name services query can be forwarded across
the remote link.

[0010]Other embodiments include computer program products and digital
storage media having computer-executable instructions stored thereon.
Various other embodiments, aspects and other features are described in
more detail below.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

[0011]Exemplary embodiments will hereinafter be described in conjunction
with the following drawing figures, wherein like numerals denote like
elements, and

[0012]FIG. 1 is a block diagram of an exemplary communications system;

[0014]FIG. 3 is a block diagram of an exemplary system for processing DNS
queries; and

[0015]FIG. 4 is a flowchart showing an exemplary technique for processing
a DNS query.

DETAILED DESCRIPTION

[0016]The following detailed description of the invention is merely
exemplary in nature and is not intended to limit the invention or the
application and uses of the invention. Furthermore, there is no intention
to be bound by any theory presented in the preceding background or the
following detailed description.

[0017]Various embodiments present systems, methods, computer program
products and other useful features for improving the performance of
domain name services (DNS) queries placed across a network link.
Generally speaking, clients communicating across a slow link are provided
with a listing of current DNS information for a statistically significant
group of hosts, such as the hosts that are most popular or otherwise most
likely to be queried. This information may be provided at any convenient
time, such as when the network link is relatively idle and/or at a time
when the client computer is relatively inactive. Using the list of
statistically significant DNS information, queries may be quickly
resolved locally, without requiring data to travel across a relatively
slow network link.

[0018]It should be appreciated at the outset that the techniques described
below may be particularly beneficial when used over network links known
to exhibit high latency, such as satellite links. In practice however,
the concepts, techniques and structures described herein may be readily
adapted to any type of data communication placed over any type of link,
including any sort of hardwired or wireless link used in conjunction with
any type of public, private, governmental, telephone and/or other network
system. To that end, the concepts proposed herein may be readily modified
as appropriate to suit any number of relevant preferences and parameters.
In particular, the exemplary data values and other parameters described
herein are strictly examples, and are not intended to limit the scope of
the inventions in any way. Various alternate but equivalent embodiments
may therefore be created, with any number of parameter values or factors
being selected, scaled or otherwise processed in any appropriate manner
different from the examples described herein.

[0019]Turning now to the drawing figures and with initial reference to
FIG. 1, an exemplary network communications system 100 suitably includes
a user/client node 102 communicating via a link 115 with a remote host
116 on network 114. DNS information is obtained from a DNS server 118
operating on network 114 to facilitate communications between client 102
and server 116 as appropriate.

[0020]Client node 102 is any computer, personal digital assistant,
telephone and/or other device capable of communicating with network 114
via link 115. Client node 102 may execute any conventional browser
application or other software as appropriate to establish communications
using an IP based protocol or the like. Multiple client nodes 102 may
share a single network link 115; user nodes and network links need not be
provided in one-to-one correspondence as shown in FIG. 1.

[0021]In various embodiments, client node 102 interacts with a client-side
router, gateway or other processor 104 that guides communications between
user node(s) 102 and link 115. In various embodiments, client processor
104 is a separate hardware device from host 102, although in other
embodiments client processor may be implemented in software or firmware
physically residing within host 102 or in any other location. Client-side
processor 104 suitably interacts with a modem or other transceiver
capable of linking to satellite 106 and/or otherwise providing
communications across link 115.

[0022]Generally speaking, a satellite 108 or similar link 115 has
sufficient capacity to process communications from multiple client
processors 104. Each link 115 generally couples to network 114 at a
network operations center (NOC) 113. NOC 113 includes any server 112 or
cluster of servers 112 capable of supporting communications with the
various client nodes 102 across link 115. NOC 113 typically includes any
number of "hub" server nodes 112 that communicate over link 115 via any
type of modem or other transceiver 110. NOC 113 may support links to
multiple satellites 108 and/or other links 115, as appropriate.

[0024]With primary reference now to FIG. 2, domain name services queries
can be made more efficient by compiling a list of network address
information associated with the sites queried by client node(s) 102.
Using a conventional DNS query technique 202, client 102 formulates an
appropriate DNS query packet 206 that is received at client processor
104. Client processor 104 forwards the request across link 115 as message
208, which is received at hub server 112 as appropriate. Hub server 112
then obtains the requested DNS information by placing a query 210 to an
appropriate DNS server 118 on network 114, and receiving an appropriate
response 212 containing the requested information. This information can
then be forwarded across link 115 (response message 214), and ultimately
delivered to the requesting node 102 as response 216.

[0025]In most embodiments, it is helpful to shield any non-standard
formatting associated with link 115 from host 102 and/or any hosts 116,
118 on network 114. That is, it may be beneficial in many implementations
for requests 206 and 210 to be placed in a standard DNS format, and for
response messages 212 and 216 to be received in standard formats. Domain
name services protocols used on common networks such as the Internet are
generally made public and are very well defined, for example in Internet
RFCs 1034 and 1035.

[0026]Communications between client processor 104 and hub server 112,
however, may be readily enhanced in any manner that improves usage of
link 115. In an exemplary process 204, DNS queries can be gathered (e.g.
at DNS module 220) and collected in any manner to form a list of most
popular (or otherwise statistically significant) hosts 116 on network
114. This list may be formed and maintained in any manner, as described
more fully below. The created list 226 can then be forwarded across link
115 to client processor 104, which suitably extracts the list (e.g. in
process 228) and uses the resulting information to provide subsequent
responses 232 to future DNS queries 230 received from client node 102. By
maintaining a copy of the list on the client side of link 115, the need
to traverse link 115 for every DNS request 208 and response 214 can be
avoided.

[0027]The list of statistically significant hosts 116 may be transmitted
on any temporal basis. In various embodiments, the list is compressed
and/or otherwise formatted for simultaneous (or near simultaneous)
broadcast to multiple client processors 104 in communication with a
particular satellite 108. The list may be sent when node 102 and/or
processor 104 are powered on or otherwise initialized. The list may be
sent in response to a request from client processor 104 and/or node 102.
In various embodiments, the list is transmitted when either client
processor 104 and/or hub server 112 identifies a period of relative
inactivity in link 115 and/or node 102. In such embodiments, the list can
be sent at a time that is relatively unnoticed by the user, further
improving the user experience. Moreover, the list may be updated at
regular or irregular intervals in any manner as appropriate.

[0028]Turning now to FIG. 3, an exemplary system 220 for handling DNS
queries from remote nodes 102 suitably includes a domain name services
module 304, a database 306, and any sort of client interface 302. System
220 suitably resides on any sort of hub server 112 or other computing
platform logically located at any centralized location (e.g. NOC 113) to
permit data communications with multiple clients over network link 115.

[0029]Interface 302 is any sort of hardware, software, logical and/or
other interface capable of handling communications with one or more
client processors 104. In various embodiments, interface 302 provides an
IP or other protocol interface as appropriate.

[0030]DNS module 304 is any hardware, software and/or other logic that
interacts with a DNS server 118 providing a repository of
hostname/address mappings for hosts on network 114. In various
embodiments, DNS module 304 is itself configured as a DNS server 118; in
other embodiments, module 304 communicates with a separate DNS server 118
on network 114 or elsewhere to obtain DNS information. In the later case,
module 304 transmits request messages 222 on network 114 to obtain DNS
information 224 in response to queries 303 received from interface 302.

[0031]As mentioned above, DNS information is maintained in a database or
other list 306 of statistically significant hosts so that the list of
most-commonly provided information can be forwarded to various client
processors 104. List 306, then, includes any sort of database, data
structure, data file or the like configured for storing address
information for a statistically significant group of hosts on network
114, along with a hostname or other identifier for each host. The list
306 may be updated on any convenient basis. In various embodiments, list
306 is updated at regular or semi-regular time intervals (e.g. hourly,
daily, etc.). In other embodiments, list 306 is updated as soon as DNS
module 304 identifies any changes in address information for any of the
hosts listed in list 306, or the like.

[0032]The hosts included within list 306 may be selected in any manner.
The most popular hosts on network 114 as determined in any manner, for
example, could make up a "statistically significant" group. In various
embodiments, the hosts on network 114 that are most commonly queried for
DNS information. The identification of the "most common queries" may be
determined locally (e.g. by DNS module 304 or logic associated with list
306) based upon actual queries posited by one or more client nodes over
any period of time. Alternatively, the "statistically significant" hosts
may be ascertained from public or private data assembled with regard to
network 114 (e.g. any list of most common network hosts as determined by
search engine queries, advertising revenues, network carrier data and/or
any other metrics as appropriate). In particular, it is not necessary
that the "statistically significant" hosts be determined solely from
local data, although some embodiments may operate in precisely this
manner. Other factors that may be considered in determining which hosts
are "statistically significant" could include such factors as relevance
to prior queries, repetitive time based popularity, other related
addresses to the authoritative domain addresses, and/or the like

[0033]As noted above, the list 306 of statistically significant hosts may
be forwarded (message 308) to the various client processors 104 in any
manner. In various embodiments, list 306 is sent via client interface 302
at a time that is convenient with respect to link 115. List 306 may be
sent as client processor 104 is starting up, for example, or at any time
in which client node 102, client processor 104 and/or link 115 is
relatively inactive. By providing a list of statistically significant
hostnames at a time that is convenient to the user, the DNS process can
be made more efficient for the end user. That is, the user at node 102 is
able to locally process the statistically significant DNS queries without
resorting to communications across link 115.

[0034]FIG. 4, for example, shows an exemplary process 400 that could be
executed within a client processor 104 or other node that is on the same
side of link 115 as the requesting client node 102. With reference to
FIG. 4, the list is received at any convenient time (step 402). At any
subsequent time, received queries (step 404) can be resolved by first
determining if the queried information is contained within list 306 (step
406). If so, the information can be locally retrieved from the list (step
408) without resorting to communication across link 115. Otherwise, a DNS
request 208 can be sent across link 115 (step 410), in accordance with
process 202 described above. In either case, a reply message 216/232
(step 412) is sent to the requesting node, thereby allowing for
subsequent operation on network 114 over link 115.

[0035]While the foregoing detailed description will provide those skilled
in the art with a convenient road map for implementing various
embodiments of the invention, it should be appreciated that the
particular embodiments described above are only examples, and are not
intended to limit the scope, applicability, or configuration of the
invention in any way. To the contrary, various changes may be made in the
functions and arrangements of the various elements described without
departing from the scope of the invention.