Tầng Máy Tính - Bài Giảng Mạng Máy Tính

98 1.1K 0
Tầng Máy Tính - Bài Giảng Mạng Máy Tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mạng máy tính Bộ môn Kỹ thuật máy tính và Mạng Khoa Công nghệ Thông tin 1-1 Chương 2: Tầng ứng dụng 2.1 Các nguyên tắc của ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 E-Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ với ‰ 2.8 2.8 Lập Lập trình trình Socket Socket với Lập trình Socket với UDP UDP ‰ 2.5 DNS 1-2 Chương 2: Tầng ứng dụng Mục đích: ‰ Các khía cạnh của các giao thức ứng dụng mạng    Mô hình dịch vụ tầng giao vận Mô hình Client-Server Mô hình peer-to-peer ‰ Học về các giao thức phổ biến mức ứng dụng     ‰ HTTP FTP SMTP / POP3 / IMAP DNS Lập trình các ứng dụng mạng  Socket API 1-3 Một số ứng dụng mạng ‰ ‰ ‰ ‰ ‰ ‰ E-mail Web Instant messaging Remote login Chia sẻ file P2P Trò chơi nhiều người sử dụng qua mạng Điện thoại qua Internet ‰ Hội nghị truyền hình thời gian thực ‰ Tính toán song song ‰ 1-4 Tạo một ứng dụng mạng Viết chương trình    Chạy trên các end systems khác nhau và Giao tiếp qua mạng Ví dụ Web: Phần mềm Web server giao tiếp với phần mềm trình duyệt Không có phần mềm viết cho các thiết bị trong Network Core   Các thiết bị trong Network Core không thực hiện chức năng tại lớp ứng dụng Thiết kế này để sự phát triển ứng dụng nhanh application transport network data link physical application transport network data link physical application transport network data link physical 1-5 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-6 Các kiến trúc ứng dụng ‰ Client-Server ‰ Peer-to-peer (P2P) ‰ Hybrid 1-7 Kiến trúc Client-server Server:    Host ở trạng thái luôn chạy Địa chỉ IP cố định Server farm để tăng khả năng phục vụ Client:     Truyền thông với server Có thể không kết nối liên tục Có thể có địa chỉ IP động Không giao tiếp trực tiếp với nhau 1-8 Kiến trúc P2P ‰ Server không ở trạng thái luôn chạy ‰ Hệ thống cuối tùy ý truyền thông trực tiếp ‰ Các Peer kết nối không liên tục và thay đổi địa chỉ IP ‰ Ví dụ: Gnutella Khả năng co giãn quy mô cao Khó quản lý 1-9 Hybrid Lai giữa P2P và Client-Server Napster   Truyền file P2P Tìm kiếm file tập trung: • Các Peer đăng ký nội dung tại server trung tâm • Các Peer gửi yêu cầu server trung tâm xác định vị trí của nội dung Instant Messaging   Giao tiếp giữa 2 user là P2P Quản lý tập trung vị trí của user: • User đăng ký địa chỉ IP với server trung tâm khi kết nối • User thông qua server trung tâm để tìm địa chỉ IP của đối tượng cần giao tiếp 1-10 Truyền thông của các tiến trình Tiến trình: chương trình chạy trong một host. ‰ Trong cùng host, 2 tiến trình giao tiếp sử dụng inter-process communication (Do OS định nghĩa). ‰ Các tiến trình trong các host khác nhau giao tiếp bằng cách trao đổi các message Tiến trình client: tiến trình khởi đầu quá trình truyền thông Tiến trình server: tiến trình đợi kết nối ‰ Chú ý: Các ứng dụng P2P có cả tiến trình client và tiến trình server 1-11 Socket Tiến trình gửi nhận messages tới/từ socket của nó ‰ Socket tương tự cửa ra vào ‰   ‰ Tiến trình gửi đẩy bản tin ra ngoài cửa Tiến trình gửi dựa vào hạ tầng giao vận trên phía bên kia của cửa, nó mang message tới socket của tiến trình nhận host hoặc server host hoặc server Tiến trình Điều khiển bởi người lập trình ứng dụng socket socket TCP với buffer, Biến Tiến trình Internet TCP với Buffer, biến Điều khiển bởi OS API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một vài tham số (chi tiết phần sau) 1-12 Các tiến trình đánh địa chỉ Đối với một tiến trình nhận messages, nó phải có một định danh ‰ Một host có một địa chỉ IP duy nhất ‰ Câu hỏi: Địa chỉ IP của host mà tiến trình chạy có đáp ứng được việc định danh tiến trình? ‰ Trả lời: Không, nhiều tiến trình có thể chạy trên cùng host ‰ Định danh bao gồm cả địa chỉ IP và địa chỉ cổng gán cho ứng dụng trên host. ‰ Ví dụ: Giá trị cổng của một số ứng dụng: ‰   ‰ HTTP server: 80 Mail server: 25 Chi tiết hơn trong phần sau 1-13 Giao thức lớp ứng dụng ‰ Giao thức lớp ứng dụng định nghĩa     Kiểu của bản tin trao đổi, ví dụ bản yêu cầu, bản tin trả lời Cú pháp của kiểu bản tin: Các trường trong bản tin và mô tả các trường trong bản tin Ý nghĩa của các trường Quy tắc các tiến trình gửi/nhận bản tin khi nào và như thế nào Các giao thức công khai: ‰ Định nghĩa trong các RFC ‰ Cho phép phối hợp hoạt động ‰ Ví dụ: HTTP, SMTP Các giao thức không công khai: ‰ Ví dụ: KaZaA 1-14 Các dịch vụ giao vận mà ứng dụng cần Mất dữ liệu ‰ Một số ứng dụng (ví dụ: audio) có thể chấp nhận một tỷ lệ mất dữ liệu nào đó ‰ Một số ứng dụng khác (ví dụ: Truyền file, telnet) đòi hỏi 100% dữ liệu truyền là tin cậy Băng thông ‰ Một số ứng dụng (ví dụ: đa phương tiện) yêu cầu lượng băng thông tối thiểu ‰ Một số ứng dụng khác sử dụng theo băng thông chúng nhận được Thời gian ‰ Một số ứng dụng (ví dụ: điện thoại Internet, trò chơi tương tác) đòi hỏi độ trễ thấp 1-15 Yêu cầu của ứng dụng giao vận của một số ứng dụng Ứng dụng Mất dữ liệu Băng thông Co giãn Co giãn Co giãn Audio: 5kbps-1Mbps Video:10kbps-5Mbps Tương tự trên Stored audio/video Cho phép Yêu cầu kbps Trò chơi tương tác Cho phép Instant messaging Không cho phép Co giãn Truyền file E-mail Web Real-time audio/video Không cho phép Không cho phép Không cho phép Cho phép Thời gian Không Không Không Có, hàng trăm msec Có, vài secs Có, hàng trăm msec Có 1-16 Các dịch vụ các giao thức giao vận Dịch vụ TCP: ‰ Hướng kết nối: Đòi hỏi quá ‰ ‰ ‰ ‰ trình thiết lập giữa tiến trình client và tiến trình server Truyền tin cậy giữa tiến trình gửi và tiến trình nhận Điều khiển luồng: Bên gửi sẽ không vượt quá khả năng bên nhận Điều khiển tắc nghẽn: điều chỉnh bên gửi khi mạng quá tải Không cung cấp: tính thời gian, đảm bảo băng thông tối thiểu Dịch vụ UDP: ‰ Truyền dữ liệu không tin cậy giữa tiến trình gửi và tiến trình nhận ‰ Không cung cấp: việc thiết lập kết, truyền tin cậy, điều khiển luồng, điều khiển tắc nghẽn, tính thời gian, đảm bảo băng thông Q: Tại sao cần UDP? 1-17 Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận Ứng dụng Thư điện tử Truy cập từ xa Web Truyền file Truyền dòng đa phương tiện Điện thoại Internet Giao thức tầng ứng dụng Giao thức tầng giao vận SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] Không công khai (vd: RealNetworks) Không công khai (vd: Dialpad) TCP TCP TCP TCP TCP hoặc UDP UDP 1-18 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-19 Web và HTTP ‰ ‰ ‰ ‰ ‰ Trang Web chứa các đối tượng Đối tượng có thể là file HTML, ảnh JPEG, Java applet, audio,… Trang Web chứa file HTML, chứa các đối tượng tham chiếu Mỗi đối tượng được đánh địa chỉ bởi một URL Ví dụ URL: www.someschool.edu/someDept/pic.gif host name path name 1-20 HTTP HTTP: hypertext transfer protocol ‰ Giao thức tầng ứng dụng của Web ‰ Mô hình client/server  client: Trình duyệt yêu cầu, nhận và hiện thị các đối tượng  server: Web server gửi các đối tượng trong trả lời ‰ HTTP 1.0: RFC 1945 ‰ HTTP 1.1: RFC 2068 HT TP r equ est HT TP res pon se es t u eq r se Server P n T po HT chạy es r P T Apache Web HT server 1-21 HTTP (tiếp) Sử dụng TCP: Client khởi đầu kết nối TCP (tạo socket) tới server, cổng 80 ‰ Server chấp nhận kết nối TCP từ client ‰ Các bản tin HTTP (bản tin của giao thức tầng ứng dụng Web) trao đối giứa trình duyệt (HTTP client) và Web server (HTTP server) ‰ Kết nối TCP đóng ‰ HTTP là không hướng trạng thái ‰ Server không duy trì thông tin về các yêu cầu của client trong quá khứ Các giao thức hướng trạng thái phức tạp hơn giao thức không hướng trạng thái ‰ Quá khứ phải được duy trì ‰ Nếu server/client lỗi, các trạng thái có thể không thống nhất 1-22 Kết nối HTTP Nonpersistent HTTP ‰ Một đối tượng được gửi qua một kết nối TCP ‰ HTTP/1.0 sử dụng nonpersistent HTTP Persistent HTTP ‰ Nhiều đối tượng có thể gửi qua một kết nối TCP giữa client và server ‰ HTTP/1.1 mặc định sử dụng persistent HTTP 1-23 Nonpersistent HTTP (chứa text, Giả sử người sử dụng nhập vào URL tham chiếu tới 10 www.someSchool.edu/someDepartment/home.index ảnh jpeg) 1a. HTTP client khởi đầu kết nối TCP tới HTTP server (tiến trình) tại www.someSchool.edu, cổng 80 2. HTTP client gửi bản tin yêu cầu HTTP (chứa URL) vào socket của kết nối TCP. Bản tin chỉ rằng client muốn lấy đối tượng someDepartment/home.index 1b. HTTP server tại host www.someSchool.edu đợi kết nối TCP tại cổng 80. Chấp nhận kết nối, thông báo cho client 3. HTTP server nhận bản tin yêu cầu, xây dựng bản tin trả lời chứa đối tượng đã yêu cầu và gửi bản tin vào trong socket của nó Thời gian 1-24 Nonpersistent HTTP (cont.) 4. HTTP server đóng kết nối TCP 5. HTTP client nhận trả lời chứa file html, hiện thị nội dung. Phân tích html, tìm 10 đối tượng ảnh jpeg được tham chiếu time 6. Lặp bước 1-5 cho mỗi đối tượng ảnh jpeg 1-25 Mô hình thời gian trả lời RTT: thời gian để gửi một gói tin từ client tới server và trở lại Thời gian trả lời: ‰ 1 RTT để khởi tạo kết nối TCP ‰ 1 RTT cho yêu cầu HTTP và nhận byte đầu tiên của trả lời HTTP ‰ Thời gian truyền file total = 2RTT+transmit time Khởi đầu kết nối TCP RTT file yêu cầu transmit time RTT file đã nhận thời gian thời gian 1-26 Persistent HTTP Nonpersistent HTTP: ‰ Yêu cầu 2 RTT cho 1 đối tượng ‰ Hệ điều hành phải cấp phát tài nguyên cho mỗi kết nối TCP ‰ Trình duyệt phải mở song song nhiều kết nối TCP để lấy đối tượng tham chiếu Persistent HTTP ‰ Server tạm dừng kết nối sau khi gửi trả lời ‰ Các bản tin HTTP sau đó giữa cùng client/server được gửi qua kết nối 1-27 Bản tin yêu cầu HTTP Hai kiểu bản tin HTTP: yêu cầu, trả lời ‰ Bản tin yêu cầu HTTP: ‰  ASCII Request line (lệnh GET, POST, HEAD ) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 header Connection: close line Accept-language:fr (CR, LF) 1-28 Bản tin yêu cầu HTTP 1-29 Kiểu Method HTTP/1.0 ‰ GET ‰ POST ‰ HEAD  HTTP/1.1 ‰ GET, POST, HEAD ‰ PUT  Hỏi server bỏ đối tượng đã yêu cầu ra khỏi trả lời ‰ đưa file trong phần body lên đường dẫn chỉ trong URL DELETE  xóa file trong trường URL 1-30 Bản tin trả lời HTTP status line (protocol status code status phrase) header line dữ liệu, ví dụ: file HTML đã yêu cầu HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html dữ liệu 1-31 Mã trạng thái của trả lời HTTP Trong dòng đầu tiên của trả lời server->client Ví dụ: 200 OK  Yêu cầu thực hiện thành công, đối tượng trong bản tin 301 Moved Permanently  Đối tượng yêu cầu đã di chuyển vị trí, ví trí mới được chỉ ra trong bản tin (Location:) 400 Bad Request  Server không hiểu bản tin yêu cầu 404 Not Found  Không tìm thấy đối tượng yêu cầu 505 HTTP Version Not Supported 1-32 Thực hành 1. Telnet tới một Web server: telnet cis.poly.edu 80 Mở kết nối TCP tới cổng 80 tại cis.poly.edu. Nội dung gõ được gửi tới cổng 80 tại cis.poly.edu 2. Gõ lệnh GET GET /~ross/ HTTP/1.1 Host: cis.poly.edu 3. Xem bản tin trả lời gửi bởi HTTP server 1-33 Web cache (proxy server) Mục đích: thực hiện yêu cầu của client không phải yêu cầu tới server ban đầu Người dùng thiết lập qua trình duyệt ‰ Trình duyệt gửi mọi yêu cầu HTTP qua Cache server ban đầu ‰   Đối tượng trong cache: sẽ được trả về Nếu không: Yêu cầu được chuyển tới server ban đầu Proxy HT TP es t u server q req re H u P e T se T st client TP n T o H p res res pon P se TT H es t u eq r se P n T o p HT es r TP T H client server ban đầu 1-34 Web cache Cache hoạt động như cả client và server ‰ Thông thường, được cài đặt bởi ISP ‰ Lợi ích của Web cache ‰ Giảm thời gian trả lời ‰ Giảm lưu lượng trên đường truyền truy cập 1-35 Web cache Cache hoạt động như cả client và server ‰ Thông thường cache được cài đặt bởi ISP (trường đại học, công ty, nhà cung cấp dịch vụ cho gia đình) ‰ Tại sao dùng Web cache? ‰ Giảm thời gian trả lời cho yêu cầu của client. ‰ Giảm lưu lượng trên đường truy cập của tổ chức. 1-36 Ví dụ caching Các server ban đầu Giả sử Kích thước của đối tượng trung bình = 100,000 bits ‰ Tốc độ yêu cầu trung bình từ trình duyệt của tới server ban đầu = 15 giây ‰ Trễ từ router của tổ chức tới server ban đầu và trở lại = 2 giây ‰ Kết quả Sự sử dụng trong LAN = 15% ‰ Sự sử dụng trong đường truyền truy cập = 100% ‰ Total delay = Internet delay + access delay + LAN delay = 2 giây + phút + millisecond ‰ public Internet Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN Institutional Cache 1-37 Ví dụ caching (tiếp) Server ban đầu Giải pháp có thể ‰ Tăng băng thông của đường truyền truy cập: 10 Mbps public Internet Kết quả Sự sử dụng LAN = 15% ‰ Sử dụng đường truyền truy cập = 15% ‰ Total delay = Internet delay + access delay + LAN delay = 2 sec + msecs + msecs ‰ Đường truyền truy cập10 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache 1-38 Ví dụ caching (tiếp) Server ban đầu Cài đặt cache ‰ Hỗ trợ hit rate .4 public Internet Kết quả ‰ 40% yêu cầu sẽ đáp ứng gần như ngay lập tức ‰ 60% yêu cầu đáp ứng bởi server ban đầu ‰ Sự sử dụng đường truyền truy cập giảm tới 60%, kết quả độ trễ không đáng kể (10 msec) ‰ total avg delay = Internet delay + access delay + LAN delay = .6*(2.01) secs + milliseconds < 1.4 secs Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache 1-39 GET có điều kiện ‰ Mục đích: không gửi đối tượng nếu cache có phiên bản cập nhật ‰ Cache: chỉ định ngày của bản sao chép trong cache trong yêu cầu HTTP If-modified-since: ‰ Server: Trả lời không chứa đối tượng nếu bản sao chép trong cache cập nhật: HTTP/1.0 304 Not Modified Server Cache Bản tin yêu cầu HTTP If-modified-since: Bản tin trả lời HTTP Đối tượng không bị thay đổi HTTP/1.0 304 Not Modified Bản tin yêu cầu HTTP If-modified-since: Đối tượng đã thay đổi Bản tin trả lời HTTP HTTP/1.0 200 OK 1-40 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-41 FTP: File Transfer Protocol Giao diện FTP người sử client dụng FTP user tại host Hệ thống file cục bộ Truyền file FTP server Hệ thống file từ ở xa ‰ Truyền file tới/từ host ở xa ‰ Mô hình client/server client: Phía khởi đầu việc truyền (tới hoặc từ host ở xa)  server: host ở xa ‰ ftp: RFC 959 ‰ ftp server: port 21  1-42 FTP: Kết nối dữ liệu và điều khiển riêng biệt Kết nối điều khiển TCP cổng 21 ‰ FTP client liên lạc với FTP ‰ ‰ ‰ ‰ server tại cổng 21, chỉ định dùng TCP làm giao thức giao vận Client giành ủy quyền qua kết nối điều khiển Client xem thư mục từ xa bằng cách gửi lệnh qua kết nối điều khiển Khi server nhận một lệnh truyền file, server mở một kết nối dữ liệu TCP tới client Sau khi truyền file, server đóng kết nối. FTP client Kết nối dữ liệu TCP cổng 20 FTP server ‰ Server mở một kết nối dữ liệu TCP thứ hai để truyền một file khác. ‰ Kết nối điều khiển: truyền theo đường riêng ‰ FTP server duy trì trạng thái: thư mục hiện tại, ủy quyền trước đó 1-43 Lệnh và trả lời của FTP Ví dụ một số lệnh: ‰ ‰ ‰ ‰ ‰ ‰ Gửi văn bản mã ASCII qua kênh điều khiển USER username PASS password LIST trả về một danh sách các file trong thưc mục hiện tại RETR filename lấy file STOR filename đưa file lên remote host Ví dụ một số mã trả về ‰ ‰ ‰ ‰ ‰ Status code và status phrase (như HTTP) 331 Username OK, đòi hỏi mật khẩu 125 kết nối dữ liệu đã mở; bắt đầu truyền 425 Không thể mở kết nối dữ liệu 452 Lỗi ghi file 1-44 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-45 Electronic Mail Hàng đợi bản tin gửi đi User mailbox user agent Ba thành phần chính: ‰ User agent ‰ Mail server mail server user agent SMTP ‰ Simple mail transfer protocol: SMTP User Agent ‰ Còn gọi là Mail Reader ‰ Soạn, sửa, đọc bản tin mail ‰ Ví dụ: Eudora, Outlook, Netscape Messenger ‰ Các bản tin gửi tới và gửi đi đã chứa trên server SMTP SMTP mail server mail server user agent user agent user agent user agent 1-46 Electronic Mail: Mail server user agent Mail Server mailbox chứa các bản tin thư điện tử gửi đến cho người sử dụng ‰ message queue của các bản tin thư điện tử gửi đi ‰ SMTP protocol giữa các mail server để gửi các bản tin thư điện tử  client: mail server gửi  “server”: mail server nhận ‰ mail server user agent SMTP SMTP SMTP mail server mail server user agent user agent user agent user agent 1-47 Electronic Mail: SMTP [RFC 2821] ‰ Sử dụng TCP để truyền tin cậy các bản tin thư điện tử từ client tới server, cổng 25 ‰ Gửi trực tiếp: server gửi tới server nhận ‰ Ba pha của việc truyền  Bắt tay  Truyền các bản tin  Kết thúc ‰ Sự tương tác Lệnh/Trả lời  Lệnh: văn bản mã ASCII  Trả lời: status code và status phrase ‰ Các bản tin phải dùng mã ASCII 7-bit 1-48 Kịch bản: Alice gửi bản tin cho Bob 4) SMTP client gửi bản tin của Alice qua kết nối TCP 5) Mail server của Bob chuyển bản tin vào mailbox của Bob 6) Bob chạy user agent để đọc bản tin 1) Alice dùng UA để soạn bản tin và gửi cho bob@someschool.edu 2) UA của Alice gửi bản tin tới mail server của cô ta; bản tin đặt trong message queue 3) Phía client của SMTP mở kết nối TCP với mail server của Bob 1 user agent 2 mail server 3 mail server 4 5 6 user agent 1-49 Ví dụ tương tác SMTP S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: 250 alice@crepes.fr... Sender ok RCPT TO: 250 bob@hamburger.edu ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection 1-50 SMTP: Một số thông tin khác ‰ SMTP sử dụng persistent connections ‰ SMTP yêu cầu bản tin (header & body) dùng mã ASCII 7-bit ‰ SMTP server sử dụng CRLF.CRLF để xác định kết thúc bản tin So sánh với HTTP: ‰ HTTP: pull ‰ SMTP: push ‰ Cả hai có tương tác Lệnh/Trả lời dạng mã ASCII, status code ‰ HTTP: mỗi đối tượng được đóng gói trong chính bản tin trả lời ‰ SMTP: nhiều đối tượng được gửi trong bản tin có nhiều phần 1-51 Định dạng bản tin SMTP: giao thức để trao đổi các bản tin thư điện tử RFC 822: chuẩn định dạng bản tin dạng văn bản ‰ Header lines, ví dụ To:  From:  Subject: khác Lệnh SMTP  header dòng trống body ‰ body  bản tin, ký tự ASCII 1-52 Định dạng bản tin: Các mở rộng đa phương tiện ‰ MIME: Multimedia Mail Extension, RFC 2045, 2046 ‰ Thêm các dòng trong header của bản tin khai báo kiểu nội dung MIME MIME version method sử dụng để mã hóa dữ liệu kiểu dữ liệu đa phương tiện, kiểu con, khai báo tham số 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 dữ liệu mã hóa kiểu base64 ..... ......................... ......dữ liệu mã hóa kiểu base64 dữ liệu đã mã hóa 1-53 Thực hành tương tác SMTP ‰ telnet servername 25 Xem trả lời 220 từ server ‰ Gõ vào các lệnh HELO, MAIL FROM, RCPT TO, DATA, QUIT để gửi thư điện tử không sử dụng email client (reader) ‰ 1-54 Các giao thức truy cập thư điện tử SMTP SMTP user agent mail server của bên gửi giao thức truy cập user agent mail server của bên nhận ‰ SMTP: chuyển/lưu trữ thư tới server của bên nhận ‰ Giao thức truy cập thư: lấy thư từ server    POP: Post Office Protocol [RFC 1939] • Ủy quyền (agent server) và tải thư IMAP: Internet Mail Access Protocol [RFC 1730] • Nhiều tính năng hơn (phức tạp hơn) • Thao tác trên các bản tin lưu trên server HTTP: Hotmail , Yahoo! Mail, … 1-55 Giao thức POP3 Pha ủy quyền ‰ Lệnh của client:   user: khai báo tên người dùng pass: mật khẩu ‰ Trả lời của server   +OK -ERR Pha giao dịch, client: ‰ list: liệt kê các số bản tin ‰ retr: lấy bản tin dựa vào số ‰ dele: xóa ‰ quit S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S: +OK POP3 server ready user bob +OK pass hungry +OK người sử dụng đăng nhập thành công list 1 498 2 912 . retr 1 . dele 1 retr 2 . dele 2 quit +OK POP3 server chấm dứt phiên làm việc 1-56 POP3 và IMAP Thông tin thêm về POP3 ‰ Ví dụ trước sử dụng chế độ “tải và xóa” ‰ Bob không thể đọc lại các thư điện tử nếu bob chuyển sang client khác ‰ Chế độ “Tải và giữ” sao chép các bản tin trên các client khác nhau ‰ POP3 không lưu trạng thái giữa các phiên IMAP ‰ Giữ tất cả các bản tin tại một chỗ: server ‰ Cho phép người sử dụng tổ chức các bản tin vào các thư mục ‰ IMAP giữ trạng thái người sử dụng qua các phiên:  Tên của các thư mục và ánh xạ giữa các định danh của bản tin và tên thư mục 1-57 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-58 DNS: Domain Name System Con người: có nhiều định danh:  CMT, tên, hộ chiếu Host, router trên Internet:   Địa chỉ IP (32 bít) để đánh địa chỉ các đơn vị dữ liệu gửi đi Tên, ví dụ: www.yahoo.com sử dụng bởi con người Câu hỏi: Ánh xạ giữa địa chỉ IP và tên ? Hệ thống tên miền (DNS): ‰ Cơ sở dữ liệu phân tán được thực hiện phân cấp bởi nhiều name server ‰ Giao thức tầng ứng dụng để host, router, name server giao tiếp dịch giữa địa chỉ và tên  Chú ý: Chức năng cơ bản của Internet, thực hiện bởi giao thức ứng dụng  Sự phức tạp tại network edge 1-59 DNS Các dịch vụ DNS ‰ Dịch tên host sang địa chỉ IP ‰ Bí danh cho Host  Canonical name và alias names Bí danh cho Mail server ‰ Phân tải ‰  Web server: Một tập các địa chỉ IP cho một canonical name Tại sao không dùng DNS tập chung ? ‰ Một điểm lỗi ‰ Khối lượng lưu lượng ‰ Cơ sở dữ liệu tập chung xa ‰ Bảo trì Không co giãn! 1-60 Cơ sở dữ liệu phân cấp và phân tán Root DNS Servers com DNS servers yahoo.com amazon.com DNS servers DNS servers org DNS servers pbs.org DNS servers edu DNS servers poly.edu umass.edu DNS serversDNS servers Client muốn biết địa chỉ IP của www.amazon.com: ‰ Client yêu cầu root server để tìm com DNS server ‰ Client yêu cầu com DNS server để xác định amazon.com DNS server ‰ Client yêu cầu amazon.com DNS server để lấy địa chỉ IP cho www.amazon.com 1-61 DNS: Root name server Local name server không trả lời được thì nó sẽ liên lạc với Root name server ‰ Root name server:  Liên lạc với authoritative name server nếu nó không biết ánh xạ tên  Lấy ánh xạ  Trả ánh xạ về cho local name server ‰ a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD k RIPE London (also Amsterdam, Frankfurt) g US DoD Vienna, VA h ARL Aberdeen, MD i Autonomica, Stockholm (plus 3 j Verisign, ( 11 locations) other locations) m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 13 root name server trên toàn thế giới 1-62 TLD và Authoritative Server ‰ Top-level domain (TLD) server: có vai trò đối với com, org, net, edu,… và tất cả các miền quốc gia mức trên cùng uk, fr, ca, jp,… ‰ Authoritative DNS server: DNS server của các tổ chức cung cấp ánh xạ authoritative hostname thành địa chỉ IP cho server của tổ chức (ví dụ Web và Email).  Có thể duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ 1-63 Local Name Server ‰ Không hoàn toàn thuộc vào phân cấp ‰ Mỗi ISP (residential ISP, công ty, tổ chức) có  Còn gọi là “default name server” ‰ Khi một host tạo truy vấn DNS, truy vấn được gửi tới Local DNS server của nó  Hoạt động như một proxy, chuyển tiếp query vào trong phân cấp. 1-64 Ví dụ ‰ Root DNS server 2 Host tại cis.poly.edu muốn biết địa chỉ IP của gaia.cs.umass.edu 3 4 TLD DNS server 5 Local DNS server dns.poly.edu 1 8 host gửi yêu cầu 7 6 authoritative DNS server dns.cs.umass.edu cis.poly.edu gaia.cs.umass.edu 1-65 Truy vấn đệ quy Truy vấn đệ quy: ‰ Giao toàn bộ việc tìm root DNS server 2 tên cho name server liên lạc ‰ Tải lớn? Truy vấn lặp: ‰ Server liên lạc trả về 3 7 6 TLD DNS server local DNS server dns.poly.edu tên của server cần liên 1 8 lạc tiếp ‰ “Tôi không biết nhưng anh muốn biết thì đi requesting host hỏi server này” cis.poly.edu 5 4 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu 1-66 DNS: lưu giữ tạm và cập nhật bản ghi ‰ Name server nào đó học các ánh xạ, server sẽ lưu giữ tạm các ánh xạ đó  Các khe lưu trữ tạm quá hạn (biến mất) sau một khoảng thời gian  Các TLD server thông thường lưu trữ tạm trong các local name servers • Vì thế, root name server không phải hỏi thường xuyên ‰ Cơ chế cập nhật/thông báo định nghĩa bởi IETF   RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 1-67 Bản ghi DNS DNS: Cơ sở dữ liệu phân tán chứa các bản ghi tài nguyên (Resource record - RR) Định dạng RR: (name, value, type, ttl) ‰ Type=A   ‰ ‰ name là hostname value là địa chỉ IP Type=NS   name là domain (ví dụ foo.com) ‰ value là địa chỉ của authoritative name server cho domain đó Type=CNAME  name là tên bí danh cho một số tên thật (cannonical name) www.ibm.com thật ra là servereast.backup2.ibm.com  value là tên thật Type=MX   value là tên thật của mail server liên kết với name (bí danh của hostname) (foo.com, mail.bar.foo.com, MX) 1-68 Giao thức DNS, bản tin Giao thức DNS: Bản tin truy vấn và trả lời có chung một định dạng bản tin Header của bản tin ‰ identification: 16 bit, định cho truy vấn, trả lời sử dụng cùng giá trị ‰ flags:  Truy vấn hay trả lời  Mong muốn đệ quy  Có khả năng đệ quy  Trả lời là ủy quyền 1-69 Giao thức DNS, bản tin Các trường Name, type cho một Truy vấn Các bản ghi trong trả lời Các bản ghi cho authoritative server Các bản ghi cung cấp thông tin khác 1-70 Chèn thêm bản ghi vào DNS ‰ ‰ Ví dụ: Tạo “Network Utopia” Đăng ký tên networkuptopia.com tại registrar (ví dụ: nhà cung cấp giải pháp mạng)   Cần cung cấp cho registrar tên và địa chỉ IP của authoritative name server của mạng (primary và secondary) Registrar chèn thêm hai RR vào trong com TLD server: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) Thêm vào authoritative server bản ghi kiểu A cho www.networkuptopia.com và bản ghi kiểu MX cho networkutopia.com ‰ Người khác xác định địa chỉ IP của Web site này như thế nào? ‰ 1-71 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-72 Chia sẻ file P2P Alice chọn một peer, Bob ‰ File được sao chép từ máy của Bob tới máy của Alice: HTTP ‰ Trong khi Alice đang tải, người sử dụng khác lấy dữ liệu đã có trên máy Alice ‰ Peer của Alice vừa là Web client vừa là Web server. Mọi peer là server = quy mô lớn! ‰ Ví dụ ‰ Alice chạy ứng dụng P2P client ‰ Kết nối tới Internet và nhận một địa chỉ IP mới ‰ Tìm “Hey Jude” ‰ Ứng dụng các peer khác có bản sao chép của Hey Jude không. 1-73 P2P: thư mục trung tâm Thiết kế của “Napster” ban đầu 1) Khi peer kết nối, nó thông báo server trung tâm:   Bob Server thư mục trung tâm 1 peers 1 Địa chỉ IP Nội dung 2) Alice yêu cầu “Hey Jude” 3) Alice yêu cầu file từ Bob 3 1 2 1 Alice 1-74 P2P: Vấn đề của thư mục trung tâm Một điểm chịu lỗi ‰ Hiệu năng ‰ Xâm phạm bản quyền ‰ Truyền file là không tập trung, xác định vị trí nội dung là không tập chung 1-75 Phát tán các query: Gnutella ‰ Hoàn toàn phân tán  Không có server trung tâm Giao thức công khai ‰ Nhiều Gnutella clients cài đặt giao thức ‰ Mạng bao phủ: đồ thị ‰ Cạnh giữa peer X và Y: nếu có một kết nối TCP ‰ Tất cả peer hoạt động và các cạnh là mạng bao phủ ‰ Các cạnh không là đường truyền vật lý ‰ Peer thường kết nối với < 10 hàng xóm 1-76 Gnutella: Giao thức ˆ Query gửi qua kết nối TCP đã có ˆ Các peers chuyển tiếp bản tin Query ˆ QueryHit gửi theo đường ngược lại Truyền file: HTTP Query QueryHit er u Q y i H y r t Qu e ry e u Q QueryHit Query Qu Ổn định: er y giới hạn phạm vi phát tán 1-77 Gnutella: Peer gia nhập 1. 2. 3. 4. 5. Peer gia nhập X phải tìm một số peer khác trong mạng Gnutella: sử dụng danh sách các peer ứng viên X cố gắng tạo kết nối TCP với peer khác trong danh sách tới khi thiết lập được kết nối với Y X gửi bản tin Ping tới Y; Y chuyển tiếp bản tin Ping . Mọi peer nhận được bản tin Ping sẽ trả lời bằng bản tin Pong X nhận nhiều bản tin Pong. Nó có thể thiết lập thêm các kết nối TCP 1-78 Lai: KaZaA ‰ Mỗi peer là đứng đầu của một nhóm hoặc là con của một nhóm.   ‰ Kết nối TCP giữa peer và các đứng đầu của nhóm. Kết nối TCP giữa các cặp đứng đầu nhóm. Đứng đầu nhóm theo dõi nội dung của tất cả các con của nó. ordinary peer group-leader peer neighoring relationships in overlay network 1-79 KaZaA: Truy vấn ‰ Mỗi file có một hash và một mô tả ‰ Client gửi từ khóa tới đứng đầu nhóm ‰ Đứng đầu nhóm trả lời các kết quả:  Mỗi kết quả: metadata, hash, địa chỉ IP ‰ Nếu đứng đầu nhóm chuyển tiếp truy vấn tới đứng đầu nhóm khác, đứng đầu nhóm khác trả lời ‰ Sau đó, client chọn file để tải xuống  Yêu cầu HTTP sử dụng hash làm định danh để gửi tới peer giữ file đó 1-80 Kazaa ‰ Hạn chế số upload đồng thời ‰ Xếp hàng yêu cầu ‰ Ưu tiên ‰ Download song song 1-81 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-82 Lập trình Socket với TCP Client phải liên lạc với server • • Tiến trình server phải đang chạy • Server phải tạo socket (cửa) để client liên lạc Client liên lạc với server bằng cách: • Tạo client-local TCP socket • Gán địa chỉ IP, cổng của tiến trình server • Khi client tạo socket: client TCP giành kết nối tới server TCP Khi nhận được sự liên lạc của client, server TCP tạo một socket mới cho tiến trình server để giao tiếp với client – Cho phép server nói chuyện với nhiều client – Giá trị source port dùng để phân biệt các client (chi tiết hơn trong chương 3) Góc nhìn ứng dụng TCP cung cấp dịch vụ truyền tin cậy các byte giữa client và server 1-83 Ví dụ: C client (TCP) /* client.c */ void main(int argc, char *argv[]) { struct sockaddr_in sad; /* cấu trúc chứa 1 địa chỉ IP */ int clientSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */ char Sentence[128]; char modifiedSentence[128]; Tạo client socket, Kết nối tới server host = argv[1]; port = atoi(argv[2]); clientSocket = socket(PF_INET, SOCK_STREAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_port = htons((u_short)port); ptrh = gethostbyname(host); /* Chuyển tên host thành địa chỉ IP */ memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length); connect(clientSocket, (struct sockaddr *)&sad, sizeof(sad)); 1-84 Ví dụ: C client (TCP) (tiếp) Đọc input stream từ user Gửi tới server Đọc từ server gets(Sentence); n=write(clientSocket, Sentence, strlen(Sentence)+1); n=read(clientSocket, modifiedSentence, sizeof(modifiedSentence printf(“TỪ SERVER: %s\n”, modifiedSentence); Đóng kết nối close(clientSocket); } 1-85 Ví dụ: C server (TCP) /* server.c */ void main(int argc, char *argv[]) { struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ struct sockaddr_in cad; int welcomeSocket, connectionSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */ char clientSentence[128]; char capitalizedSentence[128]; Tạo một socket chờ tại một cổng & Gắn với một địa chỉ cục bộ port = atoi(argv[1]); welcomeSocket = socket(PF_INET, SOCK_STREAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_addr.s_addr = INADDR_ANY; /* thiết lập địa chỉ IP address */ sad.sin_port = htons((u_short)port);/* thiết lập giá trị cổng */ bind(welcomeSocket, (struct sockaddr *)&sad, sizeof(sad)); 1-86 Ví dụ: C server (TCP) (tiếp) /* Chỉ định số client lớn nhất được xếp hàng */ listen(welcomeSocket, 10) Đợi client liên lạc while(1) { connectionSocket=accept(welcomeSocket, (struct sockaddr *)&cad, &alen); n=read(connectionSocket, clientSentence, sizeof(clientSentence)); /* Chuyển clientSentence thành chữ hoa, chứa kết quả trong capitalizedSentence*/ n=write(connectionSocket, capitalizedSentence, strlen(capitalizedSentence)+1); close(connectionSocket); } Đưa kết quả ra socket } Kết thúc vòng lặp While, Quay trở lại và đợi một kết nối client khác 1-87 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-88 Lập trình Socket với UDP UDP: Không kết nối giữa client và server • Không bắt tay • Bên gửi chỉ ra địa chỉ IP và cổng của bên nhận cho mỗi gói tin • Server phải tìm địa chỉ IP, cổng của bên gửi trong gói tin đã nhận Góc nhìn ứng dụng UDP cung cấp dịch vụ truyền không tin cậy một nhóm các byte (“datagrams”) giữa client và server UDP: dữ liệu đã truyền có thể nhận không theo thứ tự hoặc bị mất 1-89 Tương tác giữa client socket và server socket: UDP Server (đang chạy trên hostid) Tạo socket, Cổng=x, đối với gói tin đến: serverSocket = DatagramSocket() Đọc yêu cầu từ serverSocket Ghi trả lời ra serverSocket chỉ định địa chỉ host của client và giá trị cổng Client Tạo socket, clientSocket = DatagramSocket() Tạo, địa chỉ (hostid, port=x, Gửi yêu cầu datagram sử dụng clientSocket Đọc trả lời từ clientSocket Đóng clientSocket 1-90 Ví dụ: C client (UDP) /* client.c */ void main(int argc, char *argv[]) { struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ int clientSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */ char Sentence[128]; char modifiedSentence[128]; Tạo client socket, Không kết nối tới server host = argv[1]; port = atoi(argv[2]); clientSocket = socket(PF_INET, SOCK_DGRAM, 0); /* xác định địa chỉ của server */ memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_port = htons((u_short)port); ptrh = gethostbyname(host); /* Chuyển tên host thành địa chỉ IP */ memcpy(&sad.sin_addr, ptrh->h_addr, ptrh->h_length); 1-91 Ví dụ: C client (UDP) (tiếp) Đọc input stream từ user Gửi tới server Đọc từ server gets(Sentence); addr_len =sizeof(struct sockaddr); n=sendto(clientSocket, Sentence, strlen(Sentence)+1, (struct sockaddr *) &sad, addr_len); n=recvfrom(clientSocket, modifiedSentence, sizeof(modifiedSentence). (struct sockaddr *) &sad, &addr_len); printf(“TỪ SERVER: %s\n”,modifiedSentence); Đóng kết nối close(clientSocket); } 1-92 Ví dụ: C server (UDP) /* server.c */ void main(int argc, char *argv[]) { struct sockaddr_in sad; /* cấu trúc chứa một địa chỉ IP */ struct sockaddr_in cad; int serverSocket; /* mô tả socket */ struct hostent *ptrh; /* con trỏ tới một entry trong host table */ char clientSentence[128]; char capitalizedSentence[128]; Tạo socket chờ ở cổng & Gắn với một địa chỉ cục bộ port = atoi(argv[1]); serverSocket = socket(PF_INET, SOCK_DGRAM, 0); memset((char *)&sad,0,sizeof(sad)); /* xóa cấu trúc sockaddr */ sad.sin_family = AF_INET; /* thiết lập family Internet */ sad.sin_addr.s_addr = INADDR_ANY; /* thiết lập địa chỉ IP cục bộ */ sad.sin_port = htons((u_short)port);/* thiết lập giá trị cổng */ bind(serverSocket, (struct sockaddr *)&sad, sizeof(sad)); 1-93 Ví dụ: C server (UDP) (tiếp) Nhận bản tin từ các client while(1) { n=recvfrom(serverSocket, clientSentence, sizeof(clientSentence), 0 (struct sockaddr *) &cad, &addr_len ); /* chuyển clientSentence thành chữ hoa, chứa kết quả trong capitalizedSentence*/ n=sendto(connectionSocket, capitalizedSentence, strlen(capitalizedSentence)+1,0 (struct sockaddr *) &cad, &addr_len); close(connectionSocket); } Ghi kết quả ra socket } Kết thúc vòng lặp While, quay trở lại và đợi kết nối client khác 1-94 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-95 Xây dựng một Web server đơn giản ‰ ‰ ‰ ‰ ‰ Điều khiển một yêu cầu HTTP Chấp nhận yêu cầu Phân tích header Giành file đã yêu cầu từ hệ thống file của server Tạo bản tin trả lời HTTP:  ‰ ‰ Sau khi tạo server, có thể yêu cầu file sử dụng một trình duyệt (ví dụ IE explorer) header lines + file Gửi trả lời cho client 1-96 Chương 2: Tổng kết Nội dung đã học: Ứng dụng mạng ‰ Các kiến trúc ứng dụng    ‰ ‰ Tính tin cậy, băng thông, độ trễ Các giao thức cụ thể:  Client-Server P2P Hybrid Các yêu cầu ứng dụng:  ‰    ‰ HTTP FTP SMTP, POP, IMAP DNS Lập trình socket Mô hình dịch vụ giao vận của Internet   Tin cậy, hướng kết nối Không tin cậy, datagrams: UDP 1-97 Chương 2: Tổng kết Quan trọng: đã học về các giao thức ‰ Trao đổi bản tin yêu cầu/bản tin trả lời:   ‰ Client yêu cầu thông tin hoặc dịch vụ Server gửi dữ liệu trả lời, mã trạng thái Định dạng bản tin:   Header: Các trường mang thông tin về Data Data: thông tin truyền thông ‰ Bản tin dữ liệu và bản tin điều ‰ ‰ ‰ ‰ khiển  in-band, out-of-band Tập chung (centralized) và không tập chung (decentralized) Không hướng trạng thái (stateless) và hướng trạng thái (stateful) Truyền bản tin kiểu tin cậy (reliable) và không tin cậy (unreliable) Sự phức tạp tại network edge 1-98 [...]... thiết lập kết, truyền tin cậy, điều khiển luồng, điều khiển tắc nghẽn, tính thời gian, đảm bảo băng thông Q: Tại sao cần UDP? 1-1 7 Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận Ứng dụng Thư điện tử Truy cập từ xa Web Truyền file Truyền dòng đa phương tiện Điện thoại Internet Giao thức tầng ứng dụng Giao thức tầng giao vận SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC... Internet, trò chơi tương tác) đòi hỏi độ trễ thấp 1-1 5 Yêu cầu của ứng dụng giao vận của một số ứng dụng Ứng dụng Mất dữ liệu Băng thông Co giãn Co giãn Co giãn Audio: 5kbps-1Mbps Video:10kbps-5Mbps Tương tự trên Stored audio/video Cho phép Yêu cầu kbps Trò chơi tương tác Cho phép Instant messaging Không cho phép Co giãn Truyền file E-mail Web Real-time audio/video Không cho phép Không cho phép Không... HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 header Connection: close line Accept-language:fr (CR, LF) 1-2 8 Bản tin yêu cầu HTTP 1-2 9 Kiểu Method HTTP/1.0 ‰ GET ‰ POST ‰ HEAD  HTTP/1.1 ‰ GET, POST, HEAD ‰ PUT  Hỏi server bỏ đối tượng đã yêu cầu ra khỏi trả lời ‰ đưa file trong phần body lên đường dẫn chỉ trong URL DELETE  xóa file trong trường URL 1-3 0 Bản tin trả lời HTTP status line... file HTML đã yêu cầu HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 … Content-Length: 6821 Content-Type: text/html dữ liệu 1-3 1 Mã trạng thái của trả lời HTTP Trong dòng đầu tiên của trả lời server->client Ví dụ: 200 OK  Yêu cầu thực hiện thành công, đối tượng trong bản tin 301 Moved Permanently  Đối tượng yêu cầu đã... RealNetworks) Không công khai (vd: Dialpad) TCP TCP TCP TCP TCP hoặc UDP UDP 1-1 8 Chương 2: Tầng ứng dụng 2.1 Nguyên tắc của các ứng dụng mạng ‰ 2.2 Web và HTTP ‰ 2.3 FTP ‰ 2.4 Electronic Mail ‰  ‰ SMTP, POP3, IMAP 2.6 Chia sẻ file P2P ‰ 2.7 Lập trình Socket với TCP ‰ 2.8 Lập trình Socket với UDP ‰ 2.9 Xây dựng Web Server ‰ 2.5 DNS 1-1 9 Web và HTTP ‰ ‰ ‰ ‰ ‰ Trang Web chứa các đối tượng Đối tượng có thể... tin trả lời chứa đối tượng đã yêu cầu và gửi bản tin vào trong socket của nó Thời gian 1-2 4 Nonpersistent HTTP (cont.) 4 HTTP server đóng kết nối TCP 5 HTTP client nhận trả lời chứa file html, hiện thị nội dung Phân tích html, tìm 10 đối tượng ảnh jpeg được tham chiếu time 6 Lặp bước 1-5 cho mỗi đối tượng ảnh jpeg 1-2 5 Mô hình thời gian trả lời RTT: thời gian để gửi một gói tin từ client tới server và... vài secs Có, hàng trăm msec Có 1-1 6 Các dịch vụ các giao thức giao vận Dịch vụ TCP: ‰ Hướng kết nối: Đòi hỏi quá ‰ ‰ ‰ ‰ trình thiết lập giữa tiến trình client và tiến trình server Truyền tin cậy giữa tiến trình gửi và tiến trình nhận Điều khiển luồng: Bên gửi sẽ không vượt quá khả năng bên nhận Điều khiển tắc nghẽn: điều chỉnh bên gửi khi mạng quá tải Không cung cấp: tính thời gian, đảm bảo băng thông... host name path name 1-2 0 HTTP HTTP: hypertext transfer protocol ‰ Giao thức tầng ứng dụng của Web ‰ Mô hình client/server  client: Trình duyệt yêu cầu, nhận và hiện thị các đối tượng  server: Web server gửi các đối tượng trong trả lời ‰ HTTP 1.0: RFC 1945 ‰ HTTP 1.1: RFC 2068 HT TP r equ est HT TP res pon se es t u eq r se Server P n T po HT chạy es r P T Apache Web HT server 1-2 1 HTTP (tiếp) Sử dụng... trình gửi dựa vào hạ tầng giao vận trên phía bên kia của cửa, nó mang message tới socket của tiến trình nhận host hoặc server host hoặc server Tiến trình Điều khiển bởi người lập trình ứng dụng socket socket TCP với buffer, Biến Tiến trình Internet TCP với Buffer, biến Điều khiển bởi OS API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một vài tham số (chi tiết phần sau) 1-1 2 Các tiến trình đánh... đã nhận thời gian thời gian 1-2 6 Persistent HTTP Nonpersistent HTTP: ‰ Yêu cầu 2 RTT cho 1 đối tượng ‰ Hệ điều hành phải cấp phát tài nguyên cho mỗi kết nối TCP ‰ Trình duyệt phải mở song song nhiều kết nối TCP để lấy đối tượng tham chiếu Persistent HTTP ‰ Server tạm dừng kết nối sau khi gửi trả lời ‰ Các bản tin HTTP sau đó giữa cùng client/server được gửi qua kết nối 1-2 7 Bản tin yêu cầu HTTP Hai

Ngày đăng: 22/10/2015, 17:11

Từ khóa liên quan

Mục lục

  • Mạng máy tính

  • Chương 2: Tầng ứng dụng

  • Chương 2: Tầng ứng dụng

  • Một số ứng dụng mạng

  • Tạo một ứng dụng mạng

  • Chương 2: Tầng ứng dụng

  • Các kiến trúc ứng dụng

  • Kiến trúc Client-server

  • Kiến trúc P2P

  • Hybrid

  • Truyền thông của các tiến trình

  • Socket

  • Các tiến trình đánh địa chỉ

  • Giao thức lớp ứng dụng

  • Các dịch vụ giao vận mà ứng dụng cần

  • Yêu cầu của ứng dụng giao vận của một số ứng dụng

  • Các dịch vụ các giao thức giao vận

  • Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận

  • Chương 2: Tầng ứng dụng

  • Web và HTTP

Tài liệu cùng người dùng

Tài liệu liên quan