vault backup: 2024-10-12 18:31:01
This commit is contained in:
parent
d5f416dfc0
commit
42c39a7780
7 changed files with 221 additions and 176 deletions
129
Autonomous Networking/notes/4 WSN Routing.md
Normal file
129
Autonomous Networking/notes/4 WSN Routing.md
Normal file
|
@ -0,0 +1,129 @@
|
|||
|
||||
- routing technique is needed to establish multi-hop communication
|
||||
- the routing strategy should ensure
|
||||
- mminimun energy consumption
|
||||
- maximization of the network lifetime
|
||||
|
||||
#### Ad Hoc Routing Protocols – Classification
|
||||
- **network topology**
|
||||
- flat
|
||||
- hierarchical
|
||||
- **which data is used to identify nodes**
|
||||
- arbitrary identifier
|
||||
- the position of a node
|
||||
- can be used to assist in geographical routing problems to decide next hop
|
||||
- scalable and suitable for sensor networks
|
||||
|
||||
##### Flat routing protocols
|
||||
Three main categories
|
||||
|
||||
- Proactive protocols (table driven)
|
||||
- always tries to keep routing data up-to-date
|
||||
- active before tables are actually needed
|
||||
- routes are always already known
|
||||
- more bandwidth and energy usage
|
||||
- Reactive protocols
|
||||
- route determined only when needed
|
||||
- operates on demand
|
||||
- when a route is needed, a kind of global search is started
|
||||
- causes delays if routes are not already cached
|
||||
- Hybrid protocols
|
||||
- combination of these behaviors
|
||||
|
||||
### Destination Sequence Distance Vector (DSDV)
|
||||
- based on bellman-ford algorithm
|
||||
- proactive protocol
|
||||
- add aging information to avoid routing loops
|
||||
- on topology change, send incremental route updates
|
||||
- unstable route updates are delayed
|
||||
|
||||
![[Pasted image 20241011191033.png]]
|
||||
|
||||
- to avoid loops, DSDV adds a **sequence number** to each routing table entry which is periodically updated. Routes with higher sequence number are preferred
|
||||
|
||||
##### Reactive protocols
|
||||
|
||||
### Flooding
|
||||
- copies of incoming packets are sent by every link except the one by which the packet is arrived
|
||||
- generates a lot of superfluous traffic
|
||||
- flooding is a reactive technique, and does not require costly topology maintenance and complex route discovery algorithms
|
||||
|
||||
Characteristics:
|
||||
- derivery is guaranteed (e grazie al cazzo)
|
||||
- one copy will arrive by the quickest possible route (wow)
|
||||
|
||||
Drawbacks:
|
||||
- implosion: duplicated messages are broadcasted to the same node
|
||||
- overlap: if two nodes share the same under observation region, both of them may sense the same stimuli at the same time. As a result, neighbor nodes receive duplicated messages
|
||||
- resource blindness (no knowledge about the available resources)
|
||||
- does not take into consideration all the available energy resources
|
||||
- consumes a lot of energy
|
||||
|
||||
### Gossiping
|
||||
- nodes send the incoming packages to a randomly selected neighbor
|
||||
- avoids implosion, but it takes long to propagate the message
|
||||
|
||||
### Dynamic Source Routing (DSR)
|
||||
- Source routing: Each data packet sent carries in its header the complete, ordered list of nodes through which the packet will pass
|
||||
- The sender can select and control the routes used for its own packets and supports the use of multiple routes to any destination
|
||||
- Including the route in the header of each packet, helps other nodes forwarding the packet to cache the routing information for future use
|
||||
|
||||
**DSR is composed by two main mechanism:**
|
||||
- **Route Discovery**
|
||||
- mechanism by which a node S obtains the route to a destination node D
|
||||
- used only if S doesn't already know the route
|
||||
- every request contains an unique ID and a route record
|
||||
- S sends a broadcast Route Request packet
|
||||
- every node broadcasts the packet (with the same ID) appending their own address to the route record
|
||||
- when D receives the request, it sends a Route Reply back to the initiator S, with a copy of the route record
|
||||
- more than a route can be returned, making the protocol more resistent to changes in network topology
|
||||
- **Route Maintenance**
|
||||
- mechanism by which a node S can detect (while sending a packet to D) if the network topology has changed and the route can't be used anymore
|
||||
|
||||
![[Pasted image 20241012174130.png]]
|
||||
|
||||
### Ad-hoc On Demand Distance Vector routing (AODV)
|
||||
- a mix between DSR and DSDV
|
||||
- nodes maintain routing tables
|
||||
- sequence numbers added to handle stale caches (when routing info is too old)
|
||||
- nodes remember from where a packet came and populate routing tables
|
||||
|
||||
We can see it as an improved DSDV, as it minimizes the number of required broadcast by creating routes on a demand basis.
|
||||
- if the source node S does not have the route to D, S initiates a path discovery process to locate D
|
||||
- the route request is broadcasted to the neighbors
|
||||
- when a node receives a broadcast RREQ, it records in their table the address of the neighbor who sent the request
|
||||
- when the destination or an intermediate node that can reach the destiation is reached, it replies with a route reply (RREP) packet back to the neighbor from which it first received the RREQ
|
||||
- the RREQ is routed back along the reverse path
|
||||
- nodes along the path updates their table
|
||||
|
||||
![[Pasted image 20241012175224.png]]
|
||||
|
||||
## Geographical routing
|
||||
- routing tables contain information to which next hop a packet should be forwarded
|
||||
- this can be explicitly constructed, or implicitly inferred from physical placement of nodes
|
||||
- by knowing the position of nodes, we can send the packet to a neighbor in the right direction
|
||||
- we can also do *geocasting*: sending to any node in a given area
|
||||
- to map a node ID to the node position we might need a location service
|
||||
|
||||
Strategies
|
||||
- **Most forward within range r**
|
||||
- send to that neighbor that realizes the most forward progress towards destination, but staying in a range r (quello che stando nel range r si avvicina di più geograficamente parlando)
|
||||
- **Nearest node with (any) forward progress**
|
||||
- the opposite as the previous strategy
|
||||
- minimizes transmission power
|
||||
- **Directional routing**
|
||||
- choose next hop that is angularly closest to destination (closest to the connecting line to destination)
|
||||
- come se tracciassi una linea tra S e D e prendessi gli hop più vicini alla linea
|
||||
- problem: might result in loops!
|
||||
|
||||
#### Dead ends problem
|
||||
![[Pasted image 20241012182403.png]]
|
||||
|
||||
## Conclusion
|
||||
- there are many other protocols
|
||||
- the best solution depends on network characteristics
|
||||
- mobility
|
||||
- node capabilities
|
||||
- geographic approach allows to save more energy
|
||||
- proactive approach is fast, but involves overhead
|
||||
- reactive approach generate much less overhead, but it is slower
|
Loading…
Add table
Add a link
Reference in a new issue