Chương 2

LỚP ỨNG DỤNG (Application Layer)

1

2: Lớp Ứng dụng

Tổng quan mục tiêu của chương

r Khảo sát các giao thức lớp ứng dụng phổ biến (cid:1) HTTP (cid:1) FTP (cid:1) SMTP / POP3 / IMAP (cid:1) DNS

server

(cid:1) Mô hình peer-to-

peer

2

2: Lớp Ứng dụng

1

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 (cid:1) Mô hình dịch vụ lớp truyền tải (cid:1) Mô hình client-

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

3

2: Lớp Ứng dụng

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

4

2: Lớp Ứng dụng

2

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

5

2: Lớp Ứng dụng

Kiến trúc Client-server

(cid:1) Là máy chủ thường

trực

(cid:1) Địa chỉ IP cố định

r server:

(cid:1) Giao tiếp với server (cid:1) Có thể kết nối không

r client:

liên tục

(cid:1) Địa chỉ IP tĩnh hay

động

(cid:1) Không trao đổi trực

tiếp lẫn nhau

6

2: Lớp Ứng dụng

3

client/server

Kiến trúc thuần P2P

trực

r Không có server thường

peer-peer r Các end system tự do giao tiếp trực tiếp

Khả triển tốt nhưng khó quản lý

7

2: Lớp Ứng dụng

r Các máy kết nối với nhau không liên tục và thay đổi địa chỉ IP

Lai giữa client-server và P2P

(cid:1) Là ứng dụng VoIP theo kiến

Skype

(cid:1) Server trung tâm: tìm địa chỉ

trúc P2P

(cid:1) Kết nối client-client trực tiếp

của đối tác ở xa

(cid:1) Chương trình chat giữa hai

không thông qua server Instant messaging

(cid:1) Service trung tâm: phát hiện sự hiện hữu của client và vị trí của client

user là P2P

8

2: Lớp Ứng dụng

4

• 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

Client process: là quá

Giao tiếp giữa các quá trình (Process) Quá trình (Process): là

trình khởi sự giao tiếp

chương trình chạy trên một host.

Server process: là quá trình đợi client process liên hệ

r Trên cùng host: giao tiếp liên quá trình (inter-process communication) .

trao đổi thông điệp

host có cả client process và server process

9

2: Lớp Ứng dụng

Giao tiếp giữa hai quá trình trên hai host khác biệt

r Trong kiến trúc P2P các r Trên các host khác biệt:

thông điệp đến/từ socket của nó

host hay server

host hay server

Người lập trình kiểm soát

process

process

socket

socket

Internet

TCP với bộ đệm và các biến

TCP với bộ đệm và các biến

Hệ điều hành kiểm soát

10

2: Lớp Ứng dụng

5

r process truyền/nhận

Địa chỉ quá trình

process phải có danh định

r Để nhận các thông điệp,

chỉ IP

r Mỗi thiết bị host có địa

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: (cid:1) HTTP server: 80 (cid:1) Mail server: 25

HTTP đến ptithcm.edu.vn web server: (cid:1) IP address: 203.162.44.162 (cid:1) Port number: 80

11

2: Lớp Ứng dụng

r Để gửi một thông điệp r Liệu địa chỉ IP đủ để chỉ định một process hay không?

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, (cid:1) Ví dụ request, response

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

(cid:1) Có các field nào, kích

r Cú pháp thông điệp:

động

r Cho phép liên kết hoạt thước

điệp (cid:1) Ý nghĩa của thông tin

r Ngữ nghĩa của thông

12

2: Lớp Ứng dụng

r Ví dụ HTTP, SMTP Các giao thức riêng: r Ví dụ Skype trong field

6

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

Dịch vụ truyền tải cần cho ứng dụng

Throughput r Một số ứng dụng yêu cầu

Data loss r Một số ứng dụng chấp nhận thất thoát số liệu ví dụ audio

thông lượng tối thiểu, ví dụ multimedia

truyền file hay telnet yêu cầu truyền tải tin cậy 100%

bất cứ thông lượng nào có được Security r Mật mã, bảo toàn số liệu, …

Timing r Một số ứng dụng yêu cầu độ trễ nhỏ, ví dụ Internet telephony, game tương tác

13

2: Lớp Ứng dụng

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-

