RCVC: RSU-Aided Cluster-Based Vehicular Clouds Architecture for Urban Areas

As a promising topic of research, Vehicular Cloud (VC) incorporates cloud computing and ad-hoc vehicular network (VANET). In VC, supplier vehicles provide their services to consumer vehicles in real-time. These services have a significant impact on the applications of internet access, storage and data. Due to the high-speed mobility of vehicles, users in consumer vehicles need a mechanism to discover services in their vicinity. Besides this, quality of service varies from one supplier vehicle to another; thus, consumer vehicles attempt to pick out the most appropriate services. In this paper, we propose a novel protocol named RSU-aided Cluster-based Vehicular Clouds protocol (RCVC), which constructs the VC using the Road Side Unit (RSU) directory and Cluster Head (CH) directory to make the resources of supplier vehicles more visible. While clusters of vehicles that move on the same road form a mobile cloud, the remaining vehicles form a different cloud on the road side unit. Furthermore, the consumption operation is achieved via the service selection method, which is managed by the CHs and RSUs based on a mathematical model to select the best services. Simulation results prove the effectiveness of our protocol in terms of service discovery and end-to-end delay, where we achieved service discovery and end-to-end delay of 3 × 10−3 s and 13 × 10−2 s, respectively. Moreover, we carried out an experimental comparison, revealing that the proposed method outperformed several states of the art protocols.


Introduction
In recent times, remarkable advances have been achieved in the field of vehicular Ad Hoc, which help enhancing driving by increasing safety and providing commercial services [1]. All exertions aim to increase the use of Intelligent Transportation Systems (ITS).
Due to their restricted range and motion (direction and speed), VANETs are considered as a specific type of Mobile Ad hoc Network (MANET) with a particular mobility. In VANETs, vehicles move according to an organized pattern that is called a mobility model, which is based on predefined roads, buildings and junctions, etc. [2]. Two types of VANET nodes can be distinguished; these types are mobile nodes such as vehicles, and fixed nodes known as Road Side Units (RSUs) deployed at critical locations on roadsides to provide various services including internet access, and can play the role on an Intermediate Trusted Authority (ITA). Vehicles and RSUs transmit messages between the source and destination nodes using two types of wireless multi-hop transmission, which are Inter-Vehicle Communication (IVC) and Vehicle-to-Roadside Communication (VRC).
It is worth mentioning the efforts of the automotive industry that developed the Dedicated Short-Range Communication (DSRC) technology, which enables high-speed direct communication between vehicles and the surrounding infrastructure. DSRC is an Currently, intelligent vehicles in smart cities are equipped with some devices, such as wireless device On-Board Unit (OBU), radar, camera, localization systems, storage unit and unlimited energy source. Similarly, RSUs offer high-speed internet access by wireless transmission technologies (LTE, WiMAX and 5G) [11]. Yet, the systems have been suffering from delay, intermittent connections and packet loss due to the high-speed mobility of vehicles and the overlapping of radio frequency in crowded traffic.
In this paper, we propose a new protocol termed RSU-aided Cluster-based Vehicular Clouds (RCVC) architecture for urban areas. Our RCVC enables RSU and CH to act as repositories aiming to help consumer vehicles (CV) to access and find resources that are offered by supplier vehicles (SV) on VC in an urban environment. Using clustering, we implemented RCVC to form the first vehicular cloud for some reasons, which are: first, to make benefit from vehicles that are travelling on the same routes, and which can transmit their messages closely; second, to make, in the cluster, the management of the supply and consumption easy. However, in parallel, RCVC can construct a vehicular cloud at the RSU levels that are considered to be connected through fixed communication links. According to the literature review, the present work, concerning the definition of a protocol that allows forming two kinds of VC, seems to be an original contribution to the domain of service consumption in vehicular cloud.
The rest of the paper is organized as follows: Section 2 is about the related work. Section 3 is devoted to the technical details of the suggested protocol. Section 4 deals with the simulation that validates the proposal and discusses the reached results. Finally, Section 5 concludes the paper.

