Network
TCP 3-way-handshake
uuuhhh
2022. 11. 11. 15:39
▪︎ TCP 통신
📌 TCP는 서버와 클라이언트 사이 간에 동기화하기 위해 3-way-handshake를 사용한다.
- TCP 3-way-handshake
- TCP/IP 프로토콜을 사용하여 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정

- Client는 Closed 상태, Server는 Listen 상태이다.
- Client가 Server에 연결 요청을 하기 위해 SYN 데이터를 전송한다.
- Server는 Client가 보낸 SYN 데이터를 받고 Listen에서 SYN_RCV로 상태 변경한다.
- Server는 Client에 요청을 정상적으로 받았다는 ACK와 Client 포트를 열어달라는 SYN 데이터를 같이 전송한다.
- Client는 ACK와 SYN 데이터를 받고 Closed에서 Established로 상태 변경한다.
- Client는 Server에 요청을 정상적으로 받았다는 ACK를 전송한다.
- Server는 Client가 보낸 ACK를 받고 SYN_RCV에서 Established로 상태 변경한다.
| 상태 | 설명 |
| CLOSED | 닫힌 상태 |
| LISTEN | 포트가 열린 상태로 연결 요청 대기 중 |
| SYN_RCV | SYNC 요청을 받고 상대방의 응답을 기다리는 중 |
| ESTABLISHED | 포트 연결 상태 |