[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 |