Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget1 Kapittel 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition.

Liknende presentasjoner


Presentasjon om: "Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget1 Kapittel 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition."— Utskrift av presentasjonen:

1 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget1 Kapittel 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. Slides adapted from the slides accompanying the book of Kurose & Ross. © 1996-2002 J.F Kurose and K.W. Ross, All Rights Reserved Norsk versjon: © Christian F Heide, 2003.

2 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget2 Kapittel 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m transport-layer service models m client-server paradigm m peer-to-peer paradigm r learn about protocols by examining popular application-level protocols m HTTP m FTP m SMTP / POP3 / IMAP m DNS r programming network applications m socket API

3 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget3 Kapittel 2 – oversikt r 2.1 Principles of app layer protocols r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail m SMTP, POP3, IMAP r 2.5 DNS r 2.6 Socket programming with TCP r 2.7 Socket programming with UDP r 2.8 Building a Web server r 2.9 Content distribution m Network Web caching m Content distribution networks m P2P file sharing

4 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget4 Network applications: some jargon Process: program running within a host. r within same host, two processes communicate using interprocess communication (defined by OS). r processes running in different hosts communicate with an application-layer protocol user agent: interfaces with user “above” and network “below”. r implements user interface & application-level protocol m Web: browser m E-mail: mail reader m streaming audio/video: media player

5 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget5 Applikasjoner og applikasjonslagsprotokoller Applikasjon: kommuniserende, distribuerte prosesser m f.eks. e-post, Web, P2P fildeling, meldingsformidling m kjører i endesystemer (vertsmaskiner, hosts) m utveksler meldinger Applikasjonslagsprotkoller m en del av en applikasjon m definerer meldinger som utveksles og handlinger som skal utføres m bruker kommunikasjons- tjenester som tilbys av protokoller på laget under (transportlaget), TCP og UDP appl transport nettverk link fysisk appl transport nettverk link fysisk appl transport nettverk link fysisk

6 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget6 App-layer protocol defines r Types of messages exchanged, e.g., request & response messages r Syntax of message types: what fields in messages & how fields are delineated r Semantics of the fields, i.e., meaning of information in fields r Rules for when and how processes send & respond to messages Public-domain protocols: r defined in RFCs r allows for interoperability r eg, HTTP, SMTP Proprietary protocols: r eg, KaZaA

7 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget7 Klient-tjener paradigmet appl transport nettverk link fysisk appl transport nettverk link fysisk request reply klient tjener

8 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget8 Prosesskommunikasjon over et nettverk prosess TCP med buffere og variable socket prosess TCP med buffere og variable socket Internett kontrollert av OS kontrollert av app-utvikleren

9 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget9 Addressing processes: r For a process to receive messages, it must have an identifier r Every host has a unique 32-bit IP address r Q: does the IP address of the host on which the process runs suffice for identifying the process? r Answer: No, many processes can be running on same host r Identifier includes both the IP address and port numbers associated with the process on the host. r Example port numbers: m HTTP server: 80 m Mail server: 25 r More on this later

10 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget10 What transport service does an app need? Data loss r some apps (e.g., audio) can tolerate some loss r other apps (e.g., file transfer, telnet) require 100% reliable data transfer Timing r some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” Bandwidth r some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” r other apps (“elastic apps”) make use of whatever bandwidth they get

11 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget11 Krav til transporttjenester fra noen applikasjoner Applikasjon filoverføring e-post Web sanntidsaudio/-video lagret audio/video interaktive spill instant messaging Tap ingen tap tapstolerant ingen tap Båndbredde elastisk audio: 5kb/s-1Mb/s video:10kb/s-5Mb/s som over noen kb/s og høyere elastisk Følsom for forsinkelse nei ja, noen 100 ms ja, noen s ja, noen 100 ms ja og nei

12 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget12 Tjenester fra transport-protokoller i TCP/IP-nett TCP-tjenster: r forbindelsesorientert: oppkobling mellom klient- og tjenerprosessene nødvendig r pålitelig transport mellom sender- og mottakerprosess r flytkontroll: sender skal ikke oversvømme mottaker med data r metningskontroll: redusere senderate når nettet er overbelastet r gir ikke: tidsgaranti eller båndbreddegaranti UDP-tjenester: r upålitelig dataoverføring mellom sender og mottaker r gir ikke: oppsetting av forbindelse, pålitelig overføring, flytkontroll, metningskontroll, tidsgaranti eller båndbreddegaranti

13 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget13 Internett apps: applikasjon- og transportprotokoll Applikasjon e-post remote terminalaksess Web filoverføring streaming av multimedia Internetttelefoni Applikasjons- lagsprotokoll SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietær (f.eks. RealNetworks) proprietær (f.eks. Dialpad) Underliggende transportprotokoll TCP TCP eller UDP oftest UDP

