TCP와 UDP의 차이점

728x90
반응형

✅TCP & UDP : 네트워크 구성하는 OSI 7계층 중 4계층에 속하는 전송 계층에서 사용되는 프로토콜

   (데이터 전달 담당 계층)

 

[요약]

TCP : 신뢰성 있는 전송 + 연결형 서비스 (웹 브라우징, 이메일, 파일 전송 등 신뢰성 중요한 서비스)

✅ UDP : 속도가 중요할때 + 비연결성 서비스 (실시간 스트리밍 서비스에 적합)

 


 

1️⃣ TCP 

* 인터넷 상에서 데이터를 메세지 형태로 보내기 위해 3계층 IP와 함께 사용되는 프로토콜

* 연속성 < 신뢰성 전송이 중요할때 사용하는 프로토콜

 

[특징]

(1) 연결형 서비스 => 연결이 성공해야 통신간으

(2) 3-way handshake 과정으로 연결

(3) 4-way handshake 과정으로 연결 해제

(4) 데이터 흐름 제어 : 수신자의 버퍼 플로우 제어 

                 혼잡 제어 : 패킷수가 과도하게 증가 방지

(5) 높은 신뢰성 보장 : 데이터 순서 유지 + 각 바이트마다 번호 부여 => 순서를 보장하며 전달!

(6) UDP 보다 느린 속도

(7) 전이중(Full-Deplex), 점대점 (Point to Point) 방식

 

내가 그림 ㅎ.ㅎ

* ACK : Acknowledgement (승인 : 요청 확인했다는 응답)

* SYN : Synchronize Sequence Number ( 연결이 이루어지도록 요청)

 

3-way handshake로 신뢰성 있는 연결 

=> 동기화 및 순서 지정

: 첫번째 SYN 패킷은 연결 요청과 함께 시퀀스 번호 전송 => 데이터 패킷이 순서대로 도착하고 추적 가능

 

 4-way handshake로 신뢰성 있는 연결해제

=> 양방향 종료 

=> 일정시간 기다림 : 어느 한쪽이 패킷을 못 받았을 경우, 타임아웃 후 재전송을 통해 패킷이 전달될때까지 연결 종료 x

 

➡️ 이러한 절차로 데이터가 손실되거나 순서 뒤바뀌는 것을 방지

  + 연결과 종료시 동일한 상태가 되며 신뢰성 있는 통신이 가능함

 

[신뢰성]

* 데이터 전송 중 오류 발생시 재전송을 통해 신뢰성 있는 데이터 전송을 보장

 

[헤더 크기]

* 헤더 크기가 크며, 연결 설정, 순서 관리, 오류 제어 등의 기능을 제공하기 때문에 상대적 오버헤드가 큼

 

 

 

2️⃣ UDP 

* 데이터를 주고 받을 때 연결 절차 X

* 발신자가 일방적으로 데이터 발신 => 속도가 빠름 + 신뢰성 ↓

 

[특징]

(1) 비연결성 서비스 : 연결없이 통신가능 + 데이터 그램 방식 제공

(2) 정보 주고받을때, 신호 절차 X

(3) 신뢰성 X 데이터 전송

(4) 패킷, 오버헤드가 적어 네트워크 과부하 감소

(5) TCP보다 빠른 전송 속도

 

 

[신뢰성]

* 데이터 전송 중 오류 발생하더라도 재전송 X (손실이나 오류 발생 가능)

 

[헤더 크기]

* 헤더 크기 작음, 단순한 데이터 전송만을 위한 프로토콜

 

 

 

 

 

끝.

 

반응형