r Các ứng dụng khác như r Các ứng dụng khác dùng

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

r Truyền tải tin cậy r Điều khiển luồng (flowcontrol) 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

14

2: Lớp Ứng dụng

7

oriented)

Một số ứng dụng và giao thức hỗ trợ

Giao thức lớp ứng dụng Ứng dụng Giao thức lớp truyền tải

e-mail remote terminal access Web file transfer streaming multimedia TCP TCP TCP TCP TCP hay UDP

15

2: Lớp Ứng dụng

Internet telephony 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) Thường là UDP

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

16

2: Lớp Ứng dụng

8

Web và HTTP HTTP được đặc tả trong RFC 2616 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,…

đối tượng tham chiếu (referenced object)

r Web page cũng bao gồm base HTML-file chứa các

www.ptithcm.edu.vn/itDept/pic.gif

path name

host name

17

2: Lớp Ứng dụng

Tổng quan HTTP (1)

HTTP: hypertext

transfer protocol

r Giao thức lớp ứng dụng cho

PC chạy trình duyệt IE

r Mỗi đối tượng tham chiếu được chỉ định bởi URL r Ví dụ URL:

HTTP request HTTP response

r Mô hình client/server

(cid:1) client:trình duyệt yêu

t

s

e

u

q

e

e

s

P r

n

T

o

p

T

s

H

web

e

P r

T

T

H

Server chạy Apache Web server

(cid:1) 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 firefox

18

2: Lớp Ứng dụng

9

cầu, nhận và hiển thị các đối tượng web

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

HTTP là “stateless” r server không lưu giữ thông tin về các yêu cầu đã qua

19

2: Lớp Ứng dụng

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

Kết nối HTTP

Kết nối HTTP không liên

tục

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

20

2: Lớp Ứng dụng

10

r Chỉ một đối tượng được chuyển qua một kết nối TCP

HTTP không liên tục

Giả sử người dùng nhập URL

(chứa text và tham chiếu đến 10 ảnh jpeg)

www.ptithcm.edu.vn/ITDep/home.index

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

1b. HTTP server tại 1a. HTTP client khởi động kết nối HTTP server (process) tại www.ptithcm.edu.vn trên port 80

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

2. HTTP client truyền HTTP

Thời gian

21

2: Lớp Ứng dụng

HTTP không liên tục

3. HTTP server nhận request message, tạo response messagechứa đối tượng được yêu cầu, truyền thông điệp vào TCP socket của nó.

4. HTTP server đóng kết nối

Thời gian

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

mỗi ảnh

22

2: Lớp Ứng dụng

11

6. Lặp lại các bước từ 1-5 cho

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

Khởi tạo TCP connection

kết nối TCP

RTT Yêu cầu file

RTT

Thời gian truyền file

Nhận file

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

time

time

23

2: Lớp Ứng dụng

HTTP liên tục

r Một RTT cho HTTP

r Các thông điệp sau được gửi

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

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

HTTP liên tục r server để mở kết nối sau khi gửi đáp ứng 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 qua kết nối đang mở

24

2: Lớp Ứng dụng

12

tượng tham chiếu

HTTP request message

r Hai loại HTTP messages: request, response r HTTP request message: (cid:1) Dưới dạng văn bản ASCII

request line (GET, POST, HEAD commands)

header lines 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)

25

2: Lớp Ứng dụng

HTTP request message: định dạng tổng quát

26

2: Lớp Ứng dụng

13

Carriage return, line feed chỉ kết thúc thông điệp

Truyền lên form input

Post method: r Web page thường chứa

form input

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ụ:

r Input được truyền lên server dưới dạng thân thực thể

27

2: Lớp Ứng dụng

www.animalfood.com/animalsearch?monkeys&banana

Các loại Method

HTTP/1.1 r GET, POST, HEAD r PUT

HTTP/1.0 r GET r POST r HEAD

(cid:1) 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

(cid:1) Yêu cầu server để đối tượng được yêu cầu ra ngoài đáp ứng

(cid:1) Xóa file được chỉ ra

r DELETE

28

2: Lớp Ứng dụng

14

trong URL

HTTP response message

status line (mã trạng thái)

header

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

29

2: Lớp Ứng dụng

Các mã đáp ứng HTTP

