Wierd networking.

Julian Elischer julian at ironport.com
Fri Jul 20 18:23:34 UTC 2007


Eygene Ryabinkin wrote:
> Julian, good day.
>
> Thu, Jul 19, 2007 at 09:33:28AM -0700, Julian Elischer wrote:
>   
>> replying to myself.. the comment in the code in  question said:
>>
>> /*-----------------------------------------------------------------*/
>>     
>>> /** if the elaborateTCPFin option is set, keeps the socket open
>>> * and drains it until the other side closes it.  Solves a problem
>>> * with IE spewing extra client data to a Linux socket, then reporting
>>> * an error in response a TCP reset (rather than FIN) from Linux */
>>>       
>> which is EXACTLY the problem I was seeing :-)
>>     
>
> I assume that you're talking about Squid code?
>   

no
this is a proprietary cache program..

> Do you think that FreeBSD TCP/IP stack should also do something
> about this problem?  The situation where one side closes the
> descriptor while other it still trying to push the data is legal:
> for example, one side invokes close() but some data from other side
> is in transit, so we will see some unneccessary FIN packets.  Or
> you believe that fixing this is irrelevant?
>   

I think that the possible courses of action are:

1/ Ignore further incoming data, but ACK it.
      (this is basically what the userland code does in this case)
2/ Stop ACKing the data, and let the other end time out.
3/ Send a RST




More information about the freebsd-net mailing list