Network

TCP 3-way-handshake

uuuhhh 2022. 11. 11. 15:39

▪︎ TCP 통신


📌 TCP는 서버와 클라이언트 사이 간에 동기화하기 위해 3-way-handshake를 사용한다.

 

  • TCP 3-way-handshake
    • TCP/IP 프로토콜을 사용하여 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정

 

 

  1. Client는 Closed 상태, Server는 Listen 상태이다.
  2. Client가 Server에 연결 요청을 하기 위해 SYN 데이터를 전송한다.
  3. Server는 Client가 보낸 SYN 데이터를 받고 Listen에서 SYN_RCV로 상태 변경한다.
  4. Server는 Client에 요청을 정상적으로 받았다는 ACK와 Client 포트를 열어달라는 SYN 데이터를 같이 전송한다.
  5. Client는 ACKSYN 데이터를 받고 Closed에서 Established로 상태 변경한다.
  6. Client는 Server에 요청을 정상적으로 받았다는 ACK를 전송한다.
  7. Server는 Client가 보낸 ACK를 받고 SYN_RCV에서 Established로 상태 변경한다.

 

상태  설명
CLOSED 닫힌 상태
LISTEN 포트가 열린 상태로 연결 요청 대기 중
SYN_RCV SYNC 요청을 받고 상대방의 응답을 기다리는 중
ESTABLISHED 포트 연결 상태