Menu

#5 Add option to display MSS TCP option

Unstable (example)
closed
nobody
None
5
2023-12-13
2023-10-30
Francois
No

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
1 Attachments

Discussion

  • Dmitry Butskoy

    Dmitry Butskoy - 2023-10-30

    Francois wrote:

    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?

    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"?

     
    👍
    1
  • Dmitry Butskoy

    Dmitry Butskoy - 2023-12-13
    • status: open --> closed
     
  • Dmitry Butskoy

    Dmitry Butskoy - 2023-12-13

    Very thanks for the idea!

    Implemented now in 2.1.4

     
    ❤️
    1

Log in to post a comment.

MongoDB Logo MongoDB