Bài giảng Mạng máy tính - Chương 2, Phần a: Giao thức tầng ứng dụng (Application layer) - Trần Quang Diện
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, 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 4Một số giao thức (application-layer protocols)
HTTP (Hyper Text Transfer Protocol)
Giao thức web.
FTP (File Transfer Protocol)
Giao thức truyền tệp.
SMTP (Simple Mail Transfer Protocol)
Giao thức truyền thư điện tử.
POP (Post Office Protocol)
Giao thức nhận thư điện tử.
IMAP (Internet Mail Access Protocol)
Giao thức nhận thư điện tử (khác POP3)
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.
TFTP (Trivial FTP)
Một dạng khác của FTP
Tóm tắt nội dung tài liệu: Bài giảng Mạng máy tính - Chương 2, Phần a: Giao thức tầng ứng dụng (Application layer) - Trần Quang Diện
Chương 2. Giao thức tầng ứng dụng (application layer) Quang Dieu Tran, PhD Faculty of Information Technology University of Communication and Transport (Branch in Ho Chi Minh City) Email: dieutq@gmail.com Website: sites.google.com/sites/tranlectures Application Layer 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. Chapter 2. The Application Layer 3 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, 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 4 Một số giao thức (application-layer protocols) HTTP (Hyper Text Transfer Protocol) Giao thức web. FTP (File Transfer Protocol) Giao thức truyền tệp. SMTP (Simple Mail Transfer Protocol) Giao thức truyền thư điện tử. POP (Post Office Protocol) Giao thức nhận thư điện tử. IMAP (Internet Mail Access Protocol) Giao thức nhận thư điện tử (khác POP3) 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. TFTP (Trivial FTP) Một dạng khác của FTP. Chapter 2. The Application Layer 5 Net applications vs. application-layer protocols 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 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 6 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. Chapter 2. The Application Layer 7 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: 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. 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. Chapter 2. The Application Layer 8 application transport network data link physical application transport network data link physical request reply 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. Chapter 2. The Application Layer 9 Client-server & P2P examples CNN.com Yahoo! Mail Google Yahoo! Messenger Internet Relay Chat (IRC) Chapter 2. The Application Layer 10 Client-server Client-server Client-server Client-server & P2P Client-server & P2P 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 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 11 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 độ. Chapter 2. The Application Layer 12 Các yêu cầu giao vận của một số ứng dụng 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. 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? 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. Chapter 2. The Application Layer 16 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) Chapter 2. The Application Layer 17 Protocol Host name & port Path 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 Chapter 2. The Application Layer 18 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. Chapter 2. The Application Layer 19 HTTP example Chapter 2. The Application Layer 20 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 21 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 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 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. Chapter 2. The Application Layer 22 HTTP Message Format: request & response Hai loại message: request và response. HTTP request message: dạng ASCII (đọc được!) Chapter 2. The Application Layer 23 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 HTTP request message Chapter 2. The Application Layer 24 HTTP response message Chapter 2. The Application Layer 25 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 HTTP response message Chapter 2. The Application Layer 26 HTTP response message: status codes Chapter 2. The Application Layer 27 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 Ví dụ thực hành 1. Telnet tới web server: Chapter 2. The Application Layer 28 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 113.161.72.233 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)! User-server interaction: authentication & cookies Chapter 2. The Application Layer 29 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 Cookies: keeping “state” 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. server gửi “cookie” tới client qua response msg, vd: Set-cookie: 1678453 Lần sau truy cập website, client gửi kèm cookie, vd: cookie: 1678453 Chapter 2. The Application Layer 30 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 Conditional GET: client-side caching Mục đích: 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. 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: 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 Chapter 2. The Application Layer 31 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 Web Caches (proxy server) 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. 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. Ví dụ: proxy server trong IE. Chapter 2. The Application Layer 32 client Proxy server client origin server origin server 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 link out of institutional/local ISP network often bottleneck Chapter 2. The Application Layer 33 origin servers public Internet institutional network 10 Mbps LAN 1.5 Mbps access link institutional cache Caching example Assumptions average object size = 100 Kbits avg. request rate from institution’s browsers to origin servers = 15/sec delay from institutional router to any origin server and back to router = 2 sec Consequences utilization on LAN = 15% utilization on access link = 100% Total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + milliseconds Chapter 2. The Application Layer 34 origin servers public Internet institutional network 10 Mbps LAN 1.5 Mbps access link institutional cache Caching example (cont) Possible solution increase bandwidth of access link to, say, 10 Mbps Consequences utilization on LAN = 15% utilization on access link = 15% Total delay = Internet delay + access delay + LAN delay = 2 sec + msecs + msecs often a costly upgrade Chapter 2. The Application Layer 35 origin servers public Internet institutional network 10 Mbps LAN 10 Mbps access link institutional cache Caching example (cont) Install cache suppose hit rate is 0.4 Consequence 40% requests will be satisfied almost immediately 60% requests satisfied by origin server utilization of access link reduced to 60%, resulting in negligible delays (say 10 msec). Total avg delay = Internet delay + access delay + LAN delay = 0.6*(2.01) secs + milliseconds < 1.4 secs Chapter 2. The Application Layer 36 origin servers public Internet institutional network 10 Mbps LAN 1.5 Mbps access link institutional cache 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 Chapter 2. The Application Layer 37 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 38 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 HTML có thể có nhiều đối tượng Text Images Hyper link Sử dụng thẻ (tag) để diễn đạt đối tượng. Thẻ mở, vd: ; ; ; Thẻ đóng, vd: ; ;; Công cụ: Text editor: Notepad, Ultra Edit... Microsoft FrontPage Macromedia Dreamweaver ( Chapter 2. The Application Layer 39 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. Lập trình web # Lập trình 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 Chapter 2. The Application Layer 40 HTML Form: Send user requests Simple Form Chapter 2. The Application Layer 41 Simple ASP <% dim welcome dim myName myName=Request.Form("myName") welcome = “Welcome " & myName & “!” Response.Write (welcome ) %> ASPHTML 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. Response Server response. Application QueryString Công cụ: MS Visual InterDev Chapter 2. The Application Layer 42 Mô hình 3 lớp trong lập trình web Chapter 2. The Application Layer 43 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 Socket programming Socket API introduced in BSD 4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm two types of transport service via socket API: unreliable datagram reliable, byte stream-oriented Chapter 2. The Application Layer 44 a host-local, application-created, OS-controlled interface (a “door”) into which application process can both send and receive messages to/from another application process socket Goal: learn how to build client/server application that communicate using sockets 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). Chapter 2. The Application Layer 45 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 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: Windows Socket Component. Chapter 2. The Application Layer 46 Winsock & OSI Chapter 2. The Application Layer 47 Bài tập 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ộp báo cáo bằng file nén .zip hoặc .rar bao gồm 3 file .htm và các file hình ảnh, âm thanhv.v liên quan (nếu có) 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: 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. Header Body Chapter 2. The Application Layer 48 : bắt đầu đóng tài liệu dạng HTML : quy định các đặc điểm phải hiển thị trang HTML : Hiển thị nội dung thanh tiêu đề cửa sổ WebBrowser : mở/đóng phần thân của 1 trang html : tạo liên kết (link) đến trang khác : font chữ : quy định đoạn văn : hiển thị ảnh : mở đóng một bảng : mở đóng 1 dòng trong bảng : mở/đóng 1 cell trong row của bảng Chapter 2. The Application Layer 49
File đính kèm:
- bai_giang_mang_may_tinh_chuong_2_phan_a_giao_thuc_tang_ung_d.pdf