Re: TCP Stack: Challenge ACKs and Timestamps

From: Oliver Pinter <oliver.pinter_at_hardenedbsd.org>
Date: Mon, 28 Dec 2015 14:14:59 +0100
On Monday, December 28, 2015, Sam Kumar <samkumar99_at_gmail.com> wrote:

> Hello,
> I am working with the code for the TCP Stack. I noticed that support for
> Challenge Acks have been added since the latest release (10.2.0), and I
> think I may have found a bug in how they relate to TCP timestamps. All line
> numbers below are those in commit e66e064c45687b5d294565dbd829b419848f7992.
>
> Looking at tcp_input.c, at lines 1594 to 1604, I see code that expects a
> timestamp to be in every segment during the session, if they were
> negotiated when the connection was being established.
> (
>
> https://github.com/freebsd/freebsd/blob/master/sys/netinet/tcp_input.c#L1595
> )
>
> Looking at tcp_input.c, at lines 2161 and 2188, I see that Challenge ACKs
> are sent via calls to tcp_respond().
> (
>
> https://github.com/freebsd/freebsd/blob/master/sys/netinet/tcp_input.c#L2161
> and
>
> https://github.com/freebsd/freebsd/blob/master/sys/netinet/tcp_input.c#L2188
> )
>
> Looking at tcp_subr.c, at line 978, I see that the segment sent by
> tcp_respond() never contains TCP options.
> (
> https://github.com/freebsd/freebsd/blob/master/sys/netinet/tcp_subr.c#L978
> )
>
> Therefore, it seems to me that Challenge ACKs will never contain any TCP
> options. This violates the condition that once timestamps are negotiated,
> they must be present in every segment.
>
> Please let me know if I am mistaken, or if this is actually a bug.


Cc hiren and gnn


>
> Sam Kumar
> _______________________________________________
> freebsd-current_at_freebsd.org <javascript:;> mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org
> <javascript:;>"
>
Received on Mon Dec 28 2015 - 12:15:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC