Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
NETWORK ADDRESS PROTOCOL
Document Type and Number:
WIPO Patent Application WO/2013/055341
Kind Code:
A1
Abstract:
A computer apparatus and related method to obtain network addresses in a dual network is provided. In one aspect, a list of servers is sorted in an order based on a likelihood that each server therein is capable of obtaining the destination network address, the likelihood being partially based on whether the network address associated with each server in the list was generated with the protocol used to generate the originating network address of the entity making the request.

Inventors:
KOEHLER YANNICK (CA)
Application Number:
PCT/US2011/056105
Publication Date:
April 18, 2013
Filing Date:
October 13, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
KOEHLER YANNICK (CA)
International Classes:
H04L29/06
Foreign References:
US20110153831A12011-06-23
US7924832B22011-04-12
Other References:
P. MOCKAPETRIS: "Domain Names - Concepts and Facilities", IETF NETWORK WORKING GROUP, REQUEST FOR COMMENTS, vol. 1304, November 1997 (1997-11-01), pages 34 - 35, Retrieved from the Internet
R. DRAVES: "''Default Address Selection for Internet Protocol version 6(IPv6)", IETF NETWORK WORKING GROUP, REQUEST FOR COMMENTS, vol. 3484, February 2003 (2003-02-01), Retrieved from the Internet
Attorney, Agent or Firm:
SEGARRA, Roosevelt et al. (Intellectual Property Administration3404 E. Harmony Road,Mail Stop 3, Fort Collins Colorado, US)
Download PDF:
Claims:
CLAIMS

1. A com puter a ppa ratus :

at least one processor to:

receive a request from an entity for an accessible destination network address associated with a device on a network;

determine a protocoi used to generate an originating network address associated with the requesting entity;

sort a list of servers in an order based on a likelihood that each server therein is capabie of obtaining the accessible destination network address, the likelihood being partiaily based on whether a network address associated with each server in the list was generated with the protocol used to generate the originating network address; and

forward the request to each server of the list in the order in which the list was sorted.

2. The computer apparatus of claim 1 , wherein the protocol is internet protocol version four,

3. The computer apparatus of claim 2, wherein the protocoi is internet protocol version six.

4. The computer apparatus of claim 1, wherein the request comprises a field indicating the protocol used to generate the originating network address.

5. The computer apparatus of claim 4, wherein th at least one processor is a processor to use the field to determine the protocol used to generate the originating network address.

6. A computer readable medium having instructions stored therein which if executed causes at least one processor to; receive a request from an entity for an accessible destination network address associated with a device on a network;

determine a protocol used to generate an originating network address associated with the requesting entity;

sort a list of servers in a order based on a likelihood thai each server therein is capable of obtaining the accessible destination network address, the likelihood being partially based on whether a network address associated with each server in the list was generated with the protocol used to generate the originating network address; and

forward the request to each server of the list in the order in which the list was sorted,

7. The computer readable medium of claim 5, wherein the protocol is internet protocol version four.

8. The computer readable medium of claim 7, wherein the protocol is internet protocol version six.

9. The computer readable medium of claim 6, wherein the request comprises a field indicating the protocol used to generate the originating network address.

10. The computer readable medium of claim 9, wherein the instructions stored in the computer readable medium if executed further cause the at least one processor to use the field to determine the protocol used to generate the originating network address.

11. A method comprising:

receiving, using at least one processor, a request from an entity for an accessible destination network address associated with a device on a network;

determining, using the at least one processor, a protocol used to generate an originating network address associated with the requesting entity; sorting, using the at ieast one processor, a list of servers in an order based on a likelihood that each server therein is capable of obtaining the accessible destination network address, the likelihood being partialiy based on whether a network address associated with each sea¾r in the fist was generated with the protocol used to generate the originating network address; and

forwarding, using the at Ieast one processor, the request to each server of the list in the order in which the list was sorted.

12. The method of claim 11 , wherein the protocol is internet protocol version four.

13. The method of claim 12, wherein the protocol is internet protocol version six.

14. The method of claim 11 , wherein the request comprises a field indicating the protocol used to generate the originating network address.

15. The method of claim 14, further comprising determining, using the at least one processor, the protocol used to generate the originating network address by using the field provided in the request

