transport layer
DESCRIPTION
Transport layer. Classical transport layer. End-to-end Reliability retransmission Flow control vs Congestion control. Transport layer in sensor network. Multi-hop “ data-centric ” transport service No endpoint address but group or cluster 1->N (downlink): controlled broadcast - PowerPoint PPT PresentationTRANSCRIPT
Transport layer
Classical transport layer
• End-to-end• Reliability
– retransmission
• Flow control vs Congestion control
Transport layer in sensor network
• Multi-hop “data-centric” transport service– No endpoint address but group or cluster– 1->N (downlink): controlled broadcast– M->1 (uplink): data
aggregation/processing
• Cooperative/collective paradigm– Not competitive
Sensor network: traditional viewpoint
• Sources to sink communications– Occasional loss is OK
New viewpoint• Sink to sources communications
– Occasional loss is disastrous
Reliability in Sensor networks
• When reliability is required– Sink to sources
• Reprogramming: binary• Reconfiguration: script
• Lightweight
Pump slowly, fetch quickly (PSFQ)
• Customizable transport protocol– Different application needs
• Ensure delivery with minimum requirements on routing infrastructure
• Minimum signaling traffic• High error rate
How PSFQ?
• Source paces data slowly (PS)• When sink detects message loss,
quickly performs local recovery (FQ)– Detection: sequence number – Negative ACK
• Assumption: message loss is due to link error rather than congestion
PSFQ
• Negative ACK• Hop by hop error recovery
– Packet loss rate: p– Src and sink are n hops away– Successful e2e delivery: (1-p)^n
E2e success rate
If multiple reXmission
Multi-modal operations
• Localize the loss event– Store-and-forward approach
Multi-model operations
• Packet-forwarding mode– Low error rate
• Store-and-forward mode– High error rate
PSFQ: 3 functions
• Pump: message relaying– Inject message
• File Id, file length, sequence number, TTL
– From user node to every sensor node• Re-tasking (broadcasting)
• Fetch: relay-initiated error recovery
• Report: selective status reporting
Referenceapplication
pump• User node broadcasts a packet every Tmin
until all data segments are sent out– Tmin is for local recovery
• Neighbors receive each segment and decrement TTL by 1
• If TTL > 0 && no gap in sequence number, PSFQ sets a schedule (Tmin..Tmax) to forward the message
• If PSFQ heard the same message 4 times, schedule is canceled
• Tmax can be used to provide a loose statistical delay bound (e2e)– Delay = Tmax * number of hops * number of
fragments
fetch• NACK message
– File id, file length, loss window
• Loss aggregation– Window of lost packets– Bursty loss is possible
• Fetch timer– NACK at every timer expiration– Only one-hop broadcasting
• Proactive fetch– If next packet is not delivered after Tpro
Report • From target node to user node• Report message
– Header: the relaying node id– Payload: a chain of node Ids and seq. numbers
• Source node will trigger by setting report bit in TTL field
• The last hop (final destination) will initiate this reporting
• What if no space to append more info?– Create new message and send it first before
relaying the old one
ESRT: Event-to-sink Reliable Transport
Problem definition• For reliable temporal tracking, the sink must
decide on the event every t units• The sink derives a reliability metric r_i at every
decision interval i• Def1: the observed event reliability, r_i is the
number of received data packets in decision interval i at the sink
• Def2: the desired event reliability, R is the number of data packets required for reliable event detection
• If r_i > R, the event is deemed to be reliably detected
• f: reporting rate
r vs f• n: the number of source nodes
CSMA-CADSR
5 regions
= r/R, a normalized reliability
ESRT
• ESRT identifies the current state S_i– For each interval i: _i, f_i– A congestion detection mechanism
• ESRT derives a new _(i+1) and calculates the updated f_(i+1) for interval i+1 and determines the next state S_(i+1)
NC, LR
• Failure, power down of some nodes• Packet loss due to link errors• f_(i+1) = f_i / _i
– Multiplicative increase
NC, HR
• Reliability is overly achieved• f_(i+1) = f_i * (1 + 1/_i)/2
– Multiplicative– Half the slope
C, HR
• Decrease reporting frequency• Energy saving• f_(i+1) = f_i / _i
– Multiplicative decrease
C, LR• Worst state• Aggressively decrease• k: the number of decision intervals
with state (C, LR) including this interval
so, k >= 1
OOR
• Frequency is left unchanged• f_(i+1) = f_i
Congestion detection
• Local buffer level monitoring• Congestion indication condition
• Set the CN bit in the packet header
Open issue?
• End-to-end reliability is r arrival over R generation
• What if intermediate nodes know this context?– Number of hops– A intermediate node receives some
packets (between r and R)– Does it have to request retransmission?
CODA: congestion detection and avoidance
Congestion detection
• Buffer queue length• Channel loading
– sampling
• Report rate/fidelity measurement
CODA design
• Open-loop hop-by-hop backpressure– Receiver-based detection– Minimum cost sampling– Suppression message
• Closed-loop multi-source regulation– Source sets regulate bit at the event
packets– ACK packets from the sink