TCP & UDP

Paya·2024년 1월 21일

TCP & UDP

Transport Layer (전송 계층)에서 사용되는 프로토콜


TCP (Transmission Control Protocol)

  • 연결 지향형으로, 신뢰성 있는 데이터 전송을 지원하는 프로토콜
  • 3 Way Handshaking 과정을 통해 연결 설정 후 통신을 시작
  • 흐름 제어와 혼잡 제어를 지원하여, 데이터(packet)의 순서를 보장한다. 하지만 이 때문에 UDP보다 전송 속도가 느리다.
    • 흐름 제어 : 송신 측과 수신 측의 데이터 처리 속도의 차이를 조절
    • 혼잡 제어 : packet 수로 인해 네트워크에 overflow가 발생하지 않도록 조절
  • 연속성보다 신뢰성 있는 전송이 중요할 때에 사용 (ex. WEB 통신, 이메일, 파일 전송)

특징

  • 신뢰성 있게 데이터를 주고 받을 수 있다
  • 데이터의 전송 순서를 보장한다
  • 데이터의 경계가 존재하지 않는다
  • UDP보다 전송 속도가 느리다
  • 연결 설정/연결 해제 과정이 존재한다
    • 연결 설정: 3 Way Handshaking
    • 연결 해제: 4 Way Handshaking

*데이터의 경계
데이터 경계란 데이터를 보낼 때 여러번에 걸쳐 보낼 수 있는지의 여부이다.

  • 사진의 첫번째 경우처럼 송신 함수의 호출 횟수와 수신 함수의 호출 횟수가 일치 해야하는 경우는 데이터의 경계가 있는 경우이다.
  • 반대로 두번째 경우는 송신 함수의 호출 횟수와 수신 함수의 호출 횟수가 일치 하지 않아도 되는 데이터의 경계가 없는 경우이다.

UDP (User Datagram Protocol)

  • 비연결형으로, 데이터를 보낸다는 신호를 거치지 않고 일방적으로 데이터를 전달하는 프로토콜
  • TCP와 다르게 연결 설정이 없다
  • 혼잡 제어를 거치지 않아 TCP보다 속도가 빠르지만, packet 손실이 발생할 수 있다
  • 신뢰성이 낮지만 속도가 빠르다. 따라서 신뢰성보다는 연속성이 중요한 서비스에 사용한다. (ex. 실시간 스트리밍, 음성, 게임)

특징

  • 비연결형
  • 비신뢰성
  • 데이터의 전송 순서를 보장하지 않는다
  • 데이터의 경계가 존재한다
  • packet의 부가적인 정보가 적어(오버헤드가 적어) 네트워크의 부하가 감소할 수 있다
  • 혼잡 제어 과정이 없기 때문에, TCP보다 빠르다
  • 연결 설정/연결 해제 과정이 존재하지 않는다

TCP vs UDP

TCPUDP
연결 방식연결형비연결형
전송 순서보장변경될 수 있음
데이터 경계구분하지 않음구분
신뢰성높음낮음
전송 속도느림빠름
통신1:11:1, 1:N, N:N

0개의 댓글