UDP, TCP 개념정리

OSI 7 layer 계층

UDP & TCP

OSI Transport 7계층중 Transport영역에 해당함. OSI

TCP(Transmission Control Protocol) : 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

일반적으로 TCP와 IP는 함께 사용해요.

IP는 실질적으로 데이터를 직접 옮겨주고,
TCP는 packet을 추적 및 관리합니다.

TCP 연결형 서비스를 지원하는 프로토콜이라는 점

TCP 6가지 특징
  1. 연결형 서비스이며 가상회선 방식 제공
  2. 3-way handshaking 과정으로 연결을 설정 4-way handshaking을 통해 해제
  3. 흐름을 제어하고 혼잡을 제어함.
  4. TCP 속도 < UDP 속도
  5. Full-Duplex방식, Point to Point 방식

위에서 말한

  • 가상회선 방식은 출발점과 도착점을 연결해서 패킷을 전송하기 위한 논리적 경로를 지정한다는 점이에요.
  • 3-way handshaking은 출발점과 도착지점을 명확하게해서 완벽한 배송을 위해서 세션을 수립하는 과정이라는 의미에요.
  • 연결형 서비스 : 신뢰성 보장(3-way handshaking, 데이터 흐름과 혼잡제어)
  • TCP 속도 ㅜ.ㅜ < UDP 속도 ^_^V
  • 파일전송 시 주로 사용
TCP 서버
  • 서버 소켓은 Only 연결 용도
  • 연결시 반환된 클라이언트 소켓은 데이터의 송수신에 사용되며 가상회선 방식을 제공
  • 서버와 클라이언트는 1:1 연결
  • stream 전송으로 전송 데이터의 크기가 무제한
  • packet에 대한 응답을 해야하므로(시간 지연, CPU소모) 성능이 skwdma
  • Streaming 서비스에 불리(손실된 경우 재전송 요청을 하므로)

UDP(User Datagram Protocol) : 데이터를 데이터그램 단위로 처리하는 프로토콜

데이터그램 : 독립적인 관계를 지닌 패킷

  • TCP: 연결형 <--> UDP : 비연결형

  • UDP는 논리적 경로(X)

    • 개별 패킷은 다른 경로로 전송
    • 결국 독립적인 관계

UDP 5가지 feature
  1. 비연결형 서비스
  2. 정보를 주고 <---> 받음을 확인하는 신호 절차(X)
  3. UDP헤더의 CheckSum필드를 통해 최소한의 오류만 검출
  4. 신뢰성 Low
  5. TCP < UDP 속도
UDP 서버 6가지 feature
  1. 연결 자체가 없어 connect 함수 불필요하며 서버 소켓과 클라이언트의 소켓 구분(X)
  2. 소켓 대신 IP를 기반으로 데이터 전송
  3. 서버 <--> 클라이언트간의 연결 방식
    3.1 1:1
    3.2 1:N
    3.3 N:M
  4. 데이터그램(메시지)단위로 전송되며 그 크기는
    65535byte로 크기가 초과하면 잘라서 보냄.
  5. 흐름제어가 존재(X) 패킷이 정상적으로 전송되었는지 확인(X)
  6. High Performance서비스에 적합함.(예. 실시간 게임, 유투브 영상, 스타크래프트 UDP서버 등)

이건 무슨 말?

Q) 흐름제어(Flow Control)와 혼잡제어(Congestion Control)이란?

흐름제어는 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 것입니다. 예를 들어 송신하는 곳에서 감당이 안되게 데이터를 빠르게 많이 보내면 수신자에서 문제가 발생하기 때문입니다.

혼잡제어는 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것입니다. 만약 정보의 소통량이 과다하면

패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막습니다

교환 방식 다이어그램


한 눈에 보는 TCP & UDP

좋은 웹페이지 즐겨찾기