- TCP : Transmission Control Protocol
(전송제어 프로토콜)
: 신뢰성이 요구되는 애플리케이션에서 사용
: 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간, 바이트 스트림(데이터, 메시지, 세그먼트_블록단위)을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
- UDP : User Datagram Protocol
(사용자 데이터그램 프로토콜)
: 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서 사용
: IP데이터그램을 캡슐화하여, 연결설정 없이 전송함
비교
TCP의 특징
(1) 연결형 서비스
연결형 서비스로, 가상회선 방식을 제공한다.
- 3-way handshaking 을 통해 연결을 설정
- 4-way handshaking 을 통해 연결을 해제
(2) 흐름제어(Flow control)
- 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
- 송신하는 곳에서 너무 많은 데이터를 너무 빨리 보내 수신하는 곳에서 문제가 발생되는 것을 막는다.
- 수신자가 윈도우 크기(Window Size) 값을 통해 수신량을 정할 수 있다.
(3) 혼잡제어(Congestion control)
- 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지
- 정소의 소통량이 너무 많으면 패킷 전송량을 조정하여 혼잡붕괴현상이 일어나는 것을 막는다.
(4) 신뢰성이 높은 정송(Reliable transmission)
- Dupack-based retransmission
- 정상적인 상황에서는 ACK값이 연속적으로 전송되어야 한다.
- ACK값이 중복으로 올 경우 패킷 이상을 감지하고 재전송을 요청한다.
- Timeout-based retransmission
- 일정시간동안 ACK 값이 수신을 못할 경우 재전송을 요청한다.
(5) 전이중, 점대점 방식
- 전이중(Full-Duplex)
- 전송이 양방향으로 동시에 일어날 수 있다.
- 점대점(Point to Point)
- 각 연결이 정확히 2개의 종단점을 가지고 있다.
=> 멀티캐스팅(다대다)과 브로드캐스팅(일대일, 일대다)을 지원하지 않는다.
UCP의 특징
(1) 비연결형 프로토콜
(2...) TCP의 반대임
(3) 사용예 : DNS
- 어떤 호스트 네임의 IP 주소를 찾을 필요가 있는 프로그램은, DNS서버로 호스트 네임을 포함한 UDP 패킷을 보낸다.
-> 이 서버는 호스트의 IP주소를 포함한 UDP 패킷으로 응답한다.