1
Tầng ứng dụng
2-1
Chương 2
Tầng ứng dụng
Computer Networking:
A Top-Down Approach
8
th
edition
Jim Kurose, Keith Ross
Pearson, 2020
A note on the use of these ppt slides:
We
re making these slides freely available to all (faculty, students, readers).
They
re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs.
They obviously represent a lot of work on our part. In return for use, we only
ask the following:
If you use these slides (e.g., in a class) that you mention their source
(after all, we
d like people to use our book!)
If you post any slides on a www site, that you note that they are adapted
from (or perhaps identical to) our slides, and note our copyright of this
material.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved
Người dịch: Nguyễn Thị Thanh Thủy
Tài liệu được dịch cho mục đích giảng dạy
Tầng ứng dụng
2-2
Chương 2: Tầng ứng dụng
Mục tiêu:
Khái niệm, các vấn đề
triển khai giao thức
ứng dụng mạng
Các mô hình dịch
vụ tầng giao vận
Mô hình khách-chủ
(client-server)
Mô hình điểm-điểm
(peer-to-peer)
Nghiên cứu một số giao
thức tầng ứng dụng
HTTP
FTP
SMTP / POP3 / IMAP
DNS
Các hệ thống video
streaming, CDNs
Tạo một ứng dụng mạng
socket API
2-3
Chương 2: Nội dung
2.1. Nguyên lý của ứng
dụng mạng
2.1.1. Các kiến trúc của
ứng dụng mạng
2.1.2. Truyền thông giữa
các tiến trình
2.1.3. Các dịch vụ giao vận
2.2. Web HTTP
2.3. FTP
2.4. Thư điện tử
2.5. DNS (Domain Name
Systems)
2.6. Ứng dụng Peer-to-peer
2.7. Video streaming và các
mạng phân phối nội dung
2.8. Lập trình socket với UDP
và TCP
Tầng ứng dụng Tầng ứng dụng
2-4
Một số ứng dụng mạng
Mạng xã hội
Web
Tin nhắn văn bản (text
messaging)
Thư điện tử (e-mail)
Trò chơi nhiều người
trên mạng
streaming stored video
(YouTube, Hulu, Netflix)
Chia sẻ file P2P
Điện thoại Internet
(voice over IP, ví dụ
Skype)
Hội thảo video thời gian
thực
Các ứng dụng tìm kiếm
Truy nhập từ xa
(remote login)
2
Tầng ứng dụng
2-5
Tạo một ứng dụng mạng
Viết chương trình để:
Chạy trên các hệ thống đầu cuối
(khác nhau)
Truyền thông qua mạng
Ví dụ: phần mềm máy chủ web
(web server) truyền thông với phần
mềm trình duyệt (browser software)
Không cần viết chương trình ứng
dụng cho các thiết bị trong phần
lõi của mạng
Các thiết bị trong phần lõi của mạng
không chạy các ứng dụng người
dùng.
Các ứng dụng chạy trên thiết bị đầu
cuối cho phép phát triển và phổ
biến ứng dụng một cách nhanh
chóng.
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Tầng ứng dụng
2-6
Kiến trúc của ứng dụng
Các ứng dụng có thể có kiến trúc dạng:
Client-server (khách-chủ )
Peer-to-peer (P2P, ngang hàng)
Tầng ứng dụng
2-7
Kiến trúc client-server
server:
Là host luôn hoạt động
Có địa chỉ IP cố định
Thường có trong các trung tâm dữ
liệu, để mở rộng quy mô.
client:
Liên lạc, truyền thông với server
Có thể được kết nối liên tục vào mạng
hoặc không
Có thể có địa chỉ IP thay đổi
Không truyền thông trực tiếp với client
khác
Ví dụ:
HTTP, IMAP, FTP
client/server
Tầng ứng dụng
2-8
Kiến trúc P2P
Không có server luôn hoạt động
Các hệ thống đầu cuối (peer)
truyền thông trực tiếp với nhau
Mỗi peer yêu cầu dịch vụ từ một
peer nào đó, và cung cấp dịch vụ
lại cho các peer khác.
Có khả năng tự mở rộng peer
mới mang lại khả năng dịch vụ
mới, cũng như có những yêu cầu
dịch vụ mới.
Các peer không kết nối liên tục và
có thể thay đổi địa chỉ IP
Quản lý phức tạp
Ví dụ: chia sẻ file P2P [BitTorrent]
peer-peer
3
Tầng ứng dụng
2-9
Tiến trình truyền thông
Tiến trình: chương trình
chạy trên một host
Trên cùng một host, hai tiến
trình truyền thông với nhau
qua truyền thông tiến trình nội
bộ (được xác định bởi hệ điều
hành)
Các tiến trình trên các host
khác nhau truyền thông với
nhau bằng cách trao đổi các
thông điệp
Tiến trình client: tiến trình
khởi tạo truyền thông
Tiến trình server: tiến trình
chờ được tiếp xúc
Lưu ý: ứng dụng theo kiến
trúc P2P có cả tiến trình client
& tiến trình server
client, server
Tầng ứng dụng
2-10
Socket
Các tiến trình gửi/nhận các thông điệp đến/từ socket của
Socket tương tự như một cửa vào/ra
Tiến trình gửi đẩy thông điệp ra bên ngoài cửa
Tiến trình gửi dựa trên cơ sở hạ tầng tầng giao vận ở phía bên
kia cửa để truyền thông điệp đến socket của tiến trình nhận.
Hai socket phụ thuộc vào nhau: mỗi socket ở một phía.
Internet
được điều khiển
bởi hệ điều hành
được điều khiển
bởi người phát
triển ứng dụng
Giao vận
Ứng dụng
Vật lý
Liên kết
Mạng
tiến trình
Giao vận
Ứng dụng
Vật lý
Liên kết
Mạng
tiến trình
socket
Tầng ứng dụng
2-11
Định địa chỉ cho tiến trình
Để nhận các thông điệp, tiến
trình phải có định danh
(identifier)
Thiết bị host phải có địa chỉ IP
32-bit duy nhất
Câu hỏi: Địa chỉ IP của host
mà trên đó tiến trình chạy có
đủ để xác định định danh của
tiến trình không?
Định danh bao gồm cả địa chỉ
IP số hiệu cổng được kết
hợp với tiến trình trên host.
Ví dụ các số hiệu cổng:
HTTP server: 80
mail server: 25
Để gửi thông điệp HTTP tới
web server gaia.cs.umass.edu:
Địa chỉ IP: 128.119.245.12
Số hiệu cổng: 80
Trả lời: Không, do nhiều
tiến trình có thể cùng chạy
trên một host.
Tầng ứng dụng
2-12
Các giao thức tầng ứng dụng
Các loại thông điệp được
trao đổi
Ví dụ: thông điệp yêu cầu
(request), thông điệp đáp
ứng (response)
Cú pháp của thông điệp:
Các trường trong thông
điệp & mô tả
Ngữ nghĩa của thông điệp
Ý nghĩa thông tin của các
trường
Quy tắc
về thời gian và cách
thức các tiến trình gửi và đáp
ứng thông điệp
Các giao thức mở (công
khai):
Được định nghĩa trong
RFCs (mọi người đều có thể
truy nhập vào).
Cho phép tương tác
Ví dụ: HTTP, SMTP
Các giao thức riêng (độc
quyền):
Ví dụ: Skype, Zoom
4
Tầng ứng dụng
2-13
Một ứng dụng cần những dịch vụ giao vận nào?
Toàn vẹn dữ liệu
Một số ứng dụng (ví dụ:
truyền file, web) yêu cầu
truyền tin cậy 100%
Các ứng dụng khác (ví dụ:
audio) có thể chịu một số mất
mát.
Thời gian thực
Một số ứng dụng (ví dụ:
điện thoại Internet, trò
chơi tương tác) yêu cầu
độ trễ thấp mới “hiệu quả”
Băng thông
Một số ứng dụng (ví dụ: đa
phương tiện) yêu cầu băng
thông tối thiểu để đảm bảo
“hiệu quả”.
Các ứng dụng khác (
các
ứng dụng mềm dẻo
) có thể
dùng băng thông nào cũng
được.
An toàn bảo mật
Mã hóa, đảm bảo toàn vẹn
dữ liệu, …
Tầng ứng dụng
2-14
Một số yêu cầu dịch vụ giao vận với
các ứng dụng phổ biến
Ứng dụng
Truyền file
Thư điện tử
Web
Audio/video
thời gian thực
Lưu trữ audio/video
Trò chơi tương tác
Tin nhắn nhanh
Mất mát
dữ liệu
không
không
không
chịu lỗi
chịu lỗi
chịu lỗi
không
Thông lượng
mềm dẻo
mềm dẻo
mềm dẻo
audio: 5kbps-1Mbps
video:10kbps-5Mbps
như trên
một vài kbps
mềm dẻo
Thời gian
thực
không
không
không
có, 100 ms
có, vài giây
có, 10 ms
có và không
Tầng ứng dụng
2-15
Các dịch vụ giao thức giao vận Internet
Dịch vụ TCP:
Truyền tin cậy
giữa tiến trình
gửi và tiến trình nhận
Điều khiển luồng:
bên gửi
không lấn át bên nhận
Điều khiển tắc nghẽn:
điều
tiết bên gửi khi mạng bị quá tải
Không cung cấp:
thời gian
thực, đảm bảo băng thông tối
thiểu, an toàn bảo mật
Hướng kết nối:
yêu cầu thiết
lập kết nối giữa tiến trình client
và tiến trình server
Dịch vụ UDP:
Truyền dữ liệu 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:
truyền tin
cậy, điều khiển luồng, điều
khiển tắc nghẽn, thời gian
thực, đảm bảo băng thông, an
toàn bảo mật, hoặc thiết lập
kết nối
Câu hỏi: Tại sao lại dùng cả hai
dịch vụ? Dùng UDP để làm gì?
Tầng ứng dụng
2-16
Các ứng dụng Internet:
các giao thức tầng ứng dụng giao vận
Ứng dụng
Truyền file
Thư điện tử
Web
Điện thoại Internet
streaming audio/video
Trò chơi tương tác
Giao thức
tầng ứng dụng
FTP [RFC 959]
SMTP [RFC 5321]
HTTP [RFC 7230, 9110]
SIP [RFC 3261], RTP
[RFC 3550], hoặc giao
thức độc quyền
HTTP [RFC 7230], DASH
WOW, FPS (giao thức
độc quyền)
Giao thức
tầng giao vận
TCP
TCP
TCP
TCP hoặc UDP
TCP
UDP hoặc TCP
5
Bảo mật TCP
TCP & UDP
Không mã hóa
Mật khẩu dạng bản rõ được
gửi vào socket để truyền trên
Internet theo dạng bản rõ
Bảo mật tầng giao vận
(Transport Layer Security, TLS)
Cung cấp kết nối TCP được
mã hóa
Toàn vẹn dữ liệu
Xác thực đầu cuối
TLS được triển khai tại
tầng ứng dụng
Các ứng dụng sử dụng
thư viện TSL, tiếp đó sử
dụng TCP
Mật khẩu dạng bản rõ
được gửi vào socket để
truyền trên Internet theo
dạng đã được mã hóa.
Tầng ứng dụng
2-17

