Transcript Slide 1

Computer Science’2005, Technical University of Sofia
CIGDP – a protocol for generation &
dissemination of traffic information in
Vehicular Ad-hoc Networks
Mitko Shopov
On October 1, 2005
VANET Unique Characteristics

High mobility that leads to dynamic, rapidly changing topology

Regular movement, restricted by both road topologies and traffic
rules

Communication locality, limited to vehicles geographically close to
each other

Partitioned

Vehicles are usually aware of their position and spatial environment
through the use of GPS and pre-stored digital maps

Vehicles have sufficient power, computing and storage capacity
New proposed approach
Messages for traffic events will be generated and disseminated by
the vehicles in the opposite direction
Blue cars  Participants in traffic event
Red car  Generate and disseminate the message (marked ACTIVE)
Green cars  Store message (marked PASSIVE). Can become ACTIVE
Message structure

Current location of the vehicle

Time of registration

Location of event (road segment)

Direction

Status (active or passive)

Code of event (jam, etc.)

Time-to-Live

Some other information
Time-to-Live Field

TTL determine how long to disseminate the
message

It is decremented on every crossroad

More when crossroad is with equal streets

Less on crossroads with trunk and secondary
streets
Status field

Status field takes two values: ACTIVE & PASSIVE

Only Active vehicle disseminate the message


Passive vehicle only store the message and act as
back-up
Passive vehicle can become Active to increase
reliability and expand the covered area
Implementation Issues



Java language gives us platform independence
Simulation is done through Java based
JiST/SWANS simulator
STRAW realistic vehicle mobility model
Algorithms
Distance calculations:
1.
2.
3.
4.
5.
Location_new = get_location() from GPS;
distance = calculate_euclidean_distance(
location_new , location_old );
Push distance to distances’ array
Location_old = location_new;
Sleep ( 1 second );
Algorithms (2)
Jam detection:
1.
2.
3.
4.
5.
6.
7.
for i in 3 minutes interval do
d = d + distances[ i ];
If d <= d1 then
jam = true;
else
jam = false;
Sleep ( Δt1 seconds);
Algorithms (3)
Enquiry for new events:
1.
2.
3.
4.
5.
6.
send (enquiry message) to all neighbors;
while receiving responses do
responses_count++;;
If responses_count > (max * Number of lanes)
then
generate_message (jam);
Sleep ( Δt2 seconds);
Algorithms (4)
Message dissemination:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
If status of message m is Active then
If message m1 is received and m1 is new version of m then
Erase (m);
m.status = passive;
Else
send (m) to all neighbors;
Sleep ( Δt3 seconds;)
Else if new message m2 is received and m2.status = active then
Sleep ( Δt3 + random offset );
Else
m.status = active ;
Sleep (Δt3 seconds);
End if
Functional scheme
Distance
Calculation
Thread
Jam
Detection
Thread
Java Virtual
Machine
Message
Disseminati
on Thread
Enquiry
events
Thread
Q&A