5.9 KiB
5.9 KiB
- 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
- when a route is needed, a kind of global search is started
- 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
- 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
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
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
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