Re: valid INPUT/OUTPUT rule piece?--> '-p tcp --tcp-flags ACK, FIN FIN -j DROP', etc.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 25, 2005 at 09:26:58PM -0800, seberino@xxxxxxxxxxxxxxx wrote:
> Lopsch
> 
> Thanks for your email.  I know a little about TCP flags.
> IIRC, ACK means 'Acknowlegement'
> and FIN means 'Finish Connection'.
> 
> Why would TCP want everyone to turn on ACK when they
> want to finish a connection with FIN?
> 
> I assume that TCP was written to do 2 errands in one
> TCP datagram?...1. acknowledge last datagram received
>                 2. terminate connection
> 
> It seems odd you can't terminate a connection (FIN)
> without also acknowledging something to me.
> 
> Chris

read:
  http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh.htm

and:
  http://www.tcpipguide.com/free/t_TCPConnectionTermination.htm

if you want a better understanding of TCP connection setup and
termination and the flags set during each phase.

the quick answer to your question is that an actual OS TCP/IP stack will
always set the ACK bit when sending a FIN, URG, or PSH packet.  FIN,
URG, and PSH packets that are sent without the ACK bit set were probably
generated by some scanner tool (nmap, hping) or by somebody's custom
code (perl script).

-j

--
"Operator! Give me the number for 911!"
        --The Simpsons


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux