Tải bản đầy đủ (.pdf) (22 trang)

Chương 2. Giao thức tầng ứng dụng (application layer) ĐH CNTT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (856.53 KB, 22 trang )

MMT_Chương02

9/30/2011

Chương 2.
Giao thức tầng ứng dụng (application layer)
Mạng Máy Tính
Nguyễn Duy
Khoa Mạng Máy Tính và Truyền Thông
Trường ĐH Công Nghệ Thông Tin

Application Layer

9/30/2011





2 of 44

1


MMT_Chương02

9/30/2011

Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.


2.3. Web design and HTTP, Web programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.

9/30/2011



3 of 44

2.1. Một số khái niệm và nguyên tắc


Một số chương trình ứng dụng (network applications):
 Email

(Yahoo! Mail, MS Outlook…).
 Web browser (MS Internet Explorer, Netscape Navigator…).
 Instant messenger (Yahoo! Messenger, ICQ…).
 P2P file sharing (Napster, KazaA…).
 Internet games (Yahoo! Games).
 Internet telephone (Skype, FPTFone,VNNFone…).
 Streaming stored video clips.
 Real-time video conference.
 Massive parallel computing.

9/30/2011






4 of 44

2


MMT_Chương02

9/30/2011

Một số giao thức (application-layer protocols)


HTTP (Hyper Text Transfer Protocol)



FTP (File Transfer Protocol)




Giao thức web.
Giao thức truyền tệp.



SMTP (Simple Mail Transfer Protocol)




POP (Post Office Protocol)




Giao thức truyền thư điện tử.
Giao thức nhận thư điện tử.



IMAP (Internet Mail Access Protocol)



DNS (Domain Name System)



TFTP (Trivial FTP)





Giao thức nhận thư điện tử (khác POP3)
DNS = hệ thống tên miền, giao thức DNS quy định quy tắc sử dụng tên miền.
Một dạng khác của FTP.




9/30/2011

5 of 44

Net applications vs. application-layer protocols


Applications:







Application-layer protocols:




9/30/2011



Chương trình ứng dụng chạy trên
các máy tính.
Trao đổi thông điệp (message) với

các ứng dụng khác nhằm thực thi
vai trò của ứng dụng.
Vd: web browser, email client…
Là một thành phần của chương
trình ứng dụng.
Định nghĩa các quy tắc trao đổi
thông điệp.
Giao tiếp với các dịch vụ được
cung cấp bởi tầng dưới (TCP,
UDP).



6 of 44

3


MMT_Chương02

9/30/2011

Các chương trình giao tiếp với nhau ntn?


Các chương trình trên cùng một máy tính
 Sử

dụng các dịch vụ được cung cấp bởi hệ điều hành
(interprocess communication).




Các chương trình trên các máy tính khác nhau
 Giao

tiếp thông qua giao thức của tầng ứng dụng
(application-layer protocol).



Chương trình phía người dùng = user agent
 Giao

tiếp với người sử dụng (giao diện sử dụng).
 Giao tiếp với các giao thức mạng.
7 of 44



9/30/2011

Mô hình khách-phục vụ (client-server paradigm)
Mô hình khách-phục vụ được quen gọi
là mô hình khách-chủ. Một ứng dụng
application
cụ thể bao gồm hai phần:
transport



Client







request

Thiết lập liên kết với server.
Yêu cầu dịch vụ từ server.
Nhiều clients.
Vd: web browser.

Server




9/30/2011



network
data link
physical

Chờ và cung cấp các dịch vụ khi client
yêu cầu.

Thường chỉ có 1 server, không thay đổi
địa chỉ, chạy 24/7.
Vd: web server.



reply
application
transport
network
data link
physical

8 of 44

4


MMT_Chương02

9/30/2011

Mô hình ngang hàng (Peer-to-peer paradigm)






Không có máy dịch vụ cố định,

các máy tính trong mạng lúc
này là server (nhận yêu cầu kết
nối) nhưng lúc khác lại là client
(yêu cầu máy khác kết nối).
Các máy tính là ngang hàng,
tự do kết nối và giao tiếp đôi
một.
Địa chỉ của các máy tính tham
gia giao tiếp liên tục thay đổi.

9/30/2011

9 of 44



Client-server & P2P examples


CNN.com

 Client-server



Yahoo! Mail

 Client-server




Google

 Client-server



Yahoo! Messenger

 Client-server

& P2P



Internet Relay Chat (IRC)

 Client-server

& P2P

9/30/2011





10 of 44

5



MMT_Chương02

9/30/2011

Dịch vụ tầng dưới đối với application-layer
Có thể coi tầng application (Internet) = tầng application +
presentation + session trong mô hình OSI.
 Các dịch vụ với application:




Presentation: gắn liền với application trong TCP/IP






Session: gắn liền với application trong TCP/IP




File formats: picture (JPEG, GIF…), audio (MP3, RM…), video (MPEG,
MOV…), document (HTML, XML…).
Data encryption & compression.
NFS (Network File System), RPC (Remote Procedure Call), SQL

(Structured Query Language), SSL (Secure Socket Layer).

Transport (*)



Cung cấp dịch vụ vận chuyển cho application (TCP/IP).
Hai giao thức: TCP và UDP.



9/30/2011

11 of 44

Yêu cầu đối với việc vận chuyển dữ liệu


Data loss
 Các ứng

dụng audio/video có thể chấp nhận mất mát, sai lệch dữ
liệu trong khoảng cho phép.
 Email, file transfer yêu cầu dữ liệu phải chính xác.


Timing
 Các ứng




dụng online cần độ trễ (delay) nhỏ (phone, games).

Bandwidth
 Các ứng

dụng multimedia cần đường truyền tốc độ cao để đảm
bảo chất lượng.
 Các ứng dụng email, file transfer mềm dẻo hơn, tuỳ theo tốc độ.

9/30/2011





12 of 44

6


MMT_Chương02

9/30/2011

Các yêu cầu giao vận của một số ứng dụng

9/30/2011




13 of 44

Internet Transport protocols: TCP & UDP
TCP (Transmission Control Protocol)







connection-oriented: setup
required between client, server.
reliable transport between
sending and receiving process.
flow control: sender won’t
overwhelm receiver.
congestion control: throttle
sender when network
overloaded.
does not providing: timing,
minimum bandwidth
guarantees.

9/30/2011



UDP (User Datagram Protocol)





unreliable data transfer
between sending and receiving
process
does not provide: connection
setup, reliability, flow control,
congestion control, timing, or
bandwidth guarantee.



14 of 44

7


MMT_Chương02

9/30/2011

Internet applications: TCP or UDP?

9/30/2011



15 of 44


Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.
2.3. Web design and programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.

9/30/2011





16 of 44

8


MMT_Chương02

9/30/2011

2.2. Web & HTTP




Trang web (web page): một loại tài liệu có chứa trong đó

nhiều đối tượng: text, image, audio, Java applet, HTML…
Về cơ bản, web page = HTML file (base HTML).
 HTML =

Hyper Text Markup Language.
 HTML sử dụng các thẻ (tag) để mô tả đối tượng chứa trong nó.


Mỗi đối tượng được chỉ ra bởi địa chỉ URL (Uniform
Resource Locator)
 :80/cs/index.htm
 :80/cs/images/calendar.jpg
Protocol

Host name & port

Path



9/30/2011

17 of 44

HTTP (Hyper Text Transfer Protocol)



Giao thức tầng ứng dụng web.
Sử dụng mô hình client/server.

 Client



(user agent):

Trình duyệt web (web browser)
Yêu cầu truy cập web thông qua
URL (URL request).

 Server





Máy phục vụ web (web server).
Gửi các đối tượng tới client thông
quan phản hồi (response).

HTTP version:
 HTTP 1.0:

RFC 1945
 HTTP 1.1: RFC 2068
9/30/2011






18 of 44

9


MMT_Chương02

9/30/2011

HTTP: Quá trình trao đổi thông điệp
Client (browser) thiết lập liên kết tới web server
(TCP connection) qua cổng 80 (mặc định).
 Server đồng ý kết nối (accept).
 Các thông điệp (HTTP messages) được trao đổi
giữa browser và server.
 Ngắt kết nối.




9/30/2011

19 of 44

HTTP example
Giả sử người dùng truy cập URL: www.uit.edu/cs/index.htm
(trang web có text và 10 hình ảnh jpeg)
1a. http client thiết lập liên kết
TCP với http server (process)

tại địa chỉ www.hau1.edu.vn,
cổng 80 (ngầm định với http
server).

1b. http server tại máy phục vụ
www.hau1.edu.vn chờ yêu cầu
kết nối TCP tại cổng 80, chấp
nhận kết nối rồi thông báo với
client.

2. http client gửi http request
message (bao gồm cả URL) tới
TCP connection socket

time
9/30/2011



3.

http server nhận request
message, tạo ra http response
message có chứa các đối tượng
được yêu cầu rồi gửi vào
socket.



20 of 44


10


MMT_Chương02

9/30/2011

4. http server ngắt liên kết.
5. http client nhận response

time

message có chứa html file, hiển
thị html. Sau đó, phân tích html
file, tìm URL của 10 hình ảnh
jpeg trong tài liệu.

6. Bước 1-5 được lặp lại với từng
hình ảnh.

9/30/2011



