Chương 7:
Tầng ứng dụng
Giảng viên: Ngô Hồng Sơn
Bộ môn Truyền thông và Mạng máy tính
Khoa CNTT- ðHBK Hà Nội
1
SinhVienZone.com
/>
Tổng quan
Buổi trước: Tầng giao vận
Nguyên lý của tầng giao vận
TCP và UDP
Khái niệm kiểm soát luồng và kiểm soát tắc
nghẽn
Hôm nay: Tầng ứng dụng
Nguyên lý của tầng ứng dụng
Case study: HTTP, Mail, FTP, DNS, P2P…
2
SinhVienZone.com
/>
Khái niệm cơ bản
3
SinhVienZone.com
/>
Nhắc lại về kiến trúc phân tầng
Application
Hỗ trợ các ứng dụng trên mạng
(HTTP, Mail, …)
Transport
Truyền dữ liệu giữa các ứng dụng
(UDP, TCP …)
Network
(IP, ICMP…)
Datalink
(Ethernet, ADSL…)
Physical
(bits…)
Chọn ñường và chuyển tiếp gói tin giữa
các máy, các mạng
Hỗ trợ việc truyền thông cho các thành
phần kế tiếp trên cùng 1 mạng
Truyền và nhận dòng bit trên ñường
truyền vật lý
4
SinhVienZone.com
/>
Ứng dụng và dịch vụ trên mạng?
MUSIC ONLINE
VoIP
GAME
ON LINE
CHAT
VoD
e-Office
e-BANK
SMS
MAIL
SCHOOL
ON THE
INTERNET
WEB
YOUTUBE
VIDEO
CONFERENCE
GOOGLE
TELNET
FTP
EBAY
SKYPE
SSH
NEWS
BITTORENT
E-COMMERCE
GRID
e-Goverment
SinhVienZone.com
/>
5
Ứng dụng và giao thức ứng dụng
Giao thức ứng dụng
ðịnh nghĩa các quy tắc giao tiếp
Sử dụng các dịch vụ giao vận
(TCP/UDP…)
application
transport
network
data link
physical
Ứng dụng :
Các tiến trình giao tiếp với nhau
trên Internet qua việc trao ñổi
thông ñiệp
Hoạt ñộng trên các hệ thống
cuối
Cài ñặt giao thức ứng dụng ñể
cung cấp dịch vụ
Ví dụ ứng dụng/giao thức:
application
transport
network
data link
physical
Web (HTTP)
Mail (SMTP/POP/IMAP) …
application
transport
network
data link
physical
6
SinhVienZone.com
/>
Các thành phần của ứng dụng
Chương trình
Giao diện NSD:
Hỗ trợ cho NSD ñể làm việc với ứng dụng,
e.g. trình duyệt Web (Firefox, IE), phần mềm thư ñiện tử
(Thunderbird, Outlook,..)
Cài ñặt các giao thức và sử dụng dịch vụ giao vận
Chương trình máy chủ
Cung cấp dịch vụ cho người sử dụng
Tiến trình ứng dụng: chương trình ñang chạy trên
hệ ñiều hành
Các tiến trình giao tiếp?
Trên một máy: IPC (inter-process communication)
Giữa các máy trên mạng: qua socket
7
SinhVienZone.com
/>
Giao tiếp giữa các tiến trình trên
Internet
Nhắc lại: Socket là một giao
diện giữa tiến trình ứng dụng
và tầng giao vận
Socket ñược ñịnh danh bởi
Số hiệu cổng
ðịa chỉ IP
Kiểu giao thức giao vận
(TCP hay UDP)
Socket API (Application
Programming Interface): Cho
phép các tiến trình lựa chọn
tham số, lựa chọn dịch vụ…
host or
server
host or
server
process
controlled by
app developer
socket
socket
transport
layer
services
process
Internet
transport
layer
services
controlled
by OS
8
SinhVienZone.com
/>
Các mô hình ứng dụng
Khách-chủ
P2P
Mô hình lai
9
SinhVienZone.com
/>
Mô hình khách chủ
client
client
client
Server
client
Khách
Gửi yêu cầu truy cập dịch
vụ ñến máy chủ
Về nguyên tắc, không liên
lạc trực tiếp với các máy
khách khác
Chủ
Thường xuyên online ñể
chờ y/c ñến từ máy trạm
Có thể có máy chủ dự
phòng ñể nâng cao hiệu
năng, phòng sự cố
e.g. Web, Mail, …
10
SinhVienZone.com
/>
Mô hình ñiểm-ñiểm thuần túy
Peer
Peer
Peer
Peer
Peer
Peer
Không có máy chủ trung
tâm
Các máy có vai trò
ngang nhau
Hai máy bất kỳ có thể
liên lạc trực tiếp với
nhau
Không cần vào mạng
thường xuyên
E.g. Gnutella
11
SinhVienZone.com
/>
Mô hình lai
Một máy chủ trung tâm
ñể quản lý NSD, thông
tin tìm kiếm…
Các máy khách sẽ giao
tiếp trực tiếp với nhau
sau khi ñăng nhập
E.g. Skype
Client
Server
Client
Client
Máy chủ Skype quản lý
các phiên ñăng nhập, mật
khẩu…
Sau khi kết nối, các máy
sẽ gọi VoIP trực tiếp cho
nhau
Client-Server Comm.
12
P2P Comm.
SinhVienZone.com
/>
Case study 1: HTTP và WWW
13
SinhVienZone.com
/>
HTTP và Web
WWW: World Wide Web
Web clients
trao ñổi dữ liệu siêu văn bản
HTML (HyperText Markup
Language) trên Internet
IE
HTTP: HyperText Transfer
Protocol
Mô hình Client/Server
Client yêu cầu truy nhập tới các
trang web (các ñối tượng web)
và hiển thị chúng lên trình duyệt
Server: Nhận yêu cầu và trả lời
cho client
Firefox
htt
p
htt
p
req
ue
st
res
po
ns
e
server
t
es
u
eq
se
r
n
p
po
htt
s
re
p
t
ht
14
Navigator
SinhVienZone.com
Web
/>
HTTP hoạt ñộng ntn?
Server mở một TCP socket chờ tại cổng 80 (default)
Client khởi tạo một liên kết TCP tới server
Server chấp nhận yêu cầu tạo liên kết
Trao ñổi thông ñiệp HTTP (giao thức ứng dụng)
HTTP Request
HTTP Response
ðóng liên kết TCP
IP header TCP header HTTP header
Dữ liệu - payload
15
SinhVienZone.com
/>
Khuôn dạng HTTP request
Mã ASCII (dễ dàng ñọc ñược dưới dạng văn bản)
request line
(GET, POST,
HEAD commands)
GET /dccn/index.html HTTP/1.1
Host: www.it-hut.edu.vn
User-agent: Mozilla/4.0
header Connection: close
lines Accept-language:en-us
CR, LF
(extra carriage return, line feed)
indicates end
of message
16
SinhVienZone.com
/>
Khuôn dạng HTTP response
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
HTML file
HTTP/1.1 200 OK
Connection close
Date: Tue, 16 Mar 2008 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 15 Mar 2008 …...
Content-Length: 8990
Content-Type: text/html
data data data data data ...
17
SinhVienZone.com
/>
Các liên kết HTTP
HTTP không duy trì
Chỉ một ñối tượng web
ñược gửi qua liên kết
TCP
Sử dụng mặc ñịnh
trong HTTP/1.0
HTTP 1.0: RFC 1945
HTTP có duy trì
Nhiều ñối tượng có thể
ñược gửi qua một liên
kết TCP.
Sử dụng mặc ñịnh
trong HTTP/1.1
HTTP 1.1: RFC 2068
18
SinhVienZone.com
/>
Hoạt ñộng của HTTP/1.0
Web client
Web server
TCP C
onn. R
eq.
Init TCP connection
Accept TCP connection
OK, send HTTP request
GET /index
.html
index.
Parse index.html: has 10
reference to 10 images
html
Close TCP connection
TCP C
onn. R
eq.
ted
Accep
Repeat above steps 10
times!
GET im
g1.jpg
pg
img1.j
2xRTT
Accept TCP connection
Send images 1
Close TCP connection
19
Time
SinhVienZone.com
Send HTTP response: index.html
Time
/>
Hoạt ñộng của HTTP/1.1
Web client
Web server
TCP C
onn. R
eq.
Init TCP connection
ted
Accep
OK, send HTTP request
Parse index.html: has 10
reference to 10 images
request images 1
GET /index
.html
index.
html
Send HTTP
response: index.html
GET…
pg
img1.j
request images 2
Accept TCP connection
Send images 1
GET…
Send images 2
request images 10
Time
SinhVienZone.com
Stop-andwait!
Pipeline
20
Time
/>
HTTP/1.1 với pipeline
Web client
Web server
TCP C
onn. R
eq.
Init TCP connection
ted
Accep
OK, send HTTP request
Parse index.html: has 10
reference to 10 images
request images 1 -10
GET /index
.html
index.
html
Accept TCP connection
Send HTTP
response: index.html
GET…
Send images 1-10
21
Time
SinhVienZone.com
Time
/>
Các phương thức trong thông
ñiệp yêu cầu
HTTP/1.0
GET
POST
HEAD
yêu cầu máy chủ loại một
số ñối tượng ra khỏi thông
ñiệp trả lời
HTTP/1.1
GET, POST, HEAD
PUT
tải file lên máy chủ, ñường
dẫn chỉ ra trong URL, file
ñể trong body
DELETE
Xóa file chỉ ra bới ñường
dẫn
Lưu ý: Có 2 cách ñể gửi tham số ñến server: POST hoặc GET
/>22
SinhVienZone.com
/>
Mã trạng thái trả lời
Trong dòng ñầu tiên của thông ñiệp trả lời, ví dụ
200 OK
request succeeded, requested object later in
this message
301 Moved Permanently
requested object moved, new location specified
later in this message (Location:)
400 Bad Request
request message not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
23
SinhVienZone.com
/>
Bộ ñệm- Caching
“Cache”: Bộ nhớ ñệm
Khái niệm bộ nhớ cache
trong máy tính
www.xyz.com/index.htm
L1 cache, L2 cache
“cache miss”, “cache hit”
Xem xét trường hợp sau:
Một tổ chức có một ñường
nối tới Internet
Tất cả lưu lượng truy cập
web ñều ñi qua liên kết này
Nhiều NSD web có thể
cùng truy nhập tới cùng một
nội dung
Giải pháp cải tiến?
24
SinhVienZone.com
/>
Sử dụng bộ ñệm web - proxy
NSD ñặt tham số kết nối
truy cập web của trình
duyệt qua một máy chủ
proxy
trình duyệt gửi yêu cấu
ñến proxy
Miss: Proxy gửi yêu cầu
tới máy chủ web, trả lời
trình duyệt và lưu ñệm
ñối tượng web
Hit: Proxy trả ñối tượng
web cho trình duyệt
Web
server
HT
T
clientHTTP
Pr
eq u
Proxy
server
est
r es
pon
se
st
e
u
eq
r
P
n se
T
o
p
HT
es
r
TP
T
H
es t
u
q
e
Pr
T
nse
o
HT
p
r es
P
T
HT
client
25
SinhVienZone.com
/>