UDP란?
UDP(User Datagram Protocol)는 네트워크 통신에서 사용되는 전송 계층 프로토콜 중 하나로, 데이터를 신뢰성보다는 속도를 우선으로 하는 비연결형 프로토콜이다. TCP(Transmission Control Protocol)와 함께 인터넷 프로토콜 스위트의 일부로 사용되며, TCP와 비교하여 일부 상황에서 더 적합한 프로토콜로 사용된다.
인터넷 프로토콜 스위트(Internet Protocol Suite): 인터넷에서 컴퓨터와 기기들이 통신하기 위해 사용되는 프로토콜의 모음
UDP의 특징과 동작 방식
1. 비연결형 프로토콜
UDP는 연결 설정과 관련된 핸드셰이크 과정이 없다. TCP와 달리 연결을 설정하고 끊는 과정이 없기 때문에 데이터 패킷을 빠르게 전송할 수 있다. 그러나 이로 인해 데이터의 손실이나 순서 변경 등의 문제가 발생할 수 있다.
2. 신뢰성 보장이 없음
TCP와 달리 UDP는 데이터의 신뢰성을 보장하지 않는다. 따라서 데이터를 전송할 때 오류 검사나 재전송 기능이 없어서, 데이터가 손실되거나 손상될 수 있다. 하지만 실시간 데이터 전송(예: 음성, 영상 스트리밍)과 같은 경우, 재전송으로 인한 지연을 피하기 위해 UDP가 선호된다.
3. 패킷 구조
UDP는 데이터를 일정 크기의 패킷으로 분할하여 전송한다. 각 패킷은 목적지 포트와 출발지 포트 정보를 포함하며, 패킷의 순서를 보장하지 않는다.
4. 빠른 전송
UDP는 데이터를 빠르게 전송할 수 있기 때문에, 일부 애플리케이션들은 신속한 데이터 전송을 위해 UDP를 사용한다. 대표적으로 DNS(Domain Name System), 음성 및 영상 스트리밍, 온라인 게임 등이 UDP를 사용하는 예시이다.
UDP는 신뢰성이나 순서의 보장이 필요하지 않은 경우에 유용한 프로토콜이지만, 중요한 데이터 전송에는 적합하지 않을 수 있다. 따라서 TCP와 UDP 중 어떤 프로토콜을 선택할지는 애플리케이션의 요구 사항과 특성에 따라 결정되어야 한다. TCP는 신뢰성과 연결 지향성을 보장하여 오류를 최소화하는 반면, UDP는 빠른 데이터 전송을 지원하여 지연을 최소화하는 데 적합하다.
전송 후 대기 프로토콜이란?
ARQ(Automatic Repeat Request)는 오류 복구와 신뢰성 보장을 위해 사용되는 기술로, 전송된 데이터의 오류 여부를 확인하고, 오류가 발생한 경우에는 손상된 데이터를 재전송하여 신뢰성을 확보한다.
ARQ의 작동 방식
1. 데이터 전송
데이터 송신 측은 데이터를 패킷으로 분할하여 수신 측으로 전송합니다. 각 패킷은 일련번호를 가지며, 순서대로 전송된다.
2. 확인 응답(ACK) 수신
데이터 수신 측은 데이터를 받으면 정상적으로 수신되었다는 확인 응답(ACK)을 송신 측으로 보낸다. ACK에는 수신한 패킷의 일련번호가 포함되어 있다.
ACK(Acknowledgment): 데이터 통신에서 데이터를 정상적으로 수신한 것을 보내는 측에게 알려주는 TCP 프로토콜에서 사용되는 메시지
3. 손상된 패킷 확인
송신 측은 ACK를 기다리면서 패킷을 전송합니다. 만약 송신된 패킷이 일정 시간 내에 ACK를 수신하지 못하면, 손상되었다고 가정하고 해당 패킷을 재전송한다.
4. 재전송과 피드백
송신 측은 ACK를 수신하지 못한 패킷들을 다시 전송하여 수신 측에 도달하게 한다. 수신 측은 수신한 패킷을 중복해서 받게 될 수 있지만, 중복 패킷은 일련번호를 통해 구분할 수 있다. 수신 측은 중복 패킷을 버리고, 올바른 패킷을 상위 계층으로 전달한다.
5. 타임아웃
ACK를 수신하지 못하는 경우 일정 시간 내에 송신 측에서 타임아웃(Time-out)이 발생하게 된다. 타임아웃이 발생하면 손상된 패킷을 재전송하게 된다.
이러한 ARQ 기술을 통해 데이터의 손실과 오류를 최소화하고, 신뢰적인 데이터 전송을 보장할 수 있다. TCP(Transmission Control Protocol)는 신뢰적 데이터 전송을 위해 ARQ 기술을 사용한다. 송신 측과 수신 측이 상호작용하면서 데이터의 신뢰성을 유지하고, 데이터의 정확성과 순서를 보장한다. 이를 통해 안정적인 데이터 통신을 가능하게 합니다.
파이프라인 프로토콜(Pipeline protocol)이란?
파이프라인 프로토콜은 신뢰적 데이터 전송에서 효율성을 높이기 위해 사용되는 기술이다. 이는 데이터 전송을 더 빠르고 효율적으로 처리하기 위해 여러 단계로 분리하여 동시에 처리하는 방식으로 작동한다.
파이프라인 프로토콜의 원리
1. 데이터 분할
데이터 송신 측은 전송할 데이터를 여러 개의 작은 패킷으로 분할한다. 각각의 패킷은 일련번호를 가지며, 순서대로 전송된다.
2. 병렬 전송
파이프라인 프로토콜은 데이터를 순차적으로 전송하는 것이 아니라, 병렬로 여러 개의 패킷을 전송한다. 이때 각각의 패킷들은 서로 다른 경로를 통해 독립적으로 전송된다.
3. 동시 처리
수신 측은 동시에 여러 개의 패킷을 받아서 처리한다. 이를 위해 병렬로 동작하는 데모 더(Demodulator)로 패킷들을 받은 다음, 각각의 패킷을 복원하여 원래의 데이터를 추출한다.
4. 순서 정렬
파이프라인 프로토콜은 병렬로 전송된 패킷들의 순서를 수신 측에서 재조립하는 과정이 필요하다. 일련번호를 통해 패킷들의 순서를 파악하고, 순서대로 복원하여 원래의 데이터를 구성한다.
파이프라인 프로토콜은 데이터 전송을 여러 단계로 나누어 병렬로 처리하므로, 전송 지연을 최소화하고 대역폭을 효율적으로 활용할 수 있다. 이를 통해 데이터의 처리 속도를 높이고, 신뢰적이며 빠른 데이터 전송을 가능하게 한다.
TCP(Transmission Control Protocol)에서도 파이프라인 프로토콜의 원리를 적용하여, 송신 측과 수신 측 사이의 효율적인 데이터 전송을 지원한다. TCP에서는 슬라이딩 윈도우(Sliding Window)라는 기술을 사용하여 데이터의 파이프라이닝을 수행한다. 이를 통해 데이터의 흐름을 끊임없이 유지하고, 신뢰성과 효율성을 동시에 보장한다.
슬라이딩 윈도우(Sliding Window): 데이터 전송에서 사용되는 기술로, 송신 측과 수신 측 간의 효율적인 데이터 전송을 가능하게 하는 기술이다. 송신 측과 수신 측은 동시에 여러 개의 패킷을 처리하고, 데이터 전송의 효율성과 신뢰성을 높일 수 있다. TCP(Transmission Control Protocol)에서는 슬라이딩 윈도우 기술을 사용하여 데이터의 흐름을 조절하고, 신뢰적인 데이터 전송을 지원한다. 이를 통해 안정적이고 효율적인 데이터 통신을 가능하게 한다.
'Computer Network study' 카테고리의 다른 글
TCP (Transmission Control Protocol) (0) | 2023.08.10 |
---|---|
신뢰적 데이터 전송 (Sliding window, Go Back N, Selective Repeat) (0) | 2023.08.10 |
HTTPS & DNS (0) | 2023.08.02 |
HTTP 프로토콜 (0) | 2023.07.26 |
컴퓨터 네트워크와 네트워크 레이어 (1) | 2023.07.26 |