키워드
•
3 way handshake → 연결 ( 이것 좀 해줘! -> 알겠어 포트 열어 줄래? -> 연결 성공! )
•
4 way handshake → 해제 ( 나 다했어 ! -> 잠깐만! 기다려줘 -> 나도 끝났어 ~!~ -> 연결 종료 성공! )
•
SYN → 연결 설정
•
ACK → 응답 확인
•
FIN → 연결 해제
TCP 3 way handshake
TCP 3 way handshake란 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정입니다.
양쪽 모두 데이터를 전송할 준비가 되어있다는 것을 보장합니다.
해. 줘.
클라이언트가 서버에게 SYN (연결 요청 메시지)를 전송합니다.
송신자가 최초로 데이터를 전송할 때 Sequence Number를 임의의 숫자로 지정하고,
SYN 플래그 비트를 1로 설정한 세그먼트(데이터를 메시지의 형태로 보내는 블록 단위)를 전송합니다.
포트 열.어.
접속 요청을 받은 서버가 요청을 수락했으며, 클라이언트도 포트를 열어 달라는 메시지를 전송합니다. ( SYN + ACK )
수신자는 ACK를 SEQ + 1로 지정하고, SYN과 ACK 플래그 비트를 1로 설정한 세그먼트를 전송합니다.
연결 성공!
마지막으로 클라이언트가 수락 확인을 보내 연결을 맺습니다.
이때 전송할 데이터가 있으면 이 단계에서 데이터를 전송할 수 있습니다.
TCP 4 way handshake
TCP 4 way handshake란 연결을 해제하는 과정을 의미합니다.
다. 했. 어.
클라이언트가 서버에게 연결을 종료하겠다는 FIN 플래그를 전송합니다. 서버가 FIN 플래그로 응답하기 전까지 연결을 유지합니다.
잠. 깐. 만.
서버는 확인 메시지를 보내고 자신의 통신이 끝날 때까지 기다립니다. ( TIME_WAIT 상태 )
나도 끝. 났. 어.
서버가 통신이 끝났으면 연결 종료 요청에 합의한다는 뜻으로 클라이언트에 FIN 플래그를 전송합니다
연결 종료!
클라이언트는 확인했다는 ACK 메시지를 전송합니다.