Say, the nodes are in the square grid and the transmission distance
is 2.9 - this way, every transmission reaches 5x5 node square. So
here is the covered area after the first request hop:
. . . . .
. . . . .
. . x . .
. . . . .
. . . . . ('x' is the requestor).
After the second hop (24 transmissions), the coverage area will
look like this and include 'r' (the responder):
, , , , , , , , ,
, , , r , , , , ,
, , . . . . . , ,
, , . . . . . , ,
, , . . x . . , ,
, , . . . . . , ,
, , . . . . . , ,
, , , , , , , , ,
, , , , , , , , ,
So the respoder sends the response that reaches 24 nodes around
it, but this response basically says: "this is sent in response to the
request A with hop count of two. Rebroadcast it only if you are the
node who has sent this request with this hop count". These would be
only the nodes marked with dot '.' in the picture, so the first hop
of the response will be forwarded by 'dotted' nodes within the one-
hop broadcast distance from 'r':
, , , , , , , , ,
, , , r , , , , ,
, , o o o o . , ,
, , o o o o . , ,
, , . . x . . , ,
, , . . . . . , ,
, , . . . . . , ,
, , , , , , , , ,
, , , , , , , , ,
- these eight nodes (marked as 'o') rebroadcast the response, and
this time, it reaches the original requestor 'x'.
This is the basic idea. In a multi-hop case the same thing
happens, except that the response hop count gets decreased further
and further as it gets rebroadcast, and the nodes from the previous
request hop circles rebroadcast it one hop closer to the requestor.