300x250
10.
사용자
데이터그램 프로토콜과 IP
단편화
1.개요
2.UDP
헤더
3.UDP
체크섬
4.UDP-Lite
5.IP
단편화
6.IP
단편화와
ARP/ND
사이의
상호작용
7.최대
UDP
데이터그램
크기
8.UDP
서버
설계
9.UDP와
IP
단편화를
포함한 공격
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를 결정함.
•IP는 MTU와 데이터그램의 크기를
비교하고 단편화를
수행.
수행.
•단편화는 발신지, 경유지
에서도 발생할 수 있음.
•단편
재조립
•단편들로부터 원래 데이터그램을 생성.
•
•Where?
•최종 목적지에서 재조립 됨.
•경유지에서 재조립 될 수 없음.
•이유
1
•라우터에서 전달 소프트웨어의 부담을 완화 시키기 위해.
•이유
2
•동일한 데이터그램의 서로
다른 단편이 공통의 목적지로 갈때, 다른
경로를 통해 가는 경우가 발생함.
•단편화의
단점
•단편 손실 시 데이터 그램 전체를 재전송 해야 함.
•재조립
타임아웃
•IP 계층은 데이터그램의 어떤
단편이 처음 도착하면
타이머를 시작 함.
타이머를 시작 함.
•일반적인 타임아웃은 30초 ~ 60초.
•타임아웃 시간이 지나면 단편은 폐기됨.
7. 최대 UDP 데이터그램 크기
•이론적인
크기
•데이터 길이 필드가 16bit이기에 IPv4의 최대 크기는 65,535 bytes 임.
•IP헤더 20bytes와 UDP헤더 8byte를
제외하면 65,507
bytes
•현실적으로 최대 크기는 전달되지 않음.
•
•이유
1
•시스템 로컬 프로토콜 구현이 제한을 가질 수 있음.
•이유2
•수신 애플리케이션이 이런 큰 데이터 그램을 처리할 수
있는 준비가 안 됐을 수 있음.
있는 준비가 안 됐을 수 있음.
•구현
제한
•setsockopt() 와 같은 API로
애플리케이션들의 송수신을 위한 버퍼 크기를 조절 가능 함.
•많은 UDP 애플리케이션들은 데이터를 512바이트
이하로 제한하여 설계되어 있음.
•
•데이터그램
절단
•수신된 데이터그램의 크기가
애플리케이션의 허용 범위를 초과하면 초과 데이터를 폐기.
•구현에 따라 다름.
8. UDP 서버 설계
•로컬
IP
주소의
제약
•UDP 서버는 종단점을 생성할 때 자신의 로컬 IP 주소를 wildcard화 함.
•들어오는 UDP 데이터 그램을 모두 받아 들이기 위함.
•
•다중
주소 사용
•한 개의 네트워크 인터페이스를 가지고 있는 경우에도
부가적인 IP 주소를 구성할 수 있음.
부가적인 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. Udp와 IP 단편화를 포함한 공격
•확대
Dos
공격
•Attacker가 Victim의 주소를
Source
IP로 하고 Dst IP를 브로드 캐스트
형태로 설정 하여 구축.
•Victim의 IP로 데이터그램 응답 트래픽이 전달 됨.
•ICMP Flood (스머프 공격)으로 사용
됨.
•
•Tear
drop 공격
•데이터가 겹치거나 데이터가 과대한 IP 단편을
보냄.
•IP 단편처리는 UDP처리에
비해 복잡하여 버그가 발견되기도 함.
•이로 인해 운영체제가 깨질 수 있음.
10. 정리
•UDP는
간단하며 오류 검출을 제공함.
•UDP는
다음의 경우에 주로 사용 됨.
•연결설정의 오버헤드를 피하고 싶을 때
•멀티캐스팅, 브로드캐스팅이 사용될
때
•TCP 신뢰성을 원하지 않을 때
반응형
'IT > TCP IP' 카테고리의 다른 글
15. TCP 데이터 흐름과 윈도우 관리 (0) | 2015.08.12 |
---|---|
14. TCP 타임아웃과 재전송 (0) | 2015.08.12 |
13. TCP 연결관리 (0) | 2015.08.12 |
12. TCP: 전송 제어 프로토콜 (0) | 2015.07.17 |
10. 사용자데이터그램 프로토콜과 IP단편화 추가내용 (0) | 2015.07.17 |