네트워크 통신에서 데이터를 안정적으로 전송하고자 할 때, 데이터 전송에 대한 요구사항에 따라 '신뢰성'과 '즉시성'을 고려해 프로토콜을 선택해야 합니다. 이 두 가지 측면에서 가장 널리 사용되는 프로토콜 중 두 가지인 TCP 와 UDP 에 대해 알아봅시다.
TCP (Transmission Control Protocol)
TCP는 데이터를 신뢰성 있게 전송하기 위해 사용되며 중요한 데이터를 확실하게 보내야 할 때에 적합합니다.
통신하는 컴퓨터 끼리 응답을 주고 받았는지 확인하는 과정을 거치면서 데이터를 전달해 신뢰성을 높입니다.
- 연결지향성: TCP는 연결 지향적인 프로토콜입니다. 데이터를 전송하기 전에 연결 설정 단계를 거치고, 연결 설정이 완료된 후에 데이터를 전송합니다. 이 과정에서 3-way handshake를 통해 신뢰성 있는 데이터 전송을 보장합니다.
- 신뢰성: TCP는 데이터 전송 중 손실된 패킷을 재전송하고, 데이터의 순서를 보장하며 중복된 데이터를 제거합니다.
- 속도: TCP는 연결 설정과 신뢰성을 보장하는 기능 때문에 전송 속도가 상대적으로 느릴 수 있습니다.
UDP (User Datagram Protocol)
UDP는 데이터를 빠르게 전달하고자 할 때 사용되며, 즉시성이 중요한 서비스에 적합합니다.
데이터를 받았는지 확은하는 응답 절차를 생략하고 데이터를 보내는 방식으로 즉시성(실시간성)을 높입니다.
- 연결지향성: UDP는 연결 설정이 필요 없는 비연결형 프로토콜입니다. 데이터를 전송하기 위해 목적지 IP 주소와 포트 번호만 지정하면 됩니다.
- 신뢰성: UDP는 데이터를 전송할 때 손실된 패킷이나 중복된 패킷을 다시 전송하지 않기 때문에 신뢰성이 떨어집니다.
- 속도: UDP는 연결 설정과 신뢰성을 보장하는 추가적인 오버헤드가 없기 때문에 전송 속도가 빠릅니다.
사용 예시
- TCP: 웹 서버, 이메일, 파일 전송 등과 같이 신뢰성이 중요한 애플리케이션에서 주로 사용됩니다.
- UDP: DNS, 온라인 게임, 스트리밍 등과 같이 전송 속도가 중요하고 데이터의 일부가 손실되어도 문제가 되지 않는 애플리케이션에서 사용됩니다.
요약
TCP는 데이터 전달을 보장하는 신뢰할 수 있는 연결 지향 프로토콜이며,
UDP는 데이터 전달을 보장하지 않는 빠르고 효율적인 비연결 프로토콜입니다.
'기술 > CS' 카테고리의 다른 글
[네트워크] HTTP 메서드 종류와 GET, POST의 차이 알아보기 (0) | 2024.01.11 |
---|---|
[자료구조] 리스트, 스택, 큐, 트리, 그래프 (0) | 2023.12.12 |
[기초] 컴파일 언어 vs 인터프리터 언어 (0) | 2023.12.10 |
[네트워크] OSI 참조 모델 알아보기 (0) | 2023.12.04 |