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

Tầng Máy Tính - Bài Giảng Mạng Máy Tính

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 (921.27 KB, 98 trang )

Mạng máy tính
Bộ môn Kỹ thuật máy tính và Mạng
Khoa Công nghệ Thông tin

1-1


Chương 2: Tầng ứng dụng
2.1 Các nguyên tắc của
ứng dụng mạng
‰ 2.2 Web và HTTP
‰ 2.3 FTP
‰ 2.4 E-Mail
‰



‰

SMTP, POP3, IMAP

2.6 Chia sẻ file P2P
‰ 2.7 Lập trình Socket với
TCP
‰
với
‰ 2.8
2.8 Lập
Lập trình
trình Socket
Socket với


Lập trình Socket với UDP
UDP
‰

2.5 DNS

1-2


Chương 2: Tầng ứng dụng
Mục đích:
‰ Các khía cạnh của
các giao thức ứng
dụng mạng




Mô hình dịch vụ tầng
giao vận
Mô hình Client-Server
Mô hình peer-to-peer

‰

Học về các giao thức
phổ biến mức ứng
dụng






‰

HTTP
FTP
SMTP / POP3 / IMAP
DNS

Lập trình các ứng
dụng mạng


Socket API

1-3


Một số ứng dụng mạng
‰
‰
‰
‰
‰
‰

E-mail
Web
Instant messaging

Remote login
Chia sẻ file P2P
Trò chơi nhiều người
sử dụng qua mạng

Điện thoại qua Internet
‰ Hội nghị truyền hình
thời gian thực
‰ Tính toán song song
‰

1-4


Tạo một ứng dụng mạng
Viết chương trình




Chạy trên các end systems
khác nhau và
Giao tiếp qua mạng
Ví dụ Web: Phần mềm Web
server giao tiếp với phần
mềm trình duyệt

Không có phần mềm viết cho
các thiết bị trong Network
Core





Các thiết bị trong Network
Core không thực hiện chức
năng tại lớp ứng dụng
Thiết kế này để sự phát triển
ứng dụng nhanh

application
transport
network
data link
physical

application
transport
network
data link
physical

application
transport
network
data link
physical

1-5



Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các
ứng dụng mạng
‰ 2.2 Web và HTTP
‰ 2.3 FTP
‰ 2.4 Electronic Mail
‰



‰

SMTP, POP3, IMAP

2.6 Chia sẻ file P2P
‰ 2.7 Lập trình Socket với
TCP
‰ 2.8 Lập trình Socket với
UDP
‰ 2.9 Xây dựng Web Server
‰

2.5 DNS

1-6


Các kiến trúc ứng dụng
‰ Client-Server

‰ Peer-to-peer (P2P)
‰ Hybrid

1-7


Kiến trúc Client-server
Server:




Host ở trạng thái luôn
chạy
Địa chỉ IP cố định
Server farm để tăng khả
năng phục vụ

Client:





Truyền thông với server
Có thể không kết nối liên
tục
Có thể có địa chỉ IP động
Không giao tiếp trực tiếp
với nhau


1-8


Kiến trúc P2P
‰ Server không ở trạng thái luôn

chạy
‰ Hệ thống cuối tùy ý truyền
thông trực tiếp
‰ Các Peer kết nối không liên tục
và thay đổi địa chỉ IP
‰ Ví dụ: Gnutella
Khả năng co giãn quy mô cao
Khó quản lý

1-9


Hybrid
Lai giữa P2P và Client-Server
Napster



Truyền file P2P
Tìm kiếm file tập trung:
• Các Peer đăng ký nội dung tại server trung tâm
• Các Peer gửi yêu cầu server trung tâm xác định vị trí của nội
dung


Instant Messaging



Giao tiếp giữa 2 user là P2P
Quản lý tập trung vị trí của user:
• User đăng ký địa chỉ IP với server trung tâm khi kết nối
• User thông qua server trung tâm để tìm địa chỉ IP của đối
tượng cần giao tiếp

1-10


Truyền thông của các tiến trình
Tiến trình: chương trình
chạy trong một host.
‰ Trong cùng host, 2 tiến
trình giao tiếp sử dụng
inter-process
communication (Do OS
định nghĩa).
‰ Các tiến trình trong các
host khác nhau giao tiếp
bằng cách trao đổi các
message

Tiến trình client: tiến trình
khởi đầu quá trình
truyền thông

