E.g., https://www.youtube.com/watch?v=w42EsCDAhB4 So, what are computer networks? TDTS06 1-1 Computer Network? “interconnected collection of autonomous computers connected by a communication technology” What is the Internet? “network of networks” “collection of networks interconnected by routers” “a communication medium used by millions” • Email, chat, Web “surfing”, streaming media Internet Web TDTS06 1-2 The “nuts and bolts” view of the Internet router server workstation mobile local ISP regional ISP company network TDTS06 1-3 The “nuts and bolts” view of the Internet millions of connected computing devices called hosts or end-systems PCs, workstations, servers PDAs, phones, toasters router server workstation mobile local ISP running network apps communication links regional ISP fiber, copper, radio, satellite links have different capacities (bandwidth) routers: forward packets packet: piece of a message (basic unit of transfer) company network TDTS06 1-4 A Classification of Networks Wide Area Network (WAN) Metropolitan Area Network (MAN) Local Area Network (LAN) Wireless LAN (WLAN) Home Networks Personal Area Network (PAN) Body Area Network (BAN) Also … Ad hoc and sensor networks … TDTS06 1-6 What’s a protocol? Protocols: The rules used for communication Proper, accepted, and expected behavior Introduction 1-7 What’s a protocol? network protocols: Machines rather than humans All communication activity in Internet governed by protocols human protocols: “What’s the time?” “I have a question” Introductions Hi TCP connection request Hi TCP connection response Get http://www.awl.com/kurose-ross Got the time? 2:00 <file> time Introduction 1-8 What’s a protocol? messages [actions on events] [actions on events] Need: Introduction 1-9 What’s a protocol? messages [actions on events] [actions on events] Need: … specific msgs sent Introduction 1-10 What’s a protocol? messages [actions on events] [actions on events] Need: … specific msgs sent … specific actions taken when msgs received, or other events Introduction 1-11 What’s a protocol? messages [actions on events] [actions on events] Need: … specific msgs sent … specific actions taken when msgs received, or other events Network protocols: Define the order and format of messages exchanged Defines the actions to take in response to events (e.g., message arrivals, transmissions, losses, and timeouts) Introduction 1-12 Layered Architecture: Why? Networks are complex with many pieces Hosts, routers, links, applications, protocols, hardware, software Can we organize it, somehow? Motivation Continued … Dealing with complex systems: explicit structure allows identification, relationship of complex system’s pieces layered reference model for discussion modularization eases maintenance, updating of system change of implementation of layer’s service transparent to rest of system Layers, Protocols, Interfaces Application Services Application logic protocol Application Services Communication Service Reliable delivery protocol Communication Service Network Services Transfer “bits” protocol Network Services Layer Interface Layer Interface Web client Web server Layers, Protocols, Interfaces Networks organized as a stack of layers Offer services to the layer above it using a well-defined interface Reduces design complexity Protocols: Logical “horizontal” conversations at any layer (between peers) Data Transfer: each layer passes data & control information over the interfaces (between neighboring layers) TDTS06 1-17 Layered Architecture (cont’d) A set of layers & protocols is called a Network Architecture. These specifications enable hardware/software developers to build systems compliant with a particular architecture. E.g., TCP/IP, OSI Internet protocol stack application: supporting network applications FTP, SMTP, HTTP application transport: host-host data transfer TCP, UDP transport network: routing of datagrams from network source to destination IP, routing protocols link: data transfer between neighboring network elements PPP, Ethernet physical: bits “on the wire” link physical Layering: logical communication application transport network link physical application transport network link physical network link physical application transport network link physical application transport network link physical TDTS06 1-20 Layering: logical communication data application transport transport network link physical application transport network link physical ack data network link physical application transport network link physical data application transport transport network link physical TDTS06 1-21 Layering: physical communication data application transport network link physical application transport network link physical network link physical application transport network link physical data application transport network link physical TDTS06 1-22 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below M source destination application transport network link physical application transport network link physical message TDTS06 1-23 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below M Ht M source destination application transport network link physical application transport network link physical message segment TDTS06 1-24 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below M Ht M Hn Ht M source destination application transport network link physical application transport network link physical message segment datagram TDTS06 1-25 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below M Ht M Hn Ht M Hl Hn Ht M source destination application transport network link physical application transport network link physical message segment datagram frame TDTS06 1-26 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below source M Ht M Hn Ht M Hl Hn Ht M application transport network link physical destination application transport network Hl Hn Ht M link physical message segment datagram frame TDTS06 1-27 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below source M Ht M Hn Ht M Hl Hn Ht M application transport network link physical destination application transport Hn Ht M network Hl Hn Ht M link physical message segment datagram frame TDTS06 1-28 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below source M Ht M Hn Ht M Hl Hn Ht M application transport network link physical destination application Ht M transport Hn Ht M network Hl Hn Ht M link physical message segment datagram frame TDTS06 1-29 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below source M Ht M Hn Ht M Hl Hn Ht M application transport network link physical destination application Ht transport Hn Ht network Hl Hn Ht link physical M message M segment M M datagram frame TDTS06 1-30 Encapsulation: Layering and data Each layer takes data from above adds header information to create new data unit passes new data unit to layer below source M Ht M Hn Ht M Hl Hn Ht M destination application transport network link physical router application Ht transport Hn Ht network Hl Hn Ht link physical M message M segment M M datagram frame Layering: physical communication data application transport network link physical application transport network link physical network link physical application transport network link physical data application transport network link physical TDTS06 1-32 the fundamental question: how is data transferred through net? TDTS06 1-34 the fundamental question: how is data transferred through net? circuit-switching: dedicated circuit per call: telephone net packet-switching: data sent thru net in discrete “chunks” TDTS06 1-35 Network Taxonomy Telecommunication networks Circuit-switched networks FDM TDM Packet-switched networks Networks with VCs Datagram Networks Alt. 1: Circuit-Switching End-to-end resources reserved for “call” Link bandwidth, switch capacity Dedicated resources with no sharing Guaranteed transmission capacity Call setup required “Blocking” may occur TDTS06 1-37 Alt. 1: Circuit-Switching Capacity of medium exceeds the capacity required for transmission of a single signal How can we improve “efficiency”? • Let’s multiplex. Divide link bandwidth into “pieces”: frequency division - FDMA time division – TDMA code division - CDMA (cellular networks) wavelength division - WDM (optical) TDTS06 1-38 Circuit-Switching: FDMA and TDMA Example: FDMA 4 users frequency time TDMA frequency time TDTS06 1-39 Alt. 2: Packet-Switching source breaks long messages into smaller “packets” “store-and-forward” transmission packets share network resources each packet briefly uses full link bandwidth resource contention aggregate resource demand can exceed amount available congestion: packets queue, wait for link use analogy: rush hour traffic in cities TDTS06 1-40 Packet-Switching: Statistical Multiplexing 10 Mbs Ethernet A statistical multiplexing C 1.5 Mbs B queue of packets waiting for output link D E Resource sharing great for bursty traffic E.g., Sequence of A & B packets does not have fixed pattern - statistical multiplexing. In contrast: In TDM each host gets same slot in revolving TDM frame. TDTS06 1-41 Mobile networks E.g., 2G, 3G, 4G, ... and what about WiFi? Mobile networks Also mobile networks are going towards IP-based packet switching … [Fig. from 3GPP website] How do loss and delay occur? packets queue in router buffers packet arrival rate to link exceeds output link capacity packets queue, wait for turn if queue is full, arriving packets dropped (Drop-Tail) packet being transmitted (delay) A B packets queueing (delay) free (available) buffers: arriving packets dropped (loss) if no free buffers How do loss and delay occur? packets queue in router buffers packet arrival rate to link exceeds output link capacity packets queue, wait for turn if queue is full, arriving packets dropped (Drop-Tail) Collisions, connectivity, etc. (loss) packet being transmitted (delay) A B packets queueing (delay) free (available) buffers: arriving packets dropped (loss) if no free buffers Connection oriented or not? Connection less: Connection oriented: No handshaking Hand shaking No (significant) state Explicit setup phase for logical connection Connection release afterwards Establishes state information about the connection Mechanisms for reliable data transfer, error control, flow control, etc. Guarantees that data will arrive (eventually) information (at end points or in network) No guarantees of arrival (or when) No mechanisms for flow control etc. Simpler (and faster?) Which is the best? … It depends on (i) what it is used for, and (ii) what it is built ontop of Internet protocol stack application E.g., TCP (CO) UDP (CL) transport E.g., IP (CL) network link physical E.g., Ethernet (CL) ATM (CO) Two notes on the physical layer: • Guided (e.g., coaxial cable, fiber, etc) vs. unguided (satellite, wireless, etc.) • Signaling, modulation, encoding, etc, Wireless, mobility: impact on higher layer protocols logically, impact should be minimal … Best-effort service model remains unchanged TCP and UDP can (and do) run over wireless, mobile … but performance-wise: packet loss/delay due to bit-errors (discarded packets, delays for link-layer retransmissions), handoffs from mobility and transient connectivity TCP interprets loss as congestion, will decrease congestion window un-necessarily delay impairments for real-time traffic limited bandwidth of wireless links Something for next class Question to think/read about ... Which technology is the fastest? 10 Mbps Ethernet 11 Mbps 802.11