data data data data data ... data, ví dụ HTML file được yêu cầu

(cid:1) request thành công, đối tượng yêu cầu sau cùng có trong

Trong dòng đầu tiên trong thôn điệp đáp ứng từ server ->client Ví dụ: 200 OK

thông điệp này

301 Moved Permanently

(cid:1) Đố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 (cid:1) Server không hiểu

404 Not Found

(cid:1) Không tìm thấy tài liệu yêu cầu trong server

505 HTTP Version Not Supported

30

2: Lớp Ứng dụng

15

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:

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

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

31

2: Lớp Ứng dụng

(cid:1) danh định (ID) khác biệt (cid:1) một mục trong cơ sở dữ liệu cho ID này

Cookie (2)

client

server

r Khi HTTP request đến web site, web site tạo:

ebay 8734

http request

Tập tin cookie

http response Set-cookie: 1678

tạo mục

Amazon server tạo ID 1678 cho user

ebay 8734 amazon 1678

Truy cập

http request cookie: 1678

http response

Vài tuần sau:

Cơ sở dữ liệu

Truy cập

Sử dụng cookie

ebay 8734 amazon 1678

http request cookie: 1678

http response

32

2: Lớp Ứng dụng

16

Sử dụng cookie

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

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)

Cách thức giữ trạng thái r các giao thức đầu cuối: duy trì

r cookie: thông điệp http mang

trạng thái tại sender/receiver qua nhiều giao tác

33

2: Lớp Ứng dụng

trạng thái

Ky, thuâ-t Caching

client mà không cần truy vấn server nguồn r Trường hợp thực tê.:

(cid:1) Mô-t cơ quan co. mô-t đường

r Kha.i niê-m cache r Đáp ứng yêu cầu của

(cid:1) Tâ.t ca/ lưu lượng truy câ-p đê0u đi qua kê.t nô.i na0y (cid:1) Nhiê0u người du0ng co. thê/ cu0ng truy câ-p đê.n cu0ng mô-t nô-i dung

(cid:1) Gia/i pha.p tăng tô.c truy

nô.i đê.n Internet

34

2: Lớp Ứng dụng

17

xuâ.t: caching

Web cache (proxy server)

duyệt: truy xuất Web qua cache

server

r user cấu hình trình

t

s

e

u

q

r Trình dyệt gửi tất cả

e

r

e

s

n

client

các yêu cầu đến cache (cid:1) Đối tượng có trong

o

p

s

e

r

HTTP request HTTP response

H T T P H T T P

t

s

Proxy server

e

u

q

e

e

s

P r

n

(cid:1) Đối tượng không có

T

o

p

T

s

H

e

P r

T

T

H

client

server

cache: cache đáp ứng ngay

35

2: Lớp Ứng dụng

trong cache, cache yêu cầu đối tượng từ server nguồn, sau đó gửi cho client

Web caching

client, server

Lý do dùng Web caching? r Giảm thời gian đáp ứng cho các yêu cầu từ client

r cache đóng hai vai trò

r Thông thường cache được cài đặt bởi ISP

r Giảm lưu lượng trên các liên kết Internet của cơ quan

36

2: Lớp Ứng dụng

18

r Cho phép các nhà cung cấp nội dung phân phối nội dung hiệu quả

Ví dụ Giả sử r Trung bình mỗi đối tượng có

Internet

r Tốc độ trung bình gửi yêu cầu

server 100,000 bit

r Thời gian trễ từ router của

1.5 Mbps access link

là 15/giây

Mạng cục bộ

10 Mbps LAN

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%

37

2: Lớp Ứng dụng

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

Ví dụ (2)

doanh nghiệp đến bất cứ web server nào bên ngoài, cả đi và về là 2 giây

Giải pháp 1 r Tăng băng thông của access

server

Internet

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%

10 Mbps access link

Mạng cục bộ

Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 2 giây + cỡ mili giây + cỡ mili giây

10 Mbps LAN

r Chi phí cho nâng cấp

38

2: Lớp Ứng dụng

19

link lên 10 Mbps

Ví dụ (3) Giải pháp 2: cài đặt cache r Giả sử xác suất tìm thấy

Internet

=0.45 Hiệu năng r 45% yêu cầu sẽ được đáp

