Professional Documents
Culture Documents
Ute Chap 2 Application
Ute Chap 2 Application
Ute Chap 2 Application
Application Layer 1
CHƯƠNG 2: TẦNG ỨNG DỤNG
Application Layer 2
Chương 2: Tầng Application
Application Layer 3
Chương 2: Application
Mục tiêu:
Khái niệm, các khía cạnh hiện thực của các giao thức
ứng dụng mạng
• Các mô hình dịch vụ lớp transport
• Mô hình client-server, mô hình peer-to-peer
Nghiên cứu giao thức thông qua xem xét một số giao
thức lớp application
• HTTP, FTP, SMTP / POP3 / IMAP, DNS
Lập trình ứng dụng mạng
• socket API
Application Layer 4
Một số ứng dụng mạng
Application Layer 5
Tạo một ứng dụng mạng
application
Chương trình: transport
mobile network
network
• chạy trên các hệ thống đầu cuối data link
physical
national or global ISP
khác nhau
• truyền thông qua mạng
• Ví dụ: Web: phần mềm Web server
truyền thông với phần mềm trình
duyệt local or
regional ISP
Application Layer 7
Kiến trúc client-server
server:
mobile network
• host luôn hoạt động
national or global ISP
• địa chỉ IP cố định
• nhóm các server để chia sẻ
công việc
clients:
local or • truyền thông với server
regional ISP
• có thể kết nối không liên tục
home network content • có thể có địa chỉ IP thay đổi
provider
network datacenter
• không truyền thông trực tiếp
network
với client khác
• ví dụ: HTTP, IMAP, FTP
enterprise
network
Application Layer 8
Kiến trúc Peer – Peer
• không có server luôn hoạt mobile network
Application Layer 9
Tiến trình truyền thông
Client/server
Tiến trình: chương trình Tiến trình Client: tiến
chạy bên trong 1 host. trình khởi tạo truyền
• trong cùng host, 2 tiến thông
trình truyền thông dùng Tiến trình Server: tiến
truyền thông nội bộ (do trình chờ để được tiếp
hệ điều hành xác định). xúc
• các tiến trình trong các
host khác nhau truyền • Chú ý: các ứng dụng
thông bằng cách trao với kiến trúc P2P có cả
đổi các thông điệp các tiến trình client và
server.
Application Layer 10
Sockets
Application Layer 11
Tiến trình định địa chỉ
• Để nhận được thông điệp, tiến trình phải có nhận dạng
(identifier)
• Thiết bị host phải có địa chỉ IP duy nhất
• Địa chỉ IP mà trên đó tiến trình đang chạy có đủ để nhận dạng
tiến trình?
• KHÔNG, nhiều tiến trình có thể chạy trên cùng 1 host
• Nhận dạng bao gồm cả địa chỉ IP và các số cổng (port) liên kết với
tiến trình trên host.
• Ví dụ về số port:
• HTTP server: 80
• Mail server: 25
• Để gửi thông điệp HTTP cho web server gaia.cs.umass.edu :
• IP address: 128.119.245.12
• Port number: 80 Application Layer 12
Định nghĩa giao thức lớp ứng dụng
• Các kiểu của trao đổi thông Các giao thức mở:
điệp • Định nghĩa trong RFC
• Ví dụ: yêu cầu, đáp ứng
• Cho phép cộng tác
• Cú pháp thông điệp:
• Ví dụ: HTTP, SMTP
• Các trường nào trong thông
điệp và làm sao mô tả? Các giao thức độc quyền:
Ứng dụng Mất dữ liệu Băng thông Nhạy cảm thời gian
Application Layer 15
Các dịch vụ giao thức trên internet
TCP (transmission control UDP (user datagram protocol):
protocol):
• truyền dữ liệu không tin cậy
• Kết nối có hướng: cần thiết
lập tiến trình giữa client và giữa gửi và nhận
server • Không hỗ trợ: thiết lập kết
• Truyền tải tin cậy: giữa tiến nối, tin cậy, điều khiển
trình gửi và nhận luồng, điều khiển tắc nghẽn,
• Điều khiển luồng: người gửi định thì, bảo đảm băng
sẽ không lấn át người nhận thông tối thiểu
• Điều khiển tắc nghẽn: điều
tiết người gửi khi mạng quá
tải Thế thì sinh ra UDP để làm gì?
• Không cung cấp/đảm bảo:
thời gian, bảo đảm băng
thông tối thiểu Application Layer 16
Các giao thức lớp application, transport
Application Layer 17
Bảo mật TCP
Application Layer 18
Chương 2: Tầng Application
Application Layer 19
Web và HTTP
• Web page (trang Web) bao gồm các objects (đối
tượng), mỗi đối tượng có thể được lưu trữ trên các
máy chủ Web khác nhau
• Đối tượng: file HTML, hình ảnh JPEG image, Java
applet, file audio,…
• Trang Web file HTML cơ bản sẽ chứa một số đối
tượng có tham chiếu, mỗi đối tượng có thể xác định
địa chỉ bằng một URL
Ví dụ URL:
www.someschool.edu/someDept/pic.gif
Application Layer 21
Tổng quan HTTP(tt)
Dùng TCP:
• Client khởi tạo kết nối TCP (tạo socket) đến server, port 80
• Server chấp nhận kết nối TCP từ client
• Các thông điệp HTTP (thông điệp giao thức lớp application) trao
đổi giữa trình duyệt (HTTP client) và Web server (HTTP server)
• Đóng kết nối TCP
Application Layer 22
Kết nối HTTP
Application Layer 23
HTTP không bền vững
Giả sử user nhập vào URL như sau: (chứa text,
www.someSchool.edu/someDepartment/home.index
tham chiếu đến
10 hình)
1a. HTTP client khởi tạo kết nối TCP
connection đến HTTP server (tiến 1b. HTTP server tại host
trình) tại www.someSchool.edu www.someSchool.edu chờ kết nối
trên port 80 TCP tại port 80. “chấp nhận” kết nối,
thông báo cho client
2. HTTP client gửi HTTP thông điệp
yêu cầu (chứa URL) vào trong
socket kết nối TCP. Thông điệp chỉ 3. HTTP server nhận thông điệp yêu
rằng client muốn các đối tượng cầu, định dạng thông điệp đáp ứng
someDepartment/home.index chứa đối tượng được yêu cầu và
gửi thông điệp vào trong socket
của nó
Thời gian
Application Layer 24
HTTP không bền vững(tt)
Thời gian 6. Lặp lại các bước từ 1-5 cho các đối
tượng jpeg khác
Application Layer 25
HTTP không bền vững: thời gian phản hồi
Định nghĩa RTT(Round Trip Times)
thời gian xoay vòng: thời gian
để gửi một gói nhỏ đi từ client
khởi tạo
đến server và quay lại. kết nối
TCP RTT
Thời gian phản hồi (mỗi đối
tượng): yêu cầu Thời
file gian
• Một RTT để khởi tạo kết nối TCP RTT truyền
file
• Một RTT cho yêu cầu HTTP và
một vài byte đầu tiên của đáp nhận file
ứng HTTP được trả về
• Thời gian truyền file Thời gian Thời gian
Application Layer 28
Thông điệp phản hồi HTTP
Application Layer 29
Kiểm tra HTTP (phía client)
Application Layer 30
Duy trì trạng thái người dùng/máy chủ: cookies
Nhiều Web sites dùng cookies Ví dụ:
4 thành phần: • Susan truy cập Internet
1) cookie header line của thông luôn từ một PC
điệp đáp ứng HTTP • Cô ấy lần đầu tiên vào
2) cookie header line của thông một e-commerce site xác
điệp yêu cầu HTTP định
3) cookie file lưu trong host của • Khi yêu cầu khởi tạo HTTP
user, quản lý bởi trình duyệt đến site, site tạo một ID
của user duy nhất và tạo một điểm
4) cơ sở dữ liệu back-end tại đăng nhập trong cơ sở dữ
Web site liệu back-end cho ID đó
Application Layer 31
Duy trì trạng thái người dùng/máy chủ: cookies
client
server
ebay 8734 usual HTTP request msg Amazon server
cookie file creates ID
usual HTTP response 1678 for user backend
create
ebay 8734 set-cookie: 1678 entry database
amazon 1678
Kết quả
• độ khả dụng của LAN = 15%
10 Mbps
• độ khả dụng trên liên kết truy liên kết truy cập
cập = 15% network gửi
yêu cầu
• tổng thời gian trễ = trễ 10 Mbps LAN
Application Layer 37
Ví dụ caching(tt)
cài đặt cache servers
nguồn
• tốc độ hỗ trợ là 0.4
Internet
kết quả công cộng
• 40% yêu cầu sẽ được thỏa
mãn hầu như ngay lập tức
• 60% yêu cầu sẽ được thỏa 1.5 Mbps
mãn bởi server nguồn liên kết truy cập
If-modified-since: <date>
• server: đáp ứng không chứa
HTTP request msg
đối tượng nếu bản sao cache If-modified-since: <date> Đối tượng
đã cập nhật: Có
HTTP response sửa đổi
HTTP/1.0 304 Not Modified HTTP/1.0 200 OK
<data>
39
Chương 2: Lớp Application
Các nguyên lý của ứng dụng mạng
Web và HTTP
Electronic Mail: SMTP, POP3, IMAP
Domain Name System
FTP
Chia sẻ file P2P
Application Layer 40
E-mail
Application Layer 44
Thử nghiệm tương tác SMTP:
• telnet servername 25
• thấy 220 trả lời từ server
• nhập các lệnh HELO, MAIL FROM, RCPT TO, DATA, QUIT
Application Layer 45
SMTP: quan sát
• SMTP dùng các kết nối ổn So sánh với HTTP:
định • HTTP: kéo
• SMTP yêu cầu các thông điệp • SMTP: đẩy
(header & body) phải ở dạng • tất cả đều có tương tác
thức 7-bit ASCII lệnh/đáp ứng, các mã trạng
• SMTP server dùng CRLF.CRLF thái ASCII
xác định kết thúc thông điệp • HTTP: mỗi đối tượng được
đóng kín trong thông điệp
đáp ứng của nó
• SMTP: nhiều đối tượng được
gửi trong thông điệp nhiều
phần
Application Layer 46
Định dạng thông điệp email
Application Layer 47
Các giao thức truy cập email
user
e-mail access user
SMTP SMTP protocol
agent agent
(e.g., IMAP,
HTTP)
Application Layer 50
Chương 2: Lớp Application
Các nguyên lý của ứng dụng mạng
Web và HTTP
Electronic Mail: SMTP, POP3, IMAP
Domain Name System
FTP
Chia sẻ file P2P
Application Layer 51
DNS: Domain Name System
Con người: nhiều cách nhận Domain Name System:
dạng: • cơ sở dữ liệu phân bố hiện
• SSN, tên, #hộ chiếu thực theo tổ chức phân cấp
Internet hosts, routers: của nhiều servers tên
• địa chỉ IP (32 bit) dùng • giao thức lớp application
cho các gói định địa chỉ host, routers, name servers
• “tên”, ví dụ: cs.umass.edu để truyền thông với các tên
– dùng bởi con người phân giải (địa chỉ/dịch ra tên)
Ánh xạ giữa địa chỉ IP và tên? • lưu ý: chức năng lõi
Internet, hiện thực như
giao thức lớp application
• phức tạp ở “biên” mạng
Application Layer 52
DNS: dịch vụ, cấu trúc
Application Layer 53
Cơ sở dữ liệu phân tán, phân cấp
Root DNS Servers Root
… …
.com DNS servers .org DNS servers .edu DNS servers
Top Level Domain
… … … …
yahoo.com amazon.com pbs.org nyu.edu umass.edu Authoritative
DNS servers DNS servers DNS servers DNS servers DNS servers
13 name servers
gốc trên toàn cầu
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
55
TLD và thẩm quyền server
• Các server Top-level domain (TLD) : chịu trách nhiệm
cho tên miền com, org, net, edu,… và các tên miền
quốc gia như uk, fr, ca, jp.
• Lĩnh vực giáo dục cho edu TLD
57
DNS name resolution: truy vấn lặp
root DNS server
Ví dụ
• Host tại engineering.nyu.edu
muốn địa chỉ IP cho 2
3
gaia.cs.umass.edu TLD DNS server
1 4
8 5
8
requesting host at local DNS server 4
engineering.nyu.edu dns.nyu.edu 5
gaia.cs.umass.edu
60
DNS records
DNS: cơ sở dữ liệu phân bố lưu trữ các record tài nguyên
(Resource Record)
Định dạng RR: (name, value, type, ttl)
Type=A Type=CNAME
• name là tên host • name là bí danh của tên
• value là địa chỉ IP “chuẩn” (tên thực).
Type=NS • www.ibm.com là tên thực
62
DNS protocol messages
2 bytes 2 bytes
identification flags
dùng
63
Chương 2: Lớp Application
Các nguyên lý của ứng dụng mạng
Web và HTTP
Electronic Mail: SMTP, POP3, IMAP
Domain Name System
FTP
Chia sẻ file P2P
Application Layer 64
FTP: giao thức truyền file
FTP : File Transfer Protocol
Application Layer 66
Các lệnh, phản hồi FTP
Application Layer 67
Chương 2: Lớp Application
Các nguyên lý của ứng dụng mạng
Web và HTTP
Electronic Mail: SMTP, POP3, IMAP
Domain Name System
FTP
Chia sẻ file P2P
Application Layer 68
Kiến trúc Peer-to-peer (P2P)
Máy chủ hoạt động không thường
xuyên
Những hệ thống cuối tùy ý giao tiếp mobile network
trực tiếp national or global ISP
Q: Bao nhiêu thời gian để phân phối tệp (kích thước F) từ một
server đến N peer?
• Khả năng upload/download của peer là tài nguyên hạn chế
Application Layer: 70
Thời gian phân phối file: client-server
Server truyền: phải tuần tự gửi (tải
lên) N bản sao file:
• Thời gian gửi một bản sao: F/us
• Thời gian gửi một N bản sao : NF/us F
us
di
client: mỗi client phải tải xuống network
ui
bản sao file:
• dmin = tỉ lệ client tải xuống tối thiếu
• Thời gian tải xuống client tối thiểu: F/dmin
Application Layer 71
Thời gian phân phối file: P2P
server truyền: phải tải lên ít nhất một bản sao:
• Thời gian gửi một bản sao: F/us
F
client: mỗi client phải tải xuống một file us
di
• Thời gian tải xuống client tối thiếu: network
ui
F/dmin
Application Layer: 72
Client-server và P2P
Ví dụ:
client upload rate = u, F/u = 1 hour,
3.5 u = 10u, d
s min ≥ us
P2P
Minimum Distribution Time
3
Client-Server
2.5
1.5
0.5
0
0 5 10 15 20 25 30 35
Application Layer 73
P2P phân phối file: BitTorrent
Alice đến …
… lấy danh sách các peer
từ tracker
… và bắt đầu trao đổi các
mảnh file với các peer
trong torent
Application Layer 74
P2P phân phối file: BitTorrent(tt)
Peer tham gia torent:
• Không có mảnh, nhưng sẽ tích lũy
theo thòi gian từ các peer khác.
• Đăng ký với tracker để nhận danh
sách các peer kết nối với tập hợp
con của các peer (hàng xóm)
Trong khi tải xuống, peer tải lên các mảnh cho các peer khác
Rời đi: peers có thể đến hoặc đi
Mỗi khi peer có toàn bộ file, nó có thể (ích kỷ) rời đi hoặc ở lại
(vị tha) trong torrent
Application Layer: 75
BitTorrent: yêu cầu, gửi các mảnh file
Application Layer: 76