Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertLise Kristensen Endret for 9 år siden
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
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.