Network

[Network] TCP와 UDP의 차이

KMSEOP 2020. 8. 31. 21:44
728x90

TCP란?

  • Transmission Control Protocol의 약어
  • 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스
  • 데이터를 메시지(세그먼트 단위의 블록)로 보내기 위해 IP와 함께 사용하는 프로토콜

특징

  • 연결형 서비스
    • 3-way handshaking을 통해 연결을 설정
      • 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고 실제로 데이터 전달이 시작하기전에 한쪽이 다른쪽이 준비되었다는 것을 알 수 있음
      1. Client -> Server : TCP SYN
      2. Server -> Client : TCP SYN ACK
      3. Client -> Server : TCP ACK
    • 4-way handshaking을 통해 연결의 해제
      1. Client -> Server : TCP FIN
      2. Server -> Client : TCP ACK
      3. Server -> Client : (데이터를 마저 전송하고)TCP FIN
      4. Client -> Server : TCP ACK
  • 흐름 제어
    • 데이터 처리 속도를 조절하여 수신자 Buffer의 Overflow 방지
  • 혼잡 제어
    • 네트워크 내의 패킷 수가 과다하게 증가하지 않도록 방지
  • 높은 신뢰성 보장
    • 에러 발생시 재전송
    • ACK 값이 수신되지 않으면 재전송
  • 전이중, 점대점 방식
    • 전이중(Full-Duplex) : 전송이 양방향으로 동시에 일어날 수 있음
    • 점대점(Point to Point) : 연결이 정확히 2개의 종단점을 가지고 있음
    • 멀티캐스팅이나 브로드캐스팅을 지원하지 않음

UDP란?

  • User Datagram Protocol의 약어
  • 데이터를 데이터그램 단위로 처리하는 프로토콜

특징

  • 비연결형 서비스
    • 연결을 위해 할당되는 논리적인 경로가 없음
    • 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 가짐
    • TCP보다 빠름
  • 비신뢰성
    • 데이터 전송에 대한 보장을 하지 않음
    • 패킷 손실이 발생할 수 있음
  • Broadcast, Multicast 지원

TCP와 UDP 비교

TCPUDP

연결형 프로토콜 비연결형 프로토콜
혼잡제어, 흐름제어 혼잡제어, 흐름제어 지원 X
상대적으로 느림 상대적으로 빠름
신뢰성 보장 신뢰성을 보장하지 않음
TCP 패킷은 세그먼트 UDP 패킷은 데이터 그램
1:1 통신 1:1, 1:N, N:N 통신
728x90