SNU INC Lab Ad hoc Network이란?

Download Report

Transcript SNU INC Lab Ad hoc Network이란?

Ad hoc Routing Protocols
서울대학교 전산과학과
정보통신 연구실
임효준
2020-04-27
 SNU INC Lab
발표 내용


Ad hoc network 소개
Ad hoc network의 라우팅 프로토콜







AODV
DSR
TORA
ZRP
CBRP
결론
향후 연구 이슈 소개
2020-04-27
 SNU INC Lab
Ad hoc Network이란?


유선 기반망 없이 이동 단말로만 구성된 망
장점


유선 기반망이 구축되어 있지 않은 곳에서 손쉽게 망을 구성
용도



긴급 구조 상황
전쟁 수행 중
Wearable computing
2020-04-27
 SNU INC Lab
유의어

(Mobile) Packet Radio Network



Mobile Mesh Network
MANET(Mobile Ad hoc Network)



70-80년대 군사적 연구 과정에서 붙여진 이름
IETF
Mobile, Multihop, Wireless Network
Wireless Network
2020-04-27
 SNU INC Lab
무선망의 특성

Mobility


Broadcast



망의 형상이 매우 동적으로 변하게 됨
무선 신호는 공중으로 전파됨
원하지 않는 이동 단말도 데이터 수신이 가능한 경우 있음
기타 특성




낮은 대역폭과 높은 에러율
전력 사용을 줄여야 함
낮은 보안성
단방향 링크의 존재
 MACA 등의 프로토콜로 극복 가능
2020-04-27
 SNU INC Lab
Ad hoc 망 라우팅의 필요성

각 이동 단말이 라우터의 기능을 수행
2020-04-27
 SNU INC Lab
Ad hoc 망의 라우팅 문제

기존망의 라우팅 프로토콜



Distance Vector
Link State
기존 라우팅 프로토콜의 문제점

주기적인 메시지 교환을 필요로 함
 망의 사용가능 대역폭을 낭비함

망의 동적인 변화에 빠르게 대응하지 못함
 Ad hoc 망은 각 호스트가 자유롭게 이동할 수 있으므로 망
형상의 변화가 매우 잦음
 Routing loop 생성

이동 단말이 너무 많은 작업량을 필요로 함
2020-04-27
 SNU INC Lab
연구 진행 상황

IETF working group MANET




Mobile Ad hoc Networks
라우팅 방법 정의
보안 문제 연구
현재 5개의 프로토콜이 제안되어 있음
 AODV, DSR, TORA, ZRP, CBRP

일정





97년 8월: 후보 프로토콜 제출
98년 3월: 제출된 프로토콜들의 개선
98년 8월: 동작하는 prototype 시스템의 demonstration
99년 3월: 구현 및 수정. Internet Draft 작성
99년 12월: 표준 제정
2020-04-27
 SNU INC Lab
AODV





Charles Perkins
Sun Microsystems
Ad hoc On-demand Distance Vector routing
protocol
DSDV(Destination Sequenced Distance
Vector) routing algorithm의 On-demand 버전
Distance Vector 알고리즘의 라우팅 루프 생성
문제를 해결
2020-04-27
 SNU INC Lab
AODV 기본 동작

두 개의 패킷을 사용

RREQ(Route Request)
 목적지를 찾을 때까지 flooding됨

RREP(Route Reply)
 소스에게로 unicast됨
 Distance Vector 라우팅의 Distance-Vector와 유사한 기능

hello 메시지

RREP의 일종
 주소: 255.255.255.255
 TTL: 1
 metric: 0

노드가 연결되어 있음을 주위에 알림
2020-04-27
 SNU INC Lab
AODV 라우팅 테이블 내용





목적지 IP 주소
Hop Count
Next hop
Lifetime
Destination Sequence Number



목적지에 대해 생성되는 일련 번호
라우팅 정보가 최신의 것임을 보장
라우팅 루프를 방지하는 역할
2020-04-27
 SNU INC Lab
RREQ, RREP 전송과정



무한 metric을 가지는 항목은 일정 시간 후에
삭제 가능
RREQ 전송 후 일정 시간동안 RREP를 기다림
RREQ Forwarding



