TCP 3way handshake는 가상회선을 수립하는 단계이다. 클라이언트는 서버에 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지 확인하는 과정.
SYN, ACK 패킷을 주고받으며, 임의의 난수로 SYN플래그를 전송하고, ACK 플래그에는 1을 더한값을 전송한다.
Client > Server : TCP SYN
Server > Client : TCP SYN ACK
Client > Server : TCP ACK
TCP 4way handshake는 반대로 TCP 연결을 해제하는 단계이다. 클라이언트가 서버에게 연결 해제를 통지하고 서버가 이를 확인하고 클라이언트에게 이를 받았음을 통지하고 연결을 해제 시킨다.(서버가 소켓을 닫아도 클라이언트 측은 일정시간 대기하는데 패킷이 늦게 도착할 수 있기 때문)
출처 : https://github.com/ksundong/backend-interview-question
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake [Mind Net]