When using the traceroute command. For example:
$ traceroute google.com
The output I get shows
hop No. | hostname (ip) | latency 1 | latency 2 | latency 3
Which for google shows the following:
traceroute to google.com (216.58.223.14), 64 hops max, 52 byte packets
1 192.168.119.1 (192.168.119.1) 1.321 ms 0.980 ms 0.936 ms
2 rtr3-c16-dc1.macrolan.co.za (41.222.225.255) 1.815 ms 1.578 ms 1.788 ms
3 ae0.0.rtr1-ca12-tc1.macrolan.co.za (154.70.222.7) 1.861 ms 2.603 ms 1.989 ms
4 xe-0/0/3.4000.rtr1-c3h12-tc2.macrolan.co.za (129.205.134.27) 38.447 ms 46.682 ms 21.668 ms
5 google.ixp.joburg (196.60.8.166) 17.787 ms 18.059 ms 17.713 ms
6 72.14.237.239 (72.14.237.239) 17.668 ms 17.882 ms 17.497 ms
7 jnb01s07-in-f14.1e100.net (216.58.223.14) 17.528 ms 18.004 ms 17.642 ms
Considering that TCP requests receive ACKs from the destination, and not individual hop destinations, I assume that traceroute therefore has to identify individual hop destinations in order to assess latency between the different hops.
Is this correct? If so, how does it do this?