Mục tiêu bài giảng chương 2 nhằm giúp các bạn 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, mô hình dịch vụ lớp truyền tải, mô hình client server mô hình peer-to-peer, khảo sát các giao thúc lớp ứng dụng phổ biến,..
Trang 12: Lớp Ứng dụng 1
Chương 2
LỚP ỨNG DỤNG
(Application Layer)
Tổng quan mục tiêu của chương
❒ Làm quen với các khái
HTTP
FTP
SMTP / POP3 / IMAP
Trang 4giao tiếp trực tiếp
❒ Các máy kết nối với nhau
không liên tục và thay
Kết nối client-client trực tiếp
không thông qua server
Instant messaging
Chương trình chat giữa hai
user là P2P
Service trung tâm: phát hiện
sự hiện hữu của client và vị trí
của client
• 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
Trang 5❒ Trên cùng host: giao
tiếp liên quá trình
(inter-process
communication)
❒ Trên các host khác biệt:
trao đổi thông điệp
Client process:là quátrình khởi sự giao tiếp
Server process:là quátrình đợi client process liên hệ
❒ Trong kiến trúc P2P các host có cả client process vàserver process
Giao tiếp giữa hai quá trình trên hai
process
host hay server
Người lập trình kiểm soát
Trang 62: Lớp Ứng dụng 11
Địa chỉ quá trình
❒ Để nhận các thông điệp,
process phải códanh định
❒ Mỗi thiết bị host có địa
Trang 7truyền file hay telnet yêu
cầu truyền tải tin cậy 100%
❒ Các ứng dụng khác dùng bất cứ thông lượng nào có được
Security
❒ Mật mã, bảo toàn số liệu, …
Các dịch vụ của lớp truyền tải trên
❒ Không cung c ấ p: kiểm soát trễ,
đảm bảo thông lượng tối thiểu,
UDP service:
❒ Truyền tải không tin cậy
❒ 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
Trang 82: Lớp Ứng dụng 15
Một số ứng dụng và giao thức hỗ trợ
Ứng dụng
e-mail remote terminal access
Web file transfer
SIP, RTP, riêng (ví dụ Skype)
Giao thức lớp truyền tải
TCP TCP TCP TCP TCP hay UDP
Trang 92: Lớp Ứng dụng 17
Web và HTTP
Vài thuật ngữ
❒ Đối tượng có thể là HTML file, ảnh JPEG, Java
applet, audio file,…
❒ Web page cũng bao gồmbase HTML-file chứa các
đối tượng tham chiếu (referenced object)
❒ Mỗi đối tượng tham chiếu được chỉ định bởiURL
Server chạy
HTT
P request
HTTP
request
HTT
P res ponse
sponse
Trang 10Kết nối HTTP
Kết nối HTTP không liên
tục
❒ Chỉ một đối tượng được
chuyển qua một kết nối
TCP
Kết nối HTTP liên tục
❒ Nhiều đối tượng được chuyển qua một kết nối TCP
Trang 112: Lớp Ứng dụng 21
HTTP không liên tục
Giả sử người dùng nhập URL
www.ptithcm.edu.vn/ITDep/home.index
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
tại port 80 “chấp nhận” kết nối, thông báo cho client
message chứa đối tượng được yêu cầu, truyền thông điệp vào TCP socket của nó.
Trang 12❒ Thời gian truyền file
Tổng = 2RTT+ thời gian truyền
Thời gian truyền file
Khởi tạo TCP connection
RTT
Yêu cầu file
RTT
Nhận file
kết nối song song để lấy các
đối tượng tham chiếu
Trang 13User-agent: Mozilla/4.0 Connection: close Accept-language:en-us
(carriage return, line feed)
request line
(GET, POST,
HEAD commands)
header lines
Trang 14❒ Input được truyền lên
server dưới dạng thân
Yêu cầu server để đối
tượng được yêu cầu ra
ra trong URL
❒ DELETE
Xóa file được chỉ ra trong URL
Trang 152: Lớp Ứng dụng 29
HTTP response message
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
data data data data data
request thành công, đối tượng yêu cầu sau cùng có trong
thông điệp này
301 Moved Permanently
Đối tượng yêu cầu đã bị chuyển, vị trí mới được chỉ ra trong
Trong dòng đầu tiên trong thôn điệp đáp ứng từ server ->client
Ví dụ:
Trang 162: Lớp Ứng dụng 31
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:
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
Ví dụ:
❒ User thường truy cập Internet từ máy tính PC
❒ Vào một web site bán hàng qua mạng nào đó lần đầu
tiên
❒ Khi HTTP request đến web site, web site tạo:
danh định (ID) khác biệt
một mục trong cơ sở dữ liệu cho ID này
Trang 17Cookie và tính riêng tư:
❒ Cookie cho phép web site học và hiểu nhiều về user
❒ User có thể cung cấp tên và địa chỉ email cho web site
Cách thức giữ trạng thái
❒ các giao thức đầu cuối: duy trì
trạng thái tại sender/receiver
qua nhiều giao tác
❒ cookie: thông điệp http mang
trạng thái
Ky, thuâ-t Caching
❒ Kha.i niê-m cache
client mà không cần truy
vấn server nguồn
❒ Trường hợp thực tê.:
Mô-t cơ quan co mô-t đường
nô.i đê.n Internet
Tâ.t ca/ lưu lượng truy câ-p
Trang 18các yêu cầu đến cache
Đối tượng có trong
cache: cache đáp ứng
ngay
Đối tượng không có
trong cache, cache yêu
cầu đối tượng từ server
nguồn, sau đó gửi cho
client
client
Proxy server
client
HTTP
request
HTTP
response
HTT
P request
HTTP request
❒ Thông thường cache
được cài đặt bởi ISP
Lý do dùng Web caching?
❒ Giảm thời gian đáp ứng cho các yêu cầu từclient
❒ Giảm lưu lượng trên các liên kết Internet của
cơ quan
❒ Cho phép các nhà cung cấp nội dung phân phối nội dung hiệu quả
Trang 19❒ Thời gian trễ từ router của
doanh nghiệp đến bất cứ web
server nào bên ngoài, cả đi và
trễ truy cập + trễ qua LAN = 2
giây + hàng phút + hàng mili giây
server Internet
Mạng cục bộ
10 Mbps LAN
1.5 Mbps access link
❒ Băng thông sử dụng trên LAN = 15%
❒ Băng thông sử dụng trên access link =
15%
Tổng trễ = Trễ qua Internet + trễ truy
cập + trễ qua LAN = 2 giây + cỡ mili
server Internet
Mạng cục bộ
10 Mbps
access link
Trang 202: Lớp Ứng dụng 39
Ví dụ (3)
Giải pháp 2: cài đặt cache
❒ Giả sử xác suất tìm thấy
❒ Băng thông sử dụng trên
access link được giảm
Mạng cục bộ
10 Mbps LAN
1.5 Mbps access link
cache
GET có điều kiện
❒ Để máy chủ không phải gửi đối
tượng nếu cache vẫn còn lưu
Trang 21FTP (file transfer protocol)
❒ Truyền/nhận file đến/từ máy ở xa
Hệ thống file
ở xa user
Trang 222: Lớp Ứng dụng 43
Kết nối cho điều khiển và kết nối truyền
số liệu
❒ FTP client tiếp xúc với FTP
server tại port 21, dùng TCP
❒ client được xác thực qua kết nối
phục vụ điều khiển
❒ 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.
❒ Khi nhận lệnh truyền file, server
mở một kết nối TCP thứ 2 đến
client
❒ Sau khi truyền file xong, server
xóa kết nối số liệu.
FTP client
FTP server
Cầu nối TCP cho điều khiển, port 21
Cầu nối TCP cho data port 20
❒ Muốn truyền file khác, server lại mở kết nối số liệu.
❒ Thông tin điều khiển dùng kênh tách biệt với số liệu (out
of band)
❒ FTP là stateful: lưu giữ thư mục hiện hành và xác thực trước đó.
Active FTP va0 Passive FTP
❒ 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 .
❒ Vi
Trang 23du-2: Lớp Ứng dụng 45
Active FTP va0 Passive FTP (2)
❒ Passive mode: giải pha.p cho vâ.n đê0 làm sao server khởi
ta-o mô-t kê.t nô.i đê.n client
❒ PASV: lê-nh ba.o với server vê0 chê đô- passive
❒ 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)
❒ Vi du- passive mode
Trang 242: Lớp Ứng dụng 47
Active FTP va0 Passive FTP (4)
❒ Active FTP :
command : client >1023 > server 21
data : client >1023 < server 20
❒ Passive FTP :
command : client >1023 > server 21
data : client >1023 > server >1023
Các lệnh FTP và đáp ứng
Vài lệnh phổ biến:
❒ Lệnh dưới dạng ASCII text
qua kênh điều khiển
❒ RETR filename lấy file
❒ STOR filename gửi file
❒ 125 data connection already open;
transfer starting
❒ 425 Can’t open data connection
❒ 452 Error writing file
Trang 26(inbox) cho mỗi user được
lưu trên server
user mailbox
outgoing message queue
mail server
user agent
user agent
user agent mail
server
user agent user
agent
mail server
user agent
SMTP
SMTPSMTP
Mail server
Mail Server
❒ mailbox chứa thư đến
❒ outbox thư chờ gửi
❒ SMTP protocol để truyền thư
mail server
user agent
user agent
user agent mail
server
user agent user
agent
mail server
user agent
SMTPSMTPSMTP
Trang 27UserA truyền thư sang UserB
1) User A dùng user agent tạo
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
5) Sever B nhận và đặt thư vào mailbox của user B
6) User B dùng user agent để đọc thư
Trang 28thông điệp được mã
hóa theo mã 7-bit
Trang 292: Lớp Ứng dụng 57
Dạng mở rộng cho multimedia
❒ MIME: multimedia mail extension, RFC 2045, 2056
❒ Thêm các dòng trong header để khai báo loại nội dung
MIME
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
Kiểu số liệu multimedia,
khai báo tham số
Phương pháp được
dùng để mã hóa data
MIME version
Số liệu được mã hóa
Các giao thức lấy thư
❒ Giao thức : lấy thư từ server
POP: Post Office Protocol [RFC 1939]
• Xác thực (agent < >server) và download
user agent
mail Server của người gửi
user
agent
protocolmail Server
của người nhận
Trang 30Pha tương tác,client:
❒ list:liệt kê mã số thư
❒ retr:lấy thư bằng mã số
❒ dele:xóa
❒ 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 son
S: +OK C: pass ptithcm S: +OK user successfully logged on
thư trên client vừa lấy
thư Thay đổi client
không thể đọc lại thư
❒ Chế độ
“Download-và-lưu giữ”: các bản sao
của thư được lưu giữ
❒ IMAP giữ trạng thái qua các phiên:
Tên thư mục và ánh xạ giữa các message ID và tên thư mục
Trang 31dùng bởi con người
Ánh xạ qua lại giữa địa chỉ
Domain Name System:
Trang 322: Lớp Ứng dụng 63
Root DNS Servers
poly.edu DNS servers
umass.edu DNS servers yahoo.com
DNS servers
amazon.com
DNS servers
pbs.org DNS servers
Cơ sở dữ liệu phân tán, phân cấp
Client muốn tìm địa chỉ IP của www.yahoo.com
❒ client truy vấn một root server để tìm com DNS
Root name server
tên
Trang 332: Lớp Ứng dụng 65
TLD và các DNS Server cấp
thấp
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
Network Solutions cai quản các server cho com
TLD
Educause cho edu TLD
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)
Có thể được cai quản bởi tổ chức, doanh nghiệp hay
nhà cung cấp dịch vụ
Name Server trong mạng cục bộ
❒ Không ràng buộc vào phân cấp
❒ Mỗi ISP, công ty, trường học có một.
Cũng gọi là name server mặc định
❒ Khi host truy vấn DNS, truy vấn được gửi
đến DNS server cục bộ của host
Tác động như một proxy, chuyển truy ấn vào hệ
Trang 34DNS server thẩm quyền
dns.cs.ptithcm.edu
7 8
TLD DNS server
Ví dụ về phân giải tên
qua DNS
❒ Host tại cis.icu.edu
muốn địa chỉ IP của
❒ “Tôi không biết tên
này, đề nghị hỏi server
❒ Đặt trách nhiệm phân
giải tên lên name
server được liên hệ
Ví dụ về phân giải tên
qua DNS
Trang 352: Lớp Ứng dụng 69
Caching và cập nhật các record
❒ Khi name server học ánh xạ tên, nó sẽ cache lại
Các mục trong cache biến mất sau một khoảng
thời gian (timeout)
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
❒ Cơ chế cập nhật được xây dựng bởi IETF
Trang 38❒ Các peer kết nối với nhau
không liên tục và thay
đổi địa chỉ IP
peer-peer
Phân phối File
Câu h ỏ i đ ặ t ra: mất bao lâu để phân phối file từ
Trang 39thời gian để download
Tăng tuyến tính với N
Tcs= max {NF/us, F/min(di)}
i
Phân phối File theo P2P
F
❒ server phải gửi một bản sao
mất khoảng thời gian F /us
Trang 402: Lớp Ứng dụng 79
BitTorrent (1)
tracker:theo dõi các peer
tham gia vào torrent
torrent: nhóm cácPeer trao đổi các mẫu file(chunk)
❒ file được chia thành các mẫu (chunk) 256KB
❒ peer gia nhập torrent:
Không có chunk, nhưng sẽ tích lũy chúng theo thời gian
Đă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)
❒ Trong khi tải về, peer cũng tải lên các chunk đến các peer
khác
❒ Các peer có thể là điểm đến hay đi
❒ Khi peer đã có toàn bộ file, nó có thể bỏ đi hay giữ lại
Trang 412: Lớp Ứng dụng 81
BitTorrent (3)
Kéo các chunk
❒ 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
❒ Định kỳ, peer hỏi mỗi
peer láng giềng về danh
Mỗi 10 giây đánh giá lại top 4
❒ Mỗi 30 giây, chọn ngẫu nhiên một peer khác, khởi động truyền chunk
Peer mới được chọn có thể tham gia vào top 4
Khai thông
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
Trang 422: Lớp Ứng dụng 83
Tìm kiếm thông tin
Chia sẻ file (ví dụ e-mule)
❒ Index theo dõi động các
❒ Các peer tìm kiếm trong index để xác định địa chỉ IP của user
Index trong hệ thống P2P: ánh xạ thông tin sang vị trí peer
(vị trí = IP address & port number)
Index tập trung
1) khi peer kết nối, nó
thông báo server trung
peers 1
1
1 1 2
3
Peer A
Peer B
Trang 432: Lớp Ứng dụng 85
Index tập trung: Nhược
❒ Điểm lỗi đơn
❒ Cổ chai
❒ Vấn đề bản quyền
Hoạt động truyền file là phân tán
nhưng việc định vị file là tập trung
Truy vấn kiểu lũ (query flooding)
❒ Cạnh: liên kết ảo
Trang 442: Lớp Ứng dụng 87
Truy vấn kiểu lũ
Query response
Query
Qu ery
response
Query
Qu ery
resp
onse
Truyền File:
HTTP
❒ thông điệp truy vấn (query) được gửi
qua các kết nối TCP đang mở
❒ các peer chuyển tiếp
thông điệp truy vấn
❒ Phản hồi được gửi về
qua đường ngược lại
Gia nhập Gnutella
1. 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 đó
3. Tạo lũ truy vấn:peer A Ping đến peer B; peer B
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
4. Các peer nhận Ping phản hồi lại cho peer A bằng
thông điệp Pong
5. Peer A nhận nhiều Pong và sau đó có thể thiết lập
thêm các kết nối TCP
Trang 452: Lớp Ứng dụng 89
Mạng bao phủ phân cấp
❒ Giữa các index trung tâm,
dùng truy vấn kiểu lũ
❒ Mỗi peer là một super
node hay được gán là super
node
Kết nối TCP giữa peer và
super node của nó.
Kết nối TCP giữa các super
node.
❒ Super node theo dõi nội
dung trong node con của
nó
ordinary peer group-leader peer neighoring relationships
với các super node
❒ Index ánh xạ tên user
Skype clients (SC)
Supernode (SN) Skype
login server
Trang 462: Lớp Ứng dụng 91
Các peer làm relay
❒ 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
Trang 472: Lớp Ứng dụng 93Hết chương 2