11Internet Design PrinciplesEE 122: Intro to Communication NetworksFall 2007 (WF 4-5:30 in Cory 277)Vern PaxsonTAs: Lisa Fowler, Daniel Killebrew & Jorge Ortizhttp://inst.eecs.berkeley.edu/~ee122/Materials with thanks to Jennifer Rexford, Ion Stoica,and colleagues at Princeton and UC Berkeley2Announcements• Homework #1 is now out, due Fri Sept. 21 beforelecture.• Phase 1 of Project #1 now out, due Wed Sept. 26at 11PM.• Make sure you’re on the mailing list!• I won’t have office hours on Friday, other than byappt.• Answer to question from last lecture:Yes, Frame Relay networking uses virtual circuits.• If you don’t have a class account yet, come up atthe break for a form.23Overview• Standardization of protocols• Roles played by end systems– Clients, servers, peer-to-peer• Architecture & layering• The End-to-End Principle & Fate Sharing4Protocol Standardization• Ensure communicating hosts speak the sameprotocol– 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)o 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>…35End System: Computer on the ‘NetInternetAlso known as a “host”…6Clients and Servers• Client program– Running on end host– Requests service– E.g., Web browserGET /index.html47Clients and Servers• Client program– Running on end host– Requests service– E.g., Web browser• Server program– Running on end host– Provides service– E.g., Web serverGET /index.html“Site under construction”8Client-Server Communication• Client “sometimes on”– Initiates a request to theserver when interested– E.g., Web browser on yourlaptop or cell phone– Doesn’t communicatedirectly with other clients– Needs to know the server’saddress• Server is “always on”– Services requests frommany client hosts– E.g., Web server for thewww.cnn.com Web site– Doesn’t initiate contact withthe clients– Needs a fixed, well-knownaddress59Peer-to-Peer Communication• No 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 findwhere a file is located, respond to queries, and forwardqueries– Scalability by harnessing millions of peers– Each peer acting as both a client and server10The Problem• Re-implement every application for every technology?• No! But how does the Internet design avoid this?Skype SSH NFSRadioCoaxial cableFiberopticApplicationTransmissionMediaHTTP611Solution: Intermediate Layers• Introduce intermediate layers that provide set of abstractionsfor various network functionality & technologies– A new app/media implemented only once– Variation on “add another level of indirection”Skype SSH NFSPacketradioCoaxial cableFiberopticApplicationTransmissionMediaHTTPIntermediate layers12Network Architecture• Architecture is not the implementation itself• Architecture is how to organize/structure theelements of the system & their implementation– What interfaces are supportedo Using what sort of abstractions– Where functionality is implemented– The modular design of the network713Computer System ModularityPartition system into modules & abstractions:• Well-defined interfaces give flexibility– Hides implementation - thus, it can be freely changed– Extend functionality of system by adding new modules• E.g., libraries encapsulating set of functionality• E.g., programming language + compiler abstractsaway not only how the particular CPU works …– … but also the basic computational model• Well-defined interfaces hide information– Isolate assumptions– Present high-level abstractions– But can impair performance14Network System ModularityLike software modularity, but:• Implementation distributed across many machines(routers and hosts)• Must decide:– How to break system into moduleso Layering– Where modules are implementedo End-to-End Principle– Where state is storedo Fate-sharing• We will address these choices in turn815Layering: 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 layers16Properties of Layers (OSI Model)• Service: what a layer does• Service interface: how to access the service– Interface for layer above• Protocol (peer interface): how peerscommunicate to achieve the service– Set of rules and formats that govern thecommunication between network elements– Does not govern the implementation on a singlemachine, but how the layer is implemented betweenmachines917Physical Layer (1)• Service: move bits between two systemsconnected by a single physical link• Interface: specifies how to send and receive bits– E.g., require quantities and timing• Protocols: coding scheme used to represent bits,voltage levels, duration of a bit18(Data) Link Layer (2)• Service:– Enable end hosts to exchange atomic messages with oneanothero Using abstract addresses (i.e., not just direct physical connections)– Perhaps over multiple physical linkso But using the same framing (headers/trailers)– Possible other services:o arbitrate access to common physical mediao 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)1019(Inter) Network Layer (3)• Service:– Deliver packets to specified inter-network destinationo Inter-network = across multiple layer-2 networks– Works across networking technologies (e.g., Ethernet +802.11 + Frame Relay + ATM …)o No longer the same framing all the way– Possible other services:o packet scheduling/priorityo buffer management• Interface: send packets to specified internetworkdestinations; receive packets destined for end
View Full Document