Server - TCP / UDP 비교

rizz·2024년 4월 4일
0

Server

목록 보기
1/1

📒 TCP / UDP 비교

📌 TCP / UDP 비교

  • 네트워크 통신은 택배를 보내는 것과 유사하다.
    • 택배 : 상품 포장 - 배송 정책 결정 - 주소 기입 - 단지 경로 - 택배 운송
    • 네트워크 : 피지컬 - 데이터 링크 - 네트워크 - 트랜스포트 - 애플리케이션
  • 데이터를 전송할 때 단순히 데이터만 전송되는 것이 아닌 위 정보들이 추가되어 같이 전송되게 된다.
  • TCP / UDP의 차이는 '트랜스포트' 단계의 정책이다.
  • 패킷이 전송될 때 어떤 정책으로 전송할 것이며 분실됐을 때 어떻게 책임질 것이냐 등의 차이가 있다.

📌 TCP / UDP 차이점(면접에서 자주 출제)

TCP

  • 느리지만 안전한 트럭
  • 전화 연결 방식

UDP

  • 위험한 총알 배송
  • 이메일 전송 방식

📌 TCP / UDP 연결 지향성

TCP (연결형 서비스 - 전화)

  • 연결을 위해 할당되는 논리적인 경로가 있다.
  • 전송 순서가 보장된다.

UDP (비연결형 서비스 - 이메일)

  • 연결이라는 개념이 없다.
  • 전송 순서 보장되지 않는다.
  • 경계(Boundary)의 개념이 있다.

📌 TCP / UDP 속도와 신뢰성

TCP

  • 분실이 일어나면 책임지고 다시 전송 - 신뢰성이 높다.
  • 물건을 주고받을 상항이 아니면 일부만 보냄 - 흐름 / 혼잡 제어
  • 고려할 것이 많기 때문에 속도가 느리다.

UDP

  • 분실에 대한 책임이 없음 - 신뢰성이 낮다.
  • 일단 보내고 생각한다.
  • 단순하기 때문에 속도가 빠르다.

📌 TCP / UDP 데이터 경계(Boundary)

TCP (컨베이어 벨트)

  • 경계(Boundary)의 개념이 없다.
  • 데이터 사이에 경계가 없기 때문에 데이터를 나누어 보내도 어떤 식으로 나누어지거나 합쳐져서 받게 될지 알 수 없지만 순서가 보장된다.

UDP (택배)

  • 경계(Boundary)의 개념이 있다.
  • 전송한 대로 데이터를 받지만, 순서가 보장되지 않는다.

📌 TCP / UDP 차이점 요약

TCP

  • 1) 연결을 위해 할당되는 논리적인 경로가 있다.
  • 2) 데이터 경계(Boundary) 없다.
  • 3) 전송 순서가 보장된다.
  • 4) 분실이 일어나면 책임지고 다시 전송 - 신뢰성이 높다.
  • 5) 데이터를 주고받을 상황이 아니면 일부만 보냄 - 흐름 / 혼잡 제어
    • ex) 커널의 SendBuffer가 가득 찼을 때 블로킹이 걸리는 것
  • 6) 고려할 것이 많기 때문에 속도가 상대적으로 느리다.

UPD

  • 1) 연결이라는 개념이 없다.
  • 2) 데이터의 경계(Boundary) 있다.
  • 3) 전송 순서가 보장되지 않는다.
  • 4) 분실에 대한 책임이 없음 - 신뢰성이 낮다.
  • 5) 일단 보내고 생각한다.
    • 커널의 RecvBuffer가 가득 찼다고 해도, 데이터를 전송하게 되면 데이터가 유실된다.
    • 데이터를 못 받는 상황인데도 전송하게 되어, 네트워크 회선만 낭비하게 된다.
  • 6) 단순하기 때문에 속도가 상대적으로 빠르다.

파란색 글은 서버를 만들 때 개발자 입장에서 편리한 부분이고, 빨간색은 불편한 부분이다.

profile
복습하기 위해 쓰는 글

0개의 댓글