TCP는 연결 지향적 프로토콜로 안정적인 데이터 전송을 보장한다.
TCP는 데이터를 패킷으로 나누어 전송하고, 전송된 패킷이 정확히 도착했는지 확인하며, 도착하지 않은 패킷은 재전송합니다.
이 과정에서 연결을 설정한 후 통신을 시작하므로 데이터 전송의 신뢰성을 보장합니다.
신뢰성 : TCP는 전송된 데이터의 정확한 전달을 보장한다. 패킷 손실이나 오류가 있을 경우 재전송하여 데이터를 정확하게 전달합니다.
순서 보장 : 데이터를 보낼 대 패킷의 순서를 보장하는데, 수신 측에서는 전송된 순서대로 데이터를 받을 수 있다.
흐름 제어 : 수신자의 처리 능력에 맞춰 데이터를 전송하여 네트워크 혼잡을 방지한다.
느린 속도 : 연결을 설정하고 패킷을 확인하는 과정이 필요하기 때문에 속도가 느릴 수 있다.
오버헤드 : 데이터 손실을 방지하기 위한 제어 정보가 추가로 필요하여, 오버헤드가 증가할 수 있다.
복잡성 : 연결 지향적인 프로토콜로서 구현이 복잡하고, 추가적인 처리가 필요하다.
UDP는 비연결성 프로토콜로 데이터를 패킷 단위로 전송하지만, 데이터가 제대로 도착했는지 확인하지 않습니다.
패킷 손실, 오류, 순서 변경 등의 문제가 발생할 수 있지만 빠른 전송 속도를 제공한다.
빠른 속도 : 연결을 설정하지 않고 즉시 데이터를 전송하기 때문에 전송 속도가 매우 빠르다.
단순성 : 오류 검출과 복구 과정이 없어 프로토콜이 간단하고 오버헤드가 적다.
멀티캐스트 지원 : 여러 클라이언트에게 동시에 데이터를 전송할 수 있는 기능을 지원합니다.
신뢰성 부족 : 패킷 손실이나 순서 변경에 대해 보장하지 않으므로 데이터를 전송한 후에는 정확한 수신 여부를 확인할 수 없다.
순서 보장 없음 : 수신 측에서는 전송된 패킷의 순서를 보장하지 않기 때문에 데이터의 순서가 뒤죽박죽인 상태로 도착할 수 있다.
흐름 제어 없음 : 송신자가 데이터를 너무 빨리 보내면 수신자가 처리하지 못해 데이터가 손실 될 수 있다.
항목 | TCP | UDP |
---|---|---|
연결 지향성 | 연결 지향적 | 비연결성 |
신뢰성 | 높은 신뢰성 | 신뢰성 낮음 |
속도 | 느림 | 빠름 |
흐름 제어 | 있음 | 없음 |
사용 예시 | 웹 브라우징, 이메일, 파일 전송 | 스트리밍, 온라인게임,VoIP |
데이터의 정확한 전송과 순서가 중요한 경우 TCP를 사용하는 것이 합리적이고
실시간 스트리밍이나 온라인 게임처럼 빠른 속도의 데이터 전송이 필요한 경우 UDP를 사용하는 것이 더 효과적으로 보입니다.