330 likes | 544 Views
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
E N D
Classicaltransport 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
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 Reference application
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
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-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?
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