¾ FTP server chấp nhận, liên kết điều khiển control connection được thiết lập.. ¾ 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
Trang 1Chương 2 (tiếp).
Giao thức tầng ứng dụng (application layer)
Đặng Xuân Hà
F.I.T, HAU1
http://www.hau1.edu.vn/it/dxha
Chapter 2 The Application Layer 2
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.
2.4 FTP - File Transfer Protocol
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: RFC 959
server
FTP user interface
FTP client local file
user
at host
Trang 2Chapter 2 The Application Layer 4
1-6/2006
FTP: control & data connections
FTP sử dụng TCP.
FTP sử dụng đồng thời 2 liên kết TCP tại 2 cổng:
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).
FTP client serverFTP
TCP control connection port 21 TCP data connection port 20
Chapter 2 The Application Layer 5
1-6/2006
FTP: Quá trình trao đổi/truyền tải
¾ 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)
TCP control connection port 21 TCP data connection port 20
FTP commands, responses
Sample commands:
sent as ASCII text over control
channel
LISTreturn list of file in
current directory
RETR filenameretrieves
(gets) file
STOR filenamestores
(puts) file onto remote host
Sample return codes
status code and phrase (as in HTTP)
password required
already open;
transfer starting
connection
file
Lệnh (commands), phúc đáp (responses) được truyền dạng ASCII
Trang 3Chapter 2 The Application Layer 7
1-6/2006
FTP clients & servers
Command-based client:
Windows FTP command
Linux FTP command
GUI clients
Windows Commander
CuteFTP, WS_FTP…
Microsoft FTP Service
server
FTP user interface
FTP client local file system
remote file system
user
at host
Chapter 2 The Application Layer 8
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.
2.5 Electronic Mail
Ba thành phần chính:
User agents (mail clients)
Soạn, đọc thư (messages).
Vd: Outlook, Eudora, Netscape
Messenger
Mail servers
Lưu trữ, xử lý thư.
Vd: Exchange, MDeamon…
Protocols
Simple Mail Transfer Protocol (SMTP).
Post Office Protocol (POP).
Internet Mail Access Protocol (IMAP).
outgoing message queue
mail server
user agent user agent user agent mail
server user agent user agent
mail server
user agent
SMTP SMTP SMTP
Trang 4Chapter 2 The Application Layer 10
1-6/2006
Alice <alice@hau1.edu.vn> Æ Bob <bob@yahoo.com>
1) Alice sử dụng UA soạn thư, đ/c gửi
tới “to”: bob@yahoo.com
2) Alice’s UA gửi thư đến mail server
của Alice, bức thư được xếp vào
hàng đợi (message queue)
3) Mail server của Alice mở liên kết
TCP tới mail server của Bob
4) Mail server của Alice gửi thư qua liên kết TCP
5) Mail server của Bob cất thư nhận được vào hòm thư của Bob
6) Bob dùng UA để lấy thư từ server về rồi đọc thư
user agent
mail server
mail server agentuser 1
hau1.edu.vn yahoo.com
Chapter 2 The Application Layer 11
1-6/2006
SMTP (Simple Mail Transfer Protocol)
Từ sender’s mail client tới sender’s mail server.
Từ sender’s mail server tới receiver’s mail server.
Bắt tay (handshaking/greeting).
Trao đổi messages.
Kết thúc.
commands: ASCII.
responses: status code & phrase.
SMTP: sample interaction (C: client; S: server)
S: 220 yahoo.com
C: HELO hau1.edu.vn
S: 250 Hello hau1.edu.vn, pleased to meet you
C: MAIL FROM: <alice@hau1.edu.vn>
S: 250 alice@hau1.edu.vn Sender ok
C: RCPT TO: <bob@yahoo.com>
S: 250 bob@yahoo.com Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Hi Bob!
C: Would you like to play tennis this evening?
C:
S: 250 Message accepted for delivery
C: QUIT
S: 221 yahoo.com closing connection
Trang 5Chapter 2 The Application Layer 13
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ứaCRLF.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).
Chapter 2 The Application Layer 14
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,…)!
The “message”.
ASCII
header
body
blank line
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.
From: alice@hau1.edu.vn To: bob@yahoo.com Subject: Picture of yummy crepe
MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data
base64 encoded data
multimedia data
type, subtype, parameter declaration
method used
to encode data
MIME version
encoded data
Trang 6Chapter 2 The Application Layer 16
1-6/2006
MIME: Content types
Content-type: type/subtype; parameters
Chapter 2 The Application Layer 17
1-6/2006
MIME: Encoding types
Content-Transfer-Encoding: Encoding type
From: alice@hau1.edu.vn
To: bob@yahoo.com
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
MIME: Multiple objects mail message
Trang 7Chapter 2 The Application Layer 19
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: alice@crepes.fr
To: bob@hamburger.edu
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 20
1-6/2006
Hiển thị full headers với Y! Mail
1.Mail Options
2.General Preference
3.Messages: Show all…
Mail access protocol
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
IMAP (Internet Mail Access Protocol): RFC 1730 TCP port 143
HTTP: Hotmail, Yahoo!
user agent sender’s mail
server
user agent
protocol
receiver’s mail server
Trang 8Chapter 2 The Application Layer 22
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: +OK POP3 server ready C: user bob
S: +OK C: pass hungry S: +OK user successfully logged on
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
[1]
[2]
[3]
Chapter 2 The Application Layer 23
1-6/2006
POP3 (more) and IMAP
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.
“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)
IMAP4
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):
Thư mục tự tạo.
Các msgs đã di chuyển.
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.
Trang 9Chapter 2 The Application Layer 25
1-6/2006
2.6 DNS (Domain Name System)
Đị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.
From: Đ.V.Bình
To: Phòng ĐT
Phòng ĐT
=> H.101
HTTP (Internet Explorer)
www.hau1.edu.vn
=> 203.162.8.82
DNS client
www.hau1.edu.vn
203.162.8.82
DNS servers
Mr Binh
Ms Nam
Chapter 2 The Application Layer 26
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.
Một máy tính có tên chính thức và có thể có bí danh (alias)
Mail server aliasing.
@hau1.edu.vn Æ mail server address = ?
Load distribution (phân tán tải)
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
Internet domain name space
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
vn: Vietnam.
edu: education.
hau1: Hanoi Agricultural University.
www: máy chủ world wide web.
mail: máy chủ mail.
vn
Trang 10Chapter 2 The Application Layer 28
1-6/2006
Domain name servers
Vd: client muốn biết IP củawww.amazon.comthì:
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.
Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.edu DNS servers
umass.edu DNS servers yahoo.com
DNS servers amazon.com
pbs.org DNS servers
Chapter 2 The Application Layer 29
1-6/2006
DNS: Root name servers
13 root name servers worldwide
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
e NASA Mt View, CA
f Internet Software C Palo Alto,
CA (and 17 other locations)
i Autonomica, Stockholm (plus 3 other locations)
k RIPE London (also Amsterdam, Frankfurt)
m WIDE Tokyo
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
j Verisign, ( 11 locations)
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.
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
DNS servers của các tổ chức ánh xạ hostname Æ IP cho các hosts
của tổ chức đó (vd: web, mail…)
Có thể được quản lý bởi các tổ chức hay nhà cung cấp dịch vụ
Trang 11Chapter 2 The Application Layer 31
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
Chapter 2 The Application Layer 32
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)
requesting host
surf.eurecom.fr gaia.cs.umass.edu
root name server
Authorititive name server
dns.umass.edu
local name server
dns.eurecom.fr
1
2
3 4 5
6
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
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
root name server
local name server
dns.eurecom.fr
1
2 3
4 5 6
authoritative name server
dns.cs.umass.edu
intermediate name server
dns.umass.edu
7
8
Trang 12Chapter 2 The Application Layer 34
1-6/2006
DNS example 3
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:
DNS server được hỏi gợi
ý hỏi một server khác.
“I don’t know this name,
but ask this server”
requesting host
surf.eurecom.fr
gaia.cs.umass.edu
root name server
local name server
dns.eurecom.fr
1
2 3 4
5 6
authoritative name server
dns.cs.umass.edu
intermediate name server
dns.umass.edu
7
8
iterated query
Chapter 2 The Application Layer 35
1-6/2006
DNS: caching & updating
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.
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html
DNS records
name= hostname
value= IP address
name= domain name
value= IP address của
authoritative name
server cho domain này
name= “bí danh” (alias)
www.ibm.com
value= tên thật
servereast.backup2.ibm.com
name = domain name
value= tên của mail server DNS: distributed db storing resource records (RR)
RR format: (name, value, type, ttl)
Trang 13Chapter 2 The Application Layer 37
1-6/2006
DNS protocol, messages
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.
DNS Protocol: Query/reply messages có cùng format.
Chapter 2 The Application Layer 38
1-6/2006
DNS messages
Name, type fields
for a query RRs in reponse
to query records for authoritative servers
additional “helpful”
info that may be used
Summary
√ √ √ √
?
?
Telnet!
Terminal Emulation
Web programming
TCP Socket Programming
RTSP?