Related Work
Several research studies have been carried out in the context of VCs. While some researchers proposed a set of protocols, the others had introduced new vehicular cloud architectures. We seize the opportunity to cite some works that have been done in this direction. These works concern all protocols and approaches that allow some vehicles to offer their resources as services to others that request these services for consumption.
Mershad et al. [12] implemented a disCoveRing and cOnsuming services WithiN vehicular clouds protocol (CROWN), where they considered an urban scenario and suggested a set of vehicles as providers, known as STARs, and the remaining ones as consumers. The STARs register their resources in the nearest RSUs. Then, once the consumer vehicles seek some services, they request RSUs for their needs; the latter search in their directories and respond to consumer vehicles by informing them of the most suitable STARs.
Brik et al. [10] made an important push-forward toward finding a public bus to rent out services in vehicular clouds. The authors designed a Discovering and Consuming Cloud Services in Vehicular Clouds protocol (DCCS-VC) that finds adequate public buses and uses them as cloud directories to facilitate the discovery of supplier vehicles' services. The proposed protocol is based on the Grid-based Tracking Cell technique (GTC) that allows partitioning the route of each bus group into several cells. The cells are grouped in tracking bus path (TBP), and each TBP has a unique identification (TBPI). Then, once a supplier vehicle registers a service on a public bus, it will be informed by the corresponding TBPI. The authors of [13,14] improved the DCCS-VC, where they added new research by proposing a protocol named Fast Discovering and Consuming Cloud Services in Vehicular Cloud (FDCCS-VC). Some enhancements have been made allowing vehicles to share all public bus routes and schedules.
Arkian, et al. [15,16] proposed a Fuzzy Clustering-based Vehicular Cloud Architecture (FcVcA), where they introduced the concept of clustering in the vehicular cloud. The election of the cluster head (CH) is done using a fuzzy logic algorithm. The CH manages the cloud in real-time in terms of creation and maintenance. When a consumer vehicle wants to consume services, it sends a request to the CH, which uses Q-learning to provide it with the adequate service provider vehicle. It is worth noting that the proposed protocol was implemented in a highway scenario.
Azizian, et al. [17] introduced an optimization vehicular cloud model. They used a distributed D-hop cluster formation algorithm (DHCV) to organize vehicles into clusters without overlapping. All clusters are considered as clouds and brokers (cloud coordinator), and the vehicle chooses its broker according to mobility calculations proportional to its neighbors D-hop. This model uses a mathematical optimization-scheduling algorithm to maximize bandwidth and minimize delays.
Hussain, et al. [18] implemented a Vehicle Witnesses as a Service (VWaaS) protocol that employs some vehicles that assist as witnesses using their cameras to build a VANETcloud service. This protocol offers the use of the installed cameras on vehicles as well as roadside cameras to provide pictorial services to other entities (e.g., VANET users and/or law obligation). The event's occurrence allows some vehicles to serve as witnesses, and provides legal confirmation to law obligation for ex-amination.
Lin, et al. [19] proposed a Gateway as a Service (GaaS) protocol, which includes three levels. The first is a gateway, which can be RSU or vehicle, that connects vehicles to the Internet. The second is the consumer vehicle that requests internet access, while the third is the vehicular cloud that provides two sub-repositories, which are: (1) GaaS register: it is to save all data on the gateways.
(2) GaaS dispatcher: it is to send the associated gateways for consumer vehicles.
Jafari et al. [20] introduced a Two-level cOntroller-based aPproach for serVice adver-tISement and discOveRy in vehicular cloud network (TOPVISOR). They implemented the proposed scheme in a vehicular cloud network. This approach is based on two central controllers that are connected to the distributed directories of roadside units; the information discovery with its registration is achieved in a hierarchical proactive manner at the controller levels.
However, all previous studies used to focus on improving few performance metrics, whereas other metrics were neglected. Therefore, we proposed a protocol that finds compromises by negotiating all metrics, especially those that have a strong relationship with decreasing delays in urban environments.

