Connection tracking - CLOSE_WAIT and FIN_WAIT

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

 



Hello list,

I just carried out a couple of tests to see how conntrack changes the state
of a TCP stream -

----------- test 1 -------------------------------------------------
1. (A) ---->SYN----->(B)  FW state = SYN_SEND
2. (A) <---SYN+ACK-- (B)  FW state = SYN_RECV
3. (A) -----ACK----->(B)  FW state = ESTABLISHED (ASSURED)

4. (A) --->FIN+ACK-->(B)  FW state = FIN_WAIT
5. (B) <-----ACK---- (B)  FW state = TIME_WAIT (times out after 2 mins)

----------- test 2 -------------------------------------------------
1. (A) ---->SYN----->(B)  FW state = SYN_SEND
2. (A) <---SYN+ACK-- (B)  FW state = SYN_RECV
3. (A) -----ACK----->(B)  FW state = ESTABLISHED (ASSURED)

4. (A) <---FIN+ACK-- (B)  FW state = CLOSE_WAIT
5. (B) -----ACK----> (B)  FW state = TIME_WAIT (times out after 2 mins)



Now step (4) of test 1 leads to FIN_WAIT state, but step (4) of test 2 leads
to CLOSE_WAIT.
The only difference between the two is the direction of packet flow. So the
question - is this the expected behaviour? If yes, what is the purpose?


dhiraj


[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