UDP(User Datagram Protocol)

도착 port 및 IP 에 패킷을 전달하기만함.

응용 패키지는 패킷된 것과 동일한 형태, 동일한 양(청크)의 데이터를 제공받음

IP와 UDP는 Connectless Protocol의 종류이며 이는 주로 인터넷 통화 및 비디오 스트리밍 서비스에 이용됨

그중에서 DNS는 UDP를 메인으로 사용함.

→ UDP는 송수신 확인 및 데이터 검증을 위한 데이터를 보내지 않음. 이에 따라 보다 빠르고, 오버헤드가 낮음. 대신 신뢰성이 떨어질 수 있음

TCP(Transmission Control Protocol)

Connection based Protocol

Control Packet을 서버와 클라이언트가 최초로 주고 받기 전까지는 그 어떤 Data도 전달하지 않음

→ 이를 handshake라고 하며 TCP는 4-way handshake를 기본으로 함

TCP는 항상 source port number를 필요로 하는데, 이는 4-way handshake 중 최초 이후로 이어지는 나머지 2번의 handshake를 위해 서버가 클라이언트에게 Control Packet을 전달해야하기 때문

이런 특성 덕분에 TCP는 고신뢰성, seamless and continuous stream of byte를 제공함 → 단, 오버헤드가 있으며 UDP보다는 효율이 낮음

TCP provides following services

특징 TCP UDP
신뢰성 (Reliability) 높음 (재전송, 순서 보장) 낮음 (재전송 X, 순서 보장 X)
속도 (Speed) 느림 (오버헤드 및 제어) 빠름 (오버헤드 최소화)
연결 방식 연결 기반 (Connection-oriented) 비연결 기반 (Connectionless)
데이터 전달 단위 바이트 스트림 (Byte Stream) 데이터그램 (Datagram)
헤더 크기 (최소) 20 바이트 8 바이트
주요 사용처 HTTP/HTTPS (웹), FTP, 이메일 (SMTP/POP/IMAP) DNS, VoIP, 온라인 게임, 라이브 스트리밍