Domain Name Servers (DNS) translate domain names such as google.com into Internet Protocol (IP) numerical addresses such as 64.233.161.147. DNS servers typically reside on a remote network. When a user of a client computer needs to retrieve content from a remote web server, the user types the domain name in a browser's address bar, and presses the enter key. The client computer sends a request to the DNS server to return an IP address associated with the domain name. The DNS server replies with the IP address. Using the IP address, the client computer generates a request for the content from the remote web server. The remote web server returns the content to the client computer. The IP address is temporarily cached by the browser so that when the same domain name is requested in the future, the IP address is already known by the browser, so the browser can make future requests without first having to consult with the DNS server to obtain the IP address.
If there is a problem with the network, the translation request to the DNS server will not succeed. Generally, the network status is not available to the client computer, so it is not possible to distinguish between a non-functional network, and a slow response from the DNS server on a functional network. In such cases, browsers typically wait for a period of time and send repeated DNS requests. If the waiting and repeated requests fail to elicit a response from the DNS server in a specified period of time, the browser concludes that something is wrong with the network, times out, and displays an error message.
Likewise, if the browser is using a cached IP address, and there is a problem with the network, the browser cannot distinguish between a non-functional network and a slow response from the remote web server. In such cases, the browser waits for a period of time to receive a response, before timing out and displaying an error message.
I
The user's Internet access is dependent upon an active link between the personal hotspot and an active link between the cellular telephone and the Internet. Typically, a user accesses the Internet using a browser. A conventional browser, when connected to the personal hotspot, cannot efficiently or accurately detect and inform a user of a link fault between the personal hotspot and the cellular telephone or a link fault between the cellular telephone and the Internet. When a browser makes a request to a DNS server for an IP address or to a remote web server for content, the browser typically is not equipped to determine the difference between a slow response and a link fault. A browser typically waits for a period of time and sends repeated DNS or content requests. If the waiting and repeated requests fail to elicit a response from the DNS server or remote web server within a specified period of time, the browser concludes that something is wrong with the network, times out, and displays an error message. Various embodiment embodiments operate to more efficiently inform a user of link faults.
E
Local link 18 interconnects personal hotspot 10 and client devices 12, 14, 16. Local link 18 represents generally a cable, wireless, or remote link via a telecommunication link, an infrared link, a radio frequency link, or any other connector or system that provides electronic communication between devices 10, 12, 14, and 16. The path followed by link 18 between devices 10, 12, 14, and 16 in the schematic view of
Environment 1 also includes data exchanger 20, web sites 22, 24, and 26, Remote DNS server 54, and remote link 30. Data exchanger (20) represents generally and combination of hardware and/or programming that can be utilized by personal hotspot 10 to connect to a remote network such as the Internet. Examples include but are not limited to Internet enabled cellular telephones, DSL modems, and cable modems. Web sites 22, 24, and 26 represent generally any web sites equipped to serve content at the request of a computing device such as client devices 12, 14, and 16. Remote DNS server 54 represents generally any network service capable of translating domain names into IP addresses on request.
Remote link 30 interconnects data exchanger 20, websites 22, 24, and 26, and Remote DNS server 54. Remote link 30 represents generally any combination of a cable, wireless, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or any other connector or system that provides electronic communication between devices 20, 22, 24, 26, and 28. Remote link 30 may represent an intranet, an Internet, or a combination of both. The path followed by remote link 30 between devices 20, 22, 24, 26, and 28 in the schematic view of
In the embodiment illustrated in environment 1, device link 32 interconnects personal hotspot 10 and data exchanger. Device link 32 represents generally any combination of a cable, wireless, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or any other connector or system that provides electronic communication between devices 10 and 20. As examples, device link 32 may incorporate a physical cable or radio waves carrying Bluetooth communications.
Looking at
Communication between client devices 12, 14, and 16 and remote devices such as remote DNS server 54 and websites 22, 24, and 26 is dependent upon local link 18, device link 32, and remote link 30. Typically, applications such as browsers operating on client devices 12, 14, and 16 can detect a fault in local link 18 because communication with personal hotspot 10 will not be possible. However, such applications will not be able to identify faults in device link 32 and remote link 30. As will be discussed below with respect to
Viewing the environment 2 in
P
In the example of
Personal hotspot 10 also includes DNS database 48, connector 50, link monitor 52, router 54, activity monitor 56, DNS server 58, and web server 60. DNS database 48 represents generally any memory configured to store DNS translation data, that is, a listing of IP addresses and an associated domain name for each. DNS database 48 may initially contain a set of default IP addresses and corresponding domain names. Later, based on user activity, it may be desirable to add to that default set or to replace certain items in that set.
Connector 50 represents generally any combination of hardware and/or programming for sending a signal to data exchanger 20 to connect to the Internet. For example, where a data exchanger 20 is a cellular telephone, connector 50 may send a signal causing the cellular telephone to establish a data link to the Internet.
Router 52 represents generally any combination of hardware and/or programming for routing outbound network communication received through network interface 42 to be transmitted by data exchanger 20 to a remote network. Router 52 is also responsible for routing inbound network communications received from the remote network and directed via network interface 42 to a specified client device 12, 14, or 16. Outbound and inbound network communications, for example can be an IP (internet Protocol) packets directed to a target on a remote network or to a particular network device on the local area network.
Embedded DNS server 54 represents generally a combination of hardware and/or programming embedded in personal hotspot 10. Embedded DNS server 54 is responsible for translating domain names into IP addresses. When a user of a client device 12, 14, or 16 desires to retrieve content from a website 22, 24, or 26, the user types the domain name in a browser's address bar, and presses the enter key. The client device 12, 14, or 16 sends a request to embedded DNS server 54 to return an IP address associated with the domain name. Embedded DNS server 54 determines if it is able to translate the domain name. For example, embedded DNS server 54 determines if an IP address associated with the domain name can be found in DNS database 48. If so, embedded DNS server 54 obtains the associated IP address and returns it to the requesting client device 12, 14, or 16. If a link fault exists and the requested domain name cannot be translated, embedded DNS server returns a local address for personal hotspot 10.
In one embodiment, local translation using embedded DNS server 54 occurs only when a link fault exists. In other embodiments remote DNS server 28 is used only when necessary, that is, when embedded DNS server 58 is not able to translate a particular domain name.
Activity monitor 56 represents generally any combination of hardware and/or programming capable of monitor outbound network request activity of client devices 12, 14, and 16. Activity monitor 56 is also responsible for updating DNS database 48 according to the monitored activity. The memory available for DNS database 48 is limited, so DNS database 48 cannot store all the data needed to translate every possible domain name. In fact, DNS database 48 can only store information for limited number of domain names. As noted above, personal hotspot may be used to access a wide variety of web sites having domain names not represented in DNS database 48. Activity monitor 56 is responsible for generating activity data representing information concerning domain names and IP addresses requested by client devices 12, 14, and 16 that are not represented in DNS database 48. For each such domain name or IP address, activity monitor 56 may record the number of times each site has been visited in a given period. This activity information can then be used to update the DNS database 48 to include additional IP addresses and domain names based on user activity. Where memory availability is a concern, the activity information could be used to replace IP addresses and domain names that are not being used or are of an otherwise low priority indicated by user activity.
Web server 58 represents generally any combination of hardware and/or programming capable of serving an interface such as a web page to client devices 12, 14, and 16. Such web pages may include error messages, instructions, and various user accessible controls for selecting configuration settings related to the operation of personal hotspot 10.
Link monitor 60 represents generally any combination of hardware and/or programming capable of identifying a link status for personal hotspot 10. The link status is information that can be used by router 52 to determine the existence of faults in device link 32 and remote link 30. Where a fault exists, router 52 can cause web server 58 to return link fault content to a source of a communication that would otherwise be routed to a remote network. The link fault content, for example, can be a web page containing data identifying the nature of the fault and any instructions for correcting the fault.
In the Example of
Using the identification information received to establish device link 32, personal hotspot 10 can identify a particular set of commands supported by data exchanger 20. With that information connector 50 can issue a command for data exchanger 20 to connect to the Internet via remote link 30. Data exchanger 20 responds with an indication of a success or failure to connect. Upon receiving a failure to connect response, link monitor 60 can determine that a remote link fault exists. Moreover, data exchangers such as internet enabled cellular telephones are typically aware if they are in a cellular coverage area, and if so, what kind of service is available, including the type of data service. Such devices can also identify when connections drop out. This status information has traditionally been displayed to the user through the cellular telephone's user interface. However, the same status information can be obtained by link monitor 60 via device link 32 to identify the existence of a remote link fault.
O
Starting with
For example, activity monitor 56 may determine that the domain name provided in the DNS request has been requested before and based on some predetermined criteria can be considered a popular domain with respect to client devices 12, 14, and 16. As such, activity monitor may update DNS database 48 to include that domain name and its corresponding IP address returned from remote DNS server 28. In other words, step 70 may be accomplished based on an evaluation of the domain name in a DNS request routed in step 68, a translated address returned from remote DNS server 28, and previously monitored network request activity received from client devices 12, 14, and 16.
Where, in step 66, it is determined that a connection is not possible, the DNS request is instead routed to a locally embedded DNS server such as embedded DNS server 54 shown in
In this manner, when a client device 12, 14, or 16 communicates a DNS request, that client device receives a prompt response providing the requested IP address or an alternate IP address even in the presence of a link fault. The client device 12, 14, or 16 need not send repeated DNS requests that ultimately result in a time-out response.
Moving to
If the IP request is not for a local address, a link status is then identified (step 84). A link status is an indication of whether or not a connection can be made between personal hotspot 10 and the Internet. When connection is not possible, a link fault exists. Step 84, for example, may be performed by link monitor 60. In the Example of
If no device link fault exists, it is determined if a remote link fault exists (Step 90). If so, remote link fault content is returned (step 92). For example, where link monitor 60 identifies a remote link fault, link monitor 60 causes web server 58 to return a web page containing content explaining the fault and providing guidance for correcting the fault. Where data exchanger is a cellular telephone, a remote fault may exist when the cellular telephone is in a non-transmission mode often referred to as “Flight Mode” allowing the phone to be used during commercial airline flights. A remote fault can also exist when the cellular telephone is out of a coverage area for cellular data service or if the cellular telephone does not have an active data plan. The returned web page may contain information identifying the possible causes of the remote link fault as well as suggested solutions.
In the absence of a device link fault and remote link fault, the request for content is routed to its intended recipient (step 94). Based on this outbound activity and previously monitored personal hotspot activity, DNS database 48 may be updated (step 70). For example, activity monitor 56 may determine that the IP address provided in the DNS request has been requested before and based on some predetermined criteria can be considered a popular address with respect to client devices 12, 14, and 16. As such, activity monitor may update DNS database 48 to include that IP address and its corresponding domain name.
C
Also, the present invention can be embodied in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable compact disc.
Although the flow diagrams of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.
This application claims the priority of provisional applications No. 60/772,783 entitled Embedded DNS Server filed Feb. 13, 2006 and hereby incorporated by reference. Application No. 60/722,783 is incorporated herein by reference. This application is a continuation in part of application Ser. No. 10/936,124 entitled Device Cradle filed Sep. 8, 2004. application Ser. No. 10/936,124 is incorporated herein by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5594946 | Menich et al. | Jan 1997 | A |
| 5859628 | Ross et al. | Jan 1999 | A |
| 6028848 | Bhatia et al. | Feb 2000 | A |
| 6031844 | Lin | Feb 2000 | A |
| 6094659 | Bhatia | Jul 2000 | A |
| 6377825 | Kennedy et al. | Apr 2002 | B1 |
| 6389462 | Cohen et al. | May 2002 | B1 |
| 6434187 | Beard et al. | Aug 2002 | B1 |
| 6535592 | Snelgrove | Mar 2003 | B1 |
| 6560442 | Yost et al. | May 2003 | B1 |
| 6609197 | Ketcham et al. | Aug 2003 | B1 |
| 6611861 | Schairer et al. | Aug 2003 | B1 |
| 6615262 | Schweitzer et al. | Sep 2003 | B2 |
| 6735447 | Muller | May 2004 | B1 |
| 6795700 | Karaoguz et al. | Sep 2004 | B2 |
| 6850495 | Baum et al. | Feb 2005 | B1 |
| 6862444 | Karaoguz et al. | Mar 2005 | B2 |
| 6885859 | Karaoguz et al. | Apr 2005 | B2 |
| 6967958 | Ono et al. | Nov 2005 | B2 |
| 7009941 | Uchino | Mar 2006 | B1 |
| 7187923 | Mousseau et al. | Mar 2007 | B2 |
| 7213478 | Harada et al. | May 2007 | B2 |
| 7346344 | Fontaine | Mar 2008 | B2 |
| 7382771 | Leblanc et al. | Jun 2008 | B2 |
| 7400903 | Shoemake et al. | Jul 2008 | B2 |
| 7421265 | Liu | Sep 2008 | B1 |
| 7617317 | Jones et al. | Nov 2009 | B2 |
| 7620065 | Falardeau | Nov 2009 | B2 |
| 7693976 | Perry et al. | Apr 2010 | B2 |
| 7764784 | Sewall | Jul 2010 | B2 |
| 20010039580 | Walker et al. | Nov 2001 | A1 |
| 20010042215 | Sullivan et al. | Nov 2001 | A1 |
| 20010046870 | Stilp et al. | Nov 2001 | A1 |
| 20020025832 | Durian et al. | Feb 2002 | A1 |
| 20020062372 | Hong et al. | May 2002 | A1 |
| 20020118663 | Dorenbosch et al. | Aug 2002 | A1 |
| 20030037165 | Shinomiya | Feb 2003 | A1 |
| 20030043755 | Mitchell | Mar 2003 | A1 |
| 20030045295 | Stanforth | Mar 2003 | A1 |
| 20030046396 | Richter et al. | Mar 2003 | A1 |
| 20030059005 | Meyerson et al. | Mar 2003 | A1 |
| 20030126252 | Abir | Jul 2003 | A1 |
| 20030200308 | Tameda et al. | Oct 2003 | A1 |
| 20030235175 | Naghian et al. | Dec 2003 | A1 |
| 20040038697 | Attar et al. | Feb 2004 | A1 |
| 20040049576 | Schweitzer et al. | Mar 2004 | A1 |
| 20040110544 | Oyagi et al. | Jun 2004 | A1 |
| 20040133689 | Vasisht | Jul 2004 | A1 |
| 20040133793 | Ginter et al. | Jul 2004 | A1 |
| 20040139170 | Shen et al. | Jul 2004 | A1 |
| 20040152449 | Koshihara | Aug 2004 | A1 |
| 20040153676 | Krantz et al. | Aug 2004 | A1 |
| 20040185876 | Groenendaal et al. | Sep 2004 | A1 |
| 20040205154 | Dalton et al. | Oct 2004 | A1 |
| 20040218544 | Lee | Nov 2004 | A1 |
| 20050014525 | Tsunehara et al. | Jan 2005 | A1 |
| 20050022013 | Schwenk | Jan 2005 | A1 |
| 20050101340 | Archiable | May 2005 | A1 |
| 20050108573 | Bennett et al. | May 2005 | A1 |
| 20050221850 | Kashiwase | Oct 2005 | A1 |
| 20050233728 | Karaoguz et al. | Oct 2005 | A1 |
| 20050245233 | Anderson | Nov 2005 | A1 |
| 20050246434 | Bantz et al. | Nov 2005 | A1 |
| 20050259645 | Chen et al. | Nov 2005 | A1 |
| 20050259654 | Faulk | Nov 2005 | A1 |
| 20050262248 | Jennings, III et al. | Nov 2005 | A1 |
| 20050267965 | Heller | Dec 2005 | A1 |
| 20060047823 | Cheng | Mar 2006 | A1 |
| 20060072474 | Mitchell | Apr 2006 | A1 |
| 20060077607 | Henricks et al. | Apr 2006 | A1 |
| 20060133582 | McCulloch | Jun 2006 | A1 |
| 20060153216 | Hosein et al. | Jul 2006 | A1 |
| 20060171402 | Moore et al. | Aug 2006 | A1 |
| 20060184670 | Beeson et al. | Aug 2006 | A1 |
| 20060187890 | Lin | Aug 2006 | A1 |
| 20070002846 | Rada et al. | Jan 2007 | A1 |
| 20070030857 | Fulknier et al. | Feb 2007 | A1 |
| 20070081469 | Tracy et al. | Apr 2007 | A1 |
| 20070083606 | Malik et al. | Apr 2007 | A1 |
| 20070147324 | McGary | Jun 2007 | A1 |
| 20070153689 | Strub et al. | Jul 2007 | A1 |
| 20070254727 | Sewall et al. | Nov 2007 | A1 |
| 20070291711 | Welch et al. | Dec 2007 | A1 |
| 20080005108 | Ozzie et al. | Jan 2008 | A1 |
| 20080008165 | Ikeda et al. | Jan 2008 | A1 |
| 20080039102 | Sewall et al. | Feb 2008 | A1 |
| 20080043673 | Johnson et al. | Feb 2008 | A1 |
| 20080049630 | Kozisek et al. | Feb 2008 | A1 |
| 20080117860 | Rodriguez et al. | May 2008 | A1 |
| 20080159167 | Ito et al. | Jul 2008 | A1 |
| 20080259841 | Deshpande | Oct 2008 | A1 |
| 20080291827 | Xiong et al. | Nov 2008 | A1 |
| 20080310407 | Sewall et al. | Dec 2008 | A1 |
| 20080313327 | Sewall et al. | Dec 2008 | A1 |
| 20090015419 | Sewall et al. | Jan 2009 | A1 |
| 20090129319 | Buddhikot et al. | May 2009 | A1 |
| 20090138447 | Kalavade | May 2009 | A1 |
| 20090147700 | Sewall et al. | Jun 2009 | A1 |
| 20090168789 | Wood et al. | Jul 2009 | A1 |
| 20090172658 | Wood et al. | Jul 2009 | A1 |
| 20090172796 | Wood et al. | Jul 2009 | A1 |
| 20090175285 | Wood et al. | Jul 2009 | A1 |
| 20090180395 | Wood et al. | Jul 2009 | A1 |
| 20090182845 | Johnson | Jul 2009 | A1 |
| 20100014415 | Moeller | Jan 2010 | A1 |
| 20100118846 | Moeller | May 2010 | A1 |
| 20100202450 | Ansari et al. | Aug 2010 | A1 |
| Number | Date | Country |
|---|---|---|
| 20010186565 | Jul 2001 | JP |
| 20040028099 | Apr 2004 | KR |
| Number | Date | Country | |
|---|---|---|---|
| 20070255848 A1 | Nov 2007 | US |
| Number | Date | Country | |
|---|---|---|---|
| 60772783 | Feb 2006 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 10936124 | Sep 2004 | US |
| Child | 11673973 | US |