The present disclosure relates generally to computer communications, and more particularly to a system and method for operating dual-stack devices.
In computer communications, there is a migration from Internet Protocol (IP) version 4 (IPv4) to IPv6 in order to provide support for a much larger address space, amongst other reasons. However, there remain millions of devices that are only IPv4 compatible. Therefore, there is a transition period where both IPv4 and IPv6 are supported.
Some devices available during the transition period support both IPv4 and IPv6. In supporting both IPv4 and IPv6, these devices implement both an IPv4 protocol stack and an IPv6 protocol stack. Such devices may be referred to as dual-stack devices. Dual-stack devices can provide connectivity in both IPv4 and IPv6 networks.
Example embodiments of the present disclosure which provide a system and method for system and method for operating dual-stack devices.
In accordance with an example embodiment of the present disclosure, a method for interacting with Internet Protocol version 6 (IPv6) compatible devices in a communications system is provided. The method includes receiving, by a dual-stack device, a first control message from a server, the dual-stack device comprising an Internet Protocol version 4 (IPv4) protocol stack and an IPv6 protocol stack, wherein the first control message includes an IPv4 level indicator that indicates support for IPv4 in the communications system, and adjusting, by the dual-stack device, a configuration of the IPv4 protocol stack in accordance with the IPv4 level indicator.
In accordance with another example embodiment of the present disclosure, a method for interacting with Internet Protocol version 6 (IPv6) and Internet Protocol version 4 (IPv4) compatible devices is provided. The method includes determining, by a server, an IPv4 level indicator in accordance with IPv4 support in a communications system including the server, generating, by the server, a first control message, where the first control message includes the IPv4 level indicator, and sending, by the server, the first control message.
In accordance with another example embodiment of the present disclosure, a dual-stack device is provided. The dual-stack device includes an Internet Protocol version 4 (IPv4) protocol stack and an Internet Protocol version 6 (IPv6) protocol stack, a receiver, and a processor operatively coupled to the receiver, to the IPv4 protocol stack, and the IPv6 protocol stack. The receiver receives a first control message from a server, wherein the first control message includes an IPv4 level indicator that indicates support for IPv4 in a communications system. The processor adjusts a configuration of the IPv4 protocol stack in accordance with the IPv4 level indicator.
In accordance with another example embodiment of the present disclosure, a method for interacting with Internet Protocol version 6 (IPv6) dynamic host configuration protocol (DHCPv6) compatible devices in a communications system is provided. The method includes receiving, by a dual-stack device, a first DHCPv6 control message from a DHCPv6 server, the dual-stack device comprising an Internet Protocol version 4 (IPv4) protocol stack and an IPv6 protocol stack, wherein the first control message includes an IPv4 level indicator that indicates support for IPv4 in the communications system, and adjusting, by the dual-stack device, a configuration of the IPv4 protocol stack in accordance with the IPv4 level indicator.
One advantage of an embodiment is that techniques for shutting down an IPv4 protocol stack of a dual-stack device are provided. Shutting down the IPv4 protocol stack when IPv4 is not supported can reduce communications system overhead by eliminating IPv4 request messages. Furthermore, power consumption in the dual-stack devices is also reduced since there is no longer a need to wake up and transmit the IPv4 request messages when there are no IPv4 response messages.
For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
The operating of the current example embodiments and the structure thereof are discussed in detail below. It should be appreciated, however, that the present disclosure provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific structures of the disclosure and ways to operate the disclosure, and do not limit the scope of the disclosure.
One embodiment of the disclosure relates to operating dual-stack devices. For example, a dual-stack device receives a first IPv6 dynamic host configuration protocol (DHCPv6) message from an IPv6 router, the dual-stack device comprising an Internet Protocol version 4 (IPv4) protocol stack and an IPv6 protocol stack, wherein the first DHCPv6 message includes an IPv4 level indicator that indicates whether the IPv6 router supports IPv4 compatibility, and adjusts a configuration of the IPv4 protocol stack in accordance with the IPv4 level indicator.
The present disclosure will be described with respect to example embodiments in a specific context, namely communications systems that are capable of supporting both IPv4 and IPv6. The disclosure may be applied to standards compliant communications systems and non-standards compliant communications systems that support both IPv4 and IPv6.
When a device first connects to a network, it obtains configuration information that it needs to attach to the network. In IPv4, this is achieved by sending a request to a dynamic host configuration protocol (DHCP) server. The DHCP server responds with configuration information for the device. DHCPv6 is similar to DHCP and is used in IPv6 network. DHCP may be referred to as DHCPv4 to prevent confusion. In IPv6, there is a second way to provide configuration information: a Neighbor Discovery (ND) Router Advertisement (RA) message allows IPv6 routers to periodically send messages offering configuration information to listening devices.
Communications system 100 may also include a plurality of devices, such as a dual-stack device 115, an IPv6 device 120. As discussed previously, a dual-stack device is a device that includes both an IPv4 protocol stack and an IPv6 protocol stack. Communications system 100 may also include a dual stack device referred to as a home gateway 130, which may serve as a router for devices that are members of a local network serviced by home gateway 130. As shown in
While it is understood that communications systems may employ multiple routers capable of communicating with a number of devices, only one router, and a number of devices are illustrated for simplicity.
Since the DHCPv4 server of router 105 is shutdown, dual-stack device 115 and Home gateway (dual-stack) 130 may not be able to obtain IPv4 configuration information from router 105 and is therefore, unable to communicate with other IPv4 devices in communications system 100. There are no messages in the DHCPv4 protocol that can be used to let a device know that IPv4 is not available. However, since both dual-stack device 115 and IPv6 device 120 have IPv6 protocol stacks, they may be able to obtain configuration information from router 105 and are therefore, capable of communicating with other IPv6 devices in communications system 100.
Dual-stack device 135 and IPv6 device 140 may be able to obtain IPv6 configuration information from home gateway 130 by IPv6. However, depending on the configuration of home gateway 130 and control messages, i.e., whether or not home gateway 130 continually serves IPv4 (e.g., home gateway 130 has shut down its DHCPv4 server), IPv4 protocol stack in dual-stack device 135 may or may not be able to obtain IPv4 configuration information.
As discussed previously, a dual-stack device may request configuration information from both a DHCPv4 server (using a DHCPv4 request message) and a DHCPv6 server (using a DHCPv6 request message). However, if there isn't a DHCPv4 server, there will never be a response to the DHCPv4 request message and the dual-stack device may continually send out DCHPv4 request messages, needlessly filling the network with such messages.
When a dual-stack device does not receive responses to its DHCPv4 requests, the aggregated traffic generated by multiple such dual-stack nodes can represent a significant useless load. As an example, this scenario may be encountered when an Internet service provider (ISP) serving multiple types of subscribers (with some subscribers being IPv4 devices and some subscribers being IPv6 devices) and where it is not feasible to block the DHCPv4 requests. In addition to the useless load, a significant amount of communications system bandwidth may be consumed by the DHCPv4 requests, especially when the DHCPv4 requests are sent on a low-bandwidth channel. Furthermore, a dual-stack device that does not receive a DHCPv4 response may continue to send DHCPv4 requests indefinitely. As an illustrative example, in a popular IPv4 client implementation, a dual-stack device may wake up every 5 minutes to contact a DHCPv4 server for a 60 second duration. In such a configuration, the dual-stack device is prevented from sleeping at least 20% of the time.
Dual-stack device 205 may request configuration information from a DHCPv6 server in IPv6 only router 210 by sending an IPv6 provisioning request message, i.e., a DHCPv6 request message (shown as event 215). IPv6 only router 210 may respond with an IPv6 provisioning response message, i.e., a DHCPv6 response message (shown as event 220). It is noted that depending on implementation, DHCPv6 (as well as DHCPv4) servers may be implemented as stand-alone devices or co-located with other devices. The configuration information contained in the IPv6 provisioning response message may enable dual-stack device 205 to obtain IPv6 connectivity.
However, since dual-stack device 205 also includes IPv4 functionality, dual-stack device 205 may also send an IPv4 request message, i.e., DHCPv4 request message (shown as event 225) to obtain configuration information from a DHCPv6 server in IPv6 only router 210 (which does not exist or isn't enabled). However, since IPv6 only router 210 doesn't support DHCPv4, the DHCPv4 request message goes unanswered. After a time-out period, dual-stack device 205 may send another IPv4 request message (shown as event 230). After yet another time-out period, dual-stack device 205 may send another IPv4 request message, and so on.
According to an example embodiment, an option is included in a DHCPv6 message to indicate a level of IPv4 functionality supported. A recipient of the DHCPv6 message that includes the option can configure its IPv4 operation (e.g., its IPv4 protocol stack) accordingly.
According to an example embodiment, an option is included in a DHCPv6 request message to indicate a level of IPv4 functionality supported. The DHCPv6 request message includes an option that indicates the level of IPv4 functionality supported. As an illustrative example, the levels of IPv4 functionality supported may include: IPv4 fully enabled; no IPv4 upstream; no IPv4 upstream with local IPv4 restricted; and no IPv4 at all. Although four levels of IPv4 functionality are illustrated, fewer or greater numbers of levels are possible.
According to an example embodiment, an option is included in a DHCPv6 response message to indicate a level of IPv4 functionality supported. The DHCPv6 response message includes an option that indicates the level of IPv4 functionality supported. As an illustrative example, the levels of IPv4 functionality supported may include: IPv4 fully enabled; no IPv4 upstream; no IPv4 upstream with local IPv4 restricted; and no IPv4 at all. Although four levels of IPv4 functionality are illustrated, fewer or greater numbers of levels are possible.
Option 300 may also be included in a DHCPv6 request message. The inclusion of option 300 in a DHCPv6 request message may be used in conjunction with a gateway that does not provide IPv4 service and the gateway may send the DHCPv6 request message with option 300 to a DHCPv6 server. The DHCPv6 server may send a DHCPv6 response message with option 300 with indicator field 315 set to a commensurate value. As an illustrative example, consider the communications system shown in
According to an example embodiment, an option is included in a DHCPv6 reconfigure message to indicate a level of IPv4 functionality supported. The DHCPv6 reconfigure message includes an option that indicates the level of IPv4 functionality supported. As an illustrative example, the levels of IPv4 functionality supported may include: IPv4 fully enabled; no IPv4 upstream; no IPv4 upstream with local IPv4 restricted; and no IPv4 at all. Although four levels of IPv4 functionality are illustrated, fewer or greater numbers of levels are possible.
Although the discussion of option 300 shown in
According to an example embodiment, an option is included in a Neighbor Discovery router advertisement message to indicate a level of IPv4 functionality supported. The Neighbor Discovery router advertisement message includes an option that indicates the level of IPv4 functionality supported. As an illustrative example, the levels of IPv4 functionality supported may include: IPv4 fully enabled; no IPv4 upstream; no IPv4 upstream with local IPv4 restricted; and no IPv4 at all. Although four levels of IPv4 functionality are illustrated, fewer or greater numbers of levels are possible.
Referring back now to the illustrative example involving the communications system shown in
In general, the various messages discussed herein (e.g., DHCPv6 request message, DHCPv6 response message, DHCPv6 reconfigure message, Neighbor Discovery router advertisement message, and the like) may be collectively referred to as control messages. Except where note, any and/or all of these types of messages may be referred to as control messages.
Dual-stack devices may include the option in a DHCPv6 Request. DHCPv6 servers may include the option in responses if they have been so configured. DHCPv6 servers may also place the option in a DHCPv6 Reconfigure message.
As an illustrative example, the indicator fields of option 300 and option 400 included in a control message may include indicator field values set to the following values:
Operations 500 may begin with the dual-stack device sending a DHCPv6 request message to obtain configuration information (block 505). The dual-stack device may receive a DHCPv6 response message from a DHCPv6 server (block 510). The dual-stack device may perform a check to determine if the DHCPv6 response message includes an option (block 515) that indicates the level of IPv4 functionality supported. If the DHCPv6 response message does include such an option, the dual-stack device may adjust its IPv4 functionality in accordance with the option (block 520). As an illustrative example, the dual-stack device may configure its IPv4 protocol stack to refrain from sending DHCPv4 messages when the option indicates that IPv4 is not supported. If the DHCPv6 response message does not include an option that indicates the level of IPv4 functionality supported, operations 500 may terminate.
Operations 550 may begin with the dual-stack device receiving a Neighbor Discovery router advertisement message from a Neighbor Discovery server or a DHCPv6 reconfigure message from a DHCPv6 server (block 555). The dual-stack device may perform a check to determine if the Neighbor Discovery router advertisement message or the DHCPv6 reconfigure message includes an option that indicates the level of IPv4 functionality supported (block 560). If the Neighbor Discovery router advertisement message or the DHCPv6 reconfigure message does include such an option, the dual-stack device may adjust its IPv4 functionality in accordance with the option (block 565). As an illustrative example, the dual-stack device may configure its IPv4 protocol stack to refrain from sending DHCPv4 messages when the option indicates that IPv4 is not supported. If the Neighbor Discovery router advertisement message or the DHCPv6 reconfigure message does not include an option that indicates the level of IPv4 functionality supported, operations 550 may terminate.
Operations 600 may begin with the DHCPv6 server determining IPv4 functionality for connected devices (block 605). The IPv4 functionality for connected devices may be specified by an operator of a communications system that includes the DHCPv6 server, for example. The DHCPv6 server may receive a DHCPv6 request message (block 610). The DHCPv6 server may send a DHCPv6 response message back to an originator of the DHCPv6 request message, where the DHCPv6 response message includes an option indicating a level of IPv4 functionality (block 615).
Operations 650 may begin with the DHCPv6 server determining IPv4 functionality for connected devices (block 655). The IPv4 functionality for connected devices may be specified by an operator of a communications system that includes the DHCPv6 server, for example. The DHCPv6 server may send a DHCPv6 reconfigure message, where the DHCPv6 reconfigure message includes an option indicating a level of IPv4 functionality (block 660). The DHCPv6 server may periodically send the same DHCPv6 reconfigure message or it may modify the DHCPv6 reconfigure message as changes are dictated.
As discussed previously, a Neighbor Discovery router advertisement message may also include an option, such as option 400. In such a situation, a Neighbor Discovery server may determine IPv4 functionality for connected deices and may send a Neighbor Discovery router advertisement message that includes the option. The Neighbor Discovery server may periodically send the same Neighbor Discovery router advertisement message or it may modify the Neighbor Discovery router advertisement message as changes are dictated.
A message processing unit 720 is configured to generate a DHCPv4 request message and/or a DHCPv6 request message to request configuration information. Message processing unit 720 is configured to process received DHCPv4 response messages, DHCPv6 response messages, DHCPv6 reconfigure messages, and/or Neighbor Discovery router advertisement messages. Message processing unit 720 is configured to determine if received DHCPv6 response messages, DHCPv6 reconfigure messages, and/or Neighbor Discovery router advertisement messages include options that indicate the level of IPv4 functionality supported. An IPv4 controlling unit 722 is configured to adjust IPv4 functionality of communications device 700 in accordance with an option, such as option 300 or 400. Memory 730 is configured to store information, DHCPv4 response messages, DHCPv6 response messages, DHCPv6 reconfigure messages, Neighbor Discovery router advertisement messages, options, IPv4 configurations, and the like.
The elements of communications device 700 may be implemented as specific hardware logic blocks. In an alternative, the elements of communications device 700 may be implemented as software executing in a processor, controller, application specific integrated circuit, or so on. In yet another alternative, the elements of communications device 700 may be implemented as a combination of software and/or hardware.
As an example, receiver 710 and transmitter 705 may be implemented as a specific hardware block, while message processing unit 720 and IPv4 controlling unit 722 may be software modules executing in a microprocessor (such as processor 715) or a custom circuit or a custom compiled logic array of a field programmable logic array. Message processing unit 720 and IPv4 controlling unit 722 may be modules stored in memory 730.
An IPv4 controlling unit 820 is configured to determine an IPv4 functionality of communications devices. IPv4 controlling unit 820 is configured to generate an option in accordance with the IPv4 functionality. A message processing unit 820 is configured to generate a DHCPv6 response message and/or a DHCPv6 reconfigure message that includes configuration information and the option. Message processing unit 820 is configured to generate a Neighbor Discovery router advertisement message that includes configuration information and the option. Message processing unit 822 is configured to process received DHCPv6 request messages. Memory 830 is configured to store information, DHCPv6 request messages, DHCPv6 response messages, DHCPv6 response messages, Neighbor Discovery router advertisement messages, options, IPv4 configurations, and the like.
The elements of communications device 800 may be implemented as specific hardware logic blocks. In an alternative, the elements of communications device 800 may be implemented as software executing in a processor, controller, application specific integrated circuit, or so on. In yet another alternative, the elements of communications device 800 may be implemented as a combination of software and/or hardware.
As an example, receiver 810 and transmitter 805 may be implemented as a specific hardware block, while IPv4 controlling unit 820 and message processing unit 822 may be software modules executing in a microprocessor (such as processor 815) or a custom circuit or a custom compiled logic array of a field programmable logic array. IPv4 controlling unit 820 and message processing unit 822 may be modules stored in memory 830.
Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims.