✅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 (손실이나 오류 발생 가능)
[헤더 크기]
* 헤더 크기 작음, 단순한 데이터 전송만을 위한 프로토콜
끝.