눈송이의 개발생활

[Network]TCP와 UDP 본문

Computer Science/Network

[Network]TCP와 UDP

꾸지새미언니

네트워크 계층 중 전송 계층에서 사용하는 프로토콜

  • 전송 계층 : 데이터의 전달 담당. 송신자와 수신자 연결하는 통신 서비스 제공

 

TCP(Transmission Control Protocol)

  • 데이터를 메시지와 함께 보내기 위해 IP와 함께 사용하는 프로토콜
  • IP : 데이터 배달 처리
  • TCP : 패킷 추적 및 관리
  • 연속성보다 신뢰성있는 전송이 중요할 때
    • 신뢰성 : 데이터를 순차적으로 안정적이게 전달
    • 전송 : 포트 번호에 해당하는 프로세스에 데이터 전달

 

TCP 특징

  1. 연결형 서비스(양방향 통신) → 가상 회선 방식 제공
    • 3-way handshaking : 연결 설정
    • 4-way handshaking : 연결 해제
  2. 흐름제어 제공
    • 데이터 송신하는 곳/수신하는 곳의 데이터 처리 속도 조절해서 수신자의 버퍼 오버플로우 방지
    • 송신 쪽에서 많은 데이터를 빨리 보내 수신쪽에서 문제 발생하는 것 방지
  3. 혼잡제어 제공
    • 네트워크 내 패킷 수 과다 증가 방지
    • 정보 소통량 과다하면 패킷 수 줄임 → 혼잡 붕괴 현상 방지
  4. 높은 신뢰성
  5. UDP보다 느림
  6. 오류 검출 방식 다양
  7. 전이중(Full-Duplex) 점대점(Point-to-point) 방식
    • 전이중 : 전송 양방향으로 동시에 일어날 수 있음
    • 점대점 : 각 연결이 정확히 2개의 종단점 가짐
    • 멀티캐스팅, 브로드캐스팅 지원 

 

TCP의 패킷 추적 및 관리 방식

  • 패킷 A, B, C를 수신해야 할 때, 각 패킷에 번호를 부여한다. (ex. 1, 2, 3)
  • 분실된 패킷은 없는지 확인하기 위해서 목적지에서 번호에 맞게 재조립을 한다.

 

TCP 서버의 특징

  • 서버 소켓은 연결만 담당
  • 연결 과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용됨
  • 서버 : 클라이언트 = 1 : 1
  • 스트림 전송 ⇒ 전송 데이터의 크기 무제한
  • 패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮음
    • 매번 connection을 해야 해서 시간 손실 발생
    • 패킷 조금만 손실해도 재전송
  • streaming에 불리 (손실된 경우 재전송을 요청해서)

 

UDP(User Datagram Protocol)

  • 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형 프로토콜 ⇒ 각각의 패킷이 다른 경로로 전송, 독립적인 관계
  • 신뢰성보다 연속성이 중요할 때 (ex. 실시간 서비스, 영상 스트리밍)
  • ex) DNS
    • 호스트 네임의 주소 IP를 찾지 않아도 되는 프로그램 → DNS 서버로 호스트 네임 포함한 UDP 패킷 보냄
    • 서버는 호스트의 IP 주소 포함한 UDP 패킷으로 응답

UDP 특징

  1. 비연결형 서비스 → 데이터그램 방식 제공
    • 연결을 위해 할당되는 논리적인 경로 
    • 각각의 패킷 다른 경로로 전송. 독립적 관계
    • 데이터를 서로 다른 경로로 독립적으로 처리
  2. 정보 주고 받을 때 신호 절차 거치지 않음
  3. UDP 헤더의 CheckSum 필드로 최소한의 오류만 검출
  4. 신뢰성 낮음
  5. TCP보다 빠름

 

UDP 서버의 특징

  • 서버 소켓과 클라이언트 소켓의 구분이 없음(연결 자체가 없음)
  • IP 기반으로 데이터 전송
  • 서버 : 클라이언트 = 1 : 1, 1 : N, N : M 등 다양
  • 데이터그램(메세지) 단위(65535바이트)로 전송되며 크기가 초과하면 잘라서 보냄
  • 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없음

 

  TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 보장됨 순서 바뀔 수 있음
수신 여부 확인
통신 방식 1:1 1:1, 1:N(Broadcast), N:M(Multicast)
신뢰성 ⬆️ ⬇️
속도 ⬇️ ⬆️

 

 

 

참고
https://mangkyu.tistory.com/15
https://www.youtube.com/watch?v=ikDVGYp5dhg&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC

 

Comments