hsls r outing p rotocol eleonora borgia pervasive computing & networking lab. perlab iit – cnr...
DESCRIPTION
Packet format Packet Sequence NumberPacket Length Originator Address TTLPacket TypeValidity Time Link TypeAddress Size Neighbor Address 1 Link TypeAddress Size Neighbor Address 2 OPTIONAL 0123 Packet Header Message Header Message BodyTRANSCRIPT
HSLSHSLS RROUTINGOUTING P PROTOCOLROTOCOL
Eleonora Borgia Eleonora Borgia
Pervasive Computing & Networking Lab. PerLab
IIT – CNR [email protected]
MobileMAN Project - Helsinki – June 7/8, 2004
HSLS characteristicsHSLS characteristics
1. A node wakes up every te sec and sends a LSU with TTL=2 if there has been a link status change in the last te sec;
2. Every 2i-1 * te sec (with i=1,2,3..) a node wakes up and sends a LSU with TTL= 2i if there has been a link status change in the last 2i-1 * te sec;
3. Every tb sec (tb>te) a global LSU (TTL=) is sent in the entire network to give a complete overview of the network topology, even if there’s no link changes.
High mobility scenario :LSU generated every te sec
Packet formatPacket format
Packet Sequence Number Packet LengthOriginator AddressTTL Packet Type Validity Time
Link Type Address SizeNeighbor Address 1
Link Type Address SizeNeighbor Address 2
OPTIONAL
0 1 2 3Packet Header
Message Header
Message Body
Software ArchitectureSoftware Architecture
HSLS
Initialization
Garbage Collector
NEST Communication
Packet Mangement
SocketManagement
Processing
LSU Hello
Data Data structuresstructures (1)(1)
• INTERFACE: it stores internal information of the node (e.g. socket descriptor, wireless information)
• TOPOLOGY TABLE: it stores all the links of the network characterized by their status (SYM/ASYM)
• ROUTING TABLE: it stores the shortest path to each node of the network
T_Sender_Addr
T_Destination_Addr
T_Link_Type
T_Validity_Time
R_Destination_Addr
R_Next_Hop R_Cost
Data Data structuresstructures (2)(2)
• SENT LSU CACHE: it stores relevant information about sent LSU packets
• RECEIVED LSU CACHE: it stores relevant information about LSU packets coming from other nodes
Pkt NumberTTLACK_LSU numberTimeoutPkt content
Originator addressPkt NumberTTLACK_LSU numberTimeoutPkt content
SLC entry: RLC entry:
Reliable HSLSReliable HSLSThe Broadcast problem
Introduction of a mechanism to make HSLS reliable: ACK_LSU = LSU (TTL = i-1) received from 1-hop neighbors
1. Node A sends an LSU (TTL = i) in the network; 2. Node A counts the number of ACK_LSU packets received from its
1-hop neighboors in a specific time window T<<te;3. Comparison between (ACK_LSU, threshold):
• If #ACK_LSU >= threshold, A transmission is correct;• If #ACK_LSU < threshold, node A retransmits the same LSU;
4. Explicit unicast ACK in the last hop.
C
A
E
B
F
LSU (TTL =i )ACK_LSU = LSU (TTL = i-1)
EDUNICAST ACK_LSU
Modules Interactions Modules Interactions (1)(1)
Hello/LSUInit Socket Management
Data structures initialization
Generation of Hello/LSU message
Addition of header PKT and OPTIONAL field
sleep .. PKT sent to wireless card
Modules Interactions Modules Interactions (2)(2)
…waiting for a PKT from the network
Processing Phase
ProcessingSocket Management
OPTIONAL field and/or TT exported to NEST..
forwarding PKT..
LSU Module LSU Module (1)(1)
INIT: SendLSU (TTL = ); Reset Counter (NumTe, TimeLastChange); Mode = START; LinkChange = false;
Expire Te
Generate LSU (TT)
R = 2i t.c R<MD<2R
Compare (LSU, LastLSUSent) TimeLastChange +
+
TimeLastChange = 0; LinkChange = true;
=
Expire Tp
SendLSU (TTL = );Reset Counter (NumTe, TimeLastChange); change = false;Update SLC;
LSU ModuleLSU Module (2)(2)
mode
SendLSU (TTL = 2); Mode = HSLS; NumTe ++ Update SLC;
LinkChange
TRUE
FALSE START HSLS
NumTe ++ Find 2i exact_div (NumTe , &i, &TTL)
TimeLastChange
2i
SendLSU (TTL = );Reset Counter (NumTe, TimeLastChange); change = false;Update SLC;
SendLSU (TTL = 2i+1); Update SLC;
< 2i
< R
>= R
>= 2i
PROCESSING Module PROCESSING Module (1)(1)
Byte = ReceivedPacket ()
Extract (PKTHeader, MSGHeader)
Compare (HostIP, OriginatorAddress)
DupPKT = DuplicatePacket (SentLSUCache)
DupPKT = DuplicatePacket (ReceivedLSUCache)
DupPKT
Compare (packetType, LSU&LSU_OPT)
Process MSGBody
TTL
sendExplicitACK
ForwardingPKT
=
= 0
0
0
=
(Hello)
= 0> 1
PROCESSING ModulePROCESSING Module(2)(2)
Build RouteTree (HostIP)
UPDATE algorithm (TT)
Link Change
Dijikstra RouteTree (HostIP)
UPDATE (RT)
Extract MD (Max n° hop)
UPDATE Kernel Routing Table
Packet TypeExtract OPTIONAL
NOSI
LSU_OPT
Hello, LSU
Ongoing workOngoing work
HSLS
Initialization
Garbage Collector
NEST Communication
Packet Mangement
SocketManagement
Processing
LSU Hello