RREQ를 받은 노드는 최근에 같은 RREQ를 받았으면 무시
자신의 라우팅 테이블에 해당 목적지 항목이 있고 해당
Destination Sequence Number가 RREQ의 값보다 작지
않으면 RREP 전송
그렇지 않으면 나중에 받게 될 RREP를 소스로 되돌려 주기
위해 소스 방향 Reverse route를 저장하고 RREQ를
rebroadcast
2020-04-27
 SNU INC Lab
DSR






David B. Johnson and David A. Maltz
Carnegie Mellon University
Dynamic Source Routing
Monarch project
메시지 전송이 필요한 경우 Route discovery
프로토콜을 수행
모든 노드가 자기 자신을 root로 하는 Shortest
path tree 유지
2020-04-27
 SNU INC Lab
DSR의 기본 개념

소스 라우팅



패킷 헤더에 목적 노드까지의 경로를 명시해 전송
패킷을 받은 노드는 패킷 헤더에 표시된 다음 노드로 전달
경로 캐쉬



자신이 배운 경로를 저장
경로 캐쉬에 자신이 원하는 경로가 없으면 Route discovery
수행
Route maintenance를 통해 경로를 올바르게 유지
2020-04-27
 SNU INC Lab
Route Discovery

Route request 메시지





원하는 목적지 명시
<개시자 주소, request id>를 통해 유일하게 식별됨
목적 노드에게 전달될 때까지 거쳐간 노드를 기록해 나감
AODV의 RREQ와 동일
Route request를 받은 호스트의 동작




Duplicate route request이면 무시
자신의 주소가 패킷에 기록된 경로상에 있으면 무시
Route request의 목적지가 자신이면 Route reply 전송
아니면 Route request를 broadcast
2020-04-27
 SNU INC Lab
Route Maintenace

Route error 메시지



패킷 전달 실패 시에 송신자에게 전달
에러가 발생한 링크의 양단 노드를 명시
ACK의 형태


Hop-by-hop ACK
Passive ACK
 근처의 다른 hop이 동일한 패킷을 전송하면 받은 것으로 간주
A
2020-04-27
B
 SNU INC Lab
C
Optimization




Full use of the route cache
Piggybacking on route discoveries
Reflecting shorter routes
Improved handling of errors
2020-04-27
 SNU INC Lab
Full use of the route cache


지나가는 패킷을 통해 새로운 경로 학습
Route reply로부터 라우팅 경로 학습
B-C-D
A
B
C
E
F
2020-04-27
D
 SNU INC Lab
Piggybacking on route discoveries



데이터를 Route request에 piggybacking
너무 큰 데이터의 경우는 하면 안됨
목적지가 아닌 노드가 reply하는 경우


Piggybacking한 데이터가 목적 노드에 전달되지 못함
Route response를 보낸 호스트는 piggybacking된 데이터를
담은 새로운 패킷을 생성해 목적지에 전달
 원래 송신자가 보낸 것처럼 보내야 함
2020-04-27
 SNU INC Lab
Reflecting shorter routes

경로를 줄일 수 있다고 판단되면 줄임


B가 C에게 메시지 전달
D가 B에 근접하게 되어 메시지를 받게 되었음
 Route reply 전송
B
2020-04-27
C
 SNU INC Lab
D
Improved handling of errors

Exponential backoff




동일한 목적지에 대해 수행할 수 있는 경로 발견 시행률을
제한
Partition이 생긴 경우 불필요한 route recovery 방지
Route error 패킷을 엿들어 정보 갱신
Negative 정보의 캐슁

에러가 발생한 노드를 지우지 않고 캐슁해 둠
D
C
A
B
E
2020-04-27
 SNU INC Lab
ADG(Acyclic Directed Graphs)

정의


Cycle이 없는 directed graph
Destination oriented


모든 노드에 대해 목적 노드로 가는 경로가 존재
목적지 이외의 모든 노드가 밖으로 나가는 링크를 가짐
2020-04-27
 SNU INC Lab
ADG Problem

정의



주어진 Connected destination disoriented ADG의 일부 링크
방향을 바꿔 Destination oriented ADG로 변경
TORA의 motivation이 됨
알고리즘

