Bài giảng Mạng máy tính - Chương 2 (tiếp): Giao thức tầng ứng dụng (application layer) - Trần Quang Diệu
Vài thông số thống kê Internet
Việt Nam (11/2014):
Số người sử dụng Internet: 39,772,424 (42.97%)
Tổng số tên miền .VN đã đăng ký: 261.256
Tổng số tên miền tiếng việt đã đăng ký: 936.729
Tổng số địa chỉa IPv4 đã cấp: 15.576.832
97% người Việt dùng Internet là để đọc tin tức. TB mỗi người có 86 bạn kỹ thuật số.
Toàn thế giới (11/2014)
Số người sử dụng Internet: 3,008,972,816
Tổng số tên miền đã đăng ký 128,732,294.
Tổng số website trên mạng Internet: 1,2 tỉ.
Tổng số tài khoản email toàn cầu: 2,9 tỷ (1,88 người)
Tổng số email được đi gửi trên mạng : 67.2 nghìn tỉ. (89,1% là spam).
46 trang |
Chia sẻ: thucuc2301 | Lượt xem: 758 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Mạng máy tính - Chương 2 (tiếp): Giao thức tầng ứng dụng (application layer) - Trần Quang Diệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2 (tiếp).Giao thức tầng ứng dụng (application layer)Quang Dieu Tran, PhDFaculty of Information TechnologyUniversity of Communication and Transport (Branch in Ho Chi Minh City)Email: dieutq@gmail.comWebsite: sites.google.com/sites/tranlecturesChapter 2. The Application Layer2DiscussionWeb programming with ASP.Visual Basic programming.Object oriented programming.Event driven programming.Component driven programming.TCP Socket programming.Simple web server.Chapter 2. The Application Layer3WinsockChapter 2. The Application Layer4HTTP example1a. http client thiết lập liên kết TCP với http server (process) tại địa chỉ www.uct2.edu.vn, cổng 80 (ngầm định với http server).2. http client gửi http request message (bao gồm cả URL) tới TCP connection socket1b. http server chấp nhận kết nối rồi thông báo với client.3. http server nhận request message, tạo ra http response message có chứa các đối tượng được yêu cầu rồi gửi vào socket.timeGiả sử người dùng truy cập URL: www.uct2.edu.vn/index.htm (trang web có text và 10 hình ảnh jpeg)0. http server tại máy phục vụ www.uct2.edu.vn chờ yêu cầu kết nối TCP tại cổng 80.Chapter 2. The Application Layer55. 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 của 10 hình ảnh jpeg trong tài liệu.6. Bước 1-5 được lặp lại với từng hình ảnh.4. http server ngắt liên kết. timeChapter 2. The Application Layer6Ch2. The Application Layer2.1. Một số khái niệm và 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.Chapter 2. The Application Layer72.4. FTP - File Transfer ProtocolTruyền/tải tệp (to/from remote host).Client/server modelClient: đưa ra yêu cầu truyền tải.Server = remote host.FTP: RFC 959file transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at hostChapter 2. The Application Layer8FTP: control & data connectionsFTP sử dụng TCP.FTP sử dụng đồng thời 2 liên kết TCP tại 2 cổng:TCP control connection, port 21: trao đổi các thông điệp điều khiển (commands, responses).TCP data connection, port 20: truyền tải tệp.FTP lưu giữ trạng thái client trong phiên làm việc (state vs. HTTP is stateless).FTPclientFTPserverTCP control connectionport 21TCP data connectionport 20Chapter 2. The Application Layer9FTP: Quá trình trao đổi/truyền tảiFTP server nghe tại cổng 21.FTP client yêu cầu kết nối với FTP server qua TCP tại 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) được thiết lập. Quá trình trao đổi có thể bắt đầu.Khi server nhận được lệnh truyền tệp, nó mở liên kết dữ liệu (data connection) tới client, tệp được truyền qua liên kết này.Sau khi truyền xong một tệp, server ngắt liên kết dữ liệu (mỗi liên kết chỉ sử dụng để truyền một tệp).clientserverTCP control connectionport 21TCP data connectionport 20Chapter 2. The Application Layer10FTP commands, responsesSample commands:sent as ASCII text over control channelUSER usernamePASS passwordLIST return list of file in current directoryRETR filename retrieves (gets) fileSTOR filename stores (puts) file onto remote hostSample return codesstatus code and phrase (as in HTTP)331 Username OK, password required125 data connection already open; transfer starting425 Can’t open data connection452 Error writing fileLệnh (commands), phúc đáp (responses) được truyền dạng ASCIIChapter 2. The Application Layer11FTP clients & serversCommand-based client:Windows FTP command.Linux FTP command.GUI clientsWindows Commander.CuteFTP, WS_FTPMicrosoft FTP Servicefile transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at hostChapter 2. The Application Layer12Ch2. The Application Layer2.1. Một số khái niệm và 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.Chapter 2. The Application Layer132.5. Electronic MailBa thành phần chính:User agents (mail clients)Soạn, đọc thư (messages).Vd: Outlook, Eudora, Netscape Messenger...Mail serversLưu trữ, xử lý thư.Vd: Exchange, MDeamonProtocolsSimple Mail Transfer Protocol (SMTP).Post Office Protocol (POP).Internet Mail Access Protocol (IMAP).HTTP.user mailboxoutgoing message queuemailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTPChapter 2. The Application Layer14Alice Bob 1) Alice sử dụng UA soạn thư, đ/c gửi tới “to”: bob@yahoo.com.2) Alice’s UA gửi thư đến mail server của Alice, bức thư được xếp vào hàng đợi (message queue).3) Mail server của Alice mở liên kết TCP tới mail server của Bob.4) Mail server của Alice gửi thư qua liên kết TCP.5) Mail server của Bob cất thư nhận được vào hòm thư của Bob.6) Bob dùng UA để lấy thư từ server về rồi đọc thư.useragentmailservermailserveruseragent123456uct2.edu.vnyahoo.comOutlookYahoo! MailChapter 2. The Application Layer15SMTP (Simple Mail Transfer Protocol)Sử dụng liên kết TCP (port 25) để gửi mails:Từ sender’s mail client tới sender’s mail server.Từ sender’s mail server tới receiver’s mail server.Ba pha (three ways handshake):Bắt tay (handshaking/greeting).Trao đổi messages.Kết thúc.Command/response:commands: ASCII.responses: status code & phrase.Chapter 2. The Application Layer16SMTP: sample interaction (C: client; S: server) S: 220 yahoo.com C: HELO uct2.edu.vn S: 250 Hello uct2.edu.vn, pleased to meet you C: MAIL FROM: S: 250 alice@uct2.edu.vn... Sender ok C: RCPT TO: S: 250 bob@yahoo.com ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Hi Bob! C: Would you like to play tennis this evening? C: . S: 250 Message accepted for delivery C: QUIT S: 221 yahoo.com closing connectionChapter 2. The Application Layer17SMTP: moreSMTP sử dụng persistent connection: một liên kết, nhiều thông điệp.Thông điệp (kể cả nội dung thư) phải được mã hoá dạng ASCII 7 bit (US-ASCII).Đánh dấu kết thúc msg bởi CRLF.CRLFMột số dữ liệu nhị phân (vd: picture) có thể chứa CRLF.CRLF cần mã hoá để đảm bảo không có dữ liệu nào trùng với ký hiệu kết thúc message (vd: base64).So sánh với HTTP:HTTP: pull protocol SMTP: push protocol.Cùng sử dụng ASCII (command/req/resp/status code).HTTP: mỗi obj chứa trong một msg SMTP: cho phép nhiều obj (text, picture) trong một msg (multipart msg).Chapter 2. The Application Layer18Mail message formatSMTP: giao thức trao đổi email msg (exchange msgs).RFC 822: standard for text message format:Header lines, vd:To:From:Subject: Khác với smtp commands (MAIL FROM, RCPT TO,)!BodyThe “message”.ASCIIheaderbodyblanklineChapter 2. The Application Layer19MIME (Multipurpose Internet Mail Extension)RFC 822: text msg, gặp khó khăn với multimedia.MIME: RFC 2045, RFC 2056.So với RFC 822, MIME thêm vào các header lines để mô tả nội dung của email msg.From: alice@uct2.edu.vnTo: bob@yahoo.comSubject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data multimedia datatype, subtype, parameter declarationmethod usedto encode dataMIME versionencoded dataChapter 2. The Application Layer20MIME: Content typesContent-type: type/subtype; parametersChapter 2. The Application Layer21MIME: Encoding typesContent-Transfer-Encoding: Encoding typeChapter 2. The Application Layer22From: alice@uct2.edu.vnTo: bob@yahoo.comSubject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=StartOfNextPart --StartOfNextPartContent-Transfer-Encoding: quoted-printableContent-Type: text/plainDear Bob, Please find a picture of a crepe.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPartMIME: Multiple objects mail messageChapter 2. The Application Layer23The received mail messageServer thêm vào dòng header mỗi khi nhận thư:Received: Return-path:Mail có thể được chuyển qua nhiều server khác nhau (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.frTo: bob@hamburger.eduSubject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ....... ........................................ .......base64 encoded data Chapter 2. The Application Layer24Hiển thị full headers với Y! Mail1.Mail Options2.General Preference3.Messages: Show allChapter 2. The Application Layer25Mail access protocolSMTP: giao thức gửi mail tới server.Mail access protocol: giao thức nhận 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!...useragentsender’s mail serveruseragentSMTPSMTPaccessprotocolreceiver’s mail serverChapter 2. The Application Layer26POP3 protocol[1] Authorization phaseclient commands: user: declare usernamepass: passwordserver responses+OK-ERR[2] Transaction phase, client:list: list message numbersretr: retrieve message by numberdele: delete[3] Update phase:Quitnhững thay đổi (dele) được cập nhậtS: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on 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[1][2][3]Chapter 2. The Application Layer27POP3 (more) and IMAPMore about POP3Chế độ “download and delete” (xem vd trước):Msg bị xoá khi thoát.Không thể nhận msg lần nữa.“Download-and-keep”:Msg được giữ lại server.Có thể nhận msg nhiều lần từ nhiều client.Không lưu trạng thái giữa các phiên làm việc (stateless).IMAP4Lưu trữ toàn bộ msg tại server.Cho phép người dùng tổ chức lưu trữ trên server (tạo thư mục, di chuyển msg)Lưu trạng thái giữa các phiên (state):Thư mục tự tạo.Các msgs đã di chuyển.Chapter 2. The Application Layer28Ch2. The Application Layer2.1. Một số khái niệm và 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.Chapter 2. The Application Layer292.6. DNS (Domain Name System)Địa chỉ IP (32 bit) được sử dụng để xác định một nút trong 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):Chuyển host name IP address.From: N.V.Toan To: Phòng ĐTPhòng ĐT=> D3HTTP (Internet Explorer)www.uct2.edu.vn=> 210.245.22.125DNS clientwww.uct2.edu.vn210.245.22.125DNS serversMr ToanMs PhuongChapter 2. The Application Layer30DNS services DNS không tương tác trực tiếp với users mà cung cấp các dịch vụ cho các chương trình khác (HTTP, FTP) thuộc tầng ứng dụng:Host name IP (hostname to IP resolve).Host aliasing.Một máy tính có tên chính thức và có thể có bí danh (alias).Mail server aliasing.@uct2.edu.vn mail server address = ?Load distribution (phân tán tải)Một dịch vụ web (cnn.com, yahoo.com) có thể được cung cấp tại nhiều server có IP khác nhau để phân tán tải do lượng người sử dụng cao.Chapter 2. The Application Layer31Internet domain name spaceDomain name (tên miền):Miền = tập hợp các nút mạng có cùng một nút cha trong sơ đồ trên.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 2.www: máy chủ world wide web.mail: máy chủ mail.vnChapter 2. The Application Layer32Domain name serversVd: client muốn biết IP của www.amazon.com thì:Tìm địa chỉ của com DNS servers hỏi Root DNS servers.amazon.com com DNS servers.www.amazon.com amazon.com DNS servers.Root DNS Serverscom DNS serversorg DNS serversedu DNS serverspoly.eduDNS serversumass.eduDNS serversyahoo.comDNS serversamazon.comDNS serverspbs.orgDNS serversChapter 2. The Application Layer33Hệ thống máy chủ DNS của Việt NamChapter 2. The Application Layer34DNS: Root name servers 13 root name servers worldwideb USC-ISI Marina del Rey, CAl ICANN Los Angeles, CAe NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 17 other locations)i Autonomica, Stockholm (plus 3 other locations)k RIPE London (also Amsterdam, Frankfurt)m WIDE Tokyoa Verisign, Dulles, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)Khi local name server không thể 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 nếu chưa thể ánh xạ đ/c ngay.Lấy kết quả ánh xạ gửi về từ authoritative name server.Trả kết quả về cho local name server.Chapter 2. The Application Layer35TLD and Authoritative ServersTop-level domain (TLD) servers: chịu trách nhiệm về các miền com, org, net, edu và uk, fr, ca, jpNetwork Solutions: quản lý com TLD servers.Educause: quản lý edu TLD servers.Authoritative DNS servers: Mỗi host trong mạng muốn được biết đến phải được khai báo với một authoritiative DNS server.DNS servers của các tổ chức ánh xạ hostname IP cho các hosts của tổ chức đó (vd: web, mail).Có thể được quản lý bởi các tổ chức hay nhà cung cấp dịch vụ.Chapter 2. The Application Layer36Local name serverThuộc quản lý của ISP (ISP, company, university).Khi một host muốn biết IP của một host nào đó, trước tiên, nó “hỏi” local name server.Không nhất thiết phải nằm trong kiến trúc DNS servers (độc lập).“Gần” máy tính của người sử dụng nhất nên thường được “hỏi thăm” đầu tiên mỗi khi có truy vấn DNS.Xem Windows Local DNS: ipconfigChapter 2. The Application Layer37DNS example 1 Tình huống:host surf.eurecom.fr cần đ/c IP của gaia.cs.umass.edu1. Liên lạc với local DNS server: dns.eurecom.fr2. dns.eurecom.fr liên lạc với root name server (nếu cần)3. root name server liên lạc với authoritative name server: dns.umass.edu (nếu cần)requesting hostsurf.eurecom.frgaia.cs.umass.eduroot name serverAuthorititivename serverdns.umass.edulocal name serverdns.eurecom.fr123456Chapter 2. The Application Layer38DNS example 2Root name server có thể:Không biết authoritative name server (ans).Biết intermediate name server (ins)Từ ins có thể tìm ra ansrequesting hostsurf.eurecom.frgaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr123456authoritative name serverdns.cs.umass.eduintermediate name serverdns.umass.edu78Chapter 2. The Application Layer39DNS example 3recursive query:A hỏi B, B hỏi C, C hỏi D, rồi trả lời ngược lại.Server được hỏi chịu tải nặng gấp đôi?iterative query:DNS server được hỏi gợi ý hỏi một server khác.“I don’t know this name, but ask this server”requesting hostsurf.eurecom.frgaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr123456authoritative name serverdns.cs.umass.eduintermediate name serverdns.umass.edu78iterated queryChapter 2. The Application Layer40DNS: caching & updatingMỗi khi DNS server nhận được yêu cầu tra cứu IP, IP mà nó tìm được sẽ được lưu lại phục vụ cho những lần tra cứu tiếp theo.Timeout: thời gian hết hạn (sau một khoảng thời gian, bản ghi cache tương ứng bị xoá).TLD servers thường được cache tại local name servers.Cơ chế cập nhật/thông báo được đưa ra bởi IETF:RFC 2136 Chapter 2. The Application Layer41DNS recordsType=Aname = hostnamevalue = IP addressType=NSname = domain namevalue = IP address của authoritative name server cho domain nàyType=CNAMEname = “bí danh” (alias). www.ibm.comvalue = tên thật. servereast.backup2.ibm.comType=MXname = domain namevalue = tên của mail serverDNS: distributed db storing resource records (RR)RR format: (name, value, type, ttl)Chapter 2. The Application Layer42DNS protocol, messagesMsg header (12 bytes)Identification: số 16 bit reply msg sử dụng cùng id với req msg.Flags: nhiều bit, mỗi bit có một ý nghĩa: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.DNS Protocol: Query/reply messages có cùng format.Chapter 2. The Application Layer43DNS messagesName, type fields for a queryRRs in reponseto queryrecords forauthoritative serversadditional “helpful”info that may be usedChapter 2. The Application Layer44Vài thông số thống kê InternetViệt Nam (11/2014):Số người sử dụng Internet: 39,772,424 (42.97%)Tổng số tên miền .VN đã đăng ký: 261.256Tổng số tên miền tiếng việt đã đăng ký: 936.729 Tổng số địa chỉa IPv4 đã cấp: 15.576.832 97% người Việt dùng Internet là để đọc tin tức. TB mỗi người có 86 bạn kỹ thuật số.Toàn thế giới (11/2014)Số người sử dụng Internet: 3,008,972,816Tổng số tên miền đã đăng ký 128,732,294.Tổng số website trên mạng Internet: 1,2 tỉ.Tổng số tài khoản email toàn cầu: 2,9 tỷ (1,88 người)Tổng số email được đi gửi trên mạng : 67.2 nghìn tỉ. (89,1% là spam).Chapter 2. The Application Layer45Summary√√√√??Telnet!Terminal EmulationWeb programmingTCP Socket ProgrammingRTSP?Chapter 2. The Application Layer46Bài tập tự làm và thảo luậnTìm hiểu các câu lệnh cơ bản của FTP, SMTP, POP3.
Các file đính kèm theo tài liệu này:
- mang_may_tinhchapter2b_0856_2004689.ppt