1. TCP (Transmission Control Protocol)
TCP는 신뢰성이 높은 연결 지향(연결 설정 필요) 프로토콜입니다. 데이터 전송 시 패킷이 손실되거나 순서가 뒤바뀌는 것을 방지하기 위해 엄격한 오류 검출 및 복구 메커니즘을 사용합니다. 주요 특징은 다음과 같습니다.
- 연결 지향적: 데이터 전송 전에 송신자와 수신자 간에 연결을 설정합니다. (3-way Handshake)
- 신뢰성 보장: 데이터가 손실되거나 손상되면 재전송을 통해 복구합니다.
- 데이터 흐름 제어: 송수신 속도를 조정해 네트워크 혼잡을 방지합니다.
- 패킷 순서 보장: 데이터가 올바른 순서로 도착하도록 정렬합니다.
- 오버헤드: 패킷 헤더가 크고, 재전송 및 확인 절차로 인해 성능이 다소 저하될 수 있습니다.
주요 사용 사례:
- HTTP/HTTPS (웹 브라우징)
- 이메일 전송 (SMTP, IMAP, POP3)
- 파일 전송 (FTP)
2. UDP (User Datagram Protocol)
UDP는 속도에 중점을 둔 비연결 지향 프로토콜입니다. 데이터 전송 중 오류 검출 및 복구 메커니즘을 제공하지 않으며, 주로 실시간 응용 프로그램에서 사용됩니다. 주요 특징은 다음과 같습니다.
- 비연결 지향적: 데이터 전송 전에 별도의 연결 설정이 필요 없습니다.
- 신뢰성 미보장: 패킷 손실, 중복, 순서 변경 등이 발생할 수 있습니다.
- 빠른 전송 속도: 단순한 구조로 인해 전송 속도가 빠릅니다.
- 오버헤드가 적음: 헤더 크기가 작아 네트워크 부하가 적습니다.
주요 사용 사례:
- 스트리밍 (비디오, 오디오)
- 온라인 게임
- DNS 조회
- VoIP (음성 통신)
TCP와 UDP의 차이점
구분 | TCP | UDP |
프로토콜 유형 | 연결 지향(Connection-oriented) | 비연결 지향(Connectionless) |
신뢰성 | 신뢰성 보장 (재전송 및 오류 복구) | 신뢰성 미보장 |
속도 | 느림 (오버헤드 존재) | 빠름 (오버헤드 적음) |
데이터 순서 | 데이터 순서 보장 | 데이터 순서 보장 안 함 |
흐름 제어 | 흐름 및 혼잡 제어 제공 | 흐름 제어 없음 |
오버헤드 | 패킷 헤더 크기 큼 | 패킷 헤더 크기 작음 |
전송 방식 | 스트림(Stream) 기반 | 메시지(Message) 기반 |
사용 사례 | 웹, 이메일, 파일 전송 | 스트리밍, 게임, DNS, VoIP |
반응형