Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng - Bùi Trọng Tùng
Nhắc lại về kiến trúc phân tầng
Application
(HTTP, Mail, )
Transport
(UDP, TCP )
Network
(IP, ICMP )
Datalink
(Ethernet, ADSL )
Physical
(bits )
Cung cấp các dịch vụ trên
mạng.
Trong mô hình TCP/IP không
có 2 tầng trình diễn và tầng
phiên, nhưng các giao thức
tầng ứng dụng phải cung cấp
các chức năng của 2 tầng
này (biểu diễn dữ liệu, điều
khiển phiên )
Ứng dụng mạng
Hoạt động trên các hệ thống
đầu cuối (end system)
Cài đặt giao thức ứng dụng để
cung cấp dịch vụ
Gồm có 2 tiến trình giao tiếp
với nhau qua môi trường
mạng:
Client: cung cấp giao diện NSD,
gửi thông điệp yêu cầu dịch vụ
Server: cung cấp dịch vụ, trả
thông điệp đáp ứng
Ví dụ: Web
Web browser (trình duyệt Web):
Chrome, Firefox
Web server: Apache, Tomcat
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Tóm tắt nội dung tài liệu: Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng - Bùi Trọng Tùng
1Chương 2 Tầng ứng dụng 1 1. Tổng quan về tầng ứng dụng 2 2Nhắc lại về kiến trúc phân tầng Application (HTTP, Mail, ) Transport (UDP, TCP ) Network (IP, ICMP) Datalink (Ethernet, ADSL) Physical (bits) Cung cấp các dịch vụ trên mạng. Trong mô hình TCP/IP không có 2 tầng trình diễn và tầng phiên, nhưng các giao thức tầng ứng dụng phải cung cấp các chức năng của 2 tầng này (biểu diễn dữ liệu, điều khiển phiên) 3 Ứng dụng và dịch vụ trên mạng? CHATGAME ON LINE WEB MAIL SKYPE YOUTUBE SSH TELNET FTP VoD SCHOOL ON THE INTERNET GOOGLE BITTORENT E-COMMERCE EBAY MUSIC ONLINE GRID VIDEO CONFERENCE e-BANK VoIP NEWS SMS e-Office e-Goverment 4 3Ứng dụng mạng Hoạt động trên các hệ thống đầu cuối (end system) Cài đặt giao thức ứng dụng để cung cấp dịch vụ Gồm có 2 tiến trình giao tiếp với nhau qua môi trường mạng: Client: cung cấp giao diện NSD, gửi thông điệp yêu cầu dịch vụ Server: cung cấp dịch vụ, trả thông điệp đáp ứng Ví dụ: Web Web browser (trình duyệt Web): Chrome, Firefox Web server: Apache, Tomcat application transport network data link physical application transport network data link physical application transport network data link physical 5 Giao tiếp giữa các tiến trình ứng dụng Socket: SAP của tầng giao vận Các tiến trình ứng dụng sử dụng socket gọi dịch vụ của tầng giao vận để trao đổi thông điệp Định danh cho tiến trình bởi: Địa chỉ IP, Số hiệu cổng Ví dụ: tiến trình web server trên máy chủ của SoICT có định danh 202.191.56.65:80 Network controlled by OS controlled by app developer transport application physical link network process transport application physical link network process socket 6 4Các mô hình ứng dụng Khách-chủ (Client/Server) Ngang hàng (P2P: Peer-to-peer) Mô hình lai 7 Mô hình khách chủ Khách Gửi yêu cầu truy cập dịch vụ đến máy chủ Về nguyên tắc, không liên lạc trực tiếp với các máy khách khác Chủ Thường xuyên online để chờ y/c đến từ máy trạm Có thể có máy chủ dự phòng để nâng cao hiệu năng, phòng sự cố e.g. Web, Mail, client client client client Server 8 5Mô hình ngang hàng thuần túy Không có máy chủ trung tâm Các máy có vai trò ngang nhau Hai máy bất kỳ có thể liên lạc trực tiếp với nhau Không cần vào mạng thường xuyên E.g. Gnutella PeerPeer Peer Peer Peer Peer 9 Mô hình lai Một máy chủ trung tâm để quản lý NSD, thông tin tìm kiếm Các máy khách sẽ giao tiếp trực tiếp với nhau sau khi đăng nhập E.g. Skype Máy chủ Skype quản lý các phiên đăng nhập, mật khẩu Sau khi kết nối, các máy sẽ gọi VoIP trực tiếp cho nhau Server Client Client Client Client-Server Comm. P2P Comm. 10 62. Tên miền và dịch vụ DNS 11 Giới thiệu chung Tên miền: định danh trên tầng ứng dụng cho các nút mạng Trên Internet được quản lý tập trung Quốc tế: ICANN Việt Nam: VNNIC DNS(Domain Name System): hệ thống tên miền Không gian thông tin tên miền Gồm các máy chủ quản lý thông tin tên miền và cung cấp dịch vụ DNS Vấn đề phân giải tên miền sang địa chỉ IP Người sử dụng dùng tên miền để truy cập dịch vụ Máy tính và các thiết bị mạng không sử dụng tên miền mà dùng địa chỉ IP khi trao đổi dữ liệu Làm thế nào để chuyển đổi tên miền sang địa chỉ IP? 12 7Chuyển đổi địa chỉ và ví dụ NSD Tôi muốn vào địa chỉ www.soict.hust.edu.vn Máy chủ tên miền Mời truy cập vào 202.191.56.65 Máy chủ web 202.191.56.65 Cần có chuyển đổi địa chỉ • Máy tính dùng địa chỉ IP • NSD dùng tên miền Bạn cũng có thể nhập địa chỉ trực tiếp 13 Quy tắc đặt tên miền Quy tắc đặt tên miền: Độ dài tối đa : 255 ký tự Độ dài tối đa của label : 63 ký tự Label phải bắt đầu bằng số hoặc chữ, chỉ chứa số, chữ, “-“, “.” Phân cấp tên miền : gốc, cấp 1, cấp 2 14 8Hệ thống DNS Không gian tên miền Kiến trúc : hình cây Root Zone Mỗi nút là một tập hợp các bản ghi mô tả tên miền tương ứng với nút đó. SOA NS A PTR CNAME 15 Hệ thống máy chủ DNS Máy chủ tên miền gốc (Root server) Trả lời truy vấn cho các máy chủ cục bộ Quản lý các zone và phân quyền quản lý cho máy chủ cấp dưới Có 13 hệ thống máy chủ gốc trên mạng Internet ( servers.org) 16 9Hệ thống máy chủ DNS (tiếp) Máy chủ tên miền cấp 1 (Top Level Domain) Quản lý tên miền cấp 1 Máy chủ được ủy quyền (Authoritative DNS servers) Quản lý tên miền cấp dưới Máy chủ của các tổ chức: của ISP Không nằm trong phân cấp của DNS Máy chủ cục bộ: dành cho mạng nội bộ của cơ quan tổ chức Không nằm trong phân cấp của DNS 17 Phân giải tên miền Tự phân giải File HOST : C:\WINDOWS\system32\drivers\etc\ Cache Dịch vụ phân giải tên miền DNS: client/server UDP, Port 53 Phân giải đệ quy (Recursive Query) Phân giải tương tác (Interactive Query) 18 10 Phân giải tương tác Cơ chế mặc định trên các máy chủ DNS root server TLD server Authoritative DNS server soict.hust.edu.vn soict.hust.edu.vn dns.vn dns.hust.edu.vn Hỏi dns.hust.edu.vn202.191.56.65 Tải đặt lên máy chủ tên miền gốc rất lớn. Thực tế máy chủ DNS cục bộ thường đã biết các máy chủ TLD (cơ chế cache). Local/ISP server 19 Phân giải đệ quy Tùy chọn mở rộng Root server TLD server Authoritative DNS server soict.hust.edu.vn soict.hust.edu.vn dns.vn dns.hust.edu.vn 202.191.56.65 202.191.56.65 soict.hust.edu.vn 202.191.56.65 Tải đặt lên các máy chủ cấp trên rất lớn. Thực tế máy chủ tên miền gốc và máy chủ cấp 1 không thực hiện phân giải đệ quy Local/ISP server 20 11 Tấn công đầu độc DNS 21 3. HTTP và WWW 22 12 HTTP và Web Internet trước thập kỷ 1990s: Hầu như chỉ sử dụng hạn chế trong cơ quan chính phủ, phòng nghiên cứu... Các dịch vụ email, FPT không phù hợp cho chia sẻ thông tin đại chúng Không có cơ chế hiệu quả để liên kết các tài nguyên thông tin nằm rải rác trên Internet Năm 1990, Tim Berners-Lee giới thiệu World Wide Web: Trao đổi thông tin dưới dạng siêu văn bản (hypertext) sử dụng ngôn ngữ HTML (Hypertext Markup Language) Các đối tượng không cần đóng gói “tất cả trong một” như trên các văn bản trước đó Siêu văn bản chỉ chứa chứa liên kết (hypertext) tới các đối tượng khác (định vị bằng URL). 23 Uniform Resource Locator Định vị một tài nguyên bất kỳ trên mạng và cách thức để truy cập tài nguyên đó protocol://hostname[:port]/directory-path/resource protocol: Giao thức (http, ftp, https, smtp, rtsp) hostname: tên miền, địa chỉ IP port: cổng ứng dụng (có thể không cần) directory path: đường dẫn tới tài nguyên resource: định danh của tài nguyên 24 13 HTTP và Web WWW: World Wide Web trao đổi dữ liệu siêu văn bản HTML (HyperText Markup Language) trên mạng HTTP: HyperText Transfer Protocol Mô hình Client/Server Client yêu cầu truy nhập tới các trang web (chứa các đối tượng web) và hiển thị chúng trên trình duyệt Server: Nhận yêu cầu và trả lời cho client PC running Firefox browser server running Apache Web server iphone running Safari browser 25 HTTP hoạt động ntn? Server mở một TCP socket chờ yêu cầu kết nối tại cổng 80 (default) Client khởi tạo một liên kết TCP tới server Server chấp nhận yêu cầu, tạo liên kết Trao đổi thông điệp HTTP (giao thức ứng dụng) HTTP Request HTTP Response Đóng liên kết TCP 26 14 Khuôn dạng HTTP request Mã ASCII (dễ dàng đọc được dưới dạng văn bản) request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines GET /~tungbt/index.htm HTTP/1.1\r\n Host: soict.hust.edu.vn\r\n User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n 27 Các phương thức trong thông điệp yêu cầu HTTP/1.0 GET POST HEAD yêu cầu máy chủ loại một số đối tượng ra khỏi thông điệp trả lời HTTP/1.1 GET, POST, HEAD PUT tải file lên máy chủ, đường dẫn chỉ ra trong URL, file để trong body DELETE Xóa file chỉ ra bới đường dẫn Lưu ý: Có 2 cách để gửi tham số đến server: POST hoặc GET 28 15 Khuôn dạng HTTP response status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/1.1 200 OK\r\n Date: Thu, 31 Jul 2014 00:00:14 GMT\r\n Server: Apache/2.2.15 (CentOS)\r\n Last-Modified: Wed, 30 Jul 2014 23:59:50 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Connection: close\r\n Content-Type: text/html; charset=UTF-8\r\n \r\n data data data data data ... 29 Mã trạng thái trả lời 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 Trong dòng đầu tiên của thông điệp trả lời, ví dụ 30 16 Các liên kết HTTP HTTP không duy trì Chỉ một đối tượng web được gửi qua liên kết TCP Sử dụng mặc định trong HTTP/1.0 HTTP 1.0: RFC 1945 HTTP có duy trì Nhiều đối tượng có thể được gửi qua một liên kết TCP. Sử dụng mặc định trong HTTP/1.1 HTTP 1.1: RFC 2068 31 Hoạt động của HTTP/1.0 Time Time Web client Web server Init TCP connection Send HTTP response: index.html Close TCP connection OK, send HTTP request Accept TCP connection Parse index.html: has 10 reference to 10 images Repeat above steps 10 times! Send images 1 Close TCP connection Accept TCP connection 2xRTT 32 17 Hoạt động của HTTP/1.1 Time Time Web client Web server Init TCP connection Send HTTP response: index.html OK, send HTTP request Accept TCP connection request images 2 Parse index.html: has 10 reference to 10 images request images 1 Send images 1 Send images 2 request images 10 Stop-and- wait! Pipeline 33 HTTP/1.1 với pipeline Time Time Web client Web server Init TCP connection Send HTTP response: index.html OK, send HTTP request Accept TCP connection Parse index.html: has 10 reference to 10 images request images 1 -10 Send images 1-10 34 18 HTTP là giao thức stateless Một phiên hoạt động của HTTP: Trình duyệt kết nối với Web server Trình duyệt gửi thông điệp yêu cầu HTTP Request Web server đáp ứng với một thông điệp HTTP Response lặp lại Trình duyệt ngắt kết nối Các thông điệp HTTP Request được xử lý độc lập Web server không ghi nhớ trạng thái của phiên HTTP Nếu dịch vụ Web cần xác thực người dùng thì người dùng sẽ phải đăng nhập lại cho mỗi thông điệp HTTP Request gửi đi 35 HTTP Cookie Cookie: dữ liệu do Web server tạo ra, chứa thông tin trạng thái của phiên làm việc Server có thể lưu lại cookie(một phần hoặc toàn bộ) Sau khi xử lý yêu cầu, Web server trả lại thông điệp HTTP Response với coookie đính kèm Set-Cookie: key = value; options; Trình duyệt lưu cookie Trình duyệt gửi HTTP Request tiếp theo với cookie được đính kèm 36 Trình duyệt Web server HTTP Request HTTP Response CookieCookieCookie HTTP Request Cookie 19 HTTP Cookie - Ví dụ 37 HTTP Response HTTP Cookie - Ví dụ HTTP Request 38 20 Bộ đệm- Caching “Cache”: Bộ nhớ đệm Khái niệm bộ nhớ cache trong máy tính L1 cache, L2 cache “cache miss”, “cache hit” Xem xét trường hợp sau: Một tổ chức có một đường nối tới Internet Tất cả lưu lượng truy cập web đều đi qua liên kết này Nhiều NSD web có thể cùng truy nhập tới cùng một nội dung Giải pháp cải tiến? www.xyz.com/index.htm 39 Sử dụng bộ đệm - web proxy NSD đặt tham số kết nối truy cập web của trình duyệt qua một máy chủ proxy trình duyệt gửi yêu cấu đến proxy Miss: Proxy gửi yêu cầu tới máy chủ web, trả lời trình duyệt và lưu đệm đối tượng web Hit: Proxy trả đối tượng web cho trình duyệt client Proxy server client Web server 40 21 Phương thức GET có điều kiện Mục đích: Máy chủ sẽ không gửi đối tượng web nếu proxy còn lưu giữ thông tin cập nhật Proxy: chỉ ra thời gian cũ của đối tượng If-modified-since: server: Xác nhận lại có thay đổi hay không: HTTP/1.0 304 Not Modified proxy 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.0 200 OK object modified 41 Web proxy Proxy: Vừa là client, vừa là server Sử dụng bởi các ISP nhỏ, các tổ chức như trường học, công ty Ảnh hưởng của proxy Làm giảm lưu lượng web trên đường ra Internet Có thể làm giảm thời gian đáp ứng Thử phân tích vài trường hợp cache hit cache miss proxy bị quá tải Trang web thay đổi/trang web động? 42 22 Local cache Các trang web còn có thể được lưu trên máy cục bộ Sử dụng local cache để Duyệt web offline Duyệt các trang web hiệu quả hơn 43 4. Email 44 23 Thư điện tử MUA (Mail User Agent) Lấy thư từ máy chủ, gửi thư đến máy chủ e.g. Outlook, Thunderbird MTA (Mail Transfer Agent): : Chứa hộp thư đến của NSD (mail box) Hàng đợi để gửi thư đi e.g. Sendmail, MS Exchange user agent mail server mail server user agent Giao thức: Chuyển thư: SMTP-Simple Mail Transfer Protocol nhận thư POP – Post Office Protocol IMAP – Internet Mail Access Protocol SMTP POP IMAP Mail box Message queue IMAP POP SMTPSMTP 45 Giao thức SMTP RFC 2821 TCP, port 25: Chuyển thư từ client đến server và giữa các server với nhau Tương tác yêu cầu/trả lời Yêu cầu: Lệnh với mã ASCII Trả lời: mã trạng thái và dữ liệu 46 24 Các giao thức nhận thư POP: Post Office Protocol [RFC 1939] Đăng nhập và lấy hết thư về IMAP: Internet Mail Access Protocol [RFC 1730] Phức tạp hơn POP Cho phép lưu trữ và xử lý thư trên máy chủ user agent sender’s mail server user agent SMTP SMTP access protocol receiver’s mail server 47 Web Mail Sử dụng Web browser như một MUA MUA và MTA giao tiếp thông qua HTTP Mails được lưu trữ trên máy chủ E.g. Gmail, Hotmail, Yahoo! Mail, etc. Ngày nay, rất nhiều các MTA cho phép truy cập thông qua giao diện web 48 25 Khuôn dạng thông điệp thư điện tử SMTP: Giao thức để truyền thư RFC 822: Định nghĩa khuôn dạng Phần đầu To: From: Subject: Phần thân mã hóa dưới dạng mã ASCII header body blank line 49 Để chuyển dữ liệu đa phương tiện: multimedia extensions MIME: multimedia mail extension, RFC 2045, 2056 Thêm một dòng trong phần đầu chỉ rõ khuôn dạng dữ liệu gửi đi From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data multimedia data type, subtype, parameter declaration method used to encode data MIME version encoded data 50 26 5. Ứng dụng truyền tệp 51 FTP: File Transfer Protocol Mô hình Client-server Trao đổi file giữa các máy RFC 959 Sử dụng TCP, cổng 20, 21 TCP data connection, port 20 FTP server user interface FTP client local file system remote file system user TCP control connection, port 21 Điều khiển Out-of-band : Lệnh của FTP : cổng 21 Dữ liệu: cổng 20 NSD phải đăng nhập trước khi truyền file Một số server cho phép NSD với tên là anonymous 52 27 Lệnh và mã trả lời Một số ví dụ USER username PASS password LIST : trả về danh sách file RETR filename Lấy file STOR filename Đặt file lên máy chủ Ví dụ về mã trả lời 331 Username OK, password required 125 data connection already open; transfer starting 425 Can’t open data connection 452 Error writing file 53 Ví dụ về ftp client C:\Documents and Settings\hongson>ftp ftp> ? Commands may be abbreviated. Commands are: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir Command line GUI FTP clients: IE, Firefox, GFTP, . 54 28 Tóm tắt Mô hình ứng dụng Client-server vs. P2P Một số ứng dụng và giao thức HTTP Mail FTP Về nhà, hãy tìm hiểu thêm P2P Giao diện lập trình Socket 55 Tài liệu tham khảo Keio University “Computer Networking: A Top Down Approach”, J.Kurose “Computer Network”, Berkeley University 56
File đính kèm:
- bai_giang_mang_may_tinh_chuong_2_tang_ung_dung_bui_trong_tun.pdf