Preview text:

Chương 2: Tầng ứng dụng Chương 2 Tầng ứng dụng Mục tiêu:
 Nghiên cứu một số giao
 Khái niệm, các vấn đề thức tầng ứng dụng triển khai giao thức  HTTP ứng dụng mạng  FTP
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).  Các mô hình dịch  SMTP / POP3 / IMAP
They’re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs. vụ tầng giao vận  DNS
They obviously represent a lot of work on our part. In return for use, we only ask the following:  Mô hình khách-chủ  Các hệ thống video
 If you use these slides (e.g., in a class) that you mention their source Computer Networking: streaming, CDNs
(after all, we’d like people to use our book!) A Top-Down Approach (client-server)
 If you post any slides on a www site, that you note that they are adapted 8th edition
from (or perhaps identical to) our slides, and note our copyright of this
 Tạo một ứng dụng mạng material. Jim Kurose, Keith Ross  Mô hình điểm-điểm Pearson, 2020  socket API Thanks and enjoy! JFK/KWR (peer-to-peer)
All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved
Người dịch: Nguyễn Thị Thanh Thủy
Tài liệu được dịch cho mục đích giảng dạy Tầng ứng dụng 2-1 Tầng ứng dụng 2-2 Chương 2: Nội dung Một số ứng dụng mạng 2.1. Nguyên lý của ứng 2.5. DNS (Domain Name  Mạng xã hội  Điện thoại Internet dụng mạng Systems)  Web (voice over IP, ví dụ
2.1.1. Các kiến trúc của 2.6. Ứng dụng Peer-to-peer Skype)
 Tin nhắn văn bản (text ứng dụng mạng 2.7. Video streaming và các messaging)
 Hội thảo video thời gian 2.1.2. Truyền thông giữa mạng phân phối nội dung thực  Thư điện tử (e-mail) các tiến trình
2.8. Lập trình socket với UDP
 Các ứng dụng tìm kiếm
2.1.3. Các dịch vụ giao vận
 Trò chơi nhiều người trên mạng  Truy nhập từ xa 2.2. Web và HTTP và TCP (remote login) 2.3. FTP  streaming stored video (YouTube, Hulu, Netflix)  … 2.4. Thư điện tử  Chia sẻ file P2P Tầng ứng dụng 2-3 Tầng ứng dụng 2-4 1
Tạo một ứng dụng mạng application
Kiến trúc của ứng dụng transport network data link Viết chương trình để: physical 
Chạy trên các hệ thống đầu cuối (khác nhau)
Các ứng dụng có thể có kiến trúc dạng:  Truyền thông qua mạng
 Client-server (khách-chủ ) 
Ví dụ: phần mềm máy chủ web
(web server) truyền thông với phần
 Peer-to-peer (P2P, ngang hàng)
mềm trình duyệt (browser software)
Không cần viết chương trình ứng
dụng cho các thiết bị trong phần application lõi của mạng transport network data link application 
Các thiết bị trong phần lõi của mạng physical transport network
không chạy các ứng dụng người data link dùng. physical 
Các ứng dụng chạy trên thiết bị đầu
cuối cho phép phát triển và phổ
biến ứng dụng một cách nhanh chóng. Tầng ứng dụng 2-5 Tầng ứng dụng 2-6 Kiến trúc client-server Kiến trúc P2P server: 
Không có server luôn hoạt động peer-peer  Là host luôn hoạt động 
Các hệ thống đầu cuối (peer) 
Có địa chỉ IP cố định
truyền thông trực tiếp với nhau 
Thường có trong các trung tâm dữ 
Mỗi peer yêu cầu dịch vụ từ một
liệu, để mở rộng quy mô.
peer nào đó, và cung cấp dịch vụ client: lại cho các peer khác.
 Có khả năng tự mở rộng – peer 
