Bài giảng Mạng máy tính - Chương 7: Tầng ứng dụng - Ngô Hồng Sơn
Mô hình Client-server
Trao ñổi file giữa các máy
RFC 959
Sử dụng TCP, cổng 20, 21
ðiều khiển Out-of-band :
Lệnh của FTP : cổng 21
Dữ liệu: cổng 20
NSD phải ñăng nhập trước kh
truyền file
Một số server cho phép NSD
với tên là anonymous
43 trang |
Chia sẻ: huongthu9 | Lượt xem: 457 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Mạng máy tính - Chương 7: Tầng ứng dụng - Ngô Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Chươ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
2Tổ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
3Khái niệm cơ bản
4Nhắc lại về kiến trúc phân tầng
Application
(HTTP, Mail, )
Transport
(UDP, TCP )
Network
(IP, ICMP)
Datalink
(Ethernet, ADSL)
Physical
(bits)
Hỗ trợ các ứng dụng trên mạng
Truyền dữ liệu giữa các ứng dụng
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ý
5Ứng dụng và dịch vụ trên mạng?
CHATGAME
ON LINE
WEB
MAIL
SKYPE
YOUTUBE
SSH
TELNET
FTP
VoD
SCHOOL
ON THE
INTERNET
GOOGLE
BITTORENT E-COMMERCE
EBAY
MUSIC ONLINE
GRID
VIDEO
CONFERENCE
e-BANK
VoIP
NEWS
SMS
e-Office
e-Goverment
6Ứ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)
Ứ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:
Web (HTTP)
Mail (SMTP/POP/IMAP)
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
7Cá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
8Giao 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ụ
process
transport
layer
services
socket
host or
server
process
transport
layer
services
socket
host or
server
Internet
controlled by
app developer
controlled
by OS
9Các mô hình ứng dụng
Khách-chủ
P2P
Mô hình lai
10
Mô hình khách chủ
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,
client
client
client
client
Server
11
Mô hình ñiểm-ñiểm thuần túy
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
PeerPeer
Peer
Peer Peer
Peer
12
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
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
Server
Client
Client
Client
Client-Server Comm.
P2P Comm.
13
Case study 1: HTTP và WWW
14
HTTP và Web
WWW: World Wide Web
trao ñổi dữ liệu siêu văn bản
HTML (HyperText Markup
Language) trên Internet
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
http
request
h t t p
r e q u
e s t
h t t p
r e s
p o n
s e
http
response
Web clients
Web
server
IE
Firefox
Navigator
15
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 Dữ liệu - payloadHTTP header
16
Khuôn dạng HTTP request
Mã ASCII (dễ dàng ñọc ñược dưới dạng văn bản)
GET /dccn/index.html HTTP/1.1
Host: www.it-hut.edu.vn
User-agent: Mozilla/4.0
Connection: close
Accept-language:en-us
(extra carriage return, line feed)
request line
(GET, POST,
HEAD commands)
header
lines
CR, LF
indicates end
of message
17
Khuôn dạng HTTP response
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 ...
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
HTML file
18
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
19
Hoạt ñộng của HTTP/1.0
Time Time
Web client Web server
TCP
Conn.
Req.
GET
/index.html
i n d e x . h t m
l
A c c e p t e d
Init TCP connection
Send HTTP response: index.html
Close TCP connection
OK, send HTTP request
Accept TCP connection
GET
img1.jpg
Parse index.html: has 10
reference to 10 images
Repeat above steps 10
times!
Send images 1
Close TCP connection
TCP
Conn.
Req.
i m g 1 . j p g
Accept TCP connection
2xRTT
20
Hoạt ñộng của HTTP/1.1
Time Time
Web client Web server
TCP
Conn.
Req.
GET
/index.html
GET
i n d e x . h t m
l
A c c e p t e d
Init TCP connection
Send HTTP
response: index.html
OK, send HTTP request
Accept TCP connection
GET
i m g 1 . j p g
request images 2
Parse index.html: has 10
reference to 10 images
request images 1
Send images 1
Send images 2
request images 10
Stop-and-
wait!
Pipeline
21
HTTP/1.1 với pipeline
Time Time
Web client Web server
TCP
Conn.
Req.
GET
/index.html
GET
i n d e x . h t m
l
A c c e p t e d
Init TCP connection
Send HTTP
response: index.html
OK, send HTTP request
Accept TCP connection
Parse index.html: has 10
reference to 10 images
request images 1 -10
Send images 1-10
22
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
23
Mã trạng thái trả lời
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
Trong dòng ñầu tiên của thông ñiệp trả lời, ví dụ
24
Bộ ñệm- Caching
“Cache”: Bộ nhớ ñệm
Khái niệm bộ nhớ cache
trong máy tính
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?
www.xyz.com/index.htm
25
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
client
Proxy
server
client
H T
T P
r e
q u e
s t
H T
T P
r e
s p o
n s e
HTTP request H T
T P
r e q
u e s
t
Web
server
HTTP response H T
T P
r e s
p o n
s e
26
Web caches
Proxy: Vừa là client, vừa là server
Sử dụng bởi các ISP nhỏ, các tổ chức như trường
học, công ty
Ảnh hưởng của proxy
Làm giảm lưu lượng web trên ñường ra Internet
Có thể làm giảm thời gian ñáp ứng
Thử phân tích vài trường hợp
cache hit
cache miss
proxy bị quá tải
Trang web thay ñổi/trang web ñộng?
27
Local cache
Các trang web còn có thể ñược lưu trên máy
cục bộ
Sử dụng local cache ñể
Duyệt web offline
Duyệt các trang web hiệu quả hơn:
28
Phương thức GET có ñiều kiện
Mục ñích: Máy chủ sẽ
không gửi ñối tượng web
nếu proxy còn lưu giữ thông
tin cập nhật
Proxy: chỉ ra thời gian cũ
của ñối tượng
If-modified-since:
server: Xác nhận lại có thay
ñổi hay không:
HTTP/1.0 304 Not Modified
proxy server
HTTP request msg
If-modified-since:
HTTP response
HTTP/1.0
304 Not Modified
object
not
modified
HTTP request msg
If-modified-since:
HTTP response
HTTP/1.0 200 OK
object
modified
29
Quiz
Hãy cho biết liên kết TCP ñược thiết lập giữa
các máy ntn trong trường hợp dùng web
proxy?
Hình vẽ?
30
Case study 2: Email
31
Thư ñiện tử
MUA (Mail User Agent)
Lấy thư từ máy chủ, gửi thư ñến
máy chủ
e.g. Outlook, Thunderbird
MTA (Mail Transfer Agent): :
Chứa hộp thư ñến của NSD (mail
box)
Hàng ñợi ñể gửi thư ñi
e.g. Sendmail, MS Exchange
user
agent
mail
server
mail
server user
agent
Giao thức:
Chuyển thư: STMP-Simple
Mail Transfer Protocol
nhận thư
POP – Post Office Protocol
IMAP – Internet Mail
Access Protocol
SMTPPOP
IMAP
Mail box Message queue
IMAP
POP
SMTPSMTP
32
Giao thức SMTP
RFC 2821
TCP, port 25: Chuyển thư từ client ñến server và
giữa các server với nhau
Tương tác yêu cầu/trả lời
Yêu cầu: Lệnh với mã ASCII
Trả lời: mã trạng thái và dữ liệu
33
Các giao thức nhận thư
POP: Post Office Protocol [RFC 1939]
ðăng nhập và lấy hết thư về
IMAP: Internet Mail Access Protocol [RFC 1730]
Phức tạp hơn POP
Cho phép lưu trữ và xử lý thư trên máy chủ
Quota?
user
agent
sender’s mail
server
user
agent
SMTP SMTP access
protocol
receiver’s mail
server
34
Web Mail
Sử dụng Web browser như một MUA
MUA và MTA giao tiếp thông qua HTTP
Mails ñược lưu trữ trên máy chủ
E.g.
Gmail,
Hotmail,
Yahoo! Mail, etc.
Ngày nay, rất nhiều các MTA cho phép truy cập
thông qua giao diện web
35
Khuôn dạng thông ñiệp thư ñiện
tử
SMTP: Giao thức ñể truyền
thư
RFC 822: ðịnh nghĩa khuôn
dạng
Phần ñầu
To:
From:
Subject:
Phần thân
mã hóa dưới dạng mã
ASCII
header
body
blank
line
36
ðể chuyển dữ liệu ña phương tiện:
multimedia extensions
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
From: alice@crepes.fr
To: bob@hamburger.edu
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
37
Case Study 3
Ứng dụng truyền tệp
38
FTP: File Transfer Protocol
Mô hình Client-server
Trao ñổi file giữa các máy
RFC 959
Sử dụng TCP, cổng 20, 21
TCP data
connection, port 20
FTP
server
user
interface
FTP
client
local file system remote file system
user
TCP control
connection, port 21
ðiều khiển Out-of-band :
Lệnh của FTP : cổng 21
Dữ liệu: cổng 20
NSD phải ñăng nhập trước khi
truyền file
Một số server cho phép NSD
với tên là anonymous
39
Lệnh và mã trả lời
Một số ví dụ
USER username
PASS password
LIST : trả về danh sách
file
RETR filename Lấy file
STOR filename ðặt file
lên máy chủ
Ví dụ về mã trả lời
331 Username OK,
password required
125 data connection
already open; transfer
starting
425 Can’t open data
connection
452 Error writing file
40
Ví dụ về ftp client
C:\Documents and Settings\hongson>ftp
ftp> ?
Commands may be abbreviated. Commands are:
! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
Command line
GUI FTP clients: IE, Firefox, GFTP, .
41
Tóm tắt
Mô hình ứng dụng
Client-server vs. P2P
Một số ứng dụng và giao thức
HTTP
Mail
FTP
Về nhà, hãy tìm hiểu thêm
P2P
Giao diện lập trình Socket
42
Buổi học tới: Data-link Layer
Các nguyên lý tầng Data-link
Mạng LAN
43
Acknowledgment
Bài giảng có sử dụng các tư liệu và hình vẽ
từ:
Tài liệu của trường ñại học Keio và Ritsumekan
Tài liệu “Computer Network, a top down
approach” của J.F Kurose và K.W. Ross
Các file đính kèm theo tài liệu này:
- bai_giang_mang_may_tinh_chuong_7_tang_ung_dung_ngo_hong_son.pdf