4211 MIDTERM 1
Issues with Sharing [1]
(Purpose of Networking) 1. Communication/protocol 2. Naming/addressing 3. Resource allocation/Multiplexing 4. Resource Conflict Resolution 4a. Media access control 4b. Congestion control 4c. Flow control
Client-Server Model [1] [2]
APPLICATION ARCHITECTURE Client host requests, receives serve from always-on server (e.g. web, email) - Most applications modeled as client-servers - Server: A host (end system) that serves requests from another host (client) ------Always on daemon that waits for requests ------Everybody can find it (known name/port) ------Powerful enough to handle multiple requests quickly ------When a request arrives it 1. handles the request 2. performs some service ------Returns result to requesting client ------Waiting for new requests and handling existing request might happen concurrently ------Server farms for scaling - Client: A host (end system) that sends requests to servers ------May be intermittently connected ------May have dynamic IP addresses ------Do not communicate directly with each other ------Sends a server a request and waits for response
Hybrid of C/S and P2P [2]
SKYPE - Finding address of remote party: centralized server(s) - Client-client connection is direct (not through server) INSTANT MESSAGING - Chatting between two users is P2P - Presence detection/location centralized ------User registers its IP address with central server when it comes online ------User contacts central server to find IP addresses of buddies
Circuit Switching [1]
In circuit-switched networks, the resources needed along a path (buffers, link transmission rate) to provide for communication between the end systems are reserved for the duration of the communication session between the end systems
FTP [2]
KILLER APP OF 90s - Transfer file to/from remote host - Client/Server model - Out of band control - FTP server: port 21
Access Networks [1]
The network that physically connects an end system to the first router (also known as the "edge router") on a path from the end system to any other distant end system
BitTorrent [2]
Tracker: tracks peers participating in torrent (DHT) Torrent: group of peers exchanging chunks of a file (tit-for-tat)
Connection-oriented Services [1]
Unlike its opposite, connectionless service, connection-oriented service requires that a session connection be established between the sender and receiver (like a phone call)
HTTP connections [2]
Nonpersistent HTTP - At most one object is sent over a TCP connection - HTTP/1.0 uses nonpersistent HTTP Persistent HTTP - Multiple objects can be sent over single TCp connection between client and server - HTTP/1.1 uses persistent connetions in default mode
WEB and HTTP [2]
- Driving force of Internet explosion - Web page consists of objects ------HTML file, JPEG image, Java applet, audio, etc. - Web page consists of base HTML-file which includes several referenced objects - Each object is addressable by a URL (uniform resource locator) ------host-name/path-name HTTP: Hypertext Transfer Protocol - Web's application layer protocol - Client/server model - Two types of HTTP messages 1. Request: ASCII ------Request Line ------Header lines ------Carriage return 2. Response ------Status line (protocol status code status phrase) ------Header lines ------Data - Is stateless: server maintains no information about past clients
Methods to Speed Up Experience [2]
- Fast DNS caching ------Less number of unique host names within a page - Smaller webpage ------Use compressed file format - Load balance: web farm & data center ------Front end operation ------Ensure the request from same user is redirected to the same server ------Inspect IP, TCP, and HTTP header - Page Caching ------Local cache: expires header (set conservatively) and conditional get (reduce data transmitted) ------Web proxy cache: satisfy client request without involving origin server ------Content distribution network
Commonality of Internet Applications [2]
- Interact with end users - Running at network edge - Client/Server communication - Use either TCP or UDP - App protocol do not care about ------how end hosts are located ------how messages are routed ------how messages are reliably transmitted
Packet Switching: Statistical Multiplexing [1]
- Sequence of A & B packets does not have a fixed pattern, shared on demand - TDM: each host gets some slot in revolving TDM frame
Packet Switching: Store and Forward [1]
- Takes L/R seconds to transmit (push out) packets of L bits on to link or R bps - Entire packet must arrive at router before it can be transmitted on next link - Delay = 3L/R assuming zero propagation delay E.G. If L = 7.5 Mbits and R = 1.5 Mbps the delay is 15 seconds
Internet Protocol Stack [1]
1. Application: support network applications (FTP, SMTP, HTTP) 2. Transport: process-process data transfer (TCP, UDP) 3. Network: routing of datagrams from source to destination (IP, routing protocols) 4. Link: Data transfer between neighboring network elements (PPP, Ethernet) 5. Physical: Bits "on the wire"
Future Internet Requirements [1]
1. Be worthy of our society's trust 2. Provide a bridge between physical and virtual worlds 3. Support pervasive, wireless, and mobile computing 4. Enable further innovations in S&E research 5. Create a social world in which we would want to live
The Network Edge [1]
1. End Systems (Hosts): Run application programs (e.g. Web/Email) and are at the "edge of the network" 2. Client/Server model (e.g. Web browser/server) 3. Peer-Peer model: Minimal (or no) use of dedicated servers (e.g. Skype, BitTorrent)
How two computers communication? [2]
1. Find out the machine - IP address (32 bits, 128 bits) with dot notation ------Used to identify machines (network interfaces) ------Each IP address is 32-bit, IPv6 are 128-bit ------Represented as x1.x2.x3.x4 ------Each IP packet contains a destination IP address - Hostnames ------www.home.com ------Machines are good at remembering numbers while humans are good with names - DNS ------IP routing uses IP addresses, need a way to convert hostnames to IP addresses ------DNS is a distributed mapping service that maintains a table of name-to-address mapping ------Used by most applications (e.g. web, email) ------Advantages are easier for programmers and users and can change mapping if needed - Routing ------Internet consists of number of routers ------Each router forwards packets onto the next hop ------Goal is to move the packet closer to its destination ------Each router has a table, matches packet address to determine next hop - Interprocess Communication ------Within a single system (pipes, FIFOs, message queues, semaphores, shared memory) ------Access different systems (BSD sockets, Transport layer interface) 2. Find out the process - IP addresses and hostnames allow you to identify machines, but need to find what processes on these machines - Ports ------Identifies for remote processes ------Each application communicates using a port ------Communication is addressed to a port on a machine ------Delivers the packet to the process using the port ------Both TCP and UDP have their own port numbers ------Many applications use well-known port numbers (HTTP: 80, FTP: 21) - Sender shall include both IP address and port numbers associated with a process on host 3. What kind of service you need - Data Loss ------Some apps (audio) can tolerate some loss ------Other apps (file transfer, telnet) require 100% reliable data transfer - Timing ------Some apps (Internet, telephony, games) require low delay to be "effective" - Bandwidth ------Some apps (multimedia) require minimum amount of bandwidth to be "effective" ------Other apps (elastic apps) make use of wahtever bandwidth they get
Fundamental Issues in Networking [1]
1. Naming/Addressing - Address: byte-string that identifies a node ------Unicast: node-specific ------Broadcast: all nodes in the network ------Multicast: some subset of nodes in the network 2. Routing/Forwarding: process of determinign how to send packets towards the destination based on its address 3. What can go wrong? - Bit-level errors due to electrical interfaces - Packet-level errors such as packet loss due to buffer overflow/congestion - Out of order delivery where packets may take different paths - Link/node failures where cable is cut or system crash 4. What can be done? - Add redundancy to detect and correct erroneous packets - Acknowledge recieved packets and retransmit lost packets - Assign sequence numbers and reorder packets at the receiver - Sense link/node failures and route around failed links/nodes
Network Structure [1]
1. Network Edge: Application & hosts using connection and connection-less services 2. Network Core: Routers, network of networks 3. Access Networks, Physical Media: Communication links
Encapsulation [1]
A method of designing modular communication protocols in which logically separate functions in the network are abstracted from their underlying structures by inclusion of information hiding within higher level objects - Method used for layers to add header information to packets from the layer above - Protocol data units (PDUs): packets exchanged between peer entities - Service data units (SDUs): packets handed to a layer by an upper layer - Data at one layer is encapsulated in packet at a lower level - Envelope within envelope: PDU = SDU + (optional) header or trailer
Internet [1]
A network of networks that interconnects hundred of millions of computing devices throughout the world "Nuts and Bolts" - Millions of connected computing devices (hosts and end systems) - Running network applications - Communication links can be fiber, copper, radio satellite - Communication links transmission rate = bandwidth - Routers: Forward packets (chunks of data) - Protocols: Control sending, receiving of msgs (TCP, IP, HTTP< FTP, PPP)
Network Core: Circuit Switching vs. Packet Switching [1]
CIRCUIT SWITCHING - End-end resources reserved for "call" - Link bandwidth, switch capacity - Dedicated resources: no sharing - Circuit-like guaranteed performance - Call setup required - Analogy: Railroad & train - Network resources (e.g. bandwidth) divided into "pieces" ------1. Frequency Division ------2. Time Division - Pieces allocated to calls - Resource piece idle if not used by owning call (no sharing) PACKET SWITCHING -Each end-end data stream divided into packets - User A, B packets share network resources - Each packet uses full link bandwidth - Resources used as needed - Resource contention ------Aggregated resource demand can exceed amount available ------Congestion: packets queue, wait for link use ------Store & forward: packets move one hop at a time (node receives complete packet before forwarding) - Analogy: highway and cards - Multiplexing - Four Sources of Delay - Allows more users to use network - Great for bursty data, resource sharing - Simpler, no call setup - Excessive congestion: packet delay and loss - Protocols needed for reliable data transfer, congestion control
Network Edge: Connection-Oriented Service vs Connectionless Service [1] TCP vs UDP [2]
CONNECTION-ORIENTED Goal: Data transfer between end systems Handshaking: setup/prepare for data transfer ahead of time TCP (Transmission Control Protocol): Internet's connection-oriented service - Reliable, in-order byte stream data transfer - Loss: acknowledgments and re-transmission - Flow control: sender won't overwhelm receiver - Congestion control: senders "slow down" sending rate" when network is congested - Apps: HTTP (Web), FTP (File transfer), Telnet (Remote login), SMTP (Email) - Does not provide: timing, minimum bandwidth guarantees CONNECTIONLESS Goal: Data transfer between end systems (same as connection) UDP (User Datagram Protocol) - Connectionless - Unreliable data transfer - No flow control - No congestion control - Apps: Streaming media, Teleconferencing, DNS, Internet telephony
Network [1]
Can be recursively defined as two or more nodes connected by a link, or, two or more networks connected by two or more nodes
Protocol [1]
Defines the format/order of messages exchanged between two or more communicating entities, as well as the actions taken on the transmission and/or receipt of a message or other event - All communication activity in Internet governed by protocols
Application Layer Protocol [2]
Defines... 1. Types of messages exchanged ------Request, response ------Message syntax ------Message semantics 2. Order for message exchange 3. How process respond to messages Public domain protocols - Defined in RFCs - Allow for interoperability e.g. HTTP, SMTP Propriety protocols e.g. KaZaA
DNS [2]
Domain Name Service - Name: identifies what you want - Addresses: identifies where it is - Routes: identifies a way to get there IP ADDRESSES two-level hierarchy: network id + host id - No two hosts should have the same IP address - Host's IP address may change (e.g. dial-in hosts) - A host may have multiple IP addresses - IP address identifies host interface SERVICES - Hostname to IP address translation - Host aliasing - Mail server aliasing - Load distribution: replicated web servers, set of IP addresses for one canonical name - Many to many mapping DNS - Originally all hosts were in a file HOSTS.TXT maintained by Network Information Center - Hosts periodically used a file transfer protocol to download new version Why not centralize? - Single point of failure - Traffic volume - Distant/delay - Maintenance/management issue - Doesn't scale
Cookies [2]
Four Components - Cookie header line of HTTP response message - Cookie header line in HTTP request message - Cookie file kept on user's host, managed by user's browser - Back-end database at web site What Cookies Bring - Authorization - Shopping Carts - Recommendations - User session state (web e-mail) - Cookies permit sites to learn a lot about you How to keep "state" - Protocol endpoints: maintain state at sender/receiver over multiple transactions - Cookies: HTTP messages carry state
Packet Switching: Sources of Delay [1]
Four Sources 1. Nodal Processing - Check bit errors - Determine output link 2. Queueing - Time waiting at output link for transmission - Depends on congestion level of router - Queue (aka buffer) preceding link in buffer has finite capacity - When packet arrives in full queue, packet is dropped (lost) - Lost packet may be re-transmitted by previous node, by source end system, or not at all 3. Transmission Delay - R = link bandwidth (bps) - L = packet length (bits) - Time to send bits into link = L/R 4. Propagation Delay - d = length of physical link - s = propagation speed in medium (~2x10^8 m/sec) - Propagation delay = d/s * s and R are very different quantities dnodal = dproc + dqueue + dtrans + dprop dproc (processing delay): typically a few microsecs or less dqueue (queuing delay): depends on congestion dtrans (transmission delay): L/R significant for low-speed links dprop (propagation delay): a few microsecs to hundreds of msecs
The Network Core [1]
Mesh of interconnected routers shared by many users Switching: How to deliver information from point A to B 1. Packet 2. Multiplexing Multiplexing: How to share resources among many users
Peer-to-Peer [1] [2]
Minimal (or no) use of dedicated servers (e.g. Skype/BitTorrent, Instant Messaging) - Arbitrary end systems directly communicate - Peers are intermittently connected and change IP addresses - Highly scalable but difficult to manage - All peers are servers = highly scalable ------peer is both web client and a transient web server Centralized directory - When peers connects it informs central server IP address and content - File transfer is decentralized but locating content is highly centralized ------Single point of failure ------Performance bottleneck ------Legal issues Query flooding: Gnutella - Fully distrbuted: no central server - Overlay network: graph - Edge between peer X and Y if there's a TCP connection - All active peers and edges is overlay net - Edge is not a physical link - Given peer will typically be connected with < 10 overlay neighbors - Scalability: limited scope flooding KaZaA: exploiting heterogeneity - Each peer is either a group leader or assigned to a group leader - TCP connection between peer and its group leader - TCP connections between some pairs of group leaders - Group leader tracks the content in all its children
HTTP: Response Time [2]
RTT: time to send a small packet to travel from client to server and back Non-persistent - One RTT to initiate TCP connection - One RTT for HTTP request and first few bytes of HTTP response to return - File transmission time total = 2RTT + transmit time Persistent - Server leaves connection open after sending response - subsequent HTTP messages between same client/server sent over open connection ------WITHOUT PIPELINING ------Client issues new request only when previous response has been received ------One RTT for each referenced object ------WITH PIPELINING ------Default in HTTP/1.1 ------Client sends requests as soon as it encounters a referenced object ------As little as one RTT for all the referenced objects
Logical Communication [3]
Refers to the fact that from the application's perspective, the host running the applications are directly connected, but in reality the hosts might be on opposite sides of the planet, connected via numerous routers and a wide range of link types
Multimedia Application Types [2]
Streaming, stored: audio, video Conversational: voice/video over IP Streamng live: audio, video Continuous playout constraint: once client playout begins, playback must match original timing - but network delays are variable (jitter) so will need client-side buffer to match playout requirements Other challenges: - Client interactivity: pause, fast-foward, jump - Video packets may be lost, retransmitted Voice-over-IP (VoIP) End-end delay requirement: needed to maintain conversational aspect - Higher delays noticeable, impair interactivity - Includes application-level (packetization, playout) network delays - Session initialization: how does callee advertise IP address, port number, encoding elgorithms?
Connectionless Service [1]
The communication between two nodes or terminals in which data is sent from one node to the other without first ensuring that the destination is available and ready to receive data
Multiplexing and Demultiplexing [3]
The job of gathering data chunks at the source host from different sockets, encapsulating each data chunk with header information to create segments, and passing the the segments to the network layer is called multiplexing. The job of delivering the data in a transport-layer segment to the correct socket is called demultiplexing
Layering [1]
The way of organizing protocols (and corresponding network hardware and software) Each layer provides its service by performing certain actions within that layer and by using the services of the layer directly below it - In a layered network architecture the services are grouped in a hierarchy of layers - An entity of layer N uses only services of layer N - 1 - An entity of layer N provides services only to layer N + 1 - Layering simplifies the architecture of complex system - Interfaces define the services offered - Service required from a lower layer is independent of it's implementation BENEFITS - Communication takes place at multiple levels - Each level has its own implementation details - Separate concern/divide and conquer - Modularization eases maintenance, updating of system - Change of implementation of layer's service transparent to rest of system - Hide complexity of lower levels - Explicit structure allows identification, relationship of complex system's pieces DRAWBACKS - Which layer should implement what functionality? - Duplication of functionality between layers (e.g. error recovery at both link and transport) - Less optimized solution due to information hiding across layers
EMAIL [2]
Three Major Components 1. User agents 2. Mail servers - Mailbox: contains incoming messages for user - Message queue: of outgoing (to be sent) mail messages 3. Simple Mail Transfer Protocol: SMTP - Between mail servers to send email messages - Uses TCP to reliably transfer email messages from client to server, port 25 - Direct transfer: sending server to receiving server - Three phases ------handshaking ------transfer of messages ------closure - Command/response interaction ------commands: ASCII text (7-bit) ------response: status code and phrase Access Protocols - POP3 ------Authorization (agent <-> server) and download ------Cannot reread email if he changes client ------Stateless across sessions - IMAP: Internet Mail access Protocol ------More features ------Manipulation of stored messages on server ------Keeps on messages in one place - the server ------Allows users to organize messages in folders ------Keeps state across sessions - HTTP ------Gmail, hotmail, yahoo
Internet Structure [1]
Tier-1: Global commerical ISP connected via IXP (internet exchange point) e.g. Sprint, AT&T Tier-2: Regional networks Tier-3: Access Networks *Additionally there are content provider networks (e.g. Google) that are private networks that connects it data centers to the Internet often bypassing tier-1
Packet Switching [1]
To send a message from a source end system to a destination end system, the source breaks long messages into smaller chunks of data known as packets. In packet-switched networks, these resources are not reserved: a session's messages use the resources on demand, and as a consequence may have to wait (that is, queue) for access to a communication link