430 likes | 621 Views
End-to-End Issues. Al Harris CS 598ig 9/28/2005. Where is the Work Done?. In the network Sensor fusion Active networks NAT At the endpoints Using acknowledgements for reliability On the phone: “Can you repeat that?”. Outline. The End-to-End Argument Saltzer, Reed, and Clark
E N D
End-to-End Issues Al Harris CS 598ig 9/28/2005
Where is the Work Done? • In the network • Sensor fusion • Active networks • NAT • At the endpoints • Using acknowledgements for reliability • On the phone: “Can you repeat that?”
Outline • The End-to-End Argument • Saltzer, Reed, and Clark • ESRT: Event-to-Sink Reliable Transport in Wireless Sensor Networks • Sankarasubramaniam, Akan, and Akyildiz • Middleboxes: Taxonomy and Issues • RFC 3234 • Conclusions
End-to-End Argument “The function in question can completely and correctly be implemented only with the knowledge and help of the application standing at the end points of the communication system. Therefore, providing that questioned function as a feature of the communication system itself is not possible.”
What it says: • Some functionality requires application level knowledge • Reliability (careful file transfer) • If it can’t be done correctly… Don’t do it at all!
Proviso “Sometimes an incomplete version of the function provided by the communication system may be useful as a performance enhancement.” • Sometimes, the rule can be broken • 802.11 MAC retransmissions
2 4 3 1 5 Example: Careful File Transfer • Copy/Move file from HD on Computer A to HD on Computer B
What Can Go Wrong? • Disk error • Software error (OS, File transfer program, Network driver) • Hardware error • Communication system • System crash
Step-by-Step Solution • Method • At each step use error detection and correction • Do local recovery at each step • Problems • Expensive • Application still has to check for errors • Constant checking even in steps unlikely to produce errors
End-to-End Solution • Method • Transfer entire file • Compute checksum and send to originator for comparison • Problems • If errors are encountered, file transfer must be started from the beginning
Performance • How much reliability to put in lower layers? • Do not need “perfect” reliability • Engineering Trade-off • Cost • Performance
Two Issues • Lower layer subsystems are shared • If reliability is higher than most apps need all have to pay • Aim for the “average” app? • Lower layer subsystems have less information about the data • May be more efficient means at the application
To What Ends? • Identifying the ends may not be trivial • Consider Voice over IP • Are the ends the computers? • May introduce delays waiting for retransmissions • Are the ends the people? • User interaction? “What did you say?” • The ends must be known to apply the argument
Composite Solution • Method • Use reliable transport protocol (TCP) • Still must compute file checksum to guard against file system errors • Is this better? • Does not avoid application level checks • May reduce frequency of starting over from the beginning
The “Ends” in Sensor Networks • Why focus on particular pieces of data? • EVENTS are what sensors are all about Leads to a different reliability scheme
Event-to-Sink Reliable Transport (ESRT) • Idea • Only care about event notification, not individual data packets • Define reliability with respect to number of data packets per event per time interval • Control the rate at which sensors send packets
ESRT: Controlling the frequency • If receiving more packets than needed • Have sensors reduce frequency • Reduces probability of congestion • Saves transmission energy in the network • If receiving too few packets • Have sensors increase sending frequency • Unless there is congestion
Retransmissions? • No need • Individual packets are not important • Only event notification • Might be stale anyway • Old sensor data possibly not useful • Increases congestion • If losses due to congestion, retransmission won’t help
Congestion Control • Sensor networks are usually idle… • …Until an event occurs • High probability of channel overload • Information must reach users • Solution: congestion control
ESRT: Overview • Places interest on events, not individual pieces of data • Application-driven • Application defines desired event reporting rate • Includes a congestion-control element • Runs mainly on the sink • Main goal: Adjust reporting rate of sources to achieve optimal reliability requirements
Problem Definition • Assumption: • Detection of an event is related to number of packets received during a specific interval • Observed event reliability ri: • # of packets received in decision interval I • Desired event reliability R: • # of packets required for reliable event detection • Application-specific • Goal: configure the reporting rate of nodes • Achieve required event detection • Minimize energy consumption
Reliability vs. Reporting Frequency • Initially, reliability increases linearly with reporting frequency • There is an optimal reporting frequency (fmax), after which congestion occurs • Fmax decreases when the # of nodes increases
Characteristic Regions • n: normalized reliability indicator • (NC,LR): No congestion, Low reliability • f < fmax, n < 1-e • (NC, HR): No congestion, High reliability • f <= fmax, n < 1+e • (C, HR): Congestion, High reliability • f > fmax, n > 1 • (C, LR): Congestion, Low reliability • f < fmax, n <= 1 • OOR: Optimal Operating Region • f < fmax, 1-e <= n <= 1+e
Congestion Detection and Reliability Level • Both done at the sink • Congestion: • Nodes monitor their buffer queues and inform the sink if overflow occurs • Reliability Level • Calculated by the sink at the end of each interval based on packets received
Congestion Detection • Each sensor watches buffer • Assumption • Incoming traffic to a node in consecutive reporting intervals is constant • If current buffer + last buffer change > maximum buffer set congestion notification bit
ESRT Protocol Operation • (NC, LR): • (NC, HR): • (C, HR): • (C, LR):
ESRT: Conclusion • Reliability notion is application-based • No delivery guarantees for individual packets • Reliability and congestion control achieved by changing the reporting rate of nodes • Pushes all complexity to the sink • Single-hop operation only
Middleboxes • A challenge to the End-to-End argument • They exist! We do break the argument “A middlebox is defined as any intermediary device performing functions other than the normal, standard functions of an IP router on the datagram path between a source host and destination host.”
Why Worry? • New middleboxes challenge old protocols • Old protocols may fail, or perform unpredictably • Middleboxes introduce new failure modes • Routing around failed routers not the only problem • Configuration no longer restricted to the ends • Middleboxes require some configuration • Diagnosing failure more complex • Middlebox configurations could be at fault
Classifications for Middleboxes • Protocol layer • Which protocols layers does the middlebox operate in? • Explicit vs. implicit • Was the middlebox anticipated in the design of the protocol, or is the middlebox an add-on • Single-hop vs. multi-hop • How many boxes can be in the path
Classifications (cont’d) • In-line vs. call-out • Does the middlebox operate in-line on the data path? • Functional vs. optimizing • Can the application run without the middlebox? • Routing vs. processing • Does the middlebox process the packets in some way?
Classifications (cont’d) • Soft state vs. hard state • If a middlebox loses its state, does the session fail? • Failover vs. restart • Does a failed session get moved to another middlebox, or does it have to restart?
NAT NAT-PT SOCKS gateway IP Tunnel Endpoints Packet classifiers Transport relay TCP performance enhancing proxies Load balancers IP Firewalls Application Firewalls Application-level gateways Gatekeepers Transcoders Proxies Caches Modified DNS servers Content and applications distribution boxes Load balancers for URLs Application-level interceptors Application-level multicast Involuntary packet redirection Anonymisers Middlebox Taxonomy
NAT – Network Address Translator • Often built into routers • Dynamically assign globally unique IP address to host without one • Incompatible with applications with IP address dependencies • Classifications: IP layer, implicit, multihop, inline, functional, processing, hard, restart
IP Firewalls • Often built into routers • Rejects or accepts packets based on higher layer header information • Cause connectivity problems that can be hard to diagnose • Classifications: IP layer, implicit, multihop, in-line, functional, routing, hard, restart
Proxies • An intermediary program that acts as a client and server • Makes requests on behalf of a client and then serves the result • Often associated with a firewall • Classifications: Application layer, explicit (HTTP), multihop, in-line, functional, processing, soft, restart
Summary of Classifications of 22 types of Middleboxes • 17 are application or multi-layer • 16 are implicit • 17 are multi-hop • 21 are in-line • 18 are functional • 16 have hard state • 21 must restart
What does this imply? • Most require restart • Most are in-line • Most are implicit and application or cross-layer This is a real challenge to the End-to-End argument
End-to-End and Middleboxes • Many middleboxes act as a final destination • But does this mean they do not violate the End-to-End argument? “Although the rise of middleboxes has negative impact on the end to end principle at the packet level, it does not nullify it as a useful or desirable principle of application protocol design.”
Is there a middle-ground when considering middleboxes? • Can we just design protocols ignoring middleboxes? “However, future application protocols should be designed in recognition of the likely presence of network address translation, packet diversion, and packet level firewalls, along the data path.”
Conclusion • The End-to-End argument • Old standby • Life gets complicated when it is broken • ESRT: Events not nodes are the ends • Allows a new way to control reliability • Middleboxes • We DO break the end-to-end argument
Future • Don’t forget the end-to-end argument • However: consider the existence of middleboxes during the design of new end-to-end protocols