You are on page 1of 43

Chương 7:

Tầng ứng dụng


Giảng viên: Ngô Hồng Sơn

Bộ môn Truyền thông và Mạng máy tính


Khoa CNTT- ðHBK Hà Nội

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Tổng quan
 Buổi trước: Tầng giao vận
 Nguyên lý của tầng giao vận
 TCP và UDP
 Khái niệm kiểm soát luồng và kiểm soát tắc
nghẽn
 Hôm nay: Tầng ứng dụng
 Nguyên lý của tầng ứng dụng
 Case study: HTTP, Mail, FTP, DNS, P2P…

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Khái niệm cơ bản

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nhắc lại về kiến trúc phân tầng
Application Hỗ trợ các ứng dụng trên mạng

(HTTP, Mail, …)

Transport Truyền dữ liệu giữa các ứng dụng


(UDP, TCP …)

Network
Chọn ñường và chuyển tiếp gói tin giữa
(IP, ICMP…) các máy, các mạng

Datalink Hỗ trợ việc truyền thông cho các thành


(Ethernet, ADSL…) phần kế tiếp trên cùng 1 mạng

Physical Truyền và nhận dòng bit trên ñường


(bits…) truyền vật lý
4

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng và dịch vụ trên mạng?
MUSIC ONLINE
VoIP
GAME CHAT VoD
ON LINE e-Office
SMS e-BANK
MAIL
SCHOOL
WEB
ON THE YOUTUBE
INTERNET VIDEO
CONFERENCE FTP
EBAY
GOOGLE SKYPE
TELNET
SSH

NEWS E-COMMERCE GRID


BITTORENT
5
e-Goverment

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng và giao thức ứng dụng
 Giao thức ứng dụng application
transport
network
 ðịnh nghĩa các quy tắc giao tiếp data link
physical
 Sử dụng các dịch vụ giao vận
(TCP/UDP…)
 Ứng dụng :
 Các tiến trình giao tiếp với nhau
trên Internet qua việc trao ñổi
thông ñiệp
 Hoạt ñộng trên các hệ thống
cuối
application
 Cài ñặt giao thức ứng dụng ñể transport
cung cấp dịch vụ network
data link
application
physical
 Ví dụ ứng dụng/giao thức: transport
network
 Web (HTTP) data link
physical
 Mail (SMTP/POP/IMAP) …
6

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các thành phần của ứng dụng
 Chương trình
 Giao diện NSD:
 Hỗ trợ cho NSD ñể làm việc với ứng dụng,
 e.g. trình duyệt Web (Firefox, IE), phần mềm thư ñiện tử
(Thunderbird, Outlook,..)
 Cài ñặt các giao thức và sử dụng dịch vụ giao vận
 Chương trình máy chủ
 Cung cấp dịch vụ cho người sử dụng

 Tiến trình ứng dụng: chương trình ñang chạy trên


hệ ñiều hành
 Các tiến trình giao tiếp?
 Trên một máy: IPC (inter-process communication)
 Giữa các máy trên mạng: qua socket
7

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Giao tiếp giữa các tiến trình trên
Internet
 Nhắc lại: Socket là một giao
diện giữa tiến trình ứng dụng host or host or
và tầng giao vận server server
 Socket ñược ñịnh danh bởi
controlled by
 Số hiệu cổng app developer
process process
 ðịa chỉ IP
socket socket
 Kiểu giao thức giao vận
(TCP hay UDP) transport
Internet
transport
layer layer
 Socket API (Application services services
Programming Interface): Cho
phép các tiến trình lựa chọn
tham số, lựa chọn dịch vụ… controlled
by OS

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các mô hình ứng dụng
 Khách-chủ
 P2P
 Mô hình lai

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mô hình khách chủ
 Khách
client  Gửi yêu cầu truy cập dịch
vụ ñến máy chủ
 Về nguyên tắc, không liên
client
lạc trực tiếp với các máy
khách khác
 Chủ
client  Thường xuyên online ñể
Server
chờ y/c ñến từ máy trạm
 Có thể có máy chủ dự
phòng ñể nâng cao hiệu
client năng, phòng sự cố
 e.g. Web, Mail, …
10

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mô hình ñiểm-ñiểm thuần túy
Peer Peer  Không có máy chủ trung
tâm
 Các máy có vai trò
