Applikasjoner Disposisjon overføringsproblematikk navnetjener world wide web epost 5/9/2006 Slide 1
Network applications: some jargon 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 5/9/2006 Slide 2
System arkitektur Tjener Disk Komm. Prog. vare Navne tjener Disk Komm. Prog. vare Klient B r u k e r LAN LAN Internett 5/9/2006 Slide 3
Client-server paradigm Typical network app has two pieces: Client: client and server initiates contact with server ( speaks first ) typically requests service from server, for Web, client is implemented in browser; for e-mail, in mail reader Server: provides requested service to client e.g., Web server sends requested Web page, mail server delivers e- mail application transport network data link physical request reply application transport network data link physical 5/9/2006 Slide 4
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) 5/9/2006 Slide 5
Overføringssyntaks Applik. data Applik. data Presentasjons koding Presentasjons dekoding Pakke 1 Pakke 2 Pakke 3 Data må overføres i en overføringssyntaks som begge sider oppfatter på samme måte 5/9/2006 Slide 6
Abstrakt syntaks/overføringssyntaks Lokal repr. Applik.pros. Abstrakt syntaks kompilator Abstrakt kontekst Felles samtaleunivers Datastrukturer Operasjoner Abstrakt syntaks Lokal repr. Applik.pros. Koding og innpakking (marshalling) Overføringssyntaks Deoding og utpakking (marshalling) 5/9/2006 Slide 7
Marshalling/serialisering Serialisering Applikasjonens datastruktur Marshalling konvertering serialisering innpakking 5/9/2006 Slide 8
ASN.1 eksempler 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 5/9/2006 Slide 9
What transport service does an app need? 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 5/9/2006 Slide 10
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) vel-kjent port 5/9/2006 Slide 11
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 5/9/2006 Slide 12
Navnehierarkiet og soner Generisk Land com edu mil gov org uk no se Rot-sone adm. NIC princeton berkeley arpa uio ifi fys baugi mjolnir skibladnir hver sone korresponderer med to eller flere navnetjenere en navnetjener kan implementere en eller flere soner 5/9/2006 Slide 13
Hierarki av navnetjenere Rot navnetjener no navnetjener uio navnetjener ifi navnetjener 5/9/2006 Slide 14
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: User agent for Web is called a browser: MS Internet Explorer Netscape Communicator Server for Web is called Web server: Apache (public domain) MS Internet Information Server www.someschool.edu/somedept/pic.gif 5/9/2006 Slide 15
The Web: the http protocol http: hypertext transfer protocol Web s application layer protocol client/server model client: browser that requests, receives, displays Web objects server: Web server sends objects in response to requests http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator http request http response http request http response Server running NCSA Web server Port 80 is default for http server. 5/9/2006 Slide 16
The http protocol: more http is stateless server maintains no information about past client requests 5/9/2006 Slide 17
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) 5/9/2006 Slide 18
http message format: response 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... 5/9/2006 Slide 19
Trying out http (client side) for yourself 1. Telnet to your favorite Web server: telnet www.eurecom.fr 80 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 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! 5/9/2006 Slide 20
User-server interaction: cookies server sends cookie to client in response msg Set-cookie: 1678453 client presents cookie in later requests cookie: 1678453 server matches presented-cookie with server-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 server cookiespectific action cookiespectific action 5/9/2006 Slide 21
Web Caches (proxy server) Goal: satisfy client request without involving origin server user sets browser: Web accesses via web cache client sends all http requests to web cache if object at web cache, web cache immediately returns object in http response else requests object from origin server, then returns http response to client client client http request http response http request http response Proxy server http request http response http request http response origin server origin server 5/9/2006 Slide 22
Electronic Mail Sending/Receiving Mail Addresses User Agent MIME Mail Transfer Agent Mail Access Protocols 5/9/2006 Slide 23
Format of an email 5/9/2006 Slide 24
Email address 5/9/2006 Slide 25
User agent 5/9/2006 Slide 26
MIME 5/9/2006 Slide 27
MIME header 5/9/2006 Slide 28
Data types and subtypes in MIME Type Subtype Description Text Plain Mixed Unformatted text Body contains ordered parts of different data types Multiport Parallel Same as above, but no order Digest Similar to mixed, but the default is message/rfc822 Message Alternative RFC822 Partial Ext. Body 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 JPEG Image is in JPEG GIF Video is in GIF format Video MPEG Video is in MPEG format Audio Basic Single-channel encoding of voice at 8 KHz Application PostScript Adobe PostScript 5/9/2006 Slide 29 Octet-Stream General binary data (8-bit bytes)
Content-transfer transfer encoding Category Description Type ASCII characters and short lines 7bit Non-ASCII characters and short lines 8bit Non-ASCII characters with unlimited-length lines Binary Base64 6-bit blocks of data are encoded into 8-bit ASCII characters Non-ASCII characters are encoded as an equal sign followed by an ASCII code 5/9/2006 Slide 30
Commands and responses 5/9/2006 Slide 31
Email delivery 5/9/2006 Slide 32