속도와 정확성, 둘 중 하나만 선택한 프로토콜들 근데 QUIC 는 다잡았지롱
공통점
TCP 와 UDP 모두 TCP/IP 의 전송계층 에서 사용되는 프로토콜이다.
두 프로토콜 모두 패킷을 전달해주는 IP 프로토콜 위에서 작동한다
전송계층은, 패킷 전송을 제어하는 역할을 담당하는 계층이다.
TCP 란
TCP 의 특징
- 연결형 서비스
TCP 는 두 단말 사이의 논리적인 연결 을 구축한 뒤 데이터를 전송하는 연결형 서비스
이다.
데이터의 전송과 응답이 종료되면 연결을 해제한다.
이때, 논리적인 연결을 구축하고, 연결을 해제하기위해 handshaking 이라는 기법을 사용한다
자세한 내용은 Handshaking 참조
- 3-way handshaking
TCP 에서 상호간의 연결을 구축 하는데 사용하는 기법이다.
- 4-way handshaking
TCP 에서 상호간의 연결을 해제 하는데 사용하는 기법이다.
- Full Duplex 두 달말이 데이터 송수신을 위해 각각 독립된 회선을 사용한다.
따라서, 두단말에서 동시에 송신이 발생할 수 있다.
- Point to Point
두 단말을 일 대 일로 독립적으로 연결하여, 언제든지 데이터 전송이 가능하다.
TCP 의 장단점
- 데이터를 보낼 경우, handshaking 을 통해 검증된 연결로를 사용하여 전송하므로, 데이터의 신뢰성이 보장된다.
- 데이터의 흐름제어와 혼잡제어가 가능하다.
데이터 흐름제어는 송신측과 수신측의 데이터 처리 속도차이를 해결하기 위한 기법이며
데이터 혼잡제어는 송신측의 데이터 전달
과 네트워크의 데이터 처리속도
의 차이를 해결하기 위한 기법이다.
- 검증 과정(handshaking)으로 인해 평균적으로 UDP 에 비해 전송 속도가 느리다
- 일 대 일 통신만 가능하다.
UDP 란
UDP 의 특징
- 비연결형 서비스
UDP 는 두 단말 사이의 연결을 확립하지 않고 데이터를 전송하는 비연결형 서비스
이다.
이를 위해 UDP 는 데이터그램을 통한 통신방식을 제공한다.
- Datagram IP 계층(OSI 7계층) 의 가변길이 패킷으로, Header 와 Data 로 구성되어있는 패킷이다.
데이터의 기본 전송 단위이다.
- Checksum
최소한의 신뢰성 검증 로직이다.
네트워크를 통해 전송된 데이터의 값이 변경되었는지를 검사한다.
즉 데이터의 무결성을 검사한다.
이때 Checksum(검사합) 은 전체 데이터를 해싱하는 방식으로 구할 수 있다.
UDP 의 장단점
- 최소한의 검증만을 거치기 때문에 TCP 에 비해 빠르다
- 데이터의 신뢰성이 없고 패킷의 유실/변조 에 대한 해결방안을 마련하기 어렵다
- 단말간의 일 대 일 연결로가 없어 패킷하나하나를 일일이 관리해주어야한다.