CSE 524: Lecture 6

29
CSE 524: Lecture 6 Application layer protocols

description

Application layer protocols. CSE 524: Lecture 6. Where we’re at…. Internet architecture and history Internet protocols in practice Application layer Overview and functions Network programming interface Specific application protocols HTTP DNS, SMTP/POP, FTP, P2P Transport layer - PowerPoint PPT Presentation

Transcript of CSE 524: Lecture 6

Page 1: CSE 524:  Lecture 6

CSE 524: Lecture 6

Application layer protocols

Page 2: CSE 524:  Lecture 6

Where we’re at…● Internet architecture and history● Internet protocols in practice● Application layer

– Overview and functions– Network programming interface– Specific application protocols

● HTTP● DNS, SMTP/POP, FTP, P2P

● Transport layer● Network layer● Data-link layer● Physical layer

Page 3: CSE 524:  Lecture 6

First….a quick refresher

Page 4: CSE 524:  Lecture 6

DNS lookup methods● Recursive queries

– Server goes out and searches for more info on behalf of the client (recursive)

– Only returns final answer or “not found”● Iterative

– Server responds with as much as it knows (i.e. name of server to contact next)

– Client iteratively queries additional servers

Page 5: CSE 524:  Lecture 6

AL: DNS Lookup Caching Example

ClientLocal

DNS server

root & edu

DNS server

ogi.edu

DNS server

www.cse.ogi.edu

NS ogi.eduwww.cse.ogi.edu

NS cse.ogi.edu

www=IPaddr

cse.ogi.edu

DNS

server

Page 6: CSE 524:  Lecture 6

AL: Subsequent Lookup Example

ClientLocal

DNS server

root & edu

DNS server

ogi.edu

DNS server

cse.ogi.edu

DNS

server

ftp.cse.ogi.edu

ftp=IPaddr

ftp.cse.ogi.edu

cse.ogi.edu entry cached

Page 7: CSE 524:  Lecture 6

And now…

Page 8: CSE 524:  Lecture 6

AL: A word about iterated queries and caching

● Recall– Recursive query to local DNS server

– Iterative query from local DNS server on● Why not do iterative queries from host?

– Win2k client● Does iterative queries from host

– Caching implications?

Page 9: CSE 524:  Lecture 6

AL: DNS dig example● Real example using dig and named

– Shows iterative queries, recursive queries, and caching

● dig– cat /etc/resolv.conf– dig +norecurse www.thefengs.com.– dig @M.GTLD-SERVERS.NET. +norecurse www.thefengs.com.– dig @dns1.register.com. +norecurse www.thefengs.com.– dig +norecurse www.thefengs.com.– dig +recurse www.thefengs.com.– dig +norecurse www.thefengs.com.

Page 10: CSE 524:  Lecture 6

AL: DNS protocol, messages

DNS protocol : query and repy messages, both with same message format

msg header● identification: 16 bit # for

query, reply to query uses

same #● flags:

● query or reply● recursion desired ● recursion available● reply is authoritative

Page 11: CSE 524:  Lecture 6

AL: DNS protocol, messages

Name, type fields for a query

RRs in reponseto query

records forauthoritative servers

additional “helpful”info that may be used

Page 12: CSE 524:  Lecture 6

AL: DNS issues● Poor static configuration (root server list)● Lack of exponential backoff● No centralized caching per site

– Each machine runs on caching local server ● UDP used for queries

– Need reliability -> Why not TCP?● Vulnerability of 13 TLD servers

– Jon Postel and his mobility “experiment”

– Attacks on TLD have occurred

Page 13: CSE 524:  Lecture 6

AL: Electronic Mail

Three major components: • user agents (i.e. mail readers)

● Mozilla, Eudora, pine● compose, edit, read, send

• mail servers ● Message storage and transfer● Sendmail, postfix, etc.● Can sometimes be co-located with

user agents• Transfer protocol

● SMTP

● simple mail transfer protocol

user mailbox

outgoing message queue

mailserver

useragent

useragent

useragentmail

server

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 14: CSE 524:  Lecture 6

AL: Mail servers• Stores mailbox which contains

incoming messages for user

• Stores message queue of

outgoing mail messages– Storage for messages where

destination is temporarily unavailable

• Uses SMTP to send email

messages to other mail servers

– Mail servers are both clients

and servers to each other

mailserver

useragent

useragent

useragentmail

server

useragent

useragent

mailserver

useragent

SMTP

SMTP

SMTP

Page 15: CSE 524:  Lecture 6

AL: Electronic Mail: smtp [RFC 821]

• Uses TCP to reliably transfer email message from client to server, port 25

• direct transfer: sending server to receiving server

• relay: intermediate server transfer

• three phases of transfer

– handshaking (greeting)

– transfer of messages

– closure

• command/response interaction

– commands: ASCII text

– response: status code and phrase

Page 16: CSE 524:  Lecture 6

AL: Sample smtp interaction

S: 220 hamburger.edu

C: HELO crepes.fr

S: 250 Hello crepes.fr, 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: Do you like ketchup?

C: How about pickles?

C: .

S: 250 Message accepted for delivery

C: QUIT

S: 221 hamburger.edu closing connection

Page 17: CSE 524:  Lecture 6

AL: try smtp interaction for yourself:

● telnet servername 25

● see 220 reply from server● enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands

above lets you send email without using email client (reader)

Page 18: CSE 524:  Lecture 6

AL: smtp: final words• SMTP

– uses persistent connections

