11Internet Design PrinciplesEE 122: Intro to Communication NetworksFall 2006 (MW 4-5:30 in Donner 155)Vern PaxsonTAs: Dilip Antony Joseph and Sukun Kimhttp://inst.eecs.berkeley.edu/~ee122/Materials with thanks to Jennifer Rexford, Ion Stoica,and colleagues at Princeton and UC Berkeley2Announcements• Electronic copy of P&D Chapter 1 available, seeannouncements Web page• Homework #1 due date postponed 1 week, nowWed Sept. 20. (Also, bug fixes for Problem #2.)• Make sure you’re on the mailing list!• Vern & Dilip away next week @ SIGCOMM, nooffice hours– Sukun lectures Mon Sept. 11– No Lecture Wed Sept. 13• Please see note in announcements page reprinters to use for hardcopy of the notes3Overview• Roles played by end systems– Clients, servers, peer-to-peer• Architecture & layering• The End-to-End Principle4End System: Computer on the ‘NetInternetAlso known as a “host”…5Clients and Servers• Client program– Running on end host– Requests service– E.g., Web browserGET /index.html6Clients 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”27Clients Are Not Necessarily Human• Example: Web crawler (or spider)– Automated client program– Tries to discover & download many Web pages– Forms the basis of search engines like Google• Spider client– Start with a base list of popular Web sites– Download the Web pages– Parse the HTML files to extract hypertext links– Download these Web pages, too– And repeat, and repeat, and repeat…– (Per Project #2)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-knownaddress9Peer-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 server10Client and Server Processes• Program vs. process– Program: collection of code– Process: a running program on a host• Communication between processes– Same end host: inter-process communication Governed by the operating system on the end host• (Though can use network protocols for this too)– Different end hosts: exchanging messages Governed by the network protocols• Client and server processes– Client process: process that initiates communication– Server process: process that waits to be contacted11The Problem• Re-implement every application for every technology?• No! But how does the Internet design avoid this?Skype SSH NFSPacketradioCoaxial cableFiberopticApplicationTransmissionMediaHTTP12Solution: 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 layers313Network Architecture• Architecture is not the implementation itself• Architecture is how to organize/structure theelements of the system & their implementation– What interfaces are supported Using what sort of abstractions– Where functionality is implemented– The modular design of the network14Computer System ModularityPartition system into modules & abstractions:• Well-defined interfaces give flexibility– Change implementation of modules– 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 performance15Network System ModularityLike software modularity, but:• Implementation distributed across many machines(routers and hosts)• Must decide:– How to break system into modules Layering– Where modules are implemented End-to-End Principle• We will address these choices in turn16Layering: A Modular Approach• Paritition 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 layersLink hardwareHost-to-host connectivityApplication-to-application channelsApplication17Properties 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 betweenmachines18Physical Layer (1)• Service: move signals (information) between twosystems connected by a physical link• Interface: specifies how to send bits• Protocol: coding scheme used to represent bits,voltage levels, duration of a bit• Examples: coaxial cable, optical fiber links;transmitters, receivers419(Data)link Layer (2)• Service:– Framing (attach frame separators)– Deliver data frames from one peer to another Perhaps across multiple hops– Possible others: arbitrate access to common physical media per-hop reliable transmission per-hop flow control• Interface: send a data unit (packet) to a machineconnected to the same physical network• Protocols: addressing (link-layer specific),Medium Access Control (MAC) (e.g., CSMA/CD -Carrier Sense Multiple Access / Collision Detection)20(Inter)Network Layer (3)• Service:– Deliver a packet to specified inter-network destination Inter-network = across multiple
View Full Document