ngang nhau
Peer
Peer  Hai máy bất kỳ có thể
liên lạc trực tiếp với
nhau
 Không cần vào mạng
thường xuyên
 E.g. Gnutella
Peer Peer

11

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mô hình lai

Client
 Một máy chủ trung tâm
ñể quản lý NSD, thông
tin tìm kiếm…
 Các máy khách sẽ giao
tiếp trực tiếp với nhau
Server sau khi ñăng nhập
 E.g. Skype
 Máy chủ Skype quản lý
các phiên ñăng nhập, mật
khẩu…
Client  Sau khi kết nối, các máy
Client
sẽ gọi VoIP trực tiếp cho
nhau
Client-Server Comm.
12
P2P Comm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Case study 1: HTTP và WWW

13

CuuDuongThanCong.com https://fb.com/tailieudientucntt
HTTP và Web
Web clients
 WWW: World Wide Web
 trao ñổi dữ liệu siêu văn bản
HTML (HyperText Markup htt
Language) trên Internet IE p req
htt ue Web
p res st
 HTTP: HyperText Transfer po server
ns
Protocol e
 Mô hình Client/Server
 Client yêu cầu truy nhập tới các
Firefox
trang web (các ñối tượng web) es
t
u
và hiển thị chúng lên trình duyệt r eq n se
p po
Server: Nhận yêu cầu và trả lời htt s

p re
ht t
cho client

14
Navigator

CuuDuongThanCong.com https://fb.com/tailieudientucntt
HTTP hoạt ñộng ntn?
 Server mở một TCP socket chờ tại cổng 80 (default)
 Client khởi tạo một liên kết TCP tới server
 Server chấp nhận yêu cầu tạo liên kết
 Trao ñổi thông ñiệp HTTP (giao thức ứng dụng)
 HTTP Request
 HTTP Response
 ðóng liên kết TCP

IP header TCP header HTTP header Dữ liệu - payload

15

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Khuôn dạng HTTP request
 Mã ASCII (dễ dàng ñọc ñược dưới dạng văn bản)

request line
(GET, POST, GET /dccn/index.html HTTP/1.1
HEAD commands) Host: www.it-hut.edu.vn
User-agent: Mozilla/4.0
header Connection: close
lines Accept-language:en-us

CR, LF
(extra carriage return, line feed)
indicates end
of message
16

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Khuôn dạng HTTP response
status line
(protocol
status code HTTP/1.1 200 OK
status phrase) Connection close
Date: Tue, 16 Mar 2008 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
header
Last-Modified: Mon, 15 Mar 2008 …...
lines
Content-Length: 8990
Content-Type: text/html

data, e.g., data data data data data ...


requested
HTML file

17

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các liên kết HTTP
HTTP không duy trì HTTP có duy trì
 Chỉ một ñối tượng web  Nhiều ñối tượng có thể
ñược gửi qua liên kết ñược gửi qua một liên
TCP kết TCP.
 Sử dụng mặc ñịnh  Sử dụng mặc ñịnh

trong HTTP/1.0 trong HTTP/1.1


 HTTP 1.0: RFC 1945  HTTP 1.1: RFC 2068

18

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hoạt ñộng của HTTP/1.0
Web client Web server

Init TCP connection TCP C


onn. R
eq.
Accept TCP connection

OK, send HTTP request GET /index


.html Send HTTP response: index.html
html Close TCP connection
index.
Parse index.html: has 10 TCP C
onn. R
reference to 10 images eq.

ted Accept TCP connection


Repeat above steps 10 Accep
times!
GET im
g1.jpg
Send images 1
pg
img1.j Close TCP connection
2xRTT 19

Time Time
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hoạt ñộng của HTTP/1.1
Web client Web server

Init TCP connection TCP C


onn. R
eq.
Accept TCP connection
ted
Accep

OK, send HTTP request GET /index


.html
Send HTTP
html
Parse index.html: has 10 index. response: index.html
reference to 10 images
GET…
request images 1
pg Send images 1
img1.j

request images 2 GET…

Send images 2
Stop-and- Pipeline
request images 10 wait! 20

Time Time
CuuDuongThanCong.com https://fb.com/tailieudientucntt
HTTP/1.1 với pipeline
Web client Web server

Init TCP connection TCP C


onn. R
eq.
Accept TCP connection
ted
Accep