14 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget14 Kapittel 2 – hvor er vi? r 2.1 Principles of app layer protocols r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail m SMTP, POP3, IMAP r 2.5 DNS r 2.6 Socket programming with TCP r 2.7 Socket programming with UDP r 2.8 Building a Web server r 2.9 Content distribution m Network Web caching m Content distribution networks m P2P file sharing

15 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget15 Web and HTTP First some jargon r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists of base HTML-file which includes several referenced objects r Each object is addressable by a URL r Example URL: www.someschool.edu/someDept/pic.gif host name path name

16 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget16 HTTP oversikt HTTP: hypertext transfer protocol r Webs applikasjonslags- protokoll r klient/tjener modell m klient: browser som forespør, mottar og viser web-objekter m tjener: web-tjeneren sender objekter som repsons på forespørsler r HTTP 1.0: RFC 1945 r HTTP 1.1: RFC 2616 PC med Explorer Tjener som kjører Apache Web server Mac med Navigator HTTP request HTTP response

17 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget17 HTTP oversikt (fortsatt) Benytter TCP: r klient initierer TCP- forbindelse (åpner socket) til tjener, port 80 r tjener aksepterer TCP- forbindelsen fra klienten r HTTP meldinger (applika- sjonslagets protokoll- meldinger) utvekseles mellom browser (HTTP klient) og web-server (HTTP tjener) r TCP forbindelse lukkes HTTP er tilstandsløs r tjener tar ikke vare på informasjon om tidligere forespørsler fra klienten Protocols that maintain “state” are complex! r past history (state) must be maintained r if server/client crashes, their views of “state” may be inconsistent, must be reconciled aside

18 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget18 HTTP connections Nonpersistent HTTP r At most one object is sent over a TCP connection. r HTTP/1.0 uses nonpersistent HTTP Persistent HTTP r Multiple objects can be sent over single TCP connection between client and server. r HTTP/1.1 uses persistent connections in default mode

19 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget19 Ikkepersistent HTTP Bruker skriver inn URL www.someSchool.edu/someDepartment/home.index 1a. HTTP klienten initierer en TCP- forbindelse til HTTP serveren (eller prosessen) på www.someSchool.edu på port 80 2. HTTP klienten sender en HTTP request melding (som URL) over TCP-forbindelsen. Meldingen indikerer at klienten ønsker objektet someDepartment/home.index 1b. HTTP server på maskinen www.someSchool.edu venter på en TCP-forbindelse på port 80. Aksepterer forbindelsen og gir beskjed til klienten 3. HTTP serveren mottar fore- spørselen, lager en response melding som inneholder det forespurte objektet og sender meldingen inn på socket tid (inneholder tekst og referanser til 10 jpeg bilder)

20 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget20 Ikkepersistent HTTP (forts.) 5. HTTP klienten mottar respons- meldingen som inneholder html-filen og viser denne. Ved “parsing” av html-fil finner den ti refererte jpeg- objekter 6. Trinn 1-5 repeteres for hvert av de ti jpeg objektene 4. HTTP server lukker TCP- forbindelsen tid

21 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget21 Estimering av responsetid Definisjon av RTT: tiden det tar for en liten pakke å vandre fra klienten til tjeneren og tilbake. Responstid: r én RTT for å initiere en TCP-forbindelse r én RTT for en HTTP request med ankomst av den første byte av HTTP responsen r sendetiden for fila totalt: 2RTT + sendetid sendetiden for fil initiere TCP- forbindelse RTT request RTT fil mottatt tid

22 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget22 Persistent HTTP Nonpersistent HTTP issues: r requires 2 RTTs per object r OS must work and allocate host resources for each TCP connection r but browsers often open parallel TCP connections to fetch referenced objects Persistent HTTP r server leaves connection open after sending response r subsequent HTTP messages between same client/server are sent over connection Persistent without pipelining: r client issues new request only when previous response has been received r one RTT for each referenced object Persistent with pipelining: r default in HTTP/1.1 r client sends requests as soon as it encounters a referenced object r as little as one RTT for all the referenced objects

23 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget23 HTTP request-meldinger r HTTP request-melding: m Tekst (lesbart for mennesker) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (ekstra “carriage return, line feed”) request linje (GET, POST, HEAD kommandoer) header linjer “Carriage return, line feed” indikerer slutten på meldingen

24 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget24 HTTP request-melding: generelt format

25 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget25 Uploading form input Post method: r Web page often includes form input r Input is uploaded to server in entity body URL method: r Uses GET method r Input is uploaded in URL field of request line: www.somesite.com/animalsearch?monkeys&banana

