129 lines
5.9 KiB
Markdown
129 lines
5.9 KiB
Markdown
|
|
|||
|
- 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
|