Mục tiêu chính của chương 2 Giao thức tầng ứng dụng nằm trong bài giảng mạng máy tính và Internet nhằm trình bày về Web programming with ASP, Visual Basic programming, Object oriented programming, Event driven programming, Component driven programming.
Chương (tiếp) Giao thức tầng ứng dụng (application layer) Trần Quang Hải Bằng Computer Networking and Internet (course of 2009) Faculty of Information Technology University of Communication and Transport (Unit 2) Office location: Administration building, Block D3, Room Office phone: 38962018 Cell phone: N/A Email: bangtqh@hotmail.com Discussion Web programming with ASP Visual Basic programming § Object oriented programming § Event driven programming § Component driven programming TCP Socket programming § Simple web server 24/8-25/10/2009 Chapter The Application Layer Winsock 24/8-25/10/2009 Chapter The Application Layer HTTP example Giả sử người dùng truy cập URL: www.uct2.edu.vn/index.htm (trang web có text 10 hình ảnh jpeg) 1a http client thiết lập liên kết TCP với http server (process) địa www.uct2.edu.vn, cổng 80 (ngầm định với http server) http server máy phục vụ www.uct2.edu.vn chờ yêu cầu kết nối TCP cổng 80 1b http server chấp nhận kết nối thông báo với client http client gửi http request message (bao gồm URL) tới TCP connection socket time 24/8-25/10/2009 http server nhận request message, tạo http response message có chứa đối tượng yêu cầu gửi vào socket Chapter The Application Layer 4 http server ngắt liên kết http client nhận response message có chứa html file, hiển thị html Sau đó, phân tích html file, tìm URL 10 hình ảnh jpeg tài liệu time Bước 1-5 lặp lại với hình ảnh 24/8-25/10/2009 Chapter The Application Layer Ch2 The Application Layer 2.1 Một số khái niệm nguyên tắc 2.2 Web & Hyper Text Transfer Protocol 2.3 Web design and HTTP, Web programming 2.4 File Transfer Protocol 2.5 Electronic Mail Protocols 2.6 Domain Name System 24/8-25/10/2009 Chapter The Application Layer 2.4 FTP - File Transfer Protocol FTP FTP user client interface user at host file transfer remote file system local file system n Truyền/tải tệp (to/from remote host) n Client/server model n FTP server Ô Client: a yờu cu truyn ti Ô Server = remote host FTP: RFC 959 24/8-25/10/2009 Chapter The Application Layer FTP: control & data connections TCP control connection port 21 FTP client TCP data connection port 20 n FTP sử dụng TCP n FTP sử dụng đồng thời liên kết TCP cổng: n FTP server ¤ TCP control connection, port 21: trao đổi thông ip iu khin (commands, responses) Ô TCP data connection, port 20: truyền tải tệp FTP lưu giữ trạng thái client phiên làm việc (state vs HTTP is stateless) 24/8-25/10/2009 Chapter The Application Layer FTP: Quá trình trao đổi/truyền tải TCP control connection port 21 client FTP server nghe cổng 21 TCP data connection port 20 server FTP client yêu cầu kết nối với FTP server qua TCP cổng 21 Gửi user & password để đăng nhập FTP server chấp nhận, liên kết điều khiển (control connection) thiết lập Q trình trao đổi bắt đầu Khi server nhận lệnh truyền tệp, mở liên kết liệu (data connection) tới client, tệp truyền qua liên kết Sau truyền xong tệp, server ngắt liên kết liệu (mỗi liên kết sử dụng để truyền tệp) 24/8-25/10/2009 Chapter The Application Layer FTP commands, responses Lệnh (commands), phúc đáp (responses) truyền dạng ASCII Sample commands: n n n n n n Sample return codes sent as ASCII text over control channel USER username PASS password n LIST return list of file in current directory RETR filename retrieves (gets) file STOR filename stores (puts) file onto remote host n 24/8-25/10/2009 n n n status code and phrase (as in HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can’t open data connection 452 Error writing file Chapter The Application Layer 10 FTP clients & servers FTP FTP user client interface user at host n Ô FTP server remote file system local file system Command-based client: Ô n file transfer Windows FTP command Linux FTP command n n Microsoft FTP Service … GUI clients Ô Ô Windows Commander CuteFTP, WS_FTP 24/8-25/10/2009 Chapter The Application Layer 11 Ch2 The Application Layer 2.1 Một số khái niệm nguyên tắc 2.2 Web & Hyper Text Transfer Protocol 2.3 Web design and HTTP, Web programming 2.4 File Transfer Protocol 2.5 Electronic Mail Protocols 2.6 Domain Name System 24/8-25/10/2009 Chapter The Application Layer 12 2.5 Electronic Mail Ba thành phần chính: n User agents (mail clients) Ô Ô n mail server Son, c th (messages) Vd: Outlook, Eudora, Netscape Messenger Ô Ô Ô ¤ mail server user agent SMTP Lưu trữ, xử lý thư Vd: Exchange, MDeamon… SMTP user agent mail server Protocols ¤ user agent SMTP Mail servers ¤ n user agent Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP) Internet Mail Access Protocol (IMAP) HTTP user agent outgoing message queue user agent user mailbox 13 Chapter The Application Layer 24/8-25/10/2009 Alice Bob 1) Alice sử dụng UA soạn thư, đ/c gửi 4) Mail server Alice gửi thư qua liên kết TCP tới “to”: bob@yahoo.com 2) Alice’s UA gửi thư đến mail server 5) Mail server Bob cất thư nhận vào hòm thư của Alice, thư xếp vào Bob hàng đợi (message queue) 6) Bob dùng UA để lấy thư từ 3) Mail server Alice mở liên kết server đọc thư TCP tới mail server Bob user agent Outlook 24/8-25/10/2009 mail server mail server uct2.edu.vn yahoo.com Chapter The Application Layer user agent Yahoo! Mail 14 SMTP (Simple Mail Transfer Protocol) n Sử dụng liên kết TCP (port 25) để gửi mails: ¤ ¤ n Ba pha (three ways handshake): ¤ ¤ ¤ n Từ sender’s mail client tới sender’s mail server Từ sender’s mail server tới receiver’s mail server Bắt tay (handshaking/greeting) Trao i messages Kt thỳc Command/response: Ô Ô commands: ASCII responses: status code & phrase 24/8-25/10/2009 Chapter The Application Layer 15 SMTP: sample interaction (C: client; S: server) S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 yahoo.com HELO uct2.edu.vn 250 Hello uct2.edu.vn, pleased to meet you MAIL FROM: 250 alice@uct2.edu.vn Sender ok RCPT TO: 250 bob@yahoo.com Recipient ok DATA 354 Enter mail, end with "." on a line by itself Hi Bob! Would you like to play tennis this evening? 250 Message accepted for delivery QUIT 221 yahoo.com closing connection 24/8-25/10/2009 Chapter The Application Layer 16 SMTP: more n SMTP sử dụng persistent connection: liên kết, nhiều thông điệp n Thông điệp (kể nội dung thư) phải mã hoá dạng ASCII bit (US-ASCII) n Đánh dấu kết thúc msg CRLF.CRLF n Một số liệu nhị phân (vd: picture) chứa CRLF.CRLF cần mã hố để đảm bảo khơng có liệu trùng với ký hiệu kết thỳc message (vd: base64) n So sỏnh vi HTTP: Ô HTTP: pull protocol SMTP: push protocol Ô Cựng s dng ASCII (command/req/resp/status code) Ô HTTP: mi obj cha msg SMTP: cho phép nhiều obj (text, picture…) msg (multipart msg) 24/8-25/10/2009 17 Chapter The Application Layer Mail message format SMTP: giao thức trao đổi email msg (exchange msgs) RFC 822: standard for text message format: n Header lines, vd: Ô Ô Ô n To: From: Subject: Khác với smtp commands (MAIL FROM, RCPT TO,…)! header blank line body Body Ô Ô The message ASCII 24/8-25/10/2009 Chapter The Application Layer 18 MIME (Multipurpose Internet Mail Extension) n RFC 822: text msg, gặp khó khăn với multimedia n MIME: RFC 2045, RFC 2056 n So với RFC 822, MIME thêm vào header lines để mô tả nội dung email msg MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data 24/8-25/10/2009 From: alice@uct2.edu.vn To: bob@yahoo.com Subject: Picture of yummy crepe MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data Chapter The Application Layer 19 MIME: Content types Content-type: type/subtype; parameters 24/8-25/10/2009 Chapter The Application Layer 20 MIME: Encoding types Content-Transfer-Encoding: Encoding type 24/8-25/10/2009 Chapter The Application Layer 21 MIME: Multiple objects mail message From: alice@uct2.edu.vn To: bob@yahoo.com Subject: Picture of yummy crepe MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=StartOfNextPart StartOfNextPart Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data StartOfNextPart 24/8-25/10/2009 Chapter The Application Layer 22 The received mail message n Server thêm vo dũng header mi nhn th: Ô Ô n Received: Return-path: Mail chuyển qua nhiều server khác (forward) Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT Received: from crepes.fr by hamburger.edu; 12 Oct 98 15:27:39 GMT 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 24/8-25/10/2009 Chapter The Application Layer 23 Hiển thị full headers với Y! Mail 2.General Preference 1.Mail Options 3.Messages: Show all… 24/8-25/10/2009 Chapter The Application Layer 24 Mail access protocol SMTP SMTP access protocol user agent sender’s mail server n n user agent receiver’s mail server SMTP: giao thức gửi mail tới server Mail access protocol: giao thức nhn mail t server Ô Ô Ô POP (Post Office Protocol): RFC 1939 TCP Port 110 IMAP (Internet Mail Access Protocol): RFC 1730 TCP port 143 HTTP: Hotmail, Yahoo! 24/8-25/10/2009 Chapter The Application Layer 25 POP3 protocol [1] Authorization phase n n client commands: Ô user: declare username ¤ pass: password server responses ¤ +OK ¤ -ERR [2] Transaction phase, client: n n n list: list message numbers retr: retrieve message by number dele: delete [3] Update phase: n Quit n thay đổi (dele) cập nhật 24/8-25/10/2009 S: C: [1] S: C: S: C: S: S: S: C: [2] S: S: C: C: S: S: C: C: [3] S: +OK POP3 server ready user bob +OK pass hungry +OK user successfully logged on list 498 912 retr dele retr dele quit +OK POP3 server signing off Chapter The Application Layer 26 POP3 (more) and IMAP More about POP3 n n n IMAP4 Chế độ “download and delete” (xem vd trước): ¤ Msg bị xố ¤ Khơng thể nhận msg lần n Lưu trữ toàn msg server n Cho phép người dùng tổ chức lưu trữ server (tạo thư mục, di chuyển msg…) n Lưu trng thỏi gia cỏc phiờn (state): Download-and-keep: Ô Msg c gi li server Ô Cú th nhn msg nhiu ln từ nhiều client Không lưu trạng thái phiên lm vic (stateless) 24/8-25/10/2009 Ô Th mc t to Ô Các msgs di chuyển Chapter The Application Layer 27 Ch2 The Application Layer 2.1 Một số khái niệm nguyên tắc 2.2 Web & Hyper Text Transfer Protocol 2.3 Web design and HTTP, Web programming 2.4 File Transfer Protocol 2.5 Electronic Mail Protocols 2.6 Domain Name System 24/8-25/10/2009 Chapter The Application Layer 28 2.6 DNS (Domain Name System) Mr Toan HTTP (Internet Explorer) www.uct2.edu.vn From: N.V.Toan To: Phòng ðT Phòng ðT => D3 210.245.22.125 DNS client Ms Phuong n n www.uct2.edu.vn => 210.245.22.125 DNS servers Địa IP (32 bit) sử dụng để xác định nút mạng TCP/IP: 210.245.22.125 khó nhớ! Sử dụng tên (host name) song song với IP address DNS (RFC 1034, RFC 1035, RFC 2136): Ô Chuyn host name IP address Chapter The Application Layer 24/8-25/10/2009 29 DNS services n n DNS không tương tác trực tiếp với users mà cung cấp dịch vụ cho chương trình khác (HTTP, FTP…) thuộc tầng ứng dụng: Host name IP (hostname to IP resolve) Host aliasing Ô n Mail server aliasing ¤ n Một máy tính có tên thức có bí danh (alias) @uct2.edu.vn mail server address = ? Load distribution (phõn tỏn ti) Ô Mt dch vụ web (cnn.com, yahoo.com…) cung cấp nhiều server có IP khác để phân tán tải lượng người sử dụng cao 24/8-25/10/2009 Chapter The Application Layer 30 Internet domain name space n n Domain name (tờn min): Ô Ô Ô Ô Min = tập hợp nút mạng có nút cha sơ đồ Vd: uct2.edu.vn; yahoo.com; yale.edu Sub-domain: cs.yale.edu; Host name: www.uct2.edu.vn; mail.uct2.edu.vn Ô Ô Ô Ô Ô vn: Vietnam edu: education uct2: University of Commnication & Transport – unit www: máy chủ world wide web mail: máy chủ mail 31 Chapter The Application Layer 24/8-25/10/2009 Domain name servers Root DNS Servers com DNS servers yahoo.com DNS servers amazon.com DNS servers org DNS servers pbs.org DNS servers edu DNS servers poly.edu umass.edu DNS servers DNS servers Vd: client muốn biết IP www.amazon.com thì: n Tìm địa com DNS servers hỏi Root DNS servers n amazon.com com DNS servers n www.amazon.com amazon.com DNS servers 24/8-25/10/2009 Chapter The Application Layer 32 DNS: Root name servers a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD k RIPE London (also Amsterdam, Frankfurt) i Autonomica, Stockholm (plus other locations) j Verisign, ( 11 locations) m WIDE Tokyo e NASA Mt View, CA f Internet Software C Palo Alto, 13 root name servers worldwide CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA n n Khi local name server chuyển host name IP, gửi yêu cầu tới root srv root name server: ¤ Liên lạc với authoritative name server chưa thể ỏnh x /c Ô Ly kt qu ỏnh x gi v t authoritative name server Ô Tr kt qu cho local name server 24/8-25/10/2009 33 Chapter The Application Layer TLD and Authoritative Servers n n Top-level domain (TLD) servers: chịu trách nhiệm miền com, org, net, edu v uk, fr, ca, jp Ô Network Solutions: qun lý com TLD servers Ô Educause: qun lý edu TLD servers Authoritative DNS servers: Ô Mi host mng muốn biết đến phải khai báo với authoritiative DNS server Ô DNS servers ca cỏc t chc ánh xạ hostname tổ chức (vd: web, mail…) ¤ Có thể quản lý tổ chức hay nhà cung cấp dịch vụ 24/8-25/10/2009 Chapter The Application Layer IP cho hosts 34 Local name server n Thuộc quản lý ISP (ISP, company, university…) n Khi host muốn biết IP host đó, trước tiên, “hỏi” local name server n Khơng thiết phải nằm kiến trúc DNS servers (độc lập) n “Gần” máy tính người sử dụng nên thường “hỏi thăm” có truy vấn DNS n Xem Windows Local DNS: ipconfig 24/8-25/10/2009 35 Chapter The Application Layer DNS example Tình huống: host surf.eurecom.fr cần đ/c IP gaia.cs.umass.edu Liên lạc với local DNS server: dns.eurecom.fr dns.eurecom.fr liên lạc với root name server (nếu cần) root name server liên lạc với authoritative name server: dns.umass.edu (nếu cần) root name server local name server dns.eurecom.fr Authorititive name server dns.umass.edu requesting host surf.eurecom.fr 24/8-25/10/2009 Chapter The Application Layer gaia.cs.umass.edu 36 DNS example root name server Root name server có thể: n n Không biết authoritative name server (ans) Biết intermediate name server (ins) Ô T ins cú th tỡm ans local name server intermediate name server dns.umass.edu dns.eurecom.fr authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr gaia.cs.umass.edu 24/8-25/10/2009 37 Chapter The Application Layer DNS example root name server recursive query: n n A hỏi B, B hỏi C, C hỏi D,… trả lời ngược lại Server hỏi chịu tải nặng gấp đôi? n n DNS server hỏi gợi ý hỏi server khác “I don’t know this name, but ask this server” 24/8-25/10/2009 local name server dns.eurecom.fr iterative query: iterated query intermediate name server dns.umass.edu authoritative name server dns.cs.umass.edu requesting host surf.eurecom.fr Chapter The Application Layer gaia.cs.umass.edu 38 DNS: caching & updating n Mỗi DNS server nhận yêu cầu tra cứu IP, IP mà tìm lưu lại phục vụ cho lần tra cứu tip theo Ô Ô n Timeout: thi gian ht hn (sau khoảng thời gian, ghi cache tương ứng bị xoá) TLD servers thường cache local name servers Cơ chế cập nhật/thông báo đưa IETF: Ô RFC 2136 Ô http://www.ietf.org/html.charters/dnsind-charter.html Chapter The Application Layer 24/8-25/10/2009 39 DNS records DNS: distributed db storing resource records (RR) RR format: (name, n Type=A Ô Ô n name = hostname value = IP address Type=NS Ô Ô n value, type, ttl) Type=CNAME Ô name = danh (alias) www.ibm.com Ô value = tờn tht servereast.backup2.ibm.com name = domain name value = IP address ca n Type=MX Ô name = domain name authoritative name server cho domain ¤ value = tên mail server 24/8-25/10/2009 Chapter The Application Layer 40 DNS protocol, messages DNS Protocol: Query/reply messages có format n n n Msg header (12 bytes) Identification: số 16 bit reply msg sử dụng id với req msg Flags: nhiều bit, bit có mt ý ngha: Ô Ô Ô Ô Query (0) hay reply (1) Authoritative DNS recursion desired: client mong muốn DNS server tra cứu đệ quy recursion available: server hỗ trợ tra cứu đệ quy 24/8-25/10/2009 Chapter The Application Layer 41 Chapter The Application Layer 42 DNS messages Name, type fields for a query RRs in reponse to query records for authoritative servers additional “helpful” info that may be used 24/8-25/10/2009 Summary Telnet! √ √ √ √ RTSP? Terminal Emulation ? Web programming TCP Socket Programming 24/8-25/10/2009 ? Chapter The Application Layer 43 Bài tập tự làm thảo luận n n Tìm hiểu câu lệnh FTP, SMTP, POP3 (Nộp báo cáo sau tuần) Viết mail client đơn giản (không bắt buộc) 24/8-25/10/2009 Chapter The Application Layer 44 ... Phòng ðT Phòng ðT => D3 21 0 .24 5 .22 . 125 DNS client Ms Phuong n n www.uct2.edu.vn => 21 0 .24 5 .22 . 125 DNS servers Địa IP ( 32 bit) sử dụng để xác định nút mạng TCP/IP: 21 0 .24 5 .22 . 125 khó nhớ! Sử dụng... type/subtype; parameters 24 /8 -2 5 /10 /20 09 Chapter The Application Layer 20 MIME: Encoding types Content-Transfer-Encoding: Encoding type 24 /8 -2 5 /10 /20 09 Chapter The Application Layer 21 MIME: Multiple... liệu time Bước 1-5 lặp lại với hình ảnh 24 /8 -2 5 /10 /20 09 Chapter The Application Layer Ch2 The Application Layer 2. 1 Một số khái niệm nguyên tắc 2. 2 Web & Hyper Text Transfer Protocol 2. 3 Web design