Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng (Phần 1) - Hồ Phương Đắc
Chương 2ꢀ:ꢀTꢁng ꢂng Dꢃng
Mꢃc tiêu:
ꢀ ðꢄnh nghĩa,ꢀHoꢅt ñꢆng các giao
Sꢄ hꢅc cái gì ?
ꢀ Các giao thꢇc cꢃ thꢌ:ꢀ
o HTTP
thꢇc trong tꢁng ꢂng dꢃng.
o Mô hình Khách hàng ꢈ
Ngưꢉi phꢃc vꢃ (clientꢈ
server)
o FTP
o SMTP
o POPꢀ
o DNS
o Mô hình ñꢊng ñꢋng
o Tìm hiꢌu mꢆt sꢍ giao thꢇc
tꢁng ꢂng dꢃng thông quaꢀ
các ví dꢃ cꢃ thꢌ.
o MSN,ꢀGnutella
ꢀ Lꢎp trình các ꢇng dꢃng mꢅng :ꢀ
socketꢀAPI
2:ꢀTꢁng ꢂng dꢃng
1
Trình ꢂng dꢃng và Giao thꢆc tꢁng ꢂng dꢃng
application
Trình ꢆng dꢃng :ꢀCác tiꢏn trình phân
transport
network
tán truyꢐn thông vꢑi nhau
dataꢀlink
physical
o Chꢅy trên các thiꢏt bꢄ ñꢁu cuꢍi
o Trao ñꢒi thông ñiꢓp vꢑi nhau.
o email,ꢀFTP,ꢀWeb
Giao thꢆc tꢁng ꢆng dꢃng
o Là mꢆt phꢁn cꢔa trình ꢇng
dꢃng.
o Xác ñꢄnh thông ñiꢓp trao ñꢒi
application
application
transport
giꢕa các ꢇng dꢃng.
transport
network
dataꢀlink
physical
network
dataꢀlink
physical
o Sꢖ dꢃng dꢄch vꢃ truyꢐn thông
doꢀgiao thꢇc tꢁng dưꢑi (TCP,ꢀ
UDP)ꢀcung cꢗp.
2:ꢀTꢁng ꢂng dꢃng
2
Mꢇt sꢈ thuꢉt ngꢊ
ꢀ Userꢀagent:ꢀphꢁn mꢐm
ꢀ Tiꢋn trình : là chương
trình chꢅy trên thiꢏt bꢄ
ñꢁu cuꢍi.
ꢀ Trên cùng máy tính,ꢀhai
tiꢏn trình có thꢌ truyꢐn
thông vꢑi nhau thông quaꢀ
truyꢌn thông liên tiꢋn
trìnhꢀ(HðHꢀquꢘn lý).
ñóng vai trò giao diꢓn
giꢕa ngưꢉi dùng và
mꢅng.ꢀ
o Cài ñꢙt Giao thꢇc
tꢁng ꢂng dꢃng.
o Web:ꢀbrowser
o Eꢈmail:ꢀmailꢀreader
ꢀ Các tiꢏn trình chꢅy trên
các máy tính khác nhau :ꢀ
tuân thꢔ giao thꢇc tꢁng
ꢇng dꢃng.
o streamingꢀ
audio/video:ꢀmediaꢀ
player
2:ꢀTꢁng ꢂng dꢃng
3
Mô hình ClientꢍServer
ꢂng dꢃng gꢊm hai thành phꢁn :ꢀ
Client và Server
application
transport
network
dataꢀlink
physical
Client:
Yêu cꢀu
ꢀ Khꢚi tꢅo giao tiꢏp vꢑi serverꢀ
(“speaksꢀfirst”)
ꢀ Yêu cꢁu dꢄch vꢃ tꢛ server.
ꢀ Webꢀ:ꢀclientꢀnhꢎn và hiꢌn thꢄ webꢀ
Trꢁ lꢂi
pageꢀ;ꢀeꢈmail:ꢀcác trình ñꢜc thư.
application
transport
network
dataꢀlink
physical
Server:
ꢀ Cung cꢗp dꢄch vꢃ theo yêu cꢁu tꢛ
Client
ꢀ Webꢀserverꢀgꢖi Webꢀpage,ꢀMailꢀ
serverꢀgꢖi và nhꢎn Eꢈmail
2:ꢀTꢁng ꢂng dꢃng
4
Giao thꢆc tꢁng ꢂng dꢃng
API:ꢀApplicationꢀ
Vꢀy thì Phân biꢓt các tiꢏn
trình bꢝng cách nào?
ProgrammingꢀInterface
o ðꢎa chꢏ IP cꢔa máy.
ꢀ Là giao diꢓn giꢕa tꢁng ꢂng
dꢃng và tꢁng Giao vꢎn.
o Sꢈ hiꢐu Cꢑng – cho
phép bên máy tính nhꢎn
xác ñꢄnh tiꢏn trình nào
nhꢎn thư.
ꢀ Socketꢀ:ꢀInternetꢀAPI
o Hai tiꢏn trình truyꢐn
thông bꢝng cách
gꢖi/nhꢎn dꢕ liꢓu vào/tꢛ
socket.
Còn tiꢁp …
2:ꢀTꢁng ꢂng dꢃng
5
ꢂng dꢃng cꢁn Dꢎch vꢃ Giao vꢉn gì?
Mꢒt mát dꢊ liꢐu (Dataꢀloss)
Băng thông (Bandwidth)
ꢀ Mꢆt sꢍ ꢇng dꢃng có thꢌ chꢗp
ꢀ Mꢆt sꢍ ꢇng dꢃng (ña phương
tiꢓn)ꢀyêu cꢁu băng thông tꢍi
thiꢌu ñꢌ có thꢌ hoꢅt ñꢆng
ñưꢡc.
nhꢎn mꢆt sꢍ mꢗt mát.
ꢀ Mꢆt sꢍ ꢇng dꢃng lꢅi ñòi hꢞi
100%ꢀdꢕ liꢓu truyꢐn tinꢀcꢎy
(web).
ꢀ Mꢆt sꢍ ꢇng dꢃng khác có thꢌ
sꢖ dꢃng bꢗt cꢇ băng thông
nào ñưꢡc cꢗp phát.
Thꢓi gian (Timing)
ꢀ Mꢆt sꢍ ꢇng dꢃng (hꢆi thoꢅi
quaꢀInternet,ꢀcác trò chơi
trꢟc tuyꢏn)ꢀñòi hꢞi ñꢆ trꢠ
thꢗp.
2:ꢀTꢁng ꢂng dꢃng
6
Yêu cꢁu vꢔi mꢇt sꢈ ꢂng dꢃng cꢃ thꢕ
Thꢂi gian
ꢃng dꢄng Mꢅt mát
Băng thông
Không
Không
Không
Truyꢀn file Không
Thư tín ñiꢁn tꢂ Không
Web Có thꢈ
Coꢅdãn
Coꢅdãn
Coꢅdãn
Có,ꢅ100’sꢅmsec
ða phương tiꢁn Có thꢈ
Thꢃi gian thꢄc
storedꢅaudio/video Chꢉp nhꢊn
Trò chơi tương tác Chꢉp nhꢊn
ꢆng dꢇng Tài chính Không
audio:ꢅ5Kbꢋ1Mb
video:10Kbꢋ5Mb
sameꢅasꢅaboveꢅ
fewꢅKbpsꢅup
Coꢅdãn
Có,ꢅfewꢅsecs
Có,ꢅ100’sꢅmsec
Không xác ñꢌnh
2:ꢀTꢁng ꢂng dꢃng
7
Dꢎch vꢃ Giao thꢆc Giao vꢉn Internet
Dꢎch vꢃ UDP:
Dꢎch vꢃ TCP:
ꢀ Truyꢐn dꢕ liꢓu không tinꢀ
cꢎy giꢕa các tiꢏn trình gꢖi
và nhꢎn.
ꢀ Hưꢂng nꢃi : Yêu cꢁu thiꢏt lꢎp
kꢏt nꢍi giꢕa clientꢀvà server.
ꢀ Truyꢄn dꢅ liꢆu tinꢇcꢀy giꢕa
ꢀ Không hꢖ trꢗ : thiꢏt lꢎp
kꢏt nꢍi,ꢀñꢆ tinꢀcꢎy,ꢀñiꢐu
khiꢌn lưu lưꢡng,ꢀkiꢌm soát
tꢤc nghꢢn,ꢀthꢉi gian,ꢀbăng
thông tꢍi thiꢌu.
tiꢏn trình gꢖi và nhꢎn
ꢀ ðiꢄu khiꢈn lưu lưꢉng :ꢀbên
gꢖi sꢢ không làm “lꢃt” bên
nhꢎn.
ꢀ Kiꢈm soát tꢊc nghꢋn: ñiꢐu
chꢣnh tꢍc ñꢆ gꢖi khi mꢅng quá
tꢘi.
Tꢁi sao mꢂt sꢃ ꢄng dꢅng sꢆ
dꢅng UDP
ꢀ Không hꢖ trꢗ :ꢀthꢉi gian,ꢀbăng
thông tꢍi thiꢌu.
2:ꢀTꢁng ꢂng dꢃng
8
Các ꢆng dꢃng trên Internetꢀvà giao thꢆc giao vꢉn
tương ꢆng
Giao thꢆc
ꢃng dꢄng
Giao thꢆc Giao vꢇn
tương ꢆng
ꢃng dꢄng
SMTPꢅ[RFCꢅ821]
telnetꢅ[RFCꢅ854]
HTTPꢅ[RFCꢅ2068]
FTPꢅ[RFCꢅ959]
ðꢑc quyꢀn
Thư tín ðiꢁn tꢂ
Truy cꢊp tꢍ xa
Webꢅ
TCP
TCP
TCP
TCP
Truyꢀn file
ða phương tiꢁn luꢎng
TCPꢅhoꢒc UDP
(vd.ꢅRealNetworks)
NSF
ðꢑc quyꢀn
fileꢅserverꢅꢏ xa
ðiꢁn thoꢐi Internet
TCPꢅhoꢒc UDP
Thưꢃng là UDP
(vd.ꢅVocaltec)
2:ꢀTꢁng ꢂng dꢃng
9
Giao thꢆc Webꢀ:ꢀHTTP
HTTP:ꢀGiao thꢆc truyꢌn siêu văn
bꢘn.
ꢀ Là giao thꢇc tꢁng ꢇng dꢃng cho ꢇng PCꢀsꢖ dꢃng
dꢃng Web.
Explorer
ꢀ Sꢖ dꢃng mô hình client/server
o client: browserꢀyêu cꢁu,ꢀnhꢎn,ꢀ
hiꢌn thꢄ các ñꢍi tưꢡng Web.
Serverꢀ
sꢖ dꢃng
NCSAꢀWeb
server
o server: Webꢀserverꢀgꢖi các ñꢍi
tưꢡng khi có yêu cꢁu
ꢀ HTTP1.0ꢀ:ꢀRFCꢀ1945
Macꢀsꢖ dꢃng
Navigator
ꢀ HTTP1.1ꢀ:ꢀRFCꢀ2068
2:ꢀTꢁng ꢂng dꢃng
10
Giao thꢆc HTTP
HTTPꢀlà giao thꢆc “không
HTTPꢀsꢙ dꢃng giao thꢆc TCP.
trꢚng thái”
ꢀ serverꢀkhông lưu lꢅi
thông tinꢀvꢐ yêu cꢁu cꢔa
client
ꢀ Clientꢀkhꢚi tꢅo kꢏt nꢍi TCPꢀ
(socket)ꢀtꢑi serverꢀquaꢀcꢒng 80
Giao thꢌc lưu lꢍi trꢍng rꢎt
phꢌc tꢍp !
ꢀ Serverꢀchꢗp nhꢎn kꢏt nꢍi TCPꢀtꢛ
Client
ꢀ Các trꢅng thái trưꢑc ñây
phꢘi ñưꢡc lưu lꢅi (tꢍn bꢆ
nhꢑ).
ꢀ Các thông ñiꢓp HTTPꢀ:ꢀtrao ñꢒi
giꢕa Browserꢀ(HTTPꢀclient)ꢀvà
Webꢀserverꢀ(HTTPꢀserver)
ꢀ Nꢏu kꢏt nꢍi server/clientꢀbꢄ
gián ñoꢅn,ꢀtrꢅng thái trên
chúng có thꢌ sai khác =>ꢀ
cꢁn cơ chꢏ ñiꢐu chꢣnh lꢅi
ꢀ ðóng kꢏt nꢍi TCP.
2:ꢀTꢁng ꢂng dꢃng
11
Ví dꢃ vꢐ HTTP
Bꢅn ñánh ñꢄa chꢣ trên trình duyꢓt
(bao gꢊm fileꢀHTMLꢀ
tham chiꢏu tꢑi 10ꢀ
ꢘnh JPEG)
1a. HTTPꢀclientꢀkhꢚi tꢅo kꢏt nꢍi
TCPꢀtꢑi HTTPꢀserverꢀtꢅi ñꢄa
1b. HTTPꢀserverꢀꢚ ñꢄa chꢣ
Cꢒng mꢙc ñꢄnh là 80.
kꢏt nꢍi TCPꢀꢚ cꢒng 80,ꢀꢀchꢗp
nhꢎn kꢏt nꢍi,ꢀthông báo lꢅi
cho client.
2. HTTPꢀclientꢀgꢖi thông ñiꢓp
HTTPꢀyêu cꢁu (bao gꢊm
URL)ꢀquaꢀkꢏt nꢍi TCPꢀvꢛa
thiꢏt lꢎp
3. HTTPꢀserverꢀnhꢎn thông ñiꢓp yêu
cꢁu,lꢗy các ñꢍi tưꢡng ñưꢡc yêu
cꢁu gꢖi vào trong thông ñiꢓp trꢘ
lꢉi,ꢀ
(someDepartment/home.index)ꢀ
gꢖi thông ñiꢓp vào socket
Thꢉi gian
2:ꢀTꢁng ꢂng dꢃng
12
Ví dꢃ vꢌ HTTP
4. HTTPꢀserverꢀñóng kꢏt nꢍi
TCP.
5. HTTPꢀclientꢀnhꢎn thông ñiꢓp
trꢘ lꢉi bao gꢊm tꢓp html,ꢀ
hiꢌn thꢄ html.Phân tích tꢓp
htmlꢀfile,ꢀtìm 10ꢀjpegꢀñꢍi
tưꢡng ñưꢡc tham chiꢏu
Thꢉi gian
6. Các bưꢑc tꢛ 1ꢀñꢏn 5ꢀñưꢡc lꢙp
lꢅi cho tꢛng ñꢍi tưꢉng trong
10ꢀñꢍi tưꢡng jpeg
2:ꢀTꢁng ꢂng dꢃng
13
Kꢋt nꢈi liên tꢃc và không liên tꢃc
Kiên trì:
Không kiên trì:
ꢀ Mꢙc ñꢄnh cho HTTP/1.1
ꢀ HTTP/1.0ꢀ:ꢀserverꢀphân
tích yêu cꢁu,ꢀtrꢘ lꢉi rꢊi
ñóng kꢏt nꢍi TCP.
ꢀ serverꢀphân tích yêu
cꢁu,ꢀtrꢘ lꢉi,ꢀphân tích
yêu cꢁu kꢏ tiꢏp:ꢀtrên
cùng mꢆt kꢏt nꢍi TCP
ꢀ Mꢆt ñꢍi tưꢡng :ꢀ2ꢀRTTꢀ
(ñꢆ trꢠ).
ꢀ clientꢀgꢖi yêu cꢁu cho
tꢗt cꢘ các ñꢍi tưꢡng khi
nhꢎn ñưꢡc fileꢀHTMLꢀ
cơ sꢚ
ꢀ Mꢥi lꢁn truyꢐn,ꢀchꢄu mꢆt
ñꢆ trꢠ doꢀthiꢏt lꢎp kꢏt nꢍi.
ꢀ Nhưng phꢏn lꢂn trình
duyꢆt mꢐ ñꢑng thꢒi
nhiꢄu kꢁt nꢃi TCP.
ꢀ Ít bưꢑc hơn,ꢀnhanh hơn.
2:ꢀTꢁng ꢂng dꢃng
14
ðꢎnh dꢚng Thông ñiꢐp Yêu cꢁu HTTP
ꢀ Có hai kiꢌu thông ñiꢓp HTTPꢀ:ꢀThông ñiꢐp yêu cꢁu (request)
và Thông ñiꢐp trꢘ lꢓi (response)
ꢀ Thông ñiꢓp HTTPꢀrequest:
o Theoꢀñꢄnh dꢅng mã ASCII.
Dòng yêu cꢁu
GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Accept-language:fr
(Lꢓnh GET,ꢀPOST,ꢀ
HEAD)
Các dòng header
(CR,LF)
CR,LF:ꢀKꢏt
thúc thông ñiꢓp
2:ꢀTꢁng ꢂng dꢃng
15
ðꢎnh dꢚng Thông ñiꢐp Yêu cꢁu HTTP
2:ꢀTꢁng ꢂng dꢃng
16
ðꢎnh dꢚng Thông ñiꢐp Trꢘ lꢓi HTTP
Dòng trꢅng thái
(mã trꢅng thái)
HTTP/1.0 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Các dòng tiêu ñꢐ
Content-Type: text/html
data data data data data ...
Dꢕ liꢓu (chꢋng hꢅn
fileꢀhtmlꢀñưꢡc
yêu cꢁu)
2:ꢀTꢁng ꢂng dꢃng
17
Mã trꢚng thái trong Thông ñiꢐp Trꢘ lꢓi
ðưꢡc ghi ꢚ dòng ñꢁu tiên trong thông ñiꢓp Serverꢀtrꢘ lꢉi Client
Mꢆt sꢍ mã thưꢉng gꢙp:
200 OK
o Yêu cꢁu thành công,ꢀcác ñꢍi tưꢡng ñưꢡc yêu cꢁu ꢚ phꢁn thân
thông ñiꢓp.
301 Moved Permanently
o ðꢍi tưꢡng yêu cꢁu ñã ñưꢡc chuyꢌn và ñꢄa chꢣ mꢑi cꢔa ñꢍi
tưꢡng ñưꢡc ñꢙt trong trưꢉng Location:
400 Bad Request
o Serverꢀkhông hiꢌu ñưꢡc Thông ñiꢓp yêu cꢁu
404 Not Found
o ðꢍi tưꢡng ñưꢡc yêu cꢁu không có trong server
505 HTTP Version Not Supported
o Serverꢀkhông hꢥ trꢡ phiên bꢘn giao thꢇc HTTP.
2:ꢀTꢁng ꢂng dꢃng
18
Thꢙ kiꢕm nghiꢐm HTTPꢀ(phía Client)
1.ꢀTelnetꢀtꢔi Webꢀserver:
Tꢅo kꢏt nꢍi TCPꢀtꢑi cꢒng 80
(cꢒng mꢙc ñꢄnh cho HTTPꢀserver)ꢀ
2.ꢀLꢐnh GETꢀtrong thông ñiꢐp HTTPꢀrequest:
Gꢖi thông ñiꢓp yêu cꢁu lꢗy tꢓp
GET /~ross/index.html HTTP/1.0
index.html trong thư mꢃc ~ross
cho client
3.ꢀXem thông ñiꢐp responseꢀdoꢀHTTPꢀserverꢀgꢙi vꢌ!
2:ꢀTꢁng ꢂng dꢃng
19
Tương tác UserꢍServer:ꢀKiꢕm chꢆng
ꢀ Mꢃc tiêu :ꢀkiꢌm soát quyꢐn truy
client
server
cꢎp tꢑi ñꢍi tưꢡng lưu trên server.
usualꢀhttpꢀrequestꢀmsg
ꢀ Phương pháp :ꢀsꢖ dꢃng Tên truy
cꢎp và Mꢎt khꢦu
ꢀ Không trꢅng thái : mꢥi lꢁn yêu cꢁu,ꢀ
401:ꢀauthorizationꢀreq.
WWW authenticate:
clientꢀphꢘi chꢇng tꢞ mình có quyꢐn
ꢀ Kiꢌm chꢇng :ꢀ
usualꢀhttpꢀrequestꢀmsg
+ꢀAuthorization:line
o Tiêu ñꢐ authorization: trong
mꢥi yêu cꢁu gꢖi ñi.
usualꢀhttpꢀresponseꢀmsg
o Nꢏu không có quyꢐn : serverꢀtꢛ
chꢍi truy cꢎp và gꢖi yêu cꢁu có
trưꢉng tiêu ñꢐ WWW
usualꢀhttpꢀrequestꢀmsg
+ꢀAuthorization:line
authenticate:
usualꢀhttpꢀresponseꢀmsg
Thông thưꢂng,ꢈtrình duyꢉt cacheꢈ
username/passꢈñꢊ ngưꢂi dùng không
phꢁi gõ lꢋi trong mꢌi truy cꢇp
2:ꢀTꢁng ꢂng dꢃng
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng (Phần 1) - Hồ Phương Đắc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_mang_may_tinh_chuong_2_tang_ung_dung_phan_1_ho_phu.pdf