Proposed Protocol
We designed RCVC taking into consideration the MANHATTAN mobility model [21] as an environment where all vehicles are moving randomly in this area. RSUs are chosen near junctions and are also installed uniformly on the board.
All vehicles can exchange messages between them or with the nearest RSUs via their OBU antennas. RSU range helps vehicles to construct a set of clusters if they receive offers and consumptions services according to their needs. Note that such RSU can create a cluster only when it receives a set of registration or request packets. Some vehicles going in the same direction, where there are SVs and CVs that have stable links with the CH, can form a cluster, as shown in Figure 1. Therefore, based on this concept, to create a cluster, it is mandatory to select a CH that will be able to manage the cluster and responds to all requests, which are belonging to the cluster. The rest of the vehicles, which do not fulfill the condition mentioned above, must register their services in the closest RSU if they are SVs, but if they are CVs, they must send their requests. However, a wired transmission connects all RSUs with delay between [0.05, 0.1] seconds.

Mobile Cluster-Based Vehicular Cloud
Once a smart vehicle wants to offer its resources to other vehicles, it sends a registration packet (RGP) to the nearest RSU. If a user in an intelligent vehicle needs an internet connection, requires additional resources that his vehicle does not have or he is interested in certain data, he uses the services of one or more nearby SVs. The user's vehicle formulates a request packet (REQP) and sends it to the nearest RSU. The format of the registration and request packets are shown in Figure 2.
If CVs and SVs are not receiving the response from RSUs, they all keep constantly sending their packets after waiting time (WT) of ten (10) seconds (the ten seconds choice explanation is in the experimental section).
Consequently, the reception of the registration and request packets by RSUs triggers some operations to create clusters and select cluster heads or construct directories at RSUs level. Figure 3 depicts this process. When such an RSU receives the first packet, either a registration packet or request packet, it starts a timer. Then, the transmission process of packets continues until the timer reaches a certain threshold θ (e.g., 1.5 min), some operations are launched.

RSU Level Operation After θ
This step is called Discovery Phase (DPH) that allows saving all resources on RSU's directory or creating clusters. We summarize these operations as follows: (1) Reset the time θ.
(2) Put all packets on the list.
(3) If the list contains the same type of vehicles, either CVs or SVs, the RSU creates its proper directory. (4) If the list contains at least one SV or one CV and the sum of vehicles is higher than one (1), the RSU creates a cluster and selects its CH (described in Section 3.1.2). (5) Delete the list's items in the directory after creating the cluster.
The following Algorithm 1 highlights how RSUs try to create VCs. Algorithm 1 RCVC process Pseudo-code, which checks the ability either to create a cluster or RSU's cloud. Algorithm 1 verifies the existence of at least one SV and one CV in the temporary cloud that is created at the beginning, and that will be deleted after a threshold θ if it does not fulfill the conditions of creating a cluster. Note that, in our proposed protocol, not all vehicles can join clusters. Thus, in the case of a vehicle that cannot join any cluster, it registers the offers and requests on the VC at the RSU level.

