EE 122 Internet Design Principles Ion Stoica TAs Junda Liu DK Moon David Zats http inst eecs berkeley edu ee122 Materials with thanks to Vern Paxson Jennifer Rexford and colleagues at UC Berkeley 1 Overview Standardization of protocols Roles played by end systems Clients servers peer to peer Architecture layering The End to End Principle Fate Sharing 2 Protocol Standardization Ensure communicating hosts speak the same protocol Standardization to enable multiple implementations Or the same folks have to write all the software Standardization Internet Engineering Task Force Based on working groups that focus on specific issues Produces Request For Comments RFCs Promoted to standards via rough consensus and running code IETF Web site is http www ietf org RFCs archived at http www rfc editor org De facto standards same folks writing the code P2P file sharing Skype your protocol here 3 End System Computer on the Net Internet Also known as a host 4 Clients and Servers Client program Running on end host Requests service E g Web browser GET index html 5 Clients and Servers Client program Server program Running on end host Running on end host Requests service Provides service E g Web browser E g Web server GET index html Site under construction 6 Client Server Communication Client sometimes on Initiates a request to the server when interested E g Web browser on your laptop or cell phone Doesn t communicate directly with other clients Needs to know the server s address Server is always on Services requests from many client hosts E g Web server for the www cnn com Web site Doesn t initiate contact with the clients Needs a fixed well known address 7 Peer to Peer Communication Not always on server at the center of it all Hosts can come and go and change addresses Hosts may have a different address each time Example peer to peer file sharing Any host can request files send files query to find where a file is located respond to queries and forward queries Scalability by harnessing millions of peers Each peer acting as both a client and server 8 The Problem Many different applications Many different network styles and technologies email web P2P etc Circuit switched vs packet switched etc Wireless vs wired vs optical etc How do we organize this mess 9 The Problem cont d Application Transmission Media Skype SSH Coaxial cable NFS Fiber optic HTTP Radio Re implement every application for every technology No But how does the Internet design avoid this 10 Solution Intermediate Layers Introduce intermediate layers that provide set of abstractions for various network functionality technologies A new app media implemented only once Variation on add another level of indirection Application Skype SSH NFS HTTP Intermediate layers Transmission Media Coaxial cable Fiber optic Packet radio 11 Network Architecture Architecture is not the implementation itself Architecture is how to organize structure the elements of the system their implementation What interfaces are supported Using what sort of abstractions Where functionality is implemented The modular design of the network 12 Software System Modularity Partition system into modules abstractions Well defined interfaces give flexibility E g libraries encapsulating set of functionality E g programming language compiler abstracts away not only how the particular CPU works Hides implementation thus it can be freely changed Extend functionality of system by adding new modules but also the basic computational model Well defined interfaces hide information Isolate assumptions Present high level abstractions But can impair performance 13 Network System Modularity Like software modularity but Implementation distributed across many machines routers and hosts Must decide How to break system into modules What functionality does each module implement End to End Principle Where state is stored Layering Fate sharing We will address these choices in turn 14 Layering A Modular Approach Partition the system Each layer solely relies on services from layer below Each layer solely exports services to layer above Interface between layers defines interaction Hides implementation details Layers can change without disturbing other layers 15 Properties of Layers OSI Model Service what a layer does Service interface how to access the service Interface for layer above Protocol peer interface how peers communicate to achieve the service Set of rules and formats that specify the communication between network elements Does not specify the implementation on a single machine but how the layer is implemented between machines 16 Physical Layer 1 Application Present Session Transport Network Datalink Physical Service move information between two systems connected by a physical link Interface specifies how to send and receive bits Protocol coding scheme used to represent a bit voltage levels duration of a bit Examples coaxial cable optical fiber links transmitters receivers 17 Data Link Layer 2 Service Enable end hosts to exchange atomic messages with one another But using the same framing headers trailers Possible other services Using abstract addresses i e not just direct physical connections Perhaps over multiple physical links Application Present Session Transport Network Datalink Physical arbitrate access to common physical media reliable transmission flow control Interface send messages frames to other end hosts receive messages addressed to end host Protocols addressing routing Media Access Control MAC e g CSMA CD Carrier Sense Multiple Access Collision Detection 18 Inter Network Layer 3 Service Deliver packets to specified inter network destination No longer the same framing all the way Possible other services Inter network across multiple layer 2 networks Works across networking technologies e g Ethernet 802 11 Frame Relay ATM Application Present Session Transport Network Datalink Physical packet scheduling priority buffer management Interface send packets to specified inter network destinations receive packets destined for end host Protocols define inter network addresses globally unique construct routing tables 19 Transport Layer 4 Service Provide end to end communication between processes Demultiplexing of communication between hosts Possible other services Application Present Session Transport Network Datalink Physical Reliability in the presence of errors Timing properties Rate adaption flow control congestion control Interface send message to specific process at given
View Full Document