1 / 92

Mạng máy tính

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 Đại học S ư phạm Hà Nội. 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.5 DNS. 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

Download Presentation

Mạng máy tính

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Đại học Sư phạm Hà Nội

  2. 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.5 DNS 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 một Web server Chương 3: Tầng ứng dụng

  3. 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 Chương 3: Tầng ứng dụng

  4. 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 Một số ứng dụng mạng

  5. 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 Tạo một ứng dụng mạng

  6. 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.5 DNS 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 Chương 3: Tầng ứng dụng

  7. Các kiến trúc ứng dụng • Client-Server • Peer-to-peer (P2P) • Hybrid

  8. 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

  9. 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ý

  10. 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

  11. 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 Truyền thông của các tiến trình • Chú ý: Các ứng dụng P2P có cả tiến trình client và tiến trình server

  12. host hoặc server host hoặc server Tiến trình Tiến trình socket socket TCP với buffer, Biến TCP với Buffer, biến 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 Điều khiển bởi người lập trình ứng dụng Internet Đ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)

  13. Đố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 Các tiến trình đánh địa chỉ

  14. 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: Giao thức lớp ứng dụng

  15. 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 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 Các dịch vụ giao vận mà ứng dụng cần 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

  16. Yêu cầu của ứng dụng giao vận của một số ứng dụng 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ó Băng thông Co giãn Co giãn Co giãn Audio: 5kbps-1Mbps Video:10kbps-5Mbps Tương tự trên Yêu cầu kbps Co giãn Ứng dụng Truyền file E-mail Web Real-time audio/video Stored audio/video Trò chơi tương tác Instant messaging Mất dữ liệu Không cho phép Không cho phép Không cho phép Cho phép Cho phép Cho phép Không cho phép

  17. 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? Các dịch vụ các giao thức giao vận

  18. Các ứng dụng Internet: các giao thức tầng ứng dụng và tầng giao vận Giao thức tầng ứng dụng 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) Giao thức tầng giao vận TCP TCP TCP TCP TCP hoặc UDP UDP Ứ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

  19. 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.5 DNS 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 Chương 2: Tầng ứng dụng

  20. www.someschool.edu/someDept/pic.gif path name host name 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:

  21. 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 HTTP HTTP request HTTP response HTTP request Server chạy Apache Web server HTTP response

  22. 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ứ HTTP (tiếp) 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

  23. Không kiên trì 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 Kiên trì 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 Kết nối HTTP

  24. Giả sử người sử dụng nhập vào URL www.someSchool.edu/someDepartment/home.index 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 Nonpersistent HTTP (chứa text, tham chiếu tới 10 ảnh jpeg) 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 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 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

  25. 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 Nonpersistent HTTP (cont.) 4. HTTP server đóng kết nối TCP time 6.Lặp bước 1-5 cho mỗi đối tượng ảnh jpeg

  26. 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 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

  27. 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 Persistent HTTP

  28. 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 Connection: close Accept-language:fr (CR, LF) header line

  29. Bản tin yêu cầu HTTP

  30. HTTP/1.0 GET POST HEAD Hỏi server bỏ đối tượng đã yêu cầu ra khỏi trả lời HTTP/1.1 GET, POST, HEAD PUT đưa file trong phần body lên đường dẫn chỉ trong URL DELETE xóa file trong trường URL Kiểu Method

  31. Bản tin trả lời HTTP status line (protocol status code status phrase) 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 header line dữ liệu, ví dụ: file HTML đã yêu cầu

  32. 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 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ụ:

  33. 1. Telnet tới một Web server: Thực hành 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 telnet cis.poly.edu 80 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

  34. 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 Đố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 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 server ban đầu Proxy server HTTP request HTTP request client HTTP response HTTP response HTTP request HTTP response client server ban đầu

  35. 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 Web cache

  36. 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. Web cache

  37. Giả sử Kích thước của đối tượng trung bình = 100,000 bits ~ 960 kbs 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 Ví dụ caching Các server ban đầu public Internet Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN Institutional Cache

  38. Giải pháp có thể Tăng băng thông của đường truyền truy cập: 10 Mbps 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 Ví dụ caching (tiếp) Server ban đầu public Internet Đường truyền truy cập10 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache

  39. Cài đặt cache Hỗ trợ hit rate .4 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 Ví dụ caching (tiếp) Server ban đầu public Internet Đường truyền truy cập 1.5 Mbps Mạng của tổ chức 10 Mbps LAN institutional cache

  40. 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: <date> 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 Bản tin trả lời HTTP HTTP/1.0 304 Not Modified GET có điều kiện Server Cache Bản tin yêu cầu HTTP If-modified-since: <date> Đối tượng không bị thay đổi Bản tin yêu cầu HTTP If-modified-since: <date> Đối tượng đã thay đổi Bản tin trả lời HTTP HTTP/1.0 200 OK <data>

  41. 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.5 DNS 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 Chương 3: Tầng ứng dụng

  42. 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 Giao diện người sử dụng FTP FTP client FTP server Hệ thống file cục bộ FTP: File Transfer Protocol Truyền file user tại host Hệ thống file từ ở xa

  43. 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. Kết nối điều khiển TCP cổng 21 Kết nối dữ liệu TCP cổng 20 FTP client FTP server FTP: Kết nối dữ liệu và điều khiển riêng biệt • 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 đó

  44. 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 Lệnh và trả lời của FTP

  45. 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.5 DNS 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 Chương 2: Tầng ứng dụng

  46. Ba thành phần chính: User agent Mail server 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 user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server Hàng đợi bản tin gửi đi User mailbox Electronic Mail

  47. Mail Server mailbox chứa các bản tin thư điện tử gửi đến cho người sử dụng messagequeue 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 user agent user agent user agent user agent user agent user agent SMTP SMTP SMTP mail server mail server mail server Electronic Mail: Mail server

  48. 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 Electronic Mail: SMTP [RFC 2821]

  49. 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 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 user agent user agent mail server mail server Kịch bản: Alice gửi bản tin cho Bob 1 2 6 3 4 5

  50. Ví dụ tương tác SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

More Related