Giáo trình Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer) - Nguyễn Hồng Sơn

Các peer làm relay Vấn đề phát sinh khi cả peer A và Peer B đều nằm phía sau NAT. NAT ngăn chặn peer ngoài khởi tạo cuộc gọi vào với peer bên trong Giải pháp: Dùng super node của peer A và peer B_ chọn relay Mỗi peer khởi tạo phiên với relay. Nhờ vậy các Peer có thể giao tiếp với nhau vượt NAT bằng relay

pdf47 trang | Chia sẻ: thucuc2301 | Lượt xem: 846 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Giáo trình Mạng máy tính - Chương 2: Lớp ứng dụng (Application Layer) - Nguyễn Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
12: Lớp Ứng dụng 1 Chương 2 LỚP ỨNG DỤNG (Application Layer) 2: Lớp Ứng dụng 2 Tổng quan mục tiêu của chương r Làm quen với các khái niệm cũng như thực hiện các giao thức ứng dụng  Mô hình dịch vụ lớp truyền tải  Mô hình client- server  Mô hình peer-to- peer r Khảo sát các giao thức lớp ứng dụng phổ biến  HTTP  FTP  SMTP / POP3 / IMAP  DNS 22: Lớp Ứng dụng 3 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 2: Lớp Ứng dụng 4 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 32: Lớp Ứng dụng 5 Các kiến trúc của ứng dụng mạng r Client-server r Peer-to-peer (P2P) r Lai giữa client-server và P2P 2: Lớp Ứng dụng 6 Kiến trúc Client-server r server:  Là máy chủ thường trực  Địa chỉ IP cố định r client:  Giao tiếp với server  Có thể kết nối không liên tục  Địa chỉ IP tĩnh hay động  Không trao đổi trực tiếp lẫn nhau client/server 42: Lớp Ứng dụng 7 Kiến trúc thuần P2P r Không có server thường trực r Các end system tự do giao tiếp trực tiếp r Các máy kết nối với nhau không liên tục và thay đổi địa chỉ IP Khả triển tốt nhưng khó quản lý peer-peer 2: Lớp Ứng dụng 8 Lai giữa client-server và P2P Skype  Là ứng dụng VoIP theo kiến trúc P2P  Server trung tâm: tìm địa chỉ của đối tác ở xa  Kết nối client-client trực tiếp không thông qua server Instant messaging  Chương trình chat giữa hai user là P2P  Service trung tâm: phát hiện sự hiện hữu của client và vị trí của client • Mỗi khi user online sẽ đăng ký địa chỉ với server trung tâm • user nhờ server tìm địa chỉ của người muốn gọi đến 52: Lớp Ứng dụng 9 Giao tiếp giữa các quá trình (Process) Quá trình (Process): là chương trình chạy trên một host. r Trên cùng host: giao tiếp liên quá trình (inter-process communication) . r Trên các host khác biệt: trao đổi thông điệp Client process: là quá trình khởi sự giao tiếp Server process: là quá trình đợi client process liên hệ r Trong kiến trúc P2P các host có cả client process và server process 2: Lớp Ứng dụng 10 Giao tiếp giữa hai quá trình trên hai host khác biệt r process truyền/nhận thông điệp đến/từ socket của nó process TCP với bộ đệm và các biến socket host hay server process TCP với bộ đệm và các biến socket host hay server Internet Hệ điều hành kiểm soát Người lập trình kiểm soát 62: Lớp Ứng dụng 11 Địa chỉ quá trình r Để nhận các thông điệp, process phải có danh định r Mỗi thiết bị host có địa chỉ IP r Liệu địa chỉ IP đủ để chỉ định một process hay không? r Danh định gồm địa chỉ IP và chỉ số port liên kết với process trên host. r Ví dụ các chỉ số port:  HTTP server: 80  Mail server: 25 r Để gửi một thông điệp HTTP đến ptithcm.edu.vn web server:  IP address: 203.162.44.162  Port number: 80 2: Lớp Ứng dụng 12 Các định nghĩa giao thức lớp ứng dụng r Các loại thông điệp được trao đổi,  Ví dụ request, response r Cú pháp thông điệp:  Có các field nào, kích thước r Ngữ nghĩa của thông điệp  Ý nghĩa của thông tin trong field r Các qui tắc về thời điểm và cách thức truyền hay đáp ứng cho các thông điệp Các giao thức chạy trên khu vực công cộng: r Được định nghĩa trong các RFC r Cho phép liên kết hoạt động r Ví dụ HTTP, SMTP Các giao thức riêng: r Ví dụ Skype 72: Lớp Ứng dụng 13 Dịch vụ truyền tải cần cho ứng dụng Data loss r Một số ứng dụng chấp nhận thất thoát số liệu ví dụ audio r Các ứng dụng khác như truyền file hay telnet yêu cầu truyền tải tin cậy 100% Timing r Một số ứng dụng yêu cầu độ trễ nhỏ, ví dụ Internet telephony, game tương tác Throughput r Một số ứng dụng yêu cầu thông lượng tối thiểu, ví dụ multimedia r Các ứng dụng khác dùng bất cứ thông lượng nào có được Security r Mật mã, bảo toàn số liệu, 2: Lớp Ứng dụng 14 Các dịch vụ của lớp truyền tải trên Internet TCP service: r Thiết lập kết nối (connection- oriented) r Truyền tải tin cậy r Điều khiển luồng (flow control) r Kiểm soát nghẽn r Không cung cấp: kiểm soát trễ, đảm bảo thông lượng tối thiểu, an ninh UDP service: r Truyền tải không tin cậy r Không cung cấp: thiết lập kết nối, điều khiển luồng, kiểm soát nghẽn, kiểm soát trễ, đảm bảo thông lượng, an ninh 82: Lớp Ứng dụng 15 Một số ứng dụng và giao thức hỗ trợ Ứng dụng e-mail remote terminal access Web file transfer streaming multimedia Internet telephony Giao thức lớp ứng dụng SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, riêng (ví dụ Skype) Giao thức lớp truyền tải TCP TCP TCP TCP TCP hay UDP Thường là UDP 2: Lớp Ứng dụng 16 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 92: Lớp Ứng dụng 17 Web và HTTP Vài thuật ngữ r Web page gồm nhiều đối tượng (object) r Đối tượng có thể là HTML file, ảnh JPEG, Java applet, audio file, r Web page cũng bao gồm base HTML-file chứa các đối tượng tham chiếu (referenced object) r Mỗi đối tượng tham chiếu được chỉ định bởi URL r Ví dụ URL: www.ptithcm.edu.vn/itDept/pic.gif host name path name HTTP được đặc tả trong RFC 2616 2: Lớp Ứng dụng 18 Tổng quan HTTP (1) HTTP: hypertext transfer protocol r Giao thức lớp ứng dụng cho web r 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 web  server: Web server gửi các đối tượng để đáp ứng các yêu cầu PC chạy trình duyệt IE Server chạy Apache Web server HTTP request HT TP req ues t HTTP response HT TP res pon se PC chạy trình duyệt firefox 10 2: Lớp Ứng dụng 19 Tổng quan HTTP (2) Dùng TCP: r client khởi tạo kết nối TCP đến port 80 của server r server chấp nhận kết nối r Thông điệp HTTP (thông điệp giao thức lớp ứng dụng) được trao đổi giữa trình duyệt (HTTP client) và Web server (HTTP server) r Đóng kết nối TCP HTTP là “stateless” r server không lưu giữ thông tin về các yêu cầu đã qua 2: Lớp Ứng dụng 20 Kết nối HTTP Kết nối HTTP không liên tục r Chỉ một đối tượng được chuyển qua một kết nối TCP Kết nối HTTP liên tục r Nhiều đối tượng được chuyển qua một kết nối TCP 11 2: Lớp Ứng dụng 21 HTTP không liên tục Giả sử người dùng nhập URL www.ptithcm.edu.vn/ITDep/home.index 1a. HTTP client khởi động kết nối HTTP server (process) tại www.ptithcm.edu.vn trên port 80 2. HTTP client truyền HTTP request message (chứa URL) vàoTCP socket. Thông điệp chỉ ra rằng client muốn đối tượng ITDep/home.index 1b. HTTP server tại www.ptithcm.edu.vn đợi kết nối tại port 80. “chấp nhận” kết nối, thông báo cho client 3. HTTP server nhận request message, tạo response message chứa đối tượng được yêu cầu, truyền thông điệp vào TCP socket của nó. Thời gian (chứa text và tham chiếu đến 10 ảnh jpeg) 2: Lớp Ứng dụng 22 HTTP không liên tục 5. HTTP client nhận đáp ứng chứa html file, hiển thị html. Phân tích html file, tìm 10 tham chiếu đến các đối tượng ảnh jpeg 6. Lặp lại các bước từ 1-5 cho mỗi ảnh 4. HTTP server đóng kết nối Thời gian 12 2: Lớp Ứng dụng 23 HTTP không liên tục: thời gian đáp ứng RTT: thời gian hành trình đi và về của một gói tin Thời gian đáp ứng: r Một RTT để khởi động kết nối TCP r Một RTT cho HTTP request và một vài byte đáp ứng đầu tiên r Thời gian truyền file Tổng = 2RTT+ thời gian truyền Thời gian truyền file Khởi tạo TCP connection RTT Yêu cầu file RTT Nhận file time time 2: Lớp Ứng dụng 24 HTTP liên tục HTTP không liên tục: r Cần 2 RTT/đối tượng r Phải tạo kết nối cho mỗi đối tượng r Trình duyệt thường mở các kết nối song song để lấy các đối tượng tham chiếu HTTP liên tục r server để mở kết nối sau khi gửi đáp ứng r Các thông điệp sau được gửi qua kết nối đang mở r client nhanh chóng gửi yêu cầu về đối tượng tham chiếu r Một RTT cho tất cả các đối tượng tham chiếu 13 2: Lớp Ứng dụng 25 HTTP request message r Hai loại HTTP messages: request, response r HTTP request message:  Dưới dạng văn bản ASCII GET /somedir/page.html HTTP/1.1 Host: www.ptithcm.edu.vn User-agent: Mozilla/4.0 Connection: close Accept-language:en-us (carriage return, line feed) request line (GET, POST, HEAD commands) header lines Carriage return, line feed chỉ kết thúc thông điệp 2: Lớp Ứng dụng 26 HTTP request message: định dạng tổng quát 14 2: Lớp Ứng dụng 27 Truyền lên form input Post method: r Web page thường chứa form input r Input được truyền lên server dưới dạng thân thực thể URL method: r dùng GET method r Input được truyền lên dưới dạng URL field của dòng yêu cầu, ví dụ: www.animalfood.com/animalsearch?monkeys&banana 2: Lớp Ứng dụng 28 Các loại Method HTTP/1.0 r GET r POST r HEAD  Yêu cầu server để đối tượng được yêu cầu ra ngoài đáp ứng HTTP/1.1 r GET, POST, HEAD r PUT  Truyền file lên máy chủ, file nằm trong thân thực thể, đường dẫn được chỉ ra trong URL r DELETE  Xóa file được chỉ ra trong URL 15 2: Lớp Ứng dụng 29 HTTP response message HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 2010 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2010 ... Content-Length: 6821 Content-Type: text/html data data data data data ... status line (mã trạng thái) header data, ví dụ HTML file được yêu cầu 2: Lớp Ứng dụng 30 Các mã đáp ứng HTTP 200 OK  request thành công, đối tượng yêu cầu sau cùng có trong thông điệp này 301 Moved Permanently  Đối tượng yêu cầu đã bị chuyển, vị trí mới được chỉ ra trong thông điệp này 400 Bad Request  Server không hiểu 404 Not Found  Không tìm thấy tài liệu yêu cầu trong server 505 HTTP Version Not Supported Trong dòng đầu tiên trong thôn điệp đáp ứng từ server ->client Ví dụ: 16 2: Lớp Ứng dụng 31 Cookie (1) Nhiều Web site dùng cookie. Cookie là một mẫu văn bản nhỏ mà web server đặt trên máy user. Mẫu này được gửi lại server mỗi khi user truy cập vào web server. Stateless--> stateful Thành phần: 1) cookie header line trong các thông điệp HTTP 2) tập tin cookie trên máy người dùng, được trình duyệt quản lý 3) cơ sở dữ liệu ẩn bên trong Web site Ví dụ: r User thường truy cập Internet từ máy tính PC r Vào một web site bán hàng qua mạng nào đó lần đầu tiên r Khi HTTP request đến web site, web site tạo:  danh định (ID) khác biệt  một mục trong cơ sở dữ liệu cho ID này 2: Lớp Ứng dụng 32 Cookie (2) client server http response http response Tập tin cookie Vài tuần sau: http request cookie: 1678 Sử dụng cookie Truy cập ebay 8734 http request Amazon server tạo ID 1678 cho user tạo mục http response Set-cookie: 1678 ebay 8734 amazon 1678 http request cookie: 1678 Sử dụng cookie Truy cập ebay 8734 amazon 1678 Cơ sở dữ liệu 17 2: Lớp Ứng dụng 33 Cookie (3) Cookie có thể chứa: r Thông tin chứng thực quyền r Giỏ hàng r Khuyến nghị r Trạng thái phiên (Web e-mail) Cookie và tính riêng tư: r Cookie cho phép web site học và hiểu nhiều về user r User có thể cung cấp tên và địa chỉ email cho web site Cách thức giữ trạng thái r các giao thức đầu cuối: duy trì trạng thái tại sender/receiver qua nhiều giao tác r cookie: thông điệp http mang trạng thái 2: Lớp Ứng dụng 34 Ky, thuâ-t Caching r Kha.i niê -m cache r Đáp ứng yêu cầu của client mà không cần truy vấn server nguồn r Trường hợp thực tê .:  Mô -t cơ quan co . mô -t đường nô .i đê .n Internet  Tâ.t ca / lưu lượng truy câ -p đê 0u đi qua kê .t nô .i na 0y  Nhiê 0u người du0ng co . thê / cu0ng truy câ -p đê .n cu0ng mô-t nô -i dung  Gia /i pha .p tăng tô .c truy xuâ .t: caching 18 2: Lớp Ứng dụng 35 Web cache (proxy server) r user cấu hình trình duyệt: truy xuất Web qua cache r Trình dyệt gửi tất cả các yêu cầu đến cache  Đối tượng có trong cache: cache đáp ứng ngay  Đối tượng không có trong cache, cache yêu cầu đối tượng từ server nguồn, sau đó gửi cho client client Proxy server client HT TP req ues t HT TP res pon se HTTP request HTT P re ques t server server HTTP response HTT P re spon se 2: Lớp Ứng dụng 36 Web caching r cache đóng hai vai trò client, server r Thông thường cache được cài đặt bởi ISP Lý do dùng Web caching? r Giảm thời gian đáp ứng cho các yêu cầu từ client r Giảm lưu lượng trên các liên kết Internet của cơ quan r Cho phép các nhà cung cấp nội dung phân phối nội dung hiệu quả 19 2: Lớp Ứng dụng 37 Ví dụ Giả sử r Trung bình mỗi đối tượng có 100,000 bit r Tốc độ trung bình gửi yêu cầu là 15/giây r Thời gian trễ từ router của doanh nghiệp đến bất cứ web server nào bên ngoài, cả đi và về là 2 giây Hiệu năng r Băng thông sử dụng trên LAN = 15% r Băng thông sử dụng trên access link = 100% r Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 2 giây + hàng phút + hàng mili giây server Internet Mạng cục bộ 10 Mbps LAN 1.5 Mbps access link 2: Lớp Ứng dụng 38 Ví dụ (2) Giải pháp 1 r Tăng băng thông của access link lên 10 Mbps Hiệu năng r Băng thông sử dụng trên LAN = 15% r Băng thông sử dụng trên access link = 15% Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 2 giây + cỡ mili giây + cỡ mili giây r Chi phí cho nâng cấp server Internet Mạng cục bộ 10 Mbps LAN 10 Mbps access link 20 2: Lớp Ứng dụng 39 Ví dụ (3) Giải pháp 2: cài đặt cache r Giả sử xác suất tìm thấy =0.45 Hiệu năng r 45% yêu cầu sẽ được đáp ứng tức thời r 55% yêu cầu phải lấy từ server nguồn r Băng thông sử dụng trên access link được giảm xuống còn 55%, trễ không đáng kể, chừng 10ms r Tổng trễ = Trễ qua Internet + trễ truy cập + trễ qua LAN = 0,55*(2+0,01) + 0,45*(khoảng mười ms) servers Internet Mạng cục bộ 10 Mbps LAN 1.5 Mbps access link cache 2: Lớp Ứng dụng 40 GET có điều kiện r Để máy chủ không phải gửi đối tượng nếu cache vẫn còn lưu giữ bản cập nhật r cache: chỉ ra ngày của bản sao được cập nhật trong HTTP request If-modified-since: r server: khẳng định không có cập nhật gì mới: HTTP/1.0 304 Not Modified r server:đối tượng đã bị hiệu chỉnh HTTP/1.0 200 OK cache server HTTP request msg If-modified-since: HTTP response HTTP/1.0 304 Not Modified Đối tượng Không bị hiệu chỉnh HTTP request msg If-modified-since: HTTP response HTTP/1.0 200 OK Đối tượng đã bị hiệu chỉnh 21 2: Lớp Ứng dụng 41 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 2: Lớp Ứng dụng 42 FTP (file transfer protocol) r Truyền/nhận file đến/từ máy ở xa r Mô hình client/server  client: khởi động  server: chờ đáp ứng r ftp: được đặc tả trong RFC 959 r ftp server: dùng port 20 và 21 Truyền file FTP server Giao diện FTP client Hệ thống file cục bộ Hệ thống file ở xa user 22 2: Lớp Ứng dụng 43 Kết nối cho điều khiển và kết nối truyền số liệu r FTP client tiếp xúc với FTP server tại port 21, dùng TCP r client được xác thực qua kết nối phục vụ điều khiển r client duyệt các thư mục ở xa bằng cách gửi các lệnh qua kết nối điều khiển. r Khi nhận lệnh truyền file, server mở một kết nối TCP thứ 2 đến client r Sau khi truyền file xong, server xóa kết nối số liệu. FTP client FTP server Cầu nối TCP cho điều khiển, port 21 Cầu nối TCP cho data port 20 r Muốn truyền file khác, server lại mở kết nối số liệu. r Thông tin điều khiển dùng kênh tách biệt với số liệu (out of band) r FTP là stateful: lưu giữ thư mục hiện hành và xác thực trước đó. 2: Lớp Ứng dụng 44 Active FTP va0 Passive FTP r Active mode: FTP client kê .t nô.i từ mô -t port ngâ ,u nhiên N >1023 đê .n command port ta -i server (21), client bă.t đâ 0u lă .ng nghe trên port N+1 va 0 truyê 0n lê -nh PORT N+1 đê.n FTP server. Server sau đo . kê.t nô .i đê .n cô /ng data được chi/ đi -nh trên client (N+1) từ port 20 cu/a no . . r Vi . du- 23 2: Lớp Ứng dụng 45 Active FTP va0 Passive FTP (2) r Passive mode: giải pha.p cho vâ.n đê 0 làm sao server khởi ta-o mô-t kê .t nô .i đê .n client r PASV: lê -nh ba.o với server vê 0 chê . đô- passive r Client khởi đô-ng 2 kê .t nô .i đê .n server, gia/i quyê .t vâ.n đê0 ca .c firewall lo-c kê.t nô.i đê .n data port (từ server đê.n client). Hai port ngâ,u nhiên N>1023 va0 N+1, port N kê .t nô.i đê .n port 21 cu/a server, sau đo . client pha .t lê -nh PASV, kê .t qua/ la0 server mở port ngâ,u nhiên P > 1023 va0 gửi PORT P trở la-i client, sau đo. client khởi đô -ng kê.t nô.i từ port N+1 đê .n port P trên server 2: Lớp Ứng dụng 46 Active FTP va0 Passive FTP (3) r Vi . du- passive mode 24 2: Lớp Ứng dụng 47 Active FTP va0 Passive FTP (4) r Active FTP :  command : client >1023 --> server 21  data : client >1023 <-- server 20 r Passive FTP :  command : client >1023 --> server 21  data : client >1023 --> server >1023 2: Lớp Ứng dụng 48 Các lệnh FTP và đáp ứng Vài lệnh phổ biến: r Lệnh dưới dạng ASCII text qua kênh điều khiển r USER username r PASS password r LIST trả về danh sách các file trong thư mục hiện hành r RETR filename lấy file r STOR filename gửi file lên host ở xa Vài mã đáp ứng r Mã trạng thái tương tự như bên HTTP r 331 Username OK, password required r 125 data connection already open; transfer starting r 425 Can’t open data connection r 452 Error writing file 25 2: Lớp Ứng dụng 49 Vi. du - FTP client r Command line r GUI FTP client: IE, firefox, FTPcute,... 2: Lớp Ứng dụng 50 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 26 2: Lớp Ứng dụng 51 Thư điện tử (Electronic Mail) Ba thành phần chính: r user agent r mail server r SMTP: simple mail transfer protocol User Agent r composing, editing, reading mail messages r Ví dụ: Eudora, Outlook, Mozilla Thunderbird r Hộp thư (hàng đợi) đi (outbox), hộp thư đến (inbox) cho mỗi user được lưu trên server user mailbox outgoing message queue mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP SMTP SMTP 2: Lớp Ứng dụng 52 Mail server Mail Server r mailbox chứa thư đến r outbox thư chờ gửi r SMTP protocol để truyền thư mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP SMTP SMTP 27 2: Lớp Ứng dụng 53 SMTP [RFC 2821] r Dùng TCP đề truyền thư từ client server, port 25 r Truyền trực tiếp: truyền server đến server khác r Ba pha  Bắt tay  Truyền thư  đóng r Giao tiếp lệnh/đáp ứng 2: Lớp Ứng dụng 54 UserA truyền thư sang UserB 1) User A dùng user agent tạo thư và gửi đến userB@ptithcm.edu.vn 2) User A gửi thư đến server A và server A xếp thư vào hàng đợi 3) Thực thể SMTP trên Server A mở một kết nối TCP với Server B 4) Thực thể SMTP truyền thư của user A qua kết nối TCP đến Server B. 5) Sever B nhận và đặt thư vào mailbox của user B 6) User B dùng user agent để đọc thư user agent mail serverA mail serverB user agent 1 2 3 4 5 6 User A User B 28 2: Lớp Ứng dụng 55 SMTP r SMTP dùng kết nối liên tục r SMTP yêu cầu các thông điệp được mã hóa theo mã 7-bit ASCII r SMTP server dùng CRLF.CRLF xác định kết thúc thông điệp 2: Lớp Ứng dụng 56 Định dạng thư điện tử Chuẩn định dạng thư điện tử được đặc tả trong RFC 822 header lines, ví dụ  To:  From:  Subject: khác với lệnh SMTP r body  Nội dung thư chỉ chứa ký tự ASCII header body Dòng trắng 29 2: Lớp Ứng dụng 57 Dạng mở rộng cho multimedia r MIME: multimedia mail extension, RFC 2045, 2056 r Thêm các dòng trong header để khai báo loại nội dung MIME 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 base64 encoded data ..... ......................... ......base64 encoded data Kiểu số liệu multimedia, khai báo tham số Phương pháp được dùng để mã hóa data MIME version Số liệu được mã hóa 2: Lớp Ứng dụng 58 Các giao thức lấy thư r Giao thức : lấy thư từ server  POP: Post Office Protocol [RFC 1939] • Xác thực (agent server) và download  IMAP: Internet Mail Access Protocol [RFC 1730] • Nhiều đặc tính, phức tạp • Thao tác xử lý thông điệp được lưu trên server  HTTP: gmail, Hotmail, Yahoo! Mail. user agent mail Server của người gửi user agent SMTP SMTP access protocol mail Server của người nhận 30 2: Lớp Ứng dụng 59 POP3 protocol Pha xác thực r client commands:  user: khai báo username  pass: password r Đáp ứng từ server  +OK  -ERR Pha tương tác, client: r list: liệt kê mã số thư r retr: lấy thư bằng mã số r dele: xóa r quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing off S: +OK POP3 server ready C: user son S: +OK C: pass ptithcm S: +OK user successfully logged on 2: Lớp Ứng dụng 60 POP3 và IMAP POP3 r Ví dụ trước là dùng chế độ download và xóa. r User chỉ có thể đọc lại thư trên client vừa lấy thư. Thay đổi client không thể đọc lại thư r Chế độ “Download-và- lưu giữ”: các bản sao của thư được lưu giữ trên client r POP3 là stateless IMAP r Giữ tất cả thư trên server r Cho phép user tổ chức các thư trong thư mục r IMAP giữ trạng thái qua các phiên:  Tên thư mục và ánh xạ giữa các message ID và tên thư mục 31 2: Lớp Ứng dụng 61 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 2: Lớp Ứng dụng 62 DNS (Domain Name System) host, router:  Địa chỉ IP được dùng để đánh địa chỉ các thiết bị, được dùng bởi máy  Tên ví dụ www.yahoo.com -được dùng bởi con người Ánh xạ qua lại giữa địa chỉ IP và tên? Domain Name System: r Cơ sở dữ liệu phân tán được hiện thực phân cấp nhiều name servers r Giao thức lớp ứng dụng host, router, name server giao tiếp nhau để phân giải tên (thông dịch giữa tên và địa chỉ)  Lưu ý: chức năng của core Internet, được hiện thực như giao thức lớp ứng dụng  Khá phức tạp tại vùng biên của mạng 32 2: Lớp Ứng dụng 63 Root DNS Servers com DNS servers org DNS servers edu DNS servers poly.edu DNS servers umass.edu DNS serversyahoo.comDNS servers amazon.com DNS servers pbs.org DNS servers Cơ sở dữ liệu phân tán, phân cấp Client muốn tìm địa chỉ IP của www.yahoo.com r client truy vấn một root server để tìm com DNS server r client truy vấn com DNS server để lấy yahoo.com DNS server r client truy vấn yahoo.com DNS server để lấy địa chỉ IP của www.yahoo.com 2: Lớp Ứng dụng 64 Root name server r Được các name server cục bộ liên hệ mỗi khi chúng không thể phân giải một tên r root name server:  Tiếp xúc với name server có thẩm quyền nếu không hiểu ánh xạ tên nào đó  Lấy ánh xạ  Gửi lại cho name server cục bộ Hệ thống tên miền trãi ra khắp thế giới với khoảng 13 root name server 33 2: Lớp Ứng dụng 65 TLD và các DNS Server cấp thấp r Các Top-level domain (TLD) server:  chịu trách nhiệm cho com, org, net, edu,...tất cả các tên miền quốc gia như vn, uk, fr, ca, jp.  Network Solutions cai quản các server cho com TLD  Educause cho edu TLD r Các server cấp thấp :  Các DNS server của tổ chức, doanh nghiệp, cung cấp ánh xạ tên host với địa chỉ IP xác thực cho các server bên trong (ví dụ Web, mail).  Có thể được cai quản bởi tổ chức, doanh nghiệp hay nhà cung cấp dịch vụ 2: Lớp Ứng dụng 66 Name Server trong mạng cục bộ r Không ràng buộc vào phân cấp r Mỗi ISP, công ty, trường học có một.  Cũng gọi là name server mặc định r Khi host truy vấn DNS, truy vấn được gửi đến DNS server cục bộ của host  Tác động như một proxy, chuyển truy ấn vào hệ thống tên miền phân cấp. 34 2: Lớp Ứng dụng 67 Host yêu cầu cis.icu.edu datacom.cs.ptithcm.edu root DNS server DNS server cục bộ dns.icu.edu 1 2 3 4 5 6 DNS server thẩm quyền dns.cs.ptithcm.edu 78 TLD DNS server Ví dụ về phân giải tên qua DNS r Host tại cis.icu.edu muốn địa chỉ IP của datacom.cs.ptithcm .edu Truy vấn lặp: r Server được truy vấn chỉ phúc đáp tên server để liên hệ r “Tôi không biết tên này, đề nghị hỏi server này” 2: Lớp Ứng dụng 68 Host yêu cầu cis.icu.edu datacom.cs.ptithcm.edu root DNS server DNS server cục bộ dns.icu.edu 1 2 45 6 DNS server thẩm quyền dns.cs.ptithcm.edu 7 8 TLD DNS server 3Truy vấn đệ qui: r Đặt trách nhiệm phân giải tên lên name server được liên hệ Ví dụ về phân giải tên qua DNS 35 2: Lớp Ứng dụng 69 Caching và cập nhật các record r Khi name server học ánh xạ tên, nó sẽ cache lại  Các mục trong cache biến mất sau một khoảng thời gian (timeout)  TLD server thường cache trong các name server cục bộ • Do đó giúp giảm truy vấn đến root name server r Cơ chế cập nhật được xây dựng bởi IETF  Xem thêm RFC 2136  2: Lớp Ứng dụng 70 Các DNS record DNS: cơ sở dữ liệu phân tán lưu các resource record (RR) r Type=NS  Tên là tên miền (ví dụ yahoo.com)  value là tên host của name server có thẩm quyền của domain này Định dạng RR : (name, value, type, ttl) r Type=A  Tên là tên host  value là địa chỉ IP r Type=CNAME  Tên là bí danh cho một số tên thật www.ibm.com là thật servereast.backup2.ibm.com  value là tên thật r Type=MX  value là tên của mailserver liên hệ với tên 36 2: Lớp Ứng dụng 71 Giao thức DNS (1) gồm hai thông điệp query và reply, cả hai có cùng định dạng header r identification: số 16 bit cho query, reply cho query này dùng cùng số r flags:  query hay reply  Cần đệ qui  Sẵn sàng đệ qui  reply là có thẩm quyền 2: Lớp Ứng dụng 72 Giao thức DNS (2) Các trường name, type cho query RR trong đáp ứng cho truy vấn Các record cho server có thẩm quyền Thông tin bổ sung hữu dụng 37 2: Lớp Ứng dụng 73 Dynamic DNS r Khái niệm DDNS r Đề nghị tìm hiểu thêm dịch vụ tên miền động và áp dụng 2: Lớp Ứng dụng 74 NỘI DUNG r Các nguyên lý r Web và HTTP r FTP r Electronic Mail SMTP, POP3, IMAP r DNS r Các ứng dụng P2P 38 2: Lớp Ứng dụng 75 Kiến trúc thuần P2P r Không có server thường trực r Các đầu cuối tự do giao tiếp trực tiếp r Các peer kết nối với nhau không liên tục và thay đổi địa chỉ IP peer-peer 2: Lớp Ứng dụng 76 Phân phối File Câu hỏi đặt ra: mất bao lâu để phân phối file từ một server đến N peer? us u2d1 d2 u1 uN dN Server Network (bandwidth đầy đủ) File, kích thước F us: băng thông truyền lên từ server ui: băng thông truyền lên từ peer di: băng thông tải về từ peer 39 2: Lớp Ứng dụng 77 Phân phối File (2) us u2d1 d2 u1 uN dN Server Network (đầy đủ băng thông) F r server gửi lần lượt N bản sao:  Ts=NF/us r client i mất Ti=F/di thời gian để download Tăng tuyến tính với N Tcs = max { NF/us, F/min(di) }i Thời gian để phân phối file đến N client 2: Lớp Ứng dụng 78 Phân phối File theo P2P us u2d1 d2 u1 uN dN Server Network (đầy đủ băng thông) F r server phải gửi một bản sao mất khoảng thời gian F/us r client i mất F/di để download r Tổng số bit phải download là NF r Tốc độ tải lên nhanh nhất có thể: us + Σui TP2P = max { F/us, F/min(di) , NF/(us + Σui) }i 40 2: Lớp Ứng dụng 79 BitTorrent (1) tracker: theo dõi các peer tham gia vào torrent torrent: nhóm các Peer trao đổi các mẫu file (chunk) Lấy danh sách các peer Các mẫu trao đổi peer r Dùng phân phối file theo P2P 2: Lớp Ứng dụng 80 BitTorrent (2) r file được chia thành các mẫu (chunk) 256KB. r peer gia nhập torrent:  Không có chunk, nhưng sẽ tích lũy chúng theo thời gian  Đăng ký với tracker để lấy danh sách các peer, nối đến tập con các peer (láng giềng) r Trong khi tải về, peer cũng tải lên các chunk đến các peer khác. r Các peer có thể là điểm đến hay đi r Khi peer đã có toàn bộ file, nó có thể bỏ đi hay giữ lại. 41 2: Lớp Ứng dụng 81 BitTorrent (3) Kéo các chunk r Tại bất lỳ thời điểm nào, các peer khác nhau đều có các tập con chunk của file khác nhau r Định kỳ, peer hỏi mỗi peer láng giềng về danh sách các chunk mà chúng có. r Peer gửi yêu cầu lấy các chunk bị thiếu Truyền các chunk r Peer A truyền các chunk đến bốn láng giềng hiện hành, truyền với tốc độ cao nhất  Mỗi 10 giây đánh giá lại top 4 r Mỗi 30 giây, chọn ngẫu nhiên một peer khác, khởi động truyền chunk  Peer mới được chọn có thể tham gia vào top 4  Khai thông 2: Lớp Ứng dụng 82 BitTorrent (4) (1) peer A khai thông với peer B (2) Peer A trở thành một trong bốn nhà cung cấp cho peer B, peer B đáp lại (3) Peer B trở thành một trong bốn nhà cung cấp cho peer A Với tốc độ tải lên cao hơn, có thể tìm thấy các đối tác tốt hơn và lấy file nhanh hơn! Peer B Peer A 42 2: Lớp Ứng dụng 83 Tìm kiếm thông tin Chia sẻ file (ví dụ e-mule) r Index theo dõi động các vị trí của file mà các peer chia sẻ. r Các peer cần báo với index những gì nó có. r Các Peer tìm kiếm trong index để xác định vị trí của file Dịch vụ chat r Index ánh xạ tên user sang vị trí r Khi user khởi động ứng dụng IM, cần thông báo vị trí với index r Các peer tìm kiếm trong index để xác định địa chỉ IP của user. Index trong hệ thống P2P: ánh xạ thông tin sang vị trí peer (vị trí = IP address & port number) 2: Lớp Ứng dụng 84 Index tập trung 1) khi peer kết nối, nó thông báo server trung tâm:  Địa chỉ IP  Nội dung 2) peer A truy vấn trung tâm 3) Peer A yêu cầu file từ peer B Server thư mục trung tâm peers 1 1 1 12 3 Peer A Peer B 43 2: Lớp Ứng dụng 85 Index tập trung: Nhược r Điểm lỗi đơn r Cổ chai r Vấn đề bản quyền Hoạt động truyền file là phân tán nhưng việc định vị file là tập trung 2: Lớp Ứng dụng 86 Truy vấn kiểu lũ (query flooding) r Phát tán truy vấn ra mọi nơi  Không có server trung tâm r Được dùng trong Gnutella r Mỗi peer lập danh sách các file mà nó sẵn sàng chia sẻ Đồ thị mạng r Có cạnh nối giữa peer X và Y nếu có kết nối TCP r Tất cả các peer hoạt động và các cạnh tạo nên mạng bao phủ r Cạnh: liên kết ảo r Thông thường một peer có kết nối dưới 10 láng giềng 44 2: Lớp Ứng dụng 87 Truy vấn kiểu lũ Query response Query Query response Qu ery Query res pon se Truyền File: HTTPr thông điệp truy vấn (query) được gửi qua các kết nối TCP đang mở r các peer chuyển tiếp thông điệp truy vấn r Phản hồi được gửi về qua đường ngược lại 2: Lớp Ứng dụng 88 Gia nhập Gnutella 1. peer A phải tìm một peer khác trong mạng Gnutella, dùng danh sách các peer ứng viên 2. Peer A cố gắng liên tục để có kết nối TCP với các peer ứng viên cho đến khi kết nối được với peer B nào đó 3. Tạo lũ truy vấn: peer A Ping đến peer B; peer B chuyển Ping đến các láng giềng của nó, đến lượt các láng giềng lại chuyển đi tiếp 4. Các peer nhận Ping phản hồi lại cho peer A bằng thông điệp Pong 5. Peer A nhận nhiều Pong và sau đó có thể thiết lập thêm các kết nối TCP 45 2: Lớp Ứng dụng 89 Mạng bao phủ phân cấp r Giữa các index trung tâm, dùng truy vấn kiểu lũ r Mỗi peer là một super node hay được gán là super node  Kết nối TCP giữa peer và super node của nó.  Kết nối TCP giữa các super node. r Super node theo dõi nội dung trong node con của nó ordinary peer group-leader peer neighoring relationships in overlay network 2: Lớp Ứng dụng 90 Skype r Thừa kế P2P, giao tiếp từng cặp. r Là giao thức lớp ứng dụng riêng r Mạng bao phủ phân cấp với các super node r Index ánh xạ tên user sang các địa chỉ IP; được phân phối qua các super node Skype clients (SC) Supernode (SN) Skype login server 46 2: Lớp Ứng dụng 91 Các peer làm relay r Vấn đề phát sinh khi cả peer A và Peer B đều nằm phía sau NAT. NAT ngăn chặn peer ngoài khởi tạo cuộc gọi vào với peer bên trong r Giải pháp:  Dùng super node của peer A và peer B_ chọn relay  Mỗi peer khởi tạo phiên với relay.  Nhờ vậy các Peer có thể giao tiếp với nhau vượt NAT bằng relay. 2: Lớp Ứng dụng 92 Đề nghị r Tìm hiểu Limewire và một số ứng dụng P2P khác 47 2: Lớp Ứng dụng 93 Hết chương 2

Các file đính kèm theo tài liệu này:

  • pdfmmt_ch2_0407_2005050.pdf
Tài liệu liên quan