Page ‹#›1Lecture 2Protocol StacksDavid AndersenSchool of Computer ScienceCarnegie Mellon University15-441 Networking, Spring 2005http://www.cs.cmu.edu/~srini/15-441/S05/2Last Tuesday The Big Picture» Goals:– Efficiency– “ilities” (scalability, manageability, availability),– Ease of creating applications» Challenges:– Scale– Geography– Heterogeneity (** today’s focus!) A few specific details:» Circuits vs. packets» Little bit about routing» Service model and how to construct services (** today!)Page ‹#›3Today’s Lecture Last time: “Big picture” Today:» General architectural principles for networks» Introduces a few concrete models & examples Where we are going:» Thursday: Application examples (still high level)» After that: Burrowing into the details, ground up Today’s specifics:» What is a protocol.» Protocol stacks.» Some history.» Standards organizations.» Application layer.4Protocols Recall goals:» Interoperability» Reuse» Hiding underlying detailsPage ‹#›5Protocols An agreement betweenparties on whocommunication shouldtake place. Protocols may have todefine many aspects of thecommunication. Syntax:» Data encoding, language, etc. Semantics:» Error handling, termination,ordering of requests, etc. Protocols at hardware,software, all levels! Example: Buying airlineticket by typing. Syntax: English, ascii,lines delimited by “\n”Friendly greetingMuttered replyDestination?PittsburghThank you6More on Protocols Protocols are the key to interoperability.» Networks are very heterogenous:» The hardware/software of communicating parties are often notbuilt by the same vendor» Yet they can communicate because they use the same protocol Protocols exist at many levels.» Application level protocols, e.g. access to mail, distribution ofbboards, web access, ..» Protocols at the hardware level allow two boxes tocommunicate over a link, e.g. the Ethernet protocolHardwareHardware/linkNetworkApplicationComputer: x86Ethernet: 3comRouters: cisco, etc.App: EmailPage ‹#›7Interfaces Each protocol offers an interface to its users,and expects one from the layers on which itbuilds» Syntax and semantics strike again– Data formats– Interface characteristics, e.g. IP service model Protocols build upon each other» Add value– E.g., a reliable protocol running on top of IP» Reuse– E.g., OS provides TCP, so apps don’t have to rewrite8Too ManyNetwork ComponentsApplicationOperating SystemProtocol SoftwareComputerLinksRouter HardwareRouter Software(many protocols)Bridge HW/SWApplicationOperating SystemComputerNetwork InterfacePage ‹#›9Too many components 2 Links: copper, fiber, air, carrier pidgeon Running ethernet, token ring, SONET, FDDI Routers speaking BGP, OSPF, RIP, … Hosts running FreeBSD, Linux, Windows,MacOS, … People using Mozilla, Explorer, Opera, … and it changes all the time Phew! Protocols hide this stuff with simpleabstractions.10Looking at protocols Hop by hop / link protocols» Ethernet End-to-end protocols» TCP, apps, etc. Management / “control plane” protocols» Routing, etc.– Can be either link or e2e themselves– Definition somewhat vague. Standards» File formats, etc. E.g., JPEG, MPEG, MP3, …Categories not solid / religious, just a way to view things.Page ‹#›11Protocol andService LevelsApplicationEnd-to-endCoreNetwork12A Layered Network ModelThe Open Systems Interconnection (OSI) Model.ApplicationPresentationSessionTransportNetworkData linkPhysical1234567NetworkData linkPhysicalApplicationPresentationSessionTransportNetworkData linkPhysicalPage ‹#›13OSI Motivation Standard way of breaking up a system in a set ofcomponents, but the components are organized as a setof layers.» Only horizontal and vertical communication» Components/layers can be implemented and modified in isolation Each layer offers a service to the higher layer, using theservices of the lower layer. “Peer” layers on different systems communicate via aprotocol.» higher level protocols (e.g. TCP/IP, Appletalk) can run on multiplelower layers» multiple higher level protocols can share a single physical network “It’s only a model!” - TCP/IP has been crazy successful,and it’s not based on a rigid OSI model. But the OSImodel has been very successful at shaping thought.14OSI Functions (1) Physical: transmission of a bit stream. (2) Data link: flow control, framing, errordetection. (3) Network: switching and routing. (4) Transport: reliable end to end delivery. (5) Session: managing logical connections. (6) Presentation: data transformations. (7) Application: specific uses, e.g. mail, filetransfer, telnet, network management.Multiplexing takes place in multiple layersPage ‹#›15Example: Sending a Web PageHttp hdr Web pageTCP header. . .ApplicationpayloadApplicationPresentationSessionTransportNetworkData linkPhysical16Ethernet preambleA TCP / IP / 802.3 PacketMAC headerLLC / SNAP headerIP headerTCP headerDataApplicationPresentationSessionTransportNetworkData linkPhysicalHomework explores tradeoffs inheader sizes, etc., with differentapplicationsPage ‹#›17Multiplexing andDemultiplexing There may be multipleimplementations ofeach layer.» How does the receiverknow what version of alayer to use? Each header includes ademultiplexing field thatis used to identify thenext layer.» Filled in by the sender» Used by the receiver Multiplexing ooccurs atmultiple layers. E.g., IP,TCP, …IPTCPIPTCPV/HL TOS LengthID Flags/OffsetTTL Prot. H. ChecksumSource IP addressDestination IP addressOptions..18Different Sources ofComponents Application: webserver/browser, mail,distributed game,.. Presentation/session.» Often part of application» Sometimes a library Transport/network.» Typically part of the operatingsystem Datalink.» Often written by vendor of thenetwork interface hardware Physical.» Hardware: card and linkApplicationPresentationSessionTransportNetworkData linkPhysicalPage ‹#›19Limitations of theLayered Model Some layers are not always cleanly separated.» Inter-layer dependencies in implementations for performancereasons» Some dependencies in the standards (header checksums) Higher layers not always well defined.» Session, presentation, application layers Lower layers have “sublayers”.» Usually very well defined (e.g., SONET
View Full Document