Tiến trình server: tiến trình
đợi kết nối

‰

Chú ý: Các ứng dụng
P2P có cả tiến trình client
và tiến trình server

1-11


Socket
Tiến trình gửi nhận
messages tới/từ socket
của nó
‰ Socket tương tự cửa ra
vào
‰




‰

Tiến trình gửi đẩy bản tin ra
ngoài cửa
Tiến trình gửi dựa vào hạ
tầng giao vận trên phía bên
kia của cửa, nó mang

message tới socket của tiến
trình nhận

host hoặc
server

host hoặc
server

Tiến trình

Điều khiển bởi
người lập trình
ứng dụng

socket

socket
TCP với
buffer,
Biến

Tiến trình

Internet

TCP với
Buffer,
biến


Điều khiển
bởi OS

API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một
vài tham số (chi tiết phần sau)
1-12


Các tiến trình đánh địa chỉ
Đối với một tiến trình
nhận messages, nó phải
có một định danh
‰ Một host có một địa chỉ
IP duy nhất
‰ Câu hỏi: Địa chỉ IP của
host mà tiến trình chạy
có đáp ứng được việc
định danh tiến trình?
‰ Trả lời: Không, nhiều
tiến trình có thể chạy
trên cùng host
‰

Định danh bao gồm cả
địa chỉ IP và địa chỉ
cổng gán cho ứng dụng
trên host.
‰ Ví dụ: Giá trị cổng của
một số ứng dụng:
‰





‰

HTTP server: 80
Mail server: 25

Chi tiết hơn trong phần
sau

1-13


Giao thức lớp ứng dụng
‰

Giao thức lớp ứng dụng
định nghĩa







Kiểu của bản tin trao đổi,
ví dụ bản yêu cầu, bản
tin trả lời

Cú pháp của kiểu bản tin:
Các trường trong bản tin
và mô tả các trường
trong bản tin
Ý nghĩa của các trường
Quy tắc các tiến trình
gửi/nhận bản tin khi nào
và như thế nào

Các giao thức công khai:
‰ Định nghĩa trong các
RFC
‰ Cho phép phối hợp
hoạt động
‰ Ví dụ: HTTP, SMTP
Các giao thức không công
khai:
‰ Ví dụ: KaZaA

1-14


Các dịch vụ giao vận mà ứng dụng cần
Mất dữ liệu
‰ Một số ứng dụng (ví dụ: audio)
có thể chấp nhận một tỷ lệ mất
dữ liệu nào đó
‰ Một số ứng dụng khác (ví dụ:
Truyền file, telnet) đòi hỏi 100%
dữ liệu truyền là tin cậy


Băng thông
‰ Một số ứng dụng (ví dụ: đa
phương tiện) yêu cầu lượng
băng thông tối thiểu
‰ Một số ứng dụng khác sử
dụng theo băng thông chúng
nhận được

Thời gian
‰ Một số ứng dụng (ví dụ: điện
thoại Internet, trò chơi tương
tác) đòi hỏi độ trễ thấp

1-15


Yêu cầu của ứng dụng giao vận của một số ứng
dụng
Ứng dụng Mất dữ liệu

Băng thông

Co giãn
Co giãn
Co giãn
Audio: 5kbps-1Mbps
Video:10kbps-5Mbps
Tương tự trên
Stored audio/video Cho phép

Yêu cầu kbps
Trò chơi tương tác Cho phép
Instant messaging Không cho phép Co giãn

Truyền file
E-mail
Web
Real-time audio/video

Không cho phép
Không cho phép
Không cho phép
Cho phép

Thời gian
Không
Không
Không
Có, hàng trăm msec
Có, vài secs
Có, hàng trăm msec


1-16


Các dịch vụ các giao thức giao vận
Dịch vụ TCP:
‰ Hướng kết nối: Đòi hỏi quá


‰
‰

‰
‰

trình thiết lập giữa tiến trình
client và tiến trình server
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 sẽ
không vượt quá khả năng bên
nhận
Điều khiển tắc nghẽn: điều
chỉnh bên gửi khi mạng quá tải
Không cung cấp: tính thời gian,
đảm bảo băng thông tối thiểu

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: việc thiết
lập kết, truyền tin cậy, điều
khiển luồng, điều khiển tắc
nghẽn, tính thời gian, đảm
bảo băng thông
Q: Tại sao cần UDP?


1-17


