Download Brief Tutorial on Networks and Communications

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Piggybacking (Internet access) wikipedia , lookup

Peering wikipedia , lookup

Zigbee wikipedia , lookup

CAN bus wikipedia , lookup

Network tap wikipedia , lookup

Distributed firewall wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

RapidIO wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

Computer network wikipedia , lookup

Airborne Networking wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

IEEE 1355 wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Deep packet inspection wikipedia , lookup

Internet protocol suite wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Transcript
Brief Tutorial on
Networks and Communications
CS-4513 Distributed Systems
(Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne,
Distributed Systems: Principles & Paradigms, 2nd ed. By Tanenbaum and Van Steen, and
Distributed Systems: Concepts and Design, 4th ed., by Coulouris, et. al.)
CS-4513, D-Term 2010
Networks and
Communications
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-3516
• Also with CS-513/ECE-506
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
3
Computer C
Process j
Computer A
The Network
Process k
Computer B
Process i
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
6
Computer C
Thread r
Process j
Computer A
The Network
Process p
Process k
Computer B
Task q
Process i
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
11
The OSI 7-layer model
(in a nutshell)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Silbershatz, §§16.6-16.7
Coulouris et al, §3.3.4
Layer
CS-4513, D-Term 2010
Networks and
Communications
12
Annotated OSI 7-Layer Stack
Silbershatz,
page 630
CS-4513, D-Term 2010
Networks and
Communications
13
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Term 2010
• 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 and
Communications
14
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Term 2010
• 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 and
Communications
15
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Term 2010
• 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 and
Communications
16
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
• Layer 4 – Transport Layer
Layer
CS-4513, D-Term 2010
– 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 and
Communications
17
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Term 2010
• 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 and
Communications
18
Summary — OSI 7-layer model
Sending
Process
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Term 2010
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
Bits
Networks and
Communications
Layer
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-4513, D-Term 2010
Networks and
Communications
20
The TCP/IP Protocol Layers
TCP/IP
CS-4513, D-Term 2010
Networks and
Communications
21
The TCP/IP Protocol Layers
TCP/IP
Subsumed by middleware
Defined by manufacturers,
industry sub-groups, and
separate standards bodies
CS-4513, D-Term 2010
Networks and
Communications
22
Modified Layers
CS-4513, D-Term 2010
Networks and
Communications
23
Examples of Middleware
•
•
•
•
•
Authentication protocols
Commit protocols for atomic transactions
Multimedia protocols
Remote Procedure Call protocols (RPC)
…
CS-4513, D-Term 2010
Networks and
Communications
24
Styles of Communication
• Message-oriented
• Remote Procedure Call
• Streaming
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
32
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
…
Packet i+k
rec’d i
time
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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
•
•
•
•
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
CS-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
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-4513, D-Term 2010
Networks and
Communications
41
Summary
•
•
•
•
Socket, connection
Network stack, 7-layer model
Establishing a connection
Reliable transmission
• Reading assignment
– Coulouris, Chapter 3
CS-4513, D-Term 2010
Networks and
Communications
42