# tcp-udp

# TCP (Transmission Control Protocol)

TCP프로토콜을 사용하면

클라이언트가 서버에 접속하기 위해서 연결하는 과정이 있는데

이것을 3-handshake라고 한다.

마찬가지로 연결을 해제할때는 4-handshake라고 한다.

TCP는 UDP와는 다르게 handshake와 에러제어, 흐름제어 등의 기능이 있다.

이러한 과정때문에 속도는 좀 더 떨어지지지만 좀더 좋은 품질의 데이터를 얻을 수 있다.

그리고 설정된 연결을 통해 양방향으로 데이터를 전송한다.

하지만 요즘 시대에 네트워크가 에러나는 경우는 극히 드물다고한다

# UDP (User Datagram Protocol)

TCP에서 언급한 것처럼, 연결하는 과정이 없다.

그렇기 때문에 에러제어, 흐름제어는 당연히 없고,

연결이 됐는지 안됐는지도 모른다.

단방향으로 일방적으로 데이터를 보내고 데이터가 누락되더라도 알 수 없다.

빠른 latency와 데이터 전송 속도가 중요한 인터넷방송이나 온라인게임 서비스들에는 udp가 적합하다.

스타크래프트에서 UDP로 게임을 해본적이 있으신가요? 그 UDP가 여기서 설명하는 UDP입니다.

인터넷방송에서 1프레임정도 누락되는 것은 사실 체감도 안되고 크리티컬하지도 않을 것이다.