21 of 44

HTTP Connection: Persistent & Non-persistent
Non-persistent HTTP
 Nhiều nhất là một đối

tượng được truyền qua
liên kết TCP.
 HTTP 1.0

9/30/2011



Persistent HTTP
 Cho phép nhiều đối tượng
được truyền trên cùng một liên
kết.
 Client phân tích, tìm ra và gửi
yêu cầu tới tất cả các đối
tượng ngay sau khi nhận được
trang HTML ban đầu (base
HTML).
 HTTP 1.1 sử dụng liên kết loại
này ở chế độ mặc định.


22 of 44

11


MMT_Chương02

9/30/2011


HTTP Message Format: request & response
Hai loại message: request và response.
 HTTP request message: dạng ASCII (đọc được!)


request line
(GET, POST,
HEAD commands)

GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
header Accept-language:fr
lines

Carriage return,
line feed
indicates end
of message

9/30/2011

(extra carriage return, line feed)



23 of 44

HTTP request message


9/30/2011





24 of 44

12


MMT_Chương02

9/30/2011

HTTP response message
status line
(protocol
status code
status phrase)
header
lines

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
Content-Type: text/html
data data data data data ...


data, e.g.,
requested
html file

9/30/2011



25 of 44

HTTP response message

9/30/2011





26 of 44

13


MMT_Chương02

9/30/2011

HTTP response message: status codes
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



9/30/2011

27 of 44

Ví dụ thực hành
1. Telnet tới web server:

telnet www.uit.edu.vn 80
Mở một kết nối (TCP) tới cổng 80 tại web server của trường ĐHNNI.
Sau khi kết nối, tất cả ký tự gõ vào sẽ được gửi tới cổng 80.

2. Nhập vào GET http request:
GET /cs/index.htm HTTP/1.0
Đây là một http request đơn giản.
Nhập xong gõ 2 lần Enter để gửi tới server

3. Kiểm tra kết quả nhận được (http response message)!

9/30/2011





28 of 44

14


MMT_Chương02

9/30/2011

User-server interaction: authentication & cookies
Authenthication

server


client
usual http request msg
401: authorization req.
WWW authenticate:
usual http request msg
+ Authorization: <cred>
usual http response msg

time

usual http request msg
+ Authorization: <cred>
usual http response msg

9/30/2011



29 of 44

Cookies: keeping “state”




