NetworksCS-4513, D-Term Introduction to Networks CS-4513 Distributed Computing Systems (Slides include materials from Operating System Concepts, 7 th ed., by Silbershatz, Galvin, & Gagne and from Modern Operating Systems, 2 nd ed., by Tanenbaum)
NetworksCS-4513, D-Term Context Networking was formerly regarded as “just another form of I/O” Today, focus is Distributed Computing Shared files and other resources among physically separated systems on networks –NFS, remote printing, etc. Integrated computations across network –Airline reservations, ATMs, etc. Interactive games and multimedia … Note: this topic overlaps with CS-4514
NetworksCS-4513, D-Term Topics Fundamentals Socket interface Protocol Stack Kinds of network connections Kinds of Communication Remote Procedure Call Message-oriented communication Stream-oriented communication Naming Names, addresses, routes
NetworksCS-4513, D-Term Computer A Process k Computer B Process i Computer C Process j The Network
NetworksCS-4513, D-Term Network Goal Allow activities on multiple computer systems to communicate with each other Shared memory, files, or data Message passing Remote Procedure Call Create abstractions that make these (relatively) transparent
NetworksCS-4513, D-Term Principal Abstraction – Socket Originally created in BSD Unix Subsequently, part of most operating systems Allows opening a connection between two processes across network Connection: –a serial conversation between two end points e.g., processes, threads, tasks on different machines –organized as a sequence of messages or datagrams –distinct from all other connections
NetworksCS-4513, D-Term Computer A Process i Process a Computer B Process k Process b Computer C Process j Process c The Network
NetworksCS-4513, D-Term Definition — Protocol Formal set of rules that govern the formats, contents, and meanings of messages from computer to computer, process to process, etc. Must be agreed to by all parties to a communication May be defined in terms of other protocols
NetworksCS-4513, D-Term There are many, many protocols TCP, UDP, IP, NCP, SMTP, SNNP, NNTP, FTP, TFTP, POP, IMAP, HTTP, VMRL, … Appletalk, Netware, … Remote Procedure Call, NFS, … CORBA, GLOBE, JINI, … Network Streaming, … … How to make sense out of all of them?
NetworksCS-4513, D-Term Network Stack 1983 – Open System Interconnection (OSI) 7 layer Reference Model –Working group of the International Standards Organization (ISO) –Defines seven layers Describe how applications communicate with each other –Via network-aware devices –Most day-to-day protocols work on a slightly modified layer system E.g. TCP/ IP uses a 6-rather than a 7-layer model
NetworksCS-4513, D-Term OSI 7-layer model Primarily a software and protocol architecture Layers of model correspond to layers of abstraction Each layer has a well-defined function Layers chosen so that … –international standards can be defined Boundaries between layers chosen to … –minimize information flow across interfaces Number of layers:– –Large enough Distinct functions need not be thrown together –Small enough Architecture does not become unwieldy
NetworksCS-4513, D-Term The OSI 7-layer model (in a nutshell) Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer Silbershatz, §§
NetworksCS-4513, D-Term Annotated OSI 7-Layer Stack Silbershatz, page 630
NetworksCS-4513, D-Term The OSI 7-layer model (continued) Layer 1 – Physical Layer –Defines the physical and electrical characteristics of the network. Transmitting of raw bits over the communication channel Layer 2 – Data Link Layer –Take the raw transmission facility and transform it into an abstract link that appears free of errors to layer 3. Error correcting coding (e.g. FEC) Rate Control (Slow device not overrun by high speed device) Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer
NetworksCS-4513, D-Term The OSI 7-layer model (continued) Layer 3 – Network Layer –Controlling the operation of the subnet –How packets are routed –Congestion Control –Accounting function (billing) Network Statistics –Example - IP layer (IPv4, IPv6) Differences between v4, v6 source/destination addressing –V4 – 32 bit addressing –V6 – 128 bit addressing Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer
NetworksCS-4513, D-Term The OSI 7-layer model (continued) Layer 4 – Transport Layer –Accept data from higher layers Split it up into smaller units if need be Passes these to the network layer Ensures that the packets all arrive correctly at the destination in the right order Isolates higher layers from changes in the underlying hardware –Type of service to provide Reliable or unreliable delivery –True end-to-end layer –Example:– TCP or UDP Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer
NetworksCS-4513, D-Term The OSI 7-layer model (continued) Layer 5 - Session Layer –Allows users on different machines to establish sessions between them –Example SSL, RPC Layer 6 – Presentation Layer –Performs certain functions that are requested sufficiently often to warrant finding a general solution for them rather than letting each user solve the problem –Example – encoding data Layer 7 – Application Layer –User layer protocol, multiple protocols required –Example – http, ftp, smtp Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer
NetworksCS-4513, D-Term Example of OSI Model Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer Sending Process Physical Layer Data Link Layer Network Layer Transport Layer Session Layer Presentation Layer Application Layer Receiving Process Bits DHDataDT NHData THData SHData PHData AHData
NetworksCS-4513, D-Term The TCP/IP Protocol Layers TCP/IP
NetworksCS-4513, D-Term Some Terms Packet: –A unit of communication at Data Link layer –aka datagram IP Address: –A four-part “number” used by Network Layer to route a packet from one computer to another Port: –A 16-bit number used within one computer to identify who/where to send packet to Well-known port: –A port with number < 1024, used by agreement for standard services (telnet, ftp, smtp, pop, etc.)
NetworksCS-4513, D-Term More Terms Socket: –End point of a communication –Usually used in pairs, one for each direction –Comprises [IP Address: Port #] Connection: –A logical linkage between pairs of sockets at two endpoints for purposes of a particular communication between those endpoints
NetworksCS-4513, D-Term Establishing a Connection Process a on machine m creates a socket OS assigns a new port number q to that socket Process a attempts to open a connection to machine n:p p is a well-known port Process b on machine n is listening on p Receives request from m:q Process b forks a process or spawns a thread c to talk with m:q, then resumes listening on p Thread/process c Creates a new socket r for this connection Replies to m:q with return address n:r a and c continue to communicate over this pair of sockets until they are finished.
NetworksCS-4513, D-Term Reliable Connections Transport layer partitions messages into packets TCP – Transmission Control Protocol Sequence number of current packet Sequence number of last packet received correctly Receiver keeps track of seq. # of packets Reassembles in right order Notify sender of missing, broken packets Sender keeps copy of each packet until receipt acknowledged Retransmits packets if no acknowledgement
NetworksCS-4513, D-Term Connection-less communication UDP – User Datagram Protocol –Used when a certain number of errors can be tolerated and also –Where recovery from those errors is easy Example in future topic – NFS, the Network File System
NetworksCS-4513, D-Term Summary Socket, connection Network stack, 7-layer model Establishing a connection Reliable transmission Reading assignment –Silbershatz Chapter 16