Neighbor discovery in cable networks

Information

  • Patent Grant
  • 7646786
  • Patent Number
    7,646,786
  • Date Filed
    Thursday, December 30, 2004
    19 years ago
  • Date Issued
    Tuesday, January 12, 2010
    14 years ago
Abstract
A network device has a communications link to allow the device to communicate with customer devices and a processor. The processor is to receive neighbor discovery messages from requesting customer devices, examine the neighbor discovery messages to determine if the neighbor discovery message should be forwarded to other of the customer devices, and respond to the requesting customer devices.
Description

This application claims priority from U.S. Provisional Application Ser. Nos. 60/574,506 filed May 25, 2004; 60/574,876 filed May 26, 2004; 60/582,732 filed Jun. 22, 2004; 60/588,635 filed Jul. 16, 2004; and 60/590,509 filed Jul. 23, 2004.


BACKGROUND

Neighbor Discovery (ND) is a protocol currently being deployed in the Internet Protocol (IP) version 6, abbreviated here as IPv6. It is possible that subsequent versions of IP as well as other communications protocols may use similar protocols, all of which will be referred to here as neighbor discovery. The Neighbor Discovery protocol is specified in the Internet Engineering Task Force (IETF) Request for Comments (RFC) 2461, and concepts disclosed here, while discussed with regard to IPv6, may be applicable to other protocols.


Hosts, routers and other network devices using IPv6 use the Neighbor Discovery protocol messages for several purposes. A host may use neighbor discovery to identify the hardware address associated with an IP address, and perform duplicate address detection (DAD) when employing stateless address autoconfiguration. A host may use neighbor discovery to locate a network device such as a router. The network device will forward datagrams for the host. A network device such as a router may use neighbor discovery to identify itself to hosts on a link, and announce prefixes available on a link for hosts employing stateless address autoconfiguration. Datagrams, as that term is used here, are the ‘bundles’ of data employed to transmit data across the network, such as IP packets, Asynchronous Transfer Mode (ATM) cells, and Frame Relay (FR) frames.


Neighbor discovery messages are transmitted on a regular basis by both hosts and network devices. The neighbor discovery traffic on a link increases as the number of hosts on the link increases, and can represent a significant fraction of the total traffic on a link. Neighbor discovery messages are often sent to a multicast address, so that those messages are delivered to all of the hosts on a link and are individually processed by each host on a link.


When IPv6 is deployed by a service provider to customers over a cable medium, the network is often constructed so all of the “customer devices”, or hosts, are connected to a single “network device”, which forwards datagrams sent from customer devices. For example, customer premises equipment (CPE) devices (customer devices) are attached to the same cable modem termination system CMTS device (network device). The customer devices may be either cable modems (CMs) or home computers (PCs).


The upstream and downstream connectivity between the network device and the customer devices is asymmetric. In the downstream direction, from network device to customer device, the physical link is shared by all the customer devices. Hence they appear to be connected to the same link.


In the upstream direction, i.e., customer device to network device, the link is not shared; each device has its own unidirectional physical link to the network device. Hence, data sent by one device is not visible to the other devices. There are sometimes as many as 50,000 customer devices connected to a single network device. All of these devices generate neighbor discovery messages which are sent to various multicast addresses on the link, generating significant overhead on the link and causing significant processing overhead on the other customer devices receiving the neighbor discovery messages.


SUMMARY

One embodiment of the invention is a network device having a communications link to communicate with customer devices. The processor in the network device is to receive neighbor discovery messages from requesting customer devices, examine the neighbor discovery messages to determine if the neighbor discovery message should be forwarded to other of the customer devices, and respond to the requesting customer devices.


Another embodiment of the invention is a method of processing neighbor discovery messages. The method receives a neighbor discovery message from a requesting customer device. The neighbor discovery message is examined to determine if the neighbor discovery needs to be forwarded to any other customer devices. The requesting customer device is then responded to.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention may be best understood by reading the disclosure with reference to the drawings, wherein:



FIG. 1 shows an embodiment of a network device in communication with several customer devices.



FIG. 2 shows a flowchart of an embodiment of a method to process neighbor discovery messages.



FIG. 3 shows an embodiment of a network device.





DETAILED DESCRIPTION OF THE EMBODIMENTS

An embodiment of a portion of a cable data network is shown in FIG. 1. The network device 10 serves as a connection between the customer devices 12a-12c and the network. The customer devices may be cable modems or home computers (PCs). As many as fifty thousand customer devices connected to a single network device.


