cs/데이터통신

TCP State transition diagram

Nytro 2024. 11. 30. 16:12

TCP State transition diagram
establishing
closing

 

각 노드는 상태를 나타내고 화살표는 다음 상태로의 전환을 유발하는 이벤트이다.

/는 독립적인 상태가 두 개 있다면 수신/송신으로, 동작과 상태가 있다면 and로 해석한다.

기본적으로 send가 없으면 전부 recv로 해석해야 한다.

 

1. CLOSED

  • 초기 상태: TCP 연결이 닫혀 있는 상태입니다.
  • 전환 조건:
    • Passive Open: 서버가 연결을 수락할 준비를 하면 LISTEN 상태로 전환.
    • Active Open/SYN: 클라이언트가 연결 요청(SYN)을 보내면 SYN-SENT 상태로 전환.
    • Close: 상태를 유지하며 연결 종료.

2. LISTEN

  • 설명: 서버가 클라이언트의 연결 요청(SYN)을 기다리는 상태입니다.
  • 전환 조건:
    • SYN/SYN+ACK: 클라이언트로부터 SYN 또는 SYN+ACK을 받으면 SYN-RCVD 상태로 전환.
    • Send/SYN: 서버가 클라이언트로 연결 요청(SYN)을 보내면 SYN-SENT 상태로 전환.

3. SYN-SENT

  • 설명: 클라이언트가 SYN 패킷을 보낸 후, 서버의 응답을 기다리는 상태입니다.
  • 전환 조건:
    • SYN/SYN+ACK: 서버로부터 SYN 또는 SYN+ACK을 수신하면 SYN-RCVD 상태로 전환.
    • SYN+ACK/ACK: 서버로부터 SYN+ACK을 수신하고, 클라이언트가 ACK를 보내면 ESTABLISHED 상태로 전환.

4. SYN-RCVD

  • 설명: 서버가 클라이언트로부터 SYN을 받고 SYN+ACK으로 응답한 상태입니다.
  • 전환 조건:
    • ACK: 클라이언트로부터 ACK를 받으면 ESTABLISHED 상태로 전환.
    • Close/FIN: 서버가 연결 종료를 요청하면 FIN-WAIT-1 상태로 전환.

5. ESTABLISHED

  • 설명: TCP 연결이 성공적으로 설정된 상태로, 양측이 데이터를 송수신할 수 있습니다.
  • 전환 조건:
    • Close/FIN: 송신자가 연결 종료 요청(FIN)을 보내면 FIN-WAIT-1 상태로 전환.
    • Close/FIN: 수신자가 FIN을 받는 경우 CLOSE-WAIT 상태로 전환.

6. FIN-WAIT-1

  • 설명: 송신자가 FIN을 보낸 상태로, 수신자의 ACK를 기다립니다.
  • 전환 조건:
    • ACK: 수신자가 FIN에 대해 ACK를 보내면 FIN-WAIT-2 상태로 전환.
    • FIN/ACK: 수신자가 동시에 FIN과 ACK를 보내면 CLOSING 상태로 전환.

7. FIN-WAIT-2

  • 설명: 송신자가 ACK를 받은 후, 수신자의 FIN을 기다립니다.
  • 전환 조건:
    • FIN/ACK: 수신자가 FIN을 보내면 TIME-WAIT 상태로 전환.

8. CLOSE-WAIT

  • 설명: 수신자가 송신자로부터 FIN을 받은 상태로, 연결 종료를 준비합니다.
  • 전환 조건:
    • Close/FIN: 수신자가 FIN을 보내면 LAST-ACK 상태로 전환.

9. LAST-ACK

  • 설명: 수신자가 FIN을 보내고 송신자의 ACK를 기다리는 상태입니다.
  • 전환 조건:
    • ACK: 송신자로부터 ACK를 받으면 CLOSED 상태로 전환.

10. CLOSING

  • 설명: 양측이 동시에 FIN을 보낸 상태로, ACK를 기다리고 있습니다.
  • 전환 조건:
    • ACK: ACK를 받으면 TIME-WAIT 상태로 전환.

11. TIME-WAIT

  • 설명: FIN을 보낸 측에서 마지막 ACK를 보낸 후, 네트워크 지연이나 패킷 재전송을 대비해 일정 시간 대기하는 상태입니다.
  • 전환 조건:
    • Timeout: 일정 시간이 지나면 CLOSED 상태로 전환.

 

'cs > 데이터통신' 카테고리의 다른 글

IP Datagram format  (0) 2024.11.30
Network layer (1)  (0) 2024.11.30
Congestion control  (0) 2024.11.30
TCP RTT(Round Trip Time)과 3-way handshake  (0) 2024.11.30
Transport layer  (0) 2024.11.30