Chương 2
LỚP ỨNG DỤNG (Application Layer)
1
2: Lớp Ứng dụng
Tổng quan mục tiêu của chương
r Khảo sát các giao thức lớp ứng dụng phổ biến (cid:1) HTTP (cid:1) FTP (cid:1) SMTP / POP3 / IMAP (cid:1) DNS
server
(cid:1) Mô hình peer-to-
peer
2
2: Lớp Ứng dụng
1
r Làm quen với các khái niệm cũng như thực hiện các giao thức ứng dụng (cid:1) Mô hình dịch vụ lớp truyền tải (cid:1) Mô hình client-
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
3
2: Lớp Ứng dụng
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
4
2: Lớp Ứng dụng
2
Các kiến trúc của ứng dụng mạng
r Client-server r Peer-to-peer (P2P) r Lai giữa client-server và P2P
5
2: Lớp Ứng dụng
Kiến trúc Client-server
(cid:1) Là máy chủ thường
trực
(cid:1) Địa chỉ IP cố định
r server:
(cid:1) Giao tiếp với server (cid:1) Có thể kết nối không
r client:
liên tục
(cid:1) Địa chỉ IP tĩnh hay
động
(cid:1) Không trao đổi trực
tiếp lẫn nhau
6
2: Lớp Ứng dụng
3
client/server
Kiến trúc thuần P2P
trực
r Không có server thường
peer-peer r Các end system tự do giao tiếp trực tiếp
Khả triển tốt nhưng khó quản lý
7
2: Lớp Ứng dụng
r Các máy kết nối với nhau không liên tục và thay đổi địa chỉ IP
Lai giữa client-server và P2P
(cid:1) Là ứng dụng VoIP theo kiến
Skype
(cid:1) Server trung tâm: tìm địa chỉ
trúc P2P
(cid:1) Kết nối client-client trực tiếp
của đối tác ở xa
(cid:1) Chương trình chat giữa hai
không thông qua server Instant messaging
(cid:1) Service trung tâm: phát hiện sự hiện hữu của client và vị trí của client
user là P2P
8
2: Lớp Ứng dụng
4
• Mỗi khi user online sẽ đăng ký địa chỉ với server trung tâm • user nhờ server tìm địa chỉ của người muốn gọi đến
Client process: là quá
Giao tiếp giữa các quá trình (Process) Quá trình (Process): là
trình khởi sự giao tiếp
chương trình chạy trên một host.
Server process: là quá trình đợi client process liên hệ
r Trên cùng host: giao tiếp liên quá trình (inter-process communication) .
trao đổi thông điệp
host có cả client process và server process
9
2: Lớp Ứng dụng
Giao tiếp giữa hai quá trình trên hai host khác biệt
r Trong kiến trúc P2P các r Trên các host khác biệt:
thông điệp đến/từ socket của nó
host hay server
host hay server
Người lập trình kiểm soát
process
process
socket
socket
Internet
TCP với bộ đệm và các biến
TCP với bộ đệm và các biến
Hệ điều hành kiểm soát
10
2: Lớp Ứng dụng
5
r process truyền/nhận
Địa chỉ quá trình
process phải có danh định
r Để nhận các thông điệp,
chỉ IP
r Mỗi thiết bị host có địa
r Danh định gồm địa chỉ IP vàchỉ số port liên kết với process trên host. r Ví dụ các chỉ số port: (cid:1) HTTP server: 80 (cid:1) Mail server: 25
HTTP đến ptithcm.edu.vn web server: (cid:1) IP address: 203.162.44.162 (cid:1) Port number: 80
11
2: Lớp Ứng dụng
r Để gửi một thông điệp r Liệu địa chỉ IP đủ để chỉ định một process hay không?
Các định nghĩa giao thức lớp ứng dụng r Các loại thông điệp được
trao đổi, (cid:1) Ví dụ request, response
Các giao thức chạy trên khu vực công cộng: r Được định nghĩa trong
các RFC
(cid:1) Có các field nào, kích
r Cú pháp thông điệp:
động
r Cho phép liên kết hoạt thước
điệp (cid:1) Ý nghĩa của thông tin
r Ngữ nghĩa của thông
12
2: Lớp Ứng dụng
r Ví dụ HTTP, SMTP Các giao thức riêng: r Ví dụ Skype trong field
6
r Các qui tắc về thời điểm và cách thức truyền hay đáp ứng cho các thông điệp
Dịch vụ truyền tải cần cho ứng dụng
Throughput r Một số ứng dụng yêu cầu
Data loss r Một số ứng dụng chấp nhận thất thoát số liệu ví dụ audio
thông lượng tối thiểu, ví dụ multimedia
truyền file hay telnet yêu cầu truyền tải tin cậy 100%
bất cứ thông lượng nào có được Security r Mật mã, bảo toàn số liệu, …
Timing r Một số ứng dụng yêu cầu độ trễ nhỏ, ví dụ Internet telephony, game tương tác
13
2: Lớp Ứng dụng
Các dịch vụ của lớp truyền tải trên Internet
TCP service: r Thiết lập kết nối (connection-
r Các ứng dụng khác như r Các ứng dụng khác dùng
UDP service: r Truyền tải không tin cậy r Không cung cấp: thiết lập kết nối, điều khiển luồng, kiểm soát nghẽn, kiểm soát trễ, đảm bảo thông lượng, an ninh
r Truyền tải tin cậy r Điều khiển luồng (flowcontrol) r Kiểm soát nghẽn r Không cung cấp: kiểm soát trễ, đảm bảo thông lượng tối thiểu, an ninh
14
2: Lớp Ứng dụng
7
oriented)
Một số ứng dụng và giao thức hỗ trợ
Giao thức lớp ứng dụng Ứng dụng Giao thức lớp truyền tải
e-mail remote terminal access Web file transfer streaming multimedia TCP TCP TCP TCP TCP hay UDP
15
2: Lớp Ứng dụng
Internet telephony SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, riêng (ví dụ Skype) Thường là UDP
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
16
2: Lớp Ứng dụng
8
Web và HTTP HTTP được đặc tả trong RFC 2616 Vài thuật ngữ r Web page gồm nhiều đối tượng (object) r Đối tượng có thể là HTML file, ảnh JPEG, Java
applet, audio file,…
đối tượng tham chiếu (referenced object)
r Web page cũng bao gồm base HTML-file chứa các
www.ptithcm.edu.vn/itDept/pic.gif
path name
host name
17
2: Lớp Ứng dụng
Tổng quan HTTP (1)
HTTP: hypertext
transfer protocol
r Giao thức lớp ứng dụng cho
PC chạy trình duyệt IE
r Mỗi đối tượng tham chiếu được chỉ định bởi URL r Ví dụ URL:
HTTP request HTTP response
r Mô hình client/server
(cid:1) client:trình duyệt yêu
t
s
e
u
q
e
e
s
P r
n
T
o
p
T
s
H
web
e
P r
T
T
H
Server chạy Apache Web server
(cid:1) server:Web server gửi các đối tượng để đáp ứng các yêu cầu
PC chạy trình duyệt firefox
18
2: Lớp Ứng dụng
9
cầu, nhận và hiển thị các đối tượng web
Tổng quan HTTP (2)
Dùng TCP: r client khởi tạo kết nối TCP đến port 80 của server
HTTP là “stateless” r server không lưu giữ thông tin về các yêu cầu đã qua
19
2: Lớp Ứng dụng
r server chấp nhận kết nối r Thông điệp HTTP (thông điệp giao thức lớp ứng dụng) được trao đổi giữa trình duyệt (HTTP client) và Web server (HTTP server) r Đóng kết nối TCP
Kết nối HTTP
Kết nối HTTP không liên
tục
Kết nối HTTP liên tục r Nhiều đối tượng được
chuyển qua một kết nối TCP
20
2: Lớp Ứng dụng
10
r Chỉ một đối tượng được chuyển qua một kết nối TCP
HTTP không liên tục
Giả sử người dùng nhập URL
(chứa text và tham chiếu đến 10 ảnh jpeg)
www.ptithcm.edu.vn/ITDep/home.index
www.ptithcm.edu.vn đợi kết nối tại port 80. “chấp nhận” kết nối, thông báo cho client
1b. HTTP server tại 1a. HTTP client khởi động kết nối HTTP server (process) tại www.ptithcm.edu.vn trên port 80
request message(chứa URL) vàoTCP socket. Thông điệp chỉ ra rằng client muốn đối tượng ITDep/home.index
2. HTTP client truyền HTTP
Thời gian
21
2: Lớp Ứng dụng
HTTP không liên tục
3. HTTP server nhận request message, tạo response messagechứa đối tượng được yêu cầu, truyền thông điệp vào TCP socket của nó.
4. HTTP server đóng kết nối
Thời gian
5. HTTP client nhận đáp ứng chứa html file, hiển thị html. Phân tích html file, tìm 10 tham chiếu đến các đối tượng ảnh jpeg
mỗi ảnh
22
2: Lớp Ứng dụng
11
6. Lặp lại các bước từ 1-5 cho
HTTP không liên tục: thời gian đáp ứng
RTT: thời gian hành trình đi và về của một gói tin
Thời gian đáp ứng: r Một RTT để khởi động
Khởi tạo TCP connection
kết nối TCP
RTT Yêu cầu file
RTT
Thời gian truyền file
Nhận file
request và một vài byte đáp ứng đầu tiên r Thời gian truyền file Tổng = 2RTT+ thời gian truyền
time
time
23
2: Lớp Ứng dụng
HTTP liên tục
r Một RTT cho HTTP
r Các thông điệp sau được gửi
r Trình duyệt thường mở các kết nối song song để lấy các đối tượng tham chiếu
r client nhanh chóng gửi yêu cầu về đối tượng tham chiếu r Một RTT cho tất cả các đối
HTTP liên tục r server để mở kết nối sau khi gửi đáp ứng HTTP không liên tục: r Cần 2 RTT/đối tượng r Phải tạo kết nối cho mỗi đối tượng qua kết nối đang mở
24
2: Lớp Ứng dụng
12
tượng tham chiếu
HTTP request message
r Hai loại HTTP messages: request, response r HTTP request message: (cid:1) Dưới dạng văn bản ASCII
request line (GET, POST, HEAD commands)
header lines GET /somedir/page.html HTTP/1.1 Host: www.ptithcm.edu.vn User-agent: Mozilla/4.0 Connection: close Accept-language:en-us
(carriage return, line feed)
25
2: Lớp Ứng dụng
HTTP request message: định dạng tổng quát
26
2: Lớp Ứng dụng
13
Carriage return, line feed chỉ kết thúc thông điệp
Truyền lên form input
Post method: r Web page thường chứa
form input
URL method: r dùng GET method r Input được truyền lên dưới dạng URL field của dòng yêu cầu, ví dụ:
r Input được truyền lên server dưới dạng thân thực thể
27
2: Lớp Ứng dụng
www.animalfood.com/animalsearch?monkeys&banana
Các loại Method
HTTP/1.1 r GET, POST, HEAD r PUT
HTTP/1.0 r GET r POST r HEAD
(cid:1) Truyền file lên máy chủ, file nằm trong thân thực thể, đường dẫn được chỉ ra trong URL
(cid:1) Yêu cầu server để đối tượng được yêu cầu ra ngoài đáp ứng
(cid:1) Xóa file được chỉ ra
r DELETE
28
2: Lớp Ứng dụng
14
trong URL
HTTP response message
status line (mã trạng thái)
header
HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2010 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2010 …... Content-Length: 6821 Content-Type: text/html
29
2: Lớp Ứng dụng
Các mã đáp ứng HTTP
data data data data data ... data, ví dụ HTML file được yêu cầu
(cid:1) request thành công, đối tượng yêu cầu sau cùng có trong
Trong dòng đầu tiên trong thôn điệp đáp ứng từ server ->client Ví dụ: 200 OK
thông điệp này
301 Moved Permanently
(cid:1) Đối tượng yêu cầu đã bị chuyển, vị trí mới được chỉ ra trong
thông điệp này
400 Bad Request (cid:1) Server không hiểu
404 Not Found
(cid:1) Không tìm thấy tài liệu yêu cầu trong server
505 HTTP Version Not Supported
30
2: Lớp Ứng dụng
15
Cookie (1) Nhiều Web site dùng cookie. Cookie là một mẫu văn bản nhỏ mà web server đặt trên máy user. Mẫu này được gửi lại server mỗi khi user truy cập vào web server. Stateless--> stateful Thành phần:
Ví dụ: r User thường truy cập Internet từ máy tính PC r Vào một web site bán hàng qua mạng nào đó lần đầu
tiên
1) cookie header line trong các thông điệp HTTP 2) tập tin cookie trên máy người dùng, được trình duyệt quản lý 3) cơ sở dữ liệu ẩn bên trong Web site
31
2: Lớp Ứng dụng
(cid:1) danh định (ID) khác biệt (cid:1) một mục trong cơ sở dữ liệu cho ID này
Cookie (2)
client
server
r Khi HTTP request đến web site, web site tạo:
ebay 8734
http request
Tập tin cookie
http response Set-cookie: 1678
tạo mục
Amazon server tạo ID 1678 cho user
ebay 8734 amazon 1678
Truy cập
http request cookie: 1678
http response
Vài tuần sau:
Cơ sở dữ liệu
Truy cập
Sử dụng cookie
ebay 8734 amazon 1678
http request cookie: 1678
http response
32
2: Lớp Ứng dụng
16
Sử dụng cookie
Cookie và tính riêng tư: r Cookie cho phép web site học và hiểu nhiều về user r User có thể cung cấp tên và địa chỉ email cho web site
Cookie (3) Cookie có thể chứa: r Thông tin chứng thực quyền r Giỏ hàng r Khuyến nghị r Trạng thái phiên (Web e-mail)
Cách thức giữ trạng thái r các giao thức đầu cuối: duy trì
r cookie: thông điệp http mang
trạng thái tại sender/receiver qua nhiều giao tác
33
2: Lớp Ứng dụng
trạng thái
Ky, thuâ-t Caching
client mà không cần truy vấn server nguồn r Trường hợp thực tê.:
(cid:1) Mô-t cơ quan co. mô-t đường
r Kha.i niê-m cache r Đáp ứng yêu cầu của
(cid:1) Tâ.t ca/ lưu lượng truy câ-p đê0u đi qua kê.t nô.i na0y (cid:1) Nhiê0u người du0ng co. thê/ cu0ng truy câ-p đê.n cu0ng mô-t nô-i dung
(cid:1) Gia/i pha.p tăng tô.c truy
nô.i đê.n Internet
34
2: Lớp Ứng dụng
17
xuâ.t: caching
Web cache (proxy server)
duyệt: truy xuất Web qua cache
server
r user cấu hình trình
t
s
e
u
q
r Trình dyệt gửi tất cả
e
r
e
s
n
client
các yêu cầu đến cache (cid:1) Đối tượng có trong
o
p
s
e
r
HTTP request HTTP response
H T T P H T T P
t
s
Proxy server
e
u
q
e
e
s
P r
n
(cid:1) Đối tượng không có
T
o
p
T
s
H
e
P r
T
T
H
client
server
cache: cache đáp ứng ngay
35
2: Lớp Ứng dụng
trong cache, cache yêu cầu đối tượng từ server nguồn, sau đó gửi cho client
Web caching
client, server
Lý do dùng Web caching? r Giảm thời gian đáp ứng cho các yêu cầu từ client
r cache đóng hai vai trò
r Thông thường cache được cài đặt bởi ISP
r Giảm lưu lượng trên các liên kết Internet của cơ quan
36
2: Lớp Ứng dụng
18
r Cho phép các nhà cung cấp nội dung phân phối nội dung hiệu quả
Ví dụ Giả sử r Trung bình mỗi đối tượng có
Internet
r Tốc độ trung bình gửi yêu cầu
server 100,000 bit
r Thời gian trễ từ router của
1.5 Mbps access link
là 15/giây
Mạng cục bộ
10 Mbps LAN
Hiệu năng r Băng thông sử dụng trên LAN =
15%
r Băng thông sử dụng trên access
link = 100%
37
2: Lớp Ứng dụng
r Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 2 giây + hàng phút + hàng mili giây
Ví dụ (2)
doanh nghiệp đến bất cứ web server nào bên ngoài, cả đi và về là 2 giây
Giải pháp 1 r Tăng băng thông của access
server
Internet
Hiệu năng r Băng thông sử dụng trên LAN = 15% r Băng thông sử dụng trên access link =
15%
10 Mbps access link
Mạng cục bộ
Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 2 giây + cỡ mili giây + cỡ mili giây
10 Mbps LAN
r Chi phí cho nâng cấp
38
2: Lớp Ứng dụng
19
link lên 10 Mbps
Ví dụ (3) Giải pháp 2: cài đặt cache r Giả sử xác suất tìm thấy
Internet
=0.45 Hiệu năng r 45% yêu cầu sẽ được đáp
ứng tức thời
servers
1.5 Mbps access link
server nguồn
Mạng cục bộ
10 Mbps LAN
r 55% yêu cầu phải lấy từ
cache
r Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 0,55*(2+0,01) + 0,45*(khoảng mười ms)
39
2: Lớp Ứng dụng
GET có điều kiện
server
cache
r Để máy chủ không phải gửi đối tượng nếu cache vẫn còn lưu giữ bản cập nhật
r Băng thông sử dụng trên access link được giảm xuống còn 55%, trễ không đáng kể, chừng 10ms
HTTP request msg
If-modified-since:
Đối tượng Không bị hiệu chỉnh
r cache: chỉ ra ngày của bản sao được cập nhật trong HTTP request If-modified-since:
HTTP response HTTP/1.0 304 Not Modified
r server: khẳng định không có
cập nhật gì mới: HTTP/1.0 304 Not
HTTP request msg
If-modified-since:
Modified
Đối tượng đã bị hiệu chỉnh
r server:đối tượng đã bị hiệu chỉnh
HTTP/1.0 200 OK
HTTP response HTTP/1.0 200 OK
40
2: Lớp Ứng dụng
20
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
41
2: Lớp Ứng dụng
FTP (file transfer protocol)
Truyền file
Giao diện FTP client
FTP server
user
Hệ thống file ở xa
Hệ thống file cục bộ
r Truyền/nhận file đến/từ máy ở xa r Mô hình client/server (cid:1) client:khởi động (cid:1) server:chờ đáp ứng
r ftp: được đặc tả trong RFC 959 r ftp server: dùng port 20 và 21
42
2: Lớp Ứng dụng
21
Kết nối cho điều khiển và kết nối truyền số liệu
Cầu nối TCP cho điều khiển, port 21
r FTP client tiếp xúc với FTP server tại port 21, dùng TCP r client được xác thực qua kết nối
Cầu nối TCP cho data port 20
r Muốn truyền file khác, server
r client duyệt các thư mục ở xa bằng cách gửi các lệnh qua kết nối điều khiển.
phục vụ điều khiển FTP client FTP server
r Thông tin điều khiển dùng
r Khi nhận lệnh truyền file, server mở một kết nối TCP thứ 2 đến client
lại mở kết nối số liệu.
r Sau khi truyền file xong, server
kênh tách biệt với số liệu (out of band)
r FTP là stateful: lưu giữ thư mục hiện hành và xác thực trước đó.
43
2: Lớp Ứng dụng
xóa kết nối số liệu.
Active FTP va0 Passive FTP
r Active mode: FTP client kê.t nô.i từ mô-t port ngâ,u nhiên N >1023 đê.n command port ta-i server (21), client bă.t đâ0u lă.ng nghe trên port N+1 va0 truyê0n lê-nh PORT N+1 đê.n FTP server. Server sau đo. kê.t nô.i đê.n cô/ng data được chi/ đi-nh trên client (N+1) từ port 20 cu/a no. .
r Vi. du-
44
2: Lớp Ứng dụng
22
Active FTP va0 Passive FTP (2)
ta-o mô-t kê.t nô.i đê.n client
r Passive mode: giải pha.p cho vâ.n đê0 làm sao server khởi
45
2: Lớp Ứng dụng
r PASV: lê-nh ba.o với server vê0 chê. đô- passive r Client khởi đô-ng 2 kê.t nô.i đê.n server, gia/i quyê.t vâ.n đê0 ca.c firewall lo-c kê.t nô.i đê.n data port (từ server đê.n client). Hai port ngâ,u nhiên N>1023 va0 N+1, port N kê.t nô.i đê.n port 21 cu/a server, sau đo. client pha.t lê-nh PASV, kê.t qua/ la0 server mở port ngâ,u nhiên P > 1023 va0 gửi PORT P trở la-i client, sau đo. client khởi đô-ng kê.t nô.i từ port N+1 đê.n port P trên server
Active FTP va0 Passive FTP (3)
r Vi. du- passive mode
46
2: Lớp Ứng dụng
23
Active FTP va0 Passive FTP (4)
r Active FTP : (cid:1) command (cid:1) data
: client >1023 --> server 21 : client >1023 <-- server 20
r Passive FTP : (cid:1) command (cid:1) data
: client >1023 --> server 21 : client >1023 --> server >1023
47
2: Lớp Ứng dụng
Các lệnh FTP và đáp ứng
Vài lệnh phổ biến: r Lệnh dưới dạng ASCII text
Vài mã đáp ứng r Mã trạng thái tương tự như
r USER username r PASS password
qua kênh điều khiển bên HTTP
r 331 Username OK, password required r 125 data connection
r LIST trả về danh sách các file trong thư mục hiện hành
r RETR filename lấy file
r 452 Error writing
r STOR filename gửi file
already open; transfer starting r 425 Can’t open data connection
48
2: Lớp Ứng dụng
24
lên host ở xa file
Vi. du- FTP client
r Command line r GUI FTP client: IE, firefox, FTPcute,...
49
2: Lớp Ứng dụng
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
50
2: Lớp Ứng dụng
25
Thư điện tử (Electronic Mail)
outgoing message queue
user mailbox
user agent
mail server
user agent
Ba thành phần chính: r user agent r mail server r SMTP: simple mail transfer
SMTP
mail server
user agent
SMTP
protocol
SMTP
user agent
mail server
user agent
user agent
r Ví dụ: Eudora, Outlook, Mozilla Thunderbird r Hộp thư (hàng đợi) đi (outbox), hộp thư đến (inbox) cho mỗi user được lưu trên server
51
2: Lớp Ứng dụng
Mail server
user agent
mail server
user agent
Mail Server r mailbox chứa thư đến r outbox thư chờ gửi r SMTP protocol để truyền thư
SMTP
mail server
user agent
SMTP
SMTP
user agent
mail server
user agent
user agent
52
2: Lớp Ứng dụng
26
User Agent r composing, editing, reading mail messages
SMTP [RFC 2821]
25
r Dùng TCP đề truyền thư từ client server, port
(cid:1) Bắt tay (cid:1) Truyền thư (cid:1) đóng
r Truyền trực tiếp: truyền server đến server khác r Ba pha
53
2: Lớp Ứng dụng
UserA truyền thư sang UserB
r Giao tiếp lệnh/đáp ứng
1) User A dùng user agent tạo
4) Thực thể SMTP truyền thư của user A qua kết nối TCP đến Server B. 5) Sever B nhận và đặt thư vào mailbox của user B thư và gửi đến userB@ptithcm.edu.vn 2) User A gửi thư đến server A và server A xếp thư vào hàng đợi 6) User B dùng user agent để đọc thư 3) Thực thể SMTP trên
1
mail serverB
user agent
2
user agent
6
mail serverA 3
4
5
User B
User A
54
2: Lớp Ứng dụng
27
Server A mở một kết nối TCP với Server B
SMTP
tục
r SMTP dùng kết nối liên
thông điệp được mã hóa theo mã 7-bit ASCII
r SMTP yêu cầu các
CRLF.CRLF xác định kết thúc thông điệp
55
2: Lớp Ứng dụng
Định dạng thư điện tử
header
r SMTP server dùng
body
(cid:1) To: (cid:1) From: (cid:1) Subject: khácvới lệnh SMTP
r body
(cid:1) Nội dung thư chỉ chứa ký
tự ASCII
56
2: Lớp Ứng dụng
28
Chuẩn định dạng thư điện tử được đặc tả trong RFC 822 Dòng trắng header lines, ví dụ
Dạng mở rộng cho multimedia
r MIME: multimedia mail extension, RFC 2045, 2056 r Thêm các dòng trong header để khai báo loại nội dung
MIME
MIME version
Phương pháp được dùng để mã hóa data
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
Kiểu số liệu multimedia, khai báo tham số
base64 encoded data ..... ......................... ......base64 encoded data
57
2: Lớp Ứng dụng
Số liệu được mã hóa
Các giao thức lấy thư
SMTP
SMTP
user agent
access protocol
user agent
mail Server của người gửi
mail Server của người nhận
r Giao thức : lấy thư từ server
(cid:1) POP: Post Office Protocol [RFC 1939]
• Xác thực (agent <-->server) và download (cid:1) IMAP: Internet Mail Access Protocol [RFC 1730]
(cid:1) HTTP: gmail, Hotmail, Yahoo! Mail.
58
2: Lớp Ứng dụng
29
• Nhiều đặc tính, phức tạp • Thao tác xử lý thông điệp được lưu trên server
POP3 protocol
Pha xác thực r client commands:
S: +OK POP3 server ready C: user son S: +OK C: pass ptithcm S: +OK user successfully logged on
(cid:1) user: khai báo username (cid:1) pass: password
r Đáp ứng từ server
(cid:1) +OK
(cid:1) -ERR
Pha tương tác, client: r list: liệt kê mã số thư r retr: lấy thư bằng mã số r dele: xóa r quit
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S:
S: .
C: dele 1
C: retr 2
S:
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
59
2: Lớp Ứng dụng
POP3 và IMAP
IMAP r Giữ tất cả thư trên
server
r Cho phép user tổ chức các thư trong thư mục
qua các phiên: (cid:1) Tên thư mục và ánh xạ
r IMAP giữ trạng thái
POP3 r Ví dụ trước là dùng chế độ download và xóa. r User chỉ có thể đọc lại thư trên client vừa lấy thư. Thay đổi client không thể đọc lại thư r Chế độ “Download-và- lưu giữ”: các bản sao của thư được lưu giữ trên client
giữa các message ID và tên thư mục
60
2: Lớp Ứng dụng
30
r POP3 là stateless
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
61
2: Lớp Ứng dụng
DNS (Domain Name System)
host, router:
Domain Name System: r Cơ sở dữ liệu phân tán
(cid:1) Địa chỉ IP được dùng để đánh địa chỉ các thiết bị, được dùng bởi máy
(cid:1) Tên ví dụ
r Giao thức lớp ứng dụng
được hiện thực phân cấp nhiều nameservers
IP và tên?
www.yahoo.com -được dùng bởi con người Ánh xạ qua lại giữa địa chỉ
62
2: Lớp Ứng dụng
31
host, router, name server giao tiếp nhau để phân giải tên (thông dịch giữa tên và địa chỉ) (cid:1) Lưu ý: chức năng của core Internet, được hiện thực như giao thức lớp ứng dụng (cid:1) Khá phức tạp tại vùng biên của mạng
Cơ sở dữ liệu phân tán, phân cấp
Root DNS Servers
org DNS servers
edu DNS servers
com DNS servers
poly.edu DNS servers
umass.edu DNS servers
pbs.org DNS servers
yahoo.com DNS servers
amazon.com DNS servers
Client muốn tìm địa chỉ IP của www.yahoo.com r client truy vấn một root server để tìm com DNS
server
server
r client truy vấn com DNS server để lấy yahoo.com DNS
IP của www.yahoo.com
63
2: Lớp Ứng dụng
Root name server
r Được các name server cục bộ liên hệ mỗi khi chúng không thể phân giải một
tên
r root name server:
(cid:1) Tiếp xúc với name server có thẩm quyền nếu không hiểu ánh xạ tên nào
đó
(cid:1) Lấy ánh xạ (cid:1) Gửi lại cho name server cục bộ
Hệ thống tên miền trãi ra khắp thế giới với khoảng 13 root name server
64
2: Lớp Ứng dụng
32
r client truy vấn yahoo.com DNS server để lấy địa chỉ
TLD và các DNS Server cấp thấp r Các Top-level domain (TLD) server:
(cid:1) chịu trách nhiệm cho com, org, net, edu,...tất cả
các tên miền quốc gia như vn, uk, fr, ca, jp.
(cid:1) Network Solutions cai quản các server cho com
TLD
(cid:1) Educause cho edu TLD r Các server cấp thấp :
(cid:1) Các DNS server của tổ chức, doanh nghiệp, cung
cấp ánh xạ tên host với địa chỉ IP xác thực cho các server bên trong (ví dụ Web, mail).
(cid:1) Có thể được cai quản bởi tổ chức, doanh nghiệp hay
nhà cung cấp dịch vụ
65
2: Lớp Ứng dụng
Name Server trong mạng cục bộ
r Không ràng buộc vào phân cấp r Mỗi ISP, công ty, trường học có một.
(cid:1) Cũng gọi là name server mặc định
r Khi host truy vấn DNS, truy vấn được gửi
đến DNS server cục bộ của host (cid:1) Tác động như một proxy, chuyển truy ấn vào hệ
thống tên miền phân cấp.
66
2: Lớp Ứng dụng
33
root DNS server
Ví dụ về phân giải tên qua DNS
2
3
TLD DNS server
4
5
r Host tại cis.icu.edu muốn địa chỉ IP của datacom.cs.ptithcm .edu
DNS server cục bộ dns.icu.edu
6
7
1
8
Truy vấn lặp: r Server được truy vấn chỉ phúc đáp tên server để liên hệ r “Tôi không biết tên
DNS server thẩm quyền dns.cs.ptithcm.edu
Host yêu cầu cis.icu.edu
này, đề nghị hỏi server này”
datacom.cs.ptithcm.edu
67
2: Lớp Ứng dụng
root DNS server
Ví dụ về phân giải tên qua DNS
2
3
6
7
TLD DNS server
Truy vấn đệ qui: r Đặt trách nhiệm phân giải tên lên name server được liên hệ
4
5
DNS server cục bộ dns.icu.edu
1
8
DNS server thẩm quyền dns.cs.ptithcm.edu
Host yêu cầu cis.icu.edu
datacom.cs.ptithcm.edu
68
2: Lớp Ứng dụng
34
Caching và cập nhật các record
(cid:1) Các mục trong cache biến mất sau một khoảng
thời gian (timeout)
(cid:1) TLD server thường cache trong các name
server cục bộ • Do đó giúp giảm truy vấn đến root name server
r Khi name server học ánh xạ tên, nó sẽ cache lại
(cid:1) Xem thêm RFC 2136 (cid:1) http://www.ietf.org/html.charters/dnsind-charter.html
69
2: Lớp Ứng dụng
Các DNS record
DNS: cơ sở dữ liệu phân tán lưu các resource record
(RR)
Định dạng RR : (name, value, type, ttl)
r Cơ chế cập nhật được xây dựng bởi IETF
(cid:1) Tên là bí danh cho một
(cid:1) Tên là tên host (cid:1) value là địa chỉ IP
r Type=A r Type=CNAME
(cid:1) Tên là tên miền (ví
(cid:1) value là tên thật
r Type=NS số tên thật www.ibm.com là thật servereast.backup2.ibm.com
dụ yahoo.com)
(cid:1) value là tên của mailserver
(cid:1) value là tên host của name server có thẩm quyền của domain này
r Type=MX
70
2: Lớp Ứng dụng
35
liên hệ với tên
Giao thức DNS (1)
gồm hai thông điệp query và reply, cả hai có cùng định
dạng
header r identification: số 16 bit cho query, reply cho query này dùng cùng số
r flags:
(cid:1) query hay reply (cid:1) Cần đệ qui (cid:1) Sẵn sàng đệ qui (cid:1) reply là có thẩm quyền
71
2: Lớp Ứng dụng
Giao thức DNS (2)
Các trường name, type cho query
RR trong đáp ứng cho truy vấn
Các record cho server có thẩm quyền
72
2: Lớp Ứng dụng
36
Thông tin bổ sung hữu dụng
Dynamic DNS
r Khái niệm DDNS r Đề nghị tìm hiểu thêm dịch vụ tên miền động
và áp dụng
73
2: Lớp Ứng dụng
NỘI DUNG
r Các nguyên lý r Web và HTTP r FTP r Electronic Mail
(cid:1) SMTP, POP3, IMAP
r DNS r Các ứng dụng P2P
74
2: Lớp Ứng dụng
37
Kiến trúc thuần P2P
trực
r Không có server thường
tiếp trực tiếp
r Các đầu cuối tự do giao peer-peer
75
2: Lớp Ứng dụng
Phân phối File Câu hỏi đặt ra: mất bao lâu để phân phối file từ
một server đến N peer?
us: băng thông truyền lên từ server
Server
u2
u1
d1
d2
us
ui: băng thông truyền lên từ peer di: băng thông tải về từ peer
File, kích thước F
uN
Network (bandwidth đầy đủ)
dN
76
2: Lớp Ứng dụng
38
r Các peer kết nối với nhau không liên tục và thay đổi địa chỉ IP
Phân phối File (2)
Server
r server gửi lần lượt N
u2
F
u1
d1
d2
us
bản sao: (cid:1) Ts=NF/us
uN
Network (đầy đủ băng thông)
r client i mất Ti=F/di
dN
thời gian để download
Thời gian để phân phối file đến Nclient
Tcs = max { NF/us, F/min(di)}
Tăng tuyến tính với N
77
2: Lớp Ứng dụng
Phân phối File theo P2P
Server
u2
F
u1
d1
d2
us
uN
r server phải gửi một bản sao mất khoảng thời gian F/us r client i mất F/di để download r Tổng số bit phải download là
Network (đầy đủ băng thông)
i
dN
r Tốc độ tải lên nhanh nhất có thể: us + Σui
TP2P = max { F/us, F/min(di), NF/(us + Σui) }
NF
78
2: Lớp Ứng dụng
39
i
BitTorrent (1) r Dùng phân phối file theo
P2P
tracker:theo dõi các peer tham gia vào torrent
torrent:nhóm các Peer trao đổi các mẫu file (chunk)
Lấy danh sách các peer
Các mẫu trao đổi
peer
79
2: Lớp Ứng dụng
BitTorrent (2)
(cid:1) Không có chunk, nhưng sẽ tích lũy chúng theo thời gian (cid:1) Đăng ký với tracker để lấy danh sách các peer, nối đến tập
con các peer (láng giềng)
r file được chia thành các mẫu (chunk) 256KB. r peer gia nhập torrent:
khác.
r Trong khi tải về, peer cũng tải lên các chunk đến các peer
80
2: Lớp Ứng dụng
40
r Các peer có thể là điểm đến hay đi r Khi peer đã có toàn bộ file, nó có thể bỏ đi hay giữ lại.
BitTorrent (3)
Kéo các chunk r Tại bất lỳ thời điểm nào, các peer khác nhau đều có các tập con chunk của file khác nhau
r Mỗi 30 giây, chọn ngẫu nhiên
Truyền các chunk r Peer A truyền các chunk đến bốn láng giềng hiện hành, truyền với tốc độ cao nhất (cid:1) Mỗi 10 giây đánh giá lại top 4
r Định kỳ, peer hỏi mỗi
peer láng giềng về danh sách các chunk mà chúng có.
(cid:1) Khai thông
một peer khác, khởi động truyền chunk (cid:1) Peer mới được chọn có thể tham gia vào top 4
chunk bị thiếu
81
2: Lớp Ứng dụng
r Peer gửi yêu cầu lấy các
BitTorrent (4) (1) peer A khai thông với peer B (2) Peer A trở thành một trong bốn nhà cung cấp cho peer B, peer B đáp lại (3) Peer B trở thành một trong bốn nhà cung cấp cho peer A
Peer B
82
2: Lớp Ứng dụng
41
Peer A Với tốc độ tải lên cao hơn, có thể tìm thấy các đối tác tốt hơn và lấy file nhanh hơn!
Tìm kiếm thông tin Index trong hệ thống P2P: ánh xạ thông tin sang vị trí peer (vị trí = IP address & port number)
Dịch vụ chat r Index ánh xạ tên user
sang vị trí
Chia sẻ file (ví dụ e-mule) r Index theo dõi động các vị trí của file mà các peer chia sẻ.
83
2: Lớp Ứng dụng
r Các peer cần báo với index những gì nó có. r Các Peer tìm kiếm trong index để xác định vị trí của file r Khi user khởi động ứng dụng IM, cần thông báo vị trí với index r Các peer tìm kiếm trong index để xác định địa chỉ IP của user.
Index tập trung
Peer B
1) khi peer kết nối, nó
Server thư mục trung tâm
1
peers
1
thông báo server trung tâm: (cid:1) Địa chỉ IP (cid:1) Nội dung
3
1
2) peer A truy vấn trung
2
1
tâm
3) Peer A yêu cầu file từ
peer B
Peer A
84
2: Lớp Ứng dụng
42
Index tập trung: Nhược
Hoạt động truyền file là phân tán
nhưng việc định vị file là tập trung
85
2: Lớp Ứng dụng
r Điểm lỗi đơn r Cổ chai r Vấn đề bản quyền
Truy vấn kiểu lũ (query flooding)
mọi nơi (cid:1) Không có server trung
Đồ thị mạng r Có cạnh nối giữa peer X và Y nếu có kết nối TCP
r Phát tán truy vấn ra
tâm
Gnutella
r Được dùng trong
r Tất cả các peer hoạt động và các cạnh tạo nên mạng bao phủ
r Mỗi peer lập danh sách các file mà nó sẵn sàng chia sẻ
86
2: Lớp Ứng dụng
43
r Cạnh: liên kết ảo r Thông thường một peer có kết nối dưới 10 láng giềng
Truy vấn kiểu lũ
Truyền File: HTTP
Query
response
r thông điệp truy vấn (query) được gửi qua các kết nối TCP đang mở r các peer chuyển tiếp thông điệp truy vấn r Phản hồi được gửi về qua đường ngược lại
Q
uery
Q
o n s e
u ery r e s p Query
response
Q
u
ery
87
2: Lớp Ứng dụng
Gia nhập Gnutella
peer A phải tìm một peer khác trong mạng Gnutella, dùng danh sách các peer ứng viên 2. Peer A cố gắng liên tục để có kết nối TCP với các peer ứng viên cho đến khi kết nối được với peer B nào đó
1.
chuyển Ping đến các láng giềng của nó, đến lượt các láng giềng lại chuyển đi tiếp
3. Tạo lũtruy vấn:peer A Ping đến peer B; peer B
thông điệp Pong
4. Các peer nhận Ping phản hồi lại cho peer A bằng
thêm các kết nối TCP
88
2: Lớp Ứng dụng
44
5. Peer A nhận nhiều Pong và sau đó có thể thiết lập
Mạng bao phủ phân cấp
dùng truy vấn kiểu lũ r Mỗi peer là một super
node hay được gán là super node (cid:1) Kết nối TCP giữa peer và
r Giữa các index trung tâm,
(cid:1) Kết nối TCP giữa các super
super node của nó.
ordinary peer
group-leader peer
node.
neighoring relationships in overlay network
89
2: Lớp Ứng dụng
r Super node theo dõi nội dung trong node con của nó
Skype
Skype clients (SC)
từng cặp.
r Thừa kế P2P, giao tiếp
dụng riêng
với các super node r Index ánh xạ tên user sang các địa chỉ IP; được phân phối qua các super node
90
2: Lớp Ứng dụng
45
r Là giao thức lớp ứng Skype login server Supernode (SN) r Mạng bao phủ phân cấp
Các peer làm relay
r Vấn đề phát sinh khi cả peer A và Peer B đều nằm phía sau NAT. NAT ngăn chặn peer ngoài khởi tạo cuộc gọi vào với peer bên trong
(cid:1) Dùng super node của peer A và peer B_ chọn relay (cid:1) Mỗi peer khởi tạo phiên
r Giải pháp:
(cid:1) Nhờ vậy các Peer có thể giao tiếp với nhau vượt NAT bằng relay.
91
2: Lớp Ứng dụng
với relay.
Đề nghị
r Tìm hiểu Limewire và một số ứng dụng P2P
khác
92
2: Lớp Ứng dụng
46
Hết chương 2
93
2: Lớp Ứng dụng
47