어 나 갱수.

[네트워크] TCP와 UDP란? 🐝 본문

네트워크

[네트워크] TCP와 UDP란? 🐝

김경수 2023. 7. 29. 23:39
728x90

오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다.

전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의 전달을 담당합니다.

TCP(Transmission Control Protocol)

TCP를 해석하면 전송을 제어하는 프로토콜이라는 뜻이다.

인터넷 프로토콜 스택의 4 계층

여기서 TCP는 3 계층인 전송계층에 속한다.

 

TCP 특징

연결지향 - TCP (논리적)

  • 연결형 서비스로 연결이 성공해야 통신이 가능하다.
  • 높은 신뢰성을 보장한다.
  • UDP보다 속도가 느리다.
  • 연결의 설정(3-way handshaking)과 해제(4-way handshaking)
  • 순서를 보장
  • 데이터 전달 보증
    • 목적지까지 데이터가 전달됐는지 아닌지 알 수 있다.

3-way handshaking

  1. Client에서 Server에 연결 요청을 하기 위해 SYN 데이터를 보낸다.
  2. 요청을 받은 해당 포트는 SYN 데이터를 받고 SYN_RCV로 상태가 변경된다.
  3. Server에서 요청을 정상적으로 받았다는 응답(ACK)과 SYN을 같이 보낸다.
  4. Client에서는 SYN과 ACK를 받고 ESTABLISTHED로 상태를 변경하고 Server에 ACK를 전송한다
  5. ACK를 정상적으로 받은 Server는 상태가 ESTABLISHED로 변경된다.(ESTABLISHED는 3-way handshaking이 완료된 후 서로 연결된 상태)

대부분의 신뢰할 수 있는 프로토콜이라 현재는 대부분 TCP를 사용한다.

 

UDP(User Datagram Protocol)

udp를 해석하면 사용자 데이터그램 프로토콜이라는 뜻이다.

UDP 특징

  • 비연결형 서비스로 데이터그램 방식을 제공한다.
    • 데이터의 전송 순서가 바뀔 수 있다.
  • 데이터 수신 여부를 확인하지 않는다.
    • TCP의 3-way handshaking과 같은 과정 X
  • 신뢰성이 낮다.
    • 흐름제어가 없어서 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
  • TCP보다 속도가 빠르다.
    • TCP의 3-way handshaking과 같은 연결 과정이 없으니 속도는 TCP전송보다 빠르다.

요약

TCP vs UDP

TCP는 연속성보다 신뢰성 있는 전송이 이루어질 때 사용되는 프로토콜이며, UDP는 TCP보다 빠르고 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터전송은 보장하지 않는다. UDP는 신뢰성보다는 연속성이 중요한 실시간 스트리밍과 같은 서비스에 자주 사용된다.


Reference

728x90