전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당함
두 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만 서로 다른 특징을 가지고 있음
TCP는 연결 지향형 프로토콜
UDP는 데이터를 데이터그램 단위로 전송하는 프로토콜
TCP는 가상 회선을 만들어 신뢰성을 보장하도록 하는 프로토콜로 UDP에 비해 속도가 느린 편
즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용함
✔️ 하지만 UDP도 신뢰성을 UDP 자체에서 보장하지 않는 것이지 추가적인 정의를 통해 신뢰성을 보장받을 수 있음
✔️ TCP도 UDP에 비해 상대적으로 느린거지 최근 많은 기술의 발전으로 빨라짐
TCP는 네트워크 계층 중 전송 계층에서 사용하는 프로토콜로서 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스임.
TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록 단위)를 안정적이고, 순서대로, 에러없이 교환 가능
연결형 서비스로 가상 회선 방식을 제공함
데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지함
네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지함
정상적인 상황에서는 ACK 값이 연속적으로 전송되어야 함
➡️ 근데 ACK 값이 중복? -> 패킷 이상 감지 후 재전송 요청
➡️ 일정 시간 동안 ACK 값이 수신 ❌ -> 재전송 요청
✔️ 전이중 : 전송이 양방향
✔️ 점대점 : 2개의 end-point를 가지고 있음
⭕️ 유니캐스트 ⭕️ -> 일대일 통신
❌ 멀티캐스트, 브로드캐스트 ❌ -> 일대일, 일대다, 다대다 통신
출처 : https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4