OK, send HTTP request GET /index


.html
Send HTTP
html
Parse index.html: has 10 index. response: index.html
reference to 10 images
GET…
request images 1 -10
Send images 1-10

21

Time Time
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các phương thức trong thông
ñiệp yêu cầu
HTTP/1.0 HTTP/1.1
 GET  GET, POST, HEAD

 POST  PUT

 HEAD  tải file lên máy chủ, ñường


 yêu cầu máy chủ loại một dẫn chỉ ra trong URL, file
số ñối tượng ra khỏi thông ñể trong body
ñiệp trả lời  DELETE
 Xóa file chỉ ra bới ñường
dẫn

Lưu ý: Có 2 cách ñể gửi tham số ñến server: POST hoặc GET


http://www.google.com/search?q=computer+network&flags=68&num=10

22

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Mã trạng thái trả lời
Trong dòng ñầu tiên của thông ñiệp trả lời, ví dụ

200 OK
 request succeeded, requested object later in
this message
301 Moved Permanently
 requested object moved, new location specified
later in this message (Location:)
400 Bad Request
 request message not understood by server
404 Not Found
 requested document not found on this server
505 HTTP Version Not Supported
23

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bộ ñệm- Caching
www.xyz.com/index.htm
 “Cache”: Bộ nhớ ñệm
 Khái niệm bộ nhớ cache
trong máy tính
 L1 cache, L2 cache
 “cache miss”, “cache hit”
 Xem xét trường hợp sau:
 Một tổ chức có một ñường
nối tới Internet
 Tất cả lưu lượng truy cập
web ñều ñi qua liên kết này
 Nhiều NSD web có thể
cùng truy nhập tới cùng một
nội dung
 Giải pháp cải tiến?
24

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Sử dụng bộ ñệm web - proxy

 NSD ñặt tham số kết nối


truy cập web của trình Web
duyệt qua một máy chủ server
proxy
HT Proxy
 trình duyệt gửi yêu cấu T Pr server q ues t
eq u e
ñến proxy clientHTTP est T Pr nse
HT po
r es
pon P r es
 Miss: Proxy gửi yêu cầu se HT
T
tới máy chủ web, trả lời est
u
eq
trình duyệt và lưu ñệm T P r
on se
HT p
r es
ñối tượng web TP
HT
 Hit: Proxy trả ñối tượng
web cho trình duyệt client

25

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Web caches
 Proxy: Vừa là client, vừa là server
 Sử dụng bởi các ISP nhỏ, các tổ chức như trường
học, công ty…
 Ảnh hưởng của proxy
 Làm giảm lưu lượng web trên ñường ra Internet
 Có thể làm giảm thời gian ñáp ứng
 Thử phân tích vài trường hợp
 cache hit

 cache miss

 proxy bị quá tải

 Trang web thay ñổi/trang web ñộng?


26

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Local cache
 Các trang web còn có thể ñược lưu trên máy
cục bộ
 Sử dụng local cache ñể
 Duyệt web offline
 Duyệt các trang web hiệu quả hơn:

27

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Phương thức GET có ñiều kiện
proxy server
 Mục ñích: Máy chủ sẽ
không gửi ñối tượng web HTTP request msg
nếu proxy còn lưu giữ thông If-modified-since: <date>
object
tin cập nhật not
 Proxy: chỉ ra thời gian cũ HTTP response
modified
của ñối tượng HTTP/1.0
304 Not Modified
If-modified-since: <date>
 server: Xác nhận lại có thay
HTTP request msg
ñổi hay không: If-modified-since: <date>
HTTP/1.0 304 Not Modified object
modified
HTTP response
HTTP/1.0 200 OK
<data>
28

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Quiz
 Hãy cho biết liên kết TCP ñược thiết lập giữa
các máy ntn trong trường hợp dùng web
proxy?
 Hình vẽ?

29

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Case study 2: Email

30

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thư ñiện tử
 MUA (Mail User Agent)  Giao thức:
 Lấy thư từ máy chủ, gửi thư ñến  Chuyển thư: STMP-Simple
máy chủ
Mail Transfer Protocol
 e.g. Outlook, Thunderbird…
 nhận thư
 MTA (Mail Transfer Agent): :
 Chứa hộp thư ñến của NSD (mail  POP – Post Office Protocol
box)  IMAP – Internet Mail
 Hàng ñợi ñể gửi thư ñi Access Protocol
 e.g. Sendmail, MS Exchange…

