Chapter 2. The Application Layer
1-6/2006
Chương 2 (tiếp).
Giao thức tầng ứng dụng (application layer)
Đặng Xuân Hà
F.I.T, HAU1
/>
Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.
2.3. Web design and HTTP, Web programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.
2
Chapter 2. The Application Layer
1-6/2006
2.4. FTP - File Transfer Protocol
user
at host
FTP
FTP
user
client
interface
file transfer
local file
system
Truyền/tải tệp (to/from remote host).
Client/server model
Client:
đưa ra yêu cầu truyền tải.
Server
= remote host.
FTP
server
remote file
system
FTP: RFC 959
1-6/2006
Chapter 2. The Application Layer
3
1
Chapter 2. The Application Layer
1-6/2006
FTP: control & data connections
TCP control connection
port 21
FTP
client
TCP data connection
port 20
FTP sử dụng TCP.
FTP sử dụng đồng thời 2 liên kết TCP tại 2 cổng:
FTP
server
TCP
control connection, port 21: trao đổi các thông điệp điều
khiển (commands, responses…).
TCP
data connection, port 20: truyền tải tệp.
FTP lưu giữ trạng thái client trong phiên làm việc (state vs.
HTTP is stateless).
1-6/2006
4
Chapter 2. The Application Layer
FTP: Quá trình trao đổi/truyền tải
TCP control connection
port 21
client
TCP data connection
port 20
server
¾
FTP server nghe tại cổng 21.
¾
FTP client yêu cầu kết nối với FTP server qua TCP tại cổng 21. Gửi
user & password để đăng nhập.
¾
FTP server chấp nhận, liên kết điều khiển (control connection) được
thiết lập. Quá trình trao đổi có thể bắt đầu.
¾
Khi server nhận được lệnh truyền tệp, nó mở liên kết dữ liệu (data
connection) tới client, tệp được truyền qua liên kết này.
¾
Sau khi truyền xong một tệp, server ngắt liên kết dữ liệu (mỗi liên kết
chỉ sử dụng để truyền một tệp).
1-6/2006
Chapter 2. The Application Layer
5
FTP commands, responses
Lệnh (commands), phúc đáp (responses) được truyền dạng ASCII
Sample commands:
Sample return codes
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
1-6/2006
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
Chapter 2. The Application Layer
6
2
Chapter 2. The Application Layer
1-6/2006
FTP clients & servers
FTP
FTP
user
client
interface
user
at host
file transfer
remote file
system
local file
system
Command-based client:
Windows
FTP command.
Linux FTP command.
FTP
server
Microsoft FTP Service
…
GUI clients
Windows
CuteFTP,
Commander.
WS_FTP…
7
Chapter 2. The Application Layer
1-6/2006
Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.
2.3. Web design and HTTP, Web programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.
8
Chapter 2. The Application Layer
1-6/2006
2.5. Electronic Mail
Ba thành phần chính:
Soạn, đọc thư (messages).
Vd: Outlook, Eudora, Netscape
Messenger...
Lưu trữ, xử lý thư.
Vd: Exchange, MDeamon…
Protocols
Simple Mail Transfer Protocol (SMTP).
Post Office Protocol (POP).
Internet Mail Access Protocol (IMAP).
HTTP.
1-6/2006
mail
server
SMTP
SMTP
Mail servers
user
agent
User agents (mail clients)
mail
server
user
agent
Chapter 2. The Application Layer
SMTP
user
agent
user
agent
mail
server
user
agent
user
agent
outgoing
message queue
user mailbox
9
3
Chapter 2. The Application Layer
1-6/2006
Alice <> Æ Bob <>
1) Alice sử dụng UA soạn thư, đ/c gửi 4) Mail server của Alice gửi
thư qua liên kết TCP.
tới “to”:
2) Alice’s UA gửi thư đến mail server 5) Mail server của Bob cất thư
nhận được vào hòm thư của
của Alice, bức thư được xếp vào
Bob.
hàng đợi (message queue).
6) Bob dùng UA để lấy thư từ
3) Mail server của Alice mở liên kết
server về rồi đọc thư.
TCP tới mail server của Bob.
1
user
agent
mail
server
mail
server
3
2
Outlook
4
hau1.edu.vn
5
yahoo.com
6
user
agent
Yahoo! Mail
Chapter 2. The Application Layer
1-6/2006
10
SMTP (Simple Mail Transfer Protocol)
Sử dụng liên kết TCP (port 25) để gửi mails:
Từ
Từ
sender’s mail client tới sender’s mail server.
sender’s mail server tới receiver’s mail server.
Ba pha:
Bắt
tay (handshaking/greeting).
đổi messages.
Kết thúc.
Trao
Command/response:
commands:
responses:
ASCII.
status code & phrase.
Chapter 2. The Application Layer
1-6/2006
11
SMTP: sample interaction (C: client; S: server)
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
220 yahoo.com
HELO hau1.edu.vn
250 Hello hau1.edu.vn, pleased to meet you
MAIL FROM: <>
250 Sender ok
RCPT TO: <>
250 ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Hi Bob!
Would you like to play tennis this evening?
.
250 Message accepted for delivery
QUIT
221 yahoo.com closing connection
1-6/2006
Chapter 2. The Application Layer
12
4
Chapter 2. The Application Layer
1-6/2006
SMTP: more
SMTP sử dụng persistent connection: một liên kết, nhiều thông điệp.
Thông điệp (kể cả nội dung thư) phải được mã hoá dạng ASCII 7 bit
(US-ASCII).
Đánh dấu kết thúc msg bởi CRLF.CRLF
Một số dữ liệu nhị phân (vd: picture) có thể chứa CRLF.CRLF Æ cần
mã hoá để đảm bảo không có dữ liệu nào trùng với ký hiệu kết thúc
message (vd: base64).
So sánh với HTTP:
HTTP: pull protocol <> SMTP: push protocol.
Cùng sử dụng ASCII (command/req/resp/status code).
HTTP: mỗi obj chứa trong một msg <> SMTP: cho phép nhiều obj (text,
picture…) trong một msg (multipart msg).
13
Chapter 2. The Application Layer
1-6/2006
Mail message format
SMTP: giao thức trao đổi email msg
(exchange msgs).
RFC 822: standard for text message
format:
Header lines, vd:
To:
From:
Subject:
Khác với smtp commands (MAIL FROM,
RCPT TO,…)!
header
blank
line
body
Body
The “message”.
ASCII
Chapter 2. The Application Layer
1-6/2006
14
MIME (Multipurpose Internet Mail Extension)
RFC 822: text msg, gặp khó khăn với multimedia.
MIME: RFC 2045, RFC 2056.
So với RFC 822, MIME thêm vào các header lines để mô
tả nội dung của email msg.
MIME version
method used
to encode data
multimedia data
type, subtype,
parameter declaration
encoded data
1-6/2006
From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
Chapter 2. The Application Layer
15
5
Chapter 2. The Application Layer
1-6/2006
MIME: Content types
Content-type: type/subtype; parameters
Chapter 2. The Application Layer
1-6/2006
16
MIME: Encoding types
Content-Transfer-Encoding: Encoding type
Chapter 2. The Application Layer
1-6/2006
17
MIME: Multiple objects mail message
From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--StartOfNextPart
1-6/2006
Chapter 2. The Application Layer
18
6
Chapter 2. The Application Layer
1-6/2006
The received mail message
Server thêm vào dòng header mỗi khi nhận thư:
Received:
Return-path:
Mail có thể được chuyển qua nhiều server khác nhau (forward).
Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT
Received: from crepes.fr by hamburger.edu; 12 Oct 98 15:27:39 GMT
From:
To:
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .......
........................................
.......base64 encoded data
19
Chapter 2. The Application Layer
1-6/2006
Hiển thị full headers với Y! Mail
2.General Preference
1.Mail Options
3.Messages: Show all…
20
Chapter 2. The Application Layer
1-6/2006
Mail access protocol
user
agent
SMTP
SMTP
sender’s mail
server
access
protocol
user
agent
receiver’s mail
server
SMTP: giao thức gửi mail tới server.
Mail access protocol: giao thức nhận mail từ server.
POP
(Post Office Protocol): RFC 1939. TCP Port 110.
(Internet Mail Access Protocol): RFC 1730. TCP port 143.
HTTP: Hotmail, Yahoo!...
IMAP
1-6/2006
Chapter 2. The Application Layer
21
7
Chapter 2. The Application Layer
1-6/2006
POP3 protocol
[1] Authorization phase
client commands:
user: declare username
pass: password
server responses
+OK
-ERR
[2] Transaction phase, client:
list: list message numbers
retr: retrieve message by number
dele: delete
[3] Update phase:
quit
những thay đổi (dele) được cập nhật
S:
C:
[1] S:
C:
S:
C:
S:
S:
S:
C:
[2]
S:
S:
C:
C:
S:
S:
C:
C:
[3] S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 1 contents>
.
dele 2
quit
+OK POP3 server signing off
Chapter 2. The Application Layer
1-6/2006
22
POP3 (more) and IMAP
IMAP4
More about POP3
Chế độ “download and delete”
(xem vd trước):
Msg bị xoá khi thoát.
Không thể nhận msg lần nữa.
Lưu trữ toàn bộ msg tại
server.
Cho phép người dùng tổ chức
lưu trữ trên server (tạo thư
mục, di chuyển msg…)
Lưu trạng thái giữa các phiên
(state):
“Download-and-keep”:
Msg được giữ lại server.
Có thể nhận msg nhiều lần từ
nhiều client.
Không lưu trạng thái giữa các
phiên làm việc (stateless).
1-6/2006
Thư mục tự tạo.
Các msgs đã di chuyển.
Chapter 2. The Application Layer
23
Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.
2.3. Web design and HTTP, Web programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.
1-6/2006
Chapter 2. The Application Layer
24
8
Chapter 2. The Application Layer
1-6/2006
2.6. DNS (Domain Name System)
Mr Binh
HTTP (Internet Explorer)
www.hau1.edu.vn
From: Đ.V.Bình
To: Phòng ĐT
Phòng ĐT
=> H.101
203.162.8.82
DNS client
Ms Nam
www.hau1.edu.vn
=> 203.162.8.82
DNS servers
Địa chỉ IP (32 bit) được sử dụng để xác định một nút trong mạng
TCP/IP: 203.162.8.82 Æ khó nhớ!
Æ Sử dụng tên (host name) song song với IP address.
DNS (RFC 1034, RFC 1035, RFC 2136):
Chuyển host name Æ IP address.
25
Chapter 2. The Application Layer
1-6/2006
DNS services
DNS không tương tác trực tiếp với users mà cung cấp
các dịch vụ cho các chương trình khác (HTTP, FTP…)
thuộc tầng ứng dụng:
Host name Æ IP (hostname to IP resolve).
Host aliasing.
Mail server aliasing.
Load distribution (phân tán tải)
Một
máy tính có tên chính thức và có thể có bí danh (alias).
@hau1.edu.vn
Æ mail server address = ?
Một
dịch vụ web (cnn.com, yahoo.com…) có thể được cung cấp
tại nhiều server có IP khác nhau để phân tán tải do lượng người
sử dụng cao.
26
Chapter 2. The Application Layer
1-6/2006
Internet domain name space
vn
Domain name (tên miền):
Miền = tập hợp các nút mạng có cùng
một nút cha trong sơ đồ trên.
Vd:
hau1.edu.vn; yahoo.com; yale.edu.
Sub-domain: cs.yale.edu;
Host name: www.hau1.edu.vn;
mail.hau1.edu.vn
1-6/2006
vn: Vietnam.
edu: education.
hau1: Hanoi Agricultural University.
www: máy chủ world wide web.
mail: máy chủ mail.
Chapter 2. The Application Layer
27
9
Chapter 2. The Application Layer
1-6/2006
Domain name servers
Root DNS Servers
com DNS servers
yahoo.com
DNS servers
amazon.com
DNS servers
org DNS servers
pbs.org
DNS servers
edu DNS servers
poly.edu
umass.edu
DNS servers DNS servers
Vd: client muốn biết IP của www.amazon.com thì:
Tìm địa chỉ của com DNS servers Å hỏi Root DNS servers.
amazon.com Å com DNS servers.
www.amazon.com Å amazon.com DNS servers.
28
Chapter 2. The Application Layer
1-6/2006
DNS: Root name servers
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los
Angeles)
d U Maryland College Park, MD
g US DoD Vienna, VA
h ARL Aberdeen, MD
k RIPE London (also Amsterdam,
Frankfurt)
i Autonomica, Stockholm (plus 3
other locations)
j Verisign, ( 11 locations)
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
13 root name
servers
worldwide
CA (and 17 other locations)
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
Khi local name server không thể chuyển host name Æ IP, gửi yêu cầu tới root srv.
root name server:
Liên lạc với authoritative name server nếu chưa thể ánh xạ đ/c ngay.
Lấy kết quả ánh xạ gửi về từ authoritative name server.
Trả kết quả về cho local name server.
Chapter 2. The Application Layer
1-6/2006
29
TLD and Authoritative Servers
Top-level domain (TLD) servers: chịu trách nhiệm về các
miền com, org, net, edu… và uk, fr, ca, jp…
Network
Solutions: quản lý com TLD servers.
Educause:
quản lý edu TLD servers.
Authoritative DNS servers:
Mỗi
host trong mạng muốn được biết đến phải được khai báo với
một authoritiative DNS server.
servers của các tổ chức ánh xạ hostname Æ IP cho các hosts
của tổ chức đó (vd: web, mail…).
DNS
Có
thể được quản lý bởi các tổ chức hay nhà cung cấp dịch vụ.
1-6/2006
Chapter 2. The Application Layer
30
10
Chapter 2. The Application Layer
1-6/2006
Local name server
Thuộc quản lý của ISP (ISP, company, university…).
Khi một host muốn biết IP của một host nào đó, trước tiên,
nó “hỏi” local name server.
Không nhất thiết phải nằm trong kiến trúc DNS servers
(độc lập).
“Gần” máy tính của người sử dụng nhất nên thường được
“hỏi thăm” đầu tiên mỗi khi có truy vấn DNS.
Xem Windows Local DNS: ipconfig
31
Chapter 2. The Application Layer
1-6/2006
DNS example 1
Tình huống:
host surf.eurecom.fr cần đ/c
IP của gaia.cs.umass.edu
1. Liên lạc với local DNS
server: dns.eurecom.fr
2. dns.eurecom.fr liên lạc với
root name server (nếu cần)
3. root name server liên lạc với
authoritative name server:
dns.umass.edu (nếu cần)
root name server
2
local name server
dns.eurecom.fr
1
4
3
5
Authorititive
name server
dns.umass.edu
6
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
32
Chapter 2. The Application Layer
1-6/2006
DNS example 2
Root name server có thể:
Không biết authoritative
name server (ans).
Biết intermediate name
server (ins)
Từ
ins có thể tìm ra ans
root name server
6
2
7
local name server
dns.eurecom.fr
1
8
requesting host
3
intermediate name server
dns.umass.edu
4
5
authoritative name server
dns.cs.umass.edu
surf.eurecom.fr
gaia.cs.umass.edu
1-6/2006
Chapter 2. The Application Layer
33
11
Chapter 2. The Application Layer
1-6/2006
DNS example 3
root name server
recursive query:
A hỏi B, B hỏi C, C hỏi
D,… rồi trả lời ngược lại.
Server được hỏi chịu tải
nặng gấp đôi?
iterative query:
2
4
7
local name server
dns.eurecom.fr
1
DNS server được hỏi gợi
ý hỏi một server khác.
“I don’t know this name,
but ask this server”
iterated query
3
intermediate name server
dns.umass.edu
5
8
requesting host
6
authoritative name server
dns.cs.umass.edu
surf.eurecom.fr
gaia.cs.umass.edu
Chapter 2. The Application Layer
1-6/2006
34
DNS: caching & updating
Mỗi khi DNS server nhận được yêu cầu tra cứu IP,
IP mà nó tìm được sẽ được lưu lại phục vụ cho
những lần tra cứu tiếp theo.
Timeout:
thời gian hết hạn (sau một khoảng thời gian,
bản ghi cache tương ứng bị xoá).
TLD servers thường được cache tại local name servers.
Cơ chế cập nhật/thông báo được đưa ra bởi IETF:
RFC
2136
/>
Chapter 2. The Application Layer
1-6/2006
35
DNS records
DNS: distributed db storing resource records (RR)
RR format: (name,
Type=A
= hostname
value = IP address
name
Type=NS
value, type, ttl)
Type=CNAME
name
= “bí danh” (alias).
www.ibm.com
value
= tên thật.
servereast.backup2.ibm.com
= domain name
= IP address của Type=MX
name = domain name
authoritative name
server cho domain này
value = tên của mail server
name
value
1-6/2006
Chapter 2. The Application Layer
36
12
Chapter 2. The Application Layer
1-6/2006
DNS protocol, messages
DNS Protocol: Query/reply messages có cùng format.
Msg header (12 bytes)
Identification: số 16 bit reply
msg sử dụng cùng id với req
msg.
Flags: nhiều bit, mỗi bit có một
ý nghĩa:
Query (0) hay reply (1)
Authoritative DNS.
recursion desired: client mong
muốn DNS server tra cứu đệ quy.
recursion available: server hỗ trợ
tra cứu đệ quy.
1-6/2006
Chapter 2. The Application Layer
37
Chapter 2. The Application Layer
38
DNS messages
Name, type fields
for a query
RRs in reponse
to query
records for
authoritative servers
additional “helpful”
info that may be used
1-6/2006
Summary
Telnet!
√ √ √ √
RTSP?
Terminal Emulation
?
Web programming
TCP Socket Programming
1-6/2006
?
Chapter 2. The Application Layer
39
13
Chapter 2. The Application Layer
1-6/2006
Bài tập
4. Nhận thư điện tử, trả lời câu hỏi: ai gửi, lúc nào, từ
đâu (sử dụng dịch vụ của ISP nào)? Bài nộp dạng
file *.txt
5. Viết mail client cho phép gửi một bức tới nhiều
người nhận + hướng dẫn sử dụng chương trình:
Định
Danh
dạng thư?
sách người nhận? (table, record, field).
1-6/2006
Chapter 2. The Application Layer
40
14