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