blob: ec50e8a3f6d88249d9758e5128767c409fe3c3b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# Adhoc routing
Mobility or MANET requires other routing.
## Versus wired routing
Assymetric links
: Becuase of interference and different power levels, A might be able to send to B
but not the other way around.
## Routing types
Proactive
: Routes are known before send, using tables.
But does not respond to network changed very vell.
Also requires lot of traffic to keep up to date.
Reactive
: Routes are found on demand, so reduces overhead.
Delay because route must be found first.
Hybrid
: Something in between.
Best of two worlds.
## Flooding
Every message is sent to everyone.
Often used for control messages, but not for data as it requires alot of resources.
Nice if nothing is known about network.
**Not always reliable** can have hidden terminal in wifi situration
(also called *Broadcast Storm Problem*).
Can be solved by introducing random small delay when forwarding.
Other solution could be to not forward if already seen *n* times.
## Dynamic source routing
1. **Route discovery**
Using route request (RREQ) to find a route, often with flooding.
2. **Sending data**
3. **Route maintanance**
Keeping the route up to date. This could be done continuesly or when sending new
data.
A reply to RREQ (RREPLY) can then be returned in the route collected with the RREQ.
However if nodes are unidirectional it must be sent back using flooding.
**A problem** with this is the overhead of having the whole route in the packet.
### Route caching
Each node can cache routes to other nodes.
But how to check if a route is broken?
Nodes can check if neighbour connections are broken using MAC ACK.
This node can then signal to sender that the route is broken.
If L2 does not have ACK, we can use control packages.
|