Clustering
The RSUs proceed with creating vehicle clusters using vehicles' coordinates in a plan of Euclidean space by defining what is called a section cluster. RCVC considers all routes on the map as sections from 1 to j, as shown in Figure 4.
Thus, to select CH j in section j in real-time, we utilize the Euclidean distance [22], taking as parameters all vehicles' coordinates V i (X i , Y i ) and their average speeds AV i at the time t. The formulas used to calculate the central point P j (X j , Y j ), are expressed mathematically as: where n is the number of vehicles in cluster section S j . To get the coordinates of the vehicle that is a cluster head in the cluster section S j , we calculate the distance (Dist) between all vehicles and P j . The vehicle that has a smaller distance will be a cluster head CH j in S j . The average speed AV is included because the accelerations and decelerations are very frequent within the urban area. That is why it is considered as a representative and stable value and used to maintain the cluster formation for as long as possible.
This formula calculates the Euclidean distance between vehicle V x and P j : Besides the minimum required number of vehicles to form a cluster, all vehicles having similar mobility patterns can also join the formed cluster. The similarity of the mobility patterns is mainly measured by the link stability LS Pj,Vj between the joining vehicle and the cluster head P j [23].
The LS Pj,Vj is calculated by Equation (5).
where α: a constant that is used to avoid the influence of peak cases, such as unexpected braking; ; V Pj and V Vi speed variation at instant t; ∆D Pj,Vi (t): Distance between P j and V i at the time t.
Each RSU informs all vehicles that are included on the same cluster for this creation and selection by broadcasting the cluster packet (CP). The CP does not contain only the ID of the CH, but all the information about offered/requested services and Numhops (a variable that defines the number of authorized hops between the CV and the SV) that promote the clusters to the autonomous management as well. As the CH has all the pertinent information on its cluster vehicles, it starts to manage the consumption between vehicles by applying the service selection operation (it will be detailed hereafter) to optimally schedule the CVs queue. RCVC searches in its SV's candidate list (L c ) that is obtained from the RSU during the clustering to respond to all CVs via response packet (RP) that contains the ID of SV and their resources if:

1.
There are some SVs whose queues contain only less than the value of the Queue cv variable. The latter is scalable according the global number of vehicles and SVs in a VC (it will be explained in the experimental).

2.
There are some SVs that can satisfy CVs requirements.
On the contrary, the CH responds by negative acknowledgement (NACK). The user in CV specifies its needed resources and attributes by sending a service packet (SP) to the SV using Numhops hops (explained in the experimental section). SP contains the ID of the vehicle and its requests. Upon receipt of the user service packet, the SV responds with a service response packet (SR) packet, asking the CV for the payment method. The CV and the SV exchange data packets corresponding to the resources. Figure 5 shows the structure of the RCVC protocol packet, where C, R, N, P, S are flags for the CP, RP, NACK, SP and SR packets, respectively.