Full reversal
 밖으로 나가는 링크가 존재하지 않는 노드를 찾아 링크의 모든
방향을 밖으로 나가도록 변경

Partial reversal
 목적지를 제외한 모든 노드가 인접 링크 중 링크 방향이 바뀐
적이 있는 노드의 리스트 유지
 밖으로 나가는 링크가 존재하지 않는 노드를 찾아 리스트에
속하지 않은 링크의 방향을 바꾸고 리스트에 추가
2020-04-27
 SNU INC Lab
Full Reversal Algorithm
1¹ø° °úÁ¤
4¹ø° °úÁ¤
2020-04-27
2¹ø° °úÁ¤
ÃÖÁ¾ DAG
 SNU INC Lab
3¹ø° °úÁ¤
Partial Reversal Algorithm
1¹ø° °úÁ¤
4¹ø° °úÁ¤
2020-04-27
2¹ø° °úÁ¤
ÃÖÁ¾ DAG
 SNU INC Lab
3¹ø° °úÁ¤
Numbering Scheme의 도입

Full reversal




Partial reversal






모든 노드 k에 대해 (A(k), k)의 height를 할당
(A(m),m)>(A(n),n)이면 m->n
밖으로 나가는 링크가 없는 노드 k에 대해 A(k)를 인접 노드의
가장 큰 A 값 +1로 증가시킴
(A(k), B(K), k)
초기의 A(k)=0
A(k) = 인접노드의 A의 최소값 + 1
B(k) = A(k)와 같은 A를 가지는 인접 노드의 B -1
같은 A를 가지는 노드가 없으면 B(k)는 그대로 둠
Numbering Scheme은 loop-free 보장
2020-04-27
 SNU INC Lab
General Class of Algorithms

정의




Full reversal algorithm과 Partial reversal algorithm을 모두
포함하는 일반적인 알고리즘
Numbering scheme을 이용해 정의
나가는 링크가 없는 노드의 height를 증가시켜 나가며
동작하는 알고리즘
성질



루프를 생성하지 않음
유한 번의 반복 이후에 DAG 그래프를 생성
목적지로 연결되는 경로가 존재하는 노드는 그 링크 방향이
유지
2020-04-27
 SNU INC Lab
TORA




Vincent D. Park and M. Scott Corson
Naval Research Lab.& University of Maryland
Temporally-Ordered Routing Algorithm
Routing optimality 희생





Multiple routes
Adaptability 극대화
General class of algorithm의 일종
망에 생긴 partition을 검출
모든 목적지에 대해 Destination Oriented
ADG를 유지
2020-04-27
 SNU INC Lab
TORA 기본 개념

Node Height


H(k) = (T(k), OID(k), R(k), D(k), k)
T(k), OID(k), R(k): Reference level
 T(k): Link failure 발생 시각
 OID(k): Originator node ID
 동시에 서로 다른 노드가 새로운 reference level을 정의하는 경우
그들간의 순서를 만들어 줌
 R(k): 1 bit. 한 reference level의 노드들을 두 부분으로 나눔
 이전 reference level에 속하는 노드
 새로운 reference level에 속하는 노드


D(k): 하나의 reference level에서의 delta 값
k: 노드의 ID
2020-04-27
 SNU INC Lab
Initial Setting

Node Height



H(k) = NULL(-,-,-,-,k)
목적지의 H(k) = 0(0,0,0,0,did)
Link-status



H가 높은 노드가 Upstream node
H가 NULL인 이웃노드와는 Undirected
H가 NULL인 노드는 NULL이 아닌 노드의 Upstream
2020-04-27
 SNU INC Lab
메시지 종류 및 RR flag

QRY 메시지



UPD 메시지



did와 패킷을 방송한 노드의 Height를 포함
QRY에 대한 응답
CLR 메시지


did를 포함
목적지까지의 경로가 존재하지 않는 경우 전송 개시
Partition 발생 시 라우팅 정보 삭제
Route required flag
각 노드마다 유지
 RR(k)
2020-04-27
 기본값: unset

 SNU INC Lab
경로 생성

QRY 전송


