5/22/2011

LOGO

C2

TẦNG ỨNG DỤNG

(cid:61558) Giao thức tầng ứng dụng

(cid:61558)Web

(cid:61558)FTP

(cid:61558)Email

(cid:61558)DNS

Biên soạn : Lê Minh

LOGO

I

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

(cid:61558)Người dùng tương tác với ứng dụng thông qua

chương trình cài đặt trên thiết bị

(cid:61558) Các ứng dụng liên lạc với nhau thông qua các

tiến trình (process)

(cid:61558) Các tiến trình chạy trên các máy tính khác nhau liên lạc với nhau tuân theo giao thức tầng ứng dụng

Biên soạn : Lê Minh

1

5/22/2011

LOGO

I

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

(cid:61558) Giao thức tầng ứng dụng:

(cid:61607) Là một phần của một ứng dụng mạng (cid:61607) Xác định kiểu thông điệp (message) trao đổi (cid:61607) Xác định cú pháp của thông điệp (cid:61607) Xác định ý nghĩa của các trường (cid:61607) Xác định thời điểm và cách thức gởi/nhận thông

điệp

(cid:61607) Sử dụng các dịch vụ cung cấp bởi giao thức của

tầng dưới ( TCP và UDP)

(cid:61558)User agent: giao diện giữa người dùng và ứng

dụng mạng

Biên soạn : Lê Minh

LOGO

1

Mô hình mạng client/server

(cid:61558)Các ứng dụng mạng thường gồm 2 phía : client và server

(cid:61558)Client

(cid:61607) Khởi tạo giao tiếp với

server

(cid:61607) Yêu cầu dịch vụ từ

server (cid:61558) Server

(cid:61607) Cung cấp các dịch vụ

cho client

Biên soạn : Lê Minh

2

5/22/2011

LOGO

2

Truyền thông giữa các tiến trình

(cid:61558)Các tiến trình gởi/

host or server

host or server

nhận thông điệp qua socket của chúng

controlled by app developer

process

process

socket

socket

(cid:61558)Socket có thể xem như “cửa” của tiến trình (cid:61607) Quá trình gởi: đẩy

Internet

TCP with buffers, variables

TCP with buffers, variables

thông điệp qua “cửa” (cid:61607) Quá trình nhận: thông

điệp được gửi đến “cửa” của nơi nhận

controlled by OS

Biên soạn : Lê Minh

LOGO

2

Truyền thông giữa các tiến trình

(cid:61558) Định địa chỉ tiến trình:

(cid:61607) Tiến trình gởi phải xác định địa chỉ của tiến

trình nhận

(cid:61607) Mỗi máy tính sẽ có một địa chỉ IP (32bit) trên

mạng.

• web server dùng cổng 80 • Mail server dùng cổng 25,…

(cid:61607) Mỗi tiến trình sẽ được định một địa chỉ cổng (port number)

(cid:61607) Phải xác định địa chỉ IP và địa chỉ cổng của bên

Biên soạn : Lê Minh

nhận

3

5/22/2011

LOGO

3

Dịch vụ của giao thức tầng giao vận

(cid:61558) Dịch vụ TCP

(cid:61558)Dịch vụ UDP

(cid:61607) Theo hướng kết nối: yêu cầu thiết lập kết nối giữa client và server

(cid:61607) Truyền dữ liệu không tin cậy giữa tiến trình truyền và nhận (cid:61607) Không hỗ trợ: thiết

(cid:61607) Truyền dữ liệu tin cậy (cid:61607) Có điều khiển lưu

lượng

(cid:61607) Có kiểm soát tắc

lập kết nối, điều khiển lưu lượng, kiểm soát tắc nghẽn, băng thông và thời gian tối thiểu

nghẽn

(cid:61607) Không hỗ trợ thời gian và băng thông tối thiểu

Biên soạn : Lê Minh

LOGO

II

Dịch vụ Web

(cid:61558)Trang Web:

(cid:61607) chứa các đối tượng ( file HTML, file ảnh, file

âm thanh…)

(cid:61607) Các đối tượng được xác định qua địa chỉ URL (cid:61607) Chứa 1 file HTML cơ sở và tham chiếu tới các

đối tượng khác

(cid:61607) Ví dụ: www.school.edu/department/pic1.gif (cid:61558) Trình duyệt (Browers): giao tiếp với người

dùng

(cid:61558) Web server: lưu giữ website, xác định qua địa

chỉ URL

Biên soạn : Lê Minh

4

5/22/2011

LOGO

HTTP

1

(cid:61558)HTTP(HyperText

PC running Explorer

Transfer Protocol): giao thức tầng ứng dụng của dịch vụ Web

(cid:61558)Sử dụng mô hình

