Computer/서버 & 네트워크

TCP/UDP

에린_1 2024. 6. 19. 20:22
728x90

TCP/UDP

TCP

  • 연결 지향형 서비스(reliable service)와 신뢰적 데이터 전송 서비스(data integrity)를 포함한다.
  • Reliable Service
    • TCP는 메시지 전송 전에 클라이언트와 서버가 서로 전송 제어 정보를 교환하도록 한다. 즉, 패킷이 전송될것을 미리 알려준다.
  • Data integrity
    • TCP는 데이터를 오류 없이 올바른 순서로 전달하는 것을 보장한다.
  • Congestion control(혼잡제어)
    • TCP의 congestion control은 네트워크가 혼잡상태에 이르면 프로세스의 속도를 낮춘다.
    • 즉, 프로세스가 우선이 아니라 네트워크의 안정성 향상을 우선한다.
  • Flow control(흐름제어)
    • TCP는 receiver의 buffer가 꽉 차서 데이터가 손실되지 않도록 sender의 전송을 관리한다.
  • TCP는 최대한 오류 없는 신뢰성 있는 전송을 위해 많은 기능을 지원하며, 이에 따라 속도가 UDP에 비해 불리할 수 있다.
  • 안정적이고 정확한 패킷 전달을 보장한다는 특징이 있다.

UDP

  • 최소의 서비스 모델을 가지는 간단한 프로토콜이다.
  • 비연결형임으로 핸드셰이킹을 하지 않는다.
  • 비 신뢰적인 서비스이므로 데이터가 손실될 수 있다. UDP는 flow control을 하지 않으므로 프로세스는 원하는 속도로 하위 계층으로 보낼 수 있다. 그 외 올바른 패킷 전송에 필요한 여러가지 제어를 전부 하지 않는다.
  • 데이터그램을 생성하며, 데이터 전송의 신뢰성을 보장하지 않는다. 비연결형이고, 데이터를 보내고 신경쓰지 않는다. 재전송도 없다.
  • 그래서 TCP보다 비교적 빠르다. 연결 상태를 만들지 않으므로 유지할 필요도 없다. 또한 패킷이 순서대로 오는 것을 보장하지 않기 때문에 수신자가 헤더를 보고 조합해야 한다.
728x90