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

Bài giảng mạng máy tính và internet chương 2 trần quang hải bằng

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 (590.95 KB, 22 trang )

Chương 2.
Giao thức tầng ứng dụng (application layer)
Trần Quang Hải Bằng
Computer Networking and Internet (course of 2009)
Faculty of Information Technology
University of Communication and Transport (Unit 2)
Office location: Administration building, Block D3, Room 6
Office phone: 38962018
Cell phone: N/A
Email:

Application Layer

24/8-25/10/2009

Chapter 2. The Application Layer

2


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.

24/8-25/10/2009

Chapter 2. The Application Layer



3

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

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

¤
¤
¤
¤
¤
¤
¤

Email (Yahoo! Mail, MS Outlook, Google mail,…).
Web browser (MS Internet Explorer, Fire Fox, Netscape
Navigator,…).
Instant messenger (Yahoo! Messenger, ICQ, AOL,…).
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.

24/8-25/10/2009


Chapter 2. The Application Layer

4


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

HTTP (Hyper Text Transfer Protocol)
¤

n

FTP (File Transfer Protocol)
¤

n

Giao thức nhận thư điện tử (khác POP3)

DNS (Domain Name System)
¤

n

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

IMAP (Internet Mail Access Protocol)
¤


n

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

POP (Post Office Protocol)
¤

n

Giao thức truyền tệp.

SMTP (Simple Mail Transfer Protocol)
¤

n

Giao thức web.

DNS = hệ thống tên miền, giao thức DNS quy định quy tắc sử dụng tên miền.

TFTP (Trivial FTP)
¤

Một dạng khác của FTP.

24/8-25/10/2009

Chapter 2. The Application Layer


5

Net applications vs. application-layer protocols
n

Applications:
¤
¤

¤

n

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…

Application-layer protocols:
¤
¤
¤

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).

24/8-25/10/2009

Chapter 2. The Application Layer

6


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

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

n

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

n

Sử dụng các dịch vụ được cung cấp bởi hệ điều hành
(interprocess communication).
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.

24/8-25/10/2009

7

Chapter 2. The Application Layer

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
n

Client
¤
¤
¤
¤

n

network
data link
physical


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.

request

Server
¤
¤
¤

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.

24/8-25/10/2009

Chapter 2. The Application Layer

reply
application
transport
network
data link
physical


8


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

n

n

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.

24/8-25/10/2009

Chapter 2. The Application Layer

9

Client-server & P2P examples
n


CNN.com

Client-server

n

Yahoo! Mail

Client-server

n

Google

Client-server

n

Yahoo! Messenger

Client-server & P2P

n

Internet Relay Chat (IRC)

Client-server & P2P

24/8-25/10/2009


Chapter 2. The Application Layer

10


Dịch vụ tầng dưới đối với application-layer
n

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.

24/8-25/10/2009

Chapter 2. The Application Layer

11

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

Data loss
¤

¤

n

Timing
¤

n

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.
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 độ.

24/8-25/10/2009

Chapter 2. The Application Layer

12


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

24/8-25/10/2009

Chapter 2. The Application Layer

13

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.

24/8-25/10/2009

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.

Chapter 2. The Application Layer

14


Internet applications: TCP or UDP?

24/8-25/10/2009

Chapter 2. The Application Layer

15

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.

24/8-25/10/2009


Chapter 2. The Application Layer

16


2.2. Web & HTTP
n

n

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).
¤
¤

n

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/userimages/tqhbang/nhaphoc.jpg


Protocol

Host name & port

Path

Chapter 2. The Application Layer

24/8-25/10/2009

17

HTTP (Hyper Text Transfer Protocol)
n
n

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

Client (user agent):
n
n

¤

Server
n
n


n

Trình duyệt web (web browser)
Yêu cầu truy cập web thông qua
URL (URL request).
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

24/8-25/10/2009

Chapter 2. The Application Layer

18


HTTP: Quá trình trao đổi thông điệp
n

n
n


n

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.

24/8-25/10/2009

Chapter 2. The Application Layer

19

HTTP example
Giả sử người dùng truy cập URL: www.uct2.edu/index.html
(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.uct2.edu.vn,
cổng 80 (ngầm định với http
server).

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

time
24/8-25/10/2009


1b. http server tại máy phục vụ
www.uct2.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.

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.

Chapter 2. The Application Layer

20


4. http server ngắt liên kết.
5. http client nhận response
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.

time

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


24/8-25/10/2009

Chapter 2. The Application Layer

21

HTTP Connection: Persistent & Non-persistent
Non-persistent HTTP
n Nhiều nhất là một đối
tượng được truyền qua
liên kết TCP.
n HTTP 1.0

24/8-25/10/2009

Persistent HTTP
n Cho phép nhiều đối tượng
được truyền trên cùng một liên
kết.
n 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).
n HTTP 1.1 sử dụng liên kết loại
này ở chế độ mặc định.

