Mục tiêu bài giảng chương 2 nhằm giúp các bạn 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, khảo sát các giao thúc lớp ứng dụng phổ biến,..
Chương LỚP ỨNG DỤNG (Application Layer) 2: Lớp Ứng dụng Tổng quan mục tiêu chương ❒ Làm quen với khái niệm thực giao thức ứng dụng Mơ hình dịch vụ lớp truyền tải Mơ hình clientserver Mơ hình peer-topeer ❒ Khảo sát giao thức lớp ứng dụng phổ biến HTTP FTP SMTP / POP3 / IMAP DNS 2: Lớp Ứng dụng NỘI DUNG ❒ Các nguyên lý ❒ Web HTTP ❒ FTP ❒ Electronic Mail SMTP, POP3, IMAP ❒ DNS ❒ Các ứng dụng P2P 2: Lớp Ứng dụng 2: Lớp Ứng dụng NỘI DUNG ❒ Các nguyên lý ❒ Web HTTP ❒ FTP ❒ Electronic Mail SMTP, POP3, IMAP ❒ DNS ❒ Các ứng dụng P2P Các kiến trúc ứng dụng mạng ❒ Client-server ❒ Peer-to-peer (P2P) ❒ Lai client-server P2P 2: Lớp Ứng dụng Kiến trúc Client-server server: Là máy chủ thường trực Địa IP cố định ❒ client: Giao tiếp với server Có thể kết nối không liên tục Địa IP tĩnh hay động Không trao đổi trực tiếp lẫn ❒ client/server 2: Lớp Ứng dụng Kiến trúc P2P ❒ Không có server thường trực Các end system tự peer-peer giao tiếp trực tiếp ❒ Các máy kết nối với không liên tục thay đổi địa IP ❒ Khả triển tốt khó quản lý 2: Lớp Ứng dụng Lai client-server P2P Skype Là ứng dụng VoIP theo kiến trúc P2P Server trung tâm: tìm đị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 hai user P2P Service trung tâm: phát hữu client vị trí client • Mỗi user online đăng ký địa với server trung tâm • user nhờ server tìm địa người muốn gọi đến 2: Lớp Ứng dụng Giao tiếp trình (Process) Client process: trình khởi giao tiếp Server process: trình đợi client process liên hệ Quá trình (Process): chương trình chạy host ❒ Trên host: giao tiếp liên trình (inter-process communication) ❒ Trên host khác biệt: trao đổi thơng điệp ❒ Trong kiến trúc P2P host có client process server process 2: Lớp Ứng dụng Giao tiếp hai trình hai host khác biệt ❒ process truyền/nhận thông điệp đến/từ socket host hay server host hay server Người lập trình kiểm soát process process socket socket TCP với đệm biến TCP với đệm biến Internet Hệ điều hành kiểm soát 2: Lớp Ứng dụng 10 Địa q trình Để nhận thơng điệp, process phải có danh định ❒ Mỗi thiết bị host có địa IP ❒ Liệu địa IP đủ để định process hay không? ❒ ❒ Danh định gồm địa IP số port liên kết với process host ❒ Ví dụ số port: HTTP server: 80 Mail server: 25 ❒ Để gửi 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 11 Các định nghĩa giao thức lớp ứng dụng ❒ Các loại thơng điệp trao đổi, Ví dụ request, response ❒ Cú pháp thơng điệp: Có field nào, kích thước ❒ Ngữ nghĩa thơng điệp Ý nghĩa thông tin field ❒ Các qui tắc thời điểm cách thức truyền hay đáp ứng cho thông điệp Các giao thức chạy khu vực công cộng: ❒ Được định nghĩa RFC ❒ Cho phép liên kết hoạt động ❒ Ví dụ HTTP, SMTP Các giao thức riêng: ❒ Ví dụ Skype 2: Lớp Ứng dụng 12 Dịch vụ truyền tải cần cho ứng dụng Data loss ❒ Một số ứng dụng chấp nhận thất số liệu ví dụ audio ❒ Các ứng dụng khác truyền file hay telnet yêu cầu truyền tải tin cậy 100% Timing ❒ Một số ứng dụng yêu cầu độ trễ nhỏ, ví dụ Internet telephony, game tương tác Throughput ❒ Một số ứng dụng u cầu thơng lượng tối thiểu, ví dụ multimedia ❒ Các ứng dụng khác dùng thông lượng có Security ❒ Mật mã, bảo tồn số liệu, … 2: Lớp Ứng dụng 13 Các dịch vụ lớp truyền tải Internet TCP service: ❒ ❒ ❒ ❒ ❒ Thiết lập kết nối (connectionoriented) Truyền tải tin cậy Điều khiển luồng (flow control) Kiểm sốt nghẽn Khơng cung cấp: kiểm soát trễ, UDP service: ❒ Truyền tải không tin cậy ❒ 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 đảm bảo thông lượng tối thiểu, an ninh 2: Lớp Ứng dụng 14 Một số ứng dụng 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 Giao thức lớp truyền tải 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) TCP TCP TCP TCP TCP hay UDP Thường UDP 2: Lớp Ứng dụng 15 2: Lớp Ứng dụng 16 NỘI DUNG ❒ Các nguyên lý ❒ Web HTTP ❒ FTP ❒ Electronic Mail SMTP, POP3, IMAP ❒ DNS ❒ Các ứng dụng P2P Web HTTP HTTP đặc tả RFC 2616 Vài thuật ngữ ❒ Web page gồm nhiều đối tượng (object) ❒ Đối tượng HTML file, ảnh JPEG, Java applet, audio file,… ❒ Web page bao gồm base HTML-file chứa đối tượng tham chiếu (referenced object) ❒ Mỗi đối tượng tham chiếu định URL ❒ Ví dụ URL: www.ptithcm.edu.vn/itDept/pic.gif path name host name 2: Lớp Ứng dụng 17 Tổng quan HTTP (1) HTTP: hypertext transfer protocol ❒ Giao thức lớp ứng dụng cho web ❒ Mơ hình client/server client: trình duyệt yêu cầu, nhận hiển thị đối tượng web server: Web server gửi đối tượng để đáp ứng yêu cầu HT T Pr e qu est HT PC chạy TP res trình duyệt IE pon se st ue req se Server P T on chạy HT esp r TP Apache Web T H server PC chạy trình duyệt firefox 2: Lớp Ứng dụng 18 Tổng quan HTTP (2) Dùng TCP: client khởi tạo kết nối TCP đến port 80 server ❒ server chấp nhận kết nối ❒ Thông điệp HTTP (thông điệp giao thức lớp ứng dụng) trao đổi trình duyệt (HTTP client) Web server (HTTP server) ❒ Đóng kết nối TCP ❒ HTTP “stateless” ❒ server không lưu giữ thông tin yêu cầu qua 2: Lớp Ứng dụng 19 Kết nối HTTP Kết nối HTTP không liên tục ❒ Chỉ đối tượng chuyển qua kết nối TCP Kết nối HTTP liên tục ❒ Nhiều đối tượng chuyển qua kết nối TCP 2: Lớp Ứng dụng 20 10 TLD DNS Server cấp thấp ❒ Các Top-level domain (TLD) server: chịu trách nhiệm cho com, org, net, edu, tất tên miền quốc gia vn, uk, fr, ca, jp Network Solutions cai quản server cho com TLD Educause cho edu TLD ❒ Các server cấp thấp : Các DNS server tổ chức, doanh nghiệp, cung cấp ánh xạ tên host với địa IP xác thực cho server bên (ví dụ Web, mail) Có thể cai quản tổ chức, doanh nghiệp hay nhà cung cấp dịch vụ 2: Lớp Ứng dụng 65 Name Server mạng cục ❒ Không ràng buộc vào phân cấp ❒ Mỗi ISP, cơng ty, trường học có Cũng gọi name server mặc định ❒ Khi host truy vấn DNS, truy vấn gửi đến DNS server cục host Tác động proxy, chuyển truy ấn vào hệ thống tên miền phân cấp 2: Lớp Ứng dụng 66 33 Ví dụ phân giải tên qua DNS root DNS server Host cis.icu.edu muốn địa IP datacom.cs.ptithcm edu Truy vấn lặp: ❒ ❒ Server truy vấn phúc đáp tên server để liên hệ ❒ “Tôi tên này, đề nghị hỏi server này” TLD DNS server DNS server cục dns.icu.edu DNS server thẩm quyền dns.cs.ptithcm.edu Host yêu cầu cis.icu.edu datacom.cs.ptithcm.edu 2: Lớp Ứng dụng Ví dụ phân giải tên qua DNS Truy vấn đệ qui: root DNS server ❒ Đặt trách nhiệm phân giải tên lên name server liên hệ 67 TLD DNS server DNS server cục dns.icu.edu Host yêu cầu DNS server thẩm quyền dns.cs.ptithcm.edu cis.icu.edu datacom.cs.ptithcm.edu 2: Lớp Ứng dụng 68 34 Caching cập nhật record ❒ Khi name server học ánh xạ tên, cache lại Các mục cache biến sau khoảng thời gian (timeout) TLD server thường cache name server cục • Do giúp giảm truy vấn đến root name server ❒ Cơ chế cập nhật xây dựng IETF Xem thêm RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 2: Lớp Ứng dụng 69 Các DNS record DNS: sở liệu phân tán lưu resource record (RR) Định dạng RR : (name, value, type, ttl) ❒ Type=A ❒ Tên tên host value địa IP ❒ Tên bí danh cho số tên thật www.ibm.com thật Type=NS Tên tên miền (ví dụ yahoo.com) value tên host name server có thẩm quyền domain Type=CNAME servereast.backup2.ibm.com value tên thật ❒ Type=MX value tên mailserver liên hệ với tên 2: Lớp Ứng dụng 70 35 Giao thức DNS (1) gồm hai thông điệp query reply, hai có định dạng header ❒ identification: số 16 bit cho query, reply cho query dùng số ❒ flags: query hay reply Cần đệ qui Sẵn sàng đệ qui reply có thẩm quyền 2: Lớp Ứng dụng 71 2: Lớp Ứng dụng 72 Giao thức DNS (2) Các trường name, type cho query RR đá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 36 Dynamic DNS ❒ Khái niệm DDNS ❒ Đề nghị tìm hiểu thêm dịch vụ tên miền động áp dụng 2: Lớp Ứng dụng 73 2: Lớp Ứng dụng 74 NỘI DUNG ❒ Các nguyên lý ❒ Web HTTP ❒ FTP ❒ Electronic Mail SMTP, POP3, IMAP ❒ DNS ❒ Các ứng dụng P2P 37 Kiến trúc P2P ❒ Khơng có server thường trực Các đầu cuối tự giao peer-peer tiếp trực tiếp ❒ Các peer kết nối với không liên tục thay đổi địa IP ❒ 2: Lớp Ứng dụng 75 Phân phối File Câu hỏi đặt ra: để phân phối file từ server đến N peer? us: băng thông truyền lên từ server Server u1 us d1 u2 ui: băng thơng truyền lên từ peer d2 File, kích thước F uN dN di: băng thông tải từ peer Network (bandwidth đầy đủ) 2: Lớp Ứng dụng 76 38 Phân phối File (2) Server ❒ server gửi N sao: F us Ts=NF/us thời gian để download d2 Network (đầy đủ băng thông) uN ❒ client i Ti=F/di u1 d1 u2 dN Thời gian để phân phối file đến N client Tcs = max { NF/us, F/min(di) } i Tăng tuyến tính với N 2: Lớp Ứng dụng 77 Phân phối File theo P2P Server ❒ server phải gửi F khoảng thời gian F/us ❒ client i F/di để download ❒ Tổng số bit phải download NF us uN u1 d1 u2 d2 Network (đầy đủ băng thông) dN ❒ Tốc độ tải lên nhanh có thể: us + Σui TP2P = max { F/us, F/min(di) , NF/(us + Σui) } i 2: Lớp Ứng dụng 78 39 BitTorrent (1) ❒ Dùng phân phối file theo P2P tracker: theo dõi peer tham gia vào torrent torrent: nhóm Peer trao đổi mẫu file (chunk) Lấy danh sách peer Các mẫu trao đổi peer 2: Lớp Ứng dụng 79 BitTorrent (2) ❒ ❒ ❒ ❒ ❒ file chia thành mẫu (chunk) 256KB peer gia nhập torrent: Khơng có chunk, tích lũy chúng theo thời gian Đăng ký với tracker để lấy danh sách peer, nối đến tập peer (láng giềng) Trong tải về, peer tải lên chunk đến peer khác Các peer điểm đến hay Khi peer có tồn file, bỏ hay giữ lại 2: Lớp Ứng dụng 80 40 BitTorrent (3) Truyền chunk Kéo chunk ❒ Tại bất lỳ thời điểm nào, ❒ Peer A truyền chunk đến bốn láng giềng hành, truyền với peer khác tốc độ cao có tập chunk Mỗi 10 giây đánh giá lại top file khác ❒ Mỗi 30 giây, chọn ngẫu nhiên ❒ Định kỳ, peer hỏi peer khác, khởi động truyền chunk peer láng giềng danh Peer chọn sách chunk mà tham gia vào top chúng có Khai thơng ❒ Peer gửi u cầu lấy chunk bị thiếu 2: Lớp Ứng dụng 81 BitTorrent (4) (1) peer A khai thông với peer B (2) Peer A trở thành bốn nhà cung cấp cho peer B, peer B đáp lại (3) Peer B trở thành bốn nhà cung cấp cho peer A Peer B Peer A Với tốc độ tải lên cao hơn, tìm thấy đối tác tốt lấy file nhanh hơn! 2: Lớp Ứng dụng 82 41 Tìm kiếm thơng tin Index hệ thống P2P: ánh xạ thơng tin sang vị trí peer (vị trí = IP address & port number) Chia sẻ file (ví dụ e-mule) ❒ Index theo dõi động vị trí file mà peer chia sẻ ❒ Các peer cần báo với index có ❒ Các Peer tìm kiếm index để xác định vị trí file Dịch vụ chat ❒ Index ánh xạ tên user sang vị trí ❒ Khi user khởi động ứng dụng IM, cần thơng báo vị trí với index ❒ Các peer tìm kiếm index để xác định địa IP user 2: Lớp Ứng dụng 83 Index tập trung 1) peer kết nối, thơng báo server trung tâm: Peer B Server thư mục trung tâm peers Địa IP Nội dung 2) peer A truy vấn trung tâm 3) Peer A yêu cầu file từ peer B Peer A 2: Lớp Ứng dụng 84 42 Index tập trung: Nhược Điểm lỗi đơn ❒ Cổ chai ❒ Vấn đề quyền ❒ Hoạt động truyền file phân tán việc định vị file tập trung 2: Lớp Ứng dụng 85 Truy vấn kiểu lũ (query flooding) ❒ Phát tán truy vấn nơi Khơng có server trung tâm Được dùng Gnutella ❒ Mỗi peer lập danh sách file mà sẵn sàng chia sẻ ❒ Đồ thị mạng ❒ Có cạnh nối peer X Y có kết nối TCP ❒ Tất peer hoạt động cạnh tạo nên mạng bao phủ ❒ Cạnh: liên kết ảo ❒ Thông thường peer có kết nối 10 láng giềng 2: Lớp Ứng dụng 86 43 Truy vấn kiểu lũ Truyền File: HTTP ❒ thông điệp truy vấn (query) gửi qua kết nối TCP mở ❒ peer chuyển tiếp thông điệp truy vấn ❒ Phản hồi gửi y qua đường ngược lại er Qu e ns po s re Query response Qu e ry Query response Qu er y 2: Lớp Ứng dụng 87 Gia nhập Gnutella peer A phải tìm peer khác mạng Gnutella, dùng danh sách peer ứng viên Peer A cố gắng liên tục để có kết nối TCP với peer ứng viên kết nối với peer B Tạo lũ truy vấn: peer A Ping đến peer B; peer B chuyển Ping đến láng giềng nó, đến lượt láng giềng lại chuyển tiếp Các peer nhận Ping phản hồi lại cho peer A thông điệp Pong Peer A nhận nhiều Pong sau thiết lập thêm kết nối TCP 2: Lớp Ứng dụng 88 44 Mạng bao phủ phân cấp Giữa index trung tâm, dùng truy vấn kiểu lũ ❒ Mỗi peer super node hay gán super node ❒ Kết nối TCP peer super node Kết nối TCP super node ❒ Super node theo dõi nội dung node ordinary peer group-leader peer neighoring relationships in overlay network 2: Lớp Ứng dụng 89 Skype Skype clients (SC) Thừa kế P2P, giao tiếp cặp ❒ Là giao thức lớp ứng dụng riêng ❒ Mạng bao phủ phân cấp với super node ❒ Index ánh xạ tên user sang địa IP; phân phối qua super node ❒ Skype login server Supernode (SN) 2: Lớp Ứng dụng 90 45 Các peer làm relay Vấn đề phát sinh peer A Peer B nằm phía sau NAT NAT ngăn chặn peer khởi tạo gọi vào với peer bên ❒ Giải pháp: ❒ Dùng super node peer A peer B_ chọn relay Mỗi peer khởi tạo phiên với relay Nhờ Peer giao tiếp với vượt NAT relay 2: Lớp Ứng dụng 91 Đề nghị ❒ Tìm hiểu Limewire số ứng dụng P2P khác 2: Lớp Ứng dụng 92 46 Hết chương 2: Lớp Ứng dụng 93 47 ... (Unix) Last-Modified: Mon, 22 Jun 20 10 … Content-Length: 6 821 Content-Type: text/html data data data data data 2: Lớp Ứng dụng 29 Các mã đáp ứng HTTP Trong dòng thơn điệp đáp ứng từ server -> client... P2P 2: Lớp Ứng dụng 2: Lớp Ứng dụng NỘI DUNG ❒ Các nguyên lý ❒ Web HTTP ❒ FTP ❒ Electronic Mail SMTP, POP3, IMAP ❒ DNS ❒ Các ứng dụng P2P Các kiến trúc ứng dụng mạng ❒ Client-server ❒ Peer-to-peer... ftp server: dùng port 20 21 2: Lớp Ứng dụng 42 21 Kết nối cho điều khiển kết nối truyền số liệu ❒ FTP client tiếp xúc với FTP Cầu nối TCP cho điều khiển, port 21 server port 21 , dùng TCP ❒ client