1 / 48

Ad hoc Routing Protocols

Ad hoc Routing Protocols. 서울대학교 전산과학과 정보통신 연구실 임효준. 발표 내용. Ad hoc network 소개 Ad hoc network 의 라우팅 프로토콜 AODV DSR TORA ZRP CBRP 결론 향후 연구 이슈 소개. Ad hoc Network 이란 ?. 유선 기반망 없이 이동 단말로만 구성된 망 장점 유선 기반망이 구축되어 있지 않은 곳에서 손쉽게 망을 구성 용도 긴급 구조 상황 전쟁 수행 중 Wearable computing. 유의어.

penn
Télécharger la présentation

Ad hoc Routing Protocols

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ad hoc Routing Protocols 서울대학교 전산과학과 정보통신 연구실 임효준

  2. 발표 내용 • Ad hoc network 소개 • Ad hoc network의 라우팅 프로토콜 • AODV • DSR • TORA • ZRP • CBRP • 결론 • 향후 연구 이슈 소개

  3. Ad hoc Network이란? • 유선 기반망 없이 이동 단말로만 구성된 망 • 장점 • 유선 기반망이 구축되어 있지 않은 곳에서 손쉽게 망을 구성 • 용도 • 긴급 구조 상황 • 전쟁 수행 중 • Wearable computing

  4. 유의어 • (Mobile) Packet Radio Network • 70-80년대 군사적 연구 과정에서 붙여진 이름 • Mobile Mesh Network • MANET(Mobile Ad hoc Network) • IETF • Mobile, Multihop, Wireless Network • Wireless Network

  5. 무선망의 특성 • Mobility • 망의 형상이 매우 동적으로 변하게 됨 • Broadcast • 무선 신호는 공중으로 전파됨 • 원하지 않는 이동 단말도 데이터 수신이 가능한 경우 있음 • 기타 특성 • 낮은 대역폭과 높은 에러율 • 전력 사용을 줄여야 함 • 낮은 보안성 • 단방향 링크의 존재 • MACA 등의 프로토콜로 극복 가능

  6. Ad hoc 망 라우팅의 필요성 • 각 이동 단말이 라우터의 기능을 수행

  7. Ad hoc 망의 라우팅 문제 • 기존망의 라우팅 프로토콜 • Distance Vector • Link State • 기존 라우팅 프로토콜의 문제점 • 주기적인 메시지 교환을 필요로 함 • 망의 사용가능 대역폭을 낭비함 • 망의 동적인 변화에 빠르게 대응하지 못함 • Ad hoc 망은 각 호스트가 자유롭게 이동할 수 있으므로 망 형상의 변화가 매우 잦음 • Routing loop 생성 • 이동 단말이 너무 많은 작업량을 필요로 함

  8. 연구 진행 상황 • 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월: 표준 제정

  9. AODV • Charles Perkins • Sun Microsystems • Ad hoc On-demand Distance Vector routing protocol • DSDV(Destination Sequenced Distance Vector) routing algorithm의 On-demand 버전 • Distance Vector 알고리즘의 라우팅 루프 생성 문제를 해결

  10. AODV 기본 동작 • 두 개의 패킷을 사용 • RREQ(Route Request) • 목적지를 찾을 때까지 flooding됨 • RREP(Route Reply) • 소스에게로 unicast됨 • Distance Vector 라우팅의 Distance-Vector와 유사한 기능 • hello 메시지 • RREP의 일종 • 주소: 255.255.255.255 • TTL: 1 • metric: 0 • 노드가 연결되어 있음을 주위에 알림

  11. AODV 라우팅 테이블 내용 • 목적지 IP 주소 • Hop Count • Next hop • Lifetime • Destination Sequence Number • 목적지에 대해 생성되는 일련 번호 • 라우팅 정보가 최신의 것임을 보장 • 라우팅 루프를 방지하는 역할

  12. RREQ, RREP 전송과정 • 무한 metric을 가지는 항목은 일정 시간 후에 삭제 가능 • RREQ 전송 후 일정 시간동안 RREP를 기다림 • RREQ Forwarding • RREQ를 받은 노드는 최근에 같은 RREQ를 받았으면 무시 • 자신의 라우팅 테이블에 해당 목적지 항목이 있고 해당 Destination Sequence Number가 RREQ의 값보다 작지 않으면 RREP 전송 • 그렇지 않으면 나중에 받게 될 RREP를 소스로 되돌려 주기 위해 소스 방향 Reverse route를 저장하고 RREQ를 rebroadcast

  13. DSR • David B. Johnson and David A. Maltz • Carnegie Mellon University • Dynamic Source Routing • Monarch project • 메시지 전송이 필요한 경우 Route discovery 프로토콜을 수행 • 모든 노드가 자기 자신을 root로 하는 Shortest path tree 유지

  14. DSR의 기본 개념 • 소스 라우팅 • 패킷 헤더에 목적 노드까지의 경로를 명시해 전송 • 패킷을 받은 노드는 패킷 헤더에 표시된 다음 노드로 전달 • 경로 캐쉬 • 자신이 배운 경로를 저장 • 경로 캐쉬에 자신이 원하는 경로가 없으면 Route discovery 수행 • Route maintenance를 통해 경로를 올바르게 유지

  15. Route Discovery • Route request 메시지 • 원하는 목적지 명시 • <개시자 주소, request id>를 통해 유일하게 식별됨 • 목적 노드에게 전달될 때까지 거쳐간 노드를 기록해 나감 • AODV의 RREQ와 동일 • Route request를 받은 호스트의 동작 • Duplicate route request이면 무시 • 자신의 주소가 패킷에 기록된 경로상에 있으면 무시 • Route request의 목적지가 자신이면 Route reply 전송 • 아니면 Route request를 broadcast

  16. Route Maintenace • Route error 메시지 • 패킷 전달 실패 시에 송신자에게 전달 • 에러가 발생한 링크의 양단 노드를 명시 • ACK의 형태 • Hop-by-hop ACK • Passive ACK • 근처의 다른 hop이 동일한 패킷을 전송하면 받은 것으로 간주

  17. Optimization • Full use of the route cache • Piggybacking on route discoveries • Reflecting shorter routes • Improved handling of errors

  18. Full use of the route cache • 지나가는 패킷을 통해 새로운 경로 학습 • Route reply로부터 라우팅 경로 학습

  19. Piggybacking on route discoveries • 데이터를 Route request에 piggybacking • 너무 큰 데이터의 경우는 하면 안됨 • 목적지가 아닌 노드가 reply하는 경우 • Piggybacking한 데이터가 목적 노드에 전달되지 못함 • Route response를 보낸 호스트는 piggybacking된 데이터를 담은 새로운 패킷을 생성해 목적지에 전달 • 원래 송신자가 보낸 것처럼 보내야 함

  20. Reflecting shorter routes • 경로를 줄일 수 있다고 판단되면 줄임 • B가 C에게 메시지 전달 • D가 B에 근접하게 되어 메시지를 받게 되었음 • Route reply 전송

  21. Improved handling of errors • Exponential backoff • 동일한 목적지에 대해 수행할 수 있는 경로 발견 시행률을 제한 • Partition이 생긴 경우 불필요한 route recovery 방지 • Route error 패킷을 엿들어 정보 갱신 • Negative 정보의 캐슁 • 에러가 발생한 노드를 지우지 않고 캐슁해 둠

  22. ADG(Acyclic Directed Graphs) • 정의 • Cycle이 없는 directed graph • Destination oriented • 모든 노드에 대해 목적 노드로 가는 경로가 존재 • 목적지 이외의 모든 노드가 밖으로 나가는 링크를 가짐

  23. ADG Problem • 정의 • 주어진 Connected destination disoriented ADG의 일부 링크 방향을 바꿔 Destination oriented ADG로 변경 • TORA의 motivation이 됨 • 알고리즘 • Full reversal • 밖으로 나가는 링크가 존재하지 않는 노드를 찾아 링크의 모든 방향을 밖으로 나가도록 변경 • Partial reversal • 목적지를 제외한 모든 노드가 인접 링크 중 링크 방향이 바뀐 적이 있는 노드의 리스트 유지 • 밖으로 나가는 링크가 존재하지 않는 노드를 찾아 리스트에 속하지 않은 링크의 방향을 바꾸고 리스트에 추가

  24. Full Reversal Algorithm

  25. Partial Reversal Algorithm

  26. 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 보장

  27. General Class of Algorithms • 정의 • Full reversal algorithm과 Partial reversal algorithm을 모두 포함하는 일반적인 알고리즘 • Numbering scheme을 이용해 정의 • 나가는 링크가 없는 노드의 height를 증가시켜 나가며 동작하는 알고리즘 • 성질 • 루프를 생성하지 않음 • 유한 번의 반복 이후에 DAG 그래프를 생성 • 목적지로 연결되는 경로가 존재하는 노드는 그 링크 방향이 유지

  28. 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를 유지

  29. 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

  30. 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

  31. 메시지 종류 및 RR flag • QRY 메시지 • did를 포함 • 목적지까지의 경로가 존재하지 않는 경우 전송 개시 • UPD 메시지 • did와 패킷을 방송한 노드의 Height를 포함 • QRY에 대한 응답 • CLR 메시지 • Partition 발생 시 라우팅 정보 삭제 • Route required flag • 각 노드마다 유지 • RR(k) • 기본값: unset

  32. 경로 생성 • 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 무시

  33. 경로 생성 • UPD 전달 • RR(k)=1이면 H(k) = (T(k), OID(j), R(j), D(j)+1, k)로 하고 RR(k) = 0으로 하며 UPD 방송 • RR(k)=0이면 링크 상태만 갱신

  34. 경로 생성 예

  35. 경로 관리 • 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 값으로 정함

  36. 경로 관리 • 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)

  37. 경로 관리 예

  38. 경로 삭제 • Case 4에서 진행 • CLR 패킷을 flooding • Partition 내의 모든 노드는 H=NULL

  39. ZRP • Zygmunt J. Haas, Marc R. Pearlman • Cornell University • Zone Routing Protocol • Hierarchical • 작은 지역에 대해서는 proactive • 항상 라우팅 테이블 유지 • 넓은 지역에 대해서는 reactive • 필요한 경우에 라우팅 경로 요청

  40. 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들간의 라우팅

  41. Routing zone & Peripheral nodes • A의 routing zone과 peripheral nodes(R=2)

  42. IERP • 동작 • 목적 노드가 routing zone 외부에 있는 경우에 IERP 개시 • Route request를 bordercast • Route request 받은 노드들도 목적 노드가 routing zone 외부에 있는지 체크 • 내부에 있는 경우는 Route reply 전송

  43. IERP • A가 L에게 전송 • R=2

  44. CBRP • Mingliang Jiang, Jinyang Li, Yong Chiang Tay • National University of S’pore • Cluster Based Routing Protocol • DSR과 유사한 Source routing • Cluster를 구성함으로써 경로 발견을 위한 flooding의 비용을 줄임

  45. Cluster 구성 • Cluster head • 모든 이웃 노드보다 자신의 ID가 작고 다른 cluster head에 인접하지 않은 경우 자신을 cluster head로 결정 • Cluster member • Cluster head에 인접한 모든 호스트는 해당 cluster에 속함 • Gateway node • 다른 cluster member에 인접한 노드 • 각 노드는 두 개의 테이블을 유지 • Adjacent node table • Adjacent cluster table • HELLO 패킷을 교환해 테이블을 유지

  46. Route Discovery • RREQ 메시지 • Source 노드는 RREQ 메시지를 cluster head에게 전송 • Cluster head는 인접 cluster의 head에게 RREQ 전송 • 목적지 호스트나 목적지까지의 경로를 아는 호스트는 RREP를 Source에게 보냄 • RREP 메시지 • RREP를 소스 노드에게 forward하는 노드는 필요한 경우 경로에 대해 optimization을 수행 • Route cache • 발견된 경로는 route cache에 저장됨

  47. 결론 • AODV • Distance Vector 라우팅의 on-demand version • Destination Sequence Number 사용 • DSR • Source routing • TORA • Optimality를 희생하는 대신 망의 동적인 변화에 잘 대응하기 위한 프로토콜 • ZRP • Hierarchical routing • CBRP • Cluster를 구성하으로써 DSR에 비해 flooding 수를 줄임

  48. 향후 연구 과제 • 기존 Unicast routing 프로토콜의 개선 • Flooding의 개선 • 라우팅 방법들의 성능 분석 • Multicast routing • Multicast tree 구성 • Broadcast 성질을 이용한 효과적인 라우팅 알고리즘 • 성능 분석 • 보안 • 다른 프로토콜과의 연관 • TCP on ad hoc network • 유선망과의 결합

More Related