When I perform a traceroute, the first packet I send has ttl=1 and the reply is always "null" "timeout" from my router. That's the fist thing I don't understand: why my router doesn't send me a time exceeded icmp message?
Using wireshark I observed that there are at least 2 duplicate of first paket (the one with ttl=1), and only one null reply from router.
I thought it was my code's problem, but there are a lot of videos on youtube where wireshark shows the same thing: the pc sends 2 or 3 packets with ttl=1 before receiving a time exceeded icmp message and increment ttl to 2.
Can you explain this please?
edit: I've made a mistake: the "null" or "timeout" packet isn't sent by the router; it's a message from pc that hasn't received yet any packet. So ttl isn't increased. Now I can formulate the correct question: Why the first packet cant' reach the destination? It's not a matter of ttl (i can set it to 2-3-4 and I always have the same duplicate on fist sending).
Maybe it's a fragmentation problem? but why? Some wireshark's logs hilight that after first transmission mss (or mtu..can't rememebr) is changed.