* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ppt
Survey
Document related concepts
Dynamic Host Configuration Protocol wikipedia , lookup
Airborne Networking wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Distributed firewall wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Computer network wikipedia , lookup
Deep packet inspection wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
TCP congestion control wikipedia , lookup
UniPro protocol stack wikipedia , lookup
Internet protocol suite wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Transcript
CMPE 151: Network Administration Lecture 2 Spring 2004 Review? Computers Operating Systems Kernels Distributed Systems Spring 2004 What is an OS? Machine/resource manager. Application programs Compilers, Editors, etc. Operating System Instruction Set Architecture Microarchitecture Physical Devices Spring 2004 Hardware OS as extended machine… Top-down view. Layer of software that hides hardware. Provides programmer easier instructions. E.g., read block from file. (Part of) the OS runs in supervisor (privileged) mode: can execute priviledged instructions (e.g., access to physical decices through drivers). Spring 2004 OS as resource manager Bottom-up view. Provides orderly and controlled allocation of resources. Provides (“concurrent”) programs (fair) access to resources (processor, disk, printer). Time (e.g., CPU) and space (e.g., memory) multiplexing. Spring 2004 OS History Spring 2004 First generation: 1945-1955 Vacuum tubes: machines took whole rooms! Machine language programming (plugboard wiring). No OS. Spring 2004 Second generation: 1955-1965 Transistors made computers commercially viable. Builders, operators, users. Mainframes: multimillion dollar machines. Punch cards, input and output tapes. Batch systems. Spring 2004 Third generation: 1965-1980 ICs. Multiprogramming. Machine shared by “concurrent” programs. Memory partitions hold multiple jobs. Timesharing. Multiprogramming still batch processing: scientific computation and commercial data processing. Cheap terminals: interactive use. Interactive service + batch processing. Spring 2004 Fourth generation: 1980-… High-scale circuit integration. Computer miniaturization. Mainframes -> minicomputers -> microcomputers or PCs. PC OSs: CP/M, DOS, MS-DOS. GUI-based OSs: UNIX-based, MS Windows-based, MAC OS, … Spring 2004 Modern OSs Mainframe OSs: IBM’s OS/390, DEC’s VMS. Server OSs: Solaris, FreeBSD, etc. PC OS: Linux, MacOS, Windows… Real-time OSs: VxWorks. Embedded OSs: Linux, PalmOS, Windows CE Smart card OSs Spring 2004 Basic OS Concepts Spring 2004 Processes Process: program in execution. Address space: memory usable by program (text, data, stack). State: registers. OS uses process table to keep track of processes. Processes can create other (child) processes. Spring 2004 Inter-Process Communication (IPC) Shared memory. Processes communicate/synchronize through a shared data item. Message passing. Processes communicate via messages. Spring 2004 Shared Memory Processes must access shared data in a mutual exclusive way. Primitives: Semaphores: Dijkstra(1965) P(S) and V(S) operations. Atomic (indivisible) operations. (Conditional) Critical Regions Monitors Spring 2004 Message Passing Processes communicate/synchronize by sending/receiving messages. Primitives: Send(message), receive(message). Issues: Synchronous versus asynchronous. Reliable versus unreliable. Spring 2004 Distributed Shared Memory Sharing data among computers that don’t share physical memory. DSM provides shared memory abstraction. Read- and write-like primitives. Needs message passing to convey updates among physically disjoint processing elements. Spring 2004 Deadlocks Shared data/resource may lead to deadlock: processes get “stuck”. Example: v is using r1 and requests r2; w is using r2 and requests r1. v w Spring 2004 Memory Management Share memory among several processes. Monoprogramming: memory sharing between OS and program (embedded OSs). Multiprogramming: multiple processes (partially or totally) in memory. Swapping. Virtual memory: paging. Spring 2004 I/O OS I/O subsystem manages I/O devices. File system: File as an abstraction. Basic operations: create, delete, read, write. Hierarchical file systems. Device-dependent (device drivers) or independent. Dynamically attach tree branches (e.g., mount system call in UNIX). Access control: permissions. Spring 2004 System Calls Interface between OS and user program: set of system calls. Like making a special procedure call. E.g., access a file, create a process, etc. System calls executed by kernel. Calling program pushes parameters onto stack; calls library; library routine (same name as system call) executes TRAP, switching to kernel mode; OS handles call; returns control to library; library returns to user program. Example system calls for file system open, close, read, write, mkdir, Spring 2004 rmdir. System Calls System call to access physical resources User-level process Kernel Physical machine System call: implemented by hardware interrupt (trap) which puts processor in supervisor mode and kernel address space; executes kernel-supplied handler routine (device driver) executing with interrupts disabled. Spring 2004 Kernels Executes in supervisor mode. Privilege to access machine’s physical resources. User-level process: executes in “user” mode. Restricted access to resources. Address space boundary restrictions. Spring 2004 Kernel Functions Memory management. Process management. Address space allocation. Memory protection. Process creation, deletion. Scheduling. Resource management. Device drivers/handlers. Spring 2004 Kernel and Distributed Systems Inter-process communication: RPC, MP, DSM. Distributed (Networked) File systems. Some parts may run as user-level and some as kernel processes. Spring 2004 What next? Brief overview: IP TCP DNS FTP HTTP NFS… Spring 2004 What are protocols? Set of rules governing communication between network elements (applications, hosts, routers). Protocols define: Format and order of messages. Actions taken on receipt of a message. Protocols are hard to design We need design guidelines! Spring 2004 Protocol stack User A Teleconferencing User B Peers Application Transport Network Link Host Host Layering: technique to simplify complex systems Spring 2004 Layering Characteristics Each layer relies on services from layer below and exports services to layer above. Interface defines interaction, Hides implementation - layers can change without disturbing other layers (black box). Spring 2004 Encapsulation Spring 2004 OSI Model: 7 Protocol Layers Physical: how to transmit bits Data link: how to transmit frames Network: how to route packets hop2hop Transport: how to send packets end2end Session: how to tie flows together Presentation: byte ordering, security Application: everything else! Spring 2004 Layering Functionality Reliability Flow control Fragmentation Multiplexing Connection setup (handshaking) Addressing/naming (locating peers) Spring 2004 Example: Transport layer First end-to-end layer. End-to-end state. May provide reliability, flow and congestion control. Spring 2004 Example: Network Layer Point-to-point communication. Network and host addressing. Routing. Spring 2004 Internetworking Spring 2004 Internetworking Interconnection of 2 or more networks forming an internetwork, or internet. LANs, MANs, and WANs. Different networks mean different protocols. TCP/IP, IBM’s SNA, DEC’s DECnet, ATM, Novell and AppleTalk. Spring 2004 Internetworks (cont’d) Spring 2004 TCP/IP • TCP/IP is the most widely used internetworking protocol suite – Initially funded through ARPA. – Picked up by NSF. – Used in the Internet. • Other internetworking protocols exist but are less used – Example: AppleTalk, X.25, etc. Spring 2004 IP Spring 2004 The Internet Protocol: IP Glues Internet together. Common network-layer protocol spoken by all Internet participating networks. Best effort datagram service: No reliability guarantees. No ordering guarantees. Spring 2004 IP (cont’d) • IP is responsible for datagram routing. • Important: each datagram is routed independently! – Two different datagrams from same source to same destination can take different routes! – Why? – Implications? Spring 2004 IP (cont’d) • IP provides a best effort delivery mechanism – Does not guarantee to prevent duplicate datagrams, delayed and out-of-order delivery, corruption of data or datagram loss • Reliable delivery is provided by the transport layer, not the network layer (IP) • Network layer (IP) can detect and report errors without actually fixing them Spring 2004 The Internet Protocol Host Host Application Transport IP Router Router IP IP Network IP Network Spring 2004 Datagrams Transport layer breaks data streams into datagrams which are transmitted over Internet, possibly being fragmented. When all datagram fragments arrive at destination, reassembled by network layer and delivered to transport layer at destination host. Spring 2004 IP Datagram Format IP datagram consists of header and data (or payload). Header: 20-byte fixed (mandatory) part. Variable length optional part. Spring 2004 IP Versions IPv4: IP version 4. Current, predominant version. 32-bit long addresses. IPv6: IP version 6. Evolution of IPv4. Longer addresses (16-byte long). Spring 2004 Payload Header IP(v4) Header Format Spring 2004 Encapsulation • Each datagram is encapsulated within a data link layer frame – The whole datagram is placed in the data area of the frame. – The data link layer addresses for source and destination included in the frame header. Spring 2004 Encapsulation - Example Spring 2004 Encapsulation Across Multiple Hops • Each router in the path from source to destination: – Decapsulates datagram from incoming frame. – Forwards datagram - determines next hop. – Encapsulate datagram in outgoing frame. Spring 2004 Encapsulation Across Multiple Hops - Example Spring 2004 Maximum Transfer Unit • Each data link layer technology specifies the maximum size of a frame. – Called the Maximum Transfer Unit (MTU). • Ethernet: 1,500 bytes. • Token Ring: 2048 or 4096 bytes. • What happens when large packet wants to travel through network with smaller MTU? • Maximum payloads (data portion of datagram) range from 48 bytes (ATM cells) to 64Kbytes (IP packets). Spring 2004 Fragmentation • Another solution (used by IP): fragmentation. • Gateways break packets into fragments to fit the network’s MTU; each sent as separate datagram. • Gateway on the other side have to reassemble fragments into original datagram. Spring 2004 Keeping Track of Fragments Fragments must be numbered so that original data stream can be reconstructed. Define elementary fragment size that can pass through every network. When packet fragmented, all pieces equal to elementary fragment size, except last one (may be smaller). Datagram may contain several fragments. Spring 2004 Fragmentation - Example Spring 2004 Addressing Spring 2004 Universal Addressing • One key aspect of internetworks is unique addresses. • Sending host puts destination internetworking address in the packet. • Destination addresses can be interpreted by any intermediate router/gateway. • Router/gateway examines address and forwards packet on to the destination. Spring 2004 IP Addresses • Each machine on the Internet has a unique IP address. • The IP address is different from the “physical” /“MAC” address. – The “physical address” is the address of a computer (actually, of a NIC) in the LAN. • It is only know within the LAN. – The IP address is a universal address. – When a packet arrives in a LAN, there needs to be a conversion from IP to MAC address (local “address resolution”). Spring 2004 IP Addresses (cont’d) • An IP address is represented by a binary number with 32 bits (in IPv4). – Meaning that there are around 4 billion addresses. – Often IP addresses are represented in “dotted decimal”, such as 128.114.144.4. • Each group of numbers can go from 0 to 255. Spring 2004 IP Address Organization • Each IP address is divided into a prefix and a suffix – Prefix identifies network to which computers are attached. – Suffix identifies computers within that network. Spring 2004 Network and Host Numbers • Every network in a TCP/IP internet is assigned a unique network number. • Each host on a specific network is assigned a host address that is unique within that network. • Host’s IP address is the combination of the network number (prefix) and host address (suffix). • Assignment of network numbers must be coordinated globally; assignment of host addresses can be managed locally. Spring 2004 IP Address Format • IP address are 32 bits long. • There are different classes of addresses, corresponding to different subdivisions of the 32 bits into prefix and suffix. – Some address classes have large prefix, small suffix. • Many such networks, few hosts per network. – Other address classes have small prefix, large suffix. • Few such networks, many hosts per network. Spring 2004 IP Address Format (cont’d) • How can we recognize to which class an IP address belongs to? – Look at the first 4 bits! Spring 2004 IP Address Format (cont’d) • Class A, B and C are primary classes. – Used for ordinary addressing. • Class D is used for multicast, which is a limited form of broadcast. – Internet hosts join a multicast group. – Packets are delivered to all members of the group. – Routers manage delivery of single packets from source to all members of multicast group. • Class E is reserved. Spring 2004 IP Addresses (cont’d) • Another way to determine the address class is by looking at the first group of numbers in the dotted decimal notation Spring 2004 Networks and Hosts in Each Class Spring 2004 Understanding IP Addresses • Examples: – 10.0.0.37 (class A) – 128.10.0.1 (class B) – 192.5.48.3 (class C) Spring 2004 IP addresses: how to get one? • ICANN (Internet Corporation for Assigned Names and Numbers) coordinate IP address assignment. • How does host get its IP address in the network? 2 possibilities: – 1: Hard-coded by system administrator in a file inside the host. – 2: DHCP: “Dynamic Host Configuration Protocol” • Dynamically get address: “plug-and-play”. Spring 2004 DHCP • DHCP allows a computer to join a new network and automatically obtain an IP address The network administrator establishes a pool of addresses for DHCP to assign. • When a computer boots, it broadcasts a DHCP request to which a server sends a DHCP reply. Spring 2004 DHCP (Cont’d) • DHCP allows non-mobile computers that run server software to be assigned a permanent address (won’t change when the computer reboots). – The permanent address actually needs to be re-negotiated after a certain period of time. Spring 2004 The Internet Transport Protocols: TCP and UDP UDP: user datagram protocol (RFC 768). Connection-less protocol. TCP: transmission control protocol (RFCs 793, 1122, 1323). Connection-oriented protocol. Spring 2004 UDP Provides connection-less, unreliable service. Low overhead. No delivery guarantees. No ordering guarantees. No duplicate detection. No connection establishment/teardown. Suitable for short-lived connections. Example: client-server applications. Spring 2004 TCP Reliable end-to-end communication. TCP transport entity: Runs on machine that supports TCP. Interfaces to the IP layer. Manages TCP streams. Accepts user data, breaks it down and sends it as separate IP datagrams. At receiver, reconstructs original byte stream from IP datagrams. Spring 2004 TCP Reliability Reliable delivery. ACKs. Timeouts and retransmissions. Ordered delivery. Spring 2004 TCP Service Model 1 Obtained by creating TCP end points. Example: UNIX sockets. Socket number or address: IP address + 16-bit port number (TSAP). Multiple connections can terminate at same socket. Connections identified by socket ids at both ends. Port numbers below 1024: well-known ports reserved for standard services. List of well-known ports in RFC 1700. Spring 2004 TCP Service Model 2 TCP connections are full-duplex and point-to-point. Byte stream (not message stream). A Message boundaries are not preserved e2e. B C 4 512-byte segments sent as separate IP datagrams D ABCD 2048 bytes of data delivered to application in single READ Spring 2004 TCP Byte Stream When application passes data to TCP, it may send it immediately or buffer it. Sometimes application wants to send data immediately. Example: interactive applications. Use PUSH flag to force transmission. TCP could still bundle PUSH data together (e.g., if it cannot transmit it right away). URGENT flag. Also forces TCP to transmit at once. Spring 2004 TCP Protocol Overview 1 TCP’s TPDU: segment. 20-byte header + options. Data. TCP entity decides the size of segment. 2 limits: 64KByte IP payload and MTU. Segments that are too large are fragmented. More overhead by addition of IP header. Spring 2004 TCP Protocol Overview 2 Sequence numbers. Reliability, ordering, and flow control. Assigned to every byte. 32-bit sequence numbers. Spring 2004 TCP Connection Setup 3-way handshake. Host 1 SYN (SEQ=x) SYN(SEQ=y,ACK=x+1) (SEQ=x+1, ACK=y+1) Spring 2004 Host 2 TCP Connection Release 1 Abrupt release: Send RESET. May cause data loss. Spring 2004 TCP Connection Release 2 Graceful release: Each side of the connection released independently. Either side send TCP segment with FIN=1. When FIN acknowledged, that direction is shut down for data. Connection released when both sides shut down. 4 segments: 1 FIN and 1 ACK for each direction; 1st. ACK+2nd. FIN combined. Spring 2004 TCP Connection Release 3 Timers to avoid 2-army problem. If response to FIN not received within 2*MSL (maximum segment lifetime), FIN sender releases connection. After connection released, TCP waits for 2*MSL (e.g., 120 sec) to ensure all old segments have aged. Spring 2004 TCP Transmission Sender process initiates connection. Once connection established, TCP can start sending data. Sender writes bytes to TCP stream. TCP sender breaks byte stream into segments. Each byte assigned sequence number. Segment sent and timer started. Spring 2004 TCP Transmission (cont’d) If timer expires, retransmit segment. After retransmitting segment for maximum number of times, assumes connection is dead and closes it. If user aborts connection, sending TCP flushes its buffers and sends RESET segment. Receiving TCP decides when to pass received data to upper layer. Spring 2004 TCP Flow Control Sliding window. Receiver’s advertised window. Size of advertised window related to receiver’s buffer space. Sender can send data up to receiver’s advertised window. Spring 2004 TCP Flow Control: Example App. writes 2K of data App. does 3K write Sender blocked Sender may send up to 2K 4K 2K;SEQ=0 2K ACK=2048; WIN=2048 2K; SEQ=2048 0 App. reads 2K of data ACK=4096; WIN=0 ACK=4096; WIN=2048 1K; SEQ=4096 2K 1K Spring 2004 TCP Flow Control: Observations TCP sender not required to transmit data as soon as it comes in from application. Example: when first 2KB of data comes in, could wait for more data since window is 4KB. Receiver not required to send ACKs as soon as possible. Wait for data so ACK is piggybacked. Spring 2004 Congestion Control Why do it at the transport layer? Use law of “conservation of packets”. Real fix to congestion is to slow down sender. Keep number of packets in the network constant. Don’t inject new packet until old one leaves. Congestion indicator: packet loss. Spring 2004 TCP Congestion Control Like, flow control, also window based. Sender keeps congestion window (cwin). Each sender keeps 2 windows: receiver’s advertised window and congestion window. Number of bytes that may be sent is min(advertised window, cwin). Spring 2004 TCP Congestion Control (cont’d) Slow start [Jacobson 1988]: Connection’s congestion window starts at 1 segment. If segment ACKed before time out, cwin=cwin+1. As ACKs come in, current cwin is increased by 1. Exponential increase. Spring 2004 TCP Congestion Control (cont’d) Congestion Avoidance: Third parameter: threshold. Initially set to 64KB. If timeout, threshold=cwin/2 and cwin=1. Re-enters slow-start until cwin=threshold. Then, cwin grows linearly until it reaches receiver’s advertised window. Spring 2004 cwin TCP Congestion Control: Example timeout threshold threshold time Spring 2004 TCP Retransmission Timer When segment sent, retransmission timer starts. If segment ACKed, timer stops. If time out, segment retransmitted and timer starts again. Spring 2004 How to set timer? Based on round-trip time: time between a segment is sent and ACK comes back. If timer is too short, unnecessary retransmissions. If timer is too long, long retransmission delay. Spring 2004 Jacobson’s Algorithm 1 Determining the round-trip time: TCP keeps RTT variable. When segment sent, TCP measures how long it takes to get ACK back (M). RTT = alpha*RTT + (1-alpha)M. alpha: smoothing factor; determines weight given to previous estimate. Typically, alpha=7/8. Spring 2004 Jacobson’s Algorithm 2 Determining timeout value: Measure RTT variation, or |RTT-M|. Keeps smoothed value of cumulative variation D=alpha*D+(1-alpha)|RTT-M|. Alpha may or may not be the same as value used to smooth RTT. Timeout = RTT+4*D. Spring 2004 Client-Server Model Client File Server Kernel Kernel Spring 2004 Printer Server Kernel File Transfer Sharing remote files: “on-line” access versus “file transfer”. “On-line” access transparent access to shared files, e.g., distributed file system. Sharing through file transfer: user copies file then operates on it. Spring 2004 The Web and HTTP Spring 2004 The Web WWW, or the world-wide web is a resource discovery service. Resource space is organized hierarchically, and resources are linked to one another according to some relation. Hypertext organization: link “granularity”; allows links within documents. Graphical user interface. Spring 2004 The Client Side Users perceive the Web as a vast collection of information. Page is the Web’s information transfer unit. Each page may contain links to other pages. Users follow links by clicking on them which takes them to the corresponding page. This process can go on indefinetly, traversing several pages located in different places. Spring 2004 The Browser Program running on client that retrieves and displays pages. Interacts with server of page. Interprets commands and displays page. Examples: Mosaic, Netscape’s Navigator and Communicator, Microsoft Internet Explorer. Other features: back, forward, bookmark, caching, handle multimedia objects. Spring 2004 Domain Name System (DNS) Basic function: translation of names (ASCII strings) to network (IP) addresses and vice-versa. Example: zephyr.isi.edu <-> 128.9.160.160 Spring 2004 DNS Hierarchical name space. Distributed database. RFCs 1034 and 1035. Spring 2004 How is it used? Client-server model. Client DNS (running on client hosts), or resolver. Application calls resolver with name. Resolver contacts local DNS server (using UDP) passing the name. Server returns corresponding IP address. Spring 2004 Name Resolution 1 Application wants to resolve name. Resolver sends query to local name server. Resolver configured with list of local name servers. Select servers in round-robin fashion. If name is local, local name server returns matching authoritative RRs. Authoritative RR comes from authority managing the RR and is always correct. Cached RRs may be out of date. Spring 2004 Name Resolution 2 If information not available locally (not even cached), local NS will have to ask someone else. It asks the server of the top-level domain of the name requested. Spring 2004 Electronic Mail Non-interactive. Deferred mail (e.g., destination temporarily unavailable). Spooling: Message delivery as background activity. Mail spool: temporary storage area for outgoing mail. Spring 2004 Mail system User sends mail User interface User reads mail Outgoing mail spool Mailboxes incoming mail Spring 2004 Client (send) TCP connection (outgoing) Server TCP (receive) connection (incoming) Observations When user sends mail, message stored is system spool area. Client transfer runs on background. Initiates transfer to remote machine. If transfer succeeds, local copy of message removed; otherwise, tries again later (30 min) for a maximum interval (3 days). Spring 2004 Remote access Spring 2004 Telnet User’s machine Telnet client Telnet server OS OS TCP connection over Internet Spring 2004 Telnet basic operation When user invokes telnet, telnet client on user machine establishes TCP connection to specified server. TCP connection established; user’s keystrokes sent to remote machine. Telnet server sends back response, echoed on user’s terminal. Telnet server can accept multiple concurrent connections. Spring 2004