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.

Slides:



Advertisements
Liknende presentasjoner
DROPS simulator - konspetet •En ny tilnærming til å forhindre DROPS •En interaktive 3D simulering av riggen, som gjør det mulig for brukeren å: - utføre.
Advertisements

Endgame - Lessons from Afghanistan Torbjørn L. Knutsen.
File sharing in peer to peer Netwoks Samson og Rune 27. september 2004.
Everyone Print Kalle Snarheim.
Jara NetBusiness Vedlikeholdsrelease , 11. februar 2008.
DESEMBERKONFERANSEN Kristian Siem SS7 New Vessels
Régis Laurent Director of Operations, Global Knowledge Competencies include: Gold Learning Silver System Management Touch, flip and fold Håvard Haukeberg.
Gruppemedlemmer Gruppa består av: Magnus Strand Nekstad – s156159
The Trondheim Toll Ring System
Ledelsesinformasjonsystem
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Mobile Phone authorised Services through Near Field Communications Hans-Christian Haugli, Elin Melby, Josef Noll.
Teknisk. Oversikt •Forskjellen på vPos systemet fra 2004 til •Mest om vPos serveren. •Også noe om SilentWings Viewer.
Gitte Holten Ingerslev - DPU Tekst Forskerens og didaktikerens blik på mødet mellem tekst og læser.
Norwegian national governance of archetypes
Det er ganske underlig med disse sentrale salmene. Selv om du ikke er religiøs burde du lese dette.
Making a Home Page. Why a Web Page? Easier to submit labs electronically (lack of color printers at university); Easier to submit labs electronically.
DOLPHIN INTERCONNECT SOLUTIONS AS Hugo Kohmann CTO
3D-structure of bacterial ribsoomes. Components required for protein-synthesis in E. coli.
Kapittel 2 Application Layer
Nettverk Software Protocol Hierarchies
Nettverk Software Protocol Hierarchies
Protokoller Pensum: Olsen, kap. 5 og 6. Kommunikasjon Er en viktig del, kanskje den viktigste del, av moderne databehandling Med det får vi tilgang til.
Konseptuell modell Hvordan skal dette se ut ifra brukeren?
Men hva mener de som har klart det? Børge Haugset (NTNU&SINTEF)
Hva er Interaksjon Design?
Versjon 1.0 / Kap 2: Applikasjonslaget1 Avsnitt 2.5 DNS Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose,
Versjon 1.0 / Kap 2: Applikasjonslaget1 Avsnitt 2.9 Innholdsdistribusjon Computer Networking: A Top Down Approach Featuring the Internet, 2 nd.
1 Information search for the research protocol in IIC/IID Medical Library, 2013.
WHY WE’RE STRENGTHENING ROTARY. OBJECTIVES  Clarify what Rotary stands for, how it’s different and why people should care  Elevate awareness and understanding.
Triggere Mutasjoner i basen. Triggers Triggers are stored procedures that execute automatically when something (event) happens in the database: : data.
SIP- Session Initiation Protocol
1 About critical attitude when reading Lill Kristiansen, Prof. Dr. Scient Department of Telematics, NTNU Material was originally written.
Datakom høsten Datakommunikasjon høsten 2002 Forelesning nr 8, mandag 7. oktober TCP flytkontroll.
Kap 3: Anvendelser av Internett
Trondheim 6. mars 2014 Mørke skyer i horisonten?.
Netværksbaserede indsatser som integreret tilgang The grass is always greener on the other side …
C O M M E N T O R A / S Commentor A/S – Hørkær 24 – 2730 Herlev - Tel : (+45) Fax : (+45) Team System VSS user guide to TFVC.
1 | 2010 Internetteknologi 2 (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 4/ Jesper Tørresø.
Publisering i åpne kanaler Anne Storset Institutt for mattrygghet og Infeksjonsbiologi.
IT services and support Information to new employees at UIB.
Problem set 2 By Thomas and Lars PS: Choose the environment, choose many pages per sheet. Problem set 2 Exercise 11/29 Laget av: Thomas Aanensen og Lars.
Planning and controlling a project Content: Results from Reflection for action The project settings and objectives Project Management Project Planning.
Protokoller Pensum: Olsen, kap. 5 og 6. Kommunikasjonsprotokoll Rutiner for å administrere og kontrollere oversending av data Telefonsamtale (”Hallo”,
Assignment 2 P3, P5, M1, M2, D1 TEAM SPORT
LO2 – Understand Computer Software
Database.
Transferring Education Benefits
WG Joint Inter-Change Date: Authors: Name Company
Chapter 2: Economic Systems Section 3
Interpreting the Meaning in Queries and Target Content (SWT-3) Speakers: > Bruce Molloy, CEO, Connotate Technologies, > Sean Martin, CTO, Cambridge Semantics.
Chapter 9 Designing Databases
We are now using Chain SMS to message patients!
Aboriginal Self Government and the Treaty Process
FDSN Working Group IV CTBTO Relations
Network Security Essentials
Advising Freshmen in the Second Semester
TGr Closing Report May 2005 Date: Authors: January 2002
What belongs in state storage API’s?
A Roadmap to Upa Yoga Facilitator Training
Developing an Educational Web Application for Student Training in Geographical Information Systems (GIS) Derek Morris Jr. , Edsel Norwood , Disaiah Bennett.
Introduction to Computers and Technology
(You can delete these instructions before sharing with students.)
Jakub Kocvara, Dr. Martin Hlosta, Prof. Zdenek Zdrahal
BY: LAURYN PETTYJOHN AND Paige gerry
Formalities in the final months May 22, 2019
LCM API Evolution – El Alto ARCHCOM, April 9, 2019
Burnaby District Scholarships
Figure 1. (A) The synthesis protocol (18) that AptaBlocks relies on
Utskrift av presentasjonen:

Versjon 1.0 / 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 Slides adapted from the slides accompanying the book of Kurose & Ross. © J.F Kurose and K.W. Ross, All Rights Reserved Norsk versjon: © Christian F Heide, 2003.

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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 mail reader m streaming audio/video: media player

Versjon 1.0 / 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

Versjon 1.0 / 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

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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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: host name path name

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / Kap 2: Applikasjonslaget19 Ikkepersistent HTTP Bruker skriver inn URL 1a. HTTP klienten initierer en TCP- forbindelse til HTTP serveren (eller prosessen) på på port 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 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)

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / Kap 2: Applikasjonslaget23 HTTP request-meldinger r HTTP request-melding: m Tekst (lesbart for mennesker) GET /somedir/page.html HTTP/1.1 Host: 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

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

Versjon 1.0 / 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:

Versjon 1.0 / 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

Versjon 1.0 / Kap 2: Applikasjonslaget27 HTTP respons-melding HTTP/ OK Connection close Date: Thu, 06 Aug :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

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

Versjon 1.0 / 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

Versjon 1.0 / 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 Anything typed in sent to port 80 at telnet 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!

Versjon 1.0 / 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

Versjon 1.0 / 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

Versjon 1.0 / 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:

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

Versjon 1.0 / 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/ Not Modified client server HTTP request msg If-modified-since: HTTP response HTTP/ Not Modified object not modified HTTP request msg If-modified-since: HTTP response HTTP/ OK object modified

Versjon 1.0 / 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

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

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

Versjon 1.0 / 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

Versjon 1.0 / 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