As discussed previously, in a cable modem network deploying IPv6 with neighbor discovery, or similar discovery protocols, the messages will generate significant overhead on the link, and significant processing overhead on the customer and network devices. For example, when the customer device 12a initializes it sends a neighbor discovery message across its connection to the network device 10 to perform duplicate address detection (DAD). The DAD process allows a device to determine if its chosen address is duplicated in the system. If it is duplicated, there are mechanisms in the DAD process to allow for selection of a unique address. Currently, the network device relays this message to any other customer devices that are currently connected to the network device, such as cable modems 12b through 12c. Each customer device receives a copy of the message from the customer device 12a.


Similarly, a customer device may need to identify the Media Access Control (MAC) address associated with a network address. Generally, this occurs when a customer device such as 12a is sending a packet to the network address of another device such as 12c. The customer device 12a sends a neighbor discovery message to determine the MAC address of the device that is associated with that network address. This message currently gets relayed by the network device to all of the customer devices.


One possible solution would be to filter out the messages for other devices at each customer device. All of these messages require some level of processing by each customer device, contributing to the inefficiencies of the network. Filtering the messages at the device interface on the customer device would alleviate part of this problem. However, it is not possible to do this in cable modem networks.


In embodiments of this invention, the network device uses filtering and proxying to reduce the link traffic and processing overhead in a cable network. The network device receives all of the messages from the customer devices prior to relaying them out to the other customer devices. By altering the operation of the network device, it is possible to avoid sending out a bulk of the neighbor discovery messages to other customer devices.



FIG. 2 shows an embodiment of a method to process neighbor discovery messages. At 20, the network device receives a neighbor discovery request from the customer device. Essentially, the network device intercepts the message. These messages may be DAD messages 22a, MAC address requests 22b, or other types of messages, such as multicast messages. These specific examples will be addressed at each part of the process to demonstrate principles of the invention.


At 24, the message is examined. The network device ‘reads’ the message and determines the appropriate action needed in response. For example, when the message is a DAD message from a customer device 12a performing initialization, the network device would intercept the message and examine it at 24. If the message is a DAD message, at 26a, the network device examines its list of customer device information. If the network address does not already appear in the list, the network device forwards the request to selected other devices in 30.


If there is no response, the network device adds the network address, such as an IPv6 address and MAC address for the customer device to its list of customer device information. If the address does appear in the list of customer device information, or some other device responds to DAD request forwarded by the network device, the network device then responds to the customer device at 28, in this example by sending an acknowledgement of the address at 32a. This process is repeated for each device as it initializes, adding its information to the list and responding directly to the device, rather than sending them out to all of the other customer devices.


For the example of the message being a MAC address request 26b, a similar process occurs. The network device intercepts the neighbor discovery from the requesting customer device. It then accesses its list of customer device information to determine the MAC address associated with a particular network address. If the address in the request appears in the list, the network device sends a response to the requesting CPE at 28 and does not forward the message to any of the other customer devices. In this example, the response includes the requested MAC address at 32b. If the address in the request does not appear in the list of customer device information, the network device forwards the request to other devices in 30. Any responses from other devices are returned to the customer device that sent the original request in 32b.


In some instances, there may be a need to send the neighbor discovery request to other devices. In those cases, the network device would intercept the message and determine which, if any, other customer devices need to receive the message. The neighbor discovery message would only be sent to relevant customer devices at 30, not to all devices connected to the network device, as currently happens.



FIG. 3 shows an embodiment of network device 10 capable of functioning as a network device. The device has a communications link 46 to allow the device to communicate with customer devices. In a cable network, this communications link will generally be a cable link.


The device also has a processor 40 to receive neighbor discovery messages from requesting customer devices and to examine the neighbor discovery messages to determine if the neighbor discovery message should be forwarded to other of the customer devices. The processor also allows the device to respond to the requesting customer devices. The processor may be a general-purpose processor, a digital signal processor, etc., or any device that can process commands and perform the necessary operations of the network device device.


In addition, the device may have a local storage 44 that contains the list of customer device information 42. This information may take the form of a table that lists the MAC address of devices associated with the devices network addresses. The storage may also be located elsewhere in the system.


