300x250
10. 
사용자 데이터그램 프로토콜과 IP 단편화


1.개요
2.UDP 헤더
3.UDP 체크섬
4.UDP-Lite
5.IP 단편화
6.IP 단편화와 ARP/ND 사이의 상호작용
7.최대 UDP 데이터그램 크기
8.UDP 서버 설계
9.UDPIP 단편화를 포함한 공격
10.정리

1. 개요

UDP?
데이터그램 지향 전송 계층 프로토콜
오류 정정, 순서화, 중복 제거, 흐름제어, 혼잡제어 기능이 없음.
언제 사용하나?
신뢰성이 필요하지 않고, 속도를 중요시 하는 통신
E.g. 실시간 멀티미디어 전송
Broadcast
Multicast
주기적인 전송
E.g. 라우팅 프로토콜(인접 라우터와의 통신)






3. Udp 체크섬

체크섬
오류정정을 통해 송신된 자료의 무결성을 보호하는 방법
UDP에서 체크섬의 사용
시작 송신기에서 계산되고, 목적지에서 검사
TCP는 필수 이지만, UDP는 옵션
체크섬 계산을 위해 IPv4 헤더 12byte의 의사 헤더를 포함.
의사헤더는 계산 목적으로만 사용되고 실제로 전송되지는
않음.
체크섬이 0으로 계산되었다면, 헤더의 체크섬 필드에 1
저장됨.
수신측에서 체크섬 필드가 0이라면, 송신자가 체크섬을 계산하지 않았다는 것을 나타냄.
수신자가 체크섬 에러를 발견하면, 즉시 폐기시킴.

에러 메시지를 발생시키지 않음.




4. UDP-LITE
기존 UDP
아무것도 다루지 않거나 전체 페이로드를 다루는 체크섬을 사용
UDP-Lite
부분적인 체크섬을 제공하도록 UDP 프로토콜을 변경함.
UDP 페이로드의 일부만 다룰 수 있음.



5. IP 단편화

IP단편화
데이터그램의 크기를 MTU이하로 작게 만드는 방법.
단편화 여부 결정
IP 데이터그램을 수신할 때마다 요구되는 MTU를 결정함.
IPMTU데이터그램의 크기를 비교하고 단편화를
수행.

단편화는 발신지, 경유지 에서도 발생할 수 있음.
단편 재조립
단편들로부터 원래 데이터그램을 생성.
Where?
최종 목적지에서 재조립.
경유지에서 재조립 될 수 없음.
이유 1
라우터에서 전달 소프트웨어의 부담을 완화 시키기 위해.
이유 2

동일한 데이터그램의 서로 다른 단편이 공통의 목적지로 갈때, 다른 경로를 통해 가는 경우가 발생함.


단편화의 단점
단편 손실 시 데이터 그램 전체를 재전송 해야 함.

재조립 타임아웃
IP 계층은 데이터그램의 어떤 단편이 처음 도착하면
타이머를 시작 함.
일반적인 타임아웃은 30~ 60.

타임아웃 시간이 지나면 단편은 폐기됨.

7. 최대 UDP 데이터그램

이론적인 크기
데이터 길이 필드가 16bit이기에 IPv4의  최대 크기는 65,535 bytes.
IP헤더 20bytesUDP헤더 8byte를 제외하면 65,507 bytes
현실적으로 최대 크기는 전달되지 않음.
이유 1
시스템 로컬 프로토콜 구현이 제한을 가질 수 있음.
이유2

수신 애플리케이션이 이런 큰 데이터 그램을 처리할 수
있는 준비가 안 됐을 수 있음.
구현 제한
setsockopt() 와 같은 API로 애플리케이션들의 송수신을 위한 버퍼 크기를 조절 가능 함.
많은 UDP 애플리케이션들은 데이터를 512바이트 이하로 제한하여 설계되어 있음.
데이터그램 절단
수신된 데이터그램의 크기가 애플리케이션의 허용 범위를 초과하면 초과 데이터를 폐기.
구현에 따라 다름.


8. UDP 서버 설계

로컬 IP 주소의 제약
UDP 서버는 종단점을 생성할 때 자신의 로컬 IP 주소를 wildcard화 함.
들어오는 UDP 데이터 그램을 모두 받아 들이기 위함.
다중 주소 사용
한 개의 네트워크 인터페이스를 가지고 있는 경우에도
부가적인 IP 주소를 구성할 수 있음.
e.g.
ip addr add 10.0.2.13 scope host dev eth0

Ip addr add 10.0.2.14 scope host dev eth0
중복 포트 사용 불가
Wildcard 주소-포트와 특정 주소-포트가 같이 쓰이면
동작 불가.
e.g.
Sock –u –s 12.46.129.3 8888 &
Sock –u –s 12.46.129.3
Can’t bind local address : address already in use


흐름 제어와 혼잡 제어의 부족
UDP는 흐름 제어를 제공하지 않기에 초과된 데이터그램은 즉시 폐기 됨.
혼잡?
라우터의 큐가 꽉 차서 트래픽이 폐기 됨 => 혼잡

UDP는 네트워크가 혼잡해지면 자신의 송신률이 낮아지는 것을 알아 챌 수 없음.

9. UdpIP 단편화를 포함한 공격

확대 Dos 공격
AttackerVictim의 주소를 Source IP로 하고 Dst IP브로드 캐스트 형태로 설정 하여 구축.
VictimIP데이터그램 응답 트래픽이 전달 됨.
ICMP Flood (스머프 공격)으로 사용 됨.
Tear drop 공격
데이터가 겹치거나 데이터가 과대한 IP 단편을 보냄.
IP 단편처리는 UDP처리에 비해 복잡하여 버그가 발견되기도 함.

이로 인해 운영체제가 깨질 수 있음.

10. 정리

UDP는 간단하며 오류 검출을 제공함.
UDP는 다음의 경우에 주로 사용 됨.
연결설정의 오버헤드를 피하고 싶을 때
멀티캐스팅, 브로드캐스팅이 사용될 때

TCP 신뢰성을 원하지 않을 때


반응형

+ Recent posts