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.
22 trang |
Chia sẻ: lylyngoc | Lượt xem: 1984 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 2. Giao thức tầng ứng dụng (application layer), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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: bangtqh@hotmail.com
Chapter 2. The Application Layer 224/8-25/10/2009
Application Layer
Chapter 2. The Application Layer 324/8-25/10/2009
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 424/8-25/10/2009
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.
Chapter 2. The Application Layer 524/8-25/10/2009
Một số giao thức (application-layer protocols)
n HTTP (Hyper Text Transfer Protocol)
¤ Giao thức web.
n FTP (File Transfer Protocol)
¤ Giao thức truyền tệp.
n SMTP (Simple Mail Transfer Protocol)
¤ Giao thức truyền thư điện tử.
n POP (Post Office Protocol)
¤ Giao thức nhận thư điện tử.
n IMAP (Internet Mail Access Protocol)
¤ Giao thức nhận thư điện tử (khác POP3)
n DNS (Domain Name System)
¤ DNS = hệ thống tên miền, giao thức DNS quy định quy tắc sử dụng tên miền.
n TFTP (Trivial FTP)
¤ Một dạng khác của FTP.
Chapter 2. The Application Layer 624/8-25/10/2009
Net applications vs. application-layer protocols
n Applications:
¤ 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…
n 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).
Chapter 2. The Application Layer 724/8-25/10/2009
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
¤ Sử dụng các dịch vụ được cung cấp bởi hệ điều hành
(interprocess communication).
n 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).
n 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.
Chapter 2. The Application Layer 824/8-25/10/2009
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
cụ thể bao gồm hai phần:
n Client
¤ 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.
n 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.
application
transport
network
data link
physical
application
transport
network
data link
physical
request
reply
Chapter 2. The Application Layer 924/8-25/10/2009
Mô hình ngang hàng (Peer-to-peer paradigm)
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).
n Các máy tính là ngang hàng,
tự do kết nối và giao tiếp đôi
một.
n Địa chỉ của các máy tính tham
gia giao tiếp liên tục thay đổi.
Chapter 2. The Application Layer 1024/8-25/10/2009
Client-server & P2P examples
n CNN.com
n Yahoo! Mail
n Google
n Yahoo! Messenger
n Internet Relay Chat (IRC)
Client-server
Client-server
Client-server
Client-server & P2P
Client-server & P2P
Chapter 2. The Application Layer 1124/8-25/10/2009
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
§ File formats: picture (JPEG, GIF…), audio (MP3, RM…), video (MPEG,
MOV…), document (HTML, XML…).
§ Data encryption & compression.
§ Session: gắn liền với application trong TCP/IP
§ 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.
Chapter 2. The Application Layer 1224/8-25/10/2009
Yêu cầu đối với việc vận chuyển dữ liệu
n 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.
n Timing
¤ Các ứng dụng online cần độ trễ (delay) nhỏ (phone, games).
n 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 độ.
Chapter 2. The Application Layer 1324/8-25/10/2009
Các yêu cầu giao vận của một số ứng dụng
Chapter 2. The Application Layer 1424/8-25/10/2009
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.
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 1524/8-25/10/2009
Internet applications: TCP or UDP?
Chapter 2. The Application Layer 1624/8-25/10/2009
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.
Chapter 2. The Application Layer 1724/8-25/10/2009
2.2. Web & HTTP
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…
n 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ó.
n Mỗi đối tượng được chỉ ra bởi địa chỉ URL (Uniform
Resource Locator)
¤
¤
Protocol Host name & port Path
Chapter 2. The Application Layer 1824/8-25/10/2009
HTTP (Hyper Text Transfer Protocol)
n Giao thức tầng ứng dụng web.
n Sử dụng mô hình client/server.
¤ Client (user agent):
n Trình duyệt web (web browser)
n Yêu cầu truy cập web thông qua
URL (URL request).
¤ Server
n Máy phục vụ web (web server).
n Gửi các đối tượng tới client thông
quan phản hồi (response).
n HTTP version:
¤ HTTP 1.0: RFC 1945
¤ HTTP 1.1: RFC 2068
Chapter 2. The Application Layer 1924/8-25/10/2009
HTTP: Quá trình trao đổi thông điệp
n Client (browser) thiết lập liên kết tới web server
(TCP connection) qua cổng 80 (mặc định).
n Server đồng ý kết nối (accept).
n Các thông điệp (HTTP messages) được trao đổi
giữa browser và server.
n Ngắt kết nối.
Chapter 2. The Application Layer 2024/8-25/10/2009
HTTP example
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
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.
time
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)
Chapter 2. The Application Layer 2124/8-25/10/2009
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.
6. Bước 1-5 được lặp lại với từng
hình ảnh.
4. http server ngắt liên kết.
time
Chapter 2. The Application Layer 2224/8-25/10/2009
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
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 2324/8-25/10/2009
HTTP Message Format: request & response
n Hai loại message: request và response.
n HTTP request message: dạng ASCII (đọc được!)
GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Accept-language:fr
(extra carriage return, line feed)
request line
(GET, POST,
HEAD commands)
header
lines
Carriage return,
line feed
indicates end
of message
Chapter 2. The Application Layer 2424/8-25/10/2009
HTTP request message
Chapter 2. The Application Layer 2524/8-25/10/2009
HTTP response message
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 ...
status line
(protocol
status code
status phrase)
header
lines
data, e.g.,
requested
html file
Chapter 2. The Application Layer 2624/8-25/10/2009
HTTP response message
Chapter 2. The Application Layer 2724/8-25/10/2009
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
Chapter 2. The Application Layer 2824/8-25/10/2009
Ví dụ thực hành
1. Telnet tới web server:
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.
telnet www.uct2.edu.vn 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)!
Chapter 2. The Application Layer 2924/8-25/10/2009
User-server interaction: authentication & cookies
client server
usual http request msg
401: authorization req.
WWW authenticate:
usual http request msg
+ Authorization:
usual http response msg
usual http request msg
+ Authorization:
usual http response msg
time
Authenthication
Chapter 2. The Application Layer 3024/8-25/10/2009
Cookies: keeping “state”
n Server phát sinh một con số
nào đó (#) khi client request,
đồng thời ghi nhớ số này để
sử dụng sau này:
¤ Chứng thực
(authentication)
¤ Ghi nhớ sở thích, thói
quen, lựa chọn truy cập
lần trước.
n server gửi “cookie” tới
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
client server
usual http request msg
usual http response +
Set-cookie: #
usual http request msg
cookie: #
usual http response msg
usual http request msg
cookie: #
usual http response msg
cookie-
spectific
action
cookie-
spectific
action
Chapter 2. The Application Layer 3124/8-25/10/2009
Conditional GET: client-side caching
n MĐ: server không cần gửi
obj tới client khi client đã có
phiên bản cập nhật (up-to-
date) của obj.
n Client phải chỉ ra thời gian
sửa gần đây nhất của obj
trong http request msg.
If-modified-since:
n Server sẽ trả về response msg
không chứa obj nếu obj là
cập nhật:
HTTP/1.0 304 Not Modified
client server
http request msg
If-modified-since:
http response
HTTP/1.0
304 Not Modified
object
not
modified
http request msg
If-modified-since:
http response
HTTP/1.1 200 OK
object
modified
Chapter 2. The Application Layer 3224/8-25/10/2009
Web Caches (proxy server)
n Client gửi http requests tới
web cache thay vì tới server.
¤ 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.
n 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.
n Vd: proxy server trong IE.
client
Proxy
server
client
http request
htt
p r
equ
est
http response
htt
p r
esp
ons
e
htt
p re
que
st
htt
p re
spo
nse
origin
server
origin
server
Chapter 2. The Application Layer 3324/8-25/10/2009
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
¤ link out of
institutional/local ISP
network often bottleneck
origin
servers
public
Internet
institutional
network 10 Mbps LAN
1.5 Mbps
access link
institutional
cache
Chapter 2. The Application Layer 3424/8-25/10/2009
Web servers
n IIS (Microsoft Internet Information Server)
¤ Chạy trên môi trường Windows
¤ Đi kèm Windows 2000 Server (IIS 5.0).
n Apache web server
¤ Mã nguồn mở.
¤ Linux/Windows…
¤
¤ Web server được dùng nhiều nhất.
n Tomcat, Netscape, Xitami…
Chapter 2. The Application Layer 3524/8-25/10/2009
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 3624/8-25/10/2009
Web design: HTML
n Thiết kế web: Tạo ra tài liệu HTML
n HTML (Hyper Text Markup Language)
¤ Trong tài liệu HTML có thể có nhiều đối tượng
n Text
n Images
n Hyper link
¤ Sử dụng thẻ (tag) để diễn đạt đối tượng.
n Thẻ mở, vd: ; ; ; …
n Thẻ đóng, vd: ; ;;…
n Công cụ:
¤ Text editor: Notepad, Ultra Edit...
¤ Microsoft FrontPage
¤ Macromedia Dreamweaver
n (
Chapter 2. The Application Layer 3724/8-25/10/2009
Web programming
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.
n 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…
Chapter 2. The Application Layer 3824/8-25/10/2009
HTML Form: Send user requests
Simple Form
<input type="submit" value="Submit"
name="B1">
Simple ASP
<%
dim welcome
dim myName
myName=Request.Form("myName")
welcome = “Welcome " & myName & “!”
Response.Write (welcome )
%>
ASPHTML
Chapter 2. The Application Layer 3924/8-25/10/2009
ASP (Active Server Page)
n Microsoft/IIS.
n 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.
n 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).
n Các đối tượng:
¤ Request Client request.
¤ Response Server response.
¤ Application
¤ QueryString…
n Công cụ: MS Visual InterDev
Chapter 2. The Application Layer 4024/8-25/10/2009
Mô hình 3 lớp trong lập trình web
WEB BROWSER WEB SERVER (Apache, IIS)
ASP, PHP, JSP
DB
req
resp
DB APICác thủ tục truy xuất CSDL
CSDL
Server-side scripts
Chapter 2. The Application Layer 4124/8-25/10/2009
TCP Socket Programming
n Giao thức HTTP: application-layer protocol
n 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).
process
TCP with
buffers,
variables
socket
controlled by
application
developer
controlled by
operating
system
host or
server
process
TCP with
buffers,
variables
socket
controlled by
application
developer
controlled by
operating
system
host or
server
internet
Chapter 2. The Application Layer 4224/8-25/10/2009
TCP Socket: Client/server
n 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.
n Client phải thiết lập kết nối với server (request).
n 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).
n Microsoft Visual Basic:
¤ Winsock: Windows Socket Component.
Chapter 2. The Application Layer 4324/8-25/10/2009
Winsock & OSI
Chapter 2. The Application Layer 4424/8-25/10/2009
Bài tập
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)
n 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).
¤ Tham khảo:
n 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 Header
n Body