TCP와 UDP는 Transport Layer에서 데이터를 전송하기 위해 사용하는 프로토콜이다.
전송계층에서는 두 호스트 간에 연결을 맺고 최종적인 통신 목적지까지 데이터를 전달하는 기능을 한다. (OSI 7계층 자세히보기)
두 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만, 서로 다른 특징을 가지고 있다.
가상 회선 방식
을 제공한다.데이터 그램 방식
을 제공한다.CheckSum
필드를 통해 최소한의 오류만 검출한다.Source Port : 출발지 포트 번호
Destination Port : 도착지 포트 번호
Total Length : Header + Data ⇒ 사용자 데이터그램의 전체 길이
CheckSum : 오류 검출
CheckSum
: UDP 세그먼트 안의 비트에 대한 변경사항이 있는지 검사하는 역할! network를 통해 패킷을 송/수신하는 중에 헤더나 데이터가 손상되지 않았다는 것을 보증하기 위해 사용된다.ICMP
: 인터넷 제어 메시지 프로토콜, 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메세지를 전송받는데 주요 쓰임1번을 해결하기 위해 port 번호
가 탄생했고, 2번을 해결하기 위해 TCP/UDP
가 탄생하였다!
TCP
: 데이터의 분실, 중복, 순서 등을 자동으로 보정하기 때문에 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.UDP
: TCP와 달리 오류가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수 있어 어플리케이션에서 재처리해야 한다.https://github.com/haewon-park/csStudy/edit/main/Network/UDP.md