RSU-Based Vehicular Cloud
The storage of all SVs and CVs information on RSU directory (DR) in the case of no cluster creation triggers the calculation of the SV's influence area A i , in which the SVs can offer their resources reliably to consumers [12]. Moreover, A i allows tracking the SVs itineraries. The fact that all RSUs are wired enables them to share their DRs and SVs Ai to form a global cloud of RSUs. When the SV moves to other RSU and becomes nearest, A i changes its value on all RSUs DR by sending another registration packet to other RSU (R2, for example). Consequently, the RSU adds (updates) the packet to its DR and forwards it to all RSUs, where they update their DRs.
The SV, which does not belong to any cluster, always sends a beacon to the nearest RSU (every 2 s). These beacons allow RSUs to follow the supplier vehicle's movements. When the beacons are delayed to arrive at RSU, the latter tries to know voluntarily the location of the SV's area, which is called estimated area A e . With this formula, we can estimate the A e , A e = 1.3 × V × (T c -T 1 ), where T 1 is the time of sending the last beacon, T c is the current time and V is the average speed of supplier vehicle). The RSU sends the value of A e to all RSUs. It is worth noting that the RSU will delete the supplier vehicle from its DR if it does not receive beacons from it, for a time X = 10 × (interval beacon) [12].
When a CV needs to consume some services, it formulates a REQP and sends it to its nearest RSU. In addition to the needed resources and their attributes, the REQP packet contains the vehicle's geographical coordinates. Wherever, if the RSU receives a REQP from the CV, it searches in its DR for one or more supplier vehicles that can meet the vehicle's requirements.
The RSU responds to a CV's request by choosing the corresponding SV from its list L c , which has undergone a service selection operation (it will be detailed hereafter). Then, the RSU formulates an RP and sends it to each CV, this kind of packet contains the following elements: (1) The ID of supplier vehicle.
(2) Latest SV's location from the latest beacon.
If L c does not contain any SVs that can satisfy the CV's request, or if SVs' queues of this list are busy, then the RSU responds with a negative acknowledgement (NACK).
The user specifies the resources and their attributes of each resource that he needs. His vehicle prepares an SP for the supplier vehicle selected and sends it, using an RSU's backbone. The service packet contains the CV's ID and their requests, upon receipt of the CV's service packet, the SV responds via SR to the user for payment method. The CV and the SV exchange data packets corresponding to the resources. Figure 6 illustrates how all objects (vehicles and RSUs), orderly, interact with each other in RCVC by using the sequence of events according to packets sending and receiving. This diagram provides a better visualization of all RCVC operations. The supply and consume operation begins by registering all packets at the RSUs level, whether it is an RGP registration packet or a REQP request packet, as shown in Figure 6. The RSUs create the clusters by informing the vehicles belonging to the cluster by this creation through sending CP packets, or else by creating VCs at their levels.
In the case of a cluster-based vehicular cloud, the CH has the role of managing the operation of consumption by sending the RP or NACK packets. In the second case of RSU-based vehicular cloud, the RSUs also continue to achieve the consumption operation by the RP or NACK packets. The rest of the operations is accomplished between vehicles using the SP, SR and data packets.
In order to prove that no deadlocks can occur, we used the state diagram to describe all possible states and to better understand the behavior of the objects. The state diagram, as shown in Figures 7 and 8, is a set of a finite number of states that captures an abstract description of the behavior of SV and CV objects.
Tables 1 and 2 illustrate all the possible states in which an SV and CV objects can be, respectively. The transition from the current state to the next state is triggered by the appropriate event. The sates of CV and SV objects are defined as follows: (1) Waiting: in this state, the object is waiting for the successful registration.
(2) Joining the VC at the RSU level: it is the state where the object joined the VC at the RSU after a successful registration.

A Mathematical Model for Service Selection
We extended RCVC by adding a service selection method in the VC either at the RSUs level or the CHs'. Based on the collected data in real-time, the RSUs and CHs select the best services in VC by using the Simple Additive Weighting method (SAW) [24], which exploits the multi-criteria making. Table 3 illustrates the offered services' attributes of any SV, such as quality criteria.  Table 3. Quality criteria of SV.

Criteria Definition Type
Bandwidth Naas Access bandwidth. Double (bit/s)

Duration_bandwidth NaaS
The offered access bandwidth duration.

Cost NaaS
The offered bandwidth unit price.

Double (Mo) Duration_Storage SaaS
The offered storage duration.

Double (h) Days SaaS
Maximum overall storage time.

Double (Days) Cost SaaS
The offered storage unit price.
In each VC, we consider a set of candidate vehicles CondidSV = {SV1, SV2, SV3 . . . . . . SVn} that leads to get a decision matrix MATDIC = (MATDIC ij ; 1 ≤ i ≤ n; 1 ≤ j ≤ 9). The MATDIC will experience a normalization operation. Therefore, the final score is calculated for each SV to be able to classify them. The browsing of the decreasing list, which is sorted by a score from highest to lowest, allows proposing to each CV such an SV that its queue contains less than five CVs, and it can satisfy the CV's requirements.

Normalization
Before combining the performance values, a normalization operation is carried out to obtain a normalized decision matrix that allows all values to be compared. We applied Equation (6) to maximize the beneficial criteria of Bandwidth NaaS , Duration_bandwidth NaaS , Storage SaaS , Duration_Storage SaaS and Data DaaS ; Equation (7) is applied to minimize the non-beneficial criteria for Cost NaaS , Cost SaaS and Cost DaaS ; and to maximize the beneficial criterion Days SaaS , we used the formula in Equation (8).