Liên lạc, truyền thông với server
mới mang lại khả năng dịch vụ 
Có thể được kết nối liên tục vào mạng client/server hoặc không
mới, cũng như có những yêu cầu dịch vụ mới. 
Có thể có địa chỉ IP thay đổi 
Không truyền thông trực tiếp với client 
Các peer không kết nối liên tục và khác
có thể thay đổi địa chỉ IP Ví dụ:  Quản lý phức tạp  HTTP, IMAP, FTP 
Ví dụ: chia sẻ file P2P [BitTorrent] Tầng ứng dụng 2-7 Tầng ứng dụng 2-8 2 Tiến trình truyền thông Socket 
Các tiến trình gửi/nhận các thông điệp đến/từ socket của nó
Tiến trình: chương trình client, server 
Socket tương tự như một cửa vào/ra chạy trên một host
Tiến trình client: tiến trình
 Tiến trình gửi đẩy thông điệp ra bên ngoài cửa khởi tạo truyền thông
 Tiến trình gửi dựa trên cơ sở hạ tầng tầng giao vận ở phía bên 
Trên cùng một host, hai tiến
trình truyền thông với nhau
Tiến trình server: tiến trình
kia cửa để truyền thông điệp đến socket của tiến trình nhận.
qua truyền thông tiến trình nội chờ được tiếp xúc
 Hai socket phụ thuộc vào nhau: mỗi socket ở một phía.
bộ (được xác định bởi hệ điều Ứng dụng Ứng dụng được điều khiển hành) socket tiến trình bởi người phát tiến trình
 Lưu ý: ứng dụng theo kiến triển ứng dụng 
Các tiến trình trên các host Giao vận Giao vận
khác nhau truyền thông với
trúc P2P có cả tiến trình client Mạng được điều khiển Mạng
nhau bằng cách trao đổi các & tiến trình server bởi hệ điều hành Liên kết Internet Liên kết thông điệp Vật lý Vật lý Tầng ứng dụng 2-9 Tầng ứng dụng 2-10
Định địa chỉ cho tiến trình
Các giao thức tầng ứng dụng
 Các loại thông điệp được Các giao thức mở (công 
Để nhận các thông điệp, tiến 
Định danh bao gồm cả địa chỉ
trình phải có định danh
IP và số hiệu cổng được kết trao đổi khai): (identifier)
hợp với tiến trình trên host.
 Ví dụ: thông điệp yêu cầu  Được định nghĩa trong
(request), thông điệp đáp
RFCs (mọi người đều có thể 
Thiết bị host phải có địa chỉ IP 
Ví dụ các số hiệu cổng: ứng (response) 32-bit duy nhất truy nhập vào).  HTTP server: 80
 Cú pháp của thông điệp:  Cho phép tương tác 
Câu hỏi: Địa chỉ IP của host  mail server: 25
mà trên đó tiến trình chạy có
 Các trường trong thông  Ví dụ: HTTP, SMTP 
