Join the link
Your computer joins a network with the IPv6 address 2001:db8:1::10. IPv6 has no ARP and no broadcast. Neighbor Discovery does that job: small ICMPv6 messages sent to multicast groups, addresses that only interested devices listen to.
Before using the address, your computer checks nobody else has it: Duplicate Address Detection. It sends a Neighbor Solicitation about its own address, from the empty address ::. Nobody answers within a second, so the address is safe to use.
Next it looks for a router. It sends a Router Solicitation to ff02::2, the all-routers group. The switch copies it to every port, but only the router listens to that group; the other computer's network card drops it.
The router replies with a Router Advertisement to ff02::1, all nodes, so every computer hears it: "Use me as your default router for 1800 seconds. The prefix 2001:db8:1::/64 is on this link." It also carries the router's MAC.
Find a neighbor
To reach 2001:db8:1::20 you need its MAC. The neighbor cache has no row, so it adds one marked INCOMPLETE and sends a Neighbor Solicitation to ff02::1:ff00:20, a solicited-node group that only addresses ending in 00:20 join.
The neighbor answers with a Neighbor Advertisement sent only to you: "2001:db8:1::20 is at 00:00:5e:00:53:20." Its Solicited flag says it answers your question, so your cache marks the row REACHABLE, meaning recently confirmed.
REACHABLE lasts about 30 seconds. With no fresh sign of life the row turns STALE: still used, but no longer trusted. When traffic goes to a STALE neighbor, your computer waits a few seconds, then checks with a direct Neighbor Solicitation.
Redirects
Now you send a packet to 2001:db8:2::20, the neighbor's second address. That prefix was not in the advertisement, so your computer thinks it is far away and hands the packet to its default router, using the MAC the advertisement carried.
The router sees the packet must go back out the same link, to the computer next to you. It forwards it, then sends you an ICMPv6 Redirect: "2001:db8:2::20 is your neighbor, at 00:00:5e:00:53:20. Send to it directly."
Your computer saves the tip: a cache row for 2001:db8:2::20 at the neighbor's MAC, marked STALE until confirmed. The next packets go straight across the switch. One protocol now does ARP's job plus finding routers, checking duplicates and redirecting.
The message, field by field
;; step 1/10 · no-arp
;; at You ::10
you: 2001:db8:1::10 (link-local fe80::10)
MAC 00:00:5e:00:53:10
Neighbor Discovery = RFC 4861, inside ICMPv6 (next header 58)
frames are plain IPv6, type 0x86dd; ARP needed its own type 0x0806
every ND message leaves with hop limit 255
IPv6 multicast rides in Ethernet frames addressed to 33:33 plus the last 32 bits of the group (RFC 2464), so ff02::1:ff00:20 becomes 33:33:ff:00:00:20. A network card ignores groups it has not joined, so unlike an ARP broadcast, other computers are not disturbed. Switches with MLD snooping go further and only send the frame to ports that joined. Hop limit 255 proves a message came from the same link, but anyone on the link can still lie, just like with ARP. Defences include RA Guard on switches (RFC 6105) and Secure Neighbor Discovery (SEND, RFC 3971), which signs messages but is rarely deployed.