Các peer làm relay
Vấn đề phát sinh khi cả
peer A và Peer B đều
nằm phía sau NAT. NAT
ngăn chặn peer ngoài
khởi tạo cuộc gọi vào với
peer bên trong
Giải pháp:
Dùng super node của peer
A và peer B_ chọn relay
Mỗi peer khởi tạo phiên
với relay.
Nhờ vậy các Peer có thể
giao tiếp với nhau vượt
NAT bằng relay
47 trang |
Chia sẻ: thucuc2301 | Lượt xem: 846 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giáo trình Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer) - Nguyễn Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
12: Lớp Ứng dụng 1
Chương 2
LỚP ỨNG DỤNG
(Application Layer)
2: Lớp Ứng dụng 2
Tổng quan mục tiêu của chương
r Làm quen với các khái
niệm cũng như thực
hiện các giao thức
ứng dụng
Mô hình dịch vụ
lớp truyền tải
Mô hình client-
server
Mô hình peer-to-
peer
r Khảo sát các giao thức
lớp ứng dụng phổ biến
HTTP
FTP
SMTP / POP3 / IMAP
DNS
22: Lớp Ứng dụng 3
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
2: Lớp Ứng dụng 4
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
32: Lớp Ứng dụng 5
Các kiến trúc của ứng dụng mạng
r Client-server
r Peer-to-peer (P2P)
r Lai giữa client-server và P2P
2: Lớp Ứng dụng 6
Kiến trúc Client-server
r server:
Là máy chủ thường
trực
Địa chỉ IP cố định
r client:
Giao tiếp với server
Có thể kết nối không
liên tục
Địa chỉ IP tĩnh hay
động
Không trao đổi trực
tiếp lẫn nhau
client/server
42: Lớp Ứng dụng 7
Kiến trúc thuần P2P
r Không có server thường
trực
r Các end system tự do
giao tiếp trực tiếp
r Các máy kết nối với nhau
không liên tục và thay
đổi địa chỉ IP
Khả triển tốt nhưng khó
quản lý
peer-peer
2: Lớp Ứng dụng 8
Lai giữa client-server và P2P
Skype
Là ứng dụng VoIP theo kiến
trúc P2P
Server trung tâm: tìm địa chỉ
của đối tác ở xa
Kết nối client-client trực tiếp
không thông qua server
Instant messaging
Chương trình chat giữa hai
user là P2P
Service trung tâm: phát hiện
sự hiện hữu của client và vị trí
của client
• Mỗi khi user online sẽ đăng
ký địa chỉ với server trung
tâm
• user nhờ server tìm địa chỉ
của người muốn gọi đến
52: Lớp Ứng dụng 9
Giao tiếp giữa các quá trình
(Process)
Quá trình (Process): là
chương trình chạy trên
một host.
r Trên cùng host: giao
tiếp liên quá trình
(inter-process
communication) .
r Trên các host khác biệt:
trao đổi thông điệp
Client process: là quá
trình khởi sự giao tiếp
Server process: là quá
trình đợi client
process liên hệ
r Trong kiến trúc P2P các
host có cả client process và
server process
2: Lớp Ứng dụng 10
Giao tiếp giữa hai quá trình trên hai
host khác biệt
r process truyền/nhận
thông điệp đến/từ socket
của nó
process
TCP với
bộ đệm
và các biến
socket
host hay
server
process
TCP với
bộ đệm
và các biến
socket
host hay
server
Internet
Hệ điều hành
kiểm soát
Người lập trình
kiểm soát
62: Lớp Ứng dụng 11
Địa chỉ quá trình
r Để nhận các thông điệp,
process phải có danh định
r Mỗi thiết bị host có địa
chỉ IP
r Liệu địa chỉ IP đủ để chỉ
định một process hay
không?
r Danh định gồm địa chỉ IP
và chỉ số port liên kết với
process trên host.
r Ví dụ các chỉ số port:
HTTP server: 80
Mail server: 25
r Để gửi một thông điệp
HTTP đến ptithcm.edu.vn
web server:
IP address: 203.162.44.162
Port number: 80
2: Lớp Ứng dụng 12
Các định nghĩa giao thức lớp ứng
dụng
r Các loại thông điệp được
trao đổi,
Ví dụ request, response
r Cú pháp thông điệp:
Có các field nào, kích
thước
r Ngữ nghĩa của thông
điệp
Ý nghĩa của thông tin
trong field
r Các qui tắc về thời điểm
và cách thức truyền hay
đáp ứng cho các thông
điệp
Các giao thức chạy trên
khu vực công cộng:
r Được định nghĩa trong
các RFC
r Cho phép liên kết hoạt
động
r Ví dụ HTTP, SMTP
Các giao thức riêng:
r Ví dụ Skype
72: Lớp Ứng dụng 13
Dịch vụ truyền tải cần cho ứng dụng
Data loss
r Một số ứng dụng chấp nhận
thất thoát số liệu ví dụ
audio
r Các ứng dụng khác như
truyền file hay telnet yêu
cầu truyền tải tin cậy 100%
Timing
r Một số ứng dụng yêu
cầu độ trễ nhỏ, ví dụ
Internet telephony,
game tương tác
Throughput
r Một số ứng dụng yêu cầu
thông lượng tối thiểu, ví dụ
multimedia
r Các ứng dụng khác dùng
bất cứ thông lượng nào có
được
Security
r Mật mã, bảo toàn số liệu,
2: Lớp Ứng dụng 14
Các dịch vụ của lớp truyền tải trên
Internet
TCP service:
r Thiết lập kết nối (connection-
oriented)
r Truyền tải tin cậy
r Điều khiển luồng (flow control)
r Kiểm soát nghẽn
r Không cung cấp: kiểm soát trễ,
đảm bảo thông lượng tối thiểu,
an ninh
UDP service:
r Truyền tải không tin cậy
r Không cung cấp: thiết lập
kết nối, điều khiển luồng,
kiểm soát nghẽn, kiểm soát
trễ, đảm bảo thông lượng,
an ninh
82: Lớp Ứng dụng 15
Một số ứng dụng và giao thức hỗ trợ
Ứng dụng
e-mail
remote terminal access
Web
file transfer
streaming multimedia
Internet telephony
Giao thức lớp
ứng dụng
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (eg Youtube),
RTP [RFC 1889]
SIP, RTP, riêng
(ví dụ Skype)
Giao thức lớp
truyền tải
TCP
TCP
TCP
TCP
TCP hay UDP
Thường là UDP
2: Lớp Ứng dụng 16
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
92: Lớp Ứng dụng 17
Web và HTTP
Vài thuật ngữ
r Web page gồm nhiều đối tượng (object)
r Đối tượng có thể là HTML file, ảnh JPEG, Java
applet, audio file,
r Web page cũng bao gồm base HTML-file chứa các
đối tượng tham chiếu (referenced object)
r Mỗi đối tượng tham chiếu được chỉ định bởi URL
r Ví dụ URL:
www.ptithcm.edu.vn/itDept/pic.gif
host name path name
HTTP được đặc tả trong RFC 2616
2: Lớp Ứng dụng 18
Tổng quan HTTP (1)
HTTP: hypertext
transfer protocol
r Giao thức lớp ứng dụng cho
web
r 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 web
server: Web server gửi
các đối tượng để đáp ứng
các yêu cầu
PC chạy
trình duyệt IE
Server
chạy
Apache Web
server
HTTP request
HT
TP
req
ues
t
HTTP response
HT
TP
res
pon
se
PC chạy
trình duyệt firefox
10
2: Lớp Ứng dụng 19
Tổng quan HTTP (2)
Dùng TCP:
r client khởi tạo kết nối
TCP đến port 80 của
server
r server chấp nhận kết nối
r Thông điệp HTTP (thông
điệp giao thức lớp ứng
dụng) được trao đổi giữa
trình duyệt (HTTP
client) và Web server
(HTTP server)
r Đóng kết nối TCP
HTTP là “stateless”
r server không lưu giữ
thông tin về các yêu
cầu đã qua
2: Lớp Ứng dụng 20
Kết nối HTTP
Kết nối HTTP không liên
tục
r Chỉ một đối tượng được
chuyển qua một kết nối
TCP
Kết nối HTTP liên tục
r Nhiều đối tượng được
chuyển qua một kết nối
TCP
11
2: Lớp Ứng dụng 21
HTTP không liên tục
Giả sử người dùng nhập URL
www.ptithcm.edu.vn/ITDep/home.index
1a. HTTP client khởi động kết nối
HTTP server (process) tại
www.ptithcm.edu.vn trên port 80
2. HTTP client truyền HTTP
request message (chứa URL)
vàoTCP socket. Thông điệp chỉ
ra rằng client muốn đối tượng
ITDep/home.index
1b. HTTP server tại
www.ptithcm.edu.vn đợi kết nối
tại port 80. “chấp nhận” kết
nối, thông báo cho client
3. HTTP server nhận request
message, tạo response
message chứa đối tượng được
yêu cầu, truyền thông điệp vào
TCP socket của nó.
Thời gian
(chứa text và tham chiếu
đến 10 ảnh jpeg)
2: Lớp Ứng dụng 22
HTTP không liên tục
5. HTTP client nhận đáp ứng chứa
html file, hiển thị html. Phân
tích html file, tìm 10 tham
chiếu đến các đối tượng ảnh
jpeg
6. Lặp lại các bước từ 1-5 cho
mỗi ảnh
4. HTTP server đóng kết nối
Thời gian
12
2: Lớp Ứng dụng 23
HTTP không liên tục: thời gian đáp ứng
RTT: thời gian hành trình
đi và về của một gói tin
Thời gian đáp ứng:
r Một RTT để khởi động
kết nối TCP
r Một RTT cho HTTP
request và một vài byte
đáp ứng đầu tiên
r Thời gian truyền file
Tổng = 2RTT+ thời gian truyền
Thời gian
truyền file
Khởi tạo TCP
connection
RTT
Yêu cầu
file
RTT
Nhận
file
time time
2: Lớp Ứng dụng 24
HTTP liên tục
HTTP không liên tục:
r Cần 2 RTT/đối tượng
r Phải tạo kết nối cho mỗi đối
tượng
r Trình duyệt thường mở các
kết nối song song để lấy các
đối tượng tham chiếu
HTTP liên tục
r server để mở kết nối sau khi
gửi đáp ứng
r Các thông điệp sau được gửi
qua kết nối đang mở
r client nhanh chóng gửi yêu
cầu về đối tượng tham chiếu
r Một RTT cho tất cả các đối
tượng tham chiếu
13
2: Lớp Ứng dụng 25
HTTP request message
r Hai loại HTTP messages: request, response
r HTTP request message:
Dưới dạng văn bản ASCII
GET /somedir/page.html HTTP/1.1
Host: www.ptithcm.edu.vn
User-agent: Mozilla/4.0
Connection: close
Accept-language:en-us
(carriage return, line feed)
request line
(GET, POST,
HEAD commands)
header
lines
Carriage return,
line feed
chỉ kết thúc thông điệp
2: Lớp Ứng dụng 26
HTTP request message: định dạng tổng quát
14
2: Lớp Ứng dụng 27
Truyền lên form input
Post method:
r Web page thường chứa
form input
r Input được truyền lên
server dưới dạng thân
thực thể
URL method:
r dùng GET method
r Input được truyền lên
dưới dạng URL field
của dòng yêu cầu, ví dụ:
www.animalfood.com/animalsearch?monkeys&banana
2: Lớp Ứng dụng 28
Các loại Method
HTTP/1.0
r GET
r POST
r HEAD
Yêu cầu server để đối
tượng được yêu cầu ra
ngoài đáp ứng
HTTP/1.1
r GET, POST, HEAD
r PUT
Truyền file lên máy chủ,
file nằm trong thân thực
thể, đường dẫn được chỉ
ra trong URL
r DELETE
Xóa file được chỉ ra
trong URL
15
2: Lớp Ứng dụng 29
HTTP response message
HTTP/1.1 200 OK
Connection close
Date: Thu, 06 Aug 2010 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 2010 ...
Content-Length: 6821
Content-Type: text/html
data data data data data ...
status line
(mã trạng
thái)
header
data, ví dụ HTML file
được yêu cầu
2: Lớp Ứng dụng 30
Các mã đáp ứng HTTP
200 OK
request thành công, đối tượng yêu cầu sau cùng có trong
thông điệp này
301 Moved Permanently
Đối tượng yêu cầu đã bị chuyển, vị trí mới được chỉ ra trong
thông điệp này
400 Bad Request
Server không hiểu
404 Not Found
Không tìm thấy tài liệu yêu cầu trong server
505 HTTP Version Not Supported
Trong dòng đầu tiên trong thôn điệp đáp ứng từ server ->client
Ví dụ:
16
2: Lớp Ứng dụng 31
Cookie (1)
Nhiều Web site dùng cookie. Cookie là một mẫu văn bản nhỏ
mà web server đặt trên máy user. Mẫu này được gửi lại
server mỗi khi user truy cập vào web server. Stateless-->
stateful
Thành phần:
1) cookie header line trong các thông điệp HTTP
2) tập tin cookie trên máy người dùng, được trình duyệt quản lý
3) cơ sở dữ liệu ẩn bên trong Web site
Ví dụ:
r User thường truy cập Internet từ máy tính PC
r Vào một web site bán hàng qua mạng nào đó lần đầu
tiên
r Khi HTTP request đến web site, web site tạo:
danh định (ID) khác biệt
một mục trong cơ sở dữ liệu cho ID này
2: Lớp Ứng dụng 32
Cookie (2)
client server
http response
http response
Tập tin cookie
Vài tuần sau:
http request
cookie: 1678 Sử dụng
cookie
Truy cập
ebay 8734
http request Amazon server
tạo ID
1678 cho user tạo
mục
http response
Set-cookie: 1678
ebay 8734
amazon 1678
http request
cookie: 1678 Sử dụng
cookie
Truy cập
ebay 8734
amazon 1678
Cơ sở
dữ liệu
17
2: Lớp Ứng dụng 33
Cookie (3)
Cookie có thể chứa:
r Thông tin chứng thực quyền
r Giỏ hàng
r Khuyến nghị
r Trạng thái phiên
(Web e-mail)
Cookie và tính riêng tư:
r Cookie cho phép web site
học và hiểu nhiều về user
r User có thể cung cấp tên và
địa chỉ email cho web site
Cách thức giữ trạng thái
r các giao thức đầu cuối: duy trì
trạng thái tại sender/receiver
qua nhiều giao tác
r cookie: thông điệp http mang
trạng thái
2: Lớp Ứng dụng 34
Ky, thuâ-t Caching
r Kha.i niê -m cache
r Đáp ứng yêu cầu của
client mà không cần truy
vấn server nguồn
r Trường hợp thực tê .:
Mô -t cơ quan co . mô -t đường
nô .i đê .n Internet
Tâ.t ca / lưu lượng truy câ -p
đê 0u đi qua kê .t nô .i na 0y
Nhiê 0u người du0ng co . thê /
cu0ng truy câ -p đê .n cu0ng
mô-t nô -i dung
Gia /i pha .p tăng tô .c truy
xuâ .t: caching
18
2: Lớp Ứng dụng 35
Web cache (proxy server)
r user cấu hình trình
duyệt: truy xuất Web
qua cache
r Trình dyệt gửi tất cả
các yêu cầu đến cache
Đối tượng có trong
cache: cache đáp ứng
ngay
Đối tượng không có
trong cache, cache yêu
cầu đối tượng từ server
nguồn, sau đó gửi cho
client
client
Proxy
server
client
HT
TP
req
ues
t
HT
TP
res
pon
se
HTTP request HTT
P re
ques
t
server
server
HTTP response HTT
P re
spon
se
2: Lớp Ứng dụng 36
Web caching
r cache đóng hai vai trò
client, server
r Thông thường cache
được cài đặt bởi ISP
Lý do dùng Web caching?
r Giảm thời gian đáp ứng
cho các yêu cầu từ
client
r Giảm lưu lượng trên các
liên kết Internet của
cơ quan
r Cho phép các nhà cung
cấp nội dung phân phối
nội dung hiệu quả
19
2: Lớp Ứng dụng 37
Ví dụ
Giả sử
r Trung bình mỗi đối tượng có
100,000 bit
r Tốc độ trung bình gửi yêu cầu
là 15/giây
r Thời gian trễ từ router của
doanh nghiệp đến bất cứ web
server nào bên ngoài, cả đi và
về là 2 giây
Hiệu năng
r Băng thông sử dụng trên LAN =
15%
r Băng thông sử dụng trên access
link = 100%
r Tổng trễ = Trễ qua Internet +
trễ truy cập + trễ qua LAN = 2
giây + hàng phút + hàng mili giây
server
Internet
Mạng cục bộ
10 Mbps LAN
1.5 Mbps
access link
2: Lớp Ứng dụng 38
Ví dụ (2)
Giải pháp 1
r Tăng băng thông của access
link lên 10 Mbps
Hiệu năng
r Băng thông sử dụng trên LAN = 15%
r Băng thông sử dụng trên access link =
15%
Tổng trễ = Trễ qua Internet + trễ truy
cập + trễ qua LAN = 2 giây + cỡ mili
giây + cỡ mili giây
r Chi phí cho nâng cấp
server
Internet
Mạng cục bộ
10 Mbps LAN
10 Mbps
access link
20
2: Lớp Ứng dụng 39
Ví dụ (3)
Giải pháp 2: cài đặt cache
r Giả sử xác suất tìm thấy
=0.45
Hiệu năng
r 45% yêu cầu sẽ được đáp
ứng tức thời
r 55% yêu cầu phải lấy từ
server nguồn
r Băng thông sử dụng trên
access link được giảm
xuống còn 55%, trễ không
đáng kể, chừng 10ms
r Tổng trễ = Trễ qua Internet +
trễ truy cập + trễ qua LAN =
0,55*(2+0,01) +
0,45*(khoảng mười ms)
servers
Internet
Mạng cục bộ
10 Mbps LAN
1.5 Mbps
access link
cache
2: Lớp Ứng dụng 40
GET có điều kiện
r Để máy chủ không phải gửi đối
tượng nếu cache vẫn còn lưu
giữ bản cập nhật
r cache: chỉ ra ngày của bản sao
được cập nhật trong HTTP
request
If-modified-since:
r server: khẳng định không có
cập nhật gì mới:
HTTP/1.0 304 Not
Modified
r server:đối tượng đã bị hiệu chỉnh
HTTP/1.0 200 OK
cache server
HTTP request msg
If-modified-since:
HTTP response
HTTP/1.0
304 Not Modified
Đối tượng
Không bị hiệu chỉnh
HTTP request msg
If-modified-since:
HTTP response
HTTP/1.0 200 OK
Đối tượng
đã bị hiệu chỉnh
21
2: Lớp Ứng dụng 41
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
2: Lớp Ứng dụng 42
FTP (file transfer protocol)
r Truyền/nhận file đến/từ máy ở xa
r Mô hình client/server
client: khởi động
server: chờ đáp ứng
r ftp: được đặc tả trong RFC 959
r ftp server: dùng port 20 và 21
Truyền file FTP
server
Giao diện FTP
client
Hệ thống file
cục bộ
Hệ thống file
ở xa
user
22
2: Lớp Ứng dụng 43
Kết nối cho điều khiển và kết nối truyền
số liệu
r FTP client tiếp xúc với FTP
server tại port 21, dùng TCP
r client được xác thực qua kết nối
phục vụ điều khiển
r client duyệt các thư mục ở xa
bằng cách gửi các lệnh qua kết
nối điều khiển.
r Khi nhận lệnh truyền file, server
mở một kết nối TCP thứ 2 đến
client
r Sau khi truyền file xong, server
xóa kết nối số liệu.
FTP
client
FTP
server
Cầu nối TCP cho điều
khiển, port 21
Cầu nối TCP cho data
port 20
r Muốn truyền file khác, server
lại mở kết nối số liệu.
r Thông tin điều khiển dùng
kênh tách biệt với số liệu (out
of band)
r FTP là stateful: lưu giữ thư
mục hiện hành và xác thực
trước đó.
2: Lớp Ứng dụng 44
Active FTP va0 Passive FTP
r Active mode: FTP client kê .t nô.i từ mô -t port ngâ ,u nhiên N
>1023 đê .n command port ta -i server (21), client bă.t đâ 0u lă .ng
nghe trên port N+1 va 0 truyê 0n lê -nh PORT N+1 đê.n FTP server.
Server sau đo . kê.t nô .i đê .n cô /ng data được chi/ đi -nh trên client
(N+1) từ port 20 cu/a no . .
r Vi . du-
23
2: Lớp Ứng dụng 45
Active FTP va0 Passive FTP (2)
r Passive mode: giải pha.p cho vâ.n đê 0 làm sao server khởi
ta-o mô-t kê .t nô .i đê .n client
r PASV: lê -nh ba.o với server vê 0 chê . đô- passive
r Client khởi đô-ng 2 kê .t nô .i đê .n server, gia/i quyê .t vâ.n đê0
ca .c firewall lo-c kê.t nô.i đê .n data port (từ server đê.n
client). Hai port ngâ,u nhiên N>1023 va0 N+1, port N kê .t
nô.i đê .n port 21 cu/a server, sau đo . client pha .t lê -nh
PASV, kê .t qua/ la0 server mở port ngâ,u nhiên P > 1023 va0
gửi PORT P trở la-i client, sau đo. client khởi đô -ng kê.t nô.i
từ port N+1 đê .n port P trên server
2: Lớp Ứng dụng 46
Active FTP va0 Passive FTP (3)
r Vi . du- passive mode
24
2: Lớp Ứng dụng 47
Active FTP va0 Passive FTP (4)
r Active FTP :
command : client >1023 --> server 21
data : client >1023 <-- server 20
r Passive FTP :
command : client >1023 --> server 21
data : client >1023 --> server >1023
2: Lớp Ứng dụng 48
Các lệnh FTP và đáp ứng
Vài lệnh phổ biến:
r Lệnh dưới dạng ASCII text
qua kênh điều khiển
r USER username
r PASS password
r LIST trả về danh sách các
file trong thư mục hiện
hành
r RETR filename lấy file
r STOR filename gửi file
lên host ở xa
Vài mã đáp ứng
r Mã trạng thái tương tự như
bên HTTP
r 331 Username OK,
password required
r 125 data connection
already open;
transfer starting
r 425 Can’t open data
connection
r 452 Error writing
file
25
2: Lớp Ứng dụng 49
Vi. du - FTP client
r Command line
r GUI FTP client: IE, firefox, FTPcute,...
2: Lớp Ứng dụng 50
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
26
2: Lớp Ứng dụng 51
Thư điện tử (Electronic Mail)
Ba thành phần chính:
r user agent
r mail server
r SMTP: simple mail transfer
protocol
User Agent
r composing, editing, reading
mail messages
r Ví dụ: Eudora, Outlook,
Mozilla Thunderbird
r Hộp thư (hàng đợi) đi
(outbox), hộp thư đến
(inbox) cho mỗi user được
lưu trên server
user mailbox
outgoing
message queue
mail
server
user
agent
user
agent
user
agent
mail
server
user
agent
user
agent
mail
server
user
agent
SMTP
SMTP
SMTP
2: Lớp Ứng dụng 52
Mail server
Mail Server
r mailbox chứa thư đến
r outbox thư chờ gửi
r SMTP protocol để truyền thư
mail
server
user
agent
user
agent
user
agent
mail
server
user
agent
user
agent
mail
server
user
agent
SMTP
SMTP
SMTP
27
2: Lớp Ứng dụng 53
SMTP [RFC 2821]
r Dùng TCP đề truyền thư từ client server, port
25
r Truyền trực tiếp: truyền server đến server khác
r Ba pha
Bắt tay
Truyền thư
đóng
r Giao tiếp lệnh/đáp ứng
2: Lớp Ứng dụng 54
UserA truyền thư sang UserB
1) User A dùng user agent tạo
thư và gửi đến
userB@ptithcm.edu.vn
2) User A gửi thư đến server
A và server A xếp thư vào
hàng đợi
3) Thực thể SMTP trên
Server A mở một kết nối
TCP với Server B
4) Thực thể SMTP truyền thư
của user A qua kết nối TCP
đến Server B.
5) Sever B nhận và đặt thư vào
mailbox của user B
6) User B dùng user agent để
đọc thư
user
agent
mail
serverA
mail
serverB user
agent
1
2 3 4 5
6
User A User B
28
2: Lớp Ứng dụng 55
SMTP
r SMTP dùng kết nối liên
tục
r SMTP yêu cầu các
thông điệp được mã
hóa theo mã 7-bit
ASCII
r SMTP server dùng
CRLF.CRLF xác định
kết thúc thông điệp
2: Lớp Ứng dụng 56
Định dạng thư điện tử
Chuẩn định dạng thư điện tử
được đặc tả trong RFC 822
header lines, ví dụ
To:
From:
Subject:
khác với lệnh SMTP
r body
Nội dung thư chỉ chứa ký
tự ASCII
header
body
Dòng
trắng
29
2: Lớp Ứng dụng 57
Dạng mở rộng cho multimedia
r MIME: multimedia mail extension, RFC 2045, 2056
r Thêm các dòng trong header để khai báo loại nội dung
MIME
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
Kiểu số liệu multimedia,
khai báo tham số
Phương pháp được
dùng để mã hóa data
MIME version
Số liệu được mã hóa
2: Lớp Ứng dụng 58
Các giao thức lấy thư
r Giao thức : lấy thư từ server
POP: Post Office Protocol [RFC 1939]
• Xác thực (agent server) và download
IMAP: Internet Mail Access Protocol [RFC 1730]
• Nhiều đặc tính, phức tạp
• Thao tác xử lý thông điệp được lưu trên server
HTTP: gmail, Hotmail, Yahoo! Mail.
user
agent
mail Server
của người gửi
user
agent
SMTP SMTP access
protocol
mail Server
của người nhận
30
2: Lớp Ứng dụng 59
POP3 protocol
Pha xác thực
r client commands:
user: khai báo username
pass: password
r Đáp ứng từ server
+OK
-ERR
Pha tương tác, client:
r list: liệt kê mã số thư
r retr: lấy thư bằng mã số
r dele: xóa
r quit
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S:
S: .
C: dele 1
C: retr 2
S:
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
S: +OK POP3 server ready
C: user son
S: +OK
C: pass ptithcm
S: +OK user successfully logged on
2: Lớp Ứng dụng 60
POP3 và IMAP
POP3
r Ví dụ trước là dùng chế
độ download và xóa.
r User chỉ có thể đọc lại
thư trên client vừa lấy
thư. Thay đổi client
không thể đọc lại thư
r Chế độ “Download-và-
lưu giữ”: các bản sao
của thư được lưu giữ
trên client
r POP3 là stateless
IMAP
r Giữ tất cả thư trên
server
r Cho phép user tổ chức
các thư trong thư mục
r IMAP giữ trạng thái
qua các phiên:
Tên thư mục và ánh xạ
giữa các message ID và
tên thư mục
31
2: Lớp Ứng dụng 61
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
2: Lớp Ứng dụng 62
DNS (Domain Name System)
host, router:
Địa chỉ IP được dùng để
đánh địa chỉ các thiết
bị, được dùng bởi máy
Tên ví dụ
www.yahoo.com -được
dùng bởi con người
Ánh xạ qua lại giữa địa chỉ
IP và tên?
Domain Name System:
r Cơ sở dữ liệu phân tán
được hiện thực phân cấp nhiều
name servers
r Giao thức lớp ứng dụng
host, router, name server giao
tiếp nhau để phân giải tên
(thông dịch giữa tên và địa chỉ)
Lưu ý: chức năng của core
Internet, được hiện thực
như giao thức lớp ứng dụng
Khá phức tạp tại vùng biên
của mạng
32
2: Lớp Ứng dụng 63
Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.edu
DNS servers
umass.edu
DNS serversyahoo.comDNS servers
amazon.com
DNS servers
pbs.org
DNS servers
Cơ sở dữ liệu phân tán, phân cấp
Client muốn tìm địa chỉ IP của www.yahoo.com
r client truy vấn một root server để tìm com DNS
server
r client truy vấn com DNS server để lấy yahoo.com DNS
server
r client truy vấn yahoo.com DNS server để lấy địa chỉ
IP của www.yahoo.com
2: Lớp Ứng dụng 64
Root name server
r Được các name server cục bộ liên hệ mỗi khi chúng không thể phân giải một
tên
r root name server:
Tiếp xúc với name server có thẩm quyền nếu không hiểu ánh xạ tên nào
đó
Lấy ánh xạ
Gửi lại cho name server cục bộ
Hệ thống tên
miền trãi ra
khắp thế giới
với khoảng 13
root name
server
33
2: Lớp Ứng dụng 65
TLD và các DNS Server cấp
thấp
r Các Top-level domain (TLD) server:
chịu trách nhiệm cho com, org, net, edu,...tất cả
các tên miền quốc gia như vn, uk, fr, ca, jp.
Network Solutions cai quản các server cho com
TLD
Educause cho edu TLD
r Các server cấp thấp :
Các DNS server của tổ chức, doanh nghiệp, cung
cấp ánh xạ tên host với địa chỉ IP xác thực cho các
server bên trong (ví dụ Web, mail).
Có thể được cai quản bởi tổ chức, doanh nghiệp hay
nhà cung cấp dịch vụ
2: Lớp Ứng dụng 66
Name Server trong mạng cục bộ
r Không ràng buộc vào phân cấp
r Mỗi ISP, công ty, trường học có một.
Cũng gọi là name server mặc định
r Khi host truy vấn DNS, truy vấn được gửi
đến DNS server cục bộ của host
Tác động như một proxy, chuyển truy ấn vào hệ
thống tên miền phân cấp.
34
2: Lớp Ứng dụng 67
Host yêu cầu
cis.icu.edu
datacom.cs.ptithcm.edu
root DNS server
DNS server cục bộ
dns.icu.edu
1
2
3
4
5
6
DNS server thẩm quyền
dns.cs.ptithcm.edu
78
TLD DNS server
Ví dụ về phân giải tên
qua DNS
r Host tại cis.icu.edu
muốn địa chỉ IP của
datacom.cs.ptithcm
.edu
Truy vấn lặp:
r Server được truy vấn
chỉ phúc đáp tên
server để liên hệ
r “Tôi không biết tên
này, đề nghị hỏi server
này”
2: Lớp Ứng dụng 68
Host yêu cầu
cis.icu.edu
datacom.cs.ptithcm.edu
root DNS server
DNS server cục bộ
dns.icu.edu
1
2
45
6
DNS server thẩm quyền
dns.cs.ptithcm.edu
7
8
TLD DNS server
3Truy vấn đệ qui:
r Đặt trách nhiệm phân
giải tên lên name
server được liên hệ
Ví dụ về phân giải tên
qua DNS
35
2: Lớp Ứng dụng 69
Caching và cập nhật các record
r Khi name server học ánh xạ tên, nó sẽ cache lại
Các mục trong cache biến mất sau một khoảng
thời gian (timeout)
TLD server thường cache trong các name
server cục bộ
• Do đó giúp giảm truy vấn đến root name server
r Cơ chế cập nhật được xây dựng bởi IETF
Xem thêm RFC 2136
2: Lớp Ứng dụng 70
Các DNS record
DNS: cơ sở dữ liệu phân tán lưu các resource record
(RR)
r Type=NS
Tên là tên miền (ví
dụ yahoo.com)
value là tên host của
name server có thẩm
quyền của domain này
Định dạng RR : (name, value, type, ttl)
r Type=A
Tên là tên host
value là địa chỉ IP
r Type=CNAME
Tên là bí danh cho một
số tên thật
www.ibm.com là thật
servereast.backup2.ibm.com
value là tên thật
r Type=MX
value là tên của mailserver
liên hệ với tên
36
2: Lớp Ứng dụng 71
Giao thức DNS (1)
gồm hai thông điệp query và reply, cả hai có cùng định
dạng
header
r identification: số 16 bit
cho query, reply cho
query này dùng cùng số
r flags:
query hay reply
Cần đệ qui
Sẵn sàng đệ qui
reply là có thẩm quyền
2: Lớp Ứng dụng 72
Giao thức DNS (2)
Các trường name, type
cho query
RR trong đáp
ứng cho truy vấn
Các record cho
server có thẩm quyền
Thông tin bổ sung
hữu dụng
37
2: Lớp Ứng dụng 73
Dynamic DNS
r Khái niệm DDNS
r Đề nghị tìm hiểu thêm dịch vụ tên miền động
và áp dụng
2: Lớp Ứng dụng 74
NỘI DUNG
r Các nguyên lý
r Web và HTTP
r FTP
r Electronic Mail
SMTP, POP3, IMAP
r DNS
r Các ứng dụng P2P
38
2: Lớp Ứng dụng 75
Kiến trúc thuần P2P
r Không có server thường
trực
r Các đầu cuối tự do giao
tiếp trực tiếp
r Các peer kết nối với nhau
không liên tục và thay
đổi địa chỉ IP
peer-peer
2: Lớp Ứng dụng 76
Phân phối File
Câu hỏi đặt ra: mất bao lâu để phân phối file từ
một server đến N peer?
us
u2d1 d2
u1
uN
dN
Server
Network (bandwidth
đầy đủ)
File, kích
thước F
us: băng thông truyền
lên từ server
ui: băng thông truyền
lên từ peer
di: băng thông tải về từ
peer
39
2: Lớp Ứng dụng 77
Phân phối File (2)
us
u2d1 d2
u1
uN
dN
Server
Network (đầy đủ
băng thông)
F
r server gửi lần lượt N
bản sao:
Ts=NF/us
r client i mất Ti=F/di
thời gian để download
Tăng tuyến tính với N
Tcs = max { NF/us, F/min(di) }i
Thời gian để phân phối file đến N client
2: Lớp Ứng dụng 78
Phân phối File theo P2P
us
u2d1 d2
u1
uN
dN
Server
Network (đầy đủ
băng thông)
F
r server phải gửi một bản sao
mất khoảng thời gian F/us
r client i mất F/di để download
r Tổng số bit phải download là
NF
r Tốc độ tải lên nhanh nhất có thể: us + Σui
TP2P = max { F/us, F/min(di) , NF/(us + Σui) }i
40
2: Lớp Ứng dụng 79
BitTorrent (1)
tracker: theo dõi các peer
tham gia vào torrent
torrent: nhóm các
Peer trao đổi các mẫu file
(chunk)
Lấy danh sách
các peer
Các mẫu trao đổi
peer
r Dùng phân phối file theo
P2P
2: Lớp Ứng dụng 80
BitTorrent (2)
r file được chia thành các mẫu (chunk) 256KB.
r peer gia nhập torrent:
Không có chunk, nhưng sẽ tích lũy chúng theo thời gian
Đăng ký với tracker để lấy danh sách các peer, nối đến tập
con các peer (láng giềng)
r Trong khi tải về, peer cũng tải lên các chunk đến các peer
khác.
r Các peer có thể là điểm đến hay đi
r Khi peer đã có toàn bộ file, nó có thể bỏ đi hay giữ lại.
41
2: Lớp Ứng dụng 81
BitTorrent (3)
Kéo các chunk
r Tại bất lỳ thời điểm nào,
các peer khác nhau đều
có các tập con chunk của
file khác nhau
r Định kỳ, peer hỏi mỗi
peer láng giềng về danh
sách các chunk mà
chúng có.
r Peer gửi yêu cầu lấy các
chunk bị thiếu
Truyền các chunk
r Peer A truyền các chunk đến bốn
láng giềng hiện hành, truyền với
tốc độ cao nhất
Mỗi 10 giây đánh giá lại top 4
r Mỗi 30 giây, chọn ngẫu nhiên
một peer khác, khởi động truyền
chunk
Peer mới được chọn có thể
tham gia vào top 4
Khai thông
2: Lớp Ứng dụng 82
BitTorrent (4)
(1) peer A khai thông với peer B
(2) Peer A trở thành một trong bốn nhà cung cấp cho peer B, peer B đáp lại
(3) Peer B trở thành một trong bốn nhà cung cấp cho peer A
Với tốc độ tải lên cao hơn, có
thể tìm thấy các đối tác tốt
hơn và lấy file nhanh hơn!
Peer B
Peer A
42
2: Lớp Ứng dụng 83
Tìm kiếm thông tin
Chia sẻ file (ví dụ e-mule)
r Index theo dõi động các
vị trí của file mà các
peer chia sẻ.
r Các peer cần báo với
index những gì nó có.
r Các Peer tìm kiếm trong
index để xác định vị trí
của file
Dịch vụ chat
r Index ánh xạ tên user
sang vị trí
r Khi user khởi động ứng
dụng IM, cần thông
báo vị trí với index
r Các peer tìm kiếm
trong index để xác
định địa chỉ IP của
user.
Index trong hệ thống P2P: ánh xạ thông tin sang vị trí peer
(vị trí = IP address & port number)
2: Lớp Ứng dụng 84
Index tập trung
1) khi peer kết nối, nó
thông báo server trung
tâm:
Địa chỉ IP
Nội dung
2) peer A truy vấn trung
tâm
3) Peer A yêu cầu file từ
peer B
Server thư mục
trung tâm
peers
1
1
1
12
3
Peer A
Peer B
43
2: Lớp Ứng dụng 85
Index tập trung: Nhược
r Điểm lỗi đơn
r Cổ chai
r Vấn đề bản quyền
Hoạt động truyền file là phân tán
nhưng việc định vị file là tập trung
2: Lớp Ứng dụng 86
Truy vấn kiểu lũ (query flooding)
r Phát tán truy vấn ra
mọi nơi
Không có server trung
tâm
r Được dùng trong
Gnutella
r Mỗi peer lập danh sách
các file mà nó sẵn sàng
chia sẻ
Đồ thị mạng
r Có cạnh nối giữa peer X
và Y nếu có kết nối TCP
r Tất cả các peer hoạt
động và các cạnh tạo
nên mạng bao phủ
r Cạnh: liên kết ảo
r Thông thường một peer
có kết nối dưới 10 láng
giềng
44
2: Lớp Ứng dụng 87
Truy vấn kiểu lũ
Query
response
Query
Query
response
Qu
ery
Query
res
pon
se
Truyền File:
HTTPr thông điệp truy vấn (query) được gửi
qua các kết nối TCP đang mở
r các peer chuyển tiếp
thông điệp truy vấn
r Phản hồi được gửi về
qua đường ngược lại
2: Lớp Ứng dụng 88
Gia nhập Gnutella
1. peer A phải tìm một peer khác trong mạng
Gnutella, dùng danh sách các peer ứng viên
2. Peer A cố gắng liên tục để có kết nối TCP với các
peer ứng viên cho đến khi kết nối được với peer B
nào đó
3. Tạo lũ truy vấn: peer A Ping đến peer B; peer B
chuyển Ping đến các láng giềng của nó, đến lượt các
láng giềng lại chuyển đi tiếp
4. Các peer nhận Ping phản hồi lại cho peer A bằng
thông điệp Pong
5. Peer A nhận nhiều Pong và sau đó có thể thiết lập
thêm các kết nối TCP
45
2: Lớp Ứng dụng 89
Mạng bao phủ phân cấp
r Giữa các index trung tâm,
dùng truy vấn kiểu lũ
r Mỗi peer là một super
node hay được gán là super
node
Kết nối TCP giữa peer và
super node của nó.
Kết nối TCP giữa các super
node.
r Super node theo dõi nội
dung trong node con của
nó
ordinary peer
group-leader peer
neighoring relationships
in overlay network
2: Lớp Ứng dụng 90
Skype
r Thừa kế P2P, giao tiếp
từng cặp.
r Là giao thức lớp ứng
dụng riêng
r Mạng bao phủ phân cấp
với các super node
r Index ánh xạ tên user
sang các địa chỉ IP;
được phân phối qua các
super node
Skype clients (SC)
Supernode
(SN)
Skype
login server
46
2: Lớp Ứng dụng 91
Các peer làm relay
r Vấn đề phát sinh khi cả
peer A và Peer B đều
nằm phía sau NAT. NAT
ngăn chặn peer ngoài
khởi tạo cuộc gọi vào với
peer bên trong
r Giải pháp:
Dùng super node của peer
A và peer B_ chọn relay
Mỗi peer khởi tạo phiên
với relay.
Nhờ vậy các Peer có thể
giao tiếp với nhau vượt
NAT bằng relay.
2: Lớp Ứng dụng 92
Đề nghị
r Tìm hiểu Limewire và một số ứng dụng P2P
khác
47
2: Lớp Ứng dụng 93
Hết chương 2
Các file đính kèm theo tài liệu này:
- mmt_ch2_0407_2005050.pdf