L p Applicationớ 1
Ch ng 2ươ
L p Applicationớ
Computer Networking:
A Top Down Approach
Featuring the Internet
,
3
rd
edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.
All material copyright 1996-2006
J.F Kurose and K.W. Ross, All Rights Reserved
Slide này được biên dịch sang tiếng Việt theo
sự cho phép của các tác giả
L p Applicationớ 2
Ch ng 2: N i dung trình bàyươ ộ
2.1 Các nguyên lý c a ủ
ng d ng m ngứ ụ ạ
2.2 Web và HTTP
2.3 FTP
2.4 Electronic Mail
SMTP, POP3, IMAP
2.5 DNS
2.6 Chia s file P2Pẻ
2.7 L p trình socket ậ
v iTCPớ
2.8 L p trình socket v i ậ ớ
UDP
2.9 Xây d ng m t Web ự ộ
server
L p Applicationớ 3
Ch ng 2: L p Applicationươ ớ
M c tiêu:ụ
Khái ni m, các khía ệ
c nh hi n th c c a ạ ệ ự ủ
các giao th c ng ứ ứ
d ng m ngụ ạ
Các mô hình d ch ị
v l p transportụ ớ
Mô hình client-
server
Mô hình peer-to-peer
Nghiên c u giao th c ứ ứ
thông qua xem xét
m t s giao th c l p ộ ố ứ ớ
application
HTTP
FTP
SMTP / POP3 / IMAP
DNS
L p trình ng d ng ậ ứ ụ
m ngạ
socket API
L p Applicationớ 4
M t s ng d ng m ngộ ố ứ ụ ạ
E-mail
Web
Tin nh n nhanhắ
Đăng nh p t xaậ ừ
Chia s file P2Pẻ
Trò ch i nhi u ng i ơ ề ườ
trên m ngạ
Streaming các video
clips
Đi n tho i Internetệ ạ
H i th o video th i ộ ả ờ
gian th cự
Tính toán l n, tính ớ
toán song song
L p Applicationớ 5
T o m t ng d ng m ngạ ộ ứ ụ ạ
Vi t ch ng trình đ :ế ươ ể
ch y trên các h th ng ạ ệ ố
đ u cu i khác, vàầ ố
truy n thông qua m ngề ạ
Ví d : Web: ph n m m ụ ầ ề
Web server truy n thông ề
v i ph n m m trình duy tớ ầ ề ệ
Ph n m m nh vi t cho các ầ ề ỏ ế
thi t b trung tâm m ngế ị ạ
các thi t b trung tâm ế ị
m ng không ch y các mã ạ ạ
ng d ng c a ng i dùngứ ụ ủ ườ
ng d ng trên các h ứ ụ ệ
th ng đ u cu i cho phép ố ầ ố
phát tri n ng d ng nhanh, ể ứ ụ
ph bi nổ ế
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
2.1 Các nguyên lý c a ng ủ ứ
d ng m ngụ ạ
L p Applicationớ 6
L p Applicationớ 7
Các ki n trúc c a ng d ngế ủ ứ ụ
Client-server
Peer-to-peer (P2P)
Lai gi a client-server và P2Pữ
L p Applicationớ 8
Ki n trúc client-serverế
server:
host luôn ho t đ ngạ ộ
đ a ch IP c đ nhị ỉ ố ị
nhóm các server đ chia ể
s công vi cẻ ệ
clients:
truy n thông v i serverề ớ
có th k t n i không ể ế ố
liên t cụ
có th có ể đ a ch IP ị ỉ
thay đ iổ
không truy n thông ề
tr c ti p v i client khácự ế ớ
L p Applicationớ 9
Ki n trúc P2P thu n túyế ầ
không có server luôn
ho t đ ngạ ộ
truy n thông tr c ti p ề ự ế
v i h th ng đ u cu i ớ ệ ố ầ ố
b t kỳấ
các đi m k t n i không ể ế ố
liên t c và thay đ i đ a ụ ổ ị
ch IPỉ
Ví d : Gnutellaụ
Đ linh ho t cao nh ng khó ộ ạ ư
qu n lýả
L p Applicationớ 10
Lai gi a client-server và P2Pữ
Skype
ng d ng đi n tho i Internetứ ụ ệ ạ
Tìm đ a ch c a thành viên xa: server trung tâmị ỉ ủ ở
K t n i tr c ti p Client-client (không thông qua server) ế ố ự ế
Tin nh n nhanhắ
Chat gi a 2 user là P2Pữ
Mô hình client-server:
• User đăng ký đ a ch IP c a h v i server trung tâm khi ị ỉ ủ ọ ớ
tr c tuy nự ế
•
User ti p xúc v i server trung tâm đ tìm đ a ch IP c a ế ớ ể ị ỉ ủ
b nạ
L p Applicationớ 11
Ti n trình truy n thôngế ề
Ti n trình:ế ch ng trình ươ
ch y bên trong 1 host.ạ
trong cùng host, 2 ti n ế
trình truy n thông dùng ề
truy n thông n i b ề ộ ộ (do
h đi u hành xác đ nh).ệ ề ị
các ti n trình trong các ế
host khác nhau truy n ề
thông b ng cách trao ằ
đ i ổ các thông đi pệ
Ti n trình Client:ế ti n ế
trình kh i t o truy n ở ạ ề
thông
Ti n trình Server:ế ti n ế
trình ch đ đ c ti p ờ ể ượ ế
xúc
Chú ý: các ng d ng v i ứ ụ ớ
ki n trúc P2P có c các ế ả
ti n trình client và ế
server.
L p Applicationớ 12
Sockets
các ti n trình g i/nh n ế ử ậ
các thông đi p đ n/t ệ ế ừ
socket c a nóủ
socket t ng t nh c aươ ự ư ử
ti n trình g i đ y thông ế ử ẩ
đi p ra ngoài c aệ ử
ti n trình nh n ph thu c ế ậ ụ ộ
vào h t ng l u thông mang ạ ầ ư
thông đi p đ n socket ệ ế
thích h pợ
process
TCP với
bộ đệm,
các biến
socket
Host /
server
process
TCP với
bộ đệm,
các biến
socket
host /
server
Internet
điều khiển
bởi hệ điều
hành
điều khiển
bởi người
phát triển
ứng dụng
API: (1) l a ch n giao th c v n chuy n; (2) kh năng ự ọ ứ ậ ể ả
ch nh s a m t vài tham s ỉ ử ộ ố (xem ph n sau)ầ
L p Applicationớ 13
Ti n trình đ nh đ a chế ị ị ỉ
đ nh n đ c thông ể ậ ượ
đi p, ti n trình ph i có ệ ế ả
nhân d ng (identifier)ạ
thi t b host ph i có ế ị ả
đ a ch IP duy nh tị ỉ ấ
Đ a ch IP mà trên đó ị ỉ
ti n trình đang ch y có ế ạ
đ đ nh n d ng ti n ủ ể ậ ạ ế
trình?
KHÔNG, nhi u ti n trình ề ế
có th ch y trên cùng 1 ể ạ
host
Nhân d ng ạ
bao g m c ồ ả
đ a ch IP ị ỉ và các s c ng ố ổ
(port) liên k t v i ti n ế ớ ế
trình trên host.
Ví d v s port:ụ ề ố
HTTP server: 80
Mail server: 25
Đ g i thông đi p HTTP ể ử ệ
cho web server
gaia.cs.umass.edu :
IP address: 128.119.245.12
Port number: 80
L p Applicationớ 14
Đ nh nghĩa giao th c l p ng ị ứ ớ ứ
d ngụ
các ki u c a trao đ i ể ủ ổ
thông đi pệ
Ví d : yêu c u, đáp ngụ ầ ứ
Cú pháp thông đi p:ệ
Các tr ng nào trong ườ
thông đi p và làm sao mô ệ
t ?ả
Ng nghĩa thông đi p ữ ệ
Ý nghĩa c a thông tin ủ
trong các tr ngườ
Các quy t c đ khi nào ắ ể
và làm sao các ti n ế
trình g i và đáp ng các ử ứ
thông đi pệ
Các giao th c Public-ứ
domain:
Đ nh nghĩa trong RFCị
Cho phép c ng tácộ
Ví d : HTTP, SMTPụ
Các giao th c đ c quy n:ứ ộ ề
Ví d : KaZaAụ
L p Applicationớ 15
D ch v v n chuy n nào ng d ng không ị ụ ậ ể ứ ụ
c nầ
M t mát d li u ấ ữ ệ
m t s ng d ng (vd: ộ ố ứ ụ
audio) có kh năng ch u l iả ị ỗ
các ng d ng khác (vd: ứ ụ
truy n file, telnet) yêu ề
c u d li u tin c y 100%ầ ữ ệ ậ
Đ nh thìị
m t s ng d ng (vd: ộ ố ứ ụ
đi n tho i Internet, ệ ạ
trò ch i t ng tác) ơ ươ
yêu c u đ tr th p ầ ộ ễ ấ
đ đ t hi u quể ạ ệ ả
Bandwidth (băng thông)
m t s ng d ng (vd: ộ ố ứ ụ
đa ph ng ti nươ ệ ) yêu
c u ầ băng thông đ đ t ể ạ
hi u quệ ả
các ng d ng khác m m ứ ụ ề
d o h n có th dùng ẻ ơ ể
b t kỳ băng thông nào ấ
cũng đ cượ
L p Applicationớ 16
M t s yêu c u đ i v i các ng d ng ph bi nộ ố ầ ố ớ ứ ụ ổ ế
Application
Truyền file
e-mail
Web
audio/video
thời gian thực
audio/video đã lưu
Trò chơi tương tác
Tin nhắn nhanh
Data loss
không
không
Không
chịu lỗi
chịu lỗi
chịu lỗi
không
Bandwidth
mềm dẻo
mềm dẻo
mềm dẻo
audio: 5kbps-1Mbps
video:10kbps-5Mbps
Như trên
Một vài kbps
mềm dẻo
Time Sensitive
không
không
không
có, 100 mili giây
có, một vài giây
có, 100 mili giây
Có và không
L p Applicationớ 17
Các d ch v giao th c Internet ị ụ ứ
transport
TCP:
connection-oriented:
c n ầ
thi t l p ti n trình gi a ế ậ ế ữ
client và server
V n chuy n tin c y: ậ ể ậ
gi a ti n ữ ế
trình g i và nh nử ậ
Đi u khi n lu ng:ề ể ồ
ng i g i ườ ử
s không l n át ng i nh nẽ ấ ườ ậ
Đi u khi n t c ngh n:ề ể ắ ẽ
đi u ề
ti t ng i g i khi m ng quá ế ườ ử ạ
t iả
Không h tr :ỗ ợ
đ nh thì, b o ị ả
đ m băng thông t i thi uả ố ể
UDP:
truy n d li u không tin ề ữ ệ
c y gi a g i và nh nậ ữ ử ậ
Không h tr : thi t l p ỗ ợ ế ậ
k t n i, tin c y, đi u ế ố ậ ề
khi n lu ng, đi u khi n ể ồ ề ể
t c ngh n, đ nh thì, b o ắ ẽ ị ả
đ m băng thông t i thi uả ố ể
Th thì sinh ra UDP đ làm ế ể
gì?
L p Applicationớ 18
Các giao th c l p application, transportứ ớ
Application
e-mail
Truy cập terminal từ xa
Web
Truyền file
streaming multimedia
Điện thoại Internet
Giao thức lớp
Application
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
độc quyền
(vd: RealNetworks)
độc quyền
(vd: Vonage,Dialpad)
Giao thức dưới lớp
transport
TCP
TCP
TCP
TCP
TCP / UDP
UDP
2.2 Web và HTTP
L p Applicationớ 19
L p Applicationớ 20
Web và HTTP
M t s thu t ng chuyên mônộ ố ậ ữ
Web page (trang Web) bao g m các ồ objects (đ i ố
t ng)ượ
Đ i t ng có th là file HTML, hình nh JPEG ố ượ ể ả
image, Java applet, file audio,…
Trang Web file HTML c b n s ch a m t s đ i ơ ả ẽ ứ ộ ố ố
t ng có tham chi uượ ế
M i đ i t ng có th đ nh đ a ch b ng m t ỗ ố ượ ể ị ị ỉ ằ ộ URL
Ví d URL:ụ
www.someschool.edu/someDept/pic.gif
Tên host
Tên đ ng d nườ ẫ
L p Applicationớ 21
T ng quan HTTPổ
HTTP: hypertext
transfer protocol
Giao th c l p ng d ng c a ứ ớ ứ ụ ủ
Web
Mô hình client/server
Client:
trình duy t yêu ệ
c u, nh n và hi n th ầ ậ ể ị
các đ i t ng Webố ượ
Server:
Web server g i ử
các đ i t ng đáp ng ố ượ ứ
cho yêu c uầ
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068
PC ch yạ
Explorer
Server
ch yạ
Apache Web
server
Mac ch yạ
Navigator
Y
ê
u
c
u
H
T
T
P
ầ
Y
ê
u
c
u
H
T
T
P
ầ
Đ
á
p
n
g
H
T
T
P
ứ
Đ
á
p
n
g
H
T
T
P
ứ
L p Applicationớ 22
T ng quan HTTPổ
Dùng TCP:
client kh i t o k t n i TCP ở ạ ế ố
(t o socket) đ n server, ạ ế
port 80
server ch p nh n k t n i ấ ậ ế ố
TCP t clientừ
Các thông đi p HTTP (thông ệ
đi p giao th c l p ệ ứ ớ
application) trao đ i gi a ổ ữ
trình duy t (HTTP client) và ệ
Web server (HTTP server)
Đóng k t n i TCPế ố
HTTP là “không tr ng ạ
thái”
server không gi thông ữ
tin v các yêu c u ề ầ
tr c đó c a clientướ ủ
Các giao th c nào gi “tr ng ứ ữ ạ
thái” là ph c t p!ứ ạ
l ch s quá kh (tr ng ị ử ứ ạ
thái) ph i gi l iả ữ ạ
n u server/client b s c , ế ị ự ố
cách nhìn c a nó v “tr ng ủ ề ạ
thái” mâu thu n, ph i đ c ẫ ả ượ
đi u ch nh ề ỉ
v n đ liên quanấ ề
L p Applicationớ 23
Các k t n i HTTPế ố
HTTP không b n v ngề ữ
Ch có t i đa là 1 đ i ỉ ố ố
t ng đ c g i qua 1 ượ ượ ử
k t n i TCP.ế ố
HTTP/1.0 dùng HTTP
không b n v ngề ữ
HTTP b n v ngề ữ
Nhi u đ i t ng có ề ố ượ
th đ c g i qua 1 k t ể ượ ử ế
n i TCP đ n gi a client ố ơ ữ
và server.
HTTP/1.1 m c nhiên ặ
dùng HTTP b n v ngề ữ
L p Applicationớ 24
HTTP không b n v ngề ữ
Gi s user nh p vào URL nh sau: ả ử ậ ư
www.someSchool.edu/someDepartment/home.index
1a. HTTP client kh i t o k t n i ở ạ ế ố
TCP connection đ n HTTP ế
server (ti n trình) t i ế ạ
www.someSchool.edu trên port
80
2. HTTP client g i HTTP ử
thông
đi p yêu c uệ ầ
(ch a URL) vào ứ
trong socket k t n i TCP. ế ố
Thông đi p ch r ng client ệ ỉ ằ
mu n các đ i t ng ố ố ượ
someDepartment/home.index
1b. HTTP server t i host ạ
www.someSchool.edu ch k t ờ ế
n i TCP t i port 80. “ch p ố ạ ấ
nh n” k t n i, thông báo cho ậ ế ố
client
3. HTTP server nh n thông đi p ậ ệ
yêu c u, đ nh d ng ầ ị ạ
thông đi p ệ
đáp ng ứ
ch a đ i t ng đ c ứ ố ượ ượ
yêu c u và g i thông đi p vào ầ ử ệ
trong socket c a nóủ
Th i gianờ
(chứa text,
tham chiếu đến
10 hình)
L p Applicationớ 25
HTTP không b n v ngề ữ
5. HTTP client nh n thông đi p ậ ệ
đáp ng ch a file HTML, hi n ứ ứ ể
th nó. Phân tích cú pháp html ị
file, tìm ra 1 tham chi u đ n ế ế
đ i t ng jpegố ượ
6. L p l i các b c t 1-5 cho ặ ạ ướ ừ
các đ i t ng jpeg khácố ượ
4. HTTP server đóng k t n i ế ố
TCP.
time