Tải bản đầy đủ (.pdf) (107 trang)

Mạng máy tính-chương 2: Tầng ứng dụng pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (926.54 KB, 107 trang )

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


TCP

2.8 L

p trình socket v

i
2: Tầng ứng dụng
2

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
Chương 2: Tầng ứng dụng
Mục đích:
❒ Khái niệm, các khía

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

❒ Thư điện tử
❒ Web
❒ Tin nhắn nhanh
❒ Đăng nhập từ xa
Chia s

t

p ngang hàng
❒ Điện thoại Internet
❒ Hội nghị trực tuyến
❒ Tính toán song song
hiệu năng cao
2: Tầng ứng dụng
4

Chia s

t

p ngang hàng
❒ Trò chơi mạng với nhiều
người chơi
❒ Video streaming
Tạo một ứng dụng mạng
Viết chương trình
❍ Chạy ở các hệ thống cuối
khác nhau
❍ Giao tiếp qua mạng.
❍ vd., Web: Phần mềm Web

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

application
transport
network
data link
physical
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
TCP

2.8 L

p trình socket v

i
2: Tầng ứng dụng
6


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:

2: Tầng ứng dụng
8
clients:
❍ Giao tiếp với server
❍ Lúc kết nối, lúc không
❍ Có thể có địa chỉ IP
động
❍ Không giao tiếp với
client khác
Kiến trúc thuần ngang hàng
❒ Không có server luôn
chạy
❒ Các hệ thống cuối bất kỳ
giao tiếp trực tiếp với
nhau
2: Tầng ứng dụng
9
nhau
❒ Các đầu cuối ngang hàng
(peers) kết nối theo thời
điểm và thay đổi địa chỉ
IP giữa các lần kết nối
❒ vd: Gnutella
Tính khả mở rộng rất cao
Nhưng khó quản trị
Lai giữa client-server và P2P
Napster
❍ Truyền tệp P2P
❍ Tìm tệp tập trung:
• Peers đăng ký nội dung tại server trung tâm


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:

• Người dùng đăng ký địa chỉ IP của nó với server trung
tâm khi online
• Người dùng liên hệ server trung tâm để tìm địa chỉ IP
của bạn chat
Truyền thông tiến trình
Tiến trình (process):
chương trình đang chạy
ở một host.
❒ ở trên cùng host, hai
ti
ế
n trình truy

n thông
Tiến trình khách: tiến
trình khởi tạo truyền
thông
Tiến trình phục vụ: tiến
trình đ

i đ
ượ
c liên h

2: Tầng ứng dụng
11
ti
ế
n trình truy


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

12
báo ra ngoài c

a
❍ Hậ tầng truyền thông bên
ngoài cửa chuyển thông báo
đến trước cửa của tiến trình
nhận
TCP with
buffers,
variables
TCP with
buffers,
variables
Internet
controlled
by OS
❒ API: (1) lựa chọn giao thức vận chuyển; (2) xác định một
số tham số
Địa chỉ của tiến trình
❒ Để một tiến trình nhanạ
được thông báo, nó phải
có một định danh
❒ Một host có một địa chỉ
IP duy nhất

H:
đ

a ch


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

❍ Mail server: 25
Giao thức tầng ứng dụng định
nghĩa
❒ Các loại thông báo được
trao đổi giữa các tiến
trình ứng dụng
❒ Cú pháp/định dạng/cấu
trúc c

a các thông báo:
Giao thức công cộng:
❒ Được định nghĩa trong
RFCs
❒ Cho phép liên tác

vd, HTTP, SMTP
2: Tầng ứng dụng
14
trúc c

a các thông báo:
dãy các trường (thông
tin)
❒ Ngữ nghĩa của các trường
= nghĩa của thông tin
trong các trường
❒ Các luật xử lý (khi nào và
như thế nào) gửi/nhận
thông báo


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


p, telnet) yêu c

u
100% truyền dữ liệu tin cậy
Định thời
❒ Một số ứng dụng (vd.,
điện thoại Internet,
trò chơi có tương tác)
yêu cầu trễ thấp để có
“hiệu lực”

Các

ng d

ng khác
(“elastic apps”) tận
dụng mọi băng thông
chúng nhận
Yêu cầu dịch vụ giao vận của một số ứng dụng phổ
biến
Application
file transfer
e-mail
Web documents
real
-
time audio/video
Data loss
no loss

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

no loss
audio: 5kbps
-
1Mbps
video:10kbps-5Mbps
same as above
few kbps up
elastic
yes, 100’s msec
yes, few secs
yes, 100’s msec
yes and no
Các dịch vụ giao vận Internet
TCP service:

H
ướ
ng k
ế
t n

i:
cần có thiết lập
kết nối giữa các tiền trình
truyền thông với nhau

Giao v

n tin c


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


n

Ki

m soát lu

ng:
tiến trình gửi
không gửi quá khả năng nhận
của tiến trình nhận

Ki

m soát t

c ngh

n:
giảm tốc
độ gửi khi mạng quá tải

Không cung c

p:
định thời,
đảm bảo băng thông tối thiểu
k
ế
t n


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

18
file transfer
streaming multimedia
Internet telephony
FTP [RFC 959]
proprietary
(e.g. RealNetworks)
proprietary
(e.g., Dialpad)
TCP
TCP or UDP
typically UDP
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
TCP

2.8 L


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,…


Trang web bao g

m t

p HTML ch

a các đ

i t
ượ
ng
2: Tầng ứng dụng
20

Trang web bao g

m t

p HTML ch

a các đ

i t
ượ
ng
được tham chiếu
❒ Mỗi đối tượng có thể đánh địa chỉ bằng một URL
❒ Vd. URL:
www.someschool.edu/someDept/pic.gif
host name

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)

Sử dụng TCP:
❒ client khởi tạo kết nối TCP
(tạo socket) đến server, cổng
80
❒ server chấp nhận kết nối TCP
c

a client
HTTP là “phi trạng
thái”
❒ server không duy trì
thông tin các yêu cầu
trước của
Bên l

2: Tầng ứng dụng
22
c

a client
❒ Các thông báo HTTP được
trao đổi giữa trình duyệt
(HTTP client) và Web server
(HTTP server)
❒ Kết nối TCP được đóng
Giao thức duy trì trạng thái
phức tạp!
❒ Phải lưu lịch sử (trạng thái)
❒ Nếu server/client treo, cái
nhìn về “trạng thái” của hai

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

23

HTTP/1.0 s

d

ng k
ế
t
nối không liên tục
HTTP

HTTP/1.1 s

d

ng k
ế
t
nối không liên tục ở chế
độ mặc định
HTTP không liên tục
Giử sử người dùng nhập URL
www.someSchool.edu/someDepartment/home.index
1a. HTTP client khởi động kết nối
TCP đến HTTP server tại
www.someSchool.edu trên cổng
80
1b. HTTP server ở
www.someSchool.edu đợi kết

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


n” k
ế
t n

i, báo cho
client
3. HTTP server nhận thông báo
yêu cầu, tạo thông báo
response
chứa các đối tượng
được yêu cầu, và gửi ra socket
của nó
time
HTTP không liên tục (tiếp)
5. HTTP client nhận response
chưa tệp html, hiển thị html.
Phân tích html, tìm thấy 10 đối
tượng jpeg được tham chiếu
4. HTTP server đóng kết nối TCP.
time
2: Tầng ứng dụng
25
6. Các bước 1-5 dược lặp lại cho
mỗi đối tượng ảnh
time

×