Performance Score
We assigned a weightage to all criteria to get a weighted normalized decision matrix. In our case, we allocated an equal weightage (W j ) to each criterion, where the sum of all weightage is equal to one. Then, we multiplied the weight of each criterion by its normalized performance values [25]. Finally, we added them for each alternative to get a performance score (PERF), as demonstrated by Equation (9).
Rankings can be assigned to all SVs' services in the cloud, based on the performance score to classify all services from best to lowest.

Simulation Setup
To implement and evaluate our proposed protocol RCVC, we used OMNeT++ 5.3 [26] for the behavioral aspect and Sumo-0.32.0 [27] as a mobility simulator. RCVC is deployed in MANHATTEN grid 4 × 4 km 2 , which contains 16 junctions, where the distance between two junctions is 1 km. We covered this map by thirty (16) RSUs. The vehicle density (VD) is varied between 100 and 500 vehicles taking three ratios of supplier vehicle density: one-fourth, one-third and one-half of VD, in each time we vary the value of VD (100, 300, 400 and 500). The details of the simulation parameters are shown in Table 4. Based on proven facts, the vehicle's average speed in Manhattan city is almost 24 k/h [28], this allows determining the value of θ by taking into consideration the distance between the RSUs (equals 1 km). One vehicle that crosses all the distance between two RSUs, it must spend 2.5 min. Therefore, the observation of the following distribution, in Table 5, leads to calculating the median [29]. This allows having a realistic value of θ. Table 5. Distribution values of elapsed times to arrive to RSU.
The distance between the vehicle and the next RSU (meters).
200 400 600 800 1000 The elapsed time to arrive near to the next RSU (minutes). 0.5 1 1.5 2 2.5 The threshold θ is the median of the distribution that equals 1.5 min.
For the scalability reasons, we have either the VC at the RSU level or the CH's. The management of queues is accomplished by assigning a value Queue CV to each CV depending on two factors that are the number of vehicles and the number of SVs in the VC at the RSU level or the CH as shown in the formula in Equation (10).
where NV is the number of vehicles and N SV is the number of SVs in the VC. The value of Numhops is scalable according to the number of vehicles in the cluster. Equation (11) defines its value: As shown in Table 6, the choice of number five (5) comes from several simulation experiments. If we have less than five (5) vehicles in the cluster, then Numhops = 1; if we have less than ten (10) vehicles and more than five (5) in the cluster, then Numhops = 2 and it makes sense compared to the average speed of vehicles in the MANHATTAN city (24 k/h). Taking the case where the number of vehicles thirty (30) vehicles, the Numhops = 6, and so on. RCVC's performance has been evaluated taking these metrics: (1) Discovery Delay (DD): the time delay between sending a request packet and receiving a response packet from RSU. To prove the effectiveness of RCVC, we varied the number of supplier vehicles and performed a comparison in terms of DD, CD, VT and E2ED. Then, we compared it with four state-of-the-art protocols, which are the CROWN [12], DCCS-VC [14], FDCCS-VC [13] and TOPVISOR [20] taking the same performance metrics and simulation parameters.

