Networking OverviewIntroductionWhat’s a protocol?The network edge:The Network CoreNetwork Core: Packet SwitchingInternet protocol stackLayering: physical communicationApplication LayerNetwork applications: some jargonApplications and application-layer protocolsClient-server paradigm (“usual” approach)Addressing processes:Internet transport protocols servicesHTTP overviewCookies: keeping “state”Cookies (continued)Mail access protocolsSample SMTP interactionDNS: Domain Name SystemDNS: Root name serversP2P file sharingP2P: centralized directoryP2P: decentralized directoryP2P: Query floodingTransport LayerInternet transport-layer protocolsTCP: Overview RFCs: 793, 1122, 1323, 2018, 2581TCP 3-way handshakeNetwork LayerNetwork layer functionsDatagram networks: the Internet modelHierarchical RoutingIntra-AS and Inter-AS routingThe Internet Network layerIP Addressing: introductionGetting a datagram from source to dest.Slide 38IP Fragmentation & ReassemblyIP Fragmentation and ReassemblyICMP: Internet Control Message ProtocolDHCP client-server scenarioNAT: Network Address TranslationIntra-AS RoutingInter-AS routing in the Internet: BGPWhy different Intra- and Inter-AS routing ?Link LayerLink Layer: IntroductionAdaptors CommunicatingMultiple Access protocolsMAC Protocols: a taxonomyRandom Access ProtocolsCSMACSMA collisionsCSMA/CD (Collision Detection)CSMA/CD collision detectionEthernet uses CSMA/CDLAN Addresses and ARPLAN Address (more)ARP: Address Resolution ProtocolARP protocolARP cache poisoningARP Poisoning (continued)Summary comparisonIntroduction 1-1Networking OverviewIntroduction 1-2IntroductionIntroduction 1-3What’s a protocol?a human protocol and a computer network protocol:Q: Other human protocols? HiHiGot thetime?2:00TCP connection reqTCP connectionresponseGet http://www.awl.com/kurose-ross<file>timeIntroduction 1-4The network edge:end systems (hosts):run application programse.g. Web, emailat “edge of network”client/server modelclient host requests, receives service from always-on servere.g. Web browser/server; email client/serverpeer-peer model: minimal (or no) use of dedicated serverse.g. Gnutella, KaZaAIntroduction 1-5The Network Coremesh of interconnected routersthe fundamental question: how is data transferred through net?circuit switching: dedicated circuit per call (telephone call)packet-switching: data sent thru net in discrete “chunks” (internet)Introduction 1-6Network Core: Packet Switchingeach end-end data stream divided into packetsuser A, B packets share network resources each packet uses full link bandwidth resources used as needed resource contention: aggregate resource demand can exceed amount availablecongestion: packets queue, wait for link usestore and forward: packets move one hop at a timetransmit over linkwait turn at next linkBandwidth division into “pieces”Dedicated allocationResource reservationIntroduction 1-7Internet protocol stackapplication: supporting network applicationsFTP, SMTP, HTTPtransport: host-host data transferTCP, UDPnetwork: routing of datagrams from source to destinationIP, routing protocolslink: data transfer between neighboring network elementsPPP, Ethernetphysical: bits “on the wire”applicationtransportnetworklinkphysicalIntroduction 1-8Layering: physical communication applicationtransportnetworklinkphysicalapplicationtransportnetworklinkphysicalapplicationtransportnetworklinkphysicalapplicationtransportnetworklinkphysicalnetworklinkphysicaldatadataIntroduction 1-9Application LayerIntroduction 1-10Network applications: some jargonProcess: program running within a host.within same host, two processes communicate using interprocess communication (defined by OS)processes running in different hosts communicate with an application-layer protocoluser agent: interfaces with user “above” and network “below”. implements user interface & application-level protocolWeb: browserE-mail: mail readerstreaming audio/video: media playerIntroduction 1-11Applications and application-layer protocolsApplication: communicating, distributed processese.g., e-mail, Web, P2P file sharing, instant messaging running in end systems (hosts) exchange messages to implement applicationApplication-layer protocolsone “piece” of an appdefine messages exchanged by apps and actions takenuse communication services provided by lower layer protocols (TCP, UDP)For example, SMTPapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalIntroduction 1-12Client-server paradigm (“usual” approach)Typical network app has two pieces: client and serverapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalClient:initiates contact with server (“speaks first”)typically requests service from server, Web: client implemented in browser; e-mail: in mail readerrequestreplyServer:provides requested service to cliente.g., Web server sends requested Web page, mail server delivers e-mailHosts: both clients and serversIntroduction 1-13Addressing processes:For a process to receive messages, it must have an identifierEvery host has a unique 32-bit IP addressQ: does the IP address of the host on which the process runs suffice for identifying the process?A: No, many processes can be running on same hostIdentifier includes both the IP address and port numbers associated with the process on the host.“Well-known” port number examples:HTTP server: 80Mail server: 25More on this laterIntroduction 1-14Internet transport protocols servicesTCP service:connection-oriented: setup required between client and server processesreliable transport between sending and receiving processflow control: sender won’t overwhelm receiver congestion control: throttle sender when network overloadedfull duplex: simultaneous 2-way communicationdoes not provide: timing, minimum bandwidth guaranteesUDP service:unreliable data transfer between sending and receiving processdoes not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee Q: Why is there a UDP?Introduction 1-15HTTP overviewHTTP: HyperText Transfer ProtocolWeb’s application layer protocolclient/server modelclient: browser that requests, receives,
View Full Document