Description:
NETWORK ADDRESS PROTOCOL

BACKGROUND

[0001] The Domain name system ("DNS") is utilized to provide meaningful domain names to devices connected to the Internet or a private network. DNS provides a hierarchy for translating domain names {e.g., "www, xampie.com") to a network address (e.g. , 127.0.0.1 ). The specification of the network address may comply with known protocols, such as internet protocol ("IP"). Each device on a network is typically associated with a unique network address so that data can be reliably transmitted thereto. IP version 4 {'IPv4") limits network addresses to 32 bits, which yields approximately four billion unique network addresses. Due to the explosive growth of devices on the internet, the Internet Engineering Task Force ("IETF") developed IP version 6 ("IPv6"). Network addresses compiiant with IPv6 are 128 bits in length, which yields approximately 2 128 (3.4 κ 10 ) unique addresses. BRIEF DESCRIPTION OF THE DRAWINGS

£00023 FIG. 1 is an illustrative system in accordance with aspects of the application,

[00031 FIG. 2 Is a close up illustration of a computer apparatus in accordance with aspects of the application.

£00043 FIG. 3 is a flow diagram in accordance with aspects of the application, £00051 FIG. 4 is a close up illustration of a relay server in accordance with aspects of the application.

[00063 FIG. 5 is a working example of DNS query routing in accordance with aspects of the application,

DETAILED DESCRIPTION

[00071 Man networks today are dual networks compliant with more than one addressing protocol. Such networks attempt to facilitate the transition from IPv4 to IPv6. While different solutions have been implemented to ease the transition, these solutions are not without difficulties and unforeseen consequences. Obtaining an accessible network address can be burdensome and time consuming when these solutions are employed.

[0008] Aspects of the disclosure provide a computer apparatus and method to enhance communications between computers or devices in a dual network. In one aspect, a request for an accessible destination network address associated with a device on a network may be received, in another aspect, the protocol used to generate an originating network address associated with the requesting entity may be determined. Sn yet a further aspect, a list of servers may be sorted based on the likeiihood that each server therein is capable of obtaining th accessible destination network address. The likelihood may be partially based on whether a network address associated with each server in the list was generated with the protocol used to generate the originating network address. The request may be forwarded to each server of the list in the order in which it was sorted.

[0009 J The aspects, features and advantages disclosed herein will be appreciated when considered with reference to the following description of examples and accompanying figures. The following description does not limit the disclosure; rather, the scope of the disclosure is defined by the appended claims and equivalents.

[00103 FIG. 1 presents a schematic diagram of an illustrative dual network system 100 depicting various computers used in a networked configuration. Each computer apparatus depicted in FIG. 1 may comprise any device capable of processing instructions and transmitting data to and from other computers. Furthermore, each computer apparatus may include ail the components normally used in connection with a computer. For example, each apparatus may have a keyboard, a mouse and/or various other types of input devices such as pen-inputs, joysticks, buttons, touch screens, etc., as well as a display, which could include, for instance, a CRT, LCD, plasma screen monitor, TV, projector, etc.

[OOiij Client 101 may be a computer apparatus, such as a desktop computer or a laptop computer. Alternatively, client 101 may be a mobile device capable of wirelessly exchanging data with a server, such as a mobile phone, a wireless- enabled PDA, or a tablet PC. Servers 114 and 126 may be a computer apparatus hosting one or more network applications, such as a website, or an enterprise business application accessible to client 101. Servers 1 14 and 126 may be a Hypertext Transport Protocol ("HTTP") server, a file server, a media server, a streaming media server or may comprise other modules to deliver network applications over the network environment. The computers or devices illustrated in FIG. 1 may be interconnected via networks 102, 106, and 118 each of which may be a local area network CLAN"), wide area network ("WAN"), the internet, etc. Networks 102, 106, and 118 may be implemented via one or more switches, hubs, bridges, wireless access points, and/or other network devices. The networks and intervening computer devices may use various protocols including cellular and wireless networks, instant messaging, HTTP and SMTP, and various combinations of the foregoing. Although only a few computers are depicted in FIG. 1 , it should be appreciated that networks typically include a large number of interconnected computers,

[0O12J Also shown in FIG. 1 are computer apparatus 110, 1 16, 1 12 120, 122, and 124, each of which may be configured as a DNS name server enabled to fully or partially resolve the network address of a domain name associated with a device on the network. A DNS server capable of fully resolving a DNS query is known as an authoritative DNS server. A recursive DNS server may resolve part of a domain name (e.g., ".com") and/or may forward the query to another server that is authoritative for the entire domain name (e.g., "www. exampSe.com"). For ease of illustration, the aforementioned DNS servers may be authoritative DNS servers that receive and resolve DNS queries generated by client 101 , which allows client 101 to locate and communicate with other computers or devices on the network.

100133 FIG. 2 is a close up illustration of relay server 104, which may be configured to forward DNS queries. Relay server 1 4 may have a memory 204 with instructions 206 stored therein. Instructions 206 may be retrieved and executed by a processor 202. In one example, memory 204 may be a random access memory ("RAM") device. Alternatively, memory 204 may comprise other types of devices, such as memory provided on floppy disk drives, tapes, and hard disk drives, or other storage devices that may be directly or indirectly coupled to relay server 104. The memory may also include any combination of one or more of the foregoing and/or other devices as well. The processor 202 may be any number of well known processors, such as processors from Intel® Corporation. In another example, the processor may be a dedicated controller for executing operations, such as an application specific integrated circuit ("ASIC"). [ 00143 Although F!G. 2 functionally illustrates the processor 202 and memory 204 as being within the same block, it will be understood that the processor and memory may actually comprise at least one or multiple processors and memories that may or may not be stored within the same physical housing. For example, any one of the memories may be a hard drive or other storage media located in a server farm of a data center. Accordingly, references to a processor, computer, or memor will be understood to include references to a collection of processors, computers, or memories that may or may not operate in parallel.

[ 0015] The instructions 206 may comprise any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor(s). In that regard, the terms "instructions," "modules" and " og ms ,* may be used interchangeably herein. The instructions may be stored in any computer language or format, such as in object code or modules of source code. Furthermore, it is understood that the instructions may be Implemented i the form of hardware, software, or a combination of hardware and software and that the examples herein are merely illustrative. In one example, instructions 206 may be part of an installation package that may be executed by processor 202. Here, memory 204 may be a portable medium such as a CD, DVD, o f!ash drive or a memory maintained by a server from which the installation package may be downloaded and installed. In another example, the instructions may be part of an application or applications already installed. In this example, memory 204 may include integrated memory such as a hard drive.

[0016 J A network address may be generated using different protocols. As noted above, IPv4 is one protocol that provides a specification for network addresses. IPv6 was developed to deal with the shortage of unique network addresses, due to the explosive growth of network-enabled devices. An authoritative IPv4 DNS server may contain a table of "A" records that associate a domain name with an IPv4 address. An authoritative IPv6 DNS server may contain a table of "AAAA" records that associate a domain name with an iPv8 address. Such DNS servers may apply the received DNS queries against these tables to obtain the sought after network address. [ 00173 In the example of FIG. 1, network 106 is an IPv6 network and DNS servers 110, 116, and 1 12 may be configured to resolve IPv6 addresses. Server 1 14 may be a server associated with an IPv6 network address resolvabl by DNS servers 110, 116, or 112 with "AAAA" DNS records. Network 1 8 may be an IPv4 network and server 26 may be associated with an IPV4 address resolvable by DNS servers 120, 122, or 124 with "A" DNS records. As noted above, relay server 104 may be a relay compute configured to forward DNS queries generated by client 101 . A website "www. exampie.com" may be hosted on servers 1 4 and 126. In this example, ciieni 101 may be a "dual-stacked" client and network 102 may be an IPv4 network. "Dual stacked" clients may be enabled to communicate with a device associated with an IPv6 or an IPv4 address. However, a dual stacked client may be configured to use either an IPv4 DNS server and/or an IPv6 DNS server, if a dual stacked client is configured to use an IPv4 DNS server, it is usually associated with an IPv4 address. When a dual stacked client is connected to an IPv4 network, it may encapsulate or embed IPv6 packets within IPv4 packets in order to access an IPv6 network. Such encapsulating or embedding of IPv6 packets may be carried out i accordance with known "tunneling" protocols, such as Teredo protocol developed by Microsoft® Corporation. A dual stacked client utilizing tunneling protocols to reach an IPv6 network may forward these packets to a "tunnel endpoint." A tunnel endpoint is a node in a private network that decapsuiates or removes the IPv6 packets and forwards them to the intended IPv6 device, which is situated in the private network. In the example of FIG. 1 , client 101 is a dual stacked client configured to use an IPv4 DNS server.

[0018 J As IPv6 usage increases, many IPv6 devices are being de-coupled from these private networks. As such, a dual stacked client may take a considerable amount of time to resolve a network address. For example, client 101 may send a request for an IPv6 address to relay server 104. Conventional dual stacked clients first request an "AAAA" record associated with a sought after hostname, since it is unable to determine whether the hostname is accessible using IPv6, IPv4, or both. Furthermore, dual stacked clients are configured to assume that the network is transitioning toward an IPv6 only network and, therefore, prefer IPv6 by design. Upon receipt of the IPv6 DNS query for an IPv6 address, relay server 104 may forward the query to multiple DNS servers in some order determined by an administrator until it receives the sought afte network address or until ai! attempts fail. Particularly, relay server 104 may initially send the IPv6 DNS query to DNS server 110, then DNS server 116, and finally to DNS server 112, each of which is configured to resolve IPv6 addresses. Each of the aforementioned servers may return the IPv6 address associated with server 114, and relay server 104 may forward each of the returned IPv6 addresses to client 101. When client 101 receives an IPv6 address associated with server 1 4, client 101 may attempt to communicate with server 114. In this particular example, client 101 will attempt to communicate with serve 114 utilizing a tunnel endpoint in accordance with a tunneling protocol however the tunnel is a private network that does not allow access to IPv6 network 108, Accordingly, each communication attempt will fail and result in a time out, which may indicate that the address is either incorrect or inaccessible. The time out of each connection attempt may average approximately one minute. Next, relay server 104 may forward the IPv6 DNS query to DNS server 120. Since DNS server 120 is compliant with IPv4, it will ignore the IPv6 DNS query. Nevertheless, dual stacked clients transmit an IPv4 DNS query immediately after the IPv6 DNS query. Relay server 104 may forward the ensuing IPv4 DNS query to DNS server 120, which may finally return an accessible network address. The sought after IPv4 address may be associated with server 126, which may host a copy of "www.example.com." Client 101 may now utilize the IPv4 network address to communicate with server 126 directly. The foregoing scenario is less than ideal, since a dual stacked client makes multiple failed attempts to communicate before finally receiving an accessible network address.

[0019] One working example of a system and method to forward DNS queries efficiently in a dual network is illustrated in FIGS. 3-5. In particular, FIG. 3 illustrates a flow diagram of a method 300 to forward DNS queries in a dual network. FIGS. 4~ 5 show various aspects of routing DNS queries. The actions shown in FIGS. 4-5 will be discussed below with regard to the flow diagram of FIG. 3.

100203 As shown in block 302, a request for an accessible network address may be received. This request may be sent by client 101 and received by relay server 104, In block 304 of FIG. 3, the protocol used to generate an originating network address associated with the requesting entity may be determined. By way of exampte, it may be determined whether the network address associated with client 101 is compliant with IPv4 or IPv6, if the client is associated with an IPv4 address, it is likely the client can communicate directly with an IPv4 device. If the client is associated with an IPv6 address, it is likely the client can communicate directly (e.g., without a tunneling protocol) with an IPv6 device.

00213 FIG. 4 shows a more detailed depiction of instructions 206, Socket 404 may provide an endpoint that facilitates inter-process communication between instructions 206 and a process executing on client 101. DNS query 402 may be a packet containing various fieids therein, each of which may have been added or encapsulated by a process in a stack of processes executing in client 101. The stack of processes may be arranged in accordance with a networking protocol, such as the Transmission control protocol/Internet Protocol ("TCP/IP") or variations thereof. One layer, such as a network layer, may encapsulate a field indicating the protocol used to generate the network address of the requesting entity. Instructions 208 may contain commands therein that parse this field. In one example, instructions 208 may invoke functions from the socket application programming interface ("API"), such as the recvfrom function, that causes processor 202 to receive DNS query 402 and obtain the network addressing protocol of the requesting entity. The protocol used to generate the address associated with the requesting entity may be stored in a data structure, such as the sockaddr data structure of the socket API. In the present example, client 101 is associated with a network address compliant with IPv4.

[0022 J Referring back to FIG. 3 S a list of servers may be sorted in an order based on the likelihood that each server therein is capable of obtaining the accessible network address, as shown in block 306, The likelihood may be partially based on whether a network address associated with each server was generated using the same protocol as the network address associated with the requesting entity. In FIG. 4, a server list 408 is shown stored in memory 204. The server list 408 may be arranged using any data structure. The list may be stored in computer registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The list may comprise any information sufficient to identify the relevant data. For ease of illustration, each entry of server list 408 is shown having the reference numeral of each DNS server ii!ustrated in FIG. 1 , however it is understood that each of these entries may also comprise the IPv4 or IPv6 address associated with each illustrated DNS server. In FIG, 4, the entries of server list 408 are shown to be in the following order; 110, 116, 1 12, 120, 122, and 124.

10023] Referring now to FIG. 5, the server list 408 is shown i the following new order: 120 s 122, 124, 110, 116, and 112. DNS servers 120, 122, and 124 are associated with IPv4 network addresses, while DNS servers 112, 116, and 1 10 are associated with IPv6 network addresses. Since client 101 is associated with an IPv4 network address in this example, th DNS servers associated with an IPv4 network address are preferably ordered higher in the list A DNS server is typically capable of resolving network addresses compliant with the same protocol used to generate the network address thereof. Instructions 206 may consider other factors when sorting the list, such as connection stability or proximity from client 101. Also shown i FIG. 5, is a second socket 502 that may be utilized to forward DNS query 402 to multiple DNS servers. Socket 502 may contain modules therein that support connections to IPv4 resources and IPv6 resources. TCP layer 504 may carry out transport layer functions, such as connection establishment, end-to-end flow control and reliable delivery. Relay server 104 may also contain additional transport layers, such as a User Datagram protocol ("UDP") layer. Other layers may be implemented, such as link and physical layers.

[0024! Referring back to FIG. 3, the request ma be forwarded to each server in th list in the order in which it was sorted, as shown in block 308. FIG. 5 illustrates the order in which instructions 206 may forward the initial DNS request for an IPv6 address. At times /0-f5, instructions 206 may forward the request to DNS servers 120, 122, 124, 110, 116, and 1 12 respectively. Since the first three servers in the list are associated with IPv4 addresses, it is highly likely an accessible network address wtS! be returned from one of those servers. While the initia! IPv6 DNS query may be ignored by DNS server 1 0, this initial query will be immediately followed by an IPv4 DNS query. The ensuing IPv4 DNS query will likely be resolved by DNS server 120. If not, the query will likely be resolved by the following two IPv4 DNS servers In the sorted list. Rather than initially receiving multiple inaccessible IPv6 addresses and attempting to connect to devices associated with them, client 101 first receives an IPv4 address that is directly accessible by client 101.

[00251 The examples disclosed above may be realized in any computer- readable media for use by or in connection with an instruction execution system such as a computer/processor based system, an ASIC, 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 may comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media, yore 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, RAM, a read-only memory ("ROM"), a erasable programmable read-only memory, or a portable compact disc.

£ 0026] Advantageously, the above-described system and method ensure that DNS servers in a dual network that are most likely to obtain an accessible network address are first to receive the DNS query. Rather than forwarding the DNS query to a randomly ordered list of DNS servers, the examples disclosed herein prioritize DNS servers whose network addresses comply with the same protocol used to generate the network address of the client. In this regard, users experience less latency when communicating with remote applications.

[00271 Although the disclosure herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles of the disclosure. It is therefore to be understood that numerous modifications may be made to the examples and that other arrangements may be devised without departing from the spirit and scope of the disclosure as defined by the appended claims. Furthermore, while particular processes are shown in a specific order in the appended drawings, such processes are not limited to any particular order unless such order is expressly set forth herein. Rather, processes may be performed in a different order or concurrently, arid steps may be added or omitted.