TCP/UDP 통신 [통신 - TCP/UDP]
TCP VS UDP
TCP와 UDP는 OSI 7계층 중 Transport Layer - 전송 계층 에서 사용되는 프로토콜이다. 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다. TCP와 UDP의 특징들에 대해 알아보고자 한다.
💥 TCP - Transmission Control Protocol
우선 간단한 그림을 통해 TCP의 데이터 송신 과정을 살펴보자.
✔ ACK(확인 신호)를 응답받아야 다음 메세지를 전송하고 응답을 받지 못하면 재전송을 한다.
이러한 특징때문에 신뢰성 이 높지만 속도가 비교적 느리다.
TCP 특징
1️⃣ : 연결형 서비스
3-Way Handshaking 과정을 통해 연결한다.
4-Way Handshaking 과정을 통해 연결을 해제한다.
3-Way Handshaking
양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하도록 한다. SYN : Synchronize Sequence Numbers ACK : Acknowledgment
1️⃣ : Client가 서버에 접속을 요청하는 SYN 패킷을 전송한다.
2️⃣ : 서버는 Client에게 SYN 요청을 받고 Client에게 요청을 수락하는 ACK 와 SYN flag가 설정된 패킷을 전송한다. Client가 다시 ACK을 응답하기를 기다린다.
3️⃣ : Client는 서버에게 ACK 응답을 전송하고 연결이 서로 이루어진다. 이후 데이터가 오고 간다.
4-Way Handshaking
4-Way Handshaking은 세션을 종료하기 위해 수행되는 과정이다.
1️⃣ : Client가 연결 종료를 요청하는 FIN 플래그를 전송한다.
2️⃣ : 서버는 FIN 플래그를 받고 ACK 응답을 보낸다. 그리고 종료 준비가 될 때까지 기다린다.
3️⃣ : 서버는 연결 종료 준비가 되었다면, 종료를 알리는 FIN 플래그를 Client에게 전송한다.
4️⃣ : Client는 연결 종료 준비가 완료되었다는 ACK 확인 메세지를 전송한다.
2️⃣ : 흐름 제어 가능
데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다. 송신자가 너무 많은 데이터를 전송하게 되면 수신자의 부담이 커지기 때문에 Window Size를 통해서 수신량을 조절할 수 있다.
3️⃣ : 신뢰성 높은 전송
ACK 값을 받아야 다음 전송이 이루어지기 때문에 비교적 신뢰성이 높은 전송 방식이다.
주로 Web, Mail 등의 어플이케이션의 데이터 송수신에서 이용되기 적합한 특징이다.
4️⃣ : UDP에 비해 느린 속도
UDP는 일방적인 방식이기 때문에 이에 비해 비교적 느린 속도이다.
💥 UDP - User Datagram Protocol
마찬가지로 UDP도 우선 간단한 그림을 통해 데이터 송신 과정을 살펴보자.
UDP 특징
일방적 -> 빠름 - But, 신뢰성이 보장되지 않는다.
UDP 통신은 수신자가 데이터를 받았는지는 관심이 없기 때문에, 일방적이라 표현할 수 있다. 이러한 방식으로 UDP는 신뢰성을 보장하진 않지만 속도가 비교적 빠른 것이 특징이다. 일반적으로 실시간 스트리밍이 중요한 Streaming Service 같은 서비스에 적합하다.
마지막으로 TCP와 UDP의 차이에 대해 설명하는 간단한 그림을 살펴보자.
참고 자료 및 출처
끝 !!
✨ 잘못된 부분은 많은 조언 및 지적 부탁드립니다. - JunHyxxn