CMPT 880: Internet Architectures and Protocols
Download
Report
Transcript CMPT 880: Internet Architectures and Protocols
School of Computing Science
Simon Fraser University
CMPT 771/471: Internet Architecture & Protocols
Introduction
Instructor: Dr. Mohamed Hefeeda
1
Course Objectives
Understand
principles of designing and operating computer
networks
structure and protocols of the Internet
services that can/cannot be offered by the Internet
Know how to
analytically analyze performance of a system/protocol
implement network protocols and applications
And, more importantly, …
Have fun!
2
Course Info
Most of the course will be lectures given by the
instructor
Last 2 weeks, each graduate student gives a
presentation on one of a preselected networking topics
Course web page
http://nsl.cs.sfu.ca/teaching/09/771/
Or access it from my web page:
http://www.cs.sfu.ca/~mhefeeda
3
Course Info: Textbooks and References
Kurose and Rose, Computer Networking: A topdown Approach Featuring the Internet, lastest ed.
Required
Background materials
Chapters 6 and 7: Wireless and Multimedia Networking
Hassan and Jain, High Performance TCP/IP
Networking, 2004
Several chapters on analyzing TCP/IP in different
environments
Stallings, High-speed Networks and Internets:
Performance and Quality of Service, 2002
Three chapters on (basics of) probability and queuing
Papers: will be posted on the course web page
4
Course Info: Grading
Homework and presentations: 20%
3 – 4 problem sets
Projects:
40%
Several projects; some in group of two students
All in C
Must read Assignment Policy
Exam:
40%
Comprehensive
In the last week of classes (during class time)
5
Course Info: Topics
Internet Architecture and Services
TCP/IP Protocol Suit
Inter- and Intra-domain Routing Protocols
Introduction to Performance Modeling and Evaluation
TCP/IP Performance Modeling in Different Environments
Quality of Service Support in the Internet
Wireless Networks
Multimedia Networking
Overlays and Peer-to-Peer Computing
6
Basic Networking Concepts
7
Review of Basic Networking Concepts
Internet structure
Protocol layering and encapsulation
Internet services and socket programming
Network Layer
Network types: Circuit switching, Packet switching
Addressing, Forwarding, Routing
Transport layer
Reliability and congestion control
TCP, UDP
Link Layer
Multiple Access Protocols
Ethernet
8
The Internet
Millions of hosts (end systems)
Inter-connected, running
network apps
Diverse communication links
router
server
workstation
mobile
local ISP
fiber, copper, radio, satellite
regional ISP
Routers
forward packets
Internet: “network of networks”
loosely hierarchical
Public, versus private intranet
company
network
9
Internet structure: network of networks
roughly hierarchical
at center: “tier-1” ISPs (e.g., MCI, Sprint, AT&T, Cable and
Wireless), national/international coverage
treat each other as equals
Tier-1
providers
interconnect
(peer)
privately
Tier 1 ISP
Tier 1 ISP
NAP
Tier-1 providers
also interconnect
at public network
access points
(NAPs)
Tier 1 ISP
10
Tier-1 ISP: e.g., Sprint
Sprint US backbone network
Seattle
Tacoma
DS3 (45 Mbps)
OC3 (155 Mbps)
OC12 (622 Mbps)
OC48 (2.4 Gbps)
POP: point-of-presence
to/from backbone
Stockton
…
…
Kansas City
.
…
Anaheim
peering
…
…
San Jose
Cheyenne
New York
Pennsauken
Relay
Wash. DC
Chicago
Roachdale
Atlanta
to/from customers
Fort Worth
Orlando
11
Internet structure: Tier-2 ISPs
“Tier-2” ISPs: smaller (often regional) ISPs
Connect to one or more tier-1 ISPs, possibly other tier-2
ISPs
Tier-2 ISP pays
tier-1 ISP for
connectivity to
rest of Internet
Tier-2 ISP is
customer of
tier-1 provider
Tier-2 ISP
Tier-2 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISP
NAP
Tier 1 ISP
Tier-2 ISPs
also peer
privately with
each other,
interconnect
at NAP
Tier-2 ISP
Tier-2 ISP
12
Internet structure: Tier-3 ISPs
“Tier-3” ISPs and local ISPs
last hop (“access”) network (closest to end systems)
local
ISP
Local and tier3 ISPs are
customers of
higher tier
ISPs
connecting
them to rest
of Internet
Tier 3
ISP
Tier-2 ISP
local
ISP
local
ISP
local
ISP
Tier-2 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISP
local
local
ISP
ISP
NAP
Tier 1 ISP
Tier-2 ISP
local
ISP
Tier-2 ISP
local
ISP
13
Internet structure: packet journey
a packet passes through many networks!
local
ISP
Tier 3
ISP
Tier-2 ISP
local
ISP
local
ISP
local
ISP
Tier-2 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISP
local
local
ISP
ISP
NAP
Tier 1 ISP
Tier-2 ISP
local
ISP
Tier-2 ISP
local
ISP
14
Review of Basic Networking Concepts
Internet structure
Protocol layering and encapsulation
Internet services and socket programming
Network Layer
Network types: Circuit switching, Packet switching
Addressing, Forwarding, Routing
Transport layer
Reliability and congestion control
TCP, UDP
Link Layer
Multiple Access Protocols
Ethernet
15
Protocol Layers
Networks are complex!
many “pieces”:
hosts
routers
links of various
media
applications
protocols
hardware, software
Question:
Is there any hope of
organizing structure of
network?
Or at least our discussion of
networks?
16
Layering of Airline Functionality
ticket (purchase)
ticket (complain)
ticket
baggage (check)
baggage (claim
baggage
gates (load)
gates (unload)
gate
runway (takeoff)
runway (land)
takeoff/landing
airplane routing
airplane routing
airplane routing
departure
airport
airplane routing
airplane routing
intermediate air-traffic
control centers
arrival
airport
Layers: each layer implements a service
via its own internal-layer actions
relying on services provided by layer below
17
Why layering?
Dealing with complex systems:
explicit structure allows identifying complex
relationships among system’s pieces
modularization eases maintenance, updating of
system
change of implementation of layer’s service
transparent to rest of system
e.g., change in gate procedure doesn’t affect
rest of system
What is the downside of layering?
18
Internet protocol stack
application: supporting network
applications
FTP, SMTP, HTTP
transport: process-process data
transfer
TCP, UDP
network: routing of datagrams
from source to destination
IP, routing protocols
link: data transfer between
neighboring network elements
application
transport
network
link
physical
PPP, Ethernet
physical: bits “on the wire”
19
source
message
segment Ht
datagram Hn Ht
frame
Hl Hn Ht
M
M
M
M
Encapsulation
application
transport
network
link
physical
Hl Hn Ht
M
link
physical
Hl Hn Ht
M
switch
destination
M
Ht
M
Hn Ht
Hl Hn Ht
M
M
application
transport
network
link
physical
Hn Ht
Hl Hn Ht
M
M
network
link
physical
Hn Ht
Hl Hn Ht
M
M
router
20
Review of Basic Networking Concepts
Internet structure
Protocol layering and encapsulation
Internet services and socket programming
Network Layer
Network types: Circuit switching, Packet switching
Addressing, Forwarding, Routing
Transport layer
Reliability and congestion control
TCP, UDP
Link Layer
Multiple Access Protocols
Ethernet
21
Internet Services
View the Internet as a communication
infrastructure that provides services to apps
Web, email, games, e-commerce, file sharing, …
Two communication services
Connectionless unreliable
Connection-oriented reliable
22
Internet Services
Connection-oriented
Prepare for data transfer
ahead of time
establish connection
set up state in the two
communicating hosts
Usually comes with
reliability, flow and
congestion control
TCP: Transmission
Control Protocol
Connectionless
No connection set up,
simply send
Faster, less overhead
No reliability, flow control,
or congestion control
UDP: User Datagram
Protocol
How can we access these services?
23
Network (Socket) Programming
Process sends/receives
messages to/from its socket
Socket analogous to door
sending process shoves
message out door
sending process relies
on transport
infrastructure on other
side of door which brings
message to socket at
receiving process
host or
server
host or
server
process
controlled by
app developer
process
socket
socket
TCP with
buffers,
variables
Internet
TCP with
buffers,
variables
controlled
by OS
Socket is the interface (API) between application and transport
layer
24
Addressing Processes
For a process to receive
messages, it must have an
identifier
A host has a unique32-bit
IP address
Q: does the IP address of
the host on which the
process runs suffice for
identifying the process?
A: No, many processes can
be running on same host
We use ports
Process is identified by:
IP address,
Transport protocol, and
Port number
Example port numbers:
HTTP server: 80 (TCP)
Mail server: 25 (TCP)
25
Socket Programming
Socket API
introduced in BSD 4.1 UNIX, 1981
explicitly created, used, released by apps
client/server paradigm
provides two services
• reliable, byte stream-oriented
• unreliable datagram
26
Socket Programming using TCP
TCP service: reliable transfer of bytes from one
process to another
virtual pipe between sender and receiver
controlled by
application
developer
controlled by
operating
system
process
process
socket
TCP with
buffers,
variables
host or
server
internet
socket
TCP with
buffers,
variables
controlled by
application
developer
controlled by
operating
system
host or
server
27
Socket Programming using TCP
Server (running on hostid)
Client
create socket,
port=x, for
incoming request:
welcomeSocket =
ServerSocket()
TCP
wait for incoming
connection request connection
connectionSocket =
welcomeSocket.accept()
read request from
connectionSocket
write reply to
connectionSocket
close
connectionSocket
setup
create socket,
connect to hostid, port=x
clientSocket =
Socket()
send request using
clientSocket
read reply from
clientSocket
close
clientSocket
28
Socket Programming using TCP
Server process must first be running, and
creates a socket (door) that welcomes client’s contact,
then wait
Client contacts server by creating local TCP socket using IP
address, port number of server process
When client creates socket
client TCP establishes connection to server TCP
When contacted by client
server TCP creates new socket for server process to
communicate with client
• allows server to talk with multiple clients
• source port numbers and IPs used to distinguish clients
29
Socket programming using UDP
UDP Service: unreliable transfer of groups of bytes
(datagrams) between client and server
no connection between client and server
no handshaking
sender explicitly attaches IP address and port of
destination to each packet
server must extract IP address, port of sender from
received packet
transmitted data may be received out of order, or lost
30
Socket Programming using UDP
Server (running on hostid)
create socket,
port=x, for
incoming request:
serverSocket =
DatagramSocket()
read request from
serverSocket
write reply to
serverSocket
specifying client
host address,
port number
Client
create socket,
clientSocket =
DatagramSocket()
Create datagram (hostid,port=x,data)
send datagram request
using clientSocket
read reply from
clientSocket
close
clientSocket
31