duyn@uit.edu.vn 9/30/20112.http client gửi http request TCP connection socket 1b.http server chấp nhận kết nối rồi thông báo với client.. file transfer FTP server FTP user interface FTP
Trang 1Chương 2 (tiếp).
Giao thức tầng ứng dụng (application layer)
Mạng Máy Tính
Nguyễn Duy Khoa Mạng Máy Tính và Truyền Thông Trường ĐH Công Nghệ Thông Tin
Discussion
Object oriented programming.
Event driven programming.
Component driven programming.
Simple web server.
Trang 2duyn@uit.edu.vn 9/30/2011
2.http client gửi http request
TCP connection socket
1b.http server chấp nhận kết nối rồi thông báo với client.
3.http server nhận request message, tạo ra http response
được yêu cầu rồi gửi vào socket.
time
Giả sử người dùng truy cập URL: www.hau1.edu/cs/index.htm
(trang web có text và 10 hình ảnh jpeg)
0 http server tại máy phục vụ www.hau1.edu.vn chờ yêu cầu kết nối TCP tại cổng 80.
Trang 3duyn@uit.edu.vn 9/30/2011
5 http client nhận response message có chứa html file, hiển thị html Sau đó, phân tích html file, tìm URL của 10 hình ảnh jpeg trong tài liệu.
6.Bước 1-5 được lặp lại với từng hình ảnh.
4.http server ngắt liên kết
time
5 of 44
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 4duyn@uit.edu.vn 9/30/2011
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
file transfer FTP
server
FTP user interface
FTP client
local file system
remote file system
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
TCP control connection port 21
TCP data connection port 20
Trang 5duyn@uit.edu.vn 9/30/2011
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
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
Lệnh (commands), phúc đáp (responses) được truyền dạng ASCII
Trang 6duyn@uit.edu.vn 9/30/2011
FTP clients & servers
FTP client
local file system
remote file system
user
at host
11 of 44
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 7duyn@uit.edu.vn 9/30/2011
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
SMTPSMTP
13 of 44
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
Trang 8duyn@uit.edu.vn 9/30/2011
SMTP (Simple Mail Transfer Protocol)
S: 250 Hello hau1.edu.vn, pleased to meet you
C: MAIL FROM: <alice@hau1.edu.vn>
Trang 9duyn@uit.edu.vn 9/30/2011
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).
17 of 44
Mail message format
SMTP: giao thức trao đổi email msg (exchange msgs)
RFC 822: standard for text message format:
Trang 10duyn@uit.edu.vn 9/30/2011
MIME (Multipurpose Internet Mail Extension)
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
19 of 44
MIME: Content typesContent-type: type/subtype; parameters
Trang 11duyn@uit.edu.vn 9/30/2011
MIME: Encoding typesContent-Transfer-Encoding: Encoding type
21 of 44
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
StartOfNextPartMIME: Multiple objects mail message
Trang 12duyn@uit.edu.vn 9/30/2011
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
Trang 13duyn@uit.edu.vn 9/30/2011
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
[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]
Trang 14duyn@uit.edu.vn 9/30/2011
POP3 (more) and IMAP
More about POP3
Chế độ “download and delete”
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.
27 of 44
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 15duyn@uit.edu.vn 9/30/2011
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
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
Trang 16duyn@uit.edu.vn 9/30/2011
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.
hau1: Hanoi Agricultural University.
www: máy chủ world wide web.
mail: máy chủ mail.
vn
31 of 44
Domain name servers
Vd: client muốn biết IP của www.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 DNS servers
pbs.org DNS servers
Trang 17duyn@uit.edu.vn 9/30/2011
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)
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.
33 of 44
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.
Trang 18duyn@uit.edu.vn 9/30/2011
Local name server
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).
“hỏi thăm” đầu tiên mỗi khi có truy vấn DNS.
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:
6
Trang 19duyn@uit.edu.vn 9/30/2011
DNS example 2
Root name server có thể:
Không biết authoritative
name server (ans).
root name server
local name server
root name server
local name server
dns.eurecom.fr
1
2 3 4
Trang 20duyn@uit.edu.vn 9/30/2011
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.
bản ghi cache tương ứng bị xoá).
name= domain name
value= IP address của
authoritative name server cho domain này
name = domain name
value= tên của mail server
DNS: distributed db storing resource records (RR)
RR format: (name, value, type, ttl)
Trang 21duyn@uit.edu.vn 9/30/2011
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
info that may be used
Trang 22duyn@uit.edu.vn 9/30/2011
Bài tập tự làm và thảo luận
POP3.
Viết mail client đơn giản.