TCP는 TCP/IP 4계층 중 전송 계층에서 사용되는 프로토콜 중 하나임
또 다른 프로토콜인 UDP와 달리 신뢰성을 보장하는 데이터 전송이 특징인데, 이러한 클라이언트와 서버 간의 신뢰성 확보에 사용되는 방법이 "3 Way HandShake"임
3 Way HandShake를 통해 신뢰성을 확보한 후 데이터 전송이 끝나면 또 다시 4 Way HandShake를 통해 클라이언트와 서버 간의 연결을 해제함
3 Way HandShake
SYN | Synchronization , 연결 요청 플래그 |
ACK | Ackknowledgement , 응답 플래그 |
ISN | Initial Sequence Numbers , 초기 네트워크 연결할 때 할당된 32비트 고유 시퀀스 번호 |
1. SYN 단계
- 클라이언트가 서버에게 '클라이언트의 ISN'을 포함하여 SYN 세그먼트를 전송
2. SYN + ACK 단계
- 서버가 클라이언트로부터 SYN을 수신한 후, '서버의 ISN'과 '승인번호'(클라이언트의 ISN에 +1 한 값)를 포함하여 SYN + ACK 세그먼트를 전송
3. ACK 단계
- SYN + ACK 단계를 통해, 서버의 ISN 값을 받게된 클라이언트가 '승인번호'(서버의 ISN에 +1한 값)를 포함하여 서버에게 ACK 세그먼트를 전송
4 Way HandShake (TCP 연결 해제 과정)
FIN | Finish , 연결 해제 요청 플래그 |
ACK | Ackknowledgement , 응답 플래그 |
1. FIN 전송 [클라이언트 -> 서버]
- 클라이언트가 서버에게 연결 해제를 위해 FIN으로 설정된 요청 세그먼트 전송 후 서버의 응답을 기다림
2. ACK 전송 [서버 -> 클라이언트]
- 서버가 클라이언트에게 ACK이라는 응답 세그먼트 전송
3. FIN 전송 [서버 -> 클라이언트]
- 이전 단계에서 응답 세그멘트 전송 후 일정시간 이후에, 클라이언트에게 FIN 세그먼트 전송
4. ACK 전송 [클라이언트 -> 서버]
- 이전 단계에서 서버로부터 FIN 세그먼트를 수신한 클라이언트는 일정시간 대기한 후, 서버로 ACK 세그먼트를 전송
(지연되는 패킷이 있을 수 있기 때문에 잠시 대기하는 것) - 클라이언트로부터 ACK을 수신한 서버는 CLOSED 상태가 되고, 클라이언트는 또 다시 일정시간동안 대기 후 CLOSED 상태가 되어 연결이 해제됨
'Computer Science > 네트워크' 카테고리의 다른 글
HTTP Status Code에 대해 알아보자 (1) | 2024.02.09 |
---|---|
GET과 POST를 비교해보자 (0) | 2024.02.04 |
HTTP에 대해 알아보자 (1) | 2024.02.04 |
TCP와 UDP를 비교해보자 (1) | 2024.02.04 |
OSI 7계층과 TCP/IP 4계층을 비교해보자 (0) | 2024.02.04 |