network applications: overview, email

56
Network Applications: Overview, Email Lappeenrannan teknillinen yliopisto TITE Prof. Esa Kerttula 13.3.2009 Tietokoneverkot ja datasiirto Päivä 1: luento 4d

Upload: callum-holman

Post on 02-Jan-2016

13 views

Category:

Documents


0 download

DESCRIPTION

Lappeenrannan teknillinen yliopisto TITE Prof. Esa Kerttula 13.3.2009. Tietokoneverkot ja datasiirto Päivä 1: luento 4d. Network Applications: Overview, Email. Outline. Recap ISO/OSI Layering and Internet Layering Application layer o verview Examples. - PowerPoint PPT Presentation

TRANSCRIPT

Network Applications: Overview, Email

Lappeenrannan teknillinen yliopistoTITEProf. Esa Kerttula13.3.2009

Tietokoneverkot ja datasiirtoPäivä 1: luento 4d

Tietokoneverkot ja datasiirtoPäivä 1: luento 4d

2

Outline

Recap ISO/OSI Layering and Internet Layering Application layer overview Examples

3

Recap: Statistical Multiplexing

no reservation: all arrivals into the single link with rate R, the queueing delay + transmission delay:

reservation: each flow uses its own reserved (sub)link with rate R/n, the queueing delay + transmission delay:

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

1

1

R

L

1

1

R

Ln

4

Host A

Host BHost E

Host D

Host C

Node 1 Node 2

Node 3

Node 4

Node 5

Node 6 Node 7

Virtual-Circuit Switching

5

Host A

Host BHost E

Host D

Host C

Node 1 Node 2

Node 3

Node 4

Node 5

Node 6 Node 7

Virtual-Circuit Switching

6

Recap: Summary of the Taxonomy of Communication Networks

circuit-switchednetwork

communication network

switchednetwork

broadcastcommunication

packet-switched network

datagram network

virtual circuit network

Recap: Layering

Layered reference model for discussion

Modularization eases maintenance, updating of system

Physical vs logical communication

Key design decision: what functionalities to put in each layer?

7

8

Example: Where to Provide Reliability ?

Solution 1: the network (lower layer L1) provides reliability; i.e., each hop provides reliability

Solution 2: the end host (higher layer L2) provides reliability; i.e., end-to-end check and retry

L1

L2

L1

S R

L1

L2

A

9

What are the Reasons for Implementing Reliability at Higher Layer ? The lower layer cannot completely provide the

functionality the receiver has to do the check anyway !

Implementing it at lower layer increases complexity, cost and overhead at lower layer shared by all upper layer applications everyone pays for it,

even if you do not need it The upper layer

knows the requirements better and thus may choose a better approach to implement it

L1

L2

L1

S R

L1

L2 A

10

Are There Reasons Implementing Reliability at Lower Layer ? Improve performance, e.g., if high

cost/delay/… on a link local reliability improves efficiency reduces delay

Share common code, e.g., reliability is required by multiple applications

L1

L2

L1

S R

L1

L2

A

11

Summary: End-to-End Arguments If a higher layer can do it, don’t do it at a

lower layer -- the higher the layer, the more it knows about the best what it needs

Add functionality in lower layers iff it (1) is used by and improves performance of a large

number of (current and potential future) applications,(2) does not hurt (too much) other applications, and (3) does not increase (too much) complexity/overhead

Practical tradeoff, e.g., allow multiple interfaces at a lower layer (one

provides the function; one does not)

12

Examples We used reliability as an example

Assume two layers (L1: network; L2: end-to-end). Where may you implement the following functions? security (privacy of traffic) quality of service (e.g., delay/bandwidth

guarantee) flow control (e.g., not to overwhelm

network links or receiver)

L1

L2

L1

S R

L1

L2 A

13

Challenges

Challenges to build a good (networking) system: find the right balance between:

reuse, interoperability,implementation effort

(apply layering concepts)

end-to-end arguments

performance

No universal answer: the answer depends on the goals and assumptions!

14

Outline

Recap ISO/OSI Layering and Internet Layering Application layer overview Examples

15

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

Application

Presentation

Session

Transport

Network

Datalink

Physical

