WO2006068747A2 - Distributed domain name service - Google Patents

Distributed domain name service Download PDF

Info

Publication number
WO2006068747A2
WO2006068747A2 PCT/US2005/041966 US2005041966W WO2006068747A2 WO 2006068747 A2 WO2006068747 A2 WO 2006068747A2 US 2005041966 W US2005041966 W US 2005041966W WO 2006068747 A2 WO2006068747 A2 WO 2006068747A2
Authority
WO
WIPO (PCT)
Prior art keywords
node
address
client
server
dns
Prior art date
Application number
PCT/US2005/041966
Other languages
French (fr)
Other versions
WO2006068747A3 (en
Inventor
Anthony. R. Metke
Robert D. Logalbo
Aparna Pandey
Original Assignee
Motorola, Inc.
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 Motorola, Inc. filed Critical Motorola, Inc.
Priority to DE112005003194.2T priority Critical patent/DE112005003194B4/en
Publication of WO2006068747A2 publication Critical patent/WO2006068747A2/en
Publication of WO2006068747A3 publication Critical patent/WO2006068747A3/en

Links

Classifications

    • 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/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services

Definitions

  • the present invention relates generally to wireless communication systems and in particular to the field of distributed domain name service in a wireless network.
  • Autonomous ad-hoc networks are networks that do not have a connection to an infrastructure and as such do not have access to the services that an infrastructure provides, such as a server that provides domain name service (DNS).
  • DNS domain name service
  • IP Internet Protocol
  • DNS Internet Protocol
  • a DNS server Without access to a DNS server, existing IP applications in an ad-hoc network can not perform. Since modern communication is increasingly ad hoc and mobile, there is a need to provide DNS functionality for an ad hoc network. Accordingly, there exists a need for a method of providing DNS functionality for an ad hoc network.
  • FIG. 1 is an example of a simple block diagram illustrating a wireless communication system in accordance with some embodiments of the invention.
  • FIG. 2 is a message sequence illustrating a method for distributed DNS in accordance with some embodiments of the invention.
  • FIG. 3 is a flow chart for a function called by a node in the wireless communication system in accordance with some embodiments of the invention.
  • FIG. 4 is a flow chart for the functionality performed by a client in the wireless communication system in accordance with some embodiments of the invention.
  • FIG. 5 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention.
  • FIG. 6 is a message sequence illustrating a method for distributed DNS in accordance with some embodiments of the invention.
  • FIG. 7 is a flow chart for the functionality performed by a client in the wireless communication system in accordance with some embodiments of the invention.
  • FIG. 8 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention.
  • FIG. 9 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
  • a wireless communication system 100 illustratively includes a plurality of nodes connected by wireless communications links denoted by straight lines, e.g. 112.
  • the wireless communication system is an ad-hoc network comprising wireless communication devices forming a temporary network without the aid of any centralized administration or standard support services.
  • the nodes may be any suitable type of wireless communications device capable of communicating within an ad-hoc network, such as computers, personal data assistants (PDAs), etc. with wireless modems, as well as others, as will be appreciated by those of skill in the art. Certain of the nodes may also be connected to a fixed communications infrastructure, if desired.
  • node A 102 is referred to as a client and node B is referred to as a server.
  • the other nodes B 104, C 110, D 106, E 114 are referred to as intermediate nodes and forward communications from a client, e.g. node A 102, to a server, e.g. node F 108.
  • a client is an endpoint of a communication which initiates a request for service to a server where the server is the recipient of the request.
  • node A 102 is chosen as the client and node F 108 is chosen as the server; however, any other node in the wireless communication system 100 may be the client and any other node in the wireless communication system 100 may be the server.
  • a node e.g. node A 102
  • the node powers up and attempts to access the infrastructure (Block 302).
  • the node requests a network address.
  • the network address disclosed is an IP address, but as is known in the art, other types of network addresses may be substituted herein.
  • references to IP addresses are only references to embodiments of the present invention.
  • the node sends a Dynamic Host Host Configuration Protocol (DHCP) packet to a DHCP server. If a response to the DHCP packet is not received within a certain time period and/or within a certain number of attempts, then the node determines that DHCP failed. Having determined that DHCP failed, the node does not have an IP address for itself and assigns an IP address for itself (Block 304). As is known in the art, assigning the node an IP address can be performed a number of ways. For example, the IP address can be randomly chosen and if the node determines that another node in the wireless communication system
  • the node chooses another IP address. In any event, assigning the node an IP address may rely on knowledge of IP addresses that are not available for the node to use. Then, the node enters an autonomous ad-hoc mode where autonomous ad-hoc means that the node does not have access to the infrastructure (Block 306).
  • a first embodiment of a method for distributed DNS in the wireless communication system 100 will now be described with reference to the message sequence chart of FIG. 2 and the flow charts of FIGS. 4 and 5.
  • the client assigns itself an IP address, e.g. IP-c. (Block 204).
  • An application such as a web browser, is started on the client and the application requires access to a host where the host is known by a host name, such as server.com.
  • the application calls a function called gethostbyname (Block 206).
  • DNS services are provided by the infrastructure (Block 416). Otherwise, the client queries its hosts table for the desired host name (Block 404). If the desired host name is in the client's hosts table, then the corresponding IP address for the host name is returned to the application (Block 418). Otherwise, the client broadcasts a request message to receive a MAC address of the host.
  • the request message is termed a DNS route request (DNS-RREQ).
  • DNS-RREQ is broadcast in the wireless communication system and is sent to a neighboring node (Message 208, Block 408).
  • the DNS-RREQ is sent as a broadcast message from node to node until it finds the server, e.g. node F 108.
  • the protocol used to send the DNS-RREQ from node to node is based on the well known Ad-Hoc On Demand Distance Vector (AODV) protocol.
  • the DNS-RREQ includes the server's host name, e.g. server.com, and the IP address of the client. (Message 208)
  • the server has similarly attempted access to the infrastructure and requested an IP address by sending a DHCP packet to the DHCP server. If a response to the DHCP packet is not received within a certain time period, then the server determines that DHCP failed (Block 203).
  • the server Having determined that DHCP failed, the server does not have an IP address for itself and enters an autonomous ad-hoc mode where autonomous ad-hoc means that the server does not have access to the infrastructure.
  • the server assigns itself an IP address, e.g. IP-s (Block 205) similar to that followed by the client.
  • the server when the server receives the DNS-RREQ from the client (Message 208), it first checks to see if the DNS-RREQ is for it (Block 502). If it is not, then the request is handled by normal AODV processing (Block 510). Otherwise, the server decodes the DNS-RREQ for the client's host name and MAC address (Block 504) and performs a mapping of the client's name to the client's IP address (Blocks 210, 504). Then, server's hosts table is updated with the client's host name and IP address. Further, in one embodiment, an IP routing table at the server may be updated to indicate the existence of a host specific route to the client.
  • the client's IP address and MAC address are stored in the ARP cache.
  • the client's IP address and MAC address are stored in the address translation table (Blocks 210, 506).
  • the transmitter address is stored in the ad-hoc routing table as the next hop back to the client. For example, for the DNS-RREQ to be broadcast from node A 102 to node F 108, the transmitter address for the next hop back to the client may be node D 106.
  • the server's MAC address and host name is sent to the client in a response message.
  • the response message is termed a DNS route response (DNS-RREP) (Message 212, Block 508).
  • DNS-RREP DNS route response
  • the DNS-RREP is transmitted from node to node until it reaches the client, e.g. node A 102.
  • the protocol used to send the DNS-RREP from node to node is based on AODV.
  • the DNS-RREP includes the host IP address, e.g. 10.1.5.148 and the IEEE MAC address, e.g. AO 21 3F C8 D6 14.
  • the DNS-RREP is retransmitted to the server (Block 420) until a predetermined number of retries have been exhausted (Block 422).
  • the client receives the DNS-RREP, then the client processes it. Namely, the client updates its hosts table with the server's host name and IP address (Blocks 214, 412). In one embodiment, the client may update its IP routing table to indicate the existence of a host specific route to the server. The client updates the address resolution protocol (ARP) cache with the received MAC address (Blocks 214, 414). Further, the transmitter address from the DNS-RREP is stored in the ad-hoc routing table as the next hop back to the server.
  • ARP address resolution protocol
  • the transmitter address for the next hop back to the client may be node B 104.
  • the IP address of the server is returned by the gethostbyname function to the calling application. Knowing this information, the application can continue to function.
  • the client's IP routing table is used to route the packet at Layer 3. Further, the client's ARP cache is used to retrieve the server's MAC address ,and the client's ad-hoc routing table is used to determine the next hop to which the MAC layer frame will be forwarded (Block 218, Message 220).
  • the MAC layer frame is routed through the wireless communication system 100 using the routing information that was created by the ADOV function during the DNS -RREQ/DNS -RREP exchange, until the IP data packet is received by the server.
  • the destination IP address is processed (Block 222).
  • the server processes the packet normally (Block 226). That is, standard methods can be deployed at each layer of the OSI or ARPANET model and no special modifications are required to any of the functions defined by each layer.
  • the client receives the IP data packet, the client processes it (Block 230).
  • the sending and receiving of IP packets and/or MAC frames is handled as is known in the art. This is accomplished because the tables (e.g. the IP routing table, the ARP cache, and the ad-hoc routing table) necessary for sending and receiving IP packets and/or MAC frames are setup during the DNS-RERQ/DNS-RREP exchange.
  • a second embodiment of a method for distributed DNS in the wireless communication system 100 will now be described with reference to the message sequence chart of FIG. 6 and the flow charts of FIGS. 7 and 8.
  • the client assigns itself an IP address, e.g. IP-c. (Block 604).
  • An application such as a web browser, is started on the client and the application requires access to a host where the host is known by a host name, such as server.com.
  • the application calls a function called gethostbyname (Block 606).
  • DNS-RREQ DNS route request
  • AODV Ad-Hoc On Demand Distance Vector
  • the DNS-RREQ includes the host name, e.g. server.com.
  • the server has similarly attempted access to the infrastructure and requested an IP address by sending a DHCP packet to the DNS server. If a response to the DHCP packet is not received within a certain time period, then the server determines that DHCP failed (Block 603). Having determined that DHCP failed, the server does not have an IP address for itself and enters an autonomous ad-hoc mode where autonomous ad-hoc means that the server does not have access to the infrastructure. The server assigns itself an IP address, e.g. IP-s (Block 605) similar to that followed by the client. Continuing, when the server receives the DNS-RREQ from the client
  • Message 608 it first checks to see if the DNS-RREQ is for it (Block 802). If it is not, then the request is handled by AODV processing that is unmodified by an embodiment of the present invention (Block 810). Otherwise, the server decodes the DNS-RREQ for the client's host name and MAC address (Block 804). The server assigns to the client a local IP address and performs a mapping of the client's name to the client's IP address (Blocks 610, 804). As used herein, local means that only the node that has assigned the IP address requires the IP address for its local processing and the IP address does not have significance beyond the node that has assigned the address.
  • server's hosts table is updated with the client's host name and locally assigned IP address.
  • the client's locally assigned IP address may be stored in the server's IP routing table.
  • the client's EP address does not need to be stored in the server's D? routing table when the client's IP address is selected to be a part of the server's local subnet.
  • the client's D? address and MAC address are stored in the ARP cache.
  • the ad-hoc routing table is also updated with the MAC address of the node that transmitted the DNS-RREQ as the next hop back to the client.
  • the transmitter address for the next hop back to the client may be node D 106.
  • the client's IP address and MAC address are stored in the address translation table (Blocks 610, 806).
  • the server's MAC address and host name is sent to the client in a DNS route response (DNS-RREP) (Message 612, Block 808).
  • DNS-RREP DNS route response
  • the DNS- RREP is transmitted from node to node until it finds the client, e.g. node A 102.
  • the protocol used to send the DNS-RREP from node to node is called AODV.
  • the DNS-RREP includes the host D? address, e.g. 105.7.21.1 and the MAC address, e.g. 64 21 CA A4 FO DC.
  • the DNS-RREP is rebroadcast by the server (Block 720) until a predetermined number of retries have been exhausted (Block 722). If the client receives the DNS-RREP, then the client processes it. Namely, the client assigns a local IP address to the server, updates its hosts table with the server's locally assigned D? address and the server's host name (Blocks 614, 712). The client updates the address resolution protocol (ARP) cache with the received MAC address (Blocks 614, 714). The ad-hoc routing table is updated with the MAC address of the node which transmitted the DNS_RREP, as the next hop back to the server. Knowing the information in the IP routing table, the ARP cache, and the ad-hoc routing table, the application can continue to function.
  • ARP address resolution protocol
  • the client uses the server's locally assigned IP address to retrieve the server's MAC address from its ARP cache (Block 618) and transmits a MAC frame containing the IP packet.
  • the client no longer needs to have knowledge of the server's actual IP address to send an IP data packet to the server.
  • the MAC frame is routed through the wireless communication system 100 until the IP data packet is received by the server.
  • the destination IP address is checked to see if it is either multicast or equal to the IP address of the server (Blocks 904, 906). If it is, the server forwards the IP data packet to the network stack, e.g. IP stack, for processing.
  • the network stack e.g. IP stack
  • the server will check the Address Translation Table for the source MAC address of the received frame (Block 908). If the source MAC address is found in the Address Translation Table, the server substitutes the source IP address from the IP data packet with the IP address stored in the address translation table. The destination address in the IP data packet is substituted with the IP address of the interface on which the IP data packet was received (Blocks 910). Then the data packet is forwarded up to the IP stack which will process the packet (Block 912).
  • the server knows the client by the locally assigned IP address. When the server wishes to send a packet to the client, the server will retrieve the clients MAC address from the ARP cache. The server then transmits the frame to the next hop found in the ad-hoc routing table. Note that transmitted data packets are treated identically on the client and the server. Receive data packets are also treated identically on the client and the server. As is known in the art, the transmitted data packets are processed according to standard methods, and the received packets go through the address translation functions described above.
  • the distributed DNS described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the distributed DNS described herein.
  • the non-processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices.
  • these functions may be interpreted as steps of a method to perform distributed DNS.
  • some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic.
  • ASICs application specific integrated circuits

Abstract

Distributed DNS in a wireless communication network comprising broadcasting by a first node a request message to a second node is disclosed. The request message comprises a hostname of the second node. The first node forwards the request message to the second node through intermediate nodes in the wireless communication network and the second node transmits a response message to the first node. The response message comprises a MAC address of the second node.

Description

DISTRIBUTED DOMAIN NAME SERVICE
Field of the Invention
The present invention relates generally to wireless communication systems and in particular to the field of distributed domain name service in a wireless network.
Background
Autonomous ad-hoc networks are networks that do not have a connection to an infrastructure and as such do not have access to the services that an infrastructure provides, such as a server that provides domain name service (DNS). Existing
Internet Protocol (IP) based applications rely on a DNS server to function properly. Without access to a DNS server, existing IP applications in an ad-hoc network can not perform. Since modern communication is increasingly ad hoc and mobile, there is a need to provide DNS functionality for an ad hoc network. Accordingly, there exists a need for a method of providing DNS functionality for an ad hoc network.
Brief Description of the Figures
The present invention is illustrated by way of example and not limitation in the accompanying figures, in which like references indicate similar elements, and in which:
FIG. 1 is an example of a simple block diagram illustrating a wireless communication system in accordance with some embodiments of the invention.
FIG. 2 is a message sequence illustrating a method for distributed DNS in accordance with some embodiments of the invention.
FIG. 3 is a flow chart for a function called by a node in the wireless communication system in accordance with some embodiments of the invention.
FIG. 4 is a flow chart for the functionality performed by a client in the wireless communication system in accordance with some embodiments of the invention. FIG. 5 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention.
FIG. 6 is a message sequence illustrating a method for distributed DNS in accordance with some embodiments of the invention.
FIG. 7 is a flow chart for the functionality performed by a client in the wireless communication system in accordance with some embodiments of the invention.
FIG. 8 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention.
FIG. 9 is a flow chart for the functionality performed by a server in the wireless communication system in accordance with some embodiments of the invention. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
Detailed Description
Before describing in detail distributed DNS in accordance with the present invention, it should be observed that the present invention resides primarily in combinations of method steps and apparatus components related to distributed DNS. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises ...a" does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element. Referring to FIG. 1, a wireless communication system 100 according to the present invention illustratively includes a plurality of nodes connected by wireless communications links denoted by straight lines, e.g. 112. In an illustrative embodiment, the wireless communication system is an ad-hoc network comprising wireless communication devices forming a temporary network without the aid of any centralized administration or standard support services. The nodes may be any suitable type of wireless communications device capable of communicating within an ad-hoc network, such as computers, personal data assistants (PDAs), etc. with wireless modems, as well as others, as will be appreciated by those of skill in the art. Certain of the nodes may also be connected to a fixed communications infrastructure, if desired.
In FIG. 1, node A 102 is referred to as a client and node B is referred to as a server. The other nodes B 104, C 110, D 106, E 114 are referred to as intermediate nodes and forward communications from a client, e.g. node A 102, to a server, e.g. node F 108. A client is an endpoint of a communication which initiates a request for service to a server where the server is the recipient of the request. For purposes of illustration, node A 102 is chosen as the client and node F 108 is chosen as the server; however, any other node in the wireless communication system 100 may be the client and any other node in the wireless communication system 100 may be the server.
Referring to FIG. 3, initially, a node, e.g. node A 102, powers up and attempts to access the infrastructure (Block 302). During this power up process, the node requests a network address. As described herein, the network address disclosed is an IP address, but as is known in the art, other types of network addresses may be substituted herein. Thus, references to IP addresses are only references to embodiments of the present invention.
For example, in one embodiment, the node sends a Dynamic Host Host Configuration Protocol (DHCP) packet to a DHCP server. If a response to the DHCP packet is not received within a certain time period and/or within a certain number of attempts, then the node determines that DHCP failed. Having determined that DHCP failed, the node does not have an IP address for itself and assigns an IP address for itself (Block 304). As is known in the art, assigning the node an IP address can be performed a number of ways. For example, the IP address can be randomly chosen and if the node determines that another node in the wireless communication system
100 has the chosen IP address, then the node chooses another IP address. In any event, assigning the node an IP address may rely on knowledge of IP addresses that are not available for the node to use. Then, the node enters an autonomous ad-hoc mode where autonomous ad-hoc means that the node does not have access to the infrastructure (Block 306).
A first embodiment of a method for distributed DNS in the wireless communication system 100 will now be described with reference to the message sequence chart of FIG. 2 and the flow charts of FIGS. 4 and 5. Having determined that DHCP failed (Block 202) and set the mode of the client to autonomous ad-hoc mode, the client assigns itself an IP address, e.g. IP-c. (Block 204). An application, such as a web browser, is started on the client and the application requires access to a host where the host is known by a host name, such as server.com. The application calls a function called gethostbyname (Block 206). If the client is not in autonomous ad-hoc mode (Block 402), namely the node has access to the infrastructure, then DNS services are provided by the infrastructure (Block 416). Otherwise, the client queries its hosts table for the desired host name (Block 404). If the desired host name is in the client's hosts table, then the corresponding IP address for the host name is returned to the application (Block 418). Otherwise, the client broadcasts a request message to receive a MAC address of the host. In one embodiment, the request message is termed a DNS route request (DNS-RREQ). The DNS-RREQ is broadcast in the wireless communication system and is sent to a neighboring node (Message 208, Block 408). The DNS-RREQ is sent as a broadcast message from node to node until it finds the server, e.g. node F 108. In one embodiment, the protocol used to send the DNS-RREQ from node to node is based on the well known Ad-Hoc On Demand Distance Vector (AODV) protocol. In one embodiment, the DNS-RREQ includes the server's host name, e.g. server.com, and the IP address of the client. (Message 208) The server has similarly attempted access to the infrastructure and requested an IP address by sending a DHCP packet to the DHCP server. If a response to the DHCP packet is not received within a certain time period, then the server determines that DHCP failed (Block 203). Having determined that DHCP failed, the server does not have an IP address for itself and enters an autonomous ad-hoc mode where autonomous ad-hoc means that the server does not have access to the infrastructure. The server assigns itself an IP address, e.g. IP-s (Block 205) similar to that followed by the client.
Continuing, when the server receives the DNS-RREQ from the client (Message 208), it first checks to see if the DNS-RREQ is for it (Block 502). If it is not, then the request is handled by normal AODV processing (Block 510). Otherwise, the server decodes the DNS-RREQ for the client's host name and MAC address (Block 504) and performs a mapping of the client's name to the client's IP address (Blocks 210, 504). Then, server's hosts table is updated with the client's host name and IP address. Further, in one embodiment, an IP routing table at the server may be updated to indicate the existence of a host specific route to the client. Note, as is known in the art, updating the IP routing table at the server is not necessary when the client's IP address is selected to be part of the server's local subnet. The client's IP address and MAC address are stored in the ARP cache. The client's IP address and MAC address are stored in the address translation table (Blocks 210, 506). The transmitter address is stored in the ad-hoc routing table as the next hop back to the client. For example, for the DNS-RREQ to be broadcast from node A 102 to node F 108, the transmitter address for the next hop back to the client may be node D 106. Finally, the server's MAC address and host name is sent to the client in a response message. In one embodiment, the response message is termed a DNS route response (DNS-RREP) (Message 212, Block 508). The DNS-RREP is transmitted from node to node until it reaches the client, e.g. node A 102. In one embodiment, the protocol used to send the DNS-RREP from node to node is based on AODV. In one embodiment, the DNS-RREP includes the host IP address, e.g. 10.1.5.148 and the IEEE MAC address, e.g. AO 21 3F C8 D6 14.
If for some reason, the DNS-RREP is not receive within a predetermined time out period, then the DNS-RREQ is retransmitted to the server (Block 420) until a predetermined number of retries have been exhausted (Block 422). If the client receives the DNS-RREP, then the client processes it. Namely, the client updates its hosts table with the server's host name and IP address (Blocks 214, 412). In one embodiment, the client may update its IP routing table to indicate the existence of a host specific route to the server. The client updates the address resolution protocol (ARP) cache with the received MAC address (Blocks 214, 414). Further, the transmitter address from the DNS-RREP is stored in the ad-hoc routing table as the next hop back to the server. For example, for the DNS-RREP to be broadcast from node F 108 to node A 102, the transmitter address for the next hop back to the client may be node B 104. Finally the IP address of the server is returned by the gethostbyname function to the calling application. Knowing this information, the application can continue to function.
As is known in the art, when the client has an IP data packet to send to the server (Message 216), the client's IP routing table is used to route the packet at Layer 3. Further, the client's ARP cache is used to retrieve the server's MAC address ,and the client's ad-hoc routing table is used to determine the next hop to which the MAC layer frame will be forwarded (Block 218, Message 220). The MAC layer frame is routed through the wireless communication system 100 using the routing information that was created by the ADOV function during the DNS -RREQ/DNS -RREP exchange, until the IP data packet is received by the server. At the server, the destination IP address is processed (Block 222). When an IP data packet is sent back to the client (Messages 224, 228) the server processes the packet normally (Block 226). That is, standard methods can be deployed at each layer of the OSI or ARPANET model and no special modifications are required to any of the functions defined by each layer. Once the client receives the IP data packet, the client processes it (Block 230). To reiterate, in this first embodiment the sending and receiving of IP packets and/or MAC frames is handled as is known in the art. This is accomplished because the tables (e.g. the IP routing table, the ARP cache, and the ad-hoc routing table) necessary for sending and receiving IP packets and/or MAC frames are setup during the DNS-RERQ/DNS-RREP exchange.
A second embodiment of a method for distributed DNS in the wireless communication system 100 will now be described with reference to the message sequence chart of FIG. 6 and the flow charts of FIGS. 7 and 8. Having determined that DHCP failed (Block 602) and set the mode of the client to autonomous ad-hoc mode, the client assigns itself an IP address, e.g. IP-c. (Block 604). An application, such as a web browser, is started on the client and the application requires access to a host where the host is known by a host name, such as server.com. The application calls a function called gethostbyname (Block 606). If the client is not in autonomous ad-hoc mode (Block 702), namely the node has access to the infrastructure, then DNS services are provided by the infrastructure (Block 716). Otherwise, the client queries its hosts table for the desired host name (Block 704). If the desired host name is in the client's hosts table, then the corresponding IP address for the host name is returned to the application (Block 718). Otherwise, the client broadcasts a DNS route request (DNS-RREQ) to a neighboring node in the wireless communication system 100 (Message 608, Block 708). The DNS-RREQ is sent as a broadcast message from node to node until it finds the server, e.g. node F 108. In one embodiment, the protocol used to send the DNS-RREQ from node to node is called Ad-Hoc On Demand Distance Vector (AODV) protocol. In one embodiment, the DNS-RREQ includes the host name, e.g. server.com.
The server has similarly attempted access to the infrastructure and requested an IP address by sending a DHCP packet to the DNS server. If a response to the DHCP packet is not received within a certain time period, then the server determines that DHCP failed (Block 603). Having determined that DHCP failed, the server does not have an IP address for itself and enters an autonomous ad-hoc mode where autonomous ad-hoc means that the server does not have access to the infrastructure. The server assigns itself an IP address, e.g. IP-s (Block 605) similar to that followed by the client. Continuing, when the server receives the DNS-RREQ from the client
(Message 608), it first checks to see if the DNS-RREQ is for it (Block 802). If it is not, then the request is handled by AODV processing that is unmodified by an embodiment of the present invention (Block 810). Otherwise, the server decodes the DNS-RREQ for the client's host name and MAC address (Block 804). The server assigns to the client a local IP address and performs a mapping of the client's name to the client's IP address (Blocks 610, 804). As used herein, local means that only the node that has assigned the IP address requires the IP address for its local processing and the IP address does not have significance beyond the node that has assigned the address. Then, server's hosts table is updated with the client's host name and locally assigned IP address. The client's locally assigned IP address may be stored in the server's IP routing table. As is known in the art, the client's EP address does not need to be stored in the server's D? routing table when the client's IP address is selected to be a part of the server's local subnet. The client's D? address and MAC address are stored in the ARP cache. The ad-hoc routing table is also updated with the MAC address of the node that transmitted the DNS-RREQ as the next hop back to the client. For example, for the DNS-RREQ to be broadcast from node A 102 to node F 108, the transmitter address for the next hop back to the client may be node D 106. The client's IP address and MAC address are stored in the address translation table (Blocks 610, 806). Finally, the server's MAC address and host name is sent to the client in a DNS route response (DNS-RREP) (Message 612, Block 808). The DNS- RREP is transmitted from node to node until it finds the client, e.g. node A 102. In one embodiment, the protocol used to send the DNS-RREP from node to node is called AODV. In one embodiment, the DNS-RREP includes the host D? address, e.g. 105.7.21.1 and the MAC address, e.g. 64 21 CA A4 FO DC.
If for some reason, the DNS-RREP is not receive within a predetermined time out period, then the DNS-RREQ is rebroadcast by the server (Block 720) until a predetermined number of retries have been exhausted (Block 722). If the client receives the DNS-RREP, then the client processes it. Namely, the client assigns a local IP address to the server, updates its hosts table with the server's locally assigned D? address and the server's host name (Blocks 614, 712). The client updates the address resolution protocol (ARP) cache with the received MAC address (Blocks 614, 714). The ad-hoc routing table is updated with the MAC address of the node which transmitted the DNS_RREP, as the next hop back to the server. Knowing the information in the IP routing table, the ARP cache, and the ad-hoc routing table, the application can continue to function.
As is known in the art, when the client has an IP data packet to send to the server (Message 616), the client uses the server's locally assigned IP address to retrieve the server's MAC address from its ARP cache (Block 618) and transmits a MAC frame containing the IP packet. The client no longer needs to have knowledge of the server's actual IP address to send an IP data packet to the server. The MAC frame is routed through the wireless communication system 100 until the IP data packet is received by the server. At the server, the destination IP address is checked to see if it is either multicast or equal to the IP address of the server (Blocks 904, 906). If it is, the server forwards the IP data packet to the network stack, e.g. IP stack, for processing. Otherwise, the server will check the Address Translation Table for the source MAC address of the received frame (Block 908). If the source MAC address is found in the Address Translation Table, the server substitutes the source IP address from the IP data packet with the IP address stored in the address translation table. The destination address in the IP data packet is substituted with the IP address of the interface on which the IP data packet was received (Blocks 910). Then the data packet is forwarded up to the IP stack which will process the packet (Block 912).
The server knows the client by the locally assigned IP address. When the server wishes to send a packet to the client, the server will retrieve the clients MAC address from the ARP cache. The server then transmits the frame to the next hop found in the ad-hoc routing table. Note that transmitted data packets are treated identically on the client and the server. Receive data packets are also treated identically on the client and the server. As is known in the art, the transmitted data packets are processed according to standard methods, and the received packets go through the address translation functions described above.
It will be appreciated that the distributed DNS described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the distributed DNS described herein. The non-processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as steps of a method to perform distributed DNS. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. Thus, methods and means for these functions have been described herein. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time', current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
In the foregoing specification, the invention and its benefits and advantages have been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

Claims

ClaimsWe claim:
1. A method for distributed DNS in a wireless communication network comprising the steps of: broadcasting by a first node a request message to a second node wherein the request message comprises a hostname of the second node; forwarding the request message from the first node to the second node through intermediate nodes in the wireless communication network; and transmitting by the second node a response message to the first node wherein the response message comprises a MAC address of the second node.
2. The method of claim 1 wherein the request message is a modified AODV route request message.
3. The method of claim 1 further comprising the step of assigning by the second node a local network address of the first node to be stored at the second node.
4. The method of claim 3 further comprising the steps of: receiving at the second node a data packet by
(i) determining whether the first node's MAC address is in a address translation table of the second node; (ii) substituting a source network address from the data packet with the local network address of the first node, if it is found;
(ii) substituting a destination network address from the data packet with the second node's network address; and
(iii) passing the data packet to a network stack.
5. The method of claim 1 further comprising the step of assigning by the first node a local network address of the second node to be stored at the first node.
6. The method of claim 5 further comprising the steps of: receiving at the first node a data packet by
(i) determining whether the second node's MAC address is in a address translation table of the first node;
(ii) substituting a source network address from the data packet with the local network address of the second node, if it is found; (ii) substituting a destination network address from the data packet with the first node's network address; and
(iii) passing the data packet to a network stack.
7. A method for distributed DNS in an ad-hoc wireless communication network wherein the ad-hoc wireless communication network comprises a client, a server, and intermediate nodes between the client and the server, the method comprising the steps of: at the client: assigning an IP address to the client; broadcasting a request message to the ad-hoc wireless communication network wherein the request message comprises a hostname of the server, a hostname of the client and the client's assigned IP address; and receiving a response message wherein the response message comprises a MAC address of the server.
8. A method for distributed DNS in an ad-hoc wireless communication network wherein the ad-hoc wireless communication network comprises a client, a server, and intermediate nodes between the client and the server, the method comprising the steps of: at the client: broadcasting by a client a DNS-RREQ message to the ad-hoc wireless communication network wherein the DNS-RREQ message comprises a hostname of the server; and receiving a DNS-RREP message wherein the DNS-RREP message comprises a MAC address of the server.
9. The method of claim 7 further comprising the steps of: obtaining information about the server from the response message wherein the information comprises at least one of a host name, a MAC address, and an IP address; assigning a local IP address for the server to be stored in an address translation table at the client; and updating at least one table of the client's with the obtained information wherein the at least one table comprises at least one of a hosts table, IP routing table, a ARP cache, ad-hoc routing table, and address translation table.
10. The method of claim 7 further comprising the steps of : obtaining information about the client from the request message wherein the information comprises at least one of a host name, a MAC address, and an IP address; assigning a local IP address for the client to be stored in an address translation table at the server; and updating at least one table of the server's with the obtained information wherein the at least one table comprises at least one of a hosts table, IP routing table, a ARP cache, ad-hoc routing table, and address translation table.
PCT/US2005/041966 2004-12-21 2005-11-18 Distributed domain name service WO2006068747A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE112005003194.2T DE112005003194B4 (en) 2004-12-21 2005-11-18 Distributed Domain Name Service

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/018,301 US7562148B2 (en) 2004-12-21 2004-12-21 Distributed domain name service
US11/018,301 2004-12-21

Publications (2)

Publication Number Publication Date
WO2006068747A2 true WO2006068747A2 (en) 2006-06-29
WO2006068747A3 WO2006068747A3 (en) 2006-09-14

Family

ID=36596683

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/041966 WO2006068747A2 (en) 2004-12-21 2005-11-18 Distributed domain name service

Country Status (4)

Country Link
US (1) US7562148B2 (en)
KR (1) KR100987576B1 (en)
DE (1) DE112005003194B4 (en)
WO (1) WO2006068747A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562148B2 (en) 2004-12-21 2009-07-14 Motorola, Inc. Distributed domain name service

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7317918B2 (en) * 2004-07-19 2008-01-08 Motorola, Inc. Method for domain name service (DNS) in a wireless ad hoc network
JP4533227B2 (en) * 2005-04-25 2010-09-01 キヤノン株式会社 Data processing apparatus, registration method and program
KR101235582B1 (en) 2006-11-21 2013-02-21 삼성전자주식회사 Method for processing control message in wireless mesh network and apparatus thereof
EP2620130B1 (en) 2007-03-13 2016-07-06 Optimedica Corporation Intraocular lens providing improved placement
US8489637B2 (en) * 2009-11-19 2013-07-16 International Business Machines Corporation User-based DNS server access control
US8621086B2 (en) * 2010-03-24 2013-12-31 Alcatel Lucent System and domain name server for ad-hoc networks
US20120271945A1 (en) * 2011-04-20 2012-10-25 Microsoft Corporation Obtaining Server Address when Domain Name System Proxy Solution Fails
US20140173134A1 (en) * 2012-12-18 2014-06-19 Hughes Network Systems, Llc Method and system for optimized opportunistic transmission of domain name reference information
US9756549B2 (en) 2014-03-14 2017-09-05 goTenna Inc. System and method for digital communication between computing devices
US9479995B2 (en) * 2014-12-31 2016-10-25 Motorola Solutions, Inc. Methods and systems for maintaining routing tables in an ad-hoc wireless network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049561A1 (en) * 1998-12-23 2002-04-25 Garcia-Luna-Aceves J. Joaquin Unified routing scheme for ad-hoc internetworking
US20020087726A1 (en) * 2000-12-28 2002-07-04 Andrew Macpherson Locality-related internet services
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480508B1 (en) * 1999-05-12 2002-11-12 Westell, Inc. Router-based domain name system proxy agent using address translation
US6643707B1 (en) * 2000-02-14 2003-11-04 General Instrument Corporation Method and apparatus for defining, managing and distributing broadcast names
US20020133591A1 (en) * 2001-03-14 2002-09-19 Makarios Selene K. Method and apparatus for mapping of attributes to networked resources
US6847649B2 (en) * 2001-08-24 2005-01-25 Ericsson Inc. Methods, systems and computer program products for accessing an embedded web server on a broadband access terminal
JP3952860B2 (en) * 2002-05-30 2007-08-01 株式会社日立製作所 Protocol converter
US7937471B2 (en) * 2002-06-03 2011-05-03 Inpro Network Facility, Llc Creating a public identity for an entity on a network
JP4505454B2 (en) * 2003-06-06 2010-07-21 メッシュネットワークス インコーポレイテッド System and method for improving overall performance of a wireless communication network
JP4101140B2 (en) * 2003-09-16 2008-06-18 株式会社リコー Image processing apparatus, image processing system, name registration method, name registration program, and recording medium
US7468954B2 (en) * 2004-12-14 2008-12-23 Harris Corporation Mobile ad-hoc network providing expedited conglomerated broadcast message reply features and related methods
US7562148B2 (en) 2004-12-21 2009-07-14 Motorola, Inc. Distributed domain name service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049561A1 (en) * 1998-12-23 2002-04-25 Garcia-Luna-Aceves J. Joaquin Unified routing scheme for ad-hoc internetworking
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
US20020087726A1 (en) * 2000-12-28 2002-07-04 Andrew Macpherson Locality-related internet services

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562148B2 (en) 2004-12-21 2009-07-14 Motorola, Inc. Distributed domain name service

Also Published As

Publication number Publication date
KR20070097531A (en) 2007-10-04
US7562148B2 (en) 2009-07-14
DE112005003194B4 (en) 2017-10-26
DE112005003194T5 (en) 2008-02-14
KR100987576B1 (en) 2010-10-12
WO2006068747A3 (en) 2006-09-14
US20060135205A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
US10327228B2 (en) Scalable WLAN gateway
WO2006068747A2 (en) Distributed domain name service
EP2332290B1 (en) Scalable wlan gateway
US6970444B2 (en) System and method for self propagating information in ad-hoc peer-to-peer networks
US6728232B2 (en) System and method for auto-configuration and discovery of IP to MAC address mapping and gateway presence in wireless peer-to-peer ad-hoc routing networks
US6771666B2 (en) System and method for trans-medium address resolution on an ad-hoc network with at least one highly disconnected medium having multiple access points to other media
KR100568229B1 (en) A Method And System for Dynamically Refreshing ARP Cash Table on Ad-hoc Network
US20050107102A1 (en) Method of relaying connection requests between wireless devices in wireless network and apparatus therefor
KR20050079420A (en) Tunnelling sevice method and system thereof
TWI491231B (en) Proxy mechanism for mesh-type networks
EP1316186B1 (en) Allocating addresses to mobile stations
CN100459544C (en) Prefix delegation system and method of ad-hoc network
US20160218958A1 (en) Method and system for forwarding packet in id/locator separation environment
JP2008199091A (en) Communication system
US7433330B2 (en) Method and apparatus for sending IP multicast packets in a wireless communication system
JP2003309596A (en) Mobile communication network system, external agent router, address server and packet delivery method used for the same
JP4242752B2 (en) Address table management method and terminal
JP2006211347A (en) Radio communication system
JP4606391B2 (en) Access network, method for connecting to local network, mobile terminal, and program
KR100831982B1 (en) IPv6 Neighbor Discovery Support Method on Wireless Communications System

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1120050031942

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 1020077016794

Country of ref document: KR

122 Ep: pct application non-entry in european phase

Ref document number: 05824804

Country of ref document: EP

Kind code of ref document: A2

RET De translation (de og part 6b)

Ref document number: 112005003194

Country of ref document: DE

Date of ref document: 20080214

Kind code of ref document: P