Để gửi thông điệp HTTP tới
đủ để xác định định danh của điệp & mô tả web server gaia.cs.umass.edu: tiến trình không?
 Địa chỉ IP: 128.119.245.12
 Ngữ nghĩa của thông điệp
Các giao thức riêng (độc
 Trả lời: Không, do nhiều  Số hiệu cổng: 80
 Ý nghĩa thông tin của các quyền):
tiến trình có thể cùng chạy trường  Ví dụ: Skype, Zoom trên một host.
 Quy tắc về thời gian và cách
thức các tiến trình gửi và đáp ứng thông điệp Tầng ứng dụng 2-11 Tầng ứng dụng 2-12 3
Một ứng dụng cần những dịch vụ giao vận nào?
Một số yêu cầu dịch vụ giao vận với các ứng dụng phổ biến Toàn vẹn dữ liệu Băng thông Mất mát Thời gian
 Một số ứng dụng (ví dụ:
 Một số ứng dụng (ví dụ: đa
truyền file, web) yêu cầu
phương tiện) yêu cầu băng Ứng dụng dữ liệu Thông lượng thực truyền tin cậy 100%
thông tối thiểu để đảm bảo “hiệu quả”. Truyền file không không
 Các ứng dụng khác (ví dụ: mềm dẻo
audio) có thể chịu một số mất  Các ứng dụng khác (“các Thư điện tử không mềm dẻo không mát.
ứng dụng mềm dẻo”) có thể Web không mềm dẻo không dùng băng thông nào cũng Audio/video chịu lỗi audio: 5kbps-1Mbps có, 100 ms Thời gian thực được. thời gian thực video:10kbps-5Mbps
 Một số ứng dụng (ví dụ: Lưu trữ audio/video chịu lỗi như trên có, vài giây
điện thoại Internet, trò An toàn bảo mật Trò chơi tương tác chịu lỗi một vài kbps có, 10 ms
chơi tương tác) yêu cầu
 Mã hóa, đảm bảo toàn vẹn Tin nhắn nhanh không mềm dẻo có và không
độ trễ thấp mới “hiệu quả” dữ liệu, … Tầng ứng dụng 2-13 Tầng ứng dụng 2-14
Các dịch vụ giao thức giao vận Internet Các ứng dụng Internet:
các giao thức tầng ứng dụng và giao vận Dịch vụ TCP: Dịch vụ UDP: Giao thức Giao thức
 Truyền tin cậy giữa tiến trình
 Truyền dữ liệu không tin Ứng dụng tầng ứng dụng tầng giao vận gửi và tiến trình nhận
cậy giữa tiến trình gửi và tiến
 Điều khiển luồng: bên gửi trình nhận Truyền file FTP [RFC 959] TCP không lấn át bên nhận
 Không cung cấp: truyền tin Thư điện tử SMTP [RFC 5321] TCP
 Điều khiển tắc nghẽn: điều
cậy, điều khiển luồng, điều Web HTTP [RFC 7230, 9110] TCP
tiết bên gửi khi mạng bị quá tải
khiển tắc nghẽn, thời gian SIP [RFC 3261], RTP
thực, đảm bảo băng thông, an TCP hoặc UDP
 Không cung cấp: thời gian Điện thoại Internet [RFC 3550], hoặc giao
thực, đảm bảo băng thông tối
toàn bảo mật, hoặc thiết lập thức độc quyền TCP thiểu, an toàn bảo mật kết nối streaming audio/video
HTTP [RFC 7230], DASH UDP hoặc TCP
 Hướng kết nối: yêu cầu thiết
lập kết nối giữa tiến trình client
Câu hỏi: Tại sao lại dùng cả hai WOW, FPS (giao thức Trò chơi tương tác và tiến trình server
dịch vụ? Dùng UDP để làm gì? độc quyền) Tầng ứng dụng 2-15 Tầng ứng dụng 2-16 4 Bảo mật TCP TCP & UDP
TLS được triển khai tại  Không mã hóa tầng ứng dụng
 Mật khẩu dạng bản rõ được
 Các ứng dụng sử dụng
gửi vào socket để truyền trên
thư viện TSL, tiếp đó sử Internet theo dạng bản rõ dụng TCP
 Mật khẩu dạng bản rõ Bảo mật tầng giao vận
được gửi vào socket để
(Transport Layer Security, TLS) truyền trên Internet theo
 Cung cấp kết nối TCP được dạng đã được mã hóa. mã hóa  Toàn vẹn dữ liệu  Xác thực đầu cuối Tầng ứng dụng 2-17 5