Application I

Download Report

Transcript Application I

Network Applications
1/19/2012
Outline
 Recap
 ISO/OSI Layering and Internet Layering
 Application layer overview
2
Recap: Summary of the Taxonomy
of Communication Networks
communication
network
broadcast
communication
switched
network
packet-switched
network
datagram
network
circuit-switched
network
virtual circuit
network
3
Recap: Statistical Multiplexing
A simple model to compare bandwidth efficiency of
- reservation/dedication (aka circuit-switching) and
- no reservation (aka packet switching)
setup
- a single bottleneck link with
rate R
- n flows; each flow has an
arrival rate of a/n
 no reservation: all arrivals
into the single link with
rate R, the queueing delay
+ transmission delay:
L 1
R 1 
 reservation: each flow uses
its own reserved (sub)link
with rate R/n, the queueing
delay + transmission delay:
L 1
n
R 1 
4
Recap: Layering
 Why layering
 reference model
 modularization
 Concepts
 service, interface, and
protocol
 physical vs logical
communication
 Key design decision:
what functionalities
to put in each layer:
End-to-end
arguement
5
Outline
 Recap

ISO/OSI Layering and Internet Layering
 Application layer overview
6
ISO/OSI Reference Model
 Seven layers
 lower
three layers are hop-by-hop
 next four layers are end-to-end (host-to-host)
Application
Presentation
Session
Transport
Network
Datalink
Physical
Network
Datalink
Physical
Physical medium
Application
Presentation
Session
Transport
Network
Datalink
Physical
7
Internet Layering
 Lower three layers are hop-by-hop
 Next two layers are end-to-end
Application
Transport
Network
Datalink
Physical
Network
Datalink
Physical
Physical medium
Application
Transport
Network
Datalink
Physical
8
Internet Protocol Layers
 A rough division
 Five layers

Application: specific network applications
• ftp, smtp, http, p2p, IP telephony

Transport: host-host data transfer
• tcp (reliable), udp (not reliable)

Network: routing of datagram from source
to destination
• ip

Link: data transfer between neighboring
network elements
• ethernet, 802.11, cable, DSL, …

Physical: bits “on the wire”
application
transport
network
link
physical
• cable, wireless, optical fiber
9
The Hourglass Architecture of the Internet
Email WWW FTP Telnet
TCP
UDP
IP
end users
network
infrastructure
Ethernet Wireless Cable/DSL
10
Link Layer (Ethernet)
 Services
o
multiple access control
-
o
Email WWW FTP Telnet
arbitrate access to shared
medium
multiplexing/demultiplexin
g
TCP
UDP
IP4/6
- from/to the network layer
o
error detection
Ethernet Wireless Cable/DSL
 Interface
o send frames to a directly
attached (network-layer)
peer
11
Link Layer: Protocol Header (Ethernet)
Email WWW FTP Telnet
TCP
Email WWW FTP Telnet
TCP
UDP
IP4/6
IP4/6
Ethernet Wireless Cable/DSL
IP6
IP4
link
UDP
Ethernet Wireless Cable/DSL
IP6
IP4
link
12
Network Layer: IP
 Services
o routing: best-effort to send packets
from source to destination
o multiplexing/demultiplexing from/to
the transport
o fragmentation and reassembling:
partition a fragment into smaller packets
- removed in IPv6
Email WWW FTP Telnet
SSL
TCP
UDP
IP
o error detection
o certain QoS/CoS
o does not provide reliability or
Ethernet Wireless Cable/DSL
reservation
 Interface:
o send a packet to a (transport-layer) peer
at a specified global destination, with
certain QoS/CoS
13
Network Layer: IPv4 Header
Email WWW FTP Telnet
SSL
TCP
UDP
IP
Ethernet Wireless Cable/DSL
Email WWW FTP Telnet
SSL
TCP
UDP
IP
Ethernet Wireless Cable/DSL14
Services Provided by UDP
 A connectionless service
Email WWW FTP Telnet
 Does not provide: connection
setup, reliability, flow
control, congestion control,
timing, or bandwidth
guarantee
 why is there a UDP?
TCP
UDP
IP
Ethernet Wireless Cable/DSL
15
Transport Layer: UDP Header
Email WWW FTP Telnet
Email WWW FTP Telnet
TCP
UDP
IP
UDP
TCP
IP
Ethernet Wireless FDDI
Ethernet Wireless Cable/DSL
16
Transport Layer: TCP

Services
o multiplexing/demultiplexing
o reliable transport
between sending and receiving
processes
o setup required between sender
and receiver: a connectionoriented service
flow control: sender won’t
overwhelm receiver
congestion control: throttle sender
when network overloaded
Email WWW FTP Telnet
o
o
o
o
error detection
o
does not provide timing, minimum
TCP
UDP
IP
Ethernet Wireless FDDI
bandwidth guarantees
 Interface:
o send a packet to a (app-layer) peer
17
Transport Layer: TCP Header
Email WWW FTP Telnet
UDP
TCP
IP
Email WWW FTP Telnet
TCP
UDP
IP
Ethernet Wireless FDDI
Ethernet Wireless Cable/DSL
18
Secure Socket Layer Architecture
HTTP POP3
SSL Record-Layer Packet Format
20: change_cipher
21: alert
22: handshake
23: application
Summary: The Big Picture
of the Internet
 Hosts and routers:
 >850 mil. hosts (2011)
 autonomous systems organized
roughly hierarchical
 backbone links 10~40Gbps
 Software:
 datagram switching with virtual
circuit support at backbone
 layered network architecture
• use end-to-end arguments
to determine the services
provided by each layer

Email WWW FTP Telnet
SSL
TCP
UDP
IP4/6
Ethernet Wireless Cable/DSL
the hourglass architecture
of the Internet
21
Outline
 Recap
 ISO/OSI Layering and Internet Layering

Application layer overview
22
Application Layer: Goals
 Conceptual + implementation aspects of
network application protocols
client server paradigm
 peer to peer paradigm
 network app. programming

 Learn about applications by examining
common applications
smtp/pop
 dns
 http
 content distribution

23
Network Applications vs. Application-layer Protocols
Network application: communicating,
distributed processes
 a process is a program that is
running within a host
application
transport
network
data link
physical
• a user agent is a process serving
as an interface to the user
– web: browser
– streaming audio/video: media
player

processes communicate by an
application-layer protocol
•
e.g., email, Web
Application-layer protocols
 one “piece” of an app
 define messages exchanged by
apps and actions taken
 implementing services by using
the service provided by the lower
layer, i.e., the transport layer
application
transport
network
data link
physical
24
How does an Application Access the
Transport Service?
API: application programming interface
 Defines interface between application and transport layer
 Multiple APIs proposed in history

XTI (X/Open Transport Interface), a slight modification of the
Transport Layer Interface (TLI) developed by AT&T.
 Our focus: Socket API




sometimes called "Berkeley sockets" acknowledging their
heritage from Berkeley Unix
a socket has a network-layer host IP address and a transportlayer local port number
• e.g., email (SMTP) port number 25, web port number 80
an application process binds to a socket
• %netstat –anp --tcp
two processes communicate by sending data into socket, reading
data out of socket
25
Socket API
transport
protocol
buffers,
states
buffers,
states
26
App. and Trans.: App. Protocols and their
Transport Protocols
 An application needs to choose the
transport protocol
Application
e-mail
remote terminal access
Web
file transfer
Internet telephony
remote file server
streaming multimedia
Application
layer protocol
smtp [RFC 821]
telnet [RFC 854]
http [RFC 2068]
ftp [RFC 959]
proprietary
(e.g., Vocaltec)
NFS
proprietary
Underlying
transport protocol
TCP/SSL
TCP
TCP/SSL
TCP
typically UDP
TCP or UDP
typically UDP
27
Client-Server Paradigm
Typical network app has two
pieces: client and server
Client (C):
 initiates contact with server
(“speaks first”)
 typically requests service from
server
 for Web, client is implemented
in browser; for e-mail, in mail
reader
Server (S):
 provides requested service to
client
 e.g., Web server sends
requested Web page; mail
server delivers e-mail
application
transport
network
data link
physical
request
reply
application
transport
network
data link
physical
28
Client-Server Paradigm: Key Questions
application
transport
network
data link
physical
Key questions to ask about
a C-S application
- Is the application extensible?
- Is the application scalable?
- How does the application handle
server failures (being robust)?
- How does the application provide
security?
request
reply
application
transport
network
data link
physical
29
outgoing
message queue
Electronic Mail
Three major
components:
 User agents
user mailbox
user
agent
mail
server
SMTP
 Mail servers
 Protocols
 Outgoing email
SMTP
• SMTP

Retrieving email
• POP3: Post Office
Protocol [RFC 1939]
• IMAP: Internet Mail
Access Protocol [RFC
1730]
mail
server
user
agent
user
agent
mail
server
SMTP
POP3 or
IMAP
SMTP
user
agent
user
agent
user
agent
30
SMTP: Outgoing Email as a ClientServer Application
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
C:
C:
C:
C:
C:
C:
S:
C:
S:
220 mr1.its.yale.edu
HELO cyndra.yale.edu
250 Hello cyndra.cs.yale.edu, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Date: Wed, 23 Jan 2008 11:20:27 -0500 (EST)
From: "Y. R. Yang" <[email protected]>
To: "Y. R. Yang" <[email protected]>
Subject: This is subject
This is the message body!
Please don’t spoof!
.
250 Message accepted for delivery
QUIT
221 mr1.its.yale.edu closing connection
31
Mail Message Data Format
SMTP: protocol for
exchanging email msgs
RFC 822: standard for text
message format:
 Header lines, e.g.,



To:
From:
Subject:
header
blank
line
body
 Body

the “message”, ASCII
characters only (any
problem?)
32
Message Format: Multimedia Extensions
 MIME: multimedia mail extension, RFC 2045, 2056
 Additional lines in msg header declare MIME content type