– requires that message (header & body) be in 7-bit ascii

– certain character strings are not permitted in message (e.g., CRLF.CRLF). Thus message has to be encoded (usually into either base-64 or quoted printable)

– smtp server uses CRLF.CRLF to determine end of message

Comparison with http

• http: pull

• email: push

• both have ASCII command/response interaction, status codes

Page 19: CSE 524:  Lecture 6

AL: Mail message formatsmtp: protocol for exchanging

email msgs

RFC 822: standard for text

message format:

• header lines, e.g.,– To:

– From:

– Subject:

different from smtp commands!

• body– the “message”, ASCII characters only

• HTTP->html as SMTP->e-mail

header

body

blankline

Page 20: CSE 524:  Lecture 6

AL: Message format: multimedia extensions

• MIME: multimedia mail extension, RFC 2045, 2056

• additional lines in msg header declare MIME content type

From: [email protected]

To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Transfer-Encoding: base64

Content-Type: image/jpeg

base64 encoded data .....

.........................

......base64 encoded data

multimedia datatype, subtype,

parameter declaration

method usedto encode data

MIME version

encoded data

Page 21: CSE 524:  Lecture 6

AL: MIME typesContent-Type: type/subtype; parameters

Text• example subtypes: plain, html

Image• example subtypes: jpeg, gif

Audio• exampe subtypes: basic (8-

bit mu-law encoded), 32kadpcm (32 kbps coding)

Video

• example subtypes: mpeg, quicktime

Application

• other data that must be processed

by reader before “viewable”

• example subtypes: msword, octet-stream

Page 22: CSE 524:  Lecture 6

AL: Multipart TypeFrom: [email protected]

To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary=98766789

--98766789

Content-Transfer-Encoding: quoted-printable

Content-Type: text/plain

Dear Bob,

Please find a picture of a crepe.

--98766789

Content-Transfer-Encoding: base64

Content-Type: image/jpeg

base64 encoded data .....

.........................

......base64 encoded data

--98766789--

Page 23: CSE 524:  Lecture 6

AL: Mail access protocols

• Mail delivery/transfer protocol– SMTP

• Mail access protocol: retrieval from server– POP: Post Office Protocol [RFC 1939]

• authorization (agent <-->server) and download – IMAP: Internet Mail Access Protocol [RFC 1730]

• more features (more complex)• manipulation of stored msgs on server

– HTTP: Hotmail , Yahoo! Mail, Horde/IMP etc.

useragent

sender’s mail server

useragent

SMTP SMTP POP3 orIMAP

receiver’s mailserver

useragent

POP3 orIMAP

web server

HTTP

web server

SMTP

useragent

HTTP

Page 24: CSE 524:  Lecture 6

AL: POP3 protocol

authorization phase• client commands:

– user: declare username– pass: password

• server responses– +OK– -ERR

transaction phase• client commands:

• list: list message numbers• top: get head of message• 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

Page 25: CSE 524:  Lecture 6

AL: ftp: the file transfer protocol

• transfer file to/from remote host

• client/server model

– client: side that initiates transfer (either to/from remote)

– server: remote host

• ftp: RFC 959

• ftp server: port 21

file transfer FTPserver

FTP userinterface

FTPclient

local filesystem

remote filesystem

user at host

Page 26: CSE 524:  Lecture 6

AL: ftp: separate control, data connections

• Client contacts server at port 21 using TCP• “Control connection” for exchanging commands and responses

• Out-of-band signalling between end-points

• Server maintains “state”: current directory, earlier authentication– Note the difference to HTTP authentication

• When files need to be transferred• Request goes through control connection

• A new TCP connection for data transfer is negotiated and created

• Negotiation determines end-points of transfer and ports to use for new connection

• Protocol allows one ftp client to initiate a transfer between two ftp servers

FTPclient

FTPserver

TCP control connection

port 21

TCP data connectionport 20

Page 27: CSE 524:  Lecture 6

AL: ftp commands, responses

Sample commands:• sent as ASCII text over

control channel• USER username• PASS password

• LIST return list of file in

current directory

• RETR filename retrieves

(gets) file

• STOR filename stores

(puts) file onto remote host

Sample return codes• status code and phrase (as in

http)• 331 Username OK, password required

• 125 data connection already open; transfer starting

• 425 Can’t open data connection

• 452 Error writing file

Page 28: CSE 524:  Lecture 6

AL: ftp, NAT and the PORT command● Normal FTP mode

– Server has port 20, 21 reserved– Client initiates control connection by connecting to port 21 on server– Client allocates port X for data connection– Client passes the data connection port (X) and its IP address in a PORT

command to server– Server parses PORT command and initiates connection from its own

port 20 to the client on port X– What if client is behind a NAT device?

● NAT must capture outgoing connections destined for port 21 and look to translate X within payload

– What if NAT doesn’t parse PORT command correctly?– What if ftp server is running on a different port than 21?

– http://www.practicallynetworked.com/support/linksys_ftp_port.htm

Page 29: CSE 524:  Lecture 6

AL: ftp, NAT, and the PORT command● Passive (PASV) mode

– Client initiates control connection by connecting to port 21 on server– Client enables “Passive” mode– Server responds with PORT command giving client the IP address and

port to use for subsequent data connection (usually port 20, but can be bypassed)

– Client initiates data connection by connecting to specified port on server– Most web browsers do PASV-mode ftp– What if server is behind a NAT device?

● See client issues– What if both client and server are behind NAT devices?

● Problem● Similar to P2P xfers