Add option to display MSS TCP option
Brought to you by:
buc
Existing traceroute -T -O mss=xxx lets a user specifies the value within the TCP MSS option. To detect issues with clamping (routers rewriting the MSS with a different value), it would be nice to display the MSS value as found in the ICMP and TCP replies. Today this can be achieved by running a tcpdump at the same time traceroute is running.
Attaching a patch with a proof of concept. What do you think?
$ sudo traceroute -T quay.io -p 443 -O mss=1600,info,opt
traceroute to quay.io (54.237.6.148), 30 hops max, 60 byte packets
..
4 10.54.65.220 (10.54.65.220) <mss=1600 > 1.044 ms 1.018 ms 0.990 ms
5 10.54.91.90 (10.54.91.90) <mss=1600 > 1.106 ms 1.082 ms 1.056 ms
..
10 46.218.128.74 (46.218.128.74) <mss=1452 > 17.628 ms 17.608 ms 17.587 ms
11 54.237.6.148 (54.237.6.148) <mss=1452 syn,ack> 96.280 ms 100.208 ms 96.227 ms
Francois wrote:
Thanks for the info!
Currently we only parse TCP flags and only from the final probe. (The
idea was to add a feature similar to the old tcptraceroute that could
show whether the destination port is open or not).
Now it looks like it's time to extend this functionality to show all the
parameters (not flags only) and for all the probes (not just the final
ones).
I think it would be appropriate to create a new option for this and name
it like "-O all_info", which prints all the tcp flags and tcp opts from
all the relpies (and the current "-O info" is included in it as a subset).
I'll look into this soon. And we should add support for all possible
options here (not mss only).
As usual, the hardest part is choosing the right name. :) "all_info" is
a bit clunky. Maybe something like "-O header"?
Very thanks for the idea!
Implemented now in 2.1.4