🎈TCP 3-way handshaking
TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정. TCP의 연결을 초기화 할 때 사용.
① client에서 웹서버로 연결을 최초시도시 먼저 SYN 패킷을 보낸다
② SYN 패킷을 보낸 클라이언트는 SYN-SENT 상태가 된다
④ server에서 CLOSED는 port가 닫혀잇는 상태를 뜻하고, 포트가 서비스 가능한 상태인 LISTEN 상태로 만들어 주어야 한다
⑤ LISTEN상태에서 클라이언트로부터 SYN 패킷을 받으면 이에 대한 응답으로 SYN+ACK 패킷을 클라이언트로 보낸다
⑥ server로부터 SYN+ACK 패킷을 받으면, 클라이언트는 ESTABLISHED상태로 변하게 되면서 연결을 확인한다
⑦ 클라이언트는 server에 대한 응답으로 ACK 패킷을 보낸다
⑧ server는 이 ACK 패킷을 받고 해당 클라이언트 IP에 대한 포트 ESTABLISHED상태로 전환
⑨ 이로써 server와 클라이언트의 TCP 3 way handshaking 과정을 마치게 된다
🎈TCP 4-way handshaking
세션을 종료하기 위해 수행되는 절차
① 클라이언트에서 서버와의 연결 종료를 위해 서버에 FIN 패킷을 보내고 FIN_WAIT1 상태가 된다
(반대로 서버에서 먼저 끊을 수 도 있습니다.)
② 서버는 클라이언트로부터 FIN을 받고 응답 패킷 ACK을 보냅니다. 상태는 CLOSE_WAIT가 된다
③ 서버가 통신이 끝나면, 즉 연결을 종료할 준비가 되면 클라이언트에게 FIN패킷을 보내고 LAST_WAIT 상태가 된다
④ 클라이언트는 확인 패킷 ACK을 보내고 TIME_WAIT 상태가 된다
'개발 > network' 카테고리의 다른 글
[netstat] 네트워크 상태 확인 (window 10) (2) | 2022.12.22 |
---|---|
[telnet] window 10 텔넷 이용하기 (0) | 2022.12.22 |
[telnet] 방화벽 port 해제 확인 (0) | 2022.12.21 |