The process by which an IPv6 host sends a unicast IPv6 packet uses a combination of the local host's conceptual data structures and the ND protocol. An IPv6 host uses the following algorithm when sending a unicast packet to an arbitrary destination:
If an entry matching the destination address is not found in the destination cache, determine if the destination address matches a prefix in the prefix list.
If the destination address matches a prefix in the prefix list, the next-hop address is set to the destination address. Go to step 3.
If the destination address does not match a prefix in the prefix list, check to see if there is a default router.
If there is no default router (and there are no routers in the default router list), the next-hop address is set to the destination address.
If an entry matching the next-hop address is not found in the neighbor cache, use address resolution to obtain the link-layer address for the next-hop address.
If address resolution fails, indicate an error.
Figure 6-30 shows the host sending algorithm in flowchart form.
Figure 6-30. The host sending algorithm
Because the IPv6 protocol for the Windows .NET Server 2003 family and Windows XP uses a routing table in place of a prefix list and default router list, the host-sending algorithm uses a different method to determine the next-hop address for the destination. For more information, see "End-to-End IPv6 Delivery Process" in Chapter 10, "IPv6 Routing."