There's no such thing as "UDP ICMP "echo"". traceroute sends a UDP probe with an increasing TTL. That probe is a single datagram destined for a high port which is unlikely to be a listening service. As the datagram flows out across the network, the TTL decrements until it hits zero at which point an ICMP ERROR ("time exceeded") is generated. That ICMP message identifies a "hop". When the TTL is enough to reach the target, as there's no listener on that port, an ICMP "port unreachable" error is generated, thus ending the trace.
The purpose of tcptraceroute
is to do the same sort of path check with a TCP connection. It is most useful in diagnosing connection issues to a specific service. (eg. a web server) As the probes look like a normal TCP connection attempt, they'll go through NAT, firewalls, ACLs, rate-limits, etc. exactly as a connection from the intended application.
An ICMP Echo request from the DHCP server to the IP address its about to allocate is used to determine if the IP address about to be assigned is already in use on the network.
If a response is received from that IP the DHCP server will assign a different address.
The ARP request on the newly received address from the client would do the same, check if another device is using that address and responding to ARP. If so it knows the address it received is already in use.
The RFC you linked to does mention later on:
Servers need not reserve the offered network address, although the protocol will
work more efficiently if the server avoids allocating the offered
network address to another client. When allocating a new address,
servers SHOULD check that the offered network address is not
already in use; e.g., the server may probe the offered address
with an ICMP Echo Request. Servers SHOULD be implemented so that
network administrators MAY choose to disable probes of newly
allocated addresses.
I am not certain if all DHCP servers implement this requirement but as far as I am aware there is no other way a DHCP server could reliably become aware of another device using an IP that is available in its DHCP pool.
Also from the same RFC regarding ARP from the clients:
if the client is on a network that
supports ARP, the client may issue an ARP request for the suggested
request. ... If the network address appears to be in use, the client MUST send a
DHCPDECLINE message to the server
Best Answer
Traceroute (the technique) technically doesn't rely on ICMP echo requests but rather a type of ICMP unreachable. The idea is that the host sends a packet with a low TTL value and then more with successively higher values. As these packets are dropped by the various routers in the path a TTL exceeded / unreachable message is sent back. The source of this message is then added to the list of hosts in the path.
As for the packet the host sends in the first place? That can vary, but to give you an idea the standard Linux
traceroute
command uses UDP. I believe the Microsofttracert
command uses an ICMP echo, though.