Bài giảng Mạng máy tính - Chương 2: Tầng ứng dụng
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:
 bai_giang_mang_may_tinh_chuong_2_tang_ung_dung.pdf bai_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
- Chương 2 Tầng ứng dụng 1 1. Tổng quan về tầng ứng dụng 2 1
- 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
- Ứ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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Tấn công đầu độc DNS 21 3. HTTP và WWW 22 11
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- HTTP Cookie - Ví dụ HTTP Response 37 HTTP Cookie - Ví dụ  HTTP Request 38 19
- 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
- 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
- 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
- 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
- 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
- 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: [email protected] MIME version To: [email protected] 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
- 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
- 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
- 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






