Subject: Re: TCP Connection teardown seems to violate TCP specification

From: Rick Jones <[email-masked]>
Date: Wed, 14 Aug 2013 13:14:23 -0700

On 08/14/2013 12:50 PM, Yuchung Cheng wrote:
> On Wed, Aug 14, 2013 at 12:21 PM, Damian Lukowski
> <[email-masked]> wrote:
>> Hi,
>>
>> the TCP specification states that an endpoint has to accept
>> packets from the other side even after it has half-closed the
>> connection locally. This does not seem to be the case
>> under Linux?
>>
>> For example, when I wget -O /dev/null https://www.verisign.com/
>> --max-redir 0, the local TCP stack sends an FIN,ACK close to the end.
>> However, the webserver has more data to send (Encrypted Alert).
>> Instead of ACKing the packet, the local side sends a RST.
>> This seems wrong to me.
>
> Which wget are you using? it's not doing half-close (i.e.,
> shutdown(SHUT_WR)) on my wget version 1.13.4

I suspect that when Damian system call traces his wget he will find it 
is doing either:

close()

or
shutdown(SHUT_WR)
close()
without waiting for the read return of zero from the remote.

it may even be just exiting after getting the last bytes of the URL, 
which would be an implicit close()

Over the years I've seen examples of all three behaviours.

rick jones

>
>
>>
>> Regards
>>   Damian
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>> the body of a message to [email-masked]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>