lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 11 Sep 2017 08:22:28 -0700 From: Eric Dumazet <eric.dumazet@...il.com> To: liujian56@...wei.com Cc: davem@...emloft.net, kuznet@....inr.ac.ru, yoshfuji@...ux-ipv6.org, edumazet@...gle.com, ycheng@...gle.com, hkchu@...gle.com, netdev@...r.kernel.org, weiyongjun1@...wei.com Subject: Re: [PATCH] tcp: TCP_USER_TIMEOUT can not work in tcp_probe_timer() On Mon, 2017-09-11 at 08:13 -0700, Eric Dumazet wrote: > You can see we got only 3 probes, not 4. Here is complete packetdrill test showing that code behaves as expected. 0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 +0 bind(3, ..., ...) = 0 +0 listen(3, 1) = 0 +0 < S 0:0(0) win 0 <mss 1460,sackOK,nop,nop,nop,wscale 7> +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 8> // Client advertises a zero receive window, so we can't send. +.1 < . 1:1(0) ack 1 win 0 +0 accept(3, ..., ...) = 4 +0 setsockopt(4, SOL_TCP, TCP_USER_TIMEOUT, [3000], 4) = 0 +0 write(4, ..., 2920) = 2920 // Window probes are scheduled just like RTOs. +.3~+.31 > . 0:0(0) ack 1 +.6~+.62 > . 0:0(0) ack 1 +1.2~+1.24 > . 0:0(0) ack 1 // Peer opens its window too late ! +3 < . 1:1(0) ack 1 win 1000 +0 > R 1:1(0)
Powered by blists - more mailing lists