(1) | Notations; |
(2) | SV: source vehicle; DV: destination vehicle; FV: forwarder vehicle; |
(3) | RV: Receiver Vehicle on the side close to destination of the communication range; |
(4) | NRV: Next RV on the side close to destination of the communication range; |
(5) | RRM: Route Request Message; |
(6) | RRMID: RRM id; |
(7) | RRT: Route Request Table; |
(8) | LLT(FV, RV): Link LifeTime between FV and RV; |
(9) | RLT: Route LifeTime; |
(10) | DPDT(SV, DV): The data packets delivery time between the SV and the DV; |
(11) | information: id, RLT; |
(12) | Initialization; |
(13) | RLT = 0; FV = SV; |
(14) | if DV is neighbor of SV and LLT(SV, DV) DPDT(SV, DV) then |
(15) | SV sends DATA to DV; |
(16) | else |
(17) | SV adds its information in RRM; |
(18) | SV broadcasts RRM; |
(19) | RV calculates LLT(FV, RV); |
(20) | if FV == SV then |
(21) | new RLT = LLT(FV, RV); |
(22) | else |
(23) | new RLT = min(LLT(FV, RV), RLT in RRM); |
(24) | end |
(25) | if RRMID is not in RRT of RV then |
(26) | RV saves new RLT and RRMID in its table RRT; |
(27) | RV modifies FV information in RRM by its information; |
(28) | if DV is neighbor of RV then |
(29) | RV sends RRM to DV; |
(30) | else |
(31) | RV broadcasts RRM; |
(32) | end |
(33) | else |
(34) | if new RLT RLT in RRT of RV and LLT(RV, NRV) RLT in RRT of RV then |
(35) | RV modifies RLT in its RRT by new RLT; |
(36) | RV modifies FV information in RRM by its information; |
(37) | if DV is neighbor of RV and LLT(RV, DV) RLT in RRT of RV then |
(38) | RV sends RRM to DV; |
(39) | else |
(40) | if DV is neighbor of RV then |
(41) | RV deletes RRM; |
(42) | else |
(43) | RV broadcasts RRM; |
(44) | end |
(45) | end |
(46) | else |
(47) | RV deletes RRM; |
(48) | end |
(49) | end |
(50) | end |