ứng tức thời

servers

1.5 Mbps access link

server nguồn

Mạng cục bộ

10 Mbps LAN

r 55% yêu cầu phải lấy từ

cache

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)

39

2: Lớp Ứng dụng

GET có điều kiện

server

cache

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

HTTP request msg If-modified-since:

Đối tượng Không bị hiệu chỉnh

r cache: chỉ ra ngày của bản sao được cập nhật trong HTTP request If-modified-since:

HTTP response HTTP/1.0 304 Not Modified

r server: khẳng định không có

cập nhật gì mới: HTTP/1.0 304 Not

HTTP request msg If-modified-since:

Modified

Đối tượng đã bị hiệu chỉnh

r server:đối tượng đã bị hiệu chỉnh

HTTP/1.0 200 OK

HTTP response HTTP/1.0 200 OK

40

2: Lớp Ứng dụng

20

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

41

2: Lớp Ứng dụng

FTP (file transfer protocol)

Truyền file

Giao diện FTP client

FTP server

user

Hệ thống file ở xa

Hệ thống file cục bộ

r Truyền/nhận file đến/từ máy ở xa r Mô hình client/server (cid:1) client:khởi động (cid:1) server:chờ đáp ứng

r ftp: được đặc tả trong RFC 959 r ftp server: dùng port 20 và 21

42

2: Lớp Ứng dụng

21

Kết nối cho điều khiển và kết nối truyền số liệu

Cầu nối TCP cho điều khiển, port 21

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

Cầu nối TCP cho data port 20

r Muốn truyền file khác, server

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.

phục vụ điều khiển FTP client FTP server

r Thông tin điều khiển dùng

r Khi nhận lệnh truyền file, server mở một kết nối TCP thứ 2 đến client

lại mở kết nối số liệu.

r Sau khi truyền file xong, server

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 đó.

43

2: Lớp Ứng dụng

xóa kết nối số liệu.

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 va0 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-

44

2: Lớp Ứng dụng

22

Active FTP va0 Passive FTP (2)

ta-o mô-t kê.t nô.i đê.n client

r Passive mode: giải pha.p cho vâ.n đê0 làm sao server khởi

45

2: Lớp Ứng dụng

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

Active FTP va0 Passive FTP (3)

r Vi. du- passive mode

46

2: Lớp Ứng dụng

23

Active FTP va0 Passive FTP (4)

r Active FTP : (cid:1) command (cid:1) data

: client >1023 --> server 21 : client >1023 <-- server 20

r Passive FTP : (cid:1) command (cid:1) data

: client >1023 --> server 21 : client >1023 --> server >1023

47

2: Lớp Ứng dụng

Các lệnh FTP và đáp ứng

Vài lệnh phổ biến: r Lệnh dưới dạng ASCII text

Vài mã đáp ứng r Mã trạng thái tương tự như

r USER username r PASS password

qua kênh điều khiển bên HTTP

r 331 Username OK, password required r 125 data connection

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 452 Error writing

r STOR filename gửi file

already open; transfer starting r 425 Can’t open data connection

48

2: Lớp Ứng dụng

24

lên host ở xa file

Vi. du- FTP client

r Command line r GUI FTP client: IE, firefox, FTPcute,...

49

2: Lớp Ứng dụng

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

50

2: Lớp Ứng dụng

25

Thư điện tử (Electronic Mail)

outgoing message queue

user mailbox

user agent

mail server

user agent

Ba thành phần chính: r user agent r mail server r SMTP: simple mail transfer

SMTP

mail server

user agent

SMTP

protocol

SMTP

user agent

mail server

user agent

user agent

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

51

2: Lớp Ứng dụng

Mail server

user agent

mail server

user agent

Mail Server r mailbox chứa thư đến r outbox thư chờ gửi r SMTP protocol để truyền thư

SMTP

mail server

user agent

SMTP

SMTP

user agent

mail server

user agent

user agent

52

2: Lớp Ứng dụng

26

User Agent r composing, editing, reading mail messages

SMTP [RFC 2821]

25

r Dùng TCP đề truyền thư từ client server, port

(cid:1) Bắt tay (cid:1) Truyền thư (cid:1) đóng

r Truyền trực tiếp: truyền server đến server khác r Ba pha

53

