본문 바로가기
  • 뚱이와 땡이의 30대 기록
IT 공부

UDP TCP 통신 특징과 차이점

by 뚱이와땡이 2024. 1. 9.
728x90
반응형

 

네트워크를 공부하다보면 UDP TCP 라는 이야기를 많이 듣게 되는데, 

그 특징과 차이점에 대해서 공부해 보았다.


UDP (User Datagram Ptorocol)

 

비연결형 서비스 (connectionless service)
연결 설정 과정이 없으며, 데이터를 순서에 상관없이 그때마다 독립적으로 전송함


신뢰성(unreliable) 없는 데이터 전송
연결 과정이 없기 때문에 데이터가 유실될 수 있고, 데이터 패킷을 순차적으로
전송하더라도 수신 쪽에서 받는 순서가 다를 수 있음

 

신속성
데이터를 빠르게 전송하기 위해 최소한의 추가 정보가 패킷 헤더(8 Byte)에 포함됨


Connectionless 통신
송신 및 수신 노드는 미리 데이터를 주고 받는 것을 약속하지 않음
메시지에 수신자의 IP 및 Port 를 명기하기 때문에 목적 노드의 목적 Application으로 데이터 전달 가능함

 

수신 데이터는 IP 및 UDP 헤더를 참조해서 누가 보낸 것인지 알 수 있음
메시지 전송 도중 다양한 경로로 전송되어 일부 메시지가 지연되는 것을 알 수 없음

 

UDP는 데이터 신뢰성 보장하지 않음
UDP는 메시지 송신 후 수신자가 잘 받았는지 확인하지 않음
미연결 프로토콜이므로 수신자는 어떤 노드가 데이터를 보내는지 알 수 없음. 따라서 메시지 누락 여부도 알 수 없음
데이터 손실이 시스템에 큰 영향을 주지 않고 빠른 데이터 전송이 필요한 분야 (e.g., 스트리밍)에서 활용됨

 

그렇다면 UDP 정보는 어떻게 신뢰성을 확보할까? 

 

UDP Checksum
손상된 패킷이 수신되면 해당 패킷을 버림
수신측에서 손실된 패킷 재전송을 요구하지 않음

 

 

UDP의 장단점

 

 

UDP 단점
전송한 데이터가 수신자에 의해 정상적으로 수신되는지 확인하지 않음
송신 노드가 보낸 순서와 수신 노드가 수신한 데이터의 순서(Sequence)가 동일함을 보장하지 않음


UDP 장점
TCP대비 헤더 크기가 적어 데이터 전송 속도 면에서 빠르고 효율적임
TCP 대비 프로토콜이 간단하여 CPU 자원 및 통신 리소스를 적게 사용함
수신 데이터의 정확성보다 시민감성이 우선되는 응용 프로세스에 적합
 => Youtube, 실시간 비디오 스트리밍 등

 

 


TCP (Transmission Control Protocol)

 

연결 지향 프로토콜로 통신 시작을 위해 연결 필요함
연결된 소켓은 양 수신 노드의 특정 Process를 연결하는 byte stream 역할 수행


신뢰성 있는 데이터 송수신
Sequence 및 Acknowledge 를 활용한 메시지 정상 송수신 여부 확인

오류 발생시 자동 재전송 기능


흐름 제어 (Flow control)
수신 노드의 버퍼 오버플로우 발생하지 않도록 전송 데이터의 양 조절함


혼잡 제어 (congestion control)
네트워크 혼잡 발생시 전송 데이터의 양 조절함

 

 

TCP는 연결 지향형 프로토콜
TCP는 통신 시작전 먼저 연결이 필요함
연결이 되면 송수신 프로세스 사이에 바이트 스트림이 생성됨
연결을 위해 3 way handshake (아래 그림)을 진행함
TCP도 UDP와 동일하게 서버의 IP와 Port 번호를 알고 있어야 함

 

 

 

 


결론

 

UDP는 수신이 불명확하지만, 빠른 정보를 전달하는경우 필요한 통신 방법이고 

 

TCP는 수신이 명확하고 신뢰성이필요한 통신인 경우 사용하는 통신방법 !

 

 

728x90
반응형