728x90
TCP의 3 way handshake와 4 way handshake
3 way handshake와 4 way handshake는 연결을 성립하고 해제하는 과정을 말한다.
3 way handshake - 연결 성립
TCP는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 way handshake 과정을 진행한다.
- 클라이언트가 서버에게 SYN 패킷을 보냄 (sequence: x)
- 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보냄 (sequence: y, ACK: x + 1)
- 클라이언트는 서버로부터 ACK(x + 1)와 SYN(y) 패킷을 받고, ACK(y + 1)를 서버로 보낸다.
이렇게 3번의 통신이 완료되면 연결이 성립된다. (3번이라 3 way handshake 이다)
4 way handshake - 연결 해제
연결 성립 후, 모든 통신이 끝났다면 해제해야 한다.
- 클라이언트는 서버에게 연결을 종료한다는 FIN 플래그를 보낸다.
- 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트에게 보낸다. (이때 모든 데이터를 보내기 위해 TIME OUT 상태가 된다)
- 데이터를 모두 보냈다면, 연결이 종료되었다는 FIN 플래그를 클라이언트에게 보낸다.
- 클라이언트는 FIN을 받고, 확인했다는 ACK를 서버에게 보낸다. (아직 서버로부터 받지 못한 데이터가 있을 수 있으므로 TIME_WAIT를 통해서 기다린다)
* 서버는 ACK를 받은 이후 소켓을 닫는다 (Closed)
* TIME_WAIT 시간이 끝나면 클라이언트도 닫는다(Closed)
이렇게 4번의 통신이 완료되면 연결이 해제된다.
용어 정리
- 'SYN'은'synchronize sequence numbers의 약자
- 'ACK는'acknowledgment'의 약자
[
gyoogle/tech-interview-for-developer
👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.
github.com
728x90
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] - Cookie & Session (0) | 2020.09.25 |
---|---|
[네트워크] - HTTP, HTTPS (0) | 2020.09.25 |
[네트워크] - 주소창에 naver.com을 치면 일어나는 일 (0) | 2020.09.24 |
[네트워크] - TCP (흐름제어/혼잡제어) (0) | 2020.09.24 |
[네트워크] - OSI 7 계층 (0) | 2020.09.24 |