TẦNG ỨNG DỤNG - · PDF fileo Một số ứng dụng đòi hỏi độ trễ...
Transcript of TẦNG ỨNG DỤNG - · PDF fileo Một số ứng dụng đòi hỏi độ trễ...
Nội dung
Giới thiệu chung tầng Ứng Dụng
Các giao thức, dịch vụ ở tầng Ứng Dụng
o HyperText Transfer Protocol (HTTP)
o File Transfer Protocol (FTP)
o Domain Name System (DNS)
o Dynamic Host Configuration Protocol (DHCP)
o Thư điện tử (e-mail), SMTP, POP & IMAP
o P2P
2 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Nhắc lại về kiến trúc phân tầng
Hệ giao thức TCP/IP
3 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Ứng dụng mạng
4 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Một số thuật ngữ
Tiến trình: chương trình đang chạy trên thiết bị đầu cuối o Trên cùng máy tính, hai tiến trình có thể truyền thông với
nhau qua truyền thông liên tiến trình (HĐH quản lý)
o Các tiến trình chạy trên các máy khác nhau: tuân thủ giao thức tầng ứng dụng
User Agent: phần mềm đóng vai trò giao diện giữa người dùng và mạng o Cài đặt giao thức tầng ứng dụng
o Ví dụ
• Web: trình duyệt (Browser) IE, Firefox, Opera, Chrome,…
• E-mail: mail reader Outlook, Thunderbird,…
• Streaming audio/video: media player
5 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Tầng Ứng Dụng
Tầng cao nhất của mô hình OSI o Giao tiếp trực tiếp với các tiến
trình ứng dụng
o Thi hành những dịch vụ thông thường của các tiến trình đó
Cung cấp các dịch vụ mạng cho các ứng dụng người dùng o Text-based: truy cập từ xa, email,
truyền tập tin, diễn đàn trao đổi,…
o Multimedia: WWW, điện thoại Internet, hội nghị trực tuyến, âm thanh và video theo yêu cầu,…
6 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Trình ứng dụng
và Giao thức tầng ứng dụng
Trình ứng dụng: Các tiến trình phân tán truyền
thông với nhau
o Chạy trên các thiết bị đầu cuối
o Trao đổi thông điệp với nhau
o Ví dụ: email, FTP, Web
Giao thức tầng ứng dụng
o Một phần của trình ứng dụng
o Định nghĩa các quy tắc giao tiếp
o Sử dụng dịch vụ truyền thông do tầng dưới cấp (TCP,
UDP)
7 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Giao thức tầng ứng dụng
API: Application Programming Interface
o Giao diện giữa tầng ứng dụng và giao vận
Socket : Internet API
o Hai tiến trình truyền thông với nhau bằng cách
gửi/nhận dữ liệu vào/từ socket
Socket được định danh bởi:
o Địa chỉ IP của máy (IP Address)
o Số hiệu cổng (Port)
o Kiểu giao thức giao vận (TCP/UDP)
8 Port thông dụng: http://www.iana.org/assignments/port-numbers
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Yêu cầu từ tầng giao vận (1)
Mất mát dữ liệu (Data Loss)
o Chấp nhận sự mất mát UDP
o Đòi hỏi 100% dữ liệu truyền tin cậy TCP
Thời gian (Timing)
o Một số ứng dụng đòi hỏi độ trễ thấp (hội thoại, trò
chơi trực tuyến)
Băng thông (Bandwidth)
o Chỉ hoạt động khi thỏa mãn băng thông tối thiểu
o Hoạt động ở bất cứ băng thông nào
9 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Yêu cầu từ tầng giao vận (2)
Ví dụ: yêu cầu của một số ứng dụng cụ thể
10 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Giao thức tầng giao vận cấp (1)
TCP (Transmission Control Protocol)
o Hướng nối: yêu cầu thiết lập kết nối Client-Server
o Truyền dữ liệu tin cậy: xác nhận từ bên nhận
o Điều khiển lưu lượng: không làm lụt bên nhận
o Kiểm soát tắc nghẽn: điều chỉnh tốc độ khi quá tải
o Không hỗ trợ: thời gian, băng thông tối thiểu
UDP (User Datagram Protocol)
o Truyền dữ liệu không tin cậy: không xác nhận từ bên nhận
o Không hỗ trợ: thiết lập kết nối, độ tin cậy, điều khiển lưu
lượng, kiểm soát tắc nghẽn, thời gian, băng thông tối thiểu
Vậy tại sao vẫn sử dụng UDP
11 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Giao thức tầng giao vận cấp (2)
Ví dụ: một số ứng dụng trên internet và giao
thức giao vận tương ứng
12 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Các mô hình ứng dụng
Khách - chủ
Ngang hàng (Peer-to-Peer)
Mô hình lai
13 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Mô hình khách – chủ
Khách (Client) o Gửi yêu cầu truy cập đến
máy chủ
o Địa chỉ IP: động hoặc tĩnh
o Nguyên tắc: không liên lạc với máy khách khác
Chủ (Server) o Thường xuyên trực tuyến
o Địa chỉ IP tĩnh (hoặc dùng Dynamic DNS)
o Máy chủ dự phòng
Ví dụ: Web, Mail, …
14 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Mô hình điểm - điểm
Không có máy chủ
trung tâm
Các máy có vai trò
ngang hàng
Hai máy bất kì có thể
liên lạc trực tiếp
Địa chỉ IP: động hoặc
tĩnh
Ví dụ: Gnutella
15 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Mô hình lai
Máy chủ trung tâm
o Quản lý người dùng
o Thông tin tìm kiếm,…
Các máy khách giao
tiếp trực tiếp với nhau
Ví dụ: Skype
o Server: quản lý đăng
nhập
o Client kết nối trực tiếp
với nhau
16 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Một số giao thức, ứng dụng
Web và HTTP (HyperText Transfer Protocol)
Truyền tập tin và FTP (File Transfer Protocol)
Domain Name System (DNS)
Dynamic Host Configuration Protocol (DHCP)
Thư điện tử (e-mail) và SMTP, POP & IMAP
P2P
17 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Web và giao thức HTTP
WWW: World Wide Web o Mạng lưới toàn cầu
o Trao đổi tài liệu siêu văn bản HTML (HyperText Markup Language) trên Internet
HTTP: HyperText Transfer Protocol o Giao thức truyền siêu văn
bản
o Giao thức tầng ứng dụng cho ứng dụng web
o Mô hình: Client – Server
18 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Hoạt động của HTTP
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 kết nối
Trao đổi thông điệp HTTP (giao thức ứng dụng)
o HTTP Request
o HTTP Response
Đóng kết nối TCP
19 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Các liên kết HTTP
HTTP không duy trì
o Chỉ 1 đối tượng web được gửi qua liên kết TCP
o Sử dụng mặc định HTTP/1.0 (RFC 1945)
HTTP có duy trì
o Nhiều đối tượng có thể gửi qua một liên kết TCP
o Sử dụng mặc định HTTP/1.1 (RFC 2068)
20 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Hoạt động của HTTP/1.0
21 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Hoạt động của HTTP/1.1
22 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Hoạt động của HTTP/1.1 với Pipeline
23 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
HTTP Request (1)
Định dạng dưới mã ASCII
24 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
HTTP Request (2)
25 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
HTTP Request (3)
Các phương thức trong thông điệp yêu cầu
26 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
HTTP Response (1)
27 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
HTTP Response (2)
Mã trạng thái trả lời
28 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Example 1
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng 29
This example retrieves a document. We use the GET method to
retrieve an image with the path /usr/bin/image1. The request line
shows the method (GET), the URL, and the HTTP version (1.1).
The header has two lines that show that the client can accept
images in the GIF or JPEG format. The request does not have a
body.
The response message contains the status line
and four lines of header. The header lines define the date, server,
MIME version, and length of the document. The body of the
document follows the header.
Example 1
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng 30
Example 2
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng 31
In this example, the client wants to send data to the server. We
use the POST method. The request line shows the method
(POST), URL, and HTTP version (1.1). There are four lines of
headers. The request body contains the input information.
The response message contains the status line and four lines of
headers. The created document, which is a CGI document, is
included as the body.
Example 2
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng 32
Bộ đệm - Caching
“Cache”: bộ nhớ đệm
Xét trường hợp như trong
ảnh: nhiều máy từ 1 tổ
chức cùng truy cập đến 1
địa chỉ
Giải pháp?
33 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Sử dụng bộ đệm web proxy
34 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Web Caches (1)
Proxy: vừa là client, vừa là server
Sử dụng bởi các ISP nhỏ, các tổ chức trường
học, công ty…
Ưu điểm
o Giảm lưu lượng web trên internet
o Giảm thời gian đáp ứng
Khuyết điểm
o Thắt cổ chai
o Thông tin lỗi thời
35 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Web Caches (2)
Xét 1 số trường hợp của proxy
o Cache hit
o Cache miss
o Proxy quá tải
o Trang web động
36 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Phương thức GET có điều kiện
37 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Ứng dụng truyền tập tin
Mô hình: Client – Server
Trao đổi file giữa các máy
Giao thức FTP (File Transfer Protocol, RFC 959)
Phương thức vận chuyển: TCP
o Cổng 21: lệnh FTP
o Cổng 20: dữ liệu
38 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
FTP
Ví dụ một số lệnh và mã trả lời
39 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
FTP
Ví dụ
Command line
40 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Dịch vụ thư điện tử (1)
Simple Mail Transport Protocol (SMTP)
Internet Message Access Protocol (IMAP)
Post Office Protocol (POP)
41
user agent
mail server
mail server user
agent
1
2 3 4 5 6
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Dịch vụ thư điện tử (2)
MUA (Mail User Agent) o Lấy thư từ, máy chủ, gửi thư đến máy chủ
o e.g. Outlook, Thunderbird…
MTA (Mail Transfer Agent) o Chứa hộp thư đến của người dùng (mail box)
o Hàng đợi để gửi thư đi
o e.g. Sendmail, MS Exchange…
Giao thức: o Chuyển thư: STMP - Simple Mail Transfer Protocol
o Nhận thư • POP – Post Office Protocol
• IMAP – Internet Mail Access Protocol
42 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Giao thức SMTP
RFC 2821
TCP, port 25: Chuyển thư
o Từ client đến server
o Giữa các server với nhau
Tương tác yêu cầu trả lời
o Yêu cầu: Lệnh vi mã ASCII
o Trả lời: mã trạng thái và dữ liệu
43
user agent
sender’s mail server
user agent
SMTP SMTP access protocol
receiver’s mail server MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Khuôn dạng thư điện tử
SMTP: Giao thức để truyền thư
RFC 822: định nghĩa khuôn dạng
Phần đầu o To:
o From:
o Subject:
Phần thân o Mã hóa dưới dạng mã
ASCII
44
header
body
blank line
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Định dạng thư điện tử:
Mở rộng đa phương tiện
MIME: multimedia mail extension, RFC 2045, 2056
Thêm một dòng trong phân đầu chỉ rõ khuôn dạng dữ
liệu gửi đi
45
From: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
multimedia data type, subtype,
parameter declaration
method used to encode data
MIME version
encoded data
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Các giao thức nhận thư
POP: Post Office Protocol [RFC 1939] o Đăng nhập và lấy hết thư về
o Port: 110 (POP 3)
IMAP: Internet Mail Access Protocol [RFC 1730] o Phức tạp hơn POP
o Cho phép lưu trữ và xử lý thư trên máy chủ
o Port: 143
HTTP: HyperText Transfer Protocol o Sử dụng Web browser như một MUA
o MUA và MTA giao tiếp thông qua HTTP
o Ví dụ: Hotmail, Yahoo! Mail, Gmail…
46 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
POP3 protocol
47
authorization phase client commands:
o user: declare username
o pass: password
server responses
o +OK
o -ERR
transaction phase, client:
list: list message numbers
retr: retrieve message by number
dele: delete
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 bob
S: +OK
C: pass hungry
S: +OK user successfully logged on
MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Hệ thống tên miền
Domain Name System – DNS
o Danh bạ phân bố phân tầng và toàn cục
o Dịch từ tên máy hoặc tên miền sang địa chỉ IP
48 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Giao thức cấu hình máy chủ động
Dynamic Host Configuration Protocol (DHCP)
49 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Chia sẻ ngang hàng P2P
Centralized directory: original Napster
Gnutella
KaZaA
BitTorrent
50 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
P2P: centralized directory
51
centralized directory server
peers
Alice
Bob
1
1
1
1 2
3
original “Napster” design
1) when peer connects, it
informs central server:
o IP address
o content
2) Alice queries for “Hey
Jude”
3) Alice requests file from
Bob
Source: Jim Kurose, Keith Ross, Computer networking: A top down approach, Featuring the Internet, 3rd edition MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Query flooding: Gnutella
52
Query
QueryHit
Query
QueryHit
Query message sent over existing TCP connections peers forward Query message QueryHit sent over reverse path Scalability: limited scope flooding
Source: Jim Kurose, Keith Ross, Computer networking: A top down approach, Featuring the Internet, 3rd edition MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Exploiting heterogeneity: KaZaA
53
ordinary peer
group-leader peer
neighoring relationships
in overlay network
Each peer is either a
group leader or assigned
to a group leader.
o TCP connection between
peer and its group leader.
o TCP connections between
some pairs of group
leaders.
Group leader tracks the
content in all its children.
Source: Jim Kurose, Keith Ross, Computer networking: A top down approach, Featuring the Internet, 3rd edition MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
BitTorrent
54 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Tài liệu tham khảo
Andrew S. Tanenbaum, “Computer Networks”,
5th edition: chapter 7
Nader F. Mir, “Computer and Communication
Networks”: chapter 9
Jim Kurose & Keith Ross, “Computer
Networking: A Top-Down Approach”, 5th edition:
chapter 2
55 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng
Thảo luận
Câu hỏi?
Ý kiến?
Đề xuất?
56 MXPhu – Mạng Căn bản – 2. Tầng Ứng Dụng