Chương 7: Tầng ứng dụng 1
Tổng quan Buổi trước: Tầng giao vận Nguyên ý của tầng giao vận TCP và UDP Khái niệm kiểm soát uồng và kiểm soát tắc nghẽn Hôm nay: Tầng ứng dụng Nguyên ý của tầng ứng dụng Case study: HTTP, Mai, FTP 2
Khái niệm cơ bản 3
Nhắc ại về kiến trúc phân tầng Appication (HTTP, Mai, ) Transport (UDP, TCP ) Network (IP, ICMP ) Dataink (Ethernet, ADSL ) Physica (bits ) Hỗ trợ các ứng dụng trên mạng Truyền dữ iệ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 ý 4
Ứng dụng và dịch vụ trên mạng? VoIP SCHOOL ON THE INTERNET GOOGLE GAME ON LINE WEB TELNET CHAT SMS VIDEO CONFERENCE MUSIC ONLINE MAIL SKYPE e-office FTP VoD e-bank YOUTUBE EBAY SSH NEWS BITTORENT E-COMMERCE GRID e-goverment 5
Ứ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) Mai (SMTP/POP/IMAP) appication transport network data ink physica appication transport network data ink physica appication transport network data ink physica 6
Các thành phần của ứng dụng Chương trình Giao diện NSD: Hỗ trợ cho NSD để à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, Outook,..) 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 7
Giao tiếp giữa các tiến trình trên Internet Nhắc ại: Socket à 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 (Appication Programming Interface): Cho phép các tiến trình ựa chọn tham số, ựa chọn dịch vụ host or server process socket transport ayer services controed by app deveoper Internet controed by OS host or server process socket transport ayer services 8
Các mô hình ứng dụng Khách-chủ P2P Mô hình ai 9
Mô hình khách chủ Khách cient cient cient cient Server Gửi yêu cầu truy cập dịch vụ đến máy chủ Về nguyên tắc, không iên ạc trực tiếp với các máy khách khác Chủ Thường xuyên onine để 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, Mai, 10
Mô hình điểm-điểm thuần túy Peer Peer Peer Peer Peer Peer 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ể iên ạc trực tiếp với nhau Không cần vào mạng thường xuyên E.g. Gnutea 11
Mô hình ai Cient Cient Server Cient Một máy chủ trung tâm để quản ý 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 (trước 2016) Máy chủ Skype quản ý 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 P2P Comm. Cient-Server Comm. 12
Case study 1: HTTP và WWW 13
HTTP và Web WWW: Word Wide Web trao đổi dữ iệu siêu văn bản HTML (HyperText Markup Language) trên Internet HTTP: HyperText Transfer Protoco Mô hình Cient/Server Cient 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 ên trình duyệt Server: Nhận yêu cầu và trả ời cho cient Web cients IE Firefox Web server Navigator 14
HTTP hoạt động ntn? Server mở một TCP socket chờ tại cổng 80 (defaut) Cient khởi tạo một iên kết TCP tới server Server chấp nhận yêu cầu tạo iên kết Trao đổi thông điệp HTTP (giao thức ứng dụng) HTTP Request HTTP Response Đóng iên kết TCP 15
Khuôn dạng HTTP request Mã ASCII (dễ dàng đọc được dưới dạng văn bản) request ine (GET, POST, HEAD commands) CR, LF indicates end of message header ines GET /dccn/index.htm HTTP/1.1 Host: www.it-hut.edu.vn User-agent: Mozia/4.0 Connection: cose Accept-anguage:en-us (extra carriage return, ine feed) 16
Khuôn dạng HTTP response status ine (protoco status code status phrase) data, e.g., requested HTML fie header ines HTTP/1.1 200 OK Connection cose 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/htm data data data data data... 17
Các iên kết HTTP HTTP không duy trì Chỉ một đối tượng web được gửi qua iê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 iên kết TCP. Sử dụng mặc định trong HTTP/1.1 HTTP 1.1: RFC 2068 18
Hoạt động của HTTP/1.0 Web cient Web server Init TCP connection TCP Conn. Req. Accept TCP connection OK, send HTTP request Parse index.htm: has 10 reference to 10 images GET /index.htm index.htm TCP Conn. Req. Send HTTP response: index.htm Cose TCP connection Repeat above steps 10 times! Accepted Accept TCP connection GET img1.jpg 2xRTT img1.jpg Send images 1 Cose TCP connection 19 Time Time
Hoạt động của HTTP/1.1 Web cient Web server Init TCP connection TCP Conn. Req. Accepted Accept TCP connection OK, send HTTP request Parse index.htm: has 10 reference to 10 images request images 1 GET /index.htm index.htm GET Send HTTP response: index.htm img1.jpg Send images 1 request images 2 GET Send images 2 request images 10 Stop-andwait! Pipeine 20 Time Time
HTTP/1.1 với pipeine Web cient Web server Init TCP connection TCP Conn. Req. Accepted Accept TCP connection OK, send HTTP request Parse index.htm: has 10 reference to 10 images request images 1-10 GET /index.htm index.htm GET Send HTTP response: index.htm Send images 1-10 Time Time 21
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ủ oại một số đối tượng ra khỏi thông điệp trả ời HTTP/1.1 GET, POST, HEAD PUT tải fie ên máy chủ, đường dẫn chỉ ra trong URL, fie để trong body DELETE Xóa fie chỉ ra bới đường dẫn Lưu ý: Có 2 cách để gửi tham số đến server: POST hoặc GET http://www.googe.com/search?q=computer+network&fags=68&num=10 22
Mã trạng thái trả ời Trong dòng đầu tiên của thông điệp trả ời, ví dụ 200 OK request succeeded, requested object ater in this message 301 Moved Permanenty requested object moved, new ocation specified ater 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 23
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ả ưu ượng truy cập web đều đi qua iê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 24
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ả ời trình duyệt và ưu đệm đối tượng web Hit: Proxy trả đối tượng web cho trình duyệt cient cient Proxy server Web server 25
Web caches Proxy: Vừa à cient, vừa à 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 ưu ượng web trên đường ra Internet Có thể à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? 26
Loca cache Các trang web còn có thể được ưu trên máy cục bộ Sử dụng oca cache để Duyệt web offine Duyệt các trang web hiệu quả hơn: 27
Bài tập Mạng công ty kết nối với Internet bằng iên kết tốc độ 1,5 Mbps. Các fie cần tải có kích thước trung bình 900 kbits Tần suất trình duyệt trong máy công ty yêu cầu fie trên web =1,5 ần/s. Thời gian gửi yêu cầu HTTP từ router Internet-Server-nhận trả ời = 2 secondes Tính thời gina đáp ứng trung bình 28
Trong trường hợp các iên kết đã có tải. Thời gian phát dữ iệu trên iên kết có tải: = W m /(1 - ρ), W m : thời gian phát không tải ρ: tải Tìm thời gian đáp ứng trung bình. Giả sử có cache Cache hit: 0,4. Tính thời gian đáp ứng trung bình Dùng công thức: T m = Σ p i *T i, p i xác xuất có thời gian đáp ứng T i 29
30
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 ưu giữ thông tin cập nhật Proxy: chỉ ra thời gian cũ của đối tượng If-modified-since: <date> server: Xác nhận ại có thay đổi hay không: HTTP/1.0 304 Not Modified proxy HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> server object not modified object modified 31
Case study 2: Emai 32
Thư điện tử MUA (Mai User Agent) Lấy thư từ máy chủ, gửi thư đến máy chủ e.g. Outook, Thunderbird MTA (Mai Transfer Agent): : Chứa hộp thư đến của NSD (mai box) Hàng đợi để gửi thư đi e.g. Sendmai, MS Exchange Giao thức: Chuyển thư: STMP-Simpe Mai Transfer Protoco nhận thư POP Post Office Protoco IMAP Internet Mai Access Protoco user agent IMAP POP SMTP mai server SMTP mai server IMAP POP SMTP user agent 33 Mai box Message queue
Giao thức SMTP RFC 2821 TCP, port 25: Chuyển thư từ cient đến server và giữa các server với nhau Tương tác yêu cầu/trả ời Yêu cầu: Lệnh với mã ASCII Trả ời: mã trạng thái và dữ iệu 34
Các giao thức nhận thư user agent SMTP SMTP access protoco user agent POP: Post Office Protoco [RFC 1939] Đăng nhập và ấy hết thư về IMAP: Internet Mai Access Protoco [RFC 1730] Phức tạp hơn POP Cho phép ưu trữ và xử ý thư trên máy chủ Quota? sender s mai server receiver s mai server 35
Web Mai Sử dụng Web browser như một MUA MUA và MTA giao tiếp thông qua HTTP Mais được ưu trữ trên máy chủ E.g. Gmai, Hotmai, Yahoo! Mai, etc. Ngày nay, rất nhiều các MTA cho phép truy cập thông qua giao diện web http://mai.hut.edu.vn http://mai.fit.hut.edu.vn 36
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 bank ine 37
Để chuyển dữ iệu đa phương tiện: mutimedia extensions MIME: mutimedia mai extension, RFC 2045, 2056 Thêm một dòng trong phần đầu chỉ rõ khuôn dạng dữ iệu gửi đi MIME version method used to encode data mutimedia data type, subtype, parameter decaration encoded data From: aice@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 38
Case Study 3 Ứng dụng truyền tệp 39
FTP: Fie Transfer Protoco user interface FTP cient TCP contro connection, port 21 FTP server user TCP data connection, port 20 oca fie system Mô hình Cient-server Trao đổi fie giữa các máy RFC 959 Sử dụng TCP, cổng 20, 21 remote fie system Điều khiển Out-of-band : Lệnh của FTP : cổng 21 Dữ iệu: cổng 20 NSD phải đăng nhập trước khi truyền fie Một số server cho phép NSD với tên à anonymous 40
Lệnh và mã trả ời Một số ví dụ USER username PASS password LIST : trả về danh sách fie RETR fiename Lấy fie STOR fiename Đặt fie ên máy chủ Ví dụ về mã trả ời 331 Username OK, password required 125 data connection aready open; transfer starting 425 Can t open data connection 452 Error writing fie 41
Ví dụ về ftp cient Command ine C:\Documents and Settings\hongson>ftp ftp>? Commands may be abbreviated. Commands are:! deete itera prompt send? debug s put status append dir mdeete pwd trace ascii disconnect mdir quit type be get mget quote user binary gob mkdir recv verbose bye hash ms remotehep cd hep mput rename cose cd open rmdir GUI FTP cients: IE, Firefox, GFTP,. 42
Tóm tắt Mô hình ứng dụng Cient-server vs. P2P Một số ứng dụng và giao thức HTTP Mai FTP Về nhà, hãy tìm hiểu thêm P2P Giao diện ập trình Socket 43
Buổi học tới: Data-ink Layer Các nguyên ý tầng Data-ink Mạng LAN 44
Acknowedgment Bài giảng có sử dụng các tư iệu và hình vẽ từ: Tài iệu của trường đại học Keio và Ritsumekan Tài iệu Computer Network, a top down approach của J.F Kurose và K.W. Ross 45