Bài giảng Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer)

pdf 107 trang ngocly 70
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: Lớp ứng dụng (Application Layer)", để 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:

  • pdfbai_giang_mang_may_tinh_chuong_2_lop_ung_dung_application_la.pdf

Nội dung text: Bài giảng Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer)

  1. Chương 2 lớp Ứng dụng (Application layer) A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). Computer They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. Networking: A Top They obviously represent a lot of work on our part. In return for use, we only ask the following: Down Approach  If you use these slides (e.g., in a class) that you mention their source th (after all, we’d like people to use our book!) 6 edition  If you post any slides on a www site, that you note that they are adapted Jim Kurose, Keith Ross from (or perhaps identical to) our slides, and note our copyright of this Addison-Wesley material. March 2012 Thanks and enjoy! JFK/KWR All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved lớp ứng dụng 2-1
  2. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện thử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-2
  3. Chương 2: lớp Ứng dụng (application layer) Mục tiêu:  Tìm hiểu về các giao  Khái niệm, các phương thức thông qua việc diện áp dụng của các xem xét các giao thức giao thức ứng dụng phổ biến của lớp ứng mạng dụng . Các mô hình dịch . HTTP vụ tầng transport . FTP . Mô hình máy . SMTP / POP3 / IMAP khách-máy chủ . DNS . Mô hình peer-to-  Lập trình ứng dụng peer mạng . socket API lớp ứng dụng 2-3
  4. Một số ứng dụng mạng  Thư điện tử  Đàm thoại trên mạng  web IP (Vd: Skype)  Nhắn tin  Hội thảo video thời gian thực  Đăng nhập từ xa  Mạng xã hội  Chia sẻ tập tin P2P  Tìm kiếm  Trò chơi trực tuyến với nhiều người cùng tham  gia   Truyền hình trực tuyến (streaming stored video – Vd: YouTube, Hulu, Netflix) lớp ứng dụng 2-4
  5. Tạo một ứng dụng mạng application transport network data liên kết Viết chương trình để: physical  Chạy trên các hệ thống đầu cuối (khác nhau)  Liên lạc qua mạng  Ví du: phần mềm web máy chủ giao tiếp với trình duyệt Không cần viết phần mềm cho các application transport thiết bị trong lõi của mạng network data liên application  Các thiết bị trong lõi mạng kết transport physical network ạ ứ ụ ủ data liên không ch y các ng d ng c a kết người dùng physical  Các ứng dụng trên các hệ thống đầu cuối cho phép phát triển ứng dụng và quảng bá nhanh chóng lớp ứng dụng 2-5
  6. Các kiến trúc ứng dụng Kiến trúc phù hợp của các ứng dụng:  Khách-chủ (client-server)  Mạng ngang hàng (peer-to-peer (P2P) ) lớp ứng dụng 2-6
  7. Kiến trúc máy khách-máy chủ Máy chủ (server):  Máy luôn luôn hoạt động  Địa chỉ IP cố định  Tổ chức thành các trung tâm dữ liệu để mở rộng quy mô máy khách/máy chủ Máy khách (client):  Giao tiếp với máy chủ  Có thể kết nối không liên tục  Có thể thay đổi địa chỉ IP  Không giao tiếp trực tiếp với các máy khách khác lớp ứng dụng 2-7
  8. Kiến trúc P2P (ngang hàng)  không có máy chủ luôn luôn hoạt Ngang hàng động  Các hệ thống đầu cuối bất kỳ truyền thông trực tiếp với nhau  Các bên (peer) yêu cầu dịch vụ từ các bên khác và cung cấp dịch vụ ngược lại cho các bên khác . Có khả năng tự mở rộng – các bên (peer) mới cung cấp thêm dịch vụ mới, cũng như có thêm nhu cầu mới về dịch vụ  Các peer được kết nối không liên tục và có thể thay đổi địa chỉ IP . Quản lý phức tạp lớp ứng dụng 2-8
  9. Các tiến trình liên lạc Tiến trình (process): chương trình đang máy khách, máy chủ chạy trong một máy Tiến trình máy khách:  Trong cùng một máy, hai tiến trình khởi tạo tiến trình giao tiếp với liên lạc nhau bằng cách sử dụng Tiến trình máy chủ: cơ chế truyền thông liên tiến trình (inter-process tiến trình chờ đợi để communication) (được được liên lạc định nghĩa bởi hệ điều hành)  Chú ý: các ứng dụng với  Các tiến trình trong các kiến trúc P2P có cả các hệ thống đầu cuối khác tiến trình máy khách và nhau truyền thông với máy chủ nhau bằng cách trao đổi các thông điệp (message) lớp ứng dụng 2-9
  10. Sockets  Tiến trình gửi/nhận thông điệp đến/ từ socket của nó  socket tương tự như cửa ra vào . Tiến trình gửi đẩy thông điệp ra khỏi cửa . Tiến trình gửi dựa trên hạ tầng vận chuyển bên kia của cánh cửa để phân phối thông điệp đến socket tại tiến trình nhận application application socket Được kiểm soát process process Bởi nhà phát triển ứng dụng transport transport network network Được điều khiển bởi hệ điều hành liên kết Internet liên kết physical physical lớp ứng dụng 2-10
  11. Xác định tiến trình  Để nhận thông điệp, tiến  Đinh danh (identifier) trình phải có định danh bao gồm cả địa chỉ IP và  Thiết bị hệ thống đầu cuối số port (số hiệu cổng) có địa chỉ IP 32-bit duy được liên kết với tiến nhất trình trên hệ thống đầu cuối.  Q: địa chỉ IP của hệ thống đầu cuối mà trên  Ví dụ về số port: tiến trình đang chạy . HTTP máy chủ: 80 trên đó có đủ để xác . máy chủ thư điện tử: 25 định tiến trình đó hay  Để gởi thông điệp HTTP không? đến web máy chủ . A: không, có nhiều gaia.cs.umass.edu : tiến trình có thể đang . Địa chỉ IP : 128.119.245.12 được chạy trên cùng . Số hiệu port (port một hệ thống đầu cuối number): 80  Còn nữa lớp ứng dụng 2-11
  12. Giao thức lớp Ứng dụng: định nghĩa  Các loại thông điệp được Các giao thức mở: trao đổi  Được định nghĩa trong . e.g., yêu cầu (request), RFCs ứ đáp ng (response)  Cung cấp khả năng  Cú pháp thông điệp: tương tác cho các ứng . Các trường trong thông dụng thuộc các nhà điệp và cách mà các phát triển khác nhau trường được định nghĩa  Vd: HTTP, SMTP  Ngữ nghĩa của thông điệp Các giao thức độc quyền: . Ý nghĩa của thông tin  Vd: Skype trong các trường  Các quy tắc (rules) khi nào và cách mà các tiến trình gởi và đáp ứng các thông điệp lớp ứng dụng 2-12
  13. Dịch vụ vận chuyển nào mà ứng dụng cần? Toàn vẹn dữ liệu (data Thông lượng (throughput) integrity)  Một số ứng dụng (vd: đa  Một số ứng dụng (ví dụ phương tiện) yêu cầu truyền tập tin, web thông lượng tối thiếu để transactions) yêu cầu độ đạt được “hiệu quả” thực tin cậy 100% khi truyền dữ thi liệu  Các ứng dụng khác (“ứng  Các ứng dụng khác (ví dụ dụng mềm dẻo”) có thể audio) có thể chịu được dùng bất kỳ thông lượng một số mất mát. nào cũng được Định thì (timing)  Một số ứng dụng (ví dụ, An ninh thoại Internet, game  Mã hóa, toàn vẹn dữ liệu, ươ ầ ộ t ng tác) yêu c u đ trễ thấp để đạt được “hiệu quả” thực thi lớp ứng dụng 2-13
  14. Các yêu cầu dịch vụ vận chuyển: các ứng dụng phổ biến ứng dụng mất dữ liệu thông lượng độ nhạy thời gian Truyền tập tin không mềm dẻo không thư điện tử không mềm dẻo không Web documents không mềm dẻo không audio/video chịu lỗi audio: 5kbps-1Mbps có, 100’s msec thời gian thực video:10kbps-5Mbps audio/video đã lưu chịu lỗi như trên có, vài giây Game tương tác chịu lỗi Trên một vài kbps có, 100’s msec nhắn tin không mềm dẻo có và không lớp ứng dụng 2-14
  15. Các dịch vụ thuộc giao thức vận chuyển trên Internet Dịch vụ TCP: Dịch vụ UDP:  Truyền tải có đảm bảo/tin cậy  Truyền dữ liệu không đảm (reliable transport) giữa tiến bảo (unreliable data trình gửi và nhận transfer) giữa tiến trình  Điều khiển luồng thông tin gửi và nhận (flow control): bên gửi sẽ không gửi vượt khả năng bên  Không hỗ trợ: độ tin cậy, nhận điều khiển luồng, điều ể ắ ẽ ị  Điều khiển tắc nghẽn khi n t c ngh n, đ nh thì, (congestion control): điều tiết bảo đảm thông lượng, bảo bên gửi khi mạng quá tải mật, và thiết lập kết nối.  Không hỗ trợ: định thì, bảo đảm thông lượng tối thiểu, bảo ạ ả ạ ậ Q: T i sao ph i quan tâm? T i m t sao có UDP?  Hướng kết nối (connection- oriented): yêu cầu thiết lập kết nối giữa tiến trình máy khách và máy chủ trước khi truyền lớp ứng dụng 2-15
  16. Ứng dụng Internet: Các giao thức lớp ứng dụng, transport Giao thức lớp Giao thức dưới lớp Ứng dụng Ứng dụng Vận chuyển thư điện tử SMTP [RFC 2821] TCP remote terminal access Telnet [RFC 854] TCP Web HTTP [RFC 2616] TCP Truyền tập tin FTP [RFC 959] TCP streaming multimedia HTTP (e.g., YouTube), TCP or UDP RTP [RFC 1889] Thoại Internet SIP, RTP, độc quyền (e.g., Skype) TCP or UDP lớp ứng dụng 2-16
  17. Bảo mật TCP TCP & UDP SSL là giao thức ở lớp  Không mã hóa ứng dụng  Mật mã chưa mã hóa  Các ứng dụng dùng thư được gởi đến socket để viện SSL, thông qua đó đi qua Internet trong để “nói chuyên” với TCP dạng nguyên bản SSL socket API SSL  Mật mã dạng không mã  Hỗ trợ kết nối TCP hóa được gởi vào trong được mã hóa socket và chuyển đi qua Internet ở dạng mã  ẹ ữ ệ Toàn v n d li u hóa  Chứng thực đầu cuối  Xem chương 7 lớp ứng dụng 2-17
  18. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-18
  19. Web và HTTP Ôn lại  Trang web \bao gồm các đối tượng (objects)  Đối tượng có thể là tập tin HTML, hình ảnh JPEG, Java applet, tập tin audio,  web page bao gồm tập tin HTML bao gồm một số đối tượng được tham chiếu  Mỗi đối tượng có thể được xác định bởi một URL, ví dụ www.someschool.edu/someDept/pic.gif tên miền đường dẫn lớp ứng dụng 2-19
  20. Tổng quan HTTP HTTP: hypertext transfer protocol . Giao thức lớp ứng dụng của Web PC chạy  Mô hình máy khách/máy trình duyệt chủ Firefox . máy khách: trình duyệt gửi yêu cầu, nhận phản hồi (dùng giao thức máy chủ HTTP) và “hiển thị” các Chạy web máy chủ đối tượng Web Apache . máy chủ: Web máy chủ gửi (dùng giao thức HTTP) các đối tượng để iphone chạy trả lời yêu cầu trình duyệt Safari lớp ứng dụng 2-20
  21. Tổng quan HTTP (tt) dùng TCP: HTTP “không lưu  máy khách khởi tạo kết trạng thái” nối TCP (tạo socket) đến  máy chủ không duy port 80 máy chủ trì thông tin về các yêu cầu trước đó của  máy chủ chấp nhận kết máy khách nối TCP từ máy khách ngoài lề  Các thông điệp HTTP Các giao thức nào duy trì (thông điệp thuộc giao “trạng thái” thì phức thức lớp ứng dụng) được tạp! trao đổi giữa trình duyệt  Lịch sử trước đó (trạng (HTTP máy khách) và thái) phải được duy trì web máy chủ (HTTP máy  Nếu máy chủ/máy khách bị chủ) sự cố, cách nhìn về “trạng thái” của nó có thể bị mâu  Kết nối TCP được đóng thuẫn, phải được điều chỉnh lớp ứng dụng 2-21
  22. Các kết nối HTTP HTTP không bền vững HTTP bền vững  Chỉ tối đa một đối  Nhiều đối tượng có tượng được gởi qua thể được gởi qua kết nối TCP một kết nối TCP . Kết nối sau đó sẽ giữa máy khách và bị đóng máy chủ  Tải nhiều đối tượng yêu cầu nhiều kết nối lớp ứng dụng 2-22
  23. HTTP không bền vững Giả sử người dùng vào URL như sau: (chứa text, www.someSchool.edu/someDepartment/home.index tham chiếu đến 10 hình jpeg) 1a. HTTP máy khách khởi tạo kết nối TCP đến HTTP máy chủ (tiến trình) tại 1b. HTTP máy chủ tại hệ thống www.someSchool.edu trên đầu cuối port 80 www.someSchool.edu chờ kết nối TCP tại port 80. 2. HTTP máy khách gởi thông “chấp nhận” kết nối, thông điệp yêu cầu HTTP (chứa URL) báo cho máy khách vào trong socket kết nối TCP. 3. HTTP máy chủ nhận thông Thông điệp chỉ ra rằng máy điệp yêu cầu, tạo thông điệp khách muốn đối tượng phản hồi chứa đối tượng someDepartment/home.index được yêu cầu, và gởi thông điệp đến socket của nó Thời gian lớp ứng dụng 2-23
  24. HTTP không bền vững(tt) 4. HTTP máy chủ đóng kết nối TCP. 5. HTTP máy khách nhận thông điệp phản hồi chứa tập tin html, hiển thị html. Phân tích cú pháp tập tin html, tìm ra các đối tượng jpeg được tham chiếu time 6. Các bước 1-5 được lặp lại cho mỗi đối tượng trong 10 đối tượng jpeg lớp ứng dụng 2-24
  25. HTTP không bền vững: thời gian đáp ứng RTT (round-trip time): thời gian để cho một gói tin nhỏ đi từ máy khách đến ủ ượ ạ máy ch và quay ng c l i Khởi tạo Thời gian đáp ứng HTTP: kết nối TCP  Một RTT để khởi tạo kết RTT nối TCP yêu cầu tập tin  Một RTT cho yêu cầu thời gian RTT HTTP và vài byte đầu truyền tập tin tiên của phản hồi HTTP tập tin được trả về được nhận  Thời gian truyền tập tin  Thời gian đáp ứng HTTP Thời gian Thời gian không bền vững = 2RTT+ thời gian truyền tập tin lớp ứng dụng 2-25
  26. HTTP bền vững Vấn đề với HTTP HTTP bền vững: không bền vững:  máy chủ để kết nối mở  Yêu cầu requires 2 sau khi gởi phản hồi RTTs cho mỗi đối tượng  Các thông điệp HTTP  Tốn tài nguyên khi Hệ tiếp theo giữa cùng điều hành xử lý mỗi kết máy khách/máy chủ nối TCP được gởi trên kết nối ở ở  Các trình duyệt thường đã m trên mở các kết nối TCP song  máy khách gởi các yêu song để lấy các đối cầu ngay khi nó gặp một tượng được tham chiếu đối tượng tham chiếu  Chỉ cần một RTT cho tất cả các đối tượng được tham chiếu lớp ứng dụng 2-26
  27. Thông điệp yêu cầu HTTP  hai loại thông điệp HTTP: yêu cầu (request), phản hồi (response)  Thông điệp yêu cầu HTTP: . ASCII (dạng thức con người có thể đọc được) Ký tự về đầu dòng Dòng yêu cầu Ký tự xuống dòng (các lệnh GET, POST, GET /index.html HTTP/1.1\r\n HEAD) Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Các dòng Accept-Language: en-us,en;q=0.5\r\n header Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n ký tự xuống dòng, Keep-Alive: 115\r\n ề ầ ớ ỉ Connection: keep-alive\r\n v đ u dòng m i ch \r\n điểm cuối cùng của thông điệp lớp ứng dụng 2-27
  28. Thông điệp yêu cầu HTTP: định dạng tổng quát method sp URL sp version cr lf dòng Yêu cầu header field name value cr lf các dòng ~ ~ header header field name value cr lf cr lf ~ entity body ~ thân lớp ứng dụng 2-28
  29. Tải lên biểu mẫu nhập liệu Phương thức POST:  web page thường bao gồm form input  dữ liệu nhập được tải lên máy chủ trong phần thân đối tượng HTML Phương thức URL:  Dùng phương thức GET  dữ liệu nhập được tải lên trong trường URL của dòng yêu cầu: www.somesite.com/animalsearch?monkeys&banana lớp ứng dụng 2-29
  30. Các phương thức HTTP/1.0: HTTP/1.1:  GET  GET, POST, HEAD  POST  PUT  HEAD . Tải tập tin trong . Yêu cầu máy chủ loại thân thực thể đến bỏ đối tượng được đường dẫn được xác yêu cầu ra khỏi định trong trường thông điệp phản hồi URL  DELETE . Xóa tập tin được chỉ định trong trường URL lớp ứng dụng 2-30
  31. Thông điệp phản hồi HTTP dòng trạng thái (giao thức mã trạng thái cụm từ trạng thái) HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n máy chủ: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n các dòng ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n header 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 Dữ liệu, ví dụ, data data data data data tập tin HTML được yêu cầu lớp ứng dụng 2-31
  32. Các mã trạng thái phản hồi HTTP  Mã trạng thái xuất hiện trong dòng đầu tiên trong thông điệp đáp ứng từ máy chủ tới máy khách  Một số mã mẫu: 200 OK . Yêu cầu thành công, đối tượng được yêu cầu sau ở trong thông điệp này 301 Moved Permanently . Đối tượng được yêu cầu đã được di chuyển, vị trí mới được xác định sau trong thông điệp này (Location:) 400 Bad Request . máy chủ không hiểu thông điệp yêu cầu 404 Not Found . Thông tin được yêu cầu không tìm thấy trên máy chủ này 505 HTTP Version Not Supported lớp ứng dụng 2-32
  33. Thử kiểm tra HTTP (phía máy khách) 1. Telnet đến Web máy chủ yêu thích của bạn: telnet cis.poly.edu 80 Mở kết nối TCP ở port 80 (port máy chủ HTTP mặc định) tại cis.poly.edu. Mọi thứ nhập vào được gởi đến port 80 tại cis.poly.edu 2. Nhập vào yêu cầu trong lệnh GET HTTP: GET /~ross/ HTTP/1.1 Bằng cách gõ những dòng này Host: cis.poly.edu (enter 2 lần), bạn đã gửi yêu cầu GET tối thiểu (nhưng đầy đủ) đến HTTP máy chủ 3. Xem thông điệp phản hồi được gửi bởi HTTP máy chủ! (hoặc dùng Wireshark để xem thông điệp yêu cầu và phản hồi của HTTP được bắt lại) lớp ứng dụng 2-33
  34. Trạng thái người dùng-máy chủ: cookies Nhiều Web site dùng cookies Ví dụ: 4 thành phần:  Susan thường truy cập 1) Dòng đầu cookie Internet từ một PC (cookie header line)  Vào trang thương mại của thông điệp phản hồi điện tử lần đầu tiên HTTP  Khi yêu cầu khởi tạo 2) cookie header line HTTP đến trang web đó, trong thông điệp yêu thì trang đó tạo: cầu HTTP kế tiếp . ID duy nhất 3) tập tin cookie được lưu . Một bản ghi trong cơ trữ trên máy người sở dữ liệu cho ID đó dùng, được quản lý bởi trình duyệt của người dùng 4) Cở sở dữ liệu tại Web site lớp ứng dụng 2-34
  35. Cookies: lưu trữ “trạng thái” (tt.) máy khách máy chủ ebay 8734 usual http request msg máy chủ Amazon tập tin cookie tạo ID usual http response backend set-cookie: 1678 cho user 1678 create ebay 8734 entry database amazon 1678 usual http request msg cookie: 1678 cookie- truy cập specific usual http response msg action một tuần sau: truy cập ebay 8734 usual http request msg amazon 1678 cookie: 1678 cookie- specific usual http response msg action lớp ứng dụng 2-35
  36. Cookies (tt) ngoài ra Cookie có thể được sử cookies và sự riêng tư: dụng cho:  cookie cho phép các  Cấp phép trang biết nhiều hơn về  Giỏ mua hàng bạn  Các khuyến cáo  Bạn có thể cung cấp tên  Trạng thái phiên làm ư ệ ử việc của user (Web thư và th đi n t cho các điện tử) trang Làm thế nào để giữa“trạng thái”:  các thời điểm kết thúc giao thức: duy trì trạng thái tại người gởi/nhận thông qua nhiều giao dịch  cookies: các thông điệp http mang trạng thái lớp ứng dụng 2-36
  37. Web caches (proxy máy chủ) Mục tiêu: thỏa mãn yêu cầu của máy khách không cần liên quan đến máy chủ nguồn  user thiết lập trình duyệt: truy cập Web proxy thông qua đệm máy chủ máy khách  Trình duyệt gởi tất cả máy chủ yêu cầu HTTP đến đệm gốc . Đối tượng có trong đệm: đệm trả về đối tượng . Ngược lại đệm yêu cầu đối tượng từ máy chủ máy khách máy chủ gốc, sau đó trả đối gốc tượng đó cho máy khách lớp ứng dụng 2-37
  38. Thông tin thêm về Đệm web (Web caching)  Đệm (đệm) hoạt Tại sao dùng đệm Web (web động như là cả máy caching)?  Giảm thời gian đáp ứng khách và máy chủ cho yêu cầu của máy . máy chủ đối với máy khách khách yêu cầu thông tin  Giảm lưu lượng trên đường . máy khách đối với máy liên kết truy cập ra chủ cung cấp Internet của một tổ chức  Thông thường đệm  Internet có rất nhiều được cài đặt bởi đệms: cho phép những nhà cung cấp nội dung với ISP (trường đại lượng tài nguyên “nghèo học, công ty, ISP nàn” vẫn cung cấp nội riêng) dung một cách hiệu quả (chia sẻ tập tin P2P cũng vậy) lớp ứng dụng 2-38
  39. Ví dụ đệm (Caching): Giả sử:  Kích thước trung bình của đối tượng: 100K bits origin  Số lượng yêu cầu trung bình từ trình máy chủ duyệt đến máy chủ gốc: 15/sec Internet công cộng  Tốc độ truyền dữ liệu trung bình đến trình duyệt: 1.50 Mbps  RTT từ bộ định tuyến của tổ chức đến bất kỳ máy chủ gốc: 2 giây 1.54 Mbps  Tốc độ liên kết truy cập: 1.54 Mbps liên kết truy cập Kết quả: Vấn đề!  Độ khả dụng của LAN: 15% Mạng tổ chức 1 Gbps LAN  Độ khả dụng của liên kết truy cập = 99%  Tổng thời gian trễ = trễ Internet + trễ truy cập + trễ LAN = 2 giây + minutes + µsecs lớp ứng dụng 2-39
  40. Ví dụ đệm: đường liên kết truy cập lớn hơn Giả sử:  Kích thước trung bình của đối tượng: 100K bits origin  tốc độ trung bình yêu cầu từ trình duyệt máy chủ đến máy chủ = 15/s Mạng  Tốc độ trung bình dữ liệu đến trình Internet duyệt: 1.50 Mbps  RTT từ bộ định tuyến của tổ chức đến bất kỳ máy chủ gốc: 2 giây 154 Mbps  Tốc độ liên kết truy cập: 1.54 Mbps 1.54 Mbps access liên kết Kết quả: 9.9% 154 Mbps  độ khả dụng của LAN = 15% Mạng  độ khả dụng trên liên kết truy cập= 99% tổ chức 1 Gbps LAN  Tổng độ trễ= trễ Internet + trễ truy cập + trễ LAN = 2 sec + minutes + µsecs msecs Chi phí: tốc độ liên kết truy cập được tăng lên (không rẻ!) lớp ứng dụng 2-40
  41. Ví dụ đệm: thiết lập đệm Giả sử:  Kích thước trung bình của đối tượng: 100K bits origin  tốc độ trung bình yêu cầu từ trình duyệt máy chủ đến máy chủ = 15/s public  Tốc độ trung bình dữ liệu đến trình duyệt: Internet 1.50 Mbps  RTT từ bộ định tuyến của tổ chức đến bất kỳ máy chủ gốc: 2 giây  Tốc độ liên kết truy cập: 1.54 Mbps 1.54 Mbps Kết quả: access liên kết  Độ khả dụng LAN: 15% Network tổ chức  access liên kết utilization? = 100% 1 Gbps LAN  total delay = ?Internet delay + access delay + LAN delay local web = 2 sec + minutesLàm +cách usecs nào để tính đệm độ khả dụng đường liên kết, độ trễ? Chi phí: web đệm (rẻ!) lớp ứng dụng 2-41
  42. Ví dụ đệm: thiết lập đệm Tính độ khả dụng của đường liên kết truy cập, độ trễ với đệm: origin  Giả sử khả năng đáp ứng của đệm là 0.4 máy chủ . 40% yêu cầu được đệm đáp ứng, 60% Mạng yêu cầu được máy chủ gốc đáp ứng Internet  Độ hiệu dụng của đường kết nối ra ngoài (access liên kết): . 60% yêu cầu dùng access liên kết 1.54 Mbps  Tốc độ truyền dữ liệu đến trình duyệt access liên kết trên access liên kết = 0.6*1.50 Mbps = 0.9 Mbps Mạng . Độ khả dụng = 0.9/1.54 = 0.58 tổ chức 1 Gbps LAN  Tổng độ trễ local web . = 0.6 * (độ trễ từ máy chủ gốc) +0.4 * (độ đệm trễ khi được đệm đáp ứng) . = 0.6 * (2.01) + 0.4 * (~msecs) . = ~ 1.2 secs . Ít hơn với liên kết 154 Mbps (và cũng rẻ lớp ứng dụng 2-42 hơn!)
  43. GET có điều kiện máy khách máy chủ  Mục tiêu: không gửi đối tượng nếu đối tượng trong đệm đã được cập nhật HTTP request msg Đối tượng If-modified-since: . Không có độ trễ truyền dữ không được liệu thay đổi . Mức độ sử dụng đường HTTP response trước liên kết thấp hơn HTTP/1.0 304 Not Modified  đệm: xác định thời gian của bản sao được đệm trong thông điệp yêu cầu HTTP If-modified-since: HTTP request msg  máy chủ: đáp ứng không chứa If-modified-since: Đối tượng đối tượng nếu bản sao trong được thay đệm đã được cập nhật: đổi sau HTTP response HTTP/1.0 304 Not HTTP/1.0 200 OK Modified lớp ứng dụng 2-43
  44. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-44
  45. FTP: giao thức truyền tập tin truyền tập tin FTP FTP FTP user máy khách máy chủ interface Người dùng hệ thống tập hệ thống tại hệ tin từ xa tập tin cục thống bộ đầu cuối  Truyền tập tin đến/từ máy ở xa  Mô hình máy khách/máy chủ . máy khách: phía khởi tạo phiên truyền (đến/từ máy ở xa) . máy chủ: máy ở xa  FTP: RFC 959  FTP máy chủ: port 21 lớp ứng dụng 2-45
  46. FTP: kết nối điều khiển và kết nối dữ liệu riêng biệt Kết nối điều khiển TCP,  FTP máy khách liên hệ với máy chủ port 21 FTP máy chủ tại port 21, dùng TCP Kết nối dữ liệuTCP, máy chủ port 20  máy khách được cấp phép FTP FTP trên kết nối điều khiển máy khách máy chủ  ệ ư ụ ừ máy khách duy t th m c t  máy chủ mở kết nối dữ ằ ở ệ xa, b ng cách g i các l nh liệu TCP khác để truyền ế ố ề ể trên k t n i đi u khi n tập tin khác  ủ ậ ệ Khi máy ch nh n l nh  Kết nối điều khiển: “out ề ậ ủ ở truy n t p tin, máy ch m of band” (ngoại tuyến) kết nối dữ liệu TCP thứ 2 (để truyền tập tin) đến máy  FTP máy chủ duy trì khách “trạng thái”: thư mục hiện tại, xác thực trước  ề ộ ậ Sau khi truy n m t t p tin, đó máy chủ đóng kết nối dữ liệu lớp ứng dụng 2-46
  47. Các lệnh và phản hồi FTP Các lệnh mẫu: Ví dụ mã trả về  Gởi văn bản ASCII  Mã trạng thái và cụm trên kênh điều khiển từ mô tả (như HTTP)  USER username  331 Username OK,  PASS password password required  125 data connection  LIST trả về danh already open; sách tập tin trên transfer starting thư mục hiện tại  425 Can’t open data  RETR tập tinname lấy connection tập tin  452 Error writing tập  STOR tập tinname tin lưu trữ (đặt) tập tin vào trong máy ở xa lớp ứng dụng 2-47
  48. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-48
  49. Hàng đợi Thư điện tử thông điệp đi Hộp thư user Ba thành phần chính: user agent  user agents  máy chủ thư điện tử mail user máy chủ  simple mail transfer agent protocol: SMTP SMTP mail user máy chủ agent User Agent SMTP  Còn gọi là “mail reader” SMTP user agent  Soạn thảo, sửa đổi, đọc các mail thông điệp thư điện tử máy chủ user  Ví dụ Outlook, agent Thunderbird, iPhone mail user máy khách agent  Các thông điệp đi và đến được lưu trên máy chủ lớp ứng dụng 2-49
  50. Thư điện tử: máy chủ thư điện tử máy chủ thư điện tử: user agent  Hộp thư (mailbox) chứa thông điệp đến user mail user máy chủ agent  Hàng thông điệp (message queue) của SMTP mail user các thông điệp mail ra máy chủ agent ngoài (chuẩn bị gửi) SMTP  Giao thức SMTP giữa SMTP user các máy chủ thư điện tử agent ể ử ệ mail đ g i các thông đi p máy chủ thư điện tử user . máy khách: máy chủ agent thư điện tử gởi user agent . “máy chủ”: máy chủ thư điện tử nhận lớp ứng dụng 2-50
  51. Thư điện tử: SMTP [RFC 2821]  Sử dụng TCP để truyền thông điệp thư điện tử một cách tin cậy từ máy khách đến port 25 máy chủ  Truyền trực tiếp: máy chủ gửi đến máy chủ nhận  3 giai đoạn truyền . bắt tay (chào hỏi) . truyền thông điệp . đóng  Tương tác lệnh/phản hồi (như HTTP, FTP) . Lệnh: văn bản ASCII . Phản hồi: mã và cụm trạng thái  Thông điệp phải ở dạng mã ASCII 7 bit lớp ứng dụng 2-51
  52. Tình huống: Alice gởi thông điệp đến Bob 1) Alice dùng một UA để soạn 4) Phần máy khách của thảo thông điệp “gởi đến” SMTP máy chủ gửi thông bob@someschool.edu điệp của Alice trên kết 2) UA của Alice gởi thông nối TCP điệp đến máy chủ thư điện 5) máy chủ thư điện tử của tử của cô ta; thông điệp Bob đặt thông điệp đó được đặt trong hàng đợi trong hộp thư của Bob 3) Phần máy khách của SMTP 6) Bob kích hoạt user agent máy chủ mở kết nối TCP của anh ta để đọc thông với máy chủ thư điện tử điệp của Bob 1 user mail user mail agent agent máy chủ máy chủ 2 3 4 6 5 máy chủ thư điện tử của Alicemáy chủ thư điện tử của Bob lớp ứng dụng 2-52
  53. 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: S: 250 alice@crepes.fr Sender ok C: RCPT TO: 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 lớp ứng dụng 2-53
  54. Thử nghiệm tương tác SMNP:  telnet máy chủname 25  Xem trả lời 220 từ máy chủ  Nhập các lệnh HELO, MAIL FROM, RCPT TO, DATA, QUIT Lệnh ở trên cho phép bạn gửi thư điện tử không cần dùng thư điện tử máy khách (reader) lớp ứng dụng 2-54
  55. SMTP: kết luận  SMTP dùng kết nối bền So sánh với HTTP: vững  HTTP: pull (kéo)  SMTP yêu cầu thông điệp (header & body)  SMTP: push (đẩy) phải ở dạng ASCII 7-  Cả hai đều có tương tác bit lệnh/phản hồi, các mã  SMTP máy chủ dùng trạng thái dạng ASCII uses CRLF.CRLF để xác định kết thúc thông  HTTP: mỗi đối tượng được điệp đóng gói trong thông điệp phản hồi của nó  SMTP: nhiều đối tượng được gửi trong thông điệp chứa nhiều phần lớp ứng dụng 2-55
  56. Định dạng thông điệp Mail SMTP: giao thức dùng cho trao đổi thông điệp header thư điện tử dòng trống RFC 822: chuẩn cho định dạng thông điệp văn ả b n: body  Các dòng header, ví dụ . To: . From: . Subject: Khác với các lệnh SMTP MAIL FROM, RCPT TO!  Body: “thông điệp” . ỉ ự Ch có các ký t ASCII lớp ứng dụng 2-56
  57. Các giao thức truy cập Mail ứ user giao th c user SMTP SMTP ậ agent truy c p mail agent (e.g., POP, IMAP) máy chủ thư điện máytử chủ thư điện tử của người gởi của người nhận  SMTP: truyền dẫn/lưu trữ thư vào máy chủ của người nhận  Giao thức truy cập thư: trích xuất từ máy chủ . POP: Post Office Protocol [RFC 1939]: xác thực, tải thư về . IMAP: Internet Mail Access Protocol [RFC 1730]: nhiều tính năng hơn, bao gồm cả các thao tác thay đổi các thông điệp đang được lưu trên máy chủ . HTTP: gmail, Hotmail, Yahoo! Mail lớp ứng dụng 2-57
  58. Giao thức POP3 S: +OK POP3 máy chủ ready C: user bob Giai đoạn kiểm tra đăng S: +OK C: pass hungry nhập (authorization) S: +OK user successfully logged on  Các lệnh phía máy khách: C: list . user: khai báo username S: 1 498 . pass: password S: 2 912  Đáp ứng phía máy chủ S: . . +OK C: retr 1 . -ERR S: S: . Giai đoạn giao dịch C: dele 1 máy khách: C: retr 2 S:  list: liệt kê các số thông điệp S: .  ấ ệ retr: trích xu t thông đi p theo C: dele 2 số C: quit  dele: xóa S: +OK POP3 máy chủ signing off  quit lớp ứng dụng 2-58
  59. POP3 và IMAP Tìm hiểu thêm về POP3 IMAP  Ví dụ trên sử dụng chế  Giữ tất cả các thông điệp độ “tải xuống và xóa” của ở một nơi: tại máy chủ POP3  Cho phép người dùng tổ . Bob không thể đọc lại chức, sắp xếp các thông thư điện tử nếu anh ta điệp trong các thư mục ổ thay đ i máy khách  Giữ trạng thái của người  Chế độ “tải xuống-và-giữ” dùng trong suốt phiên của POP3: sao chép các làm việc: thông điệp trên các máy . Các tên của các thư khách khác nhau mục và ánh xạ giữa  POP3 không giữ trạng các ID của thông điệp thái của các phiên làm và tên của thư mục việc lớp ứng dụng 2-59
  60. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-60
  61. Hệ thống tên miền (DNS: domain name system) Con người: nhiều cách Hệ thống tên miền (Domain nhận dạng: Name System): . Số an sinh xã hội,  Cơ sở dữ liệu phân tán được tên, số hộ chiếu thực hiện theo tổ chức phân Các hệ thống đầu cuối cấp của nhiều máy chủ tên Internet, bộ định miền tuyến:  Giao thức lớp ứng dụng: các . Địa chỉ IP (32 bit) – hệ thống đầu cuối, các máy được dùng cho định chủ tên miền trao đổi để phân địa chỉ gói tin giải tên (dịch địa chỉ  tên) . “tên”, ví dụ . Lưu ý: chức năng trong phần www.yahoo.com – lõi Internet, được thực hiện được dùng bởi con như là giao thức lớp ứng dụng người . Sự phức tạp ở “biên” của Q: làm cách nào để ánh xạ mạng” giữa địa chỉ IP và tên, lớp ứng dụng 2-61 và ng c l i?
  62. DNS: các dịch vụ, cấu trúc Các dịch vụ DNS Tại sao không tập trung  Dịch tên máy ra địa chỉ hóa DNS? IP  Một điểm chịu lỗi  Bí danh máy  Lưu lượng . Lưu các tên gốc, bí danh  Cơ sở dữ liệu tập trung tương ứng cách xa nơi yêu cầu  Bí danh máy chủ thư  Bảo trì điện tử  Cân bằng tải A: không biến đổi được . Các bản sao cho web máy chủ: nhiều địa quy mô! chỉ IP tương ứng cho 1 tên lớp ứng dụng 2-62
  63. DNS: cơ sở dữ liệu phân cấp, phân tán máy chủ DNS gốc com DNS máy chủ org DNS máy chủ edu DNS máy chủ poly.edu umass.edu yahoo.com pbs.org amazon.com DNS máy chủDNS máy chủ DNS máy chủ DNS máy chủ DNS máy chủ máy khách muốn địa chỉ IP của www.amazon.com:  máy khách truy vấn máy chủ gốc (root) để tìm DNS máy chủ quản lý vùng “.com”  máy khách truy vấn DNS máy chủ “.com” tìm DNS máy chủ quản lý vùng “amazon.com”  máy khách truy vấn DNS máy chủ “amazon.com” để lấy địa chỉ IP của www.amazon.com lớp ứng dụng 2-63
  64. DNS: các máy chủ tên miền gốc  Được máy chủ tên miền cục bộ liên lạc để hỏi khi không thể phân giải tên  máy chủ tên miền gốc: . Liên lạc với máy chủ tên miền có thẩm quyền (authoritative máy chủ tên miền) nếu ánh xạ tên không xác định . Lấy ánh xạ . Trả về ánh xạ đến máy chủ tên miền cục bộ c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD k. RIPE London (17 other sites) h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA m. WIDE Tokyo f. Internet Software C. (5 other sites) Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA 13 name “máy chủ” (5 other sites) gốc toàn cầu b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) lớp ứng dụng 2-64
  65. TLD, máy chủ có thẩm quyền Các máy chủ miền cấp cao nhất (top-level domain (TLD) servers ): . Chịu trách nhiệm cho tên miền com, org, net, edu, aero, jobs, museums, và tất cả các tên miền cấp cao nhất của quốc gia, như là: uk, fr, ca, jp . Công ty Network Solutions quản lý máy chủ chứa các thông tin của vùng .com TLD . Tổ chức Educause quản lý .edu TLD Các DNS máy chủ có thẩm quyền: . Các tổ chức sở hữu các DNS máy chủ riêng nhằm cung cấp các tên được cấp phép và ánh xạ địa chỉ IP cho các hệ thống đầu cuối được đặt tên của tổ chức đó . Có thể được quản lý bởi tổ chức hoặc nhà cung cấp dịch vụ lớp ứng dụng 2-65
  66. DNS máy chủ tên miền cục bộ  Không hoàn toàn theo cấu trúc phân cấp  Mỗi ISP (ISP, công ty, trường đại học) có một máy chủ cục bộ như vậy . Còn được gọi là “default máy chủ tên miền”  Khi một hệ thống đầu cuối tạo một truy vấn DNS, truy vấn được gởi đến DNS máy chủ cục bộ của nó . Có bộ nhớ đệm (đệm) cục bộ chứa thông tin về các cặp tên-đến-địa chỉ gần đây (nhưng có thể hết hạn!) . Hoạt động như một proxy, chuyển truy vấn vào trong hệ thống DNS phân cấp lớp ứng dụng 2-66
  67. Ví dụ phân giải tên DNS máy chủ miền DNS gốc 2 .edu TLD  hệ thống đầu cuối tại 3 DNS máy cis.poly.edu muốn địa 4 chủ chỉ IP của gaia.cs.umass.edu 5 DNS máy chủ cục bộ Truy vấn tuần tự: dns.poly.edu  máy chủ được hỏi sẽ 7 6 trả lời với tên của 1 8 máy chủ quản lý vùng DNS máy chủ có thẩm quyền liên quan dns.cs.umass.edu  “tôi không biết tên Host yêu cầu này, nhưng hãy hỏi cis.poly.edu thêm thông tin từ máy chủ này” gaia.cs.umass.edu lớp ứng dụng 2-67
  68. Ví dụ phân giải tên DNS máy chủ DNS gốc 2 3 7 Truy vấn đệ quy: 6  Đẩy trách nhiệm .edu TLD DNS phân giải tên cho máy chủ máy chủ tên miền DNS máy chủ cục bộ được hỏi dns.poly.edu 5 4  Tải nặng tại các 1 8 tầng trên của hệ DNS máy chủ có thẩm quyền thống phân cấp? dns.cs.umass.edu Host yêu cầu cis.poly.edu gaia.cs.umass.edu lớp ứng dụng 2-68
  69. DNS: đệm (caching), cập nhật các bản ghi  Một khi máy chủ tên miền biết về 1 ánh xạ tên- địa chỉ, nó sẽ lưu tạm ánh xạ đó . Các mục đệm hết hạn (sẽ bị xóa) sau một khoảng thời gian (TTL) . Thông tin trong các TLD máy chủ thường được lưu tạm trong các máy chủ tên miền cục bộ • Do đó các máy chủ tên miền gốc không bị truy cập thường xuyên  Các mục được lưu tạm có thể hết hạn . Nếu cặp thông tin tên-địa chỉ IP thay đổi, có thể các máy khác trên Internet không biết được cho đến khi tất cả TTL hết hạn.  Cơ chế cập nhật/thông báo được đề xuất trong bộ chuẩn IETF . RFC 2136 lớp ứng dụng 2-69
  70. Các bản ghi DNS DNS: cơ sở dũ liệu phân tán lưu trữ các bản ghi thông tin (resource records - RR) Định dạng RR: (name, value, type, ttl) type=A type=CNAME . name là tên host . name là bí danh của một tên . value là địa chỉ IP “gốc” (tên thực) . VD: www.ibm.com tên thực là type=NS máy chủeast.backup2.ibm.com . Name là tên miền . ố (e.g., foo.com) value là tên g c . value là tên hệ thống đầu cuối của máy chủ type=MX tên miền có thẩm . value là tên của máy chủ thư quyền quản lý tên miền điện tử được liên kết với name này lớp ứng dụng 2-70
  71. Giao thức và các thông điệp DNS  Các thông điệp truy vấn (query) và trả lời (reply) đều có cùng định dạng thông điệp 2 bytes 2 bytes Phần đầu thông điệp identification flags  identification: số 16 bit # questions # answer RRs xác định 1 truy vấn, hoặc # authority RRs # additional RRs trả lời cho truy vấn có cùng số này questions (variable # of questions)  flags: . Truy vấn hoặc trả lời answers (variable # of RRs) . Mong muốn đệ quy . Đệ quy sẵn sàng authority (variable # of RRs) . Trả lời có thẩm quyền additional info (variable # of RRs) lớp ứng dụng 2-71
  72. Giao thức và các thông điệp DNS 2 bytes 2 bytes identification flags # questions # answer RRs # authority RRs # additional RRs Các trường name, questions (variable # of questions) type cho một truy vấn Các RRs để trả answers (variable # of RRs) lời truy vấn ả ề Các b n ghi thông tin v authority (variable # of RRs) các máy chủ có thẩm quyền thông tin “hữu ích” additional info (variable # of RRs) bổ sung có thể sẽ dùng lớp ứng dụng 2-72
  73. Thêm các bản ghi vào trong DNS  Ví dụ: khởi tạo mới công ty “Network Utopia”  Đăng ký tên miền networkuptopia.com tại một DNS registrar – tổ chức nhận đăng ký tên miền (như là Network Solutions) . Cung cấp tên, địa chỉ IP của máy chủ tên miền có thẩm quyền quản lý tên miền này (primary và secondary) . Tổ chức quản lý tên miền thêm hai bản ghi vào trong máy chủ quản lý vùng .com: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A)  Tạo bản ghi type A trong máy chủ có thẩm quyền quản lý networkuptopia.com cho www.networkuptopia.com; và bản ghi type MX cho máy chủ thư điện tử thuộc networkutopia.com lớp ứng dụng 2-73
  74. Tấn công DNS Tấn công DDoS Tấn công chuyển hướng  Đẩy khối lượng dữ liệu  Man-in-middle lớn tới các máy chủ . Ngăn chặn các truy vấn gốc  Đầu đọc DNS . Không thành công cho . Gửi các trả lời giả tạo đến nay đến các DNS máy chủ, . Lọc lưu lượng (sẽ được các máy chủ . Các DNS máy chủ cục lưu lại) bộ lưu tạm các địa chỉ Khai thác DNS cho tấn IP của TLD máy chủ, vì công DDoS thế không cần truy cập  Gởi các truy vấn với địa máy chủ gốc chỉ nguồn giả mạo: địa  Đẩy khối lượng dữ liệu chỉ IP mục tiêu ớ ớ ủ l n t i TLD máy ch  Yêu cầu khuếch đại . Nguy hiểm hơn Application Layer 2-74
  75. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-75
  76. Kiến trúc P2P thuần túy  Không có máy chủ hoạt động liên tục  Các hệ thống đầu cuối bất kỳ giao tiếp trực tiếp với nhau  Các máy được kết nối không liên tục và thay đổi địa chỉ IP Ví dụ: . Phân phối tập tin (BitTorrent) . Streaming (KanKan) . VoIP (Skype) lớp ứng dụng 2-76
  77. Phân phối tập tin: so sánh giữa mô hình máy khách-máy chủ và P2P Câu hỏi: mất bao lâu để phân phối tập tin (kích thước F) từ một máy chủ đến N máy? . Lưu lượng tải lên/tải xuống của bên (peer) là tài nguyên giới hạn us: lưu lượng tải lên của máy chủ di: lưu lượng tải xuống tập tin, size F u1 d của bên i us 1 u2 d máy chủ 2 di uN network (với băng thông lớn) ui dN ui: lưu lượng tải lên bên i lớp ứng dụng 2-77
  78. Thời gian phân phối tập tin: máy khách- máy chủ  máy chủ truyền: phải gửi (tải lên) tuần tự N bản sao tập tin: . Thời gian để gởi một bản sao: F us F/us di . Thời gian để gởi N bản sao: network NF/us ui  máy khách: mỗi máy khách phải tải xuống bản sao của tập tin . dmin = tốc độ tải xuống của máy khách tải chậm nhất . Thời gian để máy khách tải chậm nhất tải xong: F/dmin Thời gian để phân phối tập tin F đến N máy khách D > max{NF/u ,F/d } dùng phương pháp c-s s, min máy khách-máy chủ Tăng tuyến tính trong N lớp ứng dụng 2-78
  79. Thời gian phân phối tập tin: P2P  máy chủ: chỉ cần tải lên ít nhất một bản sao . ờ ở ộ ả F Th i gian g i m t b n sao: F/us us  một máy khách: máy khách di phải tải xuống bản sao tập tin network . Thời gian tối thiếu để máy ui khách tải xuống: F/dmin  nhiều máy khách: với N máy thì tổng dung lượng tải về là NF bit . Tốc độ upload tối đa (khống chế tốc độ tải về tối đa) là us + Sui Thời gian phân phối F đến N máy khách DP2P > max{F/us,,F/dmin,,NF/(us + Sui)} dùng phương pháp P2P Tăng tuyến tính trong N nhưng mỗi khi thêm bên (peer) tham gia sử dụng dịch vụ, chính nó lại gia tăng năng lực dịch vụ lớp ứng dụng 2-79
  80. So sánh máy khách-máy chủ với P2P: ví dụ Tốc độ máy khách upload = u, F/u = 1 hour, us = 10u, dmin ≥ us 3.5 P2P 3 Client-Server 2.5 2 1.5 1 0.5 Minimum Distribution Time 0 0 5 10 15 20 25 30 35 N lớp ứng dụng 2-80
  81. Phân phối tập tin P2P: BitTorrent  Tập tin được chia thành các khối 256Kb (chunks)  Các bên (peer) trong in torrent gửi/nhận các khối tracker: theo dõi các bên (peers) torrent: nhóm các bên tham gia trong torrent trao đổi các khối Alice tham gia lấy danh sách các peer từ tracker và bắt đầu trao đổi các khối với các bên trong torrent lớp ứng dụng 2-81
  82. Phân phối tập tin P2P: BitTorrent  Bên (peer) tham gia torrent: . không có các khối, nhưng sẽ lần lượt tích lũy chúng từ các bên (peer) khác . đăng ký với tracker để lấy danh sách các bên (peer) khác, kết nối với peer khác và cả “láng giềng” của các bên (peer) khác  trong khi tải xuống, bên (peer) tải các khối dữ liệu nó đã có tới các bên (peer) khác  bên (peer) có thể thay đổi các bên (peer) mà nó đang trao đổi các khối dữ liệu  Các bên (peer) có thể tham gia hay rời bỏ nhóm phân phối  Một khi bên (peer) có toàn bộ tập tin, nó có thể (ích kỷ) rời khỏi hoặc (vị tha) ở lại trong nhóm lớp ứng dụng 2-82
  83. BitTorrent: yêu cầu, gởi các khối Yêu cầu các khối: Gởi các khối: tit-for-tat  tại bất kỳ thời điểm nào,  Alice gởi các khối cho bốn các peer khác nhau có bên (peer) nào hiện tại đang các tập con khác nhau gởi các khối cho cô ở tốc độ của các khối cao nhất  định kỳ, Alice yêu cầu . Alice xiết các yêu cầu từ các mỗi bên (peer) cho danh peer khác (sẽ không nhận được sách các khối mà các khối từ Alice) bên (peer) có . Đánh giá lại top 4 mỗi 10 giây  Mỗi 30 giây: chọn ngẫu nhiên  Alice yêu cầu các khối ộ ắ ầ ở đang thiếu từ các bên m t peer khác, b t đ u g i ố (peer) , hiếm trước các kh i . Không xiết các yêu cầu của bên (peer) này . bên (peer) mới được chọn có thể tham gia và top 4 lớp ứng dụng 2-83
  84. BitTorrent: tit-for-tat (1) Alice cho Bob kết nối (2) Alice trở thành một trong bốn nhà cung cấp hàng đầu của Bob; Bob đáp lại (3) Bob trở thành một trong bốn nhà cung cấp hàng đầu của Alice khi tải lên nhanh hơn: dễ tìm được đối tác tốt hơn, lấy tập tin nhanh hơn! lớp ứng dụng 2-84
  85. Distributed Hash Table (DHT)  Bảng Hash  Mô hình DHT  Circular DHT and overlay networks  Peer churn
  86. Cơ sở dữ liệu đơn giản Cơ sở dữ liệu phân tán (distributed P2P database) đơn giản với cặp (key, value): • khóa (key): số an sinh xã hội; value: tên người Key Value 132-54-3570 John Washington 761-55-3791 Diana Louise Jones 385-41-0902 Xiaoming Liu 441-89-1956 Rakesh Gopal 217-66-5609 Linda Cohen . 177-23-0199 Lisa Kobayashi • khóa (key): tên phim; value: địa chỉ IP
  87. Bảng Hash • thuận tiện hơn để lưu trữ và tìm kiếm trên đại diện số của khóa (key) • khóa (key) = hash(original key) Khóa gốc (Original Key) khóa (key) Giá trị 132-54-3570 8962458 John Washington 761-55-3791 7800356 Diana Louise Jones 385-41-0902 1567109 Xiaoming Liu 441-89-1956 2360012 Rakesh Gopal 217-66-5609 5430938 Linda Cohen . 177-23-0199 9290124 Lisa Kobayashi
  88. Distributed Hash Table (DHT)  Phân phối các cặp (key, value) qua hàng triệu các bên . Các cặp được phân bố đều trên các peer  Bất kỳ bên (peer) nào cũng có thể truy vấn trên DHT bằng cách dùng key . Cơ sở dữ liệu trả về giá trị trùng key đó . Để giải quyết truy vấn, số lượng nhỏ các thông điệp được trao đổi giữa các bên (peer)  Mỗi bên (peer) chỉ biết một số nhỏ các bên (peer) khác
  89. Chỉ định các cặp khóa-giá trị (key-value) cho các bên (peer)  Quy tắc: chỉ định cặp khóa-giá trị (key-value) đến bên (peer) mà có ID gần nhất (closest).  Quy ước: gần nhất(closest) is sự kế thừa ngay lặp tức (immediate successor ) của khóa (key) đó.  Ví dụ: không gian ID {0,1,2,3, ,63}  Giả sử 8 bên: 1,12,13,25,32,40,48,60 . Nếu khóa = 51, thì được chỉ định cho bên (peer) 60 . Nếu khóa = 60, thì được chỉ định cho bên (peer) 60 . Nếu khóa = 61, thì được chỉ định cho bên (peer) 1
  90. DHT vòng tròn (Circular DHT) Mỗi bên chỉ nhận thức được người lập tức kế nhiệm và người tiền nhiệm 1 60 12 13 48 25 40 32 “overlay network”
  91. Giải quyết một truy vấn 1 Giá trị nào được kết hợp với khóa 53 ? value 12 60 13 48 O(N) các thông điệp 25 trung bình để giải quyết 40 truy vấn, khi có N bên (peer) 32
  92. DHT vòng tròn với đường tắt 1 Giá trị Giá trị nào cho key 53 12 60 13 48 25 40 32 • Mỗi bên theo dõi đại chỉ IP của người tiền nhiệm, người kế nhiệm, đường tắt. • Giảm từ 6 còn 3 thông điệp. • Có thể thiết kế các đường tắt với O(log N) láng giềng, O(log N) thông điệp trong truy vấn
  93. Peer churn Xử lý peer churn: 1 Các bên có thể tham gia và rời khỏi (churn) nhóm 3 Mỗi bên biết địa chỉ của hai 15 kế nhiệm của nó  Mỗi bên định kỳ ping hai kế 4 nhiệm của nó để kiểm tra sự 12 tồn tại 5 Nếu người vừa kế nhiệm bỏ 10 đi, thì chọn kế nhiệm kế tiếp 8 như là người kế nhiệm tức thời Ví dụ: peer 5 đột ngột rời khỏi mới
  94. Peer churn Xử lý peer churn: 1 Các bên có thể tham gia và rời khỏi (churn) nhóm 3 Mỗi bên biết địa chỉ của hai 15 kế nhiệm của nó  Mỗi bên định kỳ ping hai kế 4 nhiệm của nó để kiểm tra sự 12 tồn tại Nếu người vừa kế nhiệm bỏ 10 đi, thì chọn kế nhiệm kế tiếp 8 như là người kế nhiệm tức thời mới Ví dụ: bên (peer) 5 đột ngột rời khỏi  bên (peer) 4 phát hiện sự rời khỏi của bên (peer) 5; bên (peer) 8 trở thành người kế nhiệm ngay lập tức của nó  4 yêu cầu 8 là người kế nhiệm tức thời của nó; người kế nhiệm tức thời của 8 trở thành người kế nhiệm thứ 2 của 4.
  95. Chương 2: Nội dung 2.1 Các nguyên lý của 2.6 Các ứng dụng P2P các ứng dụng mạng 2.7 Lập trình socket 2.2 Web và HTTP với UDP và TCP 2.3 FTP 2.4 Thư điện tử . SMTP, POP3, IMAP 2.5 DNS lớp ứng dụng 2-95
  96. Lập trình Socket Mục tiêu: tìm hiểu cách xây dựng các ứng dụng máy khách/máy chủ liên lạc bằng sockets socket: một cánh cửa giữa tiến trình ứng dụng và giao thức vận chuyển giữa 2 đầu cuối application application socket Được điều khiển bởi process process Nhà phát triển ứng dụng transport transport network network Được điều khiển bởi hệ điều hành liên kết Internet liên kết physical physical lớp ứng dụng 2-96
  97. Lập trình Socket Hai loại socket cho hai dịch vụ transport: . UDP: chuyển gói tin không đảm bảo . TCP: chuyển luồng tin có đảm bảo (stream- oriented) Ứng dụng ví dụ: 1. máy khách nhận một dòng các ký tự (dữ liệu) từ bàn phím của nó và gởi dữ liêu đó đến máy chủ. 2. máy chủ nhận được dữ liệu đó và chuyển đổi các ký tự sang chữ hoa. 3. máy chủ gởi dữ liệu đã được sửa đổi cho máy khách ở trên. 4. máy khách này nhận được dữ liệu đã bị sửa đổi và hiển thị dòng đó lên màn hình của nólớp ứng. dụng 2-97
  98. Lập trình Socket với UDP UDP: không “kết nối” giữa máy khách và máy chủ  Không bắt tay trước khi gởi dữ liệu  Bên gửi chỉ rõ địa chỉ IP đích và số cổng cho mỗi gói (packet)  Bên nhận lấy địa chỉ IP và số cổng của bên gửi từ gói nhận được UDP: dữ liệu được truyền có thể bị mất hoặc được nhận không đúng thứ tự Quan điểm ứng dụng:  UDP cung cấp cơ chế truyền các nhóm bytes (“datagrams”) không tin cậy giữa máy khách và máy chủ lớp ứng dụng 2-98
  99. Sự tương tác socket máy khách/máy chủ: UDP máy chủ (chạy với địa chỉ máy chủIP) máy khách create socket: create socket, port= x: clientsocket = serversocket = socket(AF_INET,SOCK_DGRAM) socket(AF_INET,SOCK_DGRAM) create datagram with máy chủIP and port=x; send datagram via read datagram from clientsocket serversocket write reply to read datagram from serversocket clientsocket specifying máy kháchIP, ố ệ s hi u port close clientsocket Lớp ứng dụng2-99
  100. Ứng dụng ví dụ: UDP máy khách Python UDPmáy khách Bao gồm thư viện socket của Python’ from socket import * servername = ‘hostname’ serverport = 12000 Tạo socket UDP cho máy clientsocket = socket(socket.AF_INET, chủ socket.SOCK_DGRAM) Nhận thông điệp từ bàn phím người dùng message = raw_input(’Input lowercase sentence:’) Đính kèm tên máy chủ, cổng đến thông điệp; clientsocket.sendto(message,(servername , serverport )) gởi vào socket Đọc các ký tự trả lời từ modifiedMessage, serverAddress = socket vào chuỗi clientsocket.recvfrom(2048) In ra chuỗi được nhận và print modifiedMessage đóng socket clientsocket.close() lớp ứng dụng 2-100
  101. Ứng dụng ví dụ : UDP máy chủ Python UDPmáy chủ from socket import * serverport = 12000 Tạo UDP socket serversocket = socket(AF_INET, SOCK_DGRAM) Gắn kết socket đến số serversocket.bind(('', serverport)) port cục bộ12000 print “The máy chủ is ready to receive” Lặp mãi mãi while 1: Đọc từ UDP socket vào message, clientAddress = serversocket.recvfrom(2048) message, lấy địa chỉ IP của máy khách (địa chỉ IP máy modifiedMessage = message.upper() khách và port) Gởi chuỗi chữ hoa trở lại serversocket.sendto(modifiedMessage, clientAddress) cho máy khách này lớp ứng dụng 2-101
  102. Lập trình Socket với TCP máy khách phải liên lạc với  Khi được máy khách liên lạc, máy chủ máy chủ TCP tạo socket mới  Tiến trình máy chủ phải được cho tiến trình máy chủ để chạy trước trao đổi với máy khách đó  máy chủ phải tạo socket . Cho phép máy chủ nói (cửa) để mời máy khách đến chuyện với nhiều máy liên lạc khách . Số port nguồn được dùng máy khách tiếp xúc máy chủ để phân biệt các máy bằng: khách (xem tiếp chương  Tạo socket TCP, xác định địa 3) chỉ IP, số port của tiến trình Quan điểm ứng dụng: máy chủ TCP cung cấp việc truyền các byte  Khi máy khách tạo socket: đáng tin cậy và theo thứ tự giữa máy khách TCP thiết lập kếtmáy khách và máy chủ nối đến máy chủ TCP lớp ứng dụng 2-102
  103. Tương tác socket máy khách/máy chủ: TCP máy chủ (chạy trên hostid) máy khách create socket, port=x, for incoming request: serversocket = socket() wait for incoming TCP create socket, connection request connect to hostid, port=x connectionSocket = connection setup clientsocket = socket() serversocket.accept() send request using read request from clientsocket connectionSocket write reply to connectionSocket read reply from clientsocket close connectionSocket close clientsocket lớp ứng dụng 2-103
  104. Ứng dụng ví dụ : TCP máy khách Python TCPmáy khách from socket import * serverName = ’servername’ Tạo TCP socket cho máy serverPort = 12000 chủ, port 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName,serverPort)) sentence = raw_input(‘Input lowercase sentence:’) Không cần đính kèm tên clientSocket.send(sentence) máy chủ, port modifiedSentence = clientSocket.recv(1024) print ‘From Server:’, modifiedSentence clientSocket.close() lớp ứng dụng 2-104
  105. Ví dụ ứng dụng: TCP máy chủ Python TCPmáy chủ from socket import * Tạo socket TCP chào đón serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind((‘’,serverPort)) máy chủ bắt đầu lắng nghe các yêu cầu TCP serverSocket.listen(1) đến print ‘The server is ready to receive’ Lặp mãi mãi while 1: máy chủ đợi accept() cho yêu cầu đến, socket mới được tạo connectionSocket, addr = serverSocket.accept() trở về Đọc các byte từ socket sentence = connectionSocket.recv(1024) (nhưng không đọc địa capitalizedSentence = sentence.upper() chỉ như UDP) Đóng kết nối đến máy connectionSocket.send(capitalizedSentence) khách này(nhưng không connectionSocket.close() đóng socket chào đón) lớp ứng dụng 2-105
  106. Chương 2: tóm tắt  Các kiến trúc ứng dụng  Các giao thức: . máy khách-máy chủ . HTTP . P2P . FTP  ầ ề ị ụ ứ Các yêu c u v d ch v ng . dụng: SMTP, POP, IMAP . Độ tin cậy, băng thông, . DNS độ trễ . P2P: BitTorrent,  Mô hình dịch vụ vận chuyển DHT Internet  Lập trình socket : TCP, . ế ố ị ướ K t n i đ nh h ng, tin UDP sockets cậy: TCP . Không tin cậy, datagrams: UDP lớp ứng dụng 2-106
  107. Chương 2: tóm tắt Quan trọng: tìm hiểu về các giao thức!  trao đổi thông điệp yêu Các chủ đề quan trọng: cầu /trả lời điển hình:  Điều khiển với các thông điệp . máy khách yêu cầu ữ ệ thông tin hoặc dịch d li u vụ . in-band, out-of-band . máy chủ đáp ứng với  Tập trung và không tập dữ liệu, mã trạng trung thái  Không trạng thái và có trạng  Các định dạng thông điệp: thái . Phần đầu (headers):  Truyền tin cậy và không tin các trường cho biết cậy thông tin về dữ liệu  “sự phức tạp tại mạng biên” . ữ ệ ể D li u: thông tin đ lớp ứng dụng 2-107 truyền thông