Computer Networking-chuong 5

Embed Size (px)

DESCRIPTION

computer

Citation preview

  • Lp Application*Chng 5 Lp ApplicationComputer Networking: A Top Down Approach Featuring the Internet, 3rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004.

    All material copyright 1996-2006J.F Kurose and K.W. Ross, All Rights ReservedSlide ny c bin dch sang ting Vit theo s cho php ca cc tc gi

    Lp Application

  • Lp Application*Chng 5: Ni dung trnh by5.1 Cc nguyn l ca ng dng mng5.2 Web v HTTP5.3 FTP 5.4 Electronic MailSMTP, POP3, IMAP5.5 DNS

    5.6 Chia s file P2P5.7 Lp trnh socket viTCP5.8 Lp trnh socket vi UDP5.9 Xy dng mt Web server

    Lp Application

  • Lp Application*Chng 5: Lp ApplicationMc tiu: Khi nim, cc kha cnh hin thc ca cc giao thc ng dng mngCc m hnh dch v lp transportM hnh client-serverM hnh peer-to-peer

    Nghin cu giao thc thng qua xem xt mt s giao thc lp applicationHTTPFTPSMTP / POP3 / IMAPDNSLp trnh ng dng mngsocket API

    Lp Application

  • Lp Application*Mt s ng dng mngE-mailWebTin nhn nhanhng nhp t xaChia s file P2PTr chi nhiu ngi trn mngStreaming cc video clips

    in thoi InternetHi tho video thi gian thcTnh ton ln, tnh ton song song

    Lp Application

  • Lp Application*To mt ng dng mngVit chng trnh :chy trn cc h thng u cui khc, vtruyn thng qua mngV d: Web: phn mm Web server truyn thng vi phn mm trnh duytPhn mm nh vit cho cc thit b trung tm mngcc thit b trung tm mng khng chy cc m ng dng ca ngi dngng dng trn cc h thng u cui cho php pht trin ng dng nhanh, ph bin

    Lp Application

  • 5.1 Cc nguyn l ca ng dng mngLp Application*

  • Lp Application*Cc kin trc ca ng dngClient-serverPeer-to-peer (P2P)Lai gia client-server v P2P

    Lp Application

  • Lp Application*Kin trc client-serverserver: host lun hot nga ch IP c nhnhm cc server chia s cng vicclients:truyn thng vi serverc th kt ni khng lin tcc th c a ch IP thay ikhng truyn thng trc tip vi client khc

    Lp Application

  • Lp Application*Kin trc P2P thun tykhng c server lun hot ngtruyn thng trc tip vi h thng u cui bt kcc im kt ni khng lin tc v thay i a ch IPV d: Gnutella

    linh hot cao nhng kh qun l

    Lp Application

  • Lp Application*Lai gia client-server v P2PSkypeng dng in thoi InternetTm a ch ca thnh vin xa: server trung tmKt ni trc tip Client-client (khng thng qua server) Tin nhn nhanhChat gia 2 user l P2PM hnh client-server:User ng k a ch IP ca h vi server trung tm khi trc tuynUser tip xc vi server trung tm tm a ch IP ca bn

    Lp Application

  • Lp Application*Tin trnh truyn thngTin trnh: chng trnh chy bn trong 1 host.trong cng host, 2 tin trnh truyn thng dng truyn thng ni b (do h iu hnh xc nh).cc tin trnh trong cc host khc nhau truyn thng bng cch trao i cc thng ipTin trnh Client: tin trnh khi to truyn thngTin trnh Server: tin trnh ch c tip xc

    Ch : cc ng dng vi kin trc P2P c c cc tin trnh client v server.

    Lp Application

  • Lp Application*Socketscc tin trnh gi/nhn cc thng ip n/t socket ca nsocket tng t nh catin trnh gi y thng ip ra ngoi catin trnh nhn ph thuc vo h tng lu thng mang thng ip n socket thch hpInternetiu khin bi h iu hnhiu khin bi ngi pht trin ng dngAPI: (1) la chn giao thc vn chuyn; (2) kh nng chnh sa mt vi tham s (xem phn sau)

    Lp Application

  • Lp Application*Tin trnh nh a ch nhn c thng ip, tin trnh phi c nhn dng (identifier)thit b host phi c a ch IP duy nhta ch IP m trn tin trnh ang chy c nhn dng tin trnh?KHNG, nhiu tin trnh c th chy trn cng 1 hostNhn dng bao gm c a ch IP v cc s cng (port) lin kt vi tin trnh trn host.V d v s port:HTTP server: 80Mail server: 25 gi thng ip HTTP cho web server gaia.cs.umass.edu :IP address: 128.119.245.12Port number: 80

    Lp Application

  • Lp Application*nh ngha giao thc lp ng dngcc kiu ca trao i thng ipV d: yu cu, p ngC php thng ip:Cc trng no trong thng ip v lm sao m t?Ng ngha thng ip ngha ca thng tin trong cc trngCc quy tc khi no v lm sao cc tin trnh gi v p ng cc thng ipCc giao thc Public-domain:nh ngha trong RFCCho php cng tcV d: HTTP, SMTPCc giao thc c quyn:V d: KaZaA

    Lp Application

  • Lp Application*Dch v vn chuyn no ng dng khng cnMt mt d liu mt s ng dng (vd: audio) c kh nng chu licc ng dng khc (vd: truyn file, telnet) yu cu d liu tin cy 100%nh thmt s ng dng (vd: in thoi Internet, tr chi tng tc) yu cu tr thp t hiu quBandwidth (bng thng)mt s ng dng (vd: a phng tin) yu cu bng thng t hiu qucc ng dng khc mm do hn c th dng bt k bng thng no cng c

    Lp Application

  • Lp Application*Mt s yu cu i vi cc ng dng ph binApplication

    Truyn filee-mailWebaudio/videothi gian thcaudio/video luTr chi tng tcTin nhn nhanhData loss

    khngkhngKhngchu li

    chu lichu likhngBandwidth

    mm do mm domm doaudio: 5kbps-1Mbpsvideo:10kbps-5MbpsNh trnMt vi kbpsmm doTime Sensitive

    khngkhngkhngc, 100 mili giy

    c, mt vi giyc, 100 mili giyC v khng

    Lp Application

  • Lp Application*Cc dch v giao thc Internet transportTCP:connection-oriented: cn thit lp tin trnh gia client v server Vn chuyn tin cy: gia tin trnh gi v nhniu khin lung: ngi gi s khng ln t ngi nhniu khin tc nghn: iu tit ngi gi khi mng qu tiKhng h tr: nh th, bo m bng thng ti thiuUDP:truyn d liu khng tin cy gia gi v nhnKhng h tr: thit lp kt ni, tin cy, iu khin lung, iu khin tc nghn, nh th, bo m bng thng ti thiu

    Th th sinh ra UDP lm g?

    Lp Application

  • Lp Application*Cc giao thc lp application, transportApplication

    e-mailTruy cp terminal t xaWeb Truyn filestreaming multimedia

    in thoi Internet

    Giao thc lpApplicationSMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]c quyn(vd: RealNetworks)c quyn(vd: Vonage,Dialpad)Giao thc di lptransport

    TCPTCPTCPTCPTCP / UDP

    UDP

    Lp Application

  • 5.2 Web v HTTPLp Application*

  • Lp Application*Web v HTTPMt s thut ng chuyn mnWeb page (trang Web) bao gm cc objects (i tng)i tng c th l file HTML, hnh nh JPEG image, Java applet, file audio,Trang Web file HTML c bn s cha mt s i tng c tham chiuMi i tng c th nh a ch bng mt URLV d URL:

    Lp Application

  • Lp Application*Tng quan HTTPHTTP: hypertext transfer protocolGiao thc lp ng dng ca WebM hnh client/serverClient: trnh duyt yu cu, nhn v hin th cc i tng WebServer: Web server gi cc i tng p ng cho yu cuHTTP 1.0: RFC 1945HTTP 1.1: RFC 2068PC chyExplorerServer chyApache WebserverMac chyNavigatorYu cu HTTPYu cu HTTPp ng HTTPp ng HTTP

    Lp Application

  • Lp Application*Tng quan HTTPDng TCP:client khi to kt ni TCP (to socket) n server, port 80server chp nhn kt ni TCP t clientCc thng ip HTTP (thng ip giao thc lp application) trao i gia trnh duyt (HTTP client) v Web server (HTTP server)ng kt ni TCPHTTP l khng trng thiserver khng gi thng tin v cc yu cu trc ca clientCc giao thc no gi trng thi l phc tp!lch s qu kh (trng thi) phi gi linu server/client b s c, cch nhn ca n v trng thi mu thun, phi c iu chnh

    vn lin quan

    Lp Application

  • Lp Application*Cc kt ni HTTPHTTP khng bn vngCh c ti a l 1 i tng c gi qua 1 kt ni TCP.HTTP/1.0 dng HTTP khng bn vngHTTP bn vngNhiu i tng c th c gi qua 1 kt ni TCP n gia client v server.HTTP/1.1 mc nhin dng HTTP bn vng

    Lp Application

  • Lp Application*HTTP khng bn vngGi s user nhp vo URL nh sau: www.someSchool.edu/someDepartment/home.index1a. HTTP client khi to kt ni TCP connection n HTTP server (tin trnh) ti www.someSchool.edu trn port 802. HTTP client gi HTTP thng ip yu cu (cha URL) vo trong socket kt ni TCP. Thng ip ch rng client mun cc i tng someDepartment/home.index1b. HTTP server ti host www.someSchool.edu ch kt ni TCP ti port 80. chp nhn kt ni, thng bo cho client3. HTTP server nhn thng ip yu cu, nh dng thng ip p ng cha i tng c yu cu v gi thng ip vo trong socket ca nThi gian(cha text, tham chiu n 10 hnh)

    Lp Application

  • Lp Application*HTTP khng bn vng5. HTTP client nhn thng ip p ng cha file HTML, hin th n. Phn tch c php html file, tm ra 1 tham chiu n i tng jpeg6. Lp li cc bc t 1-5 cho cc i tng jpeg khc4. HTTP server ng kt ni TCP. time

    Lp Application

  • Lp Application*HTTP khng bn vng: thi gian p ngnh ngha RTT: thi gian gi mt gi nh i t client n server v quay li.Thi gian p ng:Mt RTT khi to kt ni TCPMt RTT cho yu cu HTTP v mt vi byte u tin ca p ng HTTP c tr vThi gian truyn fileTng cng = 2RTT+ Thi gian truyn file

    Lp Application

  • Lp Application*HTTP bn vngVn vi HTTP khng bn vng:Yu cu 2 RTT mi i tngH iu hnh lin quan n mi kt ni TCPCc trnh duyt thng m song song cc kt ni TCP em v cc tham chiu n cc i tngHTTP bn vngserver b kt ni sau khi m gi p ng leavescc thng ip HTTP ca tin trnh con cng m hnh client/server gi thng qua kt ni m

    Bn vng khng c pipelining:client pht ra yu cu mi ch khi p ng trc nhn xong1 RTT cho mi i tng tham chiuBn vng c pipelining:mc nhin trong HTTP/1.1client gi yu cu ngay sau khi gp mt i tng tham chiut nht 1 RTT cho tt c i tng tham chiu

    Lp Application

  • Lp Application*Thng ip yu cu HTTP2 kiu thng ip HTTP: yu cu, p ngThng ip yu cu HTTP:ASCII ( dng thc con ngi c th c c)GET /somedir/page.html HTTP/1.1Host: www.someschool.edu User-agent: Mozilla/4.0Connection: close Accept-language:fr

    (thm mt k t xung dng)dng yu cu(cc lnh GET, POST, HEAD)cc dng header k t xung dng, v u dng mi ch im cui cng ca thng ip

    Lp Application

  • Lp Application*HTTP thng ip yu cu: dng thc tng qut

    Lp Application

  • Lp Application*Ti ln form inputPhng php Post:Web page thng cha form inputInput c ti ln vo server trong thn thc thPhng php URL:Dng GETInput c ti ln trong trng URL ca dng yu cu:

    www.somesite.com/animalsearch?monkeys&banana

    Lp Application

  • Lp Application*Cc kiu phng php HTTP/1.0GETPOSTHEADhi server mc i tng yu cu m khng p ngHTTP/1.1GET, POST, HEADPUTti ln file trong thn thc th n ng dn c xc nh trong trng URLDELETExa file c xc nh trong trng URL

    Lp Application

  • Lp Application*Thng ip p ng HTTPHTTP/1.1 200 OK Connection closeDate: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ... Content-Length: 6821 Content-Type: text/html data data data data data ... dng trng thi(giao thcm trng thicm t trng thi)cc dngheaderD liu, vd: fileHTML yu cu

    Lp Application

  • Lp Application*Cc m trng thi p ng HTTP200 OKyu cu thnh cng, i tng yu cu nm pha sau thng ip ny301 Moved Permanentlyi tng yu cu di chuyn, v tr mi xc nh pha sau thng ip ny (Location:) 400 Bad Requestthng ip yu cu server khng hiu404 Not Foundti liu yu cu khng c trong server 505 HTTP Version Not SupportedTrong dng u tin ca thng ip p ng server-> client.Mt s mu:

    Lp Application

  • Lp Application*Kim tra HTTP (pha client)1. Telnet n Web server a thch ca bn:

    M kt ni TCP port 80(port HTTP server mc nhin) ti cis.poly.edu.Mi th nhp vo gi n port 80 ti cis.poly.edutelnet cis.poly.edu 802. Nhp vo yu cu trong lnh GET HTTP:

    GET /~ross/ HTTP/1.1Host: cis.poly.eduDo nh lnh ny (enter 2 ln), bn gi yu cu GET ti thiu (nhng y ) n HTTP server3. Xem thng ip p ng gi t HTTP server!

    Lp Application

  • Lp Application*Kho st hnh ng ca HTTPtelnetEthereal

    Lp Application

  • Lp Application*Trng thi User-server: cc cookieNhiu Web sites dng cc cookie4 thnh phn:1) cookie header line ca thng ip p ng HTTP2) cookie header line trong thng ip p ng HTTP3) cookie file lu trong host ca user, qun l bi trnh duyt ca user 4) c s d liu back-end ti Web siteV d:Susan truy cp Internet lun t mt PCShe ln u tin vo mt e-commerce site xc nh Khi yu cu khi to HTTP n site, site to mt ID duy nht v to mt im ng nhp trong c s d liu back-end cho ID

    Lp Application

  • Lp Application*cc cookie: lu gi trng thi (tt.)serverto ID1678 cho userim ng k trong c s d liu backend

    truy cptruy cpmt tun sau:

    Lp Application

  • Lp Application*cc cookie (tip)Cc cookie em li:s cp phpgi mua hngcc khuyn cotrng thi phin lm vic ca user (Web e-mail)cc cookie v s ring t:cc cookie cho php cc site bit nhiu hn v bnbn c th cung cp tn v e-mail cho sitesngoi raLm th no gi trng thi:cc thi im kt thc giao thc: bo tr trng thi ti sender/receiver thng qua nhiu giao tccc cookie: trng thi mang cc thng ip http

    Lp Application

  • Lp Application*Web caches (proxy server)user thit lp trnh duyt: truy cp Web thng qua cachetrnh duyt gi tt c yu cu HTTP cho cachei tng trong cache: cache tr v i tngngc li cache yu cu i tng t server ngun, sau tr v cho clientMc tiu: tha mn yu cu ca client khng cn lin quan n server ngunclientProxyserverclientHTTP yu cuHTTP yu cuHTTP p ngHTTP p ngHTTP yu cuHTTP p ngserverngunserverngun

    Lp Application

  • Lp Application*Web cachingCache hot ng ti c client v serverTiu biu cache c ci t bi ISP (trng hc, cng ty, ISP ring)Ti sao dng Web caching?Gim thi gian p ng cho yu cu ca clientGim lu thng trn lin kt truy cpInternet rt ng nghch vi caches: cho php nhng ngi cung cp ni dung ngho nn phn pht hiu qu ni dung (cng vy i vi P2P file sharing)

    Lp Application

  • Lp Application*V d CachingGi skch thc trung bnh i tng= 100,000 bitstc trung bnh yu cu t trnh duyt n server = 15/s tr t router ni gi yu cu n server ngun ri quay li = 2 sKt qu kh dng ca LAN = 15% kh dng trn lin kt truy cp= 100%tng thi gian tr = tr Internet + tr truy cp+ tr LAN = 2 s + cc pht+ mili s

    serversngun Internetcng cngnetwork gi yu cu10 Mbps LAN1.5 Mbps lin kt truy cpcache ni gi yu cu

    Lp Application

  • Lp Application*V d Caching (tip)Gii php c thtng bng thng truy cp ln, v d 10 MbpsKt qu kh dng ca LAN = 15% kh dng trn lin kt truy cp = 15%tng thi gian tr = tr Internet + tr truy cp+ tr LAN = 2 s + mili s + mili sthng tng chi ph

    serversngun Internetcng cngnetwork gi yu cu10 Mbps LAN10 Mbps lin kt truy cpcache ni gi yu cu

    Lp Application

  • Lp Application*V d Caching (tip)ci t cachetc h tr l 0.4kt qu40% yu cu s c tha mn hu nh ngay lp tc60% yu cu s c tha mn bi server ngun kh dng trn lin kt truy cp gim n 60%, do tr khng ng k (vd 10 mili s)tng thi gian tr = tr Internet + tr truy cp+ tr LAN = 0.6*(2.01) s + 0.4*mili s < 1.4 s

    serversngun Internetcng cngnetwork gi yu cu10 Mbps LAN1.5 Mbps lin kt truy cpcache ni gi yu cu

    Lp Application

  • Lp Application*GET c iu kinMc tiu: khng gi i tng nu cache cp nhtcache: xc nh ngy ca bn sao cache trong yu cu HTTP:If-modified-since: server: p ng khng cha i tng nu bn sao cache cp nht: HTTP/1.0 304 Not ModifiedcacheserverHTTP request msgIf-modified-since: i tngkhngsa iHTTP request msgIf-modified-since: HTTP responseHTTP/1.0 200 OK

    i tngcsa i

    Lp Application

  • 5.3 FTPLp Application*

  • Lp Application*FTP: giao thc truyn filetruyn file n/t host t xam hnh client/server client: pha khi to truyn (n/t host xa)server: host xaftp: RFC 959ftp server: port 21truyn fileh thng file t xauser ti host

    Lp Application

  • Lp Application*FTP: kt ni d liu, iu khin ring bitFTP client tip xc FTP server ti port 21, xc nh TCP nh giao thc transportClient ly giy php thng qua kt ni iu khinClient xem th mc xa bng vic gi cc lnh thng qua kt ni iu khin.Khi server nhn lnh truyn file, server m kt ni TCP th 2 (cho file) n clientSau khi truyn 1 file, server ng kt ni d liu Server m kt ni d liu TCP khc truyn file khciu khin kt ni: out of bandFTP server gi li trng thi: th mc hin hnh, giy php trc

    Lp Application

  • Lp Application*Cc lnh, phn hi FTPV d cc lnh:gi nh vn bn ASCII trn knh iu khinUSER usernamePASS passwordLIST tr v danh sch ca file trong th mc hin hnhRETR filename trch chn (ly) fileSTOR filename lu (t) file vo trong host xaV d m tr vm trng thi v cm (nh HTTP)331 Username OK, password required125 data connection already open; transfer starting425 Cant open data connection452 Error writing file

    Lp Application

  • 5.4 Electronic MailLp Application*

  • Lp Application*Electronic Mail3 thnh phn quan trng: user agents mail servers simple mail transfer protocol: SMTPUser Agentcn gi l mail readervit, sa i, c cc thng ip mailV d: Eudora, Outlook, elm, Netscape Messengercc thng ip i v n c lu trn server

    Lp Application

  • Lp Application*Electronic Mail: mail serversMail Servers mailbox (hp th) cha cc thng ip n userhng thng ip cho cc thng ip email ra ngoi (chun b gi)giao thc SMTP gia cc mail servers gi cc thng ip email client: mail server giserver: mail server nhn

    Lp Application

  • Lp Application*Electronic Mail: SMTP [RFC 2821]dng TCP truyn tin cy thng ip email t client n server trn port 25truyn trc tip: server gi n server nhn3 knh truynbt tay (cho hi)truyn thng ip ngtng tc lnh/phn hilnh: vn bn ASCIIphn hi: m trng thi v cm cc thng ip phi dng m ASCII 7-bit

    Lp Application

  • Lp Application*Tnh hung: Alice gi cho Bob1) Alice dng UA vit thng ip v gi n [email protected]) UA ca Alice gi thng ip ca c y n mail server; thng ip c gia nhp vo hng i3) Pha Client ca SMTP m kt ni TCP vi mail server ca Bob4) SMTP client gi thng ip ca Alice trn kt ni TCP5) mail server ca Bob t thng ip vo hp th ca Bob6) Bob kch hot trnh user agent c thng ip

    123456

    Lp Application

  • Lp Application*V d tng tc SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 [email protected]... Sender ok C: RCPT TO: S: 250 [email protected] ... 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

    Lp Application

  • Lp Application*Th nghim tng tc SMTP:telnet servername 25thy 220 tr li t servernhp cc lnh HELO, MAIL FROM, RCPT TO, DATA, QUITlnh trn cho php bn gi email khng cn dng email client (reader)

    Lp Application

  • Lp Application*SMTPSMTP dng cc kt ni bn vngSMTP yu cu cc thng ip (header & body) phi dng thc 7-bit ASCIISMTP server dng CRLF.CRLF xc nh kt thc thng ipSo snh vi HTTP:HTTP: koSMTP: ytt c u c tng tc lnh/p ng, cc m trng thi ASCIIHTTP: mi i tng c ng kn trong thng ip p ng ca nSMTP: nhiu i tng c gi trong thng ip nhiu phn

    Lp Application

  • Lp Application*Dng thc thng ip email SMTP: giao thc cho trao i cc thng ip emailRFC 822: chun cho dng thc vn bn:cc dng header, v d:To:From:Subject:khc vi cc lnh SMTP!bodythng ip, ch c cc k t ASCIIheaderbodydng trng

    Lp Application

  • Lp Application*Dng thc thng ip: cc m rng multimediaMIME: m rng email multimedia, RFC 2045, 2056cc dng b sung trong header ca thng ip khai bo kiu ni dung MIMEkiu, kiu con, khai bo tham sd liu multimedia phng php dng m ha d liuphin bn MIMEd liu m ha

    Lp Application

  • Lp Application*Cc giao thc truy cp email SMTP: truyn dn/lu tr vo server ca ngi nhnGiao thc truy cp email: trch xut t serverPOP: Post Office Protocol [RFC 1939]cp php (agent server) v download IMAP: Internet Mail Access Protocol [RFC 1730]nhiu tnh nng (phc tp hn)iu khin cc thng ip lu trn serverHTTP: Hotmail , Yahoo! Mail,

    SMTPgiao thctruy cpmail server ca ngi nhn

    Lp Application

  • Lp Application*Giao thc POP3giai on cp phpcc lnh pha client: user: khai bo usernamepass: passwordcc p ng pha server+OK-ERRgiai on giao dch, client:list: lit k cc s thng ip retr: trch xut thng ip theo sdele: xaquit 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 bob S: +OK C: pass hungry S: +OK user successfully logged on

    Lp Application

  • Lp Application*POP3 v IMAPnghin cu thm v POP3V d trc dng ch ti xung v xa.Bob khng th c li email nu thay i clientti xung-v-gi: sao chp cc thng ip trn cc client khc nhauPOP3 khng gi trng thi ca cc phin lm vicIMAPGi tt c thng ip ti 1 v tr: serverCho php user t chc cc thng ip theo dng th mcIMAP gi trng thi xuyn sut cc phin lm vic:cc tn ca th mc v nh x gia ID ca thng ip v tn th mc

    Lp Application

  • 5.5 DNSLp Application*

  • Lp Application*DNS: Domain Name SystemCon ngi: nhiu cch nhn dng:SSN, tn, #h chiuInternet hosts, routers:a ch IP (32 bit) dng cho cc gi nh a chtn, v d: www.yahoo.com dng bi con nginh x gia a ch IP v tn?Domain Name System:c s d liu phn b hin thc theo t chc phn cp ca nhiu servers tngiao thc lp application host, routers, name servers truyn thng vi cc tn phn gii (a ch/dch ra tn)lu : chc nng li Internet, hin thc nh giao thc lp applicationphc tp bin mng

    Lp Application

  • Lp Application*DNS Ti sao khng tp trung ha DNS?mt im chu lilu lngkhong cch c s d liu tp trungbo tr

    khng linh hot!Cc dch v DNSTn Host chuyn thnh a ch IPB danh Hostcc tn ng chun v b danhB danh Mail serverTi phn bCc Web server bn sao: tp cc a ch IP cho 1 tn ng chun

    Lp Application

  • Lp Application*C s d liu cu trc, phn bClient mun IP cho www.amazon.com:Client hi mt server gc (root) tm com DNS serverClient hi com DNS server ly amazon.com DNS serverClient hi amazon.com DNS server ly a ch IP ca www.amazon.com

    Lp Application

  • Lp Application*DNS: cc server tn gctip xc qua server tn cc b no khng th phn gii tnserver tn gc:tip xc server tn c thm quyn nu nh x tn khng xc nhly nh xtr v nh x n server tn cc b

    Lp Application

  • Lp Application*TLD v Server c thm quynCc server Top-level domain (TLD) : chu trch nhim cho tn min com, org, net, edu, v cc tn min quc gia nh uk, fr, ca, jp.Lnh vc gio dc cho edu TLDCc DNS server c thm quyn: DNS server ca t chc, cung cp cc tn host c thm quyn nh x IP cho server (v d: Web v mail).Khng th duy tr bi t chc hoc ngi cung cp dch v

    Lp Application

  • Lp Application*Server tn cc bKhng hon ton theo cu trc phn cpMi ISP (ISP c nhn, cng ty, trng hc) c mt server cc b nh vy.cng gi l server tn mc nhinKhi mt host to mt truy vn DNS, truy vn c gi ti DNS server cc b ca nHot ng nh mt proxy, chuyn truy vn vo cho t chc phn cp

    Lp Application

  • Lp Application*host yu cucis.poly.edugaia.cs.umass.eduDNS server gc123456DNS server c thm quyndns.cs.umass.edu78TLD DNS serverV dHost ti cis.poly.edu mun a ch IP ca gaia.cs.umass.edu

    Lp Application

  • Lp Application*Cc truy vn quytruy vn quy:y trch nhim phn gii tn cho server tn tip xc cti qu nng?truy vn tun t:tn tip xc c tr li vi tn ca server Ti khng bit tn , nhng c th hi server ny

    Lp Application

  • Lp Application*DNS: caching v cp nht cc recordmt khi server tn hc cch nh x, n cache nh xim ng nhp cache s thot ra (bin mt) sau mt vi lnTLD servers in hnh s c cache trong cc server tn cc bDo server tn gc s khng thng xuyn c truy cpc ch cp nht/thng bo bn di c thit k bi IETFRFC 2136http://www.ietf.org/html.charters/dnsind-charter.html

    Lp Application

  • Lp Application*Cc DNS recordDNS: c s d liu phn b lu tr cc record ti nguyn (RR)Type=NSname l tn min (vd: foo.com)value l tn host ca server tn c thm quyn cho tn min ny

    Type=Aname l tn hostvalue l a ch IP

    Type=CNAMEname l b danh ca tn chun (tn thc) www.ibm.com l tn thc servereast.backup2.ibm.comvalue l tn chun

    Type=MXvalue l tn ca email server lin kt vi name

    Lp Application

  • Lp Application*Giao thc v cc thng ip DNSGiao thc DNS: cc thng ip truy vn v tr li, u c cng dng thc thng ip header thng ip identification: 16 bit # cho truy vn, tr li cho truy vn dng cng #flags:truy vn hoc tr li quy mong ch quy sn sngtr li c cp php

    Lp Application

  • Lp Application*Giao thc v cc thng ip DNScc trng Name, type cho 1 truy vncc RR trong p ng cho truy vncc record cho cc server c thm quynthng tin hu ch b sung c th s dng

    Lp Application

  • Lp Application*Chn cc record vo DNSV d: mi to Network Utopiang k tn min networkuptopia.com ti mt registrar (v d: Network Solutions)Cn cung cp cho registrar tn v a ch IP ca server tn c thm quyn (primary v secondary) ca bnRegistrar chn 2 RR vo trong com TLD server: (networkutopia.com, dns1.networkutopia.com, NS)(dns1.networkutopia.com, 212.212.212.1, A) a vo trong server c thm quyn record Type A cho www.networkuptopia.com v bn ghi Type MX cho networkutopia.comLm sao ngi khc c th bit c a ch IP Web site ca bn?

    Lp Application

  • 5.6 Chia s file P2PLp Application*

  • Lp Application*Chia s file P2PV dAlice chy ng dng P2P client trn my tnh xch tay ca cKt ni khng lin tc vo Internet; ly a ch IP cho mi kt niHi v Hey Judeng dng s hin th nhng peer khc c bn sao ca Hey Jude.

    Alice chn 1 trong nhng peer, l Bob.File c sao chp t my tnh ca Bob: HTTPTrong khi Alice ti xung, cc user khc ti ln t Alice.Alice l 1 peer ng c vai tr Web client v Web server tm thi.Tt c peer l server = linh hot cao!

    Lp Application

  • Lp Application*P2P: directory tp trungu tin do Napster thit k1) khi peer kt ni, n thng bo cho server trung tm:a ch IPni dung2) Alice truy vn Hey Jude3) Alice yu cu file t Bob

    Lp Application

  • Lp Application*P2P: cc vn vi directory tp trungMt im chu liHin tng tc nghn c chaiXm phm bn quyn

    truyn file khng tp trung nhng tm kim ni dung th tp trung cao

    Lp Application

  • Lp Application*Trn ngp truy vn: Gnutellahon ton phn bkhng c server tp trunggiao thc tn min chungnhiu Gnutella client hin thc giao thc

    overlay network: thc cnh gia peer X v Y nu c 1 kt ni TCPtt c cc peer ang hot ng v cc cnh l mng overlay networkcnh khng phi l mt lin kt vt lpeer s kt ni vi < 10 peer ln cn

    Lp Application

  • Lp Application*Gnutella: giao thcTruyn File:HTTPTruy vn thng ip gi trn cc kt ni TCP ang c peer chuyn thng ip truy vn QueryHit gi trn ng ngc chiu linh hot:hn ch trn ngp theo phm vi

    Lp Application

  • Lp Application*Gnutella: hi t PeerHi t peer X phi tm mt s peer khc trong Gnutella network: dng mt danh sch cc peer d tuynX ln lt th to TCP vi cc peer trn danh sch cho n khi kt ni thit lp c vi YX gi thng ip Ping n Y; Y chuyn thng ip Ping. Tt c cc peer nhn thng ip Ping s tr li bng thng ip PongX nhn c nhiu thng ip Pong. N sau c th thit lp thm cc kt ni TCP.Peer leaving: xem mt s vn mng gia nh!

    Lp Application

  • Lp Application*KaZaAMi peer l mt hoc c gn thnh ch huy nhmTCP kt ni gia peer v nhm ch huy ca nTCP kt ni gia mt s cp nhm ch huy.Nhm ch huy theo di ni dung trong tt c thnh vin bn trong

    Lp Application

  • Lp Application*KaZaA: Truy vnMi file c mt bm (hash) hoc mt m tClient gi t kha truy vn n nhm ch huy ca nNhm ch huy p ng vi truy vn ca nhm: ng vi mi so trng: metadata, hash, a ch IPNu nhm ch huy chuyn truy vn cho nhm khc, chng phn hi thch hpClient sau chn cc file downloadCc yu cu HTTP dng hash nh mt nhn dng gi n cho peer qun l file mong mun

    Lp Application

  • Lp Application*KaZaA: cc th thutHn ch khi ti ln ng thiXp hng yu cuKhch l u tinti xung song songTm hiu thm thng tin :J. Liang, R. Kumar, K. Ross, Understanding KaZaA,(Web site: cis.poly.edu/~ross)

    Lp Application

  • 5.7 Lp trnh socket viTCPLp Application*(xem thm slide Lp trnh socket)

  • Lp Application*Lp trnh socketSocket API c gii thiu trong BSD4.1 UNIX, 1981r rng ti, s dng v gii phng bi ng dngm hnh client/server2 kiu dch v lu thng qua socket API: datagram khng tin cytin cy, truyn byte theo streaming Mc tiu: nghin cu cch xy dng ng dng truyn thng client/server dng sockets

    Lp Application

  • Lp Application*Lp trnh socket dng TCPSocket: mt cnh ca gia tin trnh ng dng v giao thc transport (UCP hoc TCP)Dch v TCP: truyn tin cy cc bytes t mt tin trnh n tin trnh khciu khin bingi pht trinng dngiu khin bih iu hnhhost hoc serveriu khin bingi pht trinng dngiu khin bih iu hnhhost hocserverinternet

    Lp Application

  • Lp Application*Lp trnh socket vi TCPClient phi tip xc vi servertin trnh server phi chy trcserver phi to socket (ca) mi client n tip xcClient tip xc server bng:to socketTCP client cc bxc nh a ch IP, s port ca tin trnh serverKhi client to socket: client TCP thit lp kt ni vi server TCP

    Khi c tip xc bi client, server TCP to socket mi cho tin trnh server truyn thng vi clientcho php server ni chuyn vi nhiu clients port dng phn bit cc client (xem tip trong chng 3)

    Lp Application

  • Lp Application*Giao tip socket Client/server: TCPServer (chy trn hostid)Client

    Lp Application

  • Lp Application*tin trnh Clientclient TCP socketThut ng StreamMt stream l mt chui cc k t c chy vo hoc ra khi mt tin trnhMt input stream ch ngun vo ca mt tin trnh, vd: bn phm hoc socket.Mt output stream ch ngun ra ca mt tin trnh, vd: mn hnh hoc socket.

    Lp Application

  • Lp Application*Lp trnh socket dng TCPV d ng dng client-server :1) client c cc dng t input chun (inFromUser stream) , gi n server thng qua socket (outToServer stream)2) server c cc dng t socket3) server chuyn cc dng thnh ch hoa, gi ngc tr li cho client4) client c, in cc dng sa i t socket (inFromServer stream)

    Lp Application

  • Lp Application*V d: Java client (TCP)import java.io.*; import java.net.*; class TCPClient {

    public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence;

    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

    Socket clientSocket = new Socket("hostname", 6789);

    DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

    toinput streamtoclient socket, kt ni vo servertooutput streamgn vo socket

    Lp Application

  • Lp Application*V d: Java client (TCP) BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

    sentence = inFromUser.readLine();

    outToServer.writeBytes(sentence + '\n');

    modifiedSentence = inFromServer.readLine();

    System.out.println("FROM SERVER: " + modifiedSentence);

    clientSocket.close(); } } toinput streamgn vo socketGi dngn serverc dngt server

    Lp Application

  • Lp Application*V d: Java server (TCP)import java.io.*; import java.net.*;

    class TCPServer {

    public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence;

    ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept();

    BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

    tosocket mi tip xcti port 6789Ch, clienttip cn viserverTo inputstream, gn vosocket

    Lp Application

  • Lp Application*V d: Java server (TCP)

    DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());

    clientSentence = inFromClient.readLine();

    capitalizedSentence = clientSentence.toUpperCase() + '\n';

    outToClient.writeBytes(capitalizedSentence); } } } c dngt socketTo outputstream, gn vosocketVit dng rat socketkt thc vng lp whilequay li v ch chokt ni ca client khc

    Lp Application

  • 5.8 Lp trnh socket vi UDPLp Application*(xem thm slide Lp trnh socket)

  • Lp Application*Lp trnh socket vi UDPUDP: khng kt ni gia client v serverkhng bt tayngi gi r rng gn a ch IP v port ca ch vo mi giphi trch a ch IP, port ca ngi gi t gi nhnUDP: d liu truyn c th khng theo th t, hoc b mt mtUDP cung cp vic truyn khng tin cy mt nhm cc byte (datagrams) gia client v server

    Lp Application

  • Lp Application*Giao tip socket Client/server: UDPServer (chy trn hostid)

    Lp Application

  • Lp Application*V d: Java client (UDP)Output: gi gi (cn gi l TCP gi dng byte)Input: nhn gi (cn gi l TCP nhn dng byte)Clientprocessclient UDP socket

    Lp Application

  • Lp Application*V d: Java client (UDP)import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); toinput streamtoclient socketdch hostname thnha ch IP dng DNS

    Lp Application

  • Lp Application*V d: Java client (UDP). DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } to datagram vid liu gi, di, a ch IP, port

    gi datagramn serverc datagramt server

    Lp Application

  • Lp Application*V d: Java server (UDP)import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); Todatagram socketti port 9876To khng gian nhn datagramnhndatagram

    Lp Application

  • Lp Application*V d: Java server (UDP)

    String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase();

    sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); } } } ly a ch IPport #, cangi givitdatagramvo socketkt thc vng lp while,quay li v chdatagram khcto datagram gi ti client

    Lp Application

  • 5.9 Xy dng mt Web serverLp Application*

  • Lp Application*Xy dng 1 Web server n ginqun l 1 yu cu HTTPchp nhn yu cu phn tch c php headerly file c yu cu t h thng file ca server to thng ip p ng HTTP:cc dng header + filegi p ng n clientsau khi to server, bn c th yu cu file dng trnh duyt (v d: IE)xem gio trnh bit thm chi tit

    Lp Application

  • Lp Application*Chng 5: Tng ktCc kin trc ng dngclient-serverP2Plaicc yu cu dch v: tin cy, bandwidth, trm hnh dch v Internet transportconnection-oriented, tin cy: TCPkhng tin cy, datagrams: UDPTng quan mt s vn v ng dng mng!cc giao thc c bit:HTTPFTPSMTP, POP, IMAPDNSlp trnh socket

    Lp Application

  • Lp Application*Chng 5: Tng kttrao i thng ip yu cu/tr li in hnh:client yu cu thng tin hoc dch v serviceserver p ng vi d liu, m trng thicc dng thng ip:headers: cc trng cho bit thng tin v d liu d liu: thng tin truyn thngPhn quan trng: nghin cu v cc giao thciu khin vi cc thng ip d liu in-band, out-of-bandtp trung v khng tp trungkhng trng thi v c trng thitruyn thng ip tin cy v khng tin cys phc tp ca cc vn lin quan n mng

    Lp Application

    *