Networks and Communication

Download Report

Transcript Networks and Communication

Networks & Communication
CS-502
Operating Systems
(Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne,
Modern Operating Systems, 2nd ed., by Tanenbaum, and Distributed Systems: Principles & Paradigms, 2nd
ed. By Tanenbaum and Van Steen)
CS-502 Fall 2007
Networks &
Communication
1
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-513/ECE-506
CS-502 Fall 2007
Networks &
Communication
2
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
CS-502 Fall 2007
Networks &
Communication
3
Computer C
Process j
Computer A
The Network
Process k
Computer B
Process i
CS-502 Fall 2007
Networks &
Communication
4
Network Goal
• Allow activities on multiple computer
systems to communicate with each other
•
•
•
•
Shared memory, files, or data
Message passing
Remote Procedure Call
Integrated applications — distributed across
physical space
• Create abstractions that make these
(relatively) transparent
CS-502 Fall 2007
Networks &
Communication
5
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
CS-502 Fall 2007
Networks &
Communication
6
Computer C
Thread r
Process j
Computer A
The Network
Process p
Process k
Computer B
Task q
Process i
CS-502 Fall 2007
Networks &
Communication
7
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
CS-502 Fall 2007
Networks &
Communication
8
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?
CS-502 Fall 2007
Networks &
Communication
9
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
CS-502 Fall 2007
Networks &
Communication
10
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
CS-502 Fall 2007
Networks &
Communication
11
The OSI 7-layer model
(in a nutshell)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Silbershatz, §§16.6-16.7
Physical
Layer
CS-502 Fall 2007
Networks &
Communication
12
Annotated OSI 7-Layer Stack
Silbershatz,
page 630
CS-502 Fall 2007
Networks &
Communication
13
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
• 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)
• Defines Packet abstraction
• Layer 1 – Physical Layer
– Defines the physical and electrical
characteristics of the network.
• Transmitting of raw bits over the communication
channel
• Defines Bit abstraction
Networks &
Communication
14
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
• 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)
• Defines Packet abstraction
• Layer 1 – Physical Layer
– Defines the physical and electrical
characteristics of the network.
• Transmitting of raw bits over the communication
channel
• Defines Bit abstraction
Networks &
Communication
15
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
• 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
– Defines Internet abstraction – i.e., packets that
can be sent from anywhere to anywhere
Networks &
Communication
16
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
• 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
– Two types of service to provide
• Reliable or unreliable delivery
– True end-to-end layer
– Example:– TCP or UDP
– Defines Connection abstraction – i.e., data to
destination
Networks &
Communication
17
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
• Layer 7 – Application Layer
– User layer protocol, multiple protocols required
– Example – http, ftp, smtp
• 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 5 - Session Layer
– Allows users on different machines to establish sessions
between them
– Example SSL, RPC
Networks &
Communication
18
Summary — OSI 7-layer model
Sending
Process
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-502 Fall 2007
Receiving
Process
Data
AH
PH
Data
SH
TH
NH
DH
Data
Data
Data
Data
Data
DT
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
Bits
Networks &
Communication
19
Layered Protocols
• OSI 7-layer model was intended to be a
foundation of a family of international
standard protocols
• Those protocols never gained much
acceptance
• Role of Session and Presentation layers is
murky, at best.
• Internet protocols (TCP/IP, etc.) are
dominant
CS-502 Fall 2007
Networks &
Communication
20
The TCP/IP Protocol Layers
TCP/IP
CS-502 Fall 2007
Networks &
Communication
21
The TCP/IP Protocol Layers
TCP/IP
Subsumed by middleware
Defined by manufacturers,
industry sub-groups, and
separate standards bodies
CS-502 Fall 2007
Networks &
Communication
22
Modified Layers
CS-502 Fall 2007
Networks &
Communication
23
Examples of Middleware
•
•
•
•
•
Authentication protocols
Commit protocols for atomic transactions
Multimedia protocols
Remote Procedure Call protocols (RPC)
…
CS-502 Fall 2007
Networks &
Communication
24
Styles of Communication
• Message-oriented
• Remote Procedure Call
• Streaming
CS-502 Fall 2007
Networks &
Communication
25
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 – e.g.,
• telnet (23), ftp (21), smtp (25), pop (110)
CS-502 Fall 2007
Networks &
Communication
26
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
– i.e., a serial conversation between endpoints
• Usually two-way
CS-502 Fall 2007
Networks &
Communication
27
Connection
• The backbone of most message-oriented
communication protocols
• Each party retains knowledge of the other
• Each party retains information about state of the
other (vis a vis the protocol itself)
• Each party “knows” if connection is broken
• …
• Note: some popular protocols are “connectionless”
– one side retains no state information about other side
CS-502 Fall 2007
Networks &
Communication
28
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.
CS-502 Fall 2007
Networks &
Communication
29
Typical Client-Server Connection
• Create socket
• On server side
• Bind
• I.e., connect socket to port # (usually well-known port)
• Listen
• Sit and wait for a communication to come in
• Accept
• Create new socket for purpose of responding to this caller
CS-502 Fall 2007
Networks &
Communication
30
Notes
• Responder to request for connection does
not have to be the original server machine
• Delegate workload to other server systems
• Systems often include a connection ID as
part of request to open connection
• Unique or randomly chosen
• Reduces spoofing of server responses
• Unix/Linux will not re-use a socket # within
30 seconds
• To avoid confusion between old connection and new
CS-502 Fall 2007
Networks &
Communication
31
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
• Window defines how many packet buffers to
maintain for efficient transmission
• Allows many packets in “flight”
CS-502 Fall 2007
Networks &
Communication
32
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
…
Packet i+k
rec’d i
time
CS-502 Fall 2007
Networks &
Communication
33
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
…
Packet i+k
rec’d i
rec’d i
time
CS-502 Fall 2007
Networks &
Communication
34
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
…
Packet i+k
rec’d i
rec’d i
rec’d i+2
time
CS-502 Fall 2007
Networks &
Communication
35
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
…
Packet i+k
rec’d i
lost
rec’d i
rec’d i+2
…
rec’d i+2
time
CS-502 Fall 2007
Networks &
Communication
36
Reliable Connections (continued)
• If acknowledgement received for packet i
• Delete from buffer all packets  i
• If no acknowledgement received within a
reasonable time for packet k
• Retransmit from buffer all packets  k
• Result
•
•
•
•
CS-502 Fall 2007
Recovers from loss of packets
Recovers from loss of acknowledgements
Works well for reasonably reliable internet
Doesn’t work so well for noisy, unreliable networks
Networks &
Communication
37
Reminder
• How do we know if a packet is received
correctly?
• Cyclic Redundancy Check (CRC)
– Polynomial computed from packet header and
body
– Usually 16 or 32 bits, computed by hardware
– Appended to message
– Recomputed on reception, compared with
transmitted CRC
– Equal  packet received correctly
CS-502 Fall 2007
Networks &
Communication
38
Examples of Connection-based Protocols
• Telnet (virtual terminal)
– 2-way communication by character stream
– Line-by-line organization
• SMTP (Simple Mail Transport Protocol)
– For sending mail
– Layered on top of telnet protocol
• POP (Post Office Protocol)
– For receiving your mail
– Layered on top of telnet protocol
• FTP (File Transfer Protocol)
– For transmitting ASCII or binary files
– Binary data transmission not layered on telnet protocol
• …
CS-502 Fall 2007
Networks &
Communication
39
Connection-less communication
• Some communication protocols don’t need the
overhead of reliable connections
– When some number of errors can be tolerated
– Where recovery from those errors is easy
• UDP – User Datagram Protocol
–
–
–
–
The internet connection-less protocol (layer 4)
Breaks messages into packets
Messages delivered atomically or not at all
Does not send acknowledgement of correct receipt
CS-502 Fall 2007
Networks &
Communication
40
Examples
• HTTP (HyperText Transport Protocol)
– Web server responds directly to requests
– If client does not get response, retries request
• NFS (Network File System)
– For access to files on servers as if they are local
– If client does not get response, retries request
• RPC (Remote Procedure Call)
– Next topic
• …
CS-502 Fall 2007
Networks &
Communication
41
Summary
•
•
•
•
Socket, connection
Network stack, 7-layer model
Establishing a connection
Reliable transmission
• Reading assignment
– Silbershatz Chapter 16
CS-502 Fall 2007
Networks &
Communication
42