## 4 Routing Protocol Design
### BVs Selection Process  
It is the chosen SOV that should be responsible for selecting BVs and transmitting the target content. First, the chosen SOV will transmit a \(BV\_request\) message to all of its neighbors. Similar with that in the _content_request_ message, a TTL value is set to limit the dissemination range. The difference is that a random backoff timer is set by each candidate BV upon receiving a new message, aiming at defining a unique winning BV that is in charge of forwarding the message [5].  
Let \(t_{\text{min}}\) and \(t_{\text{max}}\) denote the minimum and maximum backoff timer values, respectively. The timer level set \(T_{\text{L}_{i,j}}\) for each link will increase linearly with the values of \(t_{\text{min}}\) and \(t_{\text{max}}\). However, these two values cannot be too small, to avoid introducing a sensitive spurious forwarding problem, i.e., the occurrence of duplicated message transmissions. This problem has been discussed in many previous work, and some solutions are proposed [5; 58]. Dimensioning criteria for \(t_{\text{min}}\) and \(t_{\text{max}}\) are given in [5]. In this paper, we assume that both \(t_{\text{min}}\) and \(t_{\text{max}}\) are chosen in reasonable ranges before the routing initialization process, e.g., \(t_{\text{min}}\) in the order of few milliseconds (ms), \(t_{\text{max}}\) in the order of few hundreds ms. Hence, we focus on the design of the beacon-less routing protocol for the large volume content.  
With the determined values of \(t_{\rm min}\) and \(t_{\rm max}\), the timer \(T_{\rm L}\) is defined as (the subscript \(i,j\) in \(T_{\rm L_{i,j}}\) is omitted to refer to a generic V2V link):  
\[T_{\rm L}=t_{\rm min}+t_{\Delta}\cdot\left(1-\epsilon\cdot\frac{L}{L_{\rm max}} -(1-\epsilon)\cdot\frac{D}{D_{\rm max}}\right)\,, \tag{7}\]  
where \(t_{\Delta}=t_{\rm max}-t_{\rm min}\), \(L\) denotes the estimated link lifetime between the target vehicles, \(L_{\rm max}\) represents the expected path lifetime for the whole route, \(D\) denotes the inter-vehicle distance and \(D_{\rm max}\) denotes the maximum radio range. A candidate receiver, who can provide a more persisting link lifetime or a longer one-hop transmission distance, will have a higher chance to win the competition as a receiver. Parameter \(\epsilon\) denotes the weighting ratio between link lifetime and the transmission distance. A higher \(\epsilon\) will make the link lifetime more important on the routing relay selection process and vice versa. The value of \(D\) is no greater than \(D_{\rm max}\) if we let \(D_{\rm max}=R\). Differently, the value of \(L\) can be greater than \(L_{\rm max}\). To guarantee that the value of \(T\) lies in \([t_{\rm min},t_{\rm max}]\), when \(L\geq L_{\rm max}\), we have \(T_{\rm L}\) defined as \(T_{\rm L}=t_{\rm min}+t_{\Delta}\,(1-\epsilon-(1-\epsilon)D/D_{\rm max})\).  
The vehicle that receives a _BV_request_ message will count down on the backoff time. Before the expiring of the backoff time, the vehicle will continuously listen to the channel. If it finds that the channel is occupied by an identical _BV_request_ message with a smaller TTL value, this vehicle will terminate its timer and drop this request message (inhibition rule). Otherwise, when the timer expires, this vehicle will listen to the channel for the next slot. If the channel is idle as well, this vehicle will appoint itself as the BV and forward a new _BV_request_ message with its own information and a minus one TTL value to continue the BV selection process, until reaching the SUV.  
When the SUV receives the _BV_request_ message, it means that the BV selection process is finished. Then, the SUV will transmit a _BV_response_ message back to the SOV to confirm the chosen BVs information. Once the SOV receives this confirmation message, it knows that a routing path has been established between the SOV and SUV. Then, the SOV begins to transmit the target content packet by packet until a link between two consecutive BV breaks or the content transmission has finished.