Introduction Introduction Click here for subtitle CSE 123A: Computer Networks George C. Polyzos Department of Computer Science and Engineering University of California, San Diego Motivation from Centralized to Distributed Systems Integration of Computers & Communications Definitions Computer Network: an interconnection of autonomous computers Distributed Computer System: transparency is key Course Goals present principles of computer network design discuss trade-offs of various technologies familiarize with Internet (TCP/IP) protocols this is not a course on: operating systems distributed or network OS's distributed systems data communications Why Networks? Economics: Resource Sharing devices processing information Reliability decentralization replication Economic Reality micros vs. mainframes New Communication Modes remote collaboration Network Structure Hosts Communications Subnet interconnection characteristics point-to-point channels broadcast channels LANs (busses, rings), satellite channels transmission lines digital vs. analog transmission switching elements nodes - routers - gateways Switching Methodologies Circuit Switching Store-and-Forward Message Switching Packet Switching Cell Switching (ATM) Types of Traffic bursty, interactive bulk data transfers continuous media: audio, video Network Architectures Structured, Modular, Hierarchical designs Layers: abstractions virtual communication paths shielding from implementation details advantages reduce/control complexity/cost incorporation of different/new technologies disadvantages performance The ISO/OSI Reference Model Principles layer for different level of abstraction layer performs well defined function layer where standard protocols exist layer boundaries minimizing information flow across "reasonable" number of layers Design Issues for Layers connection establishment addressing direction of communication simplex half-duplex duplex error control flow control Physical Layer transmission of raw bits mechanical, electrical, and procedural interfaces Data Link Layer provide "error-free" transmission channel to network layer convert bits to frames frame boundaries error control ARQ duplicates flow control Network Layer controls the operation of the subnet routing static dynamic congestion control accounting (packets, bytes, etc.) Network Layer (cont.) internetworking segmentation addressing sequencing accounting broadcast subnets: thin network layer Transport Layer end-to-end communication path (usually reliable) isolation from "hardware" multiplexing/demultiplexing end-to-end flow control Transport Layer (cont.) types of service error-free, point-to-point, in sequence, flow controlled no correctness guarantees no sequencing establishing/terminating "connections" naming/addressing intra-host addressing (process) Session Layer establish sessions superset of connections dialogue control token management for critical operations synchronization checkpoints/restarts Presentation Layer syntax & semantics of messages data encoding (e.g., ASCII to EBCDIC) compression encryption/decryption authentication Application Layer applications ... file transfer, access & management e-mail virtual terminals Connection Oriented & Connectionless Services analogies connections: telephone system connectionless: postal system reliable services: ACKs file transfers digitized voice virtual circuits datagrams Layer Services Terminology entities software: processes hardware: I/O chips, etc. peer entities, layer N entity Service Access Point (SAP) unique address UNIX: SAP = socket Service Primitives request (for service) indication (of event) response (to an event) confirmation (of availability of service) Critique of the OSI Reference Model the only/obvious/best way? complexity of the model repetition of functions omissions data security network management originally ignored connectionless services (added later) communications vs. computer mentality Request: procedure Indication: interrupt Network Standardization Telephone Companies USA PTTs Standards Organizations by treaty (international) CCITT voluntary ISO - members: natl stds orgs (ANSI, DIN, etc.) de facto standards National Bureau of Standards (USA) IEEE Historical Notes The ARPAnet T's terminology (IMP, TIP, etc.) TCP/IP e-mail (SMTP), ftp, telnet, etc. the Internet "Public" Networks OSI model, X.25, etc. IBM's SNA, DECNET Historical Notes (cont.) LANs Ethernet (Xerox, DEC, Intel) Token Bus (GM) Token Ring (IBM) USENET, CSNET, BITNET, EARN