1 15-744: Computer Networking L-2 Design Considerations Announcements • Video on Web page • Project focus • Project ideas list – will update by next Wed • Meeting times on Thursday to discuss possible project ideas (will bring signup to Wed lecture) • Project proposal (~1pg – intro/related work/plan of work) – due by email noon 9/23 • Project partners – several people are looking – we will try to help • Lecture signup see Web page • Discussion site focus 2 3 Lecture: Design Considerations • How to determine split of functionality • Across protocol layers • Across network nodes • Assigned Reading • [SRC84] End-to-end Arguments in System Design • [Cla88] Design Philosophy of the DARPA Internet Protocols • Optional Reading • [CT90] Architectural Considerations for a New Generation of Protocols • [Clark02] Tussle in Cyberspace: Defining Tomorrow’s Internet 4 Outline • Design principles in internetworks • IP design2 5 Goals [Clark88] 0 Connect existing networks initially ARPANET and ARPA packet radio network 1. Survivability ensure communication service even in the presence of network and router failures 2. Support multiple types of services 3. Must accommodate a variety of networks 4. Allow distributed management 5. Allow host attachment with a low level of effort 6. Be cost effective 7. Allow resource accountability 6 Goal 0: Connecting Networks • How to internetwork various network technologies • ARPANET, X.25 networks, LANs, satellite networks, packet networks, serial links… • Many differences between networks • Address formats • Performance – bandwidth/latency • Packet size • Loss rate/pattern/handling • Routing 7 Challenge 1: Address Formats • Map one address format to another? • Bad idea many translations needed • Provide one common format • Map lower level addresses to common format 8 Challenge 2: Different Packet Sizes • Define a maximum packet size over all networks? • Either inefficient or high threshold to support • Implement fragmentation/re-assembly • Who is doing fragmentation? • Who is doing re-assembly?3 9 Gateway Alternatives • Translation • Difficulty in dealing with different features supported by networks • Scales poorly with number of network types (N^2 conversions) • Standardization • “IP over everything” (Design Principle 1) • Minimal assumptions about network • Hourglass design IP Standardization • Minimum set of assumptions for underlying net • Minimum packet size • Reasonable delivery odds, but not 100% • Some form of addressing unless point to point • Important non-assumptions: • Perfect reliability • Broadcast, multicast • Priority handling of traffic • Internal knowledge of delays, speeds, failures, etc • Also achieves Goal 3: Supporting Varieties of Networks 10 IP Hourglass • Need to interconnect many existing networks • Hide underlying technology from applications • Decisions: • Network provides minimal functionality • “Narrow waist” Tradeoff: No assumptions, no guarantees. Technology!Applications! email WWW phone..."SMTP HTTP RTP..."TCP UDP…"IP" ethernet PPP…"CSMA async sonet..." copper fiber radio..."11 12 IP Layering (Principle 2) • Relatively simple • Sometimes taken too far Router Router Host Host Application Transport Network Link4 Survivability • If network disrupted and reconfigured • Communicating entities should not care! • No higher-level state reconfiguration • How to achieve such reliability? • Where can communication state be stored? 13 Network Host Failure handing Replication “Fate sharing” Net Engineering Tough Simple Switches Maintain state Stateless Host trust Less More Principle 3: Fate Sharing • Lose state information for an entity if and only if the entity itself is lost. • Examples: • OK to lose TCP state if one endpoint crashes • NOT okay to lose if an intermediate router reboots • Is this still true in today’s network? • NATs and firewalls • Survivability compromise: Heterogeneous network less information available to end hosts and Internet level recovery mechanisms Connection State State No State 14 15 Principle 4: Soft-state • Soft-state • Announce state • Refresh state • Timeout state • Penalty for timeout – poor performance • Robust way to identify communication flows • Possible mechanism to provide non-best effort service • Helps survivability 16 Principle 5: End-to-End Argument • Deals with where to place functionality • Inside the network (in switching elements) • At the edges • Argument • There are functions that can only be correctly implemented by the endpoints – do not try to completely implement these elsewhere • Guideline not a law5 17 Example: Reliable File Transfer • Solution 1: make each step reliable, and then concatenate them • Solution 2: end-to-end check and retry OS Appl. OS Appl. Host A Host B OK E2E Example: File Transfer • Even if network guaranteed reliable delivery • Need to provide end-to-end checks • E.g., network card may malfunction • The receiver has to do the check anyway! • Full functionality can only be entirely implemented at application layer; no need for reliability from lower layers • Does FTP look like E2E file transfer? • TCP provides reliability between kernels not disks • Is there any need to implement reliability at lower layers? 18 19 Discussion • Yes, but only to improve performance • If network is highly unreliable • Adding some level of reliability helps performance, not correctness • Don’t try to achieve perfect reliability! • Implementing a functionality at a lower level should have minimum performance impact on the applications that do not use the functionality 20 Examples • What should be done at the end points, and what by the network? • Reliable/sequenced delivery? • Addressing/routing? • Security? • What about Ethernet collision detection? • Multicast? • Real-time guarantees?6 Goal 2: Types of Service • Principle 6: network layer provides one
View Full Document