본문 바로가기
컴퓨터공학/네트워크

[네트워크] TCP와 UDP

by 독서왕뼝아리 2023. 5. 16.

네트워크 기본 중 기본! OSI 4계층의 TCP와 UDP 프로토콜을 알아보자.

 

TCP

TCP(Transmission Control Protocol)와 UDP의 가장 차이점은 '연결' 아닐까! TCP는 연결 지향성이다. 한 번 연결을 하면 양방향으로 통신할 수 있다는 것을 의미한다. 또한 TCP는 흐름 제어, 에러 제어, 혼잡 제어 같은 기능을 제공한다. 연결 오버헤드와 순차성 제어를 위해 속도가 느리다. 

 

  • 연결 지향성이다.
  • 연결 후 양방향 통신
  • 흐름제어, 에러제어, 혼잡제어 기능 제공
    • 흐름제어 : 송신측과 수신측 사이 데이터 처리 속도 차이로 인해 수신측의 버퍼가 오버플로우 나지 않도록 제어하기 위한 기능이다. 전송량 > 수신량일 경우 전송율을 낮춘다.
      • stop and wait 방식 
      • sliding window 방식
    • 에러제어 : ARQ 방식을 이용해 프레임이 손상/손실 되었을 경우, 재전송을 통해 오류를 복구한다.
      • stop and wait ARQ : 패킷의 ACK를 받아야 다음 패킷을 전송
      • go-back-N ARQ : 연속적으로 패킷 전송, 오류가 발생한 시점부터 재전송
      • SR(Selectvie-Reject) ARQ : 오류가 발생한 패킷만 재전송
    • 혼잡제어 : 네트워크가 처리하지 못할 정도로 여러 발신지에서 많은 데이터를 전송하는 것
      • AIMD : 윈도우 크기를 조금씩 증가시키며 송신, 초반에 네트워크 느림, 혼잡 상황 감지X
      • slow start : 지수로 증가
      • fast retransmit
      • fast recovery

  • 손실된 패킷 재전송
  • 신뢰도가 높다
  • 연결할 때 오버헤드 발생
  • UDP 보다 느림
  • 최적 사용 : HTTP, HTTPS, SMTP, POP, FTP ...

SMTP도 TCP를 ?!

 

 

 

UDP

UDP(User Datagram Protocol)은 훨씬 간단한 통신이다. 도착지(dst)의 주소와 포트 번호만 있으면 통신을 할 수 있다! 또한 연결 오버헤드가 발생하지 않는다. 하지만 연결을 하지 않다보니 에러 제어를 할 수 없다. 

 

  • 비연결 지향성
  • 연결 오버헤드 없음
  • TCP 보다 빠름
  • real-time 통신에 적합 (스트리밍 같은 실시간 서비스)
  • 순차를 보장하지 않는다
  • 손실된 패킷을 신경쓰지 않는다.
  • 신뢰도가 낮다
  • 최적 사용 : 스트리밍, DNS, VoIP ...