Transport layer Classical transport layer Endtoend Reliability retransmission
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 e 2 e delivery: (1 -p)^n
E 2 e success rate
If multiple re. Xmission
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 Reference application • Re-tasking (broadcasting) • Fetch: relay-initiated error recovery • Report: selective status reporting
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 (e 2 e) – 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 • Def 1: the observed event reliability, r_i is the number of received data packets in decision interval i at the sink • Def 2: 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-CA DSR
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
- Slides: 33