연결 지향적
TCP는 통신을 시작하기 전에 먼저 연결을 설정한다.
이 과정을 '3-way handshake'라고 하며, 안정적인 연결을 보장한다.
신뢰성
TCP는 데이터가 정확하게 전송되었는지 확인한다.
데이터가 손상되거나 유실된 경우 재전송을 요청한다.
순서 보장
TCP는 데이터 패킷이 올바른 순서로 도착하도록 보장한다.
순서가 뒤바뀐 패킷은 다시 정렬된다.
흐름 제어 및 혼잡 제어
TCP는 네트워크 혼잡과 데이터 흐름을 관리하여 보내는 쪽과 받는 쪽 모두에서 데이터가 원활하게 전송되도록 한다.
더 느린 속도
위의 기능들로 인해 TCP는 UDP보다 상대적으로 느릴 수 있다.
사용 사례
웹 브라우징, 이메일, 파일 전송 등등 이 있다.
비연결 지향적
UDP는 연결을 설정하지 않고 데이터를 바로 보낸다.
이는 통신을 빠르게 만들지만, 안정성이 떨어진다.
신뢰성 없음
데이터가 손상되거나 유실되어도 UDP는 이를 확인하지 않고 재전송 요청도 하지 않는다.
순서 보장 없음
데이터 패킷이 도착하는 순서는 불확실하며 UDP는 이를 정렬하지 않는다.
오버헤드가 적음
연결 설정 및 데이터 확인 과정이 없기 때문에 TCP보다 오버헤드가 적다.
더 빠른 속도
오버헤드가 적고 데이터 확인 과정이 없기 때문에 UDP는 TCP보다 빠를 수 있다.
사용 사례
스트리밍, 온라인 게임, VoIP 등등
안정적이고 순서가 중요한 데이터 전송이 필요하다면 TCP
속도가 중요하고 일부 데이터 손실이 허용된다면 UDP를 사용하는게 바람직하다