2: Lớp Ứng dụng

UserA truyền thư sang UserB

r Giao tiếp lệnh/đáp ứng

1) User A dùng user agent tạo

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 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 6) User B dùng user agent để đọc thư 3) Thực thể SMTP trên

1

mail serverB

user agent

2

user agent

6

mail serverA 3

4

5

User B

User A

54

2: Lớp Ứng dụng

27

Server A mở một kết nối TCP với Server B

SMTP

tục

r SMTP dùng kết nối liên

thông điệp được mã hóa theo mã 7-bit ASCII

r SMTP yêu cầu các

CRLF.CRLF xác định kết thúc thông điệp

55

2: Lớp Ứng dụng

Định dạng thư điện tử

header

r SMTP server dùng

body

(cid:1) To: (cid:1) From: (cid:1) Subject: khácvới lệnh SMTP

r body

(cid:1) Nội dung thư chỉ chứa ký

tự ASCII

56

2: Lớp Ứng dụng

28

Chuẩn định dạng thư điện tử được đặc tả trong RFC 822 Dòng trắng header lines, ví dụ

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

MIME version

Phương pháp được dùng để mã hóa data

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

Kiểu số liệu multimedia, khai báo tham số

base64 encoded data ..... ......................... ......base64 encoded data

57

2: Lớp Ứng dụng

Số liệu được mã hóa

Các giao thức lấy thư

SMTP

SMTP

user agent

access protocol

user agent

mail Server của người gửi

mail Server của người nhận

r Giao thức : lấy thư từ server

(cid:1) POP: Post Office Protocol [RFC 1939]

• Xác thực (agent <-->server) và download (cid:1) IMAP: Internet Mail Access Protocol [RFC 1730]

(cid:1) HTTP: gmail, Hotmail, Yahoo! Mail.

58

2: Lớp Ứng dụng

29

• Nhiều đặc tính, phức tạp • Thao tác xử lý thông điệp được lưu trên server

POP3 protocol

Pha xác thực r client commands:

S: +OK POP3 server ready C: user son S: +OK C: pass ptithcm S: +OK user successfully logged on

(cid:1) user: khai báo username (cid:1) pass: password

r Đáp ứng từ server

(cid:1) +OK

(cid:1) -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

59

2: Lớp Ứng dụng

POP3 và IMAP

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

qua các phiên: (cid:1) Tên thư mục và ánh xạ

r IMAP giữ trạng thái

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

giữa các message ID và tên thư mục

60

2: Lớp Ứng dụng

30

r POP3 là stateless

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

61

2: Lớp Ứng dụng

DNS (Domain Name System)

host, router:

Domain Name System: r Cơ sở dữ liệu phân tán

(cid:1) Địa chỉ IP được dùng để đánh địa chỉ các thiết bị, được dùng bởi máy

(cid:1) Tên ví dụ

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

được hiện thực phân cấp nhiều nameservers

IP và tên?

www.yahoo.com -được dùng bởi con người Ánh xạ qua lại giữa địa chỉ

62

2: Lớp Ứng dụng

31

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ỉ) (cid:1) Lưu ý: chức năng của core Internet, được hiện thực như giao thức lớp ứng dụng (cid:1) Khá phức tạp tại vùng biên của mạng

Cơ sở dữ liệu phân tán, phân cấp

Root DNS Servers

org DNS servers

edu DNS servers

com DNS servers

poly.edu DNS servers

umass.edu DNS servers

pbs.org DNS servers

yahoo.com DNS servers

amazon.com DNS servers

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

server

r client truy vấn com DNS server để lấy yahoo.com DNS

IP của www.yahoo.com

63

2: Lớp Ứng dụng

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:

(cid:1) 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

đó

(cid:1) Lấy ánh xạ (cid:1) 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

64

2: Lớp Ứng dụng

32

r client truy vấn yahoo.com DNS server để lấy địa chỉ

TLD và các DNS Server cấp thấp r Các Top-level domain (TLD) server:

(cid:1) 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.

(cid:1) Network Solutions cai quản các server cho com

TLD

(cid:1) Educause cho edu TLD r Các server cấp thấp :

(cid:1) 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).

(cid:1) Có thể được cai quản bởi tổ chức, doanh nghiệp hay

nhà cung cấp dịch vụ

