NOTICE: Citizendium is still being set up on its newer server, treat as a beta for now; please see here for more.
Citizendium - a community developing a quality comprehensive compendium of knowledge, online and free. Click here to join and contribute—free
CZ thanks our previous donors. Donate here. Treasurer's Financial Report -- Thanks to our content contributors. --

Neighbor Discovery

From Citizendium, the Citizens' Compendium
Revision as of 14:24, 8 August 2008 by TJ Evans (Talk | contribs) (Neighbor Discovery)

Jump to: navigation, search
This article is developing and not approved.
Main Article
Definition [?]
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
This editable Main Article is under development and not meant to be cited; by editing it you can help to improve it towards a future approved, citable version. These unapproved articles are subject to a disclaimer.

The Neighbor Discovery Protocol is the name of a series of processes used by IPv6 for the purposes of Neighbor Discovery (a bit of recursive naming there, sorry!), Router Discovery and Neighbor Unreachability Detection (NUD). The actual act of Neighbor Discovery is how IPv6 nodes determine the L2 address (e.g. - MAC) for a known L3 address (e.g. - IPv6); very analogous to the function performed by ARP in IPv4.

Neighbor Discovery

The goal of Neighbor Discovery is to allow nodes on-link with each other to communicate. In order to accomplish this on most media types, the source needs to "discovery" the L2 (e.g. - MAC) address of the destination.

In IPv4 this is done using ARP, which while certainly functional, entails the use of broadcast. Broadcast-based mechanisms, by definition, interrupt all other hosts on that network segment.

IPv6 uses multicast-based Neighbor Discovery to accomplish this goal, without interrupting every other node on that link. Ideally, only the correct destination node receives the frame/packet.

This is accomplished in several steps:

 Let's assume a destination address of 2001:db8:1:1::1.
     This is mapped into the "Solicited Node Multicast Address" (SNMA) format of ff02::1:ffXX:XXXX.
     The XX:XXXX represent the last 24 bits of the SNMA, and are derived directly from the last 24 bits of the destination address.
 Resulting in a SNMA ff02::1:ff00:0001, or ff02::1:ff00:1.
     This, being a multicast address, can be mapped to a multicast MAC address, using the format 33-33-XX-XX-XX-XX
 Resulting in 33-33-ff-00-00-01
     This is a MAC address that is only being listened for by nodes sahring the same last 24 bits.

In other words, while there is a chance for a "address collision", it is a vast improvement over ARP's guaranteed "collision".

With the above process in mind, now we can get into how we use them ... There are two new ICMPv6 messages for this portion of Neighbor Discovery, the Neighbor Advertisement and the Neighbor Solicitation. (In IPv4 we would call these ARP-Request and ARP-Reply.)

Router Discovery

Neighbor Unreachability Detection