We picked DSR as our implementation
protocol. Because according to the comparison results of some ad hoc routing
protocols, DSR has good performance in packet delivery ratio, less control
message. Also it is still has space to improve.
I’ll very briefly review the DSR.
If a node S wants to send a packet to destination D, it will check its route cache
see if there is a route to D. if not, it will initiate a Route Discovery, broadcast
a Route Request message. If a node receives a Route Request, it will check if
there is a route to D in its route cache, if there is one, it will append the
route into source route and reply it to S, otherwise it will broadcast again.
DSR use source route, every data packet contain the route information. For example,
when E receive a packet from S, it check the source route in the packet and
know next hop is F, so it will send packet to F. If E-F link is broken, E will
try to find a alternative route to D in its route cache, for example, there is
a route E-C-G-K-D, it will send the packet and also send a error message to S.
This is called salvaging the packet. If it can not find one, this packet will
be dropped.