Re: tcp_timestamps problems with BSD ? (2.2.14,2.2.16)

From: Aki M Laukkanen (amlaukka@cc.helsinki.fi)
Date: Fri Jun 09 2000 - 07:54:36 EST


On Fri, 9 Jun 2000, Filius, Arjan wrote:
> Here it is: (i shortened it because maximum message size on linux-kernel)

Your other dump had:
06:16:44.644780 194.151.216.202.http > 10.1.3.120.search-agent: . 1481498025:1481499473(1448) ack 510105446 win 8760 <nop,nop,timestamp 301982 6399689> (frag 16472:1480@0+) (ttl 46)
06:16:44.644809 194.151.216.202 > 10.1.3.120: (frag 16472:12@1480) (ttl 46)
06:16:44.645085 10.1.3.120.search-agent > 194.151.216.202.http: R 510105446:510105446(0) win 0 (ttl 255, id 10073)

Btw. WTF was that? Almost looks like pure garbage. Infoseek search agent
doesn't say much to me.

> With tcp_timestamp=1:
> 06:24:13.273021 194.151.216.202.http > 10.1.3.120.1269: . 141:141(0) ack 443 win 8760 <nop,nop,timestamp 303429 6445420> (DF) (ttl 46, id 128)
> 06:24:13.296879 194.151.216.202.http > 10.1.3.120.1271: . 1013:1013(0) ack 383 win 8760 <nop,nop,timestamp 303430 6445422> (DF) (ttl 46, id 140)
> 06:24:13.338438 10.1.3.120.1252 > 194.151.216.202.http: . 324:324(0) ack 11681 win 32120 <nop,nop,timestamp 6445430 302878> (DF) (ttl 64, id 10152)
> 06:25:20.831866 194.151.216.202.http > 10.1.3.120.1252: . 11681:13129(1448) ack 324 win 8760 <nop,nop,timestamp 303014 6445430> (frag 49066:1480@0+) (ttl 46)
> 06:25:20.831896 194.151.216.202 > 10.1.3.120: (frag 49066:12@1480) (ttl 46)

The sender embeds a TCP timestamp option to the message which causes
fragmentation. Maybe that throws something on the route seriously
off-balance? Your Firewall/NAT box?

Should we prevent fragmentation? The logic below is passive. In active
case the other host might not support timestamps and then we'd be stuck
with a lower mss.

--- linux-2.4.0-test1-ac6.bak/net/ipv4/tcp_output.c Wed Apr 12 19:12:36 2000
+++ linux-2.4.0-test1-ac6/net/ipv4/tcp_output.c Fri Jun 9 15:48:15 2000
@@ -998,8 +1003,10 @@
        th->window = htons(req->rcv_wnd);
 
        TCP_SKB_CB(skb)->when = tcp_time_stamp;
- tcp_syn_build_options((__u32 *)(th + 1), dst->advmss, req->tstamp_ok,
- req->sack_ok, req->wscale_ok, req->rcv_wscale,
+ tcp_syn_build_options((__u32 *)(th + 1),
+ req->tstamp_ok ? dst->advmss - TCOLEN_TSTAMP_ALIGNED : dst->advmss,
+ req->tstamp_ok, req->sack_ok,
+ req->wscale_ok, req->rcv_wscale,
                              TCP_SKB_CB(skb)->when,
                              req->ts_recent);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jun 15 2000 - 21:00:18 EST