Network

Datalink

Physical

Physical medium

16

Internet Layering

Lower three layers are hop-by-hop Next two layers are end-to-end

Application

Transport

Network

Datalink

Physical

Application

Transport

Network

Datalink

Physical

Network

Datalink

Physical

Physical medium

17

Internet Protocol Layers

A rough division Five layers

Application: supporting network applications

• ftp, smtp, http, p2p, IP telephony Transport: host-host data transfer

• tcp, udp 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”

• cable, optical fiber, wireless

application

transport

network

link

physical

18

The Hourglass Architecture of the Internet

networkinfrastructure

end users

IP

Ethernet Cable/DSLWireless

TCP UDP

TelnetEmail FTPWWW

SSL

19

Link Layer: Services Provided by Ethernet

Multiplexing/demultiplexing from/to the network layer

Multiple access control send frame to peer sharing the

common channel

Error detectionIP

Ethernet Cable/DSLWireless

TCP UDP

SSLTelnetEmail FTPWWW

20

Network Layer: Services Provided by IP

Routing best-effort to send packets from

source to destination

Multiplexing/demultiplexing from/to the transport

Fragmentation and reassembling partition a fragment into smaller

packets removed in IPv6

Error detection Does not provide

reliability or reservation

IP

Ethernet Cable/DSLWireless

TCP UDP

SSLTelnetEmail FTPWWW

21

Network Layer: IPv4 Header

22

Services Provided by UDP

A connectionless service Does not provide: connection

setup, reliability, flow control, congestion control, timing, or bandwidth guarantee why is there a UDP?

IP

Ethernet Cable/DSLWireless

TCP UDP

TelnetEmail FTPWWW

SSL

23

Transport Layer: Services Provided by TCP

Multiplexing/demultiplexing Reliable transport

between sending and receiving processes

setup required between sender and receiver: a connection-oriented service

Flow control sender won’t overwhelm receiver

Congestion control throttle sender when network

overloaded Error detection Does not provide

timing, minimum bandwidth guarantees

IP

Ethernet FDDIWireless

TCP UDP

SSLTelnetEmail FTPWWW

24

Transport Layer: TCP Header

25

Services Provided by Transport

Transmission control protocol (TCP)

multiplexing/demultiplexing reliable data transfer rate control: flow controland congestion control

User data protocol (UDP) multiplexing/demultiplexing

Host A

Hello

Host B

I am ready

DATA

ACK

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)

Secure Socket Layer Architecture

HTTP POP3

SSL Record-Layer Packet Format

20: change_cipher21: alert

22: handshake23: application

29

Summary: The Big Picture of the Internet Hosts and routers:

~500 mil. hosts 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 servicesprovided by each layer

the hourglass architecture of the Internet

IP

Ethernet Cable/DSLWireless

TCP UDP

TelnetEmail FTPWWWSSL

30

Outline

Recap ISO/OSI Layering and Internet Layering Application layer overview Examples

31

Application Layer: Goals Conceptual + implementation aspects of

network application protocols client server paradigm peer to peer paradigm

Learn about protocols by examining common application-layer protocols smtp/pop http ftp dns p2p

32

Network Applications vs. Application-layer Protocols

Network application: communicating, distributed processes

a process is a program that is running within a host

• a user agent is a process serving as an interface to the user

– web: browser– streaming audio/video: media

player processes running in different

hosts communicate by an application-layer protocol

e.g., email, WebApplication-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

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

33

How does an Application Access the Transport Service?

API: application programming interface

Defines interface between application and transport layer

Example: Socket API sometimes called "Berkeley sockets" acknowledging their

heritage from Berkeley Unix a socket consists of a host IP address and a 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

There are other API’s such as XTI (X/Open Transport Interface), a slight modification of the Transport Layer Interface (TLI) developed by AT&T.

More later!

34

App. and Trans.: App. Protocols and their Transport Protocols

Application

e-mailremote terminal access

Web file transfer

Internet telephony

remote file serverstreaming multimedia

Applicationlayer protocol

smtp [RFC 821]telnet [RFC 854]http [RFC 2068]

ftp [RFC 959]proprietary

(e.g., Vocaltec)NFS

