Mạng máy tính và internet - Chương 3: Các giao thức tầng ứng dụng

1. Các nguyên lý của tầng ứng dụng 2. Web và HTTP 3. FTP 4. Thư điện tử - SMTP, POP3, IMAP 5. DNS 6. Ứng dụng P2P

pdf20 trang | Chia sẻ: thuychi16 | Lượt xem: 1809 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Mạng máy tính và internet - Chương 3: Các giao thức tầng ứng dụng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MẠNG MÁY TÍNH VÀ INTERNET Chương 3: Các giao thức tầng ứng dụng bangtqh@utc2.edu.vn Nội dung 1. Các nguyên lý của tầng ứng dụng 2. Web và HTTP 3. FTP 4. Thư điện tử - SMTP, POP3, IMAP bangtqh@utc2.edu.vn 5. DNS 6. Ứng dụng P2P Mạng máy tính & Internet - Chương 3 2 3.1. Các nguyên lý tầng ứng dụng Kiến trúc ứng dụng mạng – Client – Server – Peer – to – Peer (P2P) – Lai giữa P2P và Client-Server bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 3 3.1. Các nguyên lý tầng ứng dụng (tt) Kiến trúc Client-Server Server:  Hoạt động 24/7  Địa chỉ IP cố định  Hệ thống máy chủ cho việc mở rộng bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 4 Client:  Giao tiếp với máy chủ  Có thể kết nối không liên tục  Có thể có địa chỉ IP động  Không kết nối trực tiếp với người dùng khác 3.1. Các nguyên lý tầng ứng dụng (tt) Kiến trúc P2P – Không có máy chủ – Các máy đầu cuối liên lạc trực tiếp với nhau – Các bên thực hiện kết nối không liên tục có thể có bangtqh@utc2.edu.vn địa chỉ IP động • Quản lý phức tạp Mạng máy tính & Internet - Chương 3 5 3.1. Các nguyên lý tầng ứng dụng (tt) Kiến trúc lai giữa P2P và Client-Server – Skype, Zalo • Điện thoại – IP: ứng dụng P2P • Máy chủ tập trung quảng lý địa chỉ các bên tham gia • Kết nối khách-khách: trực tiếp (không thông qua máy chủ) bangtqh@utc2.edu.vn – Nhắn tin trực tiếp • Hai người dùng chat với nhau bằng P2P • Máy chủ đảm bảo: quản lý người dùng – Mgười dùng đăng kí địa chỉ IP với máy chủ khi họ đăng nhập – Máy chủ cung cấp danh sách bạn bè đang trên mạng – Mgười dùng hỏi máy chủ để có địa chỉ IP của bạn Mạng máy tính & Internet - Chương 3 6 Liên lạc giữa các tiến trình  Tiến trình (process): – Chương trình chạy trên 1 máy  Trên 1 máy 2 tiến trình khác nhau liên lạc với nhau bằng cách sử dụng giao tiếp liên tiến trình (inter-process communication) do OS quy Tiến trình trên client: Bắt đầu quá trình kết nối Tiến trình trên server: Chờ client kết nối tới bangtqh@utc2.edu.vn định  Các tiến trình trên các máy khác nhau liên lạc với nhau thông qua việc trao đổi các thông điệp (message) Mạng máy tính & Internet - Chương 3 7 Các ứng dụng P2P có cả tiến trình khách và tiến trình chủ Socket – hốc kết nối Các tiến trình gửi/nhận thông điệp qua socket Socket tương tự như cánh cửa – Tiến trình gửi đẩy message ra ngoài cánh cửa – Tiến trình gửi phụ thuộc vào hạ tầng truyền tải phía bên kia của cánh cửa để mang thông điệp tới socket của tiến trình nhận bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 8 Internet transport application physical link network process transport application physical link network process socket Điều khiển bởi lập trình viên ứng dụng Điều khiển bởi Hệ điều hành Quá trình đánh địa chỉ Để nhận được các message, tiến trình phải có ký hiệu nhận dạng Mỗi máy tính tham gia vào mạng có 1 địa chỉ Ký hiệu nhận dạng bao gồm địa chỉ IP và số hiệu cổng (port) tương ứng với mỗi tiến trình trên máy Ví dụ về port: bangtqh@utc2.edu.vn IP duy nhất Hỏi: Địa chỉ IP có thể đùng để định danh các tiến trình không? – Đáp: Không! Một máy có thể có nhiều tiến trình – Máy chủ HTTP: 80 – Máy chủ Mail: 25 Mạng máy tính & Internet - Chương 3 9 3.1. Các nguyên lý tầng ứng dụng (tt) Giao thức tầng ứng dụng quy định – Loại thông điệp được trao đổi • Truy vấn, phản hồi – Cú pháp của thông điệp • Có những trường hợp nào của thông điệp & Chúng được trình Các giao thức công khai – Định nghĩa trong các bản RFC – Cho phép tương tác qua lại bangtqh@utc2.edu.vn bày ntn? – Ngữ nghĩa của thông điệp • Ý nghĩa các trường thông tin có trong thông điệp – Quy tắc về thời điểm và cách thức các tiến trình gửi/nhận các thông điệp Các giao thức sở hữu – Vd: Skype, Zalo Mạng máy tính & Internet - Chương 3 10 Các ứng dụng yêu cầu gì ở tầng truyền tải? Mất mát dữ liệu  Một số ứng dụng yêu cầu dữ liệu gửi/nhận phải chính xác 100% (không mất mát)  Một số ứng dụng khác lại có chấp nhật mất mát ở 1 tỷ lệ nhất định Thông lượng  Một số ứng dụng yêu cầu một thông lượng tối thiểu để làm việc hiệu quả  Số khác lại tận dụng mọi thông lượng mà nó có bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 11 Độ trễ  Một số ứng dụng (vd: Điện thoại, trò chơiy) yêu cầu độ trễ thấp thể sử dụng Bảo mật  Mã hóa, toàn vẹn dữ liệu, y Ứng dụng yêu cầu gì ở tầng truyền tải? Yêu cầu của một số ứng dụng phổ biến bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 12 Các dịch vụ tầng truyển tải TCP – Hướng kết nối: Yêu cầu tạo kết nối giữa khách / chủ – Truyền tải tin cậy: đảm bảo dữ liệu truyền tải đúng và đủ – Kiểm soát lưu lượng: Bên gửi chỉ gửi số lượng phù UDP – Truyền tải dữ liệu không tin cậy (có thể mất dữ liệu) – Không cung cấp: • Thiết lập kết nối bangtqh@utc2.edu.vn hợp với khả năng xử lý của bên nhận – Kiểm soát tắc nghẽn: Giảm tốc độ gửi khi mang bị quá tải – Không đảm bảo: độ trễ, thông lượng tối thiểu, bảo mật • Kiểm soát lưu lượng • Kiểm soát tắc nghẽn, độ trễ, thông lượng tối thiểu • Bảo mật Mạng máy tính & Internet - Chương 3 13 Hỏi: Tại sao cần có UDP ? Ứng dụng internet và giao thức tầng truyền tải Application e-mail remote terminal access Web application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] underlying transport protocol TCP TCP TCP bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 14 file transfer streaming multimedia Internet telephony FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) TCP TCP or UDP TCP or UDP TCP/UDP có an toàn?  TCP/UDP – Không mã hóa – Dữ liện thô từ socket truyền vào môi trường Internet  SSL (Secure Socket Layer) – Mã hóa dữ liệu kết nối – Đảm bảo an toàn dữ liệu bangtqh@utc2.edu.vn – Xác thực tại đầu cuối  Triển khai SSL – Applications sử dụng SSL API để “trao đổi” với TCP – Sử dụng SSL Socket API: Ứng dụng “trao đổi” plan-text với Socket nhưng trước khi gửi vào môi trường internet SSL Socket sẽ mã hóa dữ liệu. Mạng máy tính & Internet - Chương 3 15 Nội dung 1. Các nguyên lý của tầng ứng dụng 2. Web và HTTP 3. FTP 4. Thư điện tử - SMTP, POP3, IMAP bangtqh@utc2.edu.vn 5. DNS 6. Ứng dụng P2P Mạng máy tính & Internet - Chương 3 16 3.2. Web và HTTP Khái niệm cơ bản  Một trang web chứa nhiều đối tượng  Một đối tượng có thể là tập tin HTML, ảnh JPEG, tệp âm thanh,y  Trang web ~ tập tin HTML chính, trong tập tin này sẽ chỉ bangtqh@utc2.edu.vn dẫn tham chiếu tới các đối tượng khác trên trang.  Mối đối tượng được tham chiếu quá URL – Unified Resource Locator (định vị tài nguyên thống nhất)  Ví dụ URL: Mạng máy tính & Internet - Chương 3 17 www.someschool.edu/someDept/pic.gif host name path name 3.2. Web và HTTP Tóm tắt HTTP – Hypertext Transfer Protocol  Là giao thức ứng dụng web  Hoạt động theo mô hình Client-Server – Client: Chạy các trình duyệt web có nhiệm vụ gửi yêu cầu, PC running Firefox browser bangtqh@utc2.edu.vn nhận và trình bày các đối tượng trong 1 trang web – Server: Tổng hợp, gửi các đối tượng theo yêu cầu từ phía clien Mạng máy tính & Internet - Chương 3 18 server running Apache Web server iphone running Safari browser Tóm tắt HTTP (tt) Sử dụng kết nối TCP ở tầng truyền tải – Client khởi tạo kết nối TCP (tạo socket) tới máy chủ (cổng 80) – Server chấp nhận kết HTTP là giao thức không lưu giữ trạng thái – Server không lưu thông tin nào về người dùng Hơn nữa bangtqh@utc2.edu.vn nối TCP từ Client – Thông điệp HTTP (giao thức tầng ứng dụng) được trao đổi giữa web-browser và web-server – Đóng kết nối TCP Mạng máy tính & Internet - Chương 3 19 Những giao thức có lưu lại trạng thái khá phức tạp  Lịch sử truy vấn (trạng thái) phải được lưu giữ  Trường hợp máy chủ/máy khách bị hỏng hoặc đứt kết nối thì trạng thái của 2 máy phải “cân chỉnh” lại cho thống nhất Các loại HTTP non-persistent HTTP – Mỗi đối tượng được gửi thông qua 1 phiên kết nối giữa Client và Web-Server Persistent – HTTP – Nhiều đối tượng được truyền qua 1 phiên kết nối giữa client và web- server bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 20 Non-persistent HTTP Giả sử người dùng yêu cầu URL sau: 1a. Client khởi tạo kết nối TCP tới máy chủ HTTP (tiến trình) tại www.someSchool.edu ở cổng 80 1b. Máy chủ HTTP tại www.someSchool.edu chờ kết nối TCP tại cổng 80. “chấp nhận” kết nối và báo lại cho (Chứa text tham chiếu tới 10 ảnh jpeg) www.someSchool.edu/someDepartment/home.index bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 21 2. Client gửi request message (chứa URL) vào hốc kết nối TCP. Message này chỉ ra client muốn có đối tượng “someDepartment/home.index” client 3. Máy chủ HTTP server nhận được thông điệp truy vấn, tạo ra một response message chứa đối tượng được yêu cầu, và gửi thông điệp vào hốc kết nối time Non-persistent HTTP (tt) 5. Client nhận được thông điệp phản hồi chứa tệp html, hiển thị html. Phân tích tệp html tìm ra 10 liên kết tới các đối tượng jpeg 4. máy chủ HTTP đóng kết nối TCP. bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 22 6. các bước 1-5 lặp lại cho mỗi trong 10 đối tượng jpeg time Thời gian phản hồi của Non-persistent HTTP Thời gian xoay vòng – RTT: – RTT = Round Trip Time – là thời gian cần để một gói tin di chuyển từ khách tới chủ và quay trở lại  Thời gian phản hồi: initiate TCP connection RTT request bangtqh@utc2.edu.vn – Một RTT để khởi tạo kết nối TCP – Một RTT để gửi truy vấn HTTP và vài byte đầu của response mesage nhận lại – thời gian truyền tải tệp tổng = 2RTT+ t/g truyền tải Mạng máy tính & Internet - Chương 3 23 time to transmit file file RTT file received time time persistent HTTP Những vấn đề của non-persistent HTTP : – Yêu cầu 2 RTT cho mỗi đối tượng – Hệ điều hành (HĐH – OS) tăng tải cho mỗi Persistent HTTP – Máy chủ giữ lại liên kết sau khi gửi phản hồi, gọi là liên kết mở – Những thông điệp HTTP tiếp theo giữa cặp khách/chủ đó sẽ được gửi qua liên kết mở ở bangtqh@utc2.edu.vn kết nối TCP – Hrình duyệt thường mở nhiều kết nối TCP song song để tải những đối tượng liên kết trên – Client gửi truy vấn ngay khi nó gặp phải một liên kết tới đối tượng – Chỉ cần 1 RTT cho tất cả các đối tượng được liên kết tới Mạng máy tính & Internet - Chương 3 24 HTTP request message HTTP có 2 loại message – Truy vấn: request message từ client → webserver – Phản hồi: response message từ webserver → client Request message Dòng truy vấn (các lệnh GET, Ký hiệu về đầu dòng (carry-return line-feed ký tự kết thúc dòng bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 25 POST, HEAD) Các dòng mào đầu Xuống dòng báo hiệu kết thúc thông điệp GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n 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 HTTP request message (tt) request line header lines method sp sp cr lfversionURL cr lfvalueheader field name ~~ ~~ bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 26 body cr lfvalueheader field name cr lf entity body~~ ~~ HTTP request message (tt) Tải dữ liệu từ form-input phía Client Phương pháp POST – Trang web thường có những khung điền dữ liệu – Dữ liệu từ của các ô input này được đính vào phần thân (entity body) của thông điệp request bangtqh@utc2.edu.vn  Phương pháp GET – sử dụng phương pháp GET – Dữ liệu vào được tải lên trực tiếp trong các trường của URL của dòng truy vấn Mạng máy tính & Internet - Chương 3 27 HTTP request message (tt) HTTP/1.0 GET POST HEAD HTTP/1.1 GET, POST, HEAD PUT – Tải tệp tin trong phần thân (entity body) lên Các phương pháp tải dữ liệu lên bangtqh@utc2.edu.vn – Đòi hỏi máy chủ đặt đối tượng được yêu cầu nằm ngoài thông điệp phản hồi đường dẫn được nêu trong URL DELETE – Xóa tệp được nêu trong URL Mạng máy tính & Internet - Chương 3 28 HTTP response-message dòng trạng thái (giao thức mã trạng thái câu trạng thái) header HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 29 lines Dữ liệu, vd: tệp HTML được yêu cầu Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO-8859- 1\r\n \r\n data data data data data ... HTTP response-message (tt) Các mã trạng thái (một vài ví dụ) 200 - OK • Truy vấn thành công, đối tượng theo sau trong thông điệp này 301 - Moved permanently • Đối tượng truy vấn đã được di chuyển, vị trí mới kèm bangtqh@utc2.edu.vn theo sau trong thông điệp này (Location:) 400 - Bad Request • máy chủ không hiểu thông điệp truy vấn 404 - Not Found • tài liệu yêu cầu không tìm thấy trên máy chủ này 505 - HTTP Version Not Supported • Phiên bản HTTP không được hỗ trợ Mạng máy tính & Internet - Chương 3 30 Cookies: Trạng thái người dùng/máy chủ Nhiều trang web lớn sử dụng cookies Bốn thành phần: 1) dòng mào đầu cookie của thông điệp phản hồi HTTP 2) dòng mào đầu cookie của thông điệp truy vấn Ví dụ:  Bờm luôn luôn truy cập Internet từ máy tính cá nhân  đầu tiên, lướt một trang thương mại điện tử bangtqh@utc2.edu.vn HTTP 3) tệp tin cookie được lưu trên máy người dùng và quản lý bởi trình duyệt 4) thông tin về phiên làm việc của người dùng đồng thời được lưu tại CSDL của trang web  khi truy vấn HTTP đầu tiên đến trang web, trang web sẽ tạo ra: – số định danh (ID) độc nhất – một thẻ ghi trong CSDL cho ID đó Mạng máy tính & Internet - Chương 3 31 Cookies: duy trì “trạng thái” client server cookie file ebay 8734 http request message Amazon server Tạo ra ID 1678 cho ng/d Tạo mục http response set-cookie: 1678 ebay 8734 amazon 1678 bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 32 http response msg http response msg 1 tuần sau: http request msg cookie: 1678 Hành vi khi có cookies Truy xuất http request msg cookie: 1678 Hành vi khi có cookies Truy xuất ebay 8734 amazon 1678 Máy chủ CSDL Cookies (tt) Cookies có thể chứa gì? – thông tin ủy quyền – giỏ mua sắm trực tuyến – trạng thái phiên làm việc người dùng (Web e-mail)  cookies và sự riêng tư  cookies cho phép trang web tìm hiểu nhiều thông tin về bạn bạn có thể cung cấp tên Hiệu ứng bangtqh@utc2.edu.vn Làm sao duy trì trạng thái ? – các đầu cuối: lưu trạng thái ở ng/gửi, ng/nhận qua những giao dịch – cookies: các th/điệp http mang các t/tin trạng thái Mạng máy tính & Internet - Chương 3 33  và email cho các web Bộ nhớ đệm web (web proxy) Mục đích: đáp ứng yêu cầu của người dùng mà không cần máy chủ gốc client proxy server origin server  Thiết lập trình duyệt: truy cập web qua proxy  Trình duyệt gửi toàn bột truy vấn HTTP tới proxy server bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 34 client origin server  Đối tượng có trong proxy  proxy sẽ gửi trả đối tượng cho client  Ngược lại  proxy sẽ truy vấn đối tượng từ máy chủ gốc, sau đó gửi lại cho người dùng, đồng thời lưu lại trong proxy Web-proxy (tt)  Web-proxy làm việc vừa như client vừa như server  Thường được cài đặt bởi nhà cung cáp dịch vụ (Cơ Tại sao cần có web- proxy? – Giảm thời gian phản hồi cho truy vấn – Giảm lưu lượng đường kết nối “ra bangtqh@utc2.edu.vn quan, trường học...v.v.) ngoài” của cơ quan – Cho phép nhà cung cấp dịch vụ tăng thêm nội dung cung cấp cho người dùng Mạng máy tính & Internet - Chương 3 35 Ví dụ: hiện thực web-proxy  Giả sử: – kích thước trung bình của đối tượng = 100,000 bit – tần số t/bình của truy vấn từ trình duyệt của cơ quan tới máy chủ gốc = 15 lần/s – độ trễ RTT từ proxy cơ quan tới bất kì máy chủ gốc nào = 2 origin servers Internet bangtqh@utc2.edu.vn s  Kết quả – h/suất sử dụng LAN = 15% – h/suất sử dụng trên đường truy cập = 100% – độ trễ tổng = độ trễ Internet + độ trễ truy cập + độ trễ LAN = 2 s + vài phút + vài ms Mạng máy tính & Internet - Chương 3 36 Mạng cơ quan 1 Gbps LAN 1.54 Mbps Đường truy cập Ví dụ: hiện thực web-proxy (tt) Giải pháp – Tăng băng thông của đường truy cập lên khoảng 10 Mbps Kết quả – h/suất sử dụng LAN = 15% origin servers Internet bangtqh@utc2.edu.vn – h/suất sử dụng đường truy cập = 15% – độ trễ tổng = độ trễ Internet + độ trễ truy cập + độ trễ LAN = 2 s + ms + ms rất tốn kém khi nâng cấp Mạng máy tính & Internet - Chương 3 37 1 Gbps LAN 10 Mbps Đường truy cập Ví dụ: hiện thực web-proxy (tt)  Giải pháp – cài đặt proxy – giả sử tần xuất truy cập thành công dữ liệu có sẵn trên proxy là 0.4  Kết quả – 40% truy vấn sẽ được đáp ứng ngay lập tức bởi proxy origin servers Internet bangtqh@utc2.edu.vn – 60% truy vấn sẽ được đáp ứng bởi máy chủ gốc – Hiệu suất sử dụng đường kết nối giảm xuống còn 60%, kéo theo độ trễ không đáng kể (khoảng 10 msec) – tổng độ trễ tối đa = độ trễ Internet + độ trễ truy cập + độ trễ LAN = .6*(2.01) secs + msec < 1.4 secs Mạng máy tính & Internet - Chương 3 38 1 Gbps LAN 10 Mbps Đường truy cập GET có điều kiện  Mục đích: Không gửi đối tượng nếu bộ nhớ đệm đã có bản cập nhật mới nhất của nó. – BNĐ: chỉ rõ thời gian của bản lưu bnđ trong truy vấn HTTP If-modified-since: HTTP request msg If-modified-since: HTTP response HTTP/1.0 Đối tượng không thay đổi từ client server bangtqh@utc2.edu.vn – máy chủ: phản hồi sẽ không gửi lại đối tượng được yêu cầu nếu bản lưu là bản cập nhật mới nhất: HTTP/1.0 304 Not Modified Mạng máy tính & Internet - Chương 3 39 304 Not Modified HTTP request msg If-modified-since: HTTP response HTTP/1.0 200 OK Đối tượng đã thay đổi từ bangtqh@utc2.edu.vn Mạng máy tính & Internet - Chương 3 40
Tài liệu liên quan