26 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget26 Method types HTTP/1.0 r GET r POST r HEAD m asks server to leave requested object out of response HTTP/1.1 r GET, POST, HEAD r PUT m uploads file in entity body to path specified in URL field r DELETE m deletes file specified in the URL field

27 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget27 HTTP respons-melding HTTP/1.1 200 OK Connection close Date: 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... statuslinje (protokoll, statuskode, statusfrase) header- linjer data, f eks etterspurt HTML-fil

28 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget28 HTTP respons-melding: generelt format

29 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget29 Noen HTTP responsstatuskoder 200 OK m forespørsel lyktes, etterspurt objekt følger senere i meldingen 301 Moved Permanently m etterspurt objekt er flyttet, ny lokasjon spesifisert senere i meldingen (Location:) 400 Bad Request m forespørsel ikke forstått av serveren 404 Not Found m etterspurt dokument ikke funnet på serveren 505 HTTP Version Not Supported

30 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget30 Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web server: Opens TCP connection to port 80 (default HTTP server port) at www.eurecom.fr. Anything typed in sent to port 80 at www.eurecom.fr telnet www.eurecom.fr 80 2. Type in a GET HTTP request: GET /~ross/index.html HTTP/1.0 By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server 3. Look at response message sent by HTTP server!

31 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget31 User-server interaction: authorization Authorization : control access to server content r authorization credentials: typically name, password r stateless: client must present authorization in each request  authorization: header line in each request  if no authorization : header, server refuses access, sends WWW authenticate: header line in response client server usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization: usual http response msgusual http request msg + Authorization: usual http response msg time

32 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget32 Cookies: keeping “state” Many major Web sites use cookies Four components: 1) cookie header line in the HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on user’s host and managed by user’s browser 4) back-end database at Web site Example: m Susan access Internet always from same PC m She visits a specific e- commerce site for first time m When initial HTTP requests arrives at site, site creates a unique ID and creates an entry in backend database for ID

33 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget33 Cookies klient server vanlig http request vanlig http respons + Set-cookie: 1678 vanlig http request cookie: 1678 vanlig http respons vanlig http request cookie: 1678 vanlig http respons cookie- spesifikk aksjon cookie- spesifikk aksjon server genererer ID 1678 for bruker entry i database aksess Cookie-fil amazon: 1678 ebay: 8734 Cookie-fil ebay: 8734 Cookie-fil amazon: 1678 ebay: 8734 en uke senere:

34 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget34 Cookies (continued) What cookies can bring: r authorization r shopping carts r recommendations r user session state (Web e-mail) Cookies and privacy: r cookies permit sites to learn a lot about you r you may supply name and e-mail to sites r search engines use redirection & cookies to learn yet more r advertising companies obtain info across sites aside

35 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget35 Conditional GET: client-side caching r Goal: don’t send object if client has up-to-date cached version r client: specify date of cached copy in HTTP request If-modified-since: r server: response contains no object if cached copy is up- to-date: HTTP/1.0 304 Not Modified client server HTTP request msg If-modified-since: HTTP response HTTP/1.0 304 Not Modified object not modified HTTP request msg If-modified-since: HTTP response HTTP/1.0 200 OK object modified

36 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget36 Chapter 2 outline r 2.1 Principles of app layer protocols r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail m SMTP, POP3, IMAP r 2.5 DNS r 2.6 Socket programming with TCP r 2.7 Socket programming with UDP r 2.8 Building a Web server r 2.9 Content distribution m Network Web caching m Content distribution networks m P2P file sharing

37 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget37 FTP: the file transfer protocol filoverføring FTP server FTP bruker- grense- snitt FTP klient lokalt filsystem fjerntliggende filsystem bruker

38 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget38 FTP: the file transfer protocol FTP client FTP server TCP control connection port 21 TCP data connection port 20

39 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget39 FTP: separate control, data connections r FTP client contacts FTP server at port 21, specifying TCP as transport protocol r Client obtains authorization over control connection r Client browses remote directory by sending commands over control connection. r When server receives a command for a file transfer, the server opens a TCP data connection to client r After transferring one file, server closes connection. FTP client FTP server TCP control connection port 21 TCP data connection port 20 r Server opens a second TCP data connection to transfer another file. r Control connection: “out of band” r FTP server maintains “state”: current directory, earlier authentication

40 Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget40 FTP kommandoer og responser Noen kommandoer:  USER username  PASS password  LIST returnerer liste av filer i katalogen  RETR filename henter fil til lokal maskin  STOR filename lagrer (laster opp) fil på fjernliggende maskin Noen responser 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


Laste ned ppt "Versjon 1.0 / 03.09.03 Kap 2: Applikasjonslaget1 Kapittel 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition."

Liknende presentasjoner


Annonser fra Google