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