SYN 패킷을 보내고 ACK/SYN을 받으면 ACK 까지 보내는 코드를 만들었다.

성공하면 ESTABLISHED 상태가 되야한다.

하지만 실패했다. 왜냐하면

세번째에서 자동으로 RST 패킷이 나간다음 연결이 끊어진 뒤

네번째에서 ACK 패킷을 보내기 때문이다.

iptables에 OUTPUT 룰을 추가한다.

  # iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP

다시 해보면

ACK/SYN 을 받은후 ACK 를 보낸것을 볼 수 있다.

서버에서도 ESTABLISHED 상태로 변경된 것을 확인 가능.

이미 Established 된 상태에서  또 SYN 을 보내게 되면

  SYN -> 

              <- ACK

             <- ACK

                         <- ACK가 오게됨

3 Way Handshake 과정이 tcp 소켓 프로그래밍에서 connect 메소드를 쓰면 한번에 끝남



WRITTEN BY
Bugday

,