Bài giảng Mạng máy tính - Chương 7: Tầng ứng dụng - Ngô Hồng Sơn

 Mô hình Client-server  Trao ñổi file giữa các máy  RFC 959  Sử dụng TCP, cổng 20, 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 kh truyền file  Một số server cho phép NSD với tên là anonymous

pdf43 trang | Chia sẻ: huongthu9 | Lượt xem: 428 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Mạng máy tính - Chương 7: Tầng ứng dụng - Ngô Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Chương 7: Tầng ứng dụng Giảng viên: Ngô Hồng Sơn Bộ môn Truyền thông và Mạng máy tính Khoa CNTT- ðHBK Hà Nội 2Tổng quan  Buổi trước: Tầng giao vận  Nguyên lý của tầng giao vận  TCP và UDP  Khái niệm kiểm soát luồng và kiểm soát tắc nghẽn  Hôm nay: Tầng ứng dụng  Nguyên lý của tầng ứng dụng  Case study: HTTP, Mail, FTP, DNS, P2P 3Khái niệm cơ bản 4Nhắ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) Hỗ trợ các ứng dụng trên mạng Truyền dữ liệu giữa các ứng dụng Chọn ñường và chuyển tiếp gói tin giữa các máy, các mạng Hỗ trợ việc truyền thông cho các thành phần kế tiếp trên cùng 1 mạng Truyền và nhận dòng bit trên ñường truyền vật lý 5Ứ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 6Ứng dụng và giao thức ứng dụng  Giao thức ứng dụng  ðịnh nghĩa các quy tắc giao tiếp  Sử dụng các dịch vụ giao vận (TCP/UDP)  Ứng dụng :  Các tiến trình giao tiếp với nhau trên Internet qua việc trao ñổi thông ñiệp  Hoạt ñộng trên các hệ thống cuối  Cài ñặt giao thức ứng dụng ñể cung cấp dịch vụ  Ví dụ ứng dụng/giao thức:  Web (HTTP)  Mail (SMTP/POP/IMAP) application transport network data link physical application transport network data link physical application transport network data link physical 7Các thành phần của ứng dụng  Chương trình  Giao diện NSD:  Hỗ trợ cho NSD ñể làm việc với ứng dụng,  e.g. trình duyệt Web (Firefox, IE), phần mềm thư ñiện tử (Thunderbird, Outlook,..)  Cài ñặt các giao thức và sử dụng dịch vụ giao vận  Chương trình máy chủ  Cung cấp dịch vụ cho người sử dụng  Tiến trình ứng dụng: chương trình ñang chạy trên hệ ñiều hành  Các tiến trình giao tiếp?  Trên một máy: IPC (inter-process communication)  Giữa các máy trên mạng: qua socket 8Giao tiếp giữa các tiến trình trên Internet  Nhắc lại: Socket là một giao diện giữa tiến trình ứng dụng và tầng giao vận  Socket ñược ñịnh danh bởi  Số hiệu cổng  ðịa chỉ IP  Kiểu giao thức giao vận (TCP hay UDP)  Socket API (Application Programming Interface): Cho phép các tiến trình lựa chọn tham số, lựa chọn dịch vụ process transport layer services socket host or server process transport layer services socket host or server Internet controlled by app developer controlled by OS 9Các mô hình ứng dụng  Khách-chủ  P2P  Mô hình lai 10 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 11 Mô hình ñiểm-ñiểm 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 12 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. 13 Case study 1: HTTP và WWW 14 HTTP và Web  WWW: World Wide Web  trao ñổi dữ liệu siêu văn bản HTML (HyperText Markup Language) trên Internet  HTTP: HyperText Transfer Protocol  Mô hình Client/Server  Client yêu cầu truy nhập tới các trang web (các ñối tượng web) và hiển thị chúng lên trình duyệt  Server: Nhận yêu cầu và trả lời cho client http request h t t p r e q u e s t h t t p r e s p o n s e http response Web clients Web server IE Firefox Navigator 15 HTTP hoạt ñộng ntn?  Server mở một TCP socket chờ 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 IP header TCP header Dữ liệu - payloadHTTP header 16 Khuôn dạng HTTP request  Mã ASCII (dễ dàng ñọc ñược dưới dạng văn bản) GET /dccn/index.html HTTP/1.1 Host: www.it-hut.edu.vn User-agent: Mozilla/4.0 Connection: close Accept-language:en-us (extra carriage return, line feed) request line (GET, POST, HEAD commands) header lines CR, LF indicates end of message 17 Khuôn dạng HTTP response HTTP/1.1 200 OK Connection close Date: Tue, 16 Mar 2008 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 15 Mar 2008 ... Content-Length: 8990 Content-Type: text/html data data data data data ... status line (protocol status code status phrase) header lines data, e.g., requested HTML file 18 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 19 Hoạt ñộng của HTTP/1.0 Time Time Web client Web server TCP Conn. Req. GET /index.html i n d e x . h t m l A c c e p t e d Init TCP connection Send HTTP response: index.html Close TCP connection OK, send HTTP request Accept TCP connection GET img1.jpg Parse index.html: has 10 reference to 10 images Repeat above steps 10 times! Send images 1 Close TCP connection TCP Conn. Req. i m g 1 . j p g Accept TCP connection 2xRTT 20 Hoạt ñộng của HTTP/1.1 Time Time Web client Web server TCP Conn. Req. GET /index.html GET i n d e x . h t m l A c c e p t e d Init TCP connection Send HTTP response: index.html OK, send HTTP request Accept TCP connection GET i m g 1 . j p g 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 21 HTTP/1.1 với pipeline Time Time Web client Web server TCP Conn. Req. GET /index.html GET i n d e x . h t m l A c c e p t e d 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 22 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 23 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ụ 24 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 25 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 H T T P r e q u e s t H T T P r e s p o n s e HTTP request H T T P r e q u e s t Web server HTTP response H T T P r e s p o n s e 26 Web caches  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? 27 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: 28 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 29 Quiz  Hãy cho biết liên kết TCP ñược thiết lập giữa các máy ntn trong trường hợp dùng web proxy?  Hình vẽ? 30 Case study 2: Email 31 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ư: STMP-Simple Mail Transfer Protocol  nhận thư  POP – Post Office Protocol  IMAP – Internet Mail Access Protocol SMTPPOP IMAP Mail box Message queue IMAP POP SMTPSMTP 32 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 33 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ủ  Quota? user agent sender’s mail server user agent SMTP SMTP access protocol receiver’s mail server 34 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   35 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 36 ðể 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 37 Case Study 3 Ứng dụng truyền tệp 38 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 39 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 40 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, . 41 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 42 Buổi học tới: Data-link Layer  Các nguyên lý tầng Data-link  Mạng LAN 43 Acknowledgment  Bài giảng có sử dụng các tư liệu và hình vẽ từ:  Tài liệu của trường ñại học Keio và Ritsumekan  Tài liệu “Computer Network, a top down approach” của J.F Kurose và K.W. Ross

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_mang_may_tinh_chuong_7_tang_ung_dung_ngo_hong_son.pdf