Applikasjoner Network applications: some jargon Disposisjon overføringsproblematikk navnetjener world wide web epost A process is a program that is running within a host. Within the same host, two processes communicate with interprocess communication defined by the OS. Processes running in different hosts communicate with an application-layer protocol A user agent is an interface between the user and the network application. Web:browser E-mail: mail reader streaming audio/video: media player Slide 1 Slide 2 System arkitektur Client- paradigm Tjener LAN Disk Komm. Prog. vare Navne tjener Internett Disk Komm. Prog. vare Klient LAN B r u k e r Typical network app has two pieces: client and Client: initiates contact with ( speaks first ) typically requests service from, for Web, client is implemented in browser; for e-mail, in mail reader Server: provides requested service to client e.g., Web sends requested Web page, mail delivers e- mail Slide 3 Slide 4 application transport network data link physical request reply application transport network data link physical 1
Overføringsproblemer Data representeres på ulik måte i ulike maskiner på grunn av forskjell i: hardware Small-endians og Big-endians maskiner 1-komplement og 2-komplement logikk ordstørrelse 32-bit maskin til 64-bit maskin komm. operativsystem programmeringsspråk og kompilere forskjellig lokal representasjon EBCDIC (IBM) til ASCII eller IA5 (standard) Applik. data Overføringssyntaks Presentasjons koding Pakke 1 Pakke 2 Pakke 3 Applik. data Presentasjons dekoding Data må overføres i en overføringssyntaks som begge sider oppfatter på samme måte Slide 5 Slide 6 Abstrakt syntaks/overføringssyntaks Samtaleunivers Lokal repr. Applik.pros. Abstrakt syntaks kompilator Koding og innpakking (marshalling) Abstrakt kontekst Felles samtaleunivers Datastrukturer Operasjoner Abstrakt syntaks Overføringssyntaks Lokal repr. Applik.pros. Dekoding og utpakking (marshalling) felles oppfatning av hva de to prosessene kan samarbeide om en mer formell beskrivelse: et sett av datastrukturer (resident del) operasjoner som kan utføres på disse strukturene (kommunisert over nettet) Slide 7 Slide 8 2
Eksempel på samtaleunivers <Fligth> :: <Carrier>>Flight-no> <Origin><Departure-time> <Destination><Arrival-time> <Available-seats-class-1> <Available-seats-class-2> <Operations>:: <Type> <Carrier><Fligth-no> <Class><No-of-seats> <Type>:: Inquire Book-seats Cancel-seats resident del kommuniseres over nettet Marshalling/serialisering Serialisering Applikasjonens datastruktur Marshalling konvertering serialisering innpakking Slide 9 Slide 10 ASN.1 eksempler What transport service does an app need? Integer > 65 535 32-bits maskin; representert i et 32-bits ord 16-bits maskin; representert i to 16-bits ord Hver datatype kodes ved overføring: Type Lengde Verdi Type lengde type lengde verdi type lengde verdi INT 4 B1 B2 B3 B4 Primitive typer: Bolean Integer Bit streng Oktett streng Null Objekt ID Objekt deskrip. Real Struktur typer Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be effective other apps ( elastic apps ) make use of whatever bandwidth they get Timing some apps (e.g., Internet telephony, interactive games) require low delay to be effective Slide 11 Slide 12 3
Navnetjener Konvertere fra navn til adresser navn er brukervennlig adresser er nødvendig for fremsending av pakker husk; et endepunkt for en forbindelse er identifisert ved tripletten: IP-adresse; IP-SAP (Protocol); T-SAP (T-Port) Service (for eks. mail) velkjent port Organisering av navnetjenesten Organisert hierarkisk i domener, reflekteres i navnekonvensjonen for eks. baugi.ifi.uio.no hvert domene er ansvarlig for sitt navneområde fleksibelt og forenkler administrasjonen Slide 13 Slide 14 Navnehierarkiet og soner com edu mil gov org uk no se princeton berkeley arpa Generisk Land uio ifi fys baugi mjolnir skibladnir hver sone korresponderer med to eller flere navnetjenere en navnetjener kan implementere en eller flere soner Rot-sone adm. NIC Rot navnetjener Hierarki av navnetjenere no navnetjener uio navnetjener ifi navnetjener Slide 15 Slide 16 4
The Web: some jargon Web page: consists of objects addressed by a URL Most Web pages consist of: base HTML page, and several referenced objects. URL has two components: host name and path name: www.someschool.edu/somedept/pic.gif User agent for Web is called a browser: MS Internet Explorer Netscape Communicator Server for Web is called Web : Apache (public domain) MS Internet Information Server The Web: the http protocol http: hypertext transfer protocol Web s application layer protocol client/ model client: browser that requests, receives, displays Web objects : Web sends objects in response to requests http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator Server running NCSA Web Port 80 is default for http. Slide 17 Slide 18 The http protocol: more http is stateless maintains no information about past client requests http message format: request two types of http messages: request, response http request message: ASCII (human-readable format) request line (GET, POST, HEAD commands) header lines GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr Carriage return, line feed indicates end of message (extra carriage return, line feed) Slide 19 Slide 20 5
http message format: response Trying out http (client side) for yourself status line (protocol status code status phrase) data, e.g., requested html file header lines HTTP/1.0 200 OK 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... 1. Telnet to your favorite Web : telnet www.eurecom.fr 80 Opens TCP connection to port 80 (default http port) at www.eurecom.fr. Anything typed in sent to port 80 at www.eurecom.fr 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 3. Look at response message sent by http! Slide 21 Slide 22 User- interaction: cookies Web Caches (proxy ) sends cookie to client in response msg Set-cookie: 1678453 client presents cookie in later requests cookie: 1678453 matches presented-cookie with -stored info authentication remembering user preferences, previous choices client usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg cookiespectific action cookiespecific action Goal: satisfy client request without involving origin user sets browser: Web accesses via web cache Proxy client sends all http client requests to web cache if object at web cache, web cache immediately returns object in http response else requests object client from origin, then returns http response to client Slide 23 Slide 24 origin origin 6
Electronic Mail Format of an email Sending/Receiving Mail Addresses User Agent MIME Mail Transfer Agent Mail Access Protocols Slide 25 Slide 26 Email address User agent Slide 27 Slide 28 7
MIME MIME header Slide 29 Slide 30 Data types and subtypes in MIME Content-transfer transfer encoding Type Subtype Description Text Plain Unformatted text Multiport Message Image Mixed Parallel Digest Alternative RFC822 Partial Ext. Body JPEG GIF Body contains ordered parts of different data types Same as above, but no order Similar to mixed, but the default is message/rfc822 Parts are different versions of the same message Body is an encapsulated message Body is a fragment of a bigger message Body is a reference to another message Image is in JPEG Video is in GIF format Video MPEG Video is in MPEG format Non-ASCII characters are encoded as an equal sign followed by an Audio Basic Single-channel encoding of voice at 8 KHz Base64 ASCII code PostScript Adobe PostScript Application Slide 31 Slide 32 Octet-Stream General binary data (8-bit bytes) Category Type 7bit 8bit Binary Description ASCII characters and short lines Non-ASCII characters and short lines Non-ASCII characters with unlimited-length lines 6-bit blocks of data are encoded into 8-bit ASCII characters 8
Commands and responses Email delivery Slide 33 Slide 34 9