Results and Discussions
To evaluate the performance of RCVC, we compared three experimental scenarios (one-fourth, one-third and one-half VD), and at the level of each scenario, we take different VDs while using four performance measures.
The DD, CD, VT and E2ED performance metrics were almost stable. Figure 9a shows that varying the number of SVs did not affect the DD because all vehicles continued to send their request packets to the nearest RSUs every 10 s until the acknowledgement was achieved. Note that all request packets did not pass through the neighboring vehicles. We defined WT = 10 s because using a WT greater than that results in bypassing the nearest RSUs as vehicles move quickly, while using WT less than 10 s leads to generating more packets and flooding the network. This WT came for many simulation attempts. In Figure 9b, the CD decreases when the number of SVs increases; this is attributed to the fact that when the number of SVs increases, there is more chance of finding resources faster. The VT has an ascending slope in Figure 9c, even during varying SV's number. This fact can be substantiated by the non-relationship between this metric and the number of SVs; it depends on the density of all vehicles. As soon as we increased the VD, the VT increased because more packets were generated and transmitted. Figure 9d shows that the E2ED is strongly related to the number of SV.
RCVC yielded a better result than CROWN, DCCS-VC and TOPVISOR in terms of DD. This outcome can be justified by the use of the routing protocols to route packets between RSUs in the case of CROWN, which is called CAN DELIVER [30], and among buses in case of DCCS-VC that is presented in [31]. Moreover, RCVC has superior performance over TOPVISOR because this latter uses two control levels on top of the RSUs to advertise the VC, as shown in Figure 10a. For the same reason for the CD in Figure 10b, CROWN and DCCS-VC use routing protocols to route all packets from discovery to data consumption. Nevertheless, DCCS-VC has a good result that almost converges into the same RCVC's outcome, which may be due to the efficiency of its routing protocol between buses.
RCVC provided some improvements to DD because it did not use any routing protocol. When an SV attempts to register their resources or a CV sends requests, they try each time (every 10 s) to find the nearest RSU in their vicinity. Once found, they send their packets that are acknowledged immediately. Even for the CD that yields good results, the reason is that the consumption is achieved either in the cluster that uses only one hop in minimum until six hops in maximum or between RSUs. In Figure 10c, we measured the VT generated by vehicles through increasing vehicle densities. The objective is to evaluate the protocols by monitoring the stability of the VT, where the best performance is obtained by the protocol that maintains the least traffic generation. Up to 100 vehicles, all protocols generated traffic increasingly. The proposed RCVC protocol provided stable performance in case of density greater than 100 vehicles, unlike the rest of the protocols, they generated more packets. Over 400 vehicles, RCVC performed better than DCCS-VC and FDCCS-VC in terms of VT, and almost the same as CROWN. The reason behind this result is that the exchange of more packets between buses and vehicles by DCCS-VC and FDCCS-CV compared to RCVC, which only transmits packets inside clusters or across the RSUs backbone. Note that CROWN shares the same feature of using RSUs to route packets in case of discovery or consumption. However, TOPVISOR performed better than all protocols in terms of VT because it is dedicated to building the VC, and hence discovering the services it contains; it is not devoted to the consumption operation.
The obtained results, shown in Figure 10d, illustrate that RCVC is always better than CROWN and DCCS-VC in terms of E2ED, which can be justified by the same reason of CD; it is clear that E2ED is a part of the CD.
We can consider Table 7 as a decision matrix that allows applying SAW to select the best protocol among all available alternatives based on various criteria like DD, CD, VT and E2ED. The normalized decision matrix is shown in Table 8. The next step is to assign the weightage to each criterion. Here we assign an equal weightage to all criteria, which is 0.25%, and then to multiply each weight with its normalized performance values on solving, we get a weighted normalized decision matrix.
As shown in Table 9, RCVC compared to other protocols has a highest score, which proves better performances considering all metrics.

Conclusion
In this paper, we proposed a new protocol that allows building vehicular clouds in an urban area, focusing on Mobile cluster-based vehicular cloud and RSU-based vehicular cloud. This protocol makes the possibility to offer services by supplier vehicles to consumers for effective consumption in real-time. We extend our protocol with a mathematical model for service selection. The clustering mechanism that cooperates with the RSUs yielded a set of improvements in terms of performance evaluation metrics. RCVC's outcomes were calculated, discussed and compared to four other protocols, which are CROWN, DCCS-VC, FDCCS-VC and TOPVISOR. Finally, the simulation results proved the performance of RCVC in terms of discovery delay, consuming delay, vehicle traffic and end-to-end delay. In addition, unlike the state-of-art solutions, our proposal shows a scalable behavior that is not affected by high vehicle densities. As future work, we will try to extend this protocol, by involving blockchain, UAVs and some security enhancements. Funding: This research received no external funding.

Data Availability Statement:
The data that support the findings of this study are available from the corresponding author upon reasonable request.