IMAP IMAP
mail mail
POP POP
user server server user
SMTP
agent agent
SMTP SMTP 31

Mail box Message queue


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Giao thức SMTP
 RFC 2821
 TCP, port 25: Chuyển thư từ client ñến server và
giữa các server với nhau
 Tương tác yêu cầu/trả lời
 Yêu cầu: Lệnh với mã ASCII

 Trả lời: mã trạng thái và dữ liệu

32

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các giao thức nhận thư
SMTP SMTP access user
user
agent protocol agent

sender’s mail receiver’s mail


server server

 POP: Post Office Protocol [RFC 1939]


 ðăng nhập và lấy hết thư về

 IMAP: Internet Mail Access Protocol [RFC 1730]


 Phức tạp hơn POP

 Cho phép lưu trữ và xử lý thư trên máy chủ

 Quota?
33

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Web Mail
 Sử dụng Web browser như một MUA
 MUA và MTA giao tiếp thông qua HTTP
 Mails ñược lưu trữ trên máy chủ
 E.g.
 Gmail,
 Hotmail,
 Yahoo! Mail, etc.
 Ngày nay, rất nhiều các MTA cho phép truy cập
thông qua giao diện web
 http://mail.hut.edu.vn
 http://mail.fit.hut.edu.vn
34

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Khuôn dạng thông ñiệp thư ñiện
tử
SMTP: Giao thức ñể truyền
thư
header
blank
RFC 822: ðịnh nghĩa khuôn line
dạng
 Phần ñầu
body
 To:
 From:
 Subject:
 Phần thân
 mã hóa dưới dạng mã
ASCII

35

CuuDuongThanCong.com https://fb.com/tailieudientucntt
ðể chuyển dữ liệu ña phương tiện:
multimedia extensions
 MIME: multimedia mail extension, RFC 2045, 2056
 Thêm một dòng trong phần ñầu chỉ rõ khuôn dạng dữ
liệu gửi ñi

From: alice@crepes.fr
MIME version To: bob@hamburger.edu
Subject: Picture of yummy crepe.
method used MIME-Version: 1.0
to encode data Content-Transfer-Encoding: base64
Content-Type: image/jpeg
multimedia data
type, subtype, base64 encoded data .....
parameter declaration .........................
......base64 encoded data
encoded data

36

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Case Study 3
Ứng dụng truyền tệp

37

CuuDuongThanCong.com https://fb.com/tailieudientucntt
FTP: File Transfer Protocol

TCP control
connection, port 21
user FTP FTP
interface client server
TCP data
user connection, port 20

local file system remote file system

 Mô hình Client-server  ðiều khiển Out-of-band :


 Trao ñổi file giữa các máy  Lệnh của FTP : cổng 21
 Dữ liệu: cổng 20
 RFC 959
 NSD phải ñăng nhập trước khi
 Sử dụng TCP, cổng 20, 21
truyền file
 Một số server cho phép NSD
với tên là anonymous 38

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lệnh và mã trả lời
Một số ví dụ Ví dụ về mã trả lời
 USER username  331 Username OK,
password required
 PASS password  125 data connection
 LIST : trả về danh sách already open; transfer
starting
file
 425 Can’t open data
 RETR filename Lấy file connection
 STOR filename ðặt file  452 Error writing file
lên máy chủ

39

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ về ftp client
Command line

C:\Documents and Settings\hongson>ftp


ftp> ?
Commands may be abbreviated. Commands are:

! delete literal prompt send


? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir

GUI FTP clients: IE, Firefox, GFTP, …. 40

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Tóm tắt
 Mô hình ứng dụng
 Client-server vs. P2P
 Một số ứng dụng và giao thức
 HTTP
 Mail
 FTP
 Về nhà, hãy tìm hiểu thêm
 P2P
 ……
 Giao diện lập trình Socket
41

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Buổi học tới: Data-link Layer
 Các nguyên lý tầng Data-link
 Mạng LAN

42

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Acknowledgment
 Bài giảng có sử dụng các tư liệu và hình vẽ
từ:
 Tài liệu của trường ñại học Keio và Ritsumekan
 Tài liệu “Computer Network, a top down
approach” của J.F Kurose và K.W. Ross

43

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like