MIME version
multimedia data
type, subtype,
parameter declaration
method used
to encode data
encoded data
From: [email protected]
To: [email protected]
Subject: Network map.
MIME-Version: 1.0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
base64 encoded data .....
.........................
......base64 encoded data
33
Multipart Type: How Attachment Works
From: [email protected]
To: [email protected]
Subject: Network map.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Hi,
Attached is network topology map.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--98766789-34
Design Review
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
C:
S:
C:
S:
220 mr1.its.yale.edu
HELO cyndra.yale.edu
250 Hello cyndra.cs.yale.edu, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
From: [email protected]
To: [email protected]
Subject: Network map.
MIME-Version: 1.0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
base64 encoded data .....
.........................
......base64 encoded data
Why not make the
msg headers smtp
headers?
.
250 Message accepted for delivery
QUIT
221 mr1.its.yale.edu closing connection
35
POP3 Protocol: Mail Access
Authorization phase
 client commands:
user: declare username
 pass: password
 server responses
 +OK
 -ERR

S:
C:
S:
C:
S:
+OK POP3 server ready
user alice
+OK
pass hungry
+OK user successfully logged
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
Transaction phase, client:
S: <message 1 contents>
 list: list message numbers
S: .
C: dele 1
 retr: retrieve message by
C: retr 2
number
S: <message 1 contents>
 dele: delete
S: .
C: dele 2
 quit
C: quit
%telnet <netid>.mail.yale.edu 110
S: +OK POP3 server signing off
%openssl s_client –connect pop.gmail.com:995
on
36
Evaluation of SMTP/POP/IMAP
user
agent
Key questions to ask about a
C-S application
-
extensible?
scalable?
robust?
security?
mail
server
SMTP
SMTP
mail
server
user
agent
user
agent
mail
server
SMTP
POP3 or
IMAP
SMTP
user
agent
user
agent
user
agent
37
Email: Positive
 Some nice design features we can learn from the
design of the email

separate protocols for different functions
• email retrieval (e.g., POP3, IMAP)
• email transmission (SMTP)

simple/basic requests to implement basic control; finegrain control through ASCII header and message body
• make the protocol easy to read/debug/extend (analogy with
end-to-end layered design?)

status code in response makes message easy to parse
38
Email: Negative
 Security is not a first class design from the
beginning
http://www.yale.edu/its/metrics/email/index.html
39
Optional Slides
40
Services Provided by Transport
 User data protocol
(UDP)

multiplexing/demultiplexing
 Transmission control
protocol (TCP)
multiplexing/demultiplexing
 reliable data transfer
 rate control: flow control
and congestion control

Host A
Host B
41
Secure Socket Layer: Services
 server authentication

authentication through trusted certificate
authority (CA): server obtains a certificate
from one of the trusted CAs
 data encryption and integrity
 client authentication (optional)
Details of the Seven ISO/OSI
Layers
Physical Layer (1)
 Service: moves information between two
systems connected by a physical link
 Interface: specifies how to send a bit
 Protocol: coding scheme used to represent
a bit, voltage levels, duration of a bit
 Examples: coaxial cable, optical fiber links;
transmitters, receivers
44
Datalink Layer (2)
 Service:
 framing,
i.e., attach frames separator
 send data frames between peers
 others:
• arbitrates the access to common physical media
• ensures reliable transmission
• provides flow control
 Interface: sends a data unit (packet) to a
machine connected to the same physical
media
 Protocol: layer addresses, implement Medium
Access Control (MAC) (e.g., CSMA/CD)…
45
Network Layer (3)
 Service:
 delivers a packet to a specified destination
 performs fragmentation/reassembly of packets
 others:
• packet scheduling
• buffer management
 Interface: sends a packet to a specified
destination
 Protocol: defines global unique addresses;
constructs routing tables; implement packet
forwarding; fragments/reassembles packets
46
Data and Control Planes
 Data plane: concerned with
packet forwarding
 buffer management
 packet scheduling

 Control Plane: concerned with installing and
maintaining the states for the data plane
47
Transport Layer (4)
 Service:
provides an in-order, error-free, and flow and
congestion controlled end-to-end connection
 multiplex/demuliplex packets

 Interface: sends a packet to a destination
 Protocol: implements reliability, as well as
flow and congestion control
 Examples: TCP and UDP

TCP: in-order, error free, flow and congestion
control
48
Session Layer (5)
 Service:
full-duplex
 access management, e.g., token control
 synchronization, e.g., provide check points for
long transfers

 Interface: depends on service
 Protocols: token management; insert
checkpoints, implement roll-back functions
49
Presentation Layer (6)
 Service: converts data between various
representations
 Interface: depends on service
 Protocol: defines data formats and rules to
convert from one format to another
50
Application Layer (7)
 Service: any service provided to end users
 Interface: depends on the application
 Protocol: depends on the application
 Examples: FTP, Telnet, WWW
51
What Transport Service Does an App Need?
Data loss
 some apps can tolerate some packet losses
 other apps require 100% reliable data transfer
Bandwidth
 some apps require minimum amount of bandwidth to be
“effective”
 other apps make use of whatever bandwidth they get
Timing
 some apps require low delay to be “effective”
52