65

2: Lớp Ứng dụng

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.

(cid:1) 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 (cid:1) Tác động như một proxy, chuyển truy ấn vào hệ

thống tên miền phân cấp.

66

2: Lớp Ứng dụng

33

root DNS server

Ví dụ về phân giải tên qua DNS

2

3

TLD DNS server

4

5

r Host tại cis.icu.edu muốn địa chỉ IP của datacom.cs.ptithcm .edu

DNS server cục bộ dns.icu.edu

6

7

1

8

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

DNS server thẩm quyền dns.cs.ptithcm.edu

Host yêu cầu cis.icu.edu

này, đề nghị hỏi server này”

datacom.cs.ptithcm.edu

67

2: Lớp Ứng dụng

root DNS server

Ví dụ về phân giải tên qua DNS

2

3

6

7

TLD DNS server

Truy vấn đệ qui: r Đặt trách nhiệm phân giải tên lên name server được liên hệ

4

5

DNS server cục bộ dns.icu.edu

1

8

DNS server thẩm quyền dns.cs.ptithcm.edu

Host yêu cầu cis.icu.edu

datacom.cs.ptithcm.edu

68

2: Lớp Ứng dụng

34

Caching và cập nhật các record

(cid:1) Các mục trong cache biến mất sau một khoảng

thời gian (timeout)

(cid:1) 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 Khi name server học ánh xạ tên, nó sẽ cache lại

(cid:1) Xem thêm RFC 2136 (cid:1) http://www.ietf.org/html.charters/dnsind-charter.html

69

2: Lớp Ứng dụng

Các DNS record

DNS: cơ sở dữ liệu phân tán lưu các resource record

(RR)

Định dạng RR : (name, value, type, ttl)

r Cơ chế cập nhật được xây dựng bởi IETF

(cid:1) Tên là bí danh cho một

(cid:1) Tên là tên host (cid:1) value là địa chỉ IP

r Type=A r Type=CNAME

(cid:1) Tên là tên miền (ví

(cid:1) value là tên thật

r Type=NS số tên thật www.ibm.com là thật servereast.backup2.ibm.com

dụ yahoo.com)

(cid:1) value là tên của mailserver

(cid:1) value là tên host của name server có thẩm quyền của domain này

r Type=MX

70

2: Lớp Ứng dụng

35

liên hệ với tên

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:

(cid:1) query hay reply (cid:1) Cần đệ qui (cid:1) Sẵn sàng đệ qui (cid:1) reply là có thẩm quyền

71

2: Lớp Ứng dụng

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

72

2: Lớp Ứng dụng

36

Thông tin bổ sung hữu dụng

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

73

2: Lớp Ứng dụng

NỘI DUNG

r Các nguyên lý r Web và HTTP r FTP r Electronic Mail

(cid:1) SMTP, POP3, IMAP

r DNS r Các ứng dụng P2P

74

2: Lớp Ứng dụng

37

Kiến trúc thuần P2P

trực

r Không có server thường

tiếp trực tiếp

r Các đầu cuối tự do giao peer-peer

75

2: Lớp Ứng dụng

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: băng thông truyền lên từ server

Server

u2

u1

d1

d2

us

ui: băng thông truyền lên từ peer di: băng thông tải về từ peer

File, kích thước F

uN

Network (bandwidth đầy đủ)

dN

76

2: Lớp Ứng dụng

38

r Các peer kết nối với nhau không liên tục và thay đổi địa chỉ IP

Phân phối File (2)

Server

r server gửi lần lượt N

u2

F

u1

d1

d2

us

bản sao: (cid:1) Ts=NF/us

uN

Network (đầy đủ băng thông)

r client i mất Ti=F/di

dN

thời gian để download

Thời gian để phân phối file đến Nclient

Tcs = max { NF/us, F/min(di)}

Tăng tuyến tính với N

77

2: Lớp Ứng dụng

Phân phối File theo P2P

Server

u2

F

u1

d1

d2

us

uN

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à

Network (đầy đủ băng thông)

i

dN

r Tốc độ tải lên nhanh nhất có thể: us + Σui

TP2P = max { F/us, F/min(di), NF/(us + Σui) }

NF

78

2: Lớp Ứng dụng

39

i

BitTorrent (1) r Dùng phân phối file theo

P2P

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

79

2: Lớp Ứng dụng

BitTorrent (2)

(cid:1) Không có chunk, nhưng sẽ tích lũy chúng theo thời gian (cid:1) Đă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 file được chia thành các mẫu (chunk) 256KB. r peer gia nhập torrent:

khác.

r Trong khi tải về, peer cũng tải lên các chunk đến các peer

80

2: Lớp Ứng dụng

40

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.

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 Mỗi 30 giây, chọn ngẫu nhiên

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 (cid:1) Mỗi 10 giây đánh giá lại top 4

r Định kỳ, peer hỏi mỗi

peer láng giềng về danh sách các chunk mà chúng có.

(cid:1) Khai thông

một peer khác, khởi động truyền chunk (cid:1) Peer mới được chọn có thể tham gia vào top 4

chunk bị thiếu

81

2: Lớp Ứng dụng

r Peer gửi yêu cầu lấy các

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

Peer B

82

2: Lớp Ứng dụng

41

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!

Tìm kiếm thông tin Index trong hệ thống P2P: ánh xạ thông tin sang vị trí peer (vị trí = IP address & port number)

Dịch vụ chat r Index ánh xạ tên user

sang vị trí

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ẻ.

83

2: Lớp Ứng dụng

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 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 tập trung

Peer B

1) khi peer kết nối, nó

Server thư mục trung tâm

1

peers

1

thông báo server trung tâm: (cid:1) Địa chỉ IP (cid:1) Nội dung

3

1

2) peer A truy vấn trung

2

1

tâm

3) Peer A yêu cầu file từ

peer B

Peer A

84

2: Lớp Ứng dụng

42

Index tập trung: Nhược

Hoạt động truyền file là phân tán

nhưng việc định vị file là tập trung

85

2: Lớp Ứng dụng

r Điểm lỗi đơn r Cổ chai r Vấn đề bản quyền

Truy vấn kiểu lũ (query flooding)

mọi nơi (cid:1) Không có server trung

Đồ thị mạng r Có cạnh nối giữa peer X và Y nếu có kết nối TCP

r Phát tán truy vấn ra

tâm

Gnutella

r Được dùng trong

r Tất cả các peer hoạt động và các cạnh tạo nên mạng bao phủ

r Mỗi peer lập danh sách các file mà nó sẵn sàng chia sẻ

86

2: Lớp Ứng dụng

43

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

Truy vấn kiểu lũ

Truyền File: HTTP

Query

response

r 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

Q

uery

Q

o n s e

u ery r e s p Query

response

Q

u

ery

87

2: Lớp Ứng dụng

Gia nhập Gnutella

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 đó

1.

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

3. Tạo lũtruy vấn:peer A Ping đến peer B; peer B

thông điệp Pong

4. Các peer nhận Ping phản hồi lại cho peer A bằng

thêm các kết nối TCP

88

2: Lớp Ứng dụng

44

5. Peer A nhận nhiều Pong và sau đó có thể thiết lập

Mạng bao phủ phân cấp

dùng truy vấn kiểu lũ r Mỗi peer là một super

node hay được gán là super node (cid:1) Kết nối TCP giữa peer và

r Giữa các index trung tâm,

(cid:1) Kết nối TCP giữa các super

super node của nó.

ordinary peer

group-leader peer

node.

neighoring relationships in overlay network

89

2: Lớp Ứng dụng

r Super node theo dõi nội dung trong node con của nó

Skype

Skype clients (SC)

từng cặp.

r Thừa kế P2P, giao tiếp

dụng riêng

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

90

2: Lớp Ứng dụng

45

r Là giao thức lớp ứng Skype login server Supernode (SN) r Mạng bao phủ phân cấp

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

(cid:1) Dùng super node của peer A và peer B_ chọn relay (cid:1) Mỗi peer khởi tạo phiên

r Giải pháp:

(cid:1) Nhờ vậy các Peer có thể giao tiếp với nhau vượt NAT bằng relay.

91

2: Lớp Ứng dụng

với relay.

Đề nghị

r Tìm hiểu Limewire và một số ứng dụng P2P

khác

92

2: Lớp Ứng dụng

46

Hết chương 2

93

2: Lớp Ứng dụng

47