Server phát sinh một con số
server
nào đó (#) khi client request, client
đồng thời ghi nhớ số này để

usual http request msg
sử dụng sau này:
usual http response +
 Chứng thực
Set-cookie: #
(authentication)
 Ghi nhớ sở thích, thói
usual http request msg
quen, lựa chọn truy cập
cookiecookie: #
lần trước.
spectific
server gửi “cookie” tới
usual http response msg
action
client qua response msg, vd:
Set-cookie: 1678453



Lần sau truy cập website,
client gửi kèm cookie, vd:
cookie: 1678453

9/30/2011



usual http request msg


cookie: #
usual http response msg



cookiespectific
action
30 of 44

15


MMT_Chương02

9/30/2011

Conditional GET: client-side caching




MĐ: server không cần gửi client
obj tới client khi client đã có
http request msg
phiên bản cập nhật (up-toIf-modified-since:
<date>
date) của obj.
Client phải chỉ ra thời gian
http response
sửa gần đây nhất của obj

HTTP/1.0
304
Not Modified
trong http request msg.

server
object
not
modified

If-modified-since: <date>


http request msg

Server sẽ trả về response msg
không chứa obj nếu obj là
cập nhật:

If-modified-since:
<date>

object
modified

http response

HTTP/1.0 304 Not Modified

HTTP/1.1 200 OK


<data>
31 of 44



9/30/2011

Web Caches (proxy server)


Client gửi http requests tới
web cache thay vì tới server.








Web cache sẽ khiến người
dùng có cảm giác duyệt web
nhanh hơn, giảm nghẽn
mạng.
Vd: proxy server trong IE.

9/30/2011




Nếu obj có tại web cache:
web cache tạo http response
msg gửi về cho client.
Nếu không, web cache tạo gửi
http request tới server, nhận
obj, lưu trữ, rồi gửi http
response msg tới client.

origin
server

Proxy
server
client

client



origin
server

32 of 44

16


MMT_Chương02


9/30/2011

Why Web Caching?
Assume: cache is “close” to
client (e.g., in same
network)
 smaller response time:
cache “closer” to client
 decrease traffic to distant
servers

origin
servers
public
Internet

1.5 Mbps
access link
institutional
network

 link

out of
institutional/local ISP
network often bottleneck

10 Mbps LAN

institutional

cache

9/30/2011



33 of 44

Web servers


IIS (Microsoft Internet Information Server)
 Chạy trên

môi trường Windows
 Đi kèm Windows 2000 Server (IIS 5.0).


Apache web server
 Mã nguồn

mở.
 Linux/Windows…

 Web server được dùng nhiều nhất.


Tomcat, Netscape, Xitami…

9/30/2011






34 of 44

17


MMT_Chương02

9/30/2011

Ch2. The Application Layer
2.1. Một số khái niệm và nguyên tắc.
2.2. Web & Hyper Text Transfer Protocol.
2.3. Web design and HTTP, Web programming.
2.4. File Transfer Protocol.
2.5. Electronic Mail Protocols.
2.6. Domain Name System.



9/30/2011

35 of 44

Web design: HTML




Thiết kế web: Tạo ra tài liệu HTML
HTML (Hyper Text Markup Language)
 Trong tài liệu




 Sử dụng





HTML có thể có nhiều đối tượng

Text
Images
Hyper link

thẻ (tag) để diễn đạt đối tượng.

Thẻ mở, vd: <html>; <head>; <title>; <body>…
Thẻ đóng, vd: </html>; </head>;</title>;</body>…

Công cụ:
 Text editor: Notepad, Ultra
 Microsoft FrontPage
 Macromedia Dreamweaver




()

9/30/2011



Edit...



36 of 44

18


MMT_Chương02

9/30/2011

Web programming
HTML = trang web tĩnh (Static web): Web server
luôn trả về một trang HTML cố định khi nhận được
yêu cầu của người dùng.
 Lập trình web: tương tác với người sử dụng thông
qua web.



 LT


web # LT Pascal, C:

Tương tác thông qua HTTP Message.

 Client-side

scripts: Java script, VB script.
 Server-side scripts: ASP, JSP, PHP, Perl…

9/30/2011



37 of 44

HTML Form: Send user requests
<html>
HTML
<head>
<title>Simple Form</title>
</head>
<body>
<form method="POST" action = "simple.asp">

<input type="text" name="myName" size="20">

name="B1">
</form>


</body>
</html>

9/30/2011



<%@ Language=VBScript %>
ASP
<HTML>
<HEAD>
<Title>Simple ASP</title>
</HEAD>
<BODY>
<%
dim welcome
dim myName
myName=Request.Form("myName")
welcome = “

Welcome " & myName & “!


Response.Write (welcome )
%>
</BODY>
</HTML>



38 of 44

19



MMT_Chương02

9/30/2011

ASP (Active Server Page)







Microsoft/IIS.
Một tài liệu ASP có thể coi như một tài liệu HTML có
nhúng các script ASP, được ghi lại dạng tệp *.asp, đặt tại
web server.
Mỗi khi được request, các script được chạy ở phía server,
kết quả trả về client dạng HTML (client không thấy
source).
Các đối tượng:
 Request 

Client request.
Server response.

 Response 
 Application

 QueryString…




Công cụ: MS Visual InterDev
39 of 44



9/30/2011

Mô hình 3 lớp trong lập trình web
req
WEB BROWSER

WEB SERVER (Apache, IIS)
resp

Server-side scripts

ASP, PHP, JSP

Các thủ tục truy xuất CSDL

CSDL

9/30/2011






DB API

DB

40 of 44

20


MMT_Chương02

9/30/2011

TCP Socket Programming



Giao thức HTTP: application-layer protocol
Hai ứng dụng application muốn giao tiếp phải sử dụng
dịch vụ của tầng giao vận:
 Socket: a

door between application process and end-end-transport
protocol (UCP or TCP).

controlled by
application
developer
controlled by

operating
system

process

process

socket
TCP with
buffers,
variables

socket
TCP with
buffers,
variables

internet

controlled by
operating
system

host or
server

host or
server



9/30/2011

controlled by
application
developer

41 of 44

TCP Socket: Client/server


Server socket đã mở sẵn và đợi tại một cổng (port)
nào đó.
 Port

được sử dụng để chỉ một process cụ thể sử dụng
TCP trên một host.

Client phải thiết lập kết nối với server (request).
 Khi server nhận yêu cầu kết nối, nó tạo ra một
socket mới để tiếp nhận (cho phép nhiều clients).
 Microsoft Visual Basic:


 Winsock:

9/30/2011




Windows Socket Component.


42 of 44

21


MMT_Chương02

9/30/2011

Winsock & OSI



9/30/2011

43 of 44

Bài tập


Sử dụng ASP lập trang web động.
 Tham



khảo:


Sử dụng công cụ Visual Basic và Winsock
component để viết một web server đơn giản.
 Phân

tích lệnh GET
 Trả về response message thích hợp.
Header
 Body


9/30/2011





44 of 44

22



×