# Data Rate Selection Strategies for Periodic Transmission of Safety Messages in VANET
## 3 Proposed Data Rate-Based Congestion Control (DRCC) Approach  
The amount of time it takes to transmit a packet of a given size decreases as the bitrate used for transmission is increased. Therefore, using higher bitrates can help to reduce the channel load by lowering the total transmission time for each packet. However, higher bitrates are also associated with reduced signal strength, so such packets may not be able to reach distant vehicles. As a result, it is important to carefully choose the transmission bitrate in order to properly balance channel load as well as vehicle awareness. In the proposed data rate-based congestion control (DRCC) approach, each vehicle must first estimate the current load on the channel allocated for BSM transmissions, and then adjust the transmission rate for sending its own BSMs accordingly. This is a decentralized approach that does not require any coordination with neighboring vehicles. Each vehicle estimates the channel load in terms of its calculated CBR value. The CBR represents the percentage of time the channel was sensed as \"busy\" by a vehicle's OBU over a given interval. In our implementation, before sending each BSM, we calculated the average CBR over the period of time since the previous BSM transmission. The goal of the DRCC algorithm is to keep the measured CBR between two specified thresholds (\(upper_{th}\) and \(lower_{th}\)) by suitably adjusting the bitrates used to transmit BSMs. When there is very little traffic, the measured CBR will be low, and the transmission bitrate can be reduced to allow the packets to reach the more distant vehicles. On the other hand, when the measured CBR is high, a higher bitrate is used, which results in faster packet transmissions; however, the signal strength will be low, and such transmissions will not be successfully received by distant vehicles. Algorithm 1 shows an overview of the proposed DRCC algorithm. Step 1 is the initialization phase, which is performed only once. After that, Steps 2-27 of the DRCC algorithm are executed each time a new BSM is to be transmitted. During the initialization phase, we first select the upper (\(upper_{th}\)) and lower (\(lower_{th}\)) limits of desired channel load based on application needs (Step 1a). Next, in Step 1b, we specify the list of allowed bitrates (\(B\)) that can be used for BSM transmission and the parameter _maxlevel_, which is the highest possible index value for accessing items in \(B\). Based on the available OFDM modulation schemes and coding rates in IEEE 802.11p, the following eight bitrates (in Mbps) are available for the 10 MHz DSRC channel: 3, 4.5, 6, 9, 12, 18, 24, 27 [22]. In our simulations, the performance of 4.5 Mbps and 12 Mbps rates were very similar to 6 Mbps and 9 Mbps, respectively; meanwhile, 27 Mbps performed poorly with low reception rates due to the high SINR required for correct reception at these rates. Therefore, we have selected \(B=[3,\,6,\,9,\,18,\,24]\) as the list of allowed bitrates for our algorithm, and set \(maxlevel=len(B)-1=4\). Finally, in Step 1c, we set the parameter \(congestion\_limit\), where \(0\leq congestion\_limit\leq 1\), which is the maximum acceptable channel load when choosing a new transmission bitrate. For example, if \(congestion\_limit=0.95\), then when selecting a new bitrate, we must check to ensure that the expected CBR using this bitrate will not exceed 95% of the \(upper_{th}\) value. The rationale for this is to allow some margin for increased channel load without having to increase the bitrate again too soon. After initialization, prior to sending each BSM, the algorithm calculates the current measured CBR value (\(cbr\)). Additionally, the bitrate used previously is specified using the parameter level, \(0\leq level\leq maxlevel\), which is an index for list \(B\). For example, if \(level=2\), then the corresponding bitrate is \(B[2]=9\) Mbps. These two values are given as inputs for DRCC, which then determines the appropriate bitrate to use for sending the next BSM.