Các ứng dụng Internet: các giao thức tầng ứng dụng
và tầng giao vận
Ứng dụng
Thư điện tử
Truy cập từ xa
Web
Truyền file
Truyền dòng
đa phương tiện
Điện thoại Internet

Giao thức
tầng ứng dụng

Giao thức
tầng giao vận

SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
Không công khai
(vd: RealNetworks)
Không công khai
(vd: Dialpad)

TCP

TCP
TCP
TCP
TCP hoặc UDP
UDP

1-18


Chương 2: Tầng ứng dụng
2.1 Nguyên tắc của các
ứng dụng mạng
‰ 2.2 Web và HTTP
‰ 2.3 FTP
‰ 2.4 Electronic Mail
‰



‰

SMTP, POP3, IMAP

2.6 Chia sẻ file P2P
‰ 2.7 Lập trình Socket với
TCP
‰ 2.8 Lập trình Socket với
UDP
‰ 2.9 Xây dựng Web Server
‰


2.5 DNS

1-19


Web và HTTP
‰
‰
‰
‰
‰

Trang Web chứa các đối tượng
Đối tượng có thể là file HTML, ảnh JPEG, Java
applet, audio,…
Trang Web chứa file HTML, chứa các đối tượng
tham chiếu
Mỗi đối tượng được đánh địa chỉ bởi một URL
Ví dụ URL:
www.someschool.edu/someDept/pic.gif
host name

path name
1-20


HTTP
HTTP: hypertext transfer
protocol

‰ Giao thức tầng ứng dụng

của Web
‰ Mô hình client/server
 client: Trình duyệt yêu
cầu, nhận và hiện thị các
đối tượng
 server: Web server gửi
các đối tượng trong trả
lời
‰ HTTP 1.0: RFC 1945
‰ HTTP 1.1: RFC 2068

HT
TP
r

equ
est
HT
TP
res
pon
se

es t
u
eq
r
se Server

P
n
T
po
HT
chạy
es
r
P
T
Apache Web
HT
server

1-21


HTTP (tiếp)
Sử dụng TCP:
Client khởi đầu kết nối TCP (tạo
socket) tới server, cổng 80
‰ Server chấp nhận kết nối TCP từ
client
‰ Các bản tin HTTP (bản tin của
giao thức tầng ứng dụng Web)
trao đối giứa trình duyệt (HTTP
client) và Web server (HTTP
server)
‰ Kết nối TCP đóng
‰


HTTP là không hướng
trạng thái
‰

Server không duy trì
thông tin về các yêu cầu
của client trong quá khứ

Các giao thức hướng trạng thái
phức tạp hơn giao thức
không hướng trạng thái
‰ Quá khứ phải được duy trì
‰ Nếu server/client lỗi, các
trạng thái có thể không
thống nhất

1-22


Kết nối HTTP
Nonpersistent HTTP
‰ Một đối tượng được gửi
qua một kết nối TCP
‰ HTTP/1.0 sử dụng
nonpersistent HTTP

Persistent HTTP
‰ Nhiều đối tượng có thể
gửi qua một kết nối

TCP giữa client và
server
‰ HTTP/1.1 mặc định sử
dụng persistent HTTP

1-23


Nonpersistent HTTP
(chứa text,
Giả sử người sử dụng nhập vào URL
tham chiếu tới 10
www.someSchool.edu/someDepartment/home.index
ảnh jpeg)

1a. HTTP client khởi đầu kết nối
TCP tới HTTP server (tiến trình)
tại www.someSchool.edu, cổng
80

2. HTTP client gửi bản tin yêu cầu
HTTP (chứa URL) vào socket
của kết nối TCP. Bản tin chỉ
rằng client muốn lấy đối tượng
someDepartment/home.index

1b. HTTP server tại host
www.someSchool.edu đợi kết
nối TCP tại cổng 80.
Chấp nhận kết nối, thông báo

cho client

3. HTTP server nhận bản tin yêu
cầu, xây dựng bản tin trả lời
chứa đối tượng đã yêu cầu và
gửi bản tin vào trong socket của


Thời gian
1-24


Nonpersistent HTTP (cont.)
4. HTTP server đóng kết nối TCP
5. HTTP client nhận trả lời chứa file
html, hiện thị nội dung. Phân
tích html, tìm 10 đối tượng ảnh
jpeg được tham chiếu

time 6. Lặp bước 1-5 cho mỗi đối tượng
ảnh jpeg

1-25


×