Các chương trình giao tiếp với nhau ntn?Sử dụng các dịch vụ được cung cấp bởi hệ điều hành interprocess communication.. Mô hình ngang hàng Peer-to-peer paradigm Không có máy dịch vụ cố
Trang 1Chương 2.
Giao thức tầng ứng dụng (application layer)
Đặng Xuân Hà
Computer Networking 2005 ( http://www.hau1.edu.vn/cs/dxha/courses/0405/comnet ) Dept of CS, HAU1.
Trang 2Application Layer
Trang 3Ch2 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.
Trang 42.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.
Trang 5Một số giao thức (application-layer protocols)
Giao thức web.
Giao thức truyền tệp.
Giao thức truyền thư điện tử.
Giao thức nhận thư điện tử.
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.
Trang 6Net applications vs application-layer protocols
Giao tiếp với các dịch vụ được
cung cấp bởi tầng dưới (TCP,
UDP).
Trang 7Các chương trình giao tiếp với nhau ntn?
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).
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
Trang 8Mô 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:
Thiết lập liên kết với server.
Yêu cầu dịch vụ từ server.
application
transport network data link physical
request
reply
Trang 9Mô 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
Trang 10Client-server & P2P examples
Trang 11Dị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
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.
Trang 12Yê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.
Trang 13Các yêu cầu giao vận của một số ứng dụng
Trang 14Internet Transport protocols: TCP & UDP
TCP
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
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.
Trang 15Internet applications: TCP or UDP?
Trang 16Ch2 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.
Trang 172.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
Trang 18HTTP (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
Trang 19HTTP: 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).
giữa browser và server.
Ngắt kết nối.
Trang 20HTTP example
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).
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.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.
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
(trang web có text và 10 hình ảnh jpeg)
Trang 215 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
Trang 22HTTP Connection: Persistent & Non-persistent
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
Trang 23HTTP Message Format: request & response
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
Trang 24HTTP request message
Trang 25HTTP 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
data, e.g.,
requested
html file
Trang 26HTTP response message
Trang 27HTTP response message: status codes
requested document not found on this server
505 HTTP Version Not Supported
Trang 28Ví 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 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.
telnet www.hau1.edu.vn 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)!
Trang 29User-server interaction: authentication & cookies
usual http request msg 401: authorization req.
WWW authenticate:
usual http request msg + Authorization: <cred>
usual http response msg
usual http request msg + Authorization: <cred>
usual http response msg
time
Authenthication
Trang 30Cookies: keeping “state”
nào đó (#) khi client request,
đồng thời ghi nhớ số này để
client qua response msg, vd:
Set-cookie: 1678453
client gửi kèm cookie, vd:
cookie: 1678453
usual http request msg usual http response +
spectific action
Trang 31cookie-Conditional GET: client-side caching
obj tới client khi client đã có
phiên bản cập nhật
(up-to-date) của obj.
sửa gần đây nhất của obj
Trang 32Web Caches (proxy server)
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.
dùng có cảm giác duyệt web
nhanh hơn, giảm nghẽn
mạng.
client
Proxy server
ponse
origin origin server
Trang 33Why Web Caching?
Assume: cache is “close” to
client (e.g., in same
network)
smaller response time:
cache “closer” to client
decrease traffic to distant
public Internet
institutional network 10 Mbps LAN
1.5 Mbps access link
institutional cache
Trang 34Web servers
Chạy trên môi trường Windows
Đi kèm Windows 2000 Server (IIS 5.0)
Mã nguồn mở
Linux/Windows…
http://www.apache.org
Web server được dùng nhiều nhất
Trang 35Ch2 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.
Trang 36Web design: HTML
Thiết kế web: Tạo ra tài liệu HTML
Trong tài liệu HTML có thể có nhiều đối tượng
Images
Hyper link
Sử dụng thẻ (tag) để diễn đạt đối tượng.
Thẻ mở, vd: <html>; <head>; <title>; <body>…
Trang 37Web programming
luôn trả về một trang HTML cố định khi nhận được yêu cầu của người dù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…
Trang 38HTML Form: Send user requests
<form method="POST" action = "simple.asp">
<p><input type="text" name="myName" size="20">
<p><input type="submit" value="Submit"
Response Write (welcome )
%>
</BODY>
</HTML>
ASP HTML
Trang 39ASP (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.
Response Server response.
Application
QueryString…
Công cụ: MS Visual InterDev
Trang 40Mô hình 3 lớp trong lập trình web
Trang 41TCP 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:
end-end-transport protocol (UCP or TCP).
process
TCP with buffers, variables
socket
controlled by application developer controlled by operating system
host or internet
Trang 42 Client phải thiết lập kết nối với server (request).
socket mới để tiếp nhận (cho phép nhiều clients).
Winsock: Windows Socket Component
Trang 43Winsock & OSI
Trang 44Bài tập
Tham khảo: http://www.w3schools.com
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