proprietary

Underlyingtransport protocol

TCP/SSLTCPTCP/SSLTCPtypically UDP

TCP or UDPtypically UDP

An application needs to choose the transport protocol

35

Client-Server Paradigm

Typical network app has two pieces: client and server

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

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

request

reply

Two questions to ask about a C-S application- How does a client locate a server process?- Is the application scalable, extensible, robust?

36

Outline

Recap ISO/OSI Layering and Internet Layering Application layer overview Examples

37

Electronic Mail

Three major components:

User agents Mail servers Protocols

between mail servers• SMTP

between mail server and user agent

• POP3: Post Office Protocol [RFC 1939]

• IMAP: Internet Mail Access Protocol [RFC 1730]

user mailbox

outgoing message queue

mailserver

useragent

useragent

useragent

mailserver

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

POP3 orIMAP

38

Email as a Client-Server Application

S: 220 mr1.its.yale.edu C: HELO cyndra.yale.edu S: 250 Hello cyndra.cs.yale.edu, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Date: Wed, 23 Jan 2008 11:20:27 -0500 (EST)C: From: "Y. R. Yang" <[email protected]>C: To: "Y. R. Yang" <[email protected]>C: Subject: This is subjectC:C: This is the message body! C: Please don’t spoof!C:C: . S: 250 Message accepted for delivery C: QUIT S: 221 mr1.its.yale.edu closing connection

39

Mail Message Format

SMTP: protocol for exchanging email msgs

RFC 822: standard for text message format:

Header lines, e.g., To: From: Subject:

Body the “message”, ASCII

characters only

blankline

header

body

40

Message Format: Multimedia Extensions MIME: multimedia mail extension, RFC 2045, 2056 Additional lines in msg header declare MIME content type

From: [email protected]: [email protected] Subject: Network map. MIME-Version: 1.0 Content-Type: image/jpeg Content-Transfer-Encoding: base64

base64 encoded data ..... ......................... ......base64 encoded data

multimedia datatype, subtype,

parameter declaration

method usedto encode data

MIME version

encoded data

41

Multipart Type: How Attachment Works

From: [email protected]: [email protected] Subject: Network map. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789Content-Transfer-Encoding: quoted-printableContent-Type: text/plain

Hi, Attached is network topology map.--98766789Content-Transfer-Encoding: base64Content-Type: image/jpeg

base64 encoded data ..... ......................... ......base64 encoded data --98766789--

42

POP3 Protocol: Mail Access

Authorization phase client commands:

user: declare username

pass: password server responses

+OK -ERR

Transaction phase, client: list: list message

numbers retr: retrieve message by

number dele: delete quit

C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off

S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on

%telnet <netid>.mail.yale.edu 110%openssl s_client –connect pop.gmail.com:995

43

Discussions: Positive

Some decisions we can learn from the design of the email application separate protocols for different functions

• email retrieval (e.g., POP3, IMAP)• mail transmission (SMTP)

simple/basic requests to implement basic control; fine-grain 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

44

Discussions: Negative

Some design features which are missing handling spam

• http://www.yale.edu/its/email/spam/spam.html

Optional Slides

45

Details of the Seven ISO/OSI Layers

47

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

48

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)…

49

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

50

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

51

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

52

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

53

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

54

Application Layer (7)

Service: any service provided to end users

Interface: depends on the application Protocol: depends on the application Examples: FTP, Telnet, WWW

55

What Transport Service Does an App Need?

Data loss some apps can tolerate some packet losses other apps require 100% reliable data transfer

Timing some apps require low delay to be “effective”

Bandwidth some apps require minimum amount of bandwidth to be

“effective” other apps make use of whatever bandwidth they get

56

Transport Service Requirements of Common Apps

Application

file transfere-mail

Web documentsreal-time audio/video

stored audio/videointeractive games

financial apps

Data loss

no lossno lossno lossloss-tolerant

loss-tolerantloss-tolerantno loss

Bandwidth

elasticelasticelasticaudio: 5Kb-1Mbvideo:10Kb-5Mbsame as above few Kbps upelastic

Time Sensitive

nononoyes, 100’s msec

yes, few secsyes, 100’s msecyes and no