컴퓨터를 공부하고자 마음먹은지 N일차
[206일차]TCP 3-way Handshaking 본문
Reference
📎TCP 3-way Handshaking 동작원리
📎TCP 3-way Handshaking(SYN,ACK)
📼모든 개발자를 위한 HTTP 웹 기본 지식(인프런강의)
TCP 3-way Handshaking
TCP의 특징
TCP는 전송 제어 프로토콜(Transmission Control Protocol) 이다.
IP 프로토콜만 활용해서 어플리케이션 레벨 프로토콜에서 받은 패킷을 전송을하면,
패킷을 받을 대상이 없거나 서비스가 안되는 상황에도 패킷을 전송한다던지,
중간에 패킷이 사라지거나 순서대로 가지않을 수 있는 등 신뢰성을 보장받을 수 없다.
그리고 같은 IP를 활용해서 통신하는 앱이 둘 이상이라면, 어느앱이 받는 통신인지 구분이 안갈것이다.
그래서 IP패킷 안에다가 TCP를 넣어서 출발지와 목적지라던지 순서 등을 담아낸 정보를 함께 보낸다.
TCP를 활용해서 통신을 하면 크게 세가지 이점이 있다.
1. 연결지향
이 글의 제목과 같이 TCP 3-way Handshaking 이라는 방식을 통해,
얘와 내가 연결이 되는지 안되는지 부터 판별을 하고 데이터를 전달한다.
그래서 서비스가 없다라던지 받을 대상이 없음에도 불구하고 보내는 부분을 예방할 수 있다.
2. 데이터 전달 보증
TCP의 정보에 어떤패킷이 담겨있는지 정보들이 있기 때문에,
원하는 데이터중 한두가지 정도 누락이 됐다면 알아 차릴 수 있다.
3. 순서보장
역시 TCP정보에 순서정보 또한 담겨있기 때문에 데이터의 순서 또한 보장받을 수 있다.
3-way Handshaking 과정
연결을 판단하는 부분에서 이러한 세가지 약속된 동작을 통해
연결이 되는지 안되는지를 먼저 판단한다.
클라이언트 SYN
클라이언트에서 서버로 특정 데이터를 보낼려고 할 때,
서버의 접속을 요청하기 위해 SYN패킷을 먼저보낸다.
서버 SYN + ACK
이 때 서버는 클라이언트의 접속을 허락한다는 의미의 ACK와
마찬가지로 클라이언트에 SYN 패킷을 서버에 ACK과 함께 보낸다.
클라이언트 ACK
클라이언트 또한 ACK을 통해 확인시켜 주며 서버와 클라이언트 상호간의 연결을 보장받는다.
상호간의 hello 등의 메세지를 클라이언트에서 줄려고 할 때,
이러한 3단계를 통해 연결을 보장받았다면, 메세지를 패킷에 담아 전송할 것이고,
연결을 보장받지 못했다면 전송하지 않을 것이다.
'🌏Network' 카테고리의 다른 글
[246일차]URL (1) | 2021.05.17 |
---|---|
[239일차]네트워크 전반과 HTTP를 개괄적으로 알아보자 (0) | 2021.05.10 |
[191일차] RESTful API란? 그리고 장점까지 (0) | 2021.03.23 |