WO2013055341A1 - Network address protocol - Google Patents

Network address protocol Download PDF

Info

Publication number
WO2013055341A1
WO2013055341A1 PCT/US2011/056105 US2011056105W WO2013055341A1 WO 2013055341 A1 WO2013055341 A1 WO 2013055341A1 US 2011056105 W US2011056105 W US 2011056105W WO 2013055341 A1 WO2013055341 A1 WO 2013055341A1
Authority
WO
WIPO (PCT)
Prior art keywords
network address
server
list
generate
protocol
Prior art date
Application number
PCT/US2011/056105
Other languages
French (fr)
Inventor
Yannick Koehler
Original Assignee
Hewlett-Packard Development Company , L.P.
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 Hewlett-Packard Development Company , L.P. filed Critical Hewlett-Packard Development Company , L.P.
Priority to PCT/US2011/056105 priority Critical patent/WO2013055341A1/en
Publication of WO2013055341A1 publication Critical patent/WO2013055341A1/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
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/686Types of network addresses using dual-stack hosts, e.g. in Internet protocol version 4 [IPv4]/Internet protocol version 6 [IPv6] networks

Definitions

  • DNS Domain name system
  • IP internet protocol
  • IP version 4 ⁇ 'IPv4
  • IPv6 IP version 6
  • FIG. 1 is an illustrative system in accordance with aspects of the application
  • FIG. 2 Is a close up illustration of a computer apparatus in accordance with aspects of the application.
  • 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.
  • FIG. 5 is a working example of DNS query routing in accordance with aspects of the application.
  • 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.
  • 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.
  • 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.
  • each computer apparatus may include ail the components normally used in connection with a computer.
  • 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.
  • Client 101 may be a computer apparatus, such as a desktop computer or a laptop computer.
  • 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.
  • HTTP Hypertext Transport Protocol
  • networks 102, 106, and 118 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.
  • 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").
  • 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.
  • 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.
  • memory 204 may be a random access memory ("RAM") device.
  • RAM random access memory
  • 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.
  • the processor may be a dedicated controller for executing operations, such as an application specific integrated circuit ("ASIC").
  • ASIC application specific integrated circuit
  • 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • instructions 206 may be part of an installation package that may be executed by processor 202.
  • 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.
  • the instructions may be part of an application or applications already installed.
  • memory 204 may include integrated memory such as a hard drive.
  • a network address may be generated using different protocols.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a dual stacked client 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.
  • client 101 is a dual stacked client configured to use an IPv4 DNS server.
  • a dual stacked client may take a considerable amount of time to resolve a network address.
  • 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.
  • dual stacked clients are configured to assume that the network is transitioning toward an IPv6 only network and, therefore, prefer IPv6 by design.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIGS. 3-5 illustrate 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.
  • a request for an accessible network address may be received.
  • This request may be sent by client 101 and received by relay server 104,
  • the protocol used to generate an originating network address associated with the requesting entity may be determined.
  • 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.
  • 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.
  • TCP/IP Transmission control protocol/Internet Protocol
  • 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.
  • 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.
  • client 101 is associated with a network address compliant with IPv4.
  • 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.
  • 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.
  • 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.
  • the entries of server list 408 are shown to be in the following order; 110, 116, 1 12, 120, 122, and 124.
  • 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
  • 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.
  • 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.
  • UDP User Datagram protocol
  • FIG. 5 illustrates the order in which instructions 206 may forward the initial DNS request for an IPv6 address.
  • 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.
  • 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.
  • 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.
  • 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.
  • a portable magnetic computer diskette such as floppy diskettes or hard drives
  • RAM random access memory
  • ROM read-only memory
  • erasable programmable read-only memory erasable programmable read-only memory
  • 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.

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.

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 2128 (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. 3S 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: 120s 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.

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
PCT/US2011/056105 2011-10-13 2011-10-13 Network address protocol WO2013055341A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2011/056105 WO2013055341A1 (en) 2011-10-13 2011-10-13 Network address protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/056105 WO2013055341A1 (en) 2011-10-13 2011-10-13 Network address protocol

Publications (1)

Publication Number Publication Date
WO2013055341A1 true WO2013055341A1 (en) 2013-04-18

Family

ID=48082215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/056105 WO2013055341A1 (en) 2011-10-13 2011-10-13 Network address protocol

Country Status (1)

Country Link
WO (1) WO2013055341A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040328A (en) * 2017-06-12 2018-12-18 中兴通讯股份有限公司 request sending method and device, home gateway, storage medium, processor
CN111193815A (en) * 2019-12-24 2020-05-22 腾讯科技(深圳)有限公司 Domain name resolution method, domain name resolution device, computer readable storage medium and computer equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924832B2 (en) * 2008-11-13 2011-04-12 Blue Coat Systems, Inc. Facilitating transition of network operations from IP version 4 to IP version 6
US20110153831A1 (en) * 2009-12-23 2011-06-23 Rishi Mutnuru Systems and methods for mixed mode of ipv6 and ipv4 dns of global server load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924832B2 (en) * 2008-11-13 2011-04-12 Blue Coat Systems, Inc. Facilitating transition of network operations from IP version 4 to IP version 6
US20110153831A1 (en) * 2009-12-23 2011-06-23 Rishi Mutnuru Systems and methods for mixed mode of ipv6 and ipv4 dns of global server load balancing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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 <URL:http://www.ietf.org/rfc/rfc1304.txt> *
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 <URL:http://www.ietf.org/rfc/rfc3484.txt> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040328A (en) * 2017-06-12 2018-12-18 中兴通讯股份有限公司 request sending method and device, home gateway, storage medium, processor
CN111193815A (en) * 2019-12-24 2020-05-22 腾讯科技(深圳)有限公司 Domain name resolution method, domain name resolution device, computer readable storage medium and computer equipment

Similar Documents

Publication Publication Date Title
US11316786B2 (en) Systems and methods for directly responding to distributed network traffic
US7913106B2 (en) Failover in a host concurrently supporting multiple virtual IP addresses across multiple adapters
EP2266064B1 (en) Request routing
US7257817B2 (en) Virtual network with adaptive dispatcher
US8156249B2 (en) Using server type to obtain network address
US8463915B1 (en) Method for reducing DNS resolution delay
JP5342696B2 (en) Download plug-ins in instant messaging client
JP6367371B2 (en) Network packet encapsulation and routing
US20110225447A1 (en) Preferred resource selector
EP2521330A1 (en) DNSSEC signing server
US20130212215A1 (en) Method, apparatus and system for addressing resources
JP2009508260A (en) Port sharing among multiple processes
JP2011188486A (en) Peer-to-peer graph management interface and method
US20190081924A1 (en) Discovering address mobility events using dynamic domain name services
US20080294778A1 (en) Network connection manager
JP6885736B2 (en) Integrated data networking across non-uniform networks
US7965630B1 (en) Load balancing port proxy for dynamically controlling routing of query requests
US10404651B2 (en) Domain name system network traffic management
JP2017201776A (en) Content delivery through uneven network
WO2013055341A1 (en) Network address protocol
US20080056263A1 (en) Efficient transport layer processing of incoming packets
Elsaleh et al. Service continuity for subscribers of the mobile real world Internet
US20220141279A1 (en) Client-side measurement of computer network conditions
US11188346B2 (en) Obtaining environment information in a computing environment
JP4332159B2 (en) System and method for regulating access to messages by extension points

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11874115

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11874115

Country of ref document: EP

Kind code of ref document: A1