맨틀 이야기
UDP 프로토콜 본문
UDP(User Datagram Protocol)는 비연결형 전송 계층 프로토콜로, 데이터를 빠르게 전송하는 데에 중점을 둔다. TCP와 달리 연결을 수립하고 끊는 과정(3-way, 4-way handshake)이 없고, 전송되는 데이터의 신뢰성을 보장하지 않는다. 원활한 전송을 보장하지 않는 대신 전송 속도가 빠르기 때문에 스트리밍이나 화상 회의 등 실시간 데이터 전송이 필요한 경우에 유용하게 쓰인다.
UDP 프로토콜의 장점
- 송신자와 수신자가 특정 연결 회로를 설정하지 않는다. 1:1 통신뿐만 아니라 다수를 대상으로 하는 1:n, n:n 통신도 가능하다. 여러 수신자에게 데이터를 동시에 전송할 수 있다.
- 데이터의 수신 여부를 확인하지 않기 때문에 재전송, 흐름 제어, 혼잡 제어 등의 전송 제어를 하지 않는다. 때문에 지연 시간이 적어 실시간 데이터 전송이 가능하다.
- 헤더가 8바이트로 작아 오버헤드가 적고, 네트워크 자원을 적게 사용한다. (TCP의 헤더는 20바이트)
- 오버헤드: 데이터 전송에는 필요없는 정보 또는 처리 작업
UDP 프로토콜의 단점
- 수신 측에 마구잡이로 전송하기 때문에 데이터가 손실되거나 전송 순서가 달라질 수 있다. 데이터 전송에 대한 신뢰성을 보장하지 않는다.
- 데이터 전송에 대한 제어를 하지 않아서 손실 여부나 오류를 확인할 수 없다.
- 네트워크 상황에 따라 데이터 전송을 관리하지 않아서, 네트워크가 과부하됐을 땐 전송 효율이 떨어질 수 있다.
UDP 체크섬
UDP 체크섬(checksum)은 UDP 통신에서 데이터의 무결성을 검증하는 메커니즘이다. 송신자가 데이터를 전송하기 전에 데이터와 UDP 헤더의 값을 사용해 체크섬 값을 계산하고, 이를 UDP 헤더에 포함시킨다. 수신자는 다음 과정을 통해 데이터의 무결성을 확인한다:
- 수신된 데이터와 헤더를 바탕으로 체크섬을 재계산
- 계산된 체크섬 값이 헤더에 포함된 값(송신자가 계산한 값)과 일치하는지 비교
- 일치하지 않을 경우, 데이터가 손상된 것으로 간주
IPv4에서의 체크섬은 선택 사항이라서 네트워크 드라이버나 애플리케이션에서 설정에 따라 활성화 또는 비활성화가 가능하다. IPv6에서는 예외적으로 체크섬이 필수로 요구된다.
UDP 체크섬은 기본적으로 오류 감지를 위한 것이며, 오류 복구는 애플리케이션에서 처리해야 한다.
'CS' 카테고리의 다른 글
IP 주소 (0) | 2024.11.25 |
---|---|
TCP 프로토콜 (0) | 2024.11.23 |
웹 리소스 전송 관련 정책 (0) | 2024.11.16 |
쿠키, 세션, JWT 토큰으로 사용자 세션 유지 (0) | 2024.11.15 |
SSL/TLS 프로토콜의 암호화 과정 (0) | 2024.11.12 |