Chương 2
Tầng ứng dụng
2: Tầng ứng dụng
1
Computer Networking:
A Top Down Approach
Featuring the Internet
,
3
rd
edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.
Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .
Chương 2: Tầng ứng dụng
❒ 2.1 Các nguyên lý của
ứng dụng mạng
❒ 2.2 Web và HTTP
❒ 2.3 FTP
❒
2.4 Th
ư
đi
ệ
n t
ử
❒ 2.6 Chia sẻ tệp ngang
hàng
❒ 2.7 Lập trình socket với
cạnh cài đặt của các
giao thức tầng ứng
dụng
Các mô hình d
ị
ch
❒ Học các giao thức
bằng việc thực hành
các giao thức tầng ứng
dụng phổ biến
❍ HTTP
FTP
2: Tầng ứng dụng
3
❍
Các mô hình d
ị
ch
vụ tầng vận chuyển
❍ Mô hình khách-
phục vụ
❍ Mô hình ngang hàng
❍
FTP
❍ SMTP / POP3 / IMAP
❍ DNS
❒ Lập trình ứng dụng
mạng
❍ socket API
Một số ứng dụng mạng
server giao ti
ế
p v
ớ
i các
application
transport
network
data link
physical
2: Tầng ứng dụng
5
server giao ti
ế
p v
ớ
i các
trình duyệt
Không phần mềm dưdợc viết
cho thiết bị trong lõi
mạng
❍ Thiết bị lõi mạng không
hoạt động ở tầng ứng dụng
❍ Thiết kế này cho phép phát
triển nhanh ứng dụng
application
transport
network
data link
physical
2.4 Th
ư
đi
ệ
n t
ử
❍ SMTP, POP3, IMAP
❒ 2.5 DNS
❒
2.8 L
ậ
p trình socket v
ớ
i
UDP
❒ 2.9 Phát truển một Web
server
Các kiến trúc ứng dụng
❒ Khách-phục vụ (Client-server)
❒ Ngang hàng (Peer-to-peer - P2P)
❒ Lai (client-server và P2P)
2: Tầng ứng dụng
7
Kiến trúc Client-server
server:
❍ Đầu cuối luôn chạy
❍ Địa chỉ IP cố định
❍ server farms cho tính
khả mở rộng
clients:
•
Peers truy v
ấ
n server trung tâm đ
ể
đ
ị
nh v
ị
n
ộ
i dung
2: Tầng ứng dụng
10
•
Peers truy v
ấ
n server trung tâm đ
ể
đ
ị
nh v
ị
n
ộ
i dung
Tin nhắn nhanh
❍ Chat giữa hai người dùng là P2P
❍ Phát hiện sự có mặt (online)/xác định vị trí: tập
trung:
n thông
sử dụng truyền thông
liên tiến trình (được xác
định bởi HĐH).
❒ Các tiến trình ở các host
khác nhau truyền thông
bằng trao đổi thông báo
❒ Ghi chú: các ứng dụng
với kiến trúc P2P có cả
tiến trình khác và tiến
trình phục vụ
Sockets
❒ Tiến trình gửi/nhận thông
báo với nhau qua socket
❒ socket tương tự như cửa
❍ Tiến trình gửi chuyển thông
báo ra ngoài c
ử
a
process
socket
host or
server
process
socket
host or
server
controlled by
app developer
2: Tầng ứng dụng
ỉ
IP c
ủ
a host
❒ Định danh tiến trình
bao gồm cả địa chỉ IP
và số hiệu cổng tương
ứng với tiến trình.
❒ Ví dụ số hiệu cổng:
❍
HTTP server: 80
2: Tầng ứng dụng
13
❒
H:
đ
ị
a ch
ỉ
IP c
ủ
a host
mà tiến trình đang chạy
có thể làm định danh
tiến trình?
❒ T: Không, nhiều tiến
trình có thể cùng chạy
trên cùng host
❍
HTTP server: 80
vd, HTTP, SMTP
Giao thức đặc quyền:
❒ vd, KaZaA
Một ứng dụng cần dịch vụ giao vận nào?
Mất dữ liệu
❒ Một số ứng dụng (vd.,
audio) có thể thứ một số
gói mất
❒ Các ứng dụng khác (vd.,
truy
ề
n t
ệ
p, telnet) yêu c
ầ
u
Băng thông
❒ Một số ứng dụng (vd.,
multimedia) yêu cầu
băng thông tối thiểu để
có “hiệu lực”
Các
ng d
ng khác
2: Tầng ứng dụng
15
truy
ề
n t
ệ
no loss
no loss
loss
-
tolerant
Bandwidth
elastic
elastic
elastic
audio: 5kbps
-
1Mbps
Time Sensitive
no
no
no
yes, 100’s msec
2: Tầng ứng dụng
16
real
-
time audio/video
stored audio/video
interactive games
instant messaging
loss
-
tolerant
loss-tolerant
loss-tolerant
y
giữa tiến trình
g
ử
i và ti
ế
n trình nh
ậ
n
UDP service:
❒ Truyền không tin cậy giữa
tiến trình gửi và tiến trình
nhận
❒ Không cung cấp: thiết lập
k
ế
t n
ố
i, ki
ể
m soát lu
ồ
ng,
2: Tầng ứng dụng
17
g
ử
i và ti
ế
n trình nh
ố
i, ki
ể
m soát lu
ồ
ng,
kiểm soát tắc nghẽn, định
thời, hoặc đảm bảo băng
thông
H: Tại sao lại có UDP?
Các ứng dụng Internet: giao thức tầng ứng dụng và
giao thức giao vận được sử dụng
Ứng dụng
e-mail
remote terminal access
Web
file transfer
Giao thức tầng
ứng dụng
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
Giao thức giao vận
được sử dụng
TCP
TCP
TCP
TCP
2: Tầng ứng dụng
ậ
p trình socket v
ớ
i
2: Tầng ứng dụng
19
❒
2.4 Th
ư
đi
ệ
n t
ử
❍ SMTP, POP3, IMAP
❒ 2.5 DNS
❒
2.8 L
ậ
p trình socket v
ớ
i
UDP
❒ 2.9 Phát truển một Web
server
Web và HTTP
Một số thuật ngữ ban đầu
❒ Trang web bao gồm các đối tượng
❒ Đối tượng có thể là tệp HTML, JPEG image, Java
applet, audio file,…
❒
path name
Tổng quan HTTP
HTTP: hypertext
transfer protocol
❒ Giao thức tầng ứng dụng cho
Web
❒ Mô hình client/server
PC running
Explorer
2: Tầng ứng dụng
21
❍
client:
trình duyệt yêu
cầu, nhận và hiển thị các
đối tượng Web
❍
server:
Web server gửi
các đối tượng web trong
các đáp ứng yêu cầu
❒ HTTP 1.0: RFC 1945
❒ HTTP 1.1: RFC 2068
Server
running
Apache Web
server
Mac running
Navigator
Tổng quan HTTP (tiếp)
tiến trình sẽ không nhất
quán
Bên l
ề
Kết nối HTTP
Không liên tục
❒ Nhiều nhất một đối
tượng được gửi trong
một kết nối TCP.
❒
HTTP/1.0 s
ử
d
ụ
ng k
ế
t
Liên tục
❒ Nhiều đối tượng có thể
được gửi trong một kết
nối TCP.
❒
HTTP/1.1 s
ử
d
ụ
ng k
ế
t
2: Tầng ứng dụng
nối
TCP connection
ở
c
ổ
ng 80.
“ch
p nh
n” k
t n
i, báo cho
(chứa text,
tham chiếu đến
10 ảnh jpeg)
2: Tầng ứng dụng
24
2. HTTP client gửi thông báo
HTTP
request
(chứa URL) vào
socket TCP. Thông báo biểu thị
rằng client cần các đối tượng
tại
someDepartment/home.index
TCP connection
c
ng 80.
“ch
ấ
p nh