반응형
TCP 3-way Handshake
TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 3-way handshake를 사용합니다.
TCP 3-way handshake는 TCP/IP프로토콜을 이용해서 통신하는 응용프로그램이 데이터를 전송하기 전에
정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미합니다.
TCP 3-way Handshaking 과정
- 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냅니다.
- 서버가 SYN 요청을 받으면 클라이언트에게 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송하고, 클라이언트가 다시 ACK로 응답하기를 기다립니다.
- 클라이언트는 서버에 ACK를 보내면 연결이 이루어지고 데이터가 오가게 됩니다.
이러한 방식으로 통신하는 것이 신뢰성 있는 연결을 맺어준다는 TCP의 3-way handshake의 방식입니다.
TCP 4-way Handshake
3-way handshake는 TCP의 연결을 초기화 할 때 사용한다면, 4-way handshake는 세션을 종료하기 위해 수행되는 절차입니다.
TCP 4-way Handshaking 과정
- 클라이언트가 연결을 종료하겠다는 FIN 플래그를 서버로 전송합니다.
(FIN : 세션의 종료를 알리며 더 이상 보낸 데이터가 없음을 표시) - 서버는 FIN플래그를 정상적으로 받았다는 ACK를 클라이언트에게 전송하고, 자신의 통신이 끝날 때 까지 기다립니다.
- 연결을 종료할 준비가 되면, 연결해지를 위한 준비가 되었음을 알리기 위해 클라이언트에게 FIN 플래그를 전송합니다.
- 클라이언트는 해지준비를 알리는 ACK를 서버로 전송한 후, 일정 시간동안 TIME-WAIT 상태에 빠집니다.
- 클라이언트에게 ACK를 받은 서버는 소켓을 close하고, 두 TCP간의 세션이 종료됩니다.
참고
반응형
'🗂 Study > 네트워크' 카테고리의 다른 글
쿠키🍪 와 세션 (0) | 2021.07.09 |
---|---|
HTTP 메서드와 역할 (0) | 2021.07.09 |
GET 방식과 POST 방식 (0) | 2021.07.08 |
HTTP와 HTTPS의 차이점 + SSL Handshake (0) | 2021.06.30 |
OSI7계층과 그 존재 이유 (0) | 2021.06.18 |
댓글