Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng

pdf 28 trang ngocly 1720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mang_may_tinh_chuong_2_tang_ung_dung.pdf

Nội dung text: Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng

  1. Chương 2 Tầng ứng dụng 1 1. Tổng quan về tầng ứng dụng 2 1
  2. Nhắc lại về kiến trúc phân tầng  Cung cấp các dịch vụ trên Application mạng. (HTTP, Mail, )  Trong mô hình TCP/IP không Transport có 2 tầng trình diễn và tầng (UDP, TCP ) phiên, nhưng các giao thức tầng ứng dụng phải cung cấp Network các chức năng của 2 tầng (IP, ICMP ) này (biểu diễn dữ liệu, điều Datalink khiển phiên ) (Ethernet, ADSL ) Physical (bits ) 3 Ứng dụng và dịch vụ trên mạng? MUSIC ONLINE VoIP GAME CHAT VoD ON LINE e-Office SMS e-BANK MAIL SCHOOL WEB ON THE YOUTUBE INTERNET VIDEO CONFERENCE FTP EBAY GOOGLE SKYPE TELNET SSH NEWS E-COMMERCE BITTORENT GRID e-Goverment 4 2
  3. Ứng dụng mạng application transport  network Hoạt động trên các hệ thống data link đầu cuối (end system) physical  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, application transport gửi thông điệp yêu cầu dịch vụ network data link application  Server: cung cấp dịch vụ, trả physical transport network thông điệp đáp ứng data link physical  Ví dụ: Web  Web browser (trình duyệt Web): Chrome, Firefox  Web server: Apache, Tomcat 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 application application socket controlled by process process app developer transport transport network network controlled by OS link Network link physical physical 6 3
  4. Cá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 client  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 client lạc trực tiếp với các máy khách khác  Chủ client Server  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 client năng, phòng sự cố  e.g. Web, Mail, 8 4
  5. Mô hình ngang hàng thuần túy Peer Peer  Không có máy chủ trung tâm  Các máy có vai trò ngang nhau Peer Peer  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 Peer Peer 9 Mô hình lai  Một máy chủ trung tâm Client để 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 Server 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 Client Client  Sau khi kết nối, các máy sẽ gọi VoIP trực tiếp cho nhau P2P Comm. Client-Server Comm. 10 5
  6. 2. 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 6
  7. Chuyển đổi địa chỉ và ví dụ • Máy tính dùng địa chỉ IP • NSD dùng tên miền Tôi muốn vào địa chỉ www.soict.hust.edu.vn NSD Cần có chuyển Mời truy cập vào đổi địa chỉ 202.191.56.65 Máy chủ tên miền Bạn cũng có thể Máy chủ web 202.191.56.65 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 7
  8. Hệ 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 8
  9. Hệ 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 9
  10. Phân giải tương tác  Cơ chế mặc định trên các máy chủ DNS Tải đặt lên máy chủ tên miền root gốc rất lớn. Thực tế máy chủ server DNS cục bộ thường đã biết các máy chủ TLD (cơ chế cache). soict.hust.edu.vn soict.hust.edu.vn TLD 202.191.56.65 Hỏi dns.hust.edu.vn server Local/ISP dns.vn server Authoritative DNS server dns.hust.edu.vn 19 Phân giải đệ quy  Tùy chọn mở rộng Root server soict.hust.edu.vn soict.hust.edu.vn 202.191.56.65 TLD 202.191.56.65 server Local/ISP server dns.vn Tải đặt lên các máy chủ cấp trên soict.hust.edu.vn rất lớn. Thực tế máy chủ tên miền 202.191.56.65 gốc và máy chủ cấp 1 không thực hiện phân giải đệ quy Authoritative DNS server dns.hust.edu.vn 20 10
  11. Tấn công đầu độc DNS 21 3. HTTP và WWW 22 11
  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 12
  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 PC running Firefox browser  HTTP: HyperText Transfer Protocol  Mô hình Client/Server server  Client yêu cầu truy nhập tới các running trang web (chứa các đối tượng Apache Web web) và hiển thị chúng trên server trình duyệt  Server: Nhận yêu cầu và trả lời iphone running cho client 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 13
  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, GET /~tungbt/index.htm HTTP/1.1\r\n HEAD commands) Host: soict.hust.edu.vn\r\n User-Agent: Mozilla/5.0 Accept: text/html,application/xhtml+xml\r\n header Accept-Language: en-us,en;q=0.5\r\n lines Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n carriage return, Keep-Alive: 115\r\n line feed at start Connection: keep-alive\r\n \r\n of line indicates end of header lines 27 Các phương thức trong thông điệp yêu cầu HTTP/1.0 HTTP/1.1  GET  GET, POST, HEAD  POST  PUT  HEAD  tải file lên máy chủ, đường dẫn chỉ ra trong URL, file  yêu cầu máy chủ loại một số đối tượng ra khỏi thông để trong body điệp trả lời  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 14
  15. Khuôn dạng HTTP response status line (protocol status code HTTP/1.1 200 OK\r\n status phrase) 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 header Accept-Ranges: bytes\r\n lines Content-Length: 2652\r\n Connection: close\r\n Content-Type: text/html; charset=UTF-8\r\n \r\n data, e.g., data data data data data requested HTML file 29 Mã trạng thái trả lời Trong dòng đầu tiên của thông điệp trả lời, ví dụ 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 30 15
  16. Các liên kết HTTP HTTP không duy trì HTTP có duy trì  Chỉ một đối tượng web  Nhiều đối tượng có thể được gửi qua liên kết được gửi qua một liên TCP kết TCP.  Sử dụng mặc định  Sử dụng mặc định trong HTTP/1.0 trong HTTP/1.1  HTTP 1.0: RFC 1945  HTTP 1.1: RFC 2068 31 Hoạt động của HTTP/1.0 Web client Web server Init TCP connection Accept TCP connection OK, send HTTP request Send HTTP response: index.html Close TCP connection Parse index.html: has 10 reference to 10 images Accept TCP connection Repeat above steps 10 times! Send images 1 Close TCP connection 2xRTT 32 Time Time 16
  17. Hoạt động của HTTP/1.1 Web client Web server Init TCP connection Accept TCP connection OK, send HTTP request Send HTTP Parse index.html: has 10 response: index.html reference to 10 images request images 1 Send images 1 request images 2 Send images 2 Stop-and- Pipeline request images 10 wait! 33 Time Time HTTP/1.1 với pipeline Web client Web server Init TCP connection Accept TCP connection OK, send HTTP request Send HTTP Parse index.html: has 10 response: index.html reference to 10 images request images 1 -10 Send images 1-10 34 Time Time 17
  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 HTTP Request HTTP Response Cookie Trình duyệt Cookie Web server Cookie HTTP Request 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 18
  19. HTTP Cookie - Ví dụ HTTP Response 37 HTTP Cookie - Ví dụ  HTTP Request 38 19
  20. Bộ đệm- Caching www.xyz.com/index.htm  “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? 39 Sử dụng bộ đệm - web proxy  NSD đặt tham số kết nối truy cập web của trình Web duyệt qua một máy chủ server proxy Proxy  trình duyệt gửi yêu cấu server đến proxy client  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 40 20
  21. Phương thức GET có điều kiện proxy server  Mục đích: Máy chủ sẽ không gửi đối tượng web HTTP request msg nếu proxy còn lưu giữ thông If-modified-since: object tin cập nhật not  Proxy: chỉ ra thời gian cũ HTTP response modified của đối tượng HTTP/1.0 304 Not Modified If-modified-since:  server: Xác nhận lại có thay HTTP request msg đổi hay không: If-modified-since: HTTP/1.0 304 Not Modified object modified HTTP response HTTP/1.0 200 OK 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 21
  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 22
  23. Thư điện tử  MUA (Mail User Agent)  Giao thức:  Lấy thư từ máy chủ, gửi thư đến  Chuyển thư: SMTP-Simple máy chủ Mail Transfer Protocol  e.g. Outlook, Thunderbird  nhận thư  MTA (Mail Transfer Agent): :  Chứa hộp thư đến của NSD (mail  POP – Post Office Protocol box)  IMAP – Internet Mail Access  Hàng đợi để gửi thư đi Protocol  e.g. Sendmail, MS Exchange IMAP IMAP mail mail POP POP user server SMTP server user agent agent SMTP SMTP Mail box Message queue 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 23
  24. Các giao thức nhận thư SMTP SMTP access user user agent agent protocol sender’s mail receiver’s mail server server  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ủ 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 24
  25. Khuôn dạng thông điệp thư điện tử SMTP: Giao thức để truyền header thư blank RFC 822: Định nghĩa khuôn line dạng  Phần đầu body  To:  From:  Subject:  Phần thân  mã hóa dưới dạng mã ASCII 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 MIME version To: bob@hamburger.edu Subject: Picture of yummy crepe. method used MIME-Version: 1.0 to encode data Content-Transfer-Encoding: base64 Content-Type: image/jpeg multimedia data type, subtype, base64 encoded data parameter declaration base64 encoded data encoded data 50 25
  26. 5. Ứng dụng truyền tệp 51 FTP: File Transfer Protocol TCP control connection, port 21 user FTP FTP interface client server TCP data user connection, port 20 local file system remote file system  Mô hình Client-server  Điều khiển Out-of-band :  Lệnh của FTP : cổng 21  Trao đổi file giữa các máy  Dữ liệu: cổng 20  RFC 959  NSD phải đăng nhập trước khi  Sử dụng TCP, cổng 20, 21 truyền file  Một số server cho phép NSD với tên là anonymous 52 26
  27. Lệnh và mã trả lời Một số ví dụ Ví dụ về mã trả lời  331 Username OK,  USER username password required  PASS password  125 data connection  LIST : trả về danh sách already open; transfer file starting  425 Can’t open data  RETR filename Lấy file connection  STOR filename Đặt file  452 Error writing file lên máy chủ 53 Ví dụ về ftp client Command line 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 GUI FTP clients: IE, Firefox, GFTP, . 54 27
  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 28