directed link가 없고 RR(k)=0인 노드가 목적지까지의
라우팅이 필요한 경우에 방송하고 자신의 RR(k)를 1로 바꿈
QRY 전달




나가는 링크가 없고 RR(k) = 0이면 QRY 방송 후 RR(k)=1
나가는 링크가 없고 RR(k) = 1이면 QRY 무시
나가는 링크가 있고 H(k)=NULL이면 H가 가장 작은 노드 j를
찾아 H(k) = (T(j), OID(j), R(j), D(j)+1, k)로 갱신 후 UPD 방송
나가는 링크가 있고 H(k)!=NULL이면 QRY 도착한 링크가
active된 시간과 최근의 UPD 패킷 방송 시간을 비교
 UPD 패킷 방송이 더 이르면 UPD 방송
 아니면 QRY 무시
2020-04-27
 SNU INC Lab
경로 생성

UPD 전달


RR(k)=1이면 H(k) = (T(k), OID(j), R(j), D(j)+1, k)로 하고
RR(k) = 0으로 하며 UPD 방송
RR(k)=0이면 링크 상태만 갱신
2020-04-27
 SNU INC Lab
경로 생성 예
QRY
QRY
QRY
QRY
UPD
(0,0,0,0,F)
QRY
(0,0,0,0,F)
(0,0,0,3,A)
UPD
(0,0,0,2,B)
UPD
(0,0,0,1,H)
(0,0,0,3,A)
(0,0,0,0,F)
(0,0,0,2,B)
UPD
UPD
(0,0,0,2,D) (0,0,0,1,E)
UPD
(0,0,0,3,C) (0,0,0,2,D) (0,0,0,1,E) (0,0,0,3,C) (0,0,0,2,D) (0,0,0,1,E)
UPD
(0,0,0,2,G)
(0,0,0,1,H)
2020-04-27
(0,0,0,0,F) (0,0,0,2,G)
(0,0,0,1,H)
(0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H)
 SNU INC Lab
(0,0,0,0,F)
경로 관리


H가 NULL이 아니고 나가는 링크가 없는
노드에 대해 적용
Case 1: Generate



링크 failure로 인해 모든 나가는 링크가 사라진 경우
H(k) = (t, k, 0, 0, k)
Case 2: Propagate



나가는 링크가 없고 모든 이웃 노드의 reference level이 같지
않은 경우
Reference level을 이웃 노드 중 가장 큰 것으로 함
Reference level이 가장 큰 이웃 노드 중 가장 작은 D 값에서
1을 빼서 D 값으로 정함
2020-04-27
 SNU INC Lab
경로 관리

Case 3: Reflect



Case 4: Detect



나가는 링크가 존재하지 않고 모든 이웃 노드의 reference
level이 같으며 R(k)=0인 경우
H(k) = (T(j), OID(j), 1, 0, k)
나가는 링크가 존재하지 않고 모든 이웃 노드의 reference
level이 같으며 R(k)=1이고 OID(j)==k인 경우
H(k) = NULL
Case 5: Generate


나가는 링크가 존재하지 않고 모든 이웃 노드의 reference
level이 같으며 R(k)=1이고 OID(j)!=k인 경우
H(k) = (t, k, 0, 0, k)
2020-04-27
 SNU INC Lab
경로 관리 예
(0,0,0,3,A)
(0,0,0,2,B)
(0,0,0,3,A)
(0,0,0,2,B)
(0,0,0,3,A) (1,D,0,-1,B)
UPD
(0,0,0,3,C) (0,0,0,2,D) (0,0,0,1,E)
UPD
(0,0,0,3,C) (1,D,0,0,D) (0,0,0,1,E) (0,0,0,3,C) (1,D,0,0,D) (0,0,0,1,E)
(0,0,0,2,G) (0,0,0,1,H)
(0,0,0,2,G) (0,0,0,1,H)
(0,0,0,0,F)
(1,D,0,-2,A) (1,D,0,-1,B)
UPD
(0,0,0,0,F) (0,0,0,2,G) (0,0,0,1,H)
(1,D,0,-2,A) (1,D,0,-1,B)
(0,0,0,3,C) (1,D,0,0,D) (0,0,0,1,E)
(0,0,0,3,C) (1,D,0,0,D) (0,0,0,1,E)
(0,0,0,2,G) (0,0,0,1,H)
(0,0,0,2,G) (0,0,0,1,H)
2020-04-27
(0,0,0,0,F)
 SNU INC Lab