Chapter 2. The Application Layer

22



HTTP Message Format: request & response
n
n

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

24/8-25/10/2009

(extra carriage return, line feed)

Chapter 2. The Application Layer


23

HTTP request message

24/8-25/10/2009

Chapter 2. The Application Layer

24


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


24/8-25/10/2009

Chapter 2. The Application Layer

25

HTTP response message

24/8-25/10/2009

Chapter 2. The Application Layer

26


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

24/8-25/10/2009

Chapter 2. The Application Layer

27

Ví dụ thực hành
1. Telnet tới web server:
telnet www.uct2.edu.vn 80
Mở một kết nối (TCP) tới cổng 80 tại web server của UCT2. 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 /dangkythilai/help.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)!

24/8-25/10/2009


Chapter 2. The Application Layer

28


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

24/8-25/10/2009

Chapter 2. The Application Layer

29


Cookies: keeping “state”
n

n

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

n


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

24/8-25/10/2009

usual http request msg

cookie: #
usual http response msg

Chapter 2. The Application Layer

cookiespectific
action
30


Conditional GET: client-side caching
n

n

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>
n

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>
24/8-25/10/2009

31

Chapter 2. The Application Layer

Web Caches (proxy server)
n

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

¤

n

n

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.


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.

24/8-25/10/2009

origin
server
h tt
pr

client http

Proxy
server

eq u
es t

res
pon
se
st
ue
q
e
pr

nse
po
ht t
s
re
tp
ht

client

Chapter 2. The Application Layer

es t
eq u
r
p
se
h tt
pon
s
e
pr
h tt

origin
server

32



Why Web Caching?
Assume: cache is “close” to
client (e.g., in same
network)
n smaller response time:
cache “closer” to client
n 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

24/8-25/10/2009

10 Mbps LAN

institutional
cache


Chapter 2. The Application Layer

33

Web servers
n

IIS (Microsoft Internet Information Server)
¤
¤

n

Apache web server
¤
¤
¤
¤

n

Chạy trên môi trường Windows
Đi kèm Windows 2000 Server (IIS 5.0).
Mã nguồn mở.
Linux/Windows…

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

Tomcat, Netscape, Xitami…


24/8-25/10/2009

Chapter 2. The Application Layer

34


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.

Chapter 2. The Application Layer

24/8-25/10/2009

35

Web design: HTML
n
n

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


Trong tài liệu HTML có thể có nhiều đối tượng
n
n
n

¤

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

n

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

Công cụ:
¤
¤
¤

n

Text
Images
Hyper link

Text editor: Notepad, Ultra Edit...
Microsoft FrontPage
Macromedia Dreamweaver


()

24/8-25/10/2009

Chapter 2. The Application Layer

36


Web programming
n

n

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.
¤

Lập trình web # Lập trình Pascal, C:
n

¤
¤

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


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

24/8-25/10/2009

Chapter 2. The Application Layer

37

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>

24/8-25/10/2009

<%@ 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>

Chapter 2. The Application Layer

38


ASP (Active Server Page)
n
n

n

n

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:
¤
¤
¤
¤

n

Request Client request.
Response Server response.
Application
QueryString…

Công cụ: MS Visual InterDev
Chapter 2. The Application Layer

24/8-25/10/2009

39

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

WEB SERVER (Apache, IIS)
resp


Server-side scripts

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

CSDL

24/8-25/10/2009

ASP, PHP, JSP

DB API

DB

Chapter 2. The Application Layer

40


TCP Socket Programming
n
n

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
24/8-25/10/2009

controlled by
application
developer

Chapter 2. The Application Layer

41

TCP Socket: Client/server
n

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

n
n

n

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: Windows Socket Component.

24/8-25/10/2009

Chapter 2. The Application Layer

42


Winsock & OSI

Chapter 2. The Application Layer

24/8-25/10/2009

43

Bài tập
n

n

Tìm hiểu cú pháp ngôn ngữ HTML, từ ñó xây dựng 3
trang web tĩnh page1.htm, page2.htm, page3.htm (nội dung
của 3 trang web này tùy theo ý tưởng sáng tạo của mỗi
người)

Sử dụng một trong các ngôn ngữ script ASP, PHP, JSP lập
trang web động (không bắt buộc).
¤

n

Tham khảo:

Sử dụng công cụ Visual Basic và Winsock component để
viết một web server đơn giản (không bắt buộc)
¤
¤

Phân tích lệnh GET
Trả về response message thích hợp.
n
n

24/8-25/10/2009

Header
Body

Chapter 2. The Application Layer

44




×