cs/ODOQ

[ODOQ] TCP와 UDP의 차이점

icodesiuuuu 2024. 11. 25. 01:11

[One Day One Question]

TCP와 UDP의 차이점을 설명해주세요


 

TCP(Transmission Control Protocol)UDP(User Datagram Protocol)는 인터넷에서 데이터를 전송하기 위해 사용하는 프로토콜입니다. 두 프로토콜은 데이터 전송 방식과 특징에서 주요 차이점이 있습니다.

1. 연결 기반 vs 비연결 기반

  • TCP: 연결 기반 프로토콜로, 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정합니다. 이를 3-way handshake라고 합니다.
  • UDP: 비연결 기반 프로토콜로, 연결 설정 없이 데이터를 전송합니다. 송신자는 데이터를 바로 전송하며 수신 여부를 확인하지 않습니다.

 

2. 신뢰성

  • TCP: 신뢰성이 보장됩니다. 데이터의 손실, 중복, 순서가 어긋나는 경우 이를 복구하는 메커니즘(재전송, 순서 정렬 등)이 내장되어 있습니다.
  • UDP: 신뢰성을 보장하지 않습니다. 데이터가 손실되거나 순서가 바뀌어도 이를 복구하지 않으며, 수신 확인도 없습니다.

 

3. 속도

  • TCP: 신뢰성을 보장하기 위한 추가적인 작업(오버헤드) 때문에 속도가 상대적으로 느립니다.
  • UDP: 추가 작업이 없기 때문에 속도가 빠릅니다.

 

4. 데이터 흐름 제어 및 혼잡 제어

  • TCP: 데이터 흐름 제어와 네트워크 혼잡 제어를 수행하여 네트워크 상태에 맞게 전송 속도를 조정합니다.
  • UDP: 데이터 흐름 제어나 혼잡 제어를 하지 않습니다.

 

5. 패킷 크기와 데이터 무결성

  • TCP: 데이터가 큰 경우 패킷 단위로 나누어 전송하고, 각 패킷에 순서를 부여하여 재조립합니다.
  • UDP: 데이터를 패킷 단위로 전송하며, 패킷 크기와 데이터의 무결성은 응용 프로그램에서 처리해야 합니다.

 

사용 사례

  • TCP: 신뢰성이 중요한 애플리케이션에서 사용됩니다.
    • 예: 웹 브라우징(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP)
  • UDP: 속도가 중요하고, 데이터 손실이 허용되거나 별도의 복구 메커니즘이 있는 애플리케이션에서 사용됩니다.
    • 예: 실시간 스트리밍(Video, Audio), 온라인 게임, VoIP

 

예시

 

  • TCP: 택배 회사의 고급 배송 서비스. 택배를 보내면 받는 사람이 꼭 물건을 수령하고 확인할 때까지 추적하며 책임지고 전달함.
    (물건이 도착했는지 확인, 도착하지 않으면 다시 보내줌.)
  • UDP: 전단지 배포. 전단지를 문 앞이나 우편함에 두고 가며, 받았는지 확인하지 않고 다음 집으로 넘어감.
    (빠르게 배포하지만, 누락되거나 손상될 수 있음.)

 

'cs > ODOQ' 카테고리의 다른 글

[ODOQ] Checked Exception, Unchecked Exception  (0) 2024.11.26
[ODOQ] JPA의 N + 1  (0) 2024.11.25
[ODOQ] HTTP와 HTTPS의 차이점  (0) 2024.11.24
[ODOQ] 엔티티 매니저란?  (0) 2024.11.22
[ODOQ] JPA의 ddl-auto 옵션  (0) 2024.11.22