# Adaptive Multi-Path Routing Protocol in Autonomous Vehicular Networks
## 4 Design  
### Operation of MARV  
Figure 5 shows the basic operation of MARV. The numbers on the link indicate the medium time metric for a 1500-byte packet to be sent. The packet format shown in the figure is the abstract format of the route request (RREQ) packet of MARV. The RREQ of MARV contains the path link quality field, i.e., the path MTM field, which indicates the total sum of the link medium times of the path. Therefore, whenever a node receives an RREQ packet, it adds the MTM value of the receiving link to the path MTM field before rebroadcasting it. The main objective of the route search mechanism in MARV is to find the path with the lowest path MTM value, i.e., the high-throughput path. Therefore, MARV has to search for link disjoint paths to find the path with the lowest path MTM value. By using the basic DSR route search mechanism, the destination is capable of finding multiple paths, which are node disjoint. However, the basic DSR route search mechanism cannot find the link disjoint multiple paths. For example in Figure 5, assume that node B is the source and node  
Figure 4: (**a**) Throughput vs application packet size of 0 to 200 bytes. (**b**) Throughput vs. application packet size of 0 to 200 bytes. (**c**) Medium time spent per 1 packet delivery vs. application packet size of 0 to 200 bytes. The simple network topology in consideration is shown in Figure 3.  
Figure 5: The basic operation of MARV. D is the destination. Node D is capable of finding node disjoint paths B-C-D and B-D via the basic route search mechanism. Now, let us assume that node A is the source and node E is the destination. Although A-B-C-D-E and A-B-D-E are link-disjoint paths, the basic route search mechanism forces node D to discard the route request from node C, making the A-B-C-D-E path unknown to destination node E.  
There has been some work on multi-path routing in DSR [32], but these mechanisms result in very high routing overhead since route requests are rebroadcasted multiple times. In MARV, we use a similar approach, but with a tighter constraint. For example, in Figure 5, suppose node A is the source and node E is the destination. Node A generates a RREQ packet to be flooded into the network. Node D rebroadcasts the RREQ packet received from node B. Then, node D receives the RREQ sent by node C. Although the RREQ sequence is not new, instead of just discarding the RREQ, node D compares the path MTM value of the newly received RREQ with the minimum path MTM value of the previously received RREQ by using the ignoreREQ\(0\) shown in Algorithm 1. The constant \(\alpha\) will be further discussed in Section 4.2. This approach enables MARV to eventually find the high-throughput paths. In this example, node B compares the path MTM values and finds out that the path MTM value 7.89 from node C is smaller than the previously received minimum path MTM value 10.90 and hence rebroadcasts the RREQ packet. Node E will eventually receive the RREQ packet sent via the link-disjoint path A-B-C-D-E.  
Destination node E basically replies to all the route requests received, but will check by using the same algorithm used when forwarding the RREQ (see ignoreREEQ\(0\) function in Algorithm 1). In other words, the destination will send out an RREP only if the path MTM value of the received RREQ is smaller than the previous received minimum path MTM value. Source node A then receives multiple RREPs from destination node E and will select between the min-hop path and minimum path MTM path. Function selectPATH\(()\) in Algorithm 2 shows the algorithm to select the adequate path for the data packets. Basically, MARV selects the path based on the size of the data packet. For small-sized packets, MARV selects the min-hop path while selecting the minimum MTM path for larger packets. In reality, bulk data traffic for FTP normally takes the high throughput path while small TCP ac packets or small http packets take the min-hop path.