• No results found

5.4 ANT-BASED MULTI-CONSTRAINED QOS (AMCQ) ROUTING ALGORITHM

5.4.1 Routing Control Ants

Routing control ants are responsible for traversing the vehicular network to determine feasible routes from the source to the destination. The movement of these control ants is restricted by the state transition rule defined in (5.12) and (5.13) when sufficient information is available at the pheromone tables or they will be broadcast. For each field of the proposed routing control ants, we describe its nature, i.e., immutable, mutable and traceable, and mutable and untraceable, and its data type, i.e., integer, double, etc. to calculate its size later. This description is relevant for explaining the security mechanisms proposed in the next chapter to protect the AMCQ routing algorithm.

5.4.1.1 Request Ant (RQANT)

In addition to the default fields of a conventional routing request message such as the destination address, originator address, etc., which are immutable, the following fields are added to a RQANT

RQANT_ID (u_int8_t) contains the ant’s ID, which is immutable.

RQANT_Gen (u_int8_t) indicates the current ant generation, which is immutable. Different ant generations could be involved in the route discovery process of the same destination. This field plays a key role in decreasing the proliferation rate of ants. For example, if a node receives another ant from the same generation looking for the same destination, then it may only be processed if it presents a better route than the existing one. Otherwise, it is discarded.

RQANT_TC (u_int8_t) contains the traffic type the current route discovery process is issued for, which is immutable. This field is important to distinguish different QoS requirements while searching for feasible routes for different traffic types.

TimeStamp (double) contains the current time when the RQANT is generated, which is immutable.

TraversedList (double) contains the list of nodes the RQANT has traversed. The first node in this list is assumed to be sr while the last one is the node

that processes and forwards the RQANT. This field is mutable and traceable.

RT_Reliability (double), RT_Delay (double), RT_Cost (u_int8_t) contain the reliability, end-to-end delay, and cost of the route that the RQANT has travelled so far, respectively, which are mutable and traceable.

QoS_Constraints (double) contains the QoS constraints that should be satisfied according to the traffic class found in the RQANT_TC field,which is immutable. These QoS constraints are necessary to calculate the pheromone value of the traversed link.

QoS_Tolerance_Factors (double) contains the tolerance factors that ease the restrictions imposed by the QoS constraints if the application allows this, which is immutable. Otherwise, this field is left empty.

Kinematic information contains the coordinates, current velocity, and direction of the vehicle that generates/processes the RQANT. This field is mutable and traceable.

It can be noticed that we design the RQANT message not to carry the pheromone value that is used by intermediate nodes to update their routing table entries. This is an important feature we introduced in AMCQ-based routing protocol to facilitate the application of security mechanisms we propose in the next chapter that protect the routing control messages of AMCQ.

5.4.1.2 Reply Ant (RPANT)

The RPANT is designed to set up forward routes to the destination node considering the quality of the links it has traversed. The RPANT message includes the following fields in addition to the default fields of a conventional routing reply message

RPANT_ID (u_int8_t) contains the ant’s ID, which is immutable. Each RPANT travels back to sr following the pheromone trail left by the RQANT

that generated it during the route discovery process.

RPANT_Gen (u_int8_t) indicates the current ant generation that matches that given in the RQANT_Gen field of the RQANT, which generated it. This field is immutable.

RPANT_TC (u_int8_t) contains the traffic type the current route discovery process is issued for, which is immutable. Its contents match those of the RQANT_TC field of the RQANT, which generated it.

TraversedList (double) contains the list of nodes the RPANT should traverse to reach sr. This field is set by the destination node and is immutable.

RT_Reliability (double), RT_Delay (double), RT_Cost (u_int8_t) contain the reliability, end-to-end delay, and cost of the corresponding computed forward route, respectively, which are mutable and traceable

QoS_Constraints (double) contains the QoS constraints that should be satisfied according to the traffic class found in the RPANT_TC field, which is immutable.

QoS_Tolerance_Factors (double) contains the tolerance factors that ease the restrictions imposed by the QoS constraints if the application allows this, which is immutable. Otherwise, this field is left empty.

5.4.1.3 QoS Monitoring Ant (QMANT)

A QMANT message is designed to follow the trail of the current selected route. It contains the same information found in RQANT to be able to re-evaluate the quality of traversed links and perform the calculation needed in (5.20) and (5.21).

5.4.1.4 Routing Error Ant (REANT)

The REANT message is designed to announce a link breakage when it occurs. The REANT includes the following fields

REANT_ID (u_int8_t) contains the ant’s ID, which is immutable. REANTs traverse back to the preceding nodes along the route to the node that became unavailable due to a link breakage.

REANT_UDEST (IP_Address) contains a list of addresses of the destination node(s) that become unreachable due to the occurred link breakage,which is immutable. IP_Address is a 32bit data type for IPv4 addresses.