server/client (cid:61607) Client: là trình duyệt (cid:61607) Server: phần mềm web

Server running Apache Web server

server

(cid:61558)HTTP có 2 phiên bản:

1.0 và 1.1

Mac running Navigator

Biên soạn : Lê Minh

LOGO

HTTP

1

(cid:61558)Cơ chế hoạt động :

(cid:61607) Sử dụng giao thức TCP ở tầng giao vận (cid:61607) Client khởi tạo kết nối TCP (socket) đến server

qua cổng 80

(cid:61607) Server chấp nhận kết nối TCP từ Client (cid:61607) Các thông điệp HTTP được trao đổi qua lại giữa trình duyệt ( HTTP client) và Web server (HTTP server)

Biên soạn : Lê Minh

(cid:61607) Đóng kết nối HTTP

5

5/22/2011

LOGO

2

Kết nối HTTP

(cid:61558)Có 2 loại: kết nối không liên tục và kết nối liên

tục

(cid:61558)Kết nối không liên tục

(cid:61607) Chỉ có 1 đối tượng được gởi qua kết nối TCP (cid:61607) Kết nối được đóng sau khi client nhận được đối

tượng

(cid:61607) Sử dụng cho phiên bản HTTP 1.0 (cid:61607) Trình duyệt thường mở nhiều kết nối TCP

Biên soạn : Lê Minh

song song để nhận các đối tượng

LOGO

2

Kết nối HTTP

(cid:61558)Kết nối liên tục:

(cid:61607) Nhiều đối tượng có thể được gởi qua 1 kết nối

TCP giữa client và server

(cid:61607) Server không đóng kết nối sau khi gởi xong

thông điệp trả lời

Biên soạn : Lê Minh

(cid:61607) Sử dụng cho phiên bản 1.1

6

5/22/2011

LOGO

3

Định dạng thông điệp HTTP

(cid:61558)Có 2 dạng thông điệp HTTP: thông điệp yêu

cầu và thông điệp trả lời

Biên soạn : Lê Minh

(cid:61558) Thông điệp yêu cầu: viết theo mã ASCII

LOGO

3

Định dạng thông điệp HTTP

(cid:61558)Thông điệp yêu cầu

request line (lệnh GET, POST, HEAD)

header lines

(cid:61607) Ví dụ:

GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr

(extra carriage return, line feed)