(0,0,0,0,F)
(0,0,0,0,F)
경로 삭제



Case 4에서 진행
CLR 패킷을 flooding
Partition 내의 모든 노드는 H=NULL
2020-04-27
 SNU INC Lab
ZRP





Zygmunt J. Haas, Marc R. Pearlman
Cornell University
Zone Routing Protocol
Hierarchical
작은 지역에 대해서는 proactive


항상 라우팅 테이블 유지
넓은 지역에 대해서는 reactive

필요한 경우에 라우팅 경로 요청
2020-04-27
 SNU INC Lab
ZRP 개념

Routing zone


Peripheral nodes


거리가 R인 노드의 집합
Bordercasting


특정 노드로부터 거리가 R 이하인 노드의 집합
Peripheral node들에게 IP 데이터그램을 전달하는 작업
IARP & IERP

IntrAzone Routing Protocol(IARP)
 Routing zone 내에서의 라우팅

IntErzone Routing Protocol(IERP)
 Routing zone들간의 라우팅
2020-04-27
 SNU INC Lab
Routing zone & Peripheral nodes

A의 routing zone과 peripheral nodes(R=2)
C
G
D
E
A
2020-04-27
F
 SNU INC Lab
B
IERP

동작



목적 노드가 routing zone 외부에 있는 경우에 IERP 개시
Route request를 bordercast
Route request 받은 노드들도 목적 노드가 routing zone
외부에 있는지 체크
 내부에 있는 경우는 Route reply 전송
2020-04-27
 SNU INC Lab
IERP


A가 L에게 전송
R=2
D
2020-04-27
C
F
E
H
A
B
G
I
C
J
K
 SNU INC Lab
L
CBRP





Mingliang Jiang, Jinyang Li, Yong Chiang Tay
National University of S’pore
Cluster Based Routing Protocol
DSR과 유사한 Source routing
Cluster를 구성함으로써 경로 발견을 위한
flooding의 비용을 줄임
2020-04-27
 SNU INC Lab
Cluster 구성

Cluster head


Cluster member


Cluster head에 인접한 모든 호스트는 해당 cluster에 속함
Gateway node


모든 이웃 노드보다 자신의 ID가 작고 다른 cluster head에
인접하지 않은 경우 자신을 cluster head로 결정
다른 cluster member에 인접한 노드
각 노드는 두 개의 테이블을 유지



Adjacent node table
Adjacent cluster table
HELLO 패킷을 교환해 테이블을 유지
2020-04-27
 SNU INC Lab
Route Discovery

RREQ 메시지




RREP 메시지


Source 노드는 RREQ 메시지를 cluster head에게 전송
Cluster head는 인접 cluster의 head에게 RREQ 전송
목적지 호스트나 목적지까지의 경로를 아는 호스트는
RREP를 Source에게 보냄
RREP를 소스 노드에게 forward하는 노드는 필요한 경우
경로에 대해 optimization을 수행
Route cache

발견된 경로는 route cache에 저장됨
2020-04-27
 SNU INC Lab
결론

AODV



DSR


Optimality를 희생하는 대신 망의 동적인 변화에 잘 대응하기
위한 프로토콜
ZRP


Source routing
TORA


Distance Vector 라우팅의 on-demand version
Destination Sequence Number 사용
Hierarchical routing
CBRP
 SNU
INC Lab
Cluster를 구성하으로써
DSR에
비해 flooding 수를 줄임
2020-04-27

향후 연구 과제

기존 Unicast routing 프로토콜의 개선



Multicast routing





Multicast tree 구성
Broadcast 성질을 이용한 효과적인 라우팅 알고리즘
성능 분석
보안
다른 프로토콜과의 연관


Flooding의 개선
라우팅 방법들의 성능 분석
TCP on ad hoc network
유선망과의 결합
2020-04-27
 SNU INC Lab