Generally, the embodiments of this invention can be implemented in a currently existing network device. The software or firmware used to operate the processor of the network device could be altered to cause the device to perform the methods of the invention. The alteration will generally involve loading instructions that reside on an article of machine-readable media to the processor memory. The instructions, when executed, will cause the machine to perform the processes of the invention. In this case, the machine is the network device 10, operating as a network device.


Thus, although there has been described to this point a particular embodiment for a method and apparatus for neighbor discovery in cable systems, it is not intended that such specific references be considered as limitations upon the scope of this invention except in-so-far as set forth in the following claims.

Claims
  • 1. A system, comprising: a Cable Modem Termination System (CMTS) configured to operate between a data network and a cable network, the CMTS to communicate upstream traffic sent from a plurality of cable modems to the data network, to receive traffic from the data network for forwarding downstream to the cable modems, wherein the CMTS includes:a database containing addressing information for the cable modems;a communications link to allow the CMTS to communicate with the cable network; andcircuitry configured to: receive a neighbor discovery message from a requesting one of the cable modems;identify an address corresponding to the received neighbor discovery message;compare the identified address to the database to determine whether the database includes a stored address corresponding to the identified address;forward the received neighbor discovery message if the corresponding stored address is absent from the database; andfilter the received neighbor discovery message according to the comparison such that the neighbor discovery message is not forwarded to one of the other cable modems if the corresponding stored address is present in the database.
  • 2. The system of claim 1, wherein the circuitry is further configured to send a reply back to the requesting one of the cable modems if the received discovery message is not forwarded, the reply providing the stored address to the requesting one of the cable modems.
  • 3. The system of claim 1, wherein the circuitry is further configured to: extract a network address from the received neighbor discovery message;compare the extracted network address to the database; andforward the received neighbor discovery message only if the extracted network address is absent from the database.
  • 4. The system of claim 1, wherein the circuitry is further configured to: identify a physical address corresponding to the received neighbor discovery request;compare the identified physical address to the database; andforward the received neighbor discovery message only if the identified physical address is absent from the database.
  • 5. The system of claim 1, wherein the neighbor discovery message is sent to a destination selected by the requesting cable modem, and the selected destination is not the CMTS, and the circuitry is further configured to: intercept the neighbor discovery message; andidentify, according to the comparison, at least one destination for forwarding the neighbor discovery message, the at least one identified destination being different than the selected destination.
  • 6. The system of claim 1, wherein bandwidth in the cable network is preserved when the CMTS filters the received neighbor discovery message.
  • 7. A method, comprising: examining a received neighbor discovery message using a Cable Modem Termination System (CMTS), the neighbor discovery message originating from one of a plurality of cable modems and formatted to be forwarded to one or more of the non-originating cable modems;identifying an address according to the examination using the CMTS, the address associated with information included in the neighbor discovery message;comparing, using the CMTS, the identified address to a database containing addressing information for the cable modems;filtering, using the CMTS, the neighbor discovery message according to the comparison, said filtering preventing the neighbor discovery message from being forwarded to the non-originating cable modems; andresponding to the requesting customer device using the CMTS if said filtering is performed.
  • 8. The method of claim 7, wherein the neighbor discovery message is received in accordance with Internet Protocol version 6.
  • 9. The method of claim 7, wherein the neighbor discovery message is a duplicate address detection message and the method further comprises: identifying the address by extracting the address from the duplicate address detection message; andforwarding the duplicate address detection message if the extracted address is absent from the database.
  • 10. The method of claim 7, wherein the neighbor discovery message is a media access control address request message and the method further comprises: filtering the media access control address request message and responding to the originating cable modem if the database includes a physical address corresponding to the identified address.
  • 11. The method of claim 7, further comprising recording a network address and a media access control address for the originating cable modem.
  • 12. The method of claim 7, wherein the database includes a list of network addresses and associated media access control addresses, and the method further comprises: identifying one of the media access control addresses associated with a network address provided in the neighbor discovery message.
  • 13. The method of claim 7, further comprising sending back a reply to the neighbor discovery message if the database includes a stored address that corresponds to the identified address, the reply sent to only the originating cable modem.
  • 14. The method of claim 7, further comprising sending back a reply to the neighbor discovery message if the database includes a stored address that corresponds to the identified address, the reply sent to the originating cable modem and selected other devices connected to the CMTS.
  • 15. A cable modem termination system, comprising: means for allowing the cable modem termination system to communicate with cable modems; andmeans for: receiving and processing a message from an originating one of the cable modems, the message requesting an address determination;identifying an address according to the processing, the address associated with information included in the message;comparing the identified address to a list containing addressing information for the cable modems;determining whether the list includes a stored address corresponding to the identified address according to the comparison; andpreventing the message from being forwarded according to the determination such that the message is not forwarded if the stored address is present in the list.
  • 16. The cable modem termination system of claim 15, further comprising means for storing a table of network addresses associated with media access control addresses.
  • 17. The cable modem termination system of claim 15, the means for receiving and processing, identifying, comparing, determining and preventing forwarding further comprising a digital signal processor.
  • 18. An article of machine-readable media containing instructions that when executed by a machine performs: receiving and processing a message from an originating one of a plurality of cable modems, the message requesting an address determination;identifying an address according to the processing, the address associated with information included in the message;comparing the identified address to a list containing addressing information for the cable modems;determining whether the list includes a stored address corresponding to the identified address according to the comparison; andpreventing the message from being forwarded to at least one network device according to the determination such that the message is not forwarded to the network device if the stored address is present in the list.
  • 19. The article of machine-readable medium of claim 18, wherein the instructions, when executed, cause the machine to respond to only the originating cable modem if the message is prevented from being forwarded to the network device.
  • 20. The article of machine-readable medium of claim 18, wherein the instructions, when executed, cause the machine to respond to the originating cable modem and selected other devices connected to the machine.
