먼저 TCP와 UDP가 나오게 된 배경을 간단히 살펴보면 다음과 같다.
IP는 Host to Host
로 **장치** to **장치**
만을 지원한다. 따라서 하나의 장비 안에서 여러 프로그램들이 통신을 할 경우에는 IP만으로 한계가 있다
➡️ Port 번호 탄생 배경
IP에서 오류가 발생한다면 ICMP에서 알려준다. ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다
➡️ IP보다 상위 프로토콜인 TCP/UDP 탄생 배경
UDP(User Datagram Protocol) :
사용자 데이터그램 프로토콜
전송 계층에서 사용하는 프로토콜
비연결형 프로토콜
신뢰성이 없는 전송 프로토콜
➡️ 모두 사용자 프로세스의 몫
데이터를 데이터그램 단위로 처리
속도(데이터의 처리)가 빠름
Header의 크기 : 8byte
MTU사이즈에 맞게 데이터를 분리해서 보낼 때 데이터를 의미있는 단위로 분리해서 전송
Header의 Checksum 필드를 통해 최소한의 오류만 검출
TCP(Transmission Control Protocol) :
전송 제어 프로토콜
전송 계층에서 사용하는 프로토콜
연결형 프로토콜 (1:1 통신)
신뢰성이 보장되는 프로토콜
가상 회선 방식 제공
IP와 함께 사용
속도가 UDP보다 느림
Header의 크기 : 20byte
MTU사이즈에 맞게 데이터를 분리해서 보낼 때 데이터를 ByteStream으로 분리 후 처리
** 참고 : MTU(Maximum Transmission Unit) : 최대 전송 단위*
UDP와 TCP는 각각 별도의 포트 주소 공간을 관리하므로 같은 포트 번호를 사용해도 무방하다. 즉, 두 프로토콜에서 동일한 포트 번호를 할당해도 서로 다른 포트로 간주한다.
공통점
차이점