네트워크
TCP 3 Way Handshake 란?
태크주니
2024. 1. 22. 23:24
TCP 3 Way Handshake
01. 3 Way Handshake
TCP 프로토콜로 통신하기 위해 데이터 전송 전 상호 연결을 수립하는 과정이다.
상대방과 논리적 세션을 맺는 시작점으로 해당 과정을 거친 후에 데이터들을 정상적으로 송수신하는 절차를 가진다.
즉, 데이터를 전송할 준비가 되었다는 것을 보장 및 데이터 전송 준비 확인하는 과정이며
3-Way Handshake 과정에서 정상적으로 세션이 맺어 지지 않으면 통신을 중단한다.
02. 3 Way Handshake 과정
- Closed
- 아직 연결 시도 전 Client, Server의 상태
- TCP 포트가 닫혀진 상태
- Listen
- TCP 포트가 열려 있고 연결 요청 대기하는 상태
- Syn-Sent (Client)
- Client가 Server에게 연결을 요청하는 SYN 패킷을 전송
- 임의의 값 seq(100) 넘버를 함께 전송
- Syn-Receved (Server)
- SYN 패킷을 받은 Server는 요청을 수락하게 되면 SYN+ACK 패킷을 전송하며 응답
- 임의의 값 seq(200) 넘버 전달
- 해당 패킷의 응답이라는 표시로 Client로부터 전달 받은 seq(100)+1을 한 ack(101) 넘버 전달
- Established (Client)
- Server로부터 SYN+ACK 응답을 받아 Client는 연결이 수립된 상태
- 다시 Server에게 ACK로 수립 완료 패킷 전달
- 이전에 보낸 seq(100)+1을 하여 새로운 seq(101) 넘버 전달
- 해당 패킷의 응답이라는 표시로 Server로부터 받은 seq(200)+1을 하여 ack(201) 넘버 전달
- Established (Server)
- Client로부터 연결 수립이 되었다는 ACK 패킷을 전달받아 Server도 연결 수립 상태로 전환
- Server와 Client가 Established 모드가 된 후 데이터 송수신이 이루어짐