US Referenced Citations (135)
Number Name Date Kind
4977593 Ballance Dec 1990 A
5153763 Pidgeon Oct 1992 A
5457678 Goeldner Oct 1995 A
5604735 Levinson et al. Feb 1997 A
5724510 Arndt et al. Mar 1998 A
5784597 Chiu et al. Jul 1998 A
5805602 Cloutier et al. Sep 1998 A
5918019 Valencia Jun 1999 A
5931954 Hoshina et al. Aug 1999 A
5933420 Jaszewski et al. Aug 1999 A
5963557 Eng Oct 1999 A
6023769 Gonzalez Feb 2000 A
6078595 Jones et al. Jun 2000 A
6101180 Donahue et al. Aug 2000 A
6137793 Gorman et al. Oct 2000 A
6233235 Burke et al. May 2001 B1
6233246 Hareski et al. May 2001 B1
6275990 Dapper et al. Aug 2001 B1
6381214 Prasad Apr 2002 B1
6418324 Doviak et al. Jul 2002 B1
6434141 Oz et al. Aug 2002 B1
6438123 Chapman Aug 2002 B1
6490727 Nazarathy et al. Dec 2002 B1
6510162 Fijolek et al. Jan 2003 B1
6516345 Kracht Feb 2003 B1
6546017 Khaunte Apr 2003 B1
6556591 Bernath et al. Apr 2003 B2
6640248 Jorgensen Oct 2003 B1
6693878 Daruwalla et al. Feb 2004 B1
6697970 Chisholm Feb 2004 B1
6698022 Wu Feb 2004 B1
6763019 Mehta et al. Jul 2004 B2
6763032 Rabenko et al. Jul 2004 B1
6771606 Kuan Aug 2004 B1
6804251 Limb et al. Oct 2004 B1
6819682 Rabenko et al. Nov 2004 B1
6847635 Beser Jan 2005 B1
6853680 Nikolich Feb 2005 B1
6857132 Rakib et al. Feb 2005 B1
6901079 Phadnis et al. May 2005 B1
6950399 Bushmitch et al. Sep 2005 B1
6959042 Liu et al. Oct 2005 B1
6993016 Liva et al. Jan 2006 B1
6993353 Desai et al. Jan 2006 B2
6996129 Krause et al. Feb 2006 B2
7006500 Pedersen et al. Feb 2006 B1
7007296 Rakib et al. Feb 2006 B2
7023882 Woodward, Jr. et al. Apr 2006 B2
7039049 Akgun et al. May 2006 B1
7065779 Crocker et al. Jun 2006 B1
7067734 Abe et al. Jun 2006 B2
7110398 Grand et al. Sep 2006 B2
7113484 Chapman et al. Sep 2006 B1
7116643 Huang et al. Oct 2006 B2
7117526 Short Oct 2006 B1
7139923 Chapman et al. Nov 2006 B1
7145887 Akgun et al. Dec 2006 B1
7149223 Liva et al. Dec 2006 B2
7161945 Cummings Jan 2007 B1
7164690 Limb et al. Jan 2007 B2
7197052 Crocker Mar 2007 B1
7206321 Bansal et al. Apr 2007 B1
7209442 Chapman Apr 2007 B1
7269159 Lai Sep 2007 B1
7290046 Kumar Oct 2007 B1
7359332 Kolze et al. Apr 2008 B2
7363629 Springer et al. Apr 2008 B2
20010010096 Horton et al. Jul 2001 A1
20010055319 Quigley et al. Dec 2001 A1
20010055469 Shida et al. Dec 2001 A1
20020009974 Kuwahara et al. Jan 2002 A1
20020010750 Baretzki Jan 2002 A1
20020023174 Garret et al. Feb 2002 A1
20020052927 Park May 2002 A1
20020067721 Kye Jun 2002 A1
20020073432 Kolze Jun 2002 A1
20020073433 Furuta et al. Jun 2002 A1
20020088003 Salee Jul 2002 A1
20020093935 Denney et al. Jul 2002 A1
20020093955 Grand et al. Jul 2002 A1
20020131403 Desai et al. Sep 2002 A1
20020131426 Amit et al. Sep 2002 A1
20020133618 Desai et al. Sep 2002 A1
20020136203 Liva et al. Sep 2002 A1
20020141585 Carr Oct 2002 A1
20020144284 Burroughs et al. Oct 2002 A1
20020146010 Shenoi et al. Oct 2002 A1
20020147978 Dolgonos et al. Oct 2002 A1
20020154655 Gummalla et al. Oct 2002 A1
20020161924 Perrin et al. Oct 2002 A1
20020198967 Iwanojko et al. Dec 2002 A1
20030014762 Conover et al. Jan 2003 A1
20030058794 Pantelias et al. Mar 2003 A1
20030061415 Horton et al. Mar 2003 A1
20030066087 Sawyer et al. Apr 2003 A1
20030067944 Sala et al. Apr 2003 A1
20030101463 Greene et al. May 2003 A1
20030140131 Chandrashekhar et al. Jul 2003 A1
20030163341 Banerjee et al. Aug 2003 A1
20030214943 Engstrom et al. Nov 2003 A1
20030214982 Lorek et al. Nov 2003 A1
20040039466 Lilly et al. Feb 2004 A1
20040045037 Cummings et al. Mar 2004 A1
20040073902 Kao et al. Apr 2004 A1
20040101077 Miller et al. May 2004 A1
20040105403 Lin et al. Jun 2004 A1
20040105406 Kayama et al. Jun 2004 A1
20040143593 Le Maut et al. Jul 2004 A1
20040160945 Dong et al. Aug 2004 A1
20040163129 Chapman et al. Aug 2004 A1
20040181800 Rakib et al. Sep 2004 A1
20040244043 Lind et al. Dec 2004 A1
20040248530 Rakib et al. Dec 2004 A1
20050018697 Enns et al. Jan 2005 A1
20050122976 Poli et al. Jun 2005 A1
20050138669 Baran Jun 2005 A1
20050198684 Stone et al. Sep 2005 A1
20050201399 Woodward, Jr. et al. Sep 2005 A1
20050226257 Mirzabegian et al. Oct 2005 A1
20050232294 Quigley et al. Oct 2005 A1
20050259645 Chen et al. Nov 2005 A1
20050265261 Droms et al. Dec 2005 A1
20050265309 Parandekar Dec 2005 A1
20050265338 Chapman et al. Dec 2005 A1
20050265376 Chapman et al. Dec 2005 A1
20050265392 Chapman et al. Dec 2005 A1
20050265394 Chapman et al. Dec 2005 A1
20050265397 Chapman et al. Dec 2005 A1
20050265398 Chapman et al. Dec 2005 A1
20050289623 Midani et al. Dec 2005 A1
20060002294 Chapman et al. Jan 2006 A1
20060159100 Droms et al. Jul 2006 A1
20060168612 Chapman et al. Jul 2006 A1
20070274345 Taylor et al. Nov 2007 A1
20080037545 Lansing et al. Feb 2008 A1
Foreign Referenced Citations (4)
Number Date Country
0072509 Nov 2000 WO
0072509 Nov 2000 WO
2005117310 Dec 2005 WO
2005117358 Dec 2005 WO
Related Publications (1)
Number Date Country
20050265261 A1 Dec 2005 US