IPv6 Core Protocols Implementation

The IPv6 Neighbor Discovery (ND) Protocol provides a set of solutions to resolve the various communication-related issues facing the nodes.
The ND protocol enables address resolution, that is, it resolves an IPv6 address to its corresponding link-layer address of an interface in the IPv6 node. During operation a node may change its link-layer address. Neighboring nodes that are on the same link can detect this link-layer address change through specific ND protocol packets. The ND protocol for address resolution is independent of the link type because the protocol operates at the ICMPv6 layer.
The ND protocol enables router discovery. Through the ND protocol a host can detect the presence of routers and determine the identity of those that are willing to forward packets. Therefore, the ND protocol eliminates the need for a host to snoop on routing protocol messages, such as RIPng messages, in order to determine the availability of active routers that are present on its attached links. A host can determine the presence of routers through active queries or through the passive reception of Router Advertisements.
The ND protocol enables prefix discovery. A router can distribute prefix information onto its directly attached links with the ND protocol. The prefix information enables hosts on those links to determine which addresses are on-link, and which addresses are reachable via a router. This operation is known as on-link determination. A node considers an address to be on-link if that address satisfies one of the following conditions:...