cse 524: lecture 6 application layer protocols. where we’re at… ● internet architecture and...
TRANSCRIPT
![Page 1: CSE 524: Lecture 6 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/1.jpg)
CSE 524: Lecture 6
Application layer protocols
![Page 2: CSE 524: Lecture 6 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/2.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/3.jpg)
First….a quick refresher
![Page 4: CSE 524: Lecture 6 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/4.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/5.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/6.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/7.jpg)
And now…
![Page 8: CSE 524: Lecture 6 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/8.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/9.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/10.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/11.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/12.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/13.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/14.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/15.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/16.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/17.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/18.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/19.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/20.jpg)
AL: Message format: multimedia extensions
• MIME: multimedia mail extension, RFC 2045, 2056
• additional lines in msg header declare MIME content type
From: [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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/21.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/22.jpg)
AL: Multipart TypeFrom: [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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/23.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/24.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/25.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/26.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/27.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/28.jpg)
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 Application layer protocols. Where we’re at… ● Internet architecture and history ● Internet protocols in practice ● Application layer](https://reader035.vdocuments.site/reader035/viewer/2022081603/56649f205503460f94c39349/html5/thumbnails/29.jpg)
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