Carriage return, line feed (cho biết kết thúc thông điệp

Biên soạn : Lê Minh

7

5/22/2011

LOGO

3

Định dạng thông điệp HTTP

(cid:61558) Định dạng thông điệp trả lời

Status code

Version Version

phrase

Status line Status line

Biên soạn : Lê Minh

(cid:61558) Thông điệp trả lời:

LOGO

3

Định dạng thông điệp HTTP

(cid:61558)Thông điệp trả lời

status line (protocol status code status phrase)

(cid:61607) Ví dụ:

Modified: Mon, 22 Jun 1998 …...

header lines

HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last- Content-Length: 6821 Content-Type: text/html

data data data data data ...

data, e.g., requested HTML file

Biên soạn : Lê Minh

8

5/22/2011

LOGO

3

Định dạng thông điệp HTTP

(cid:61607) Các mã trạng thái (status code) của thông điệp

– 100 Continue, 101 Switching Protocols

• 2XX: thành công

– 200 OK, 206 Partial Content

• 3XX: hướng dẫn

– 301 Moved Permanently, 304 Not Modified

• 4XX: lỗi client

– 400 Bad Request, 403 Forbidden, 404 Not Found

• 5XX: lỗi server

– 500 Internal Server Error, 503 Service Unavailable,

trả lời: • 1XX : thông tin

505 HTTP Version Not Supported

Biên soạn : Lê Minh

LOGO

Web Proxy Caching

3

origin server

Proxy server

client

(cid:61558) Mục đích: đáp ứng yêu cầu của client mà không cần tới server gốc chứa đối tượng

client

(cid:61558) Người dùng thiết lập trình duyệt web: truy cập thông qua web cach (cid:61558) Trình duyệt gởi các yêu cầu HTTP tới cach (cid:61607) Nếu có đối tượng: gởi về

cho client

origin server

(cid:61607) Nếu không có: gởi yêu cầu đến server gốc

Biên soạn : Lê Minh

9

5/22/2011

LOGO

Web Proxy Caching

3

(cid:61558) Tại sao sử dụng web

catching? (cid:61607) Giảm thời gian đáp ứng

cho client.

(cid:61607) Giảm tải mạng : tránh

hiện tượng “thắt cổ chai”

Biên soạn : Lê Minh

LOGO

FTP

III

(cid:61558)FTP (File Transfer Protocol): giao thức truyền

file giữa các máy tính

(cid:61558)Sử dụng mô hình server/client

Biên soạn : Lê Minh

10

5/22/2011

LOGO

FTP

III

(cid:61558)Sử dụng giao thức TCP của tầng giao vận (cid:61558)Dùng 2 cổng (port) 20 và 21

TCP control connection port 21

TCP data connection port 20

FTP client

FTP server

Biên soạn : Lê Minh

(cid:61607) Port 21: truyền thông tin điều khiển (cid:61607) Port 20: truyền dữ liệu

LOGO

FTP

III

(cid:61558)Cơ chế hoạt động:

(cid:61607) FTP client thiết lập 1 kết nối TCP với FTP

server qua cổng 21 (kết nối điều khiển)

(cid:61607) Client chứng thực với server qua kết nối điều

khiển

(cid:61607) Client gởi yêu cầu truyền/nhận file đến server

qua kết nối điều khiển

Biên soạn : Lê Minh

(cid:61607) Server mở kết nối TCP với client qua cổng 20 (kết nối dữ liệu), truyền/nhận file qua kết nối này

11

5/22/2011

LOGO

FTP

III

(cid:61558)Cơ chế hoạt động:

(cid:61607) Sau khi truyền/nhận xong, server đóng kết nối

dữ liệu

(cid:61607) Server sẽ mở một kết nối dữ liệu khác khi

client có yêu cầu truyền/nhận file khác

Biên soạn : Lê Minh

(cid:61607) Trong phiên làm việc, server lưu lại trạng thái: thư mục hiện hành và lần chứng thực trước đó của client

LOGO

Electronic Mail

III

(cid:61558)Hệ thống E-Mail gồm 3 thành phần chính SMTP

SMTP

access protocol

user agent

user agent

receiver’s mail server

sender’s mail server

Biên soạn : Lê Minh

(cid:61607) User agent (cid:61607) Mail server (cid:61607) Giao thức gởi/truy cập mail

12

5/22/2011

LOGO

SMTP

1

user agent

(cid:61558)Là giao thức gởi thư giữa các mail server (cid:61558)Dùng giao thức TCP

mail server

user agent

SMTP

mail server

user agent

SMTP

SMTP

user agent

mail server

(cid:61607) Mail

user agent

user agent

của tầng dưới (cid:61558)Dùng cổng 25 (cid:61558)Theo mô hình client/server: (cid:61607) Mail server gởi thư: đóng vai trò là client server nhận thư: đóng vai trò là server

Biên soạn : Lê Minh

LOGO

SMTP

1

(cid:61558)Cơ chế hoạt động

(cid:61607) Client thiết lập một kết nối TCP với server qua

cổng 25

• Bắt tay giữa 2 client/server • Truyền nội dung thư • Đóng kết nối

(cid:61607) Quá trình gởi thư trải qua 3 bước:

Biên soạn : Lê Minh

(cid:61607) Tương tác giữa client/server thông qua lệnh (client => server) và trả lời (server => client) • Lệnh: viết theo mã ASCII • Trả lời: mã trạng thái và từ ngữ

13

5/22/2011

LOGO

SMTP

1

(cid:61558)Ví dụ: S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 alice@crepes.fr... Sender ok C: RCPT TO: S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by

itself

Biên soạn : Lê Minh

C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

LOGO

2

Định dạng Email

(cid:61558)Header:

header

blank line

các dòng tiêu đề, chứa các nội dung như: (cid:61607) To: (cid:61607) From: (cid:61607) Subject: (cid:61607) …

body

(cid:61558)Body: nội dung thư, chỉ chứa các ký tự thuộc bản mã ASCII

Biên soạn : Lê Minh

14

5/22/2011

LOGO

MIME

3

(cid:61558) Chuẩn quy định định dạng email khi nội dung email có các thành phần multimedia (cid:61558)Thêm vào phần header để khai báo thư thuộc

định dạng MIME

Phiên bản MIME

phương pháp mã hóa dữ liệu

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

Khai báo kiểu dữ liệu nội dung

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

Dữ liệu đã mã hóa

Biên soạn : Lê Minh

LOGO

MIME

3

(cid:61558)Nội dung thuộc kiểu: multipart/mixed

From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed;Boundary=123

--123 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain

Dear Bob, Please find a picture of a crepe. --123 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ..... ......................... ......base64 encoded data --123--

Biên soạn : Lê Minh

15

5/22/2011

LOGO

4

Giao thức truy cập Mail

SMTP

SMTP

access protocol

user agent

user agent

receiver’s mail server

sender’s mail server

(cid:61558)Dùng để lấy mail từ server, có 3 giao thức

Biên soạn : Lê Minh

(cid:61607) POP (cid:61607) IMAP (cid:61607) HTTP

LOGO

DNS

IV

(cid:61558)Các máy tính trên mạng Internet: được quản

lý bằng địa chỉ IP

(cid:61558)Con người: biết đến các máy chủ thông qua

“tên”, vd: yahoo.com.vn

(cid:61558)Tên <-> IP?? (cid:61558)DNS (Domain Name System): hệ thống phân

giải tên miền

Biên soạn : Lê Minh

16

5/22/2011

LOGO

1

Các dịch vụ của DNS

(cid:61558) Ánh xạ giữa Tên và địa chỉ IP

(cid:61607) Vd: google.com.vn (cid:61663)(cid:61664) 74.125.235.17

(cid:61558)Đặt bí danh cho máy chủ: một máy chủ có thể được gọi bằng tên đầy đủ (canonical name) hay bí danh (alias name) (cid:61558)Đặt bí danh cho mail server (cid:61558)Phân phối tải giữa các server:

(cid:61607) Server “nhân bản”: một tên miền có thể ứng

Biên soạn : Lê Minh

với nhiều server ở các IP các nhau

LOGO

2

Cấu trúc của hệ thống DNS

root DNS server

(cid:61558)Gồm:

(cid:61558)

2

3

TLD DNS server

(cid:61607) Client resolver (cid:61607) Local DNS server (cid:61607) Authoritative DNS

4

server

5

local DNS server dns.poly.edu

(cid:61607) Root DNS server (cid:61607) Top-Level Domain

6

7

1

8

DNS server (cid:61558)Hoạt động? (cid:61607) Vd: máy

authoritative DNS server dns.cs.umass.edu

requesting host

tính muốn biết IP của gaia.cs.umass.edu

gaia.cs.umass.edu Biên soạn : Lê Minh

17

5/22/2011

LOGO

3

Quản lý không gian tên miền

Root DNS Servers

ca DNS servers

edu DNS servers

TLD Servers

com DNS servers

ucalgary.ca DNS servers

usask.ca DNS servers

poly.edu DNS servers

umass.edu DNS servers

yahoo.com DNS servers

amazon.com DNS servers

(cid:61558) Root name NS server và TLD server thường không chứa ánh xạ hostname (cid:61663)(cid:61664)IP mà chỉ chứa ánh xạ tới IP của các DNS server khác

Biên soạn : Lê Minh

LOGO

3

Quản lý không gian tên miền

(cid:61558)

Biên soạn : Lê Minh

18

5/22/2011

LOGO

4

Chức năng các server

(cid:61558)Local DNS server:

(cid:61607) Mỗi ISP có một local DNS server (cid:61607) Khi một máy tính (host) muốn biết một IP của một tên miền, nó gởi một truy vấn DNS (DNS query) tới Local DNS server

Biên soạn : Lê Minh

(cid:61607) Nếu có thể phân giải tên, Local DNS server sẽ trả lời host, nếu không sẽ gởi truy vấn DNS tới Root DNS server

LOGO

4

Chức năng các server

(cid:61558)Authoritative DNS server:

(cid:61607) Chứa các ánh xạ hostname (cid:61663)(cid:61664)IP được chứng

thực

(cid:61607) Được điều hành bởi các tổ chức hoặc các công

ty dịch vụ (cid:61558)TLD server:

(cid:61607) Quản lý các vùng tên miền chung như: .com .org .net .edu … và các tên miền quốc gia như : .us .fr .jp ….

(cid:61607) Có thể trao quyền quản lý các vùng con trong

Biên soạn : Lê Minh

vùng của mình cho server khác

19

5/22/2011

LOGO

4

Chức năng các server

root DNS server

(cid:61558)Root DNS server:

2

TLD DNS server

(cid:61607) Được các Local DNS server hỏi khi local DNS server không thể phân giải tên

(cid:61607) Root Name

local DNS server dns.poly.edu

server trả lời Local name server ??

1

authoritative DNS server dns.cs.umass.edu

requesting host cis.poly.edu

gaia.cs.umass.edu Biên soạn : Lê Minh

LOGO

4

Cơ chế hoạt động

root DNS server

(cid:61558)Máy host gởi

2

truy vấn DNS tới Local DNS server

TLD DNS server

3

4

5 intermedia DNS server

6

9

local DNS server dns.poly.edu

7

8

(cid:61558)Nếu không phân giải được, local DNS truy server sẽ gởi vấn tới root DNS server

10

1

authoritative DNS server dns.cs.umass.edu

requesting host cis.poly.edu

(cid:61558)Root gởi thông điệp trả lời yêu cầu Local hỏi TLD DNS server …

gaia.cs.umass.edu Biên soạn : Lê Minh

20