480 likes | 558 Views
Reliable QoS Routing in Ad Hoc Networks. K.S. Chan EEE Department The University of Hong Kong. Outlines. Introduction Bandwidth reservation Bandwidth measurement on link Reservation algorithm Multipath construction Performance evaluation Conclusions. Introduction. IETF drafts:
E N D
Reliable QoS Routing in Ad Hoc Networks K.S. Chan EEE Department The University of Hong Kong
Outlines • Introduction • Bandwidth reservation • Bandwidth measurement on link • Reservation algorithm • Multipath construction • Performance evaluation • Conclusions
Introduction • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm • single path routing: frequent interruption • Best effort • Multipath routing: • Multiple best-effort maximally disjoint paths • Traffic distribution • Video delivery with MDC
Introduction (cont’d) • IETF drafts: • DSR: Dynamic Source Routing H I G F E D {ABCD} A B C {A} {AB} {ABC}
Introduction (cont’d) • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector H I G F E D {A: C} A B C {A: A} {A: B}
Introduction (cont’d) • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector H I G F E D {A: C} A B C {D: B} {A: A} {D: C} {A: B} {D: D}
Introduction (cont’d) • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm H I G F E D A B C
Introduction (cont’d) • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm H I {D: 1} {D: 2} G F {D: 2} E {D: 3} {D: 1} D {D: 0} A B C {D: 3} {D: 2} {D: 1}
Introduction • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm • single path routing: frequent interruption • Best effort
Introduction • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm • single path routing: frequent interruption • Best effort • Multipath routing: • Multiple best-effort maximally disjoint paths • Traffic distribution • Video delivery with MDC
Multipath routing • Multipath routing: • Multiple best-effort maximally disjoint paths H I G F E D {ABCD} {ABFGD} {AEFGD} {AEFID} A B C {A} {AB} {ABC}
Introduction • IETF drafts: • DSR: Dynamic Source Routing • AODV: Ad hoc On-demand Distance Vector • TORA: Temporally-Ordered Routing Algorithm • single path routing: frequent interruption • Best effort • Multipath routing: • Multiple best-effort maximally disjoint paths • Traffic distribution • Video delivery with MDC • No reservation
Introduction (cont’d) • QoS routing: • CEDAR: Core-Extraction Distributed Ad hoc Routing • C. R. Lin: JSAC 1999 • Multi-channel • Single path • C. Zhu: infocom2002 • Single channel • Single path
Introduction (cont’d) • QoS routing: • CEDAR: Core-Extraction Distributed Ad hoc Routing D C B A
Introduction (cont’d) • QoS routing: • CEDAR: Core-Extraction Distributed Ad hoc Routing • C. R. Lin: JSAC 1999 • Multi-channel • Single path • C. Zhu: infocom2002 • Single channel • Single path
Introduction (cont’d) • QoS routing: • CEDAR: • C. R. Lin: JSAC 1999 • Multi-channel • The TSs available for both sending and receiving are the same • Single path {0,1} [2,3] F {2,3} [4,5] {} [ ] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Red: used for sending information Blue: used for receiving information
Introduction (cont’d) • QoS routing: • CEDAR: • C. R. Lin: JSAC 1999 • Multi-channel • Single path • C. Zhu: infocom2002 • Single channel • Single path {0,1} [2,3] F {2,3} [4,5] {} [ ] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Red: used for sending information Blue: used for receiving information Node B: availaible for sending: 0,1 available for receiving: 2,3
Introduction (cont’d) • Our scheme: • Single channel, frame-based ad hoc network • Efficient bandwidth reservation • Sequential multi-path set up
Link bandwidth measurement {0,1} [2,3] F {2,3} [4,5] {} [ ] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Red: used for sending information Blue: used for receiving information What is the link bandwidth from node B to node C?
Link bandwidth measurement (cont’d) Some notations: • TK: the set of time slots used by node K for transmission. • RK: the set of time slots used by node K for receiving. • S: the sample space of time slots. • NK : the set including all node K’s neighboring nodes. • TStK: the set of time slots available for transmission at node K. The transmission of node K in these time slots will not cause interference to other nodes’ current receiving. • TSrK: the set of time slots available for receiving at node K. The receiving of node K in these time slots will not be interfered by other nodes’ current transmission.
Link bandwidth measurement (cont’d) We have Then the link bandwidth from node i to node jis TSij= TStiTSrj
An example for the measurement {2,3} [4,5] {0,1} [2,3] F {} [ ] S={0.. 7} D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] TSrB=S-TB-RB-TA-TE-TC={0,1} TStB=S-TB-RB-RA-RE-RC={2,3} TSrC=S-TC-RC-TB-TD={2,3} TSBC= TStBTSrC={2,3}
Bandwidth reservation over a path • Information held on a node, node K: • TK,RK , TStK , TSrK , TSti , TSri , i NK • Initiated from destination • Three cases: • Case 1: last link from source node, reserve on the link • Case 2: the link next to the last: reserve the timeslots not available on the last link • Case 3: others, trying to reserve TSs not available on the links waiting for reservation
Bandwidth reservation algorithm Algorithm: When node i receives reservation request from downstream node, node i-1: do case 1: node i is source node m reserve k timeslots from TSm,m-1 for link m m-1; ENDcase 1 case 2: node i is the node m-1 ; If|S1|>=k reserve k timeslots in set S1 for link m-1m-2; end case 2; else reserve timeslots in S1 for link m-1m-2; k=k-|S1|; reserve k timeslots for link m-1m-2 from set TSm-1,m-2 - S1; ENDcase 2
Bandwidth reservation algorithm (cont’d) case 3: other case let Pibe the set containing node i’s neighboring nodes on path nm to ni+1; if|S1|>k reserve k timeslots in S1; else reserve all timeslots in S1, and let k=k-|S1|; ; if|S2|>k reserve k timeslots in S2; else reserve timeslots in S2; k=k-|S2|; reserve k timeslots in S3; END case 3 END do disseminate the reservation information to neighboring nodes; node i passes the reservation request to node i+1; algorithm end.
An example for the algorithm Demand: reserve one timeslot on path A-B-C-D-E-F {0,1} [2,3] TStA={0,1,2,3,4,5} TSrA={0,1,2,3,6,7} TStB={2,3} TSrB={0,1} TStC={4,5} TSrC={2,3} TStD={6,7} TSrD={4,5} TStE={0,1} TSrE={6,7} TStF={0,1,2,3,6,7} TSrF={0,1,4,5,6,7} F {2,3} [4,5] S={0..7} {} [ ] (0,1) D (6,7) E (4,5) A (0,1) B C (2,3) {} [ ] {4,5} [ 6,7] { 6,7} [0,1]
An example (cont’d) {0,1} [2,3] F {2,3} [4,5] TSEF={0,1} TSDE={6,7} TSrB={0,1} TSrD={4,5} {} [ ] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Step 1: node E reserve 1 TS for link EF Step1_1: choose TS not available on nodes B and D for receiving,No Step 1_2: choose TS not available on link D E:{0,1}; choose 0.
An example (cont’d) {0,1} [2,3] F {0,2,3} [4,5] TStB={2,3} TSrB: {0,1}{1} TStE: {0,1} {1} TSrE={6,7} TStF: {0,1,2,3,6,7} {1,2,3,6,7} TSrF: {0,1,4,5,6,7} {1,4,5,6,7} {} [0] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Step 1: node E reserve 1 TS for link E F Step1_1: choose TS not available for nodes B and D for receiving, No Step 1_2: choose TS not available on link DE: {0,1}; choose 0. Step 1_3: disseminate this reservation.
An example (cont’d) {0,1} [2,3] F {0,2,3} [4,5] TSDE={6,7} TSrC={2,3} {} [0] D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Step 1: node E reserve 1 TS for link EF: TS 0 Step 2: node D reserves 1 TS for link DE Step 2_1: choose TS not available on TSrC :{6,7};choose6
An example (cont’d) {0,1,6} [2,3] F {0,2,3} [4,5,6] {} [0] TStD: {6,7} {7} TSrE={6,7} {7} TStF: {1,2,3,6,7} {1,2,3,7} D E A B C {} [ ] {4,5} [ 6,7] { 6,7} [0,1] Step 1: node E reserve 1 TS for link EF: TS 0 Step 2: node D reserves 1 TS for link DE Step2_1: choose TSs not available on TSrC : {6,7}; choose 6 Step 2_2: notify this reservation
An example (cont’d) {0,1,6} [2,3,4] TStA={0,2,3,4,5} TSrA={0,2,3,6,7} TStB={3} TSrB={0} TStC={5} TSrC={3} TStD={7} TSrD={5} TStE={0} TSrE={7} TStF={1,2,3,6,7} TSrF={1,4,5,6,7} F {0,2,3} [4,5,6] {} [0] D E A B C {1} [ ] {2,4,5} [ 1,6,7] { 4,6,7} [0,1,2] Step 1: node E reserves 1 TS for link EF: TS 0 Step 2: node D reserves 1 TS for link DE: TS 6 Step 3: node C reserves 1 TS for link CD: TS 4 Step 4: node B reserves 1 TS for link BC: TS 2 Step 5: node A reserves 1 TS for link AB: TS 1
Reliability improvement • Multiple maximally disjoint paths • Erasure coding (Nn, m) for error recovery • m slots per frame required, K=m/n • N>K paths set up, each with n slots reserved • Tolerate at most N-K paths breakdown
Sequential multipath setup • Step 1: source S sends a flooding request to destination D: only those links with sufficient bandwidth will forward the request • Step 2: Node D chooses one path for reservation • Step 3: Node S then initiates the second flooding to node D • Step 4: Node D reserves bandwidth for the second path • Step 5: go to step 3, until all N paths have been established
An example for multipath setup H I {0,1} {6,7} {2,3} G F E {7,8} {2,6} {0,1} D {4,5} {1} {4,5} A {0,1} {1,2,3} B C Demand: set up two paths from A D, 2 timeslots each path
An example for multipath setup H I {0,1} {6,7} {2,3} G F E {7,8} {2,6} {0,1} D {4,5} {1} {4,5} A {0,1} {1,2,3} B C Demand: Two paths from A-D, 2 timeslots each path Step 1: Node A initiates flooding to node D
An example for multipath setup H I {0,1} {6,7} {2,3} G F E {7,8} {6} {0,1} D {4,5} {} {4,5} {4,5} {} A {0,1} {0,1} {} {1,2,3} {2,3} {} B C Demand: Two paths from A-D, 2 timeslots each path Step 1: Node A initiates flooding to node D Step 2: node D chooses path ABCD for reservation (red: reserved; blue: after reservation)
An example for multipath setup H I {0,1} {6,7} {2,3} G F E {7,8} {6} {0,1} D {4,5} {} {4,5} {} A {0,1} {} {2,3} {} B C Demand: Two paths from A-D, 2 timeslots each path Step 1: Node A initiates flooding to node D Step 2: node D chooses path ABCD for reservation Step 3: node A sends the second flooding
An example for multipath setup H I {0,1} {6,7} {2,3} G F E {7,8} {} {0,1} D {4,5} {} {4,5} {} A {0,1} {} {2,3} {} B C Demand: Two paths from A-D, 2 timeslots each path Step 1: Node A initiates flooding to node D Step 2: node D chooses path ABCD for reservation Step 3: node A sends the second flooding Step 4: node D chooses path AEHID for reservation
Performance Evaluation • Network simulator ns2 • Simulation area: 720 m2 per node • Frame: 82ms, 50 timeslots • Call arrival: Poisson, 1 call per second • Call holding time: exponential, 20 seconds • Each call: 4 timeslots per frame required • Erasure coding: (6,4) • Multipath: 3 paths • Simulation time: 2500 seconds
Performance evaluation (cont’d) • Moving pattern: • Random movement • Initial position: randomly chosen • Random pause time • For each node: random destination, constant speed randomly chosen from [0, Max_speed] • Random pause at destination
Numerical results Total number of connections supported versus max speed Network size: 20
Numerical results (cont’d) average # of interruptions per connection versus max speed Network size: 20
Numerical results (cont’d) Probability of termination versus max speed Network size: 20
Numerical results (cont’d) Total number of connections supported versus network size Max speed: 20 m/s
Numerical results (cont’d) Average # of interruptions per connection versus network size Max speed: 20 m/s
Numerical results (cont’d) Probability of termination versus network size Max speed: 20 m/s
Conclusions • Reliable QoS routing in ad hoc networks proposed • Receiver initiated bandwidth reservation • Sequential maltipath setup • Bandwidth reservation: minimize the impact to further reservation • Not maximum bandwidth calculation • Sequential multipath setup • Avoid collision • Longer path setup