IN2210/IN2220: Computernetwerken: Applicatielaag
7. De applicatielaag
7-1
in2210/2220 Computernetwerken: Applicatielaag
Applicatielaag introductie • standaards t.b.v. ondersteuning van applicaties, b.v. – Name en Directory servers (b.v DNS en X.500) – Netwerkmanagement (SNMP) • Standaard toepassingen, b.v. – Email (SMTP en X.400) – WWW – multimedia – File Transfer (b.v. FTP) 7-2
in2210/2220 Computernetwerken: Applicatielaag
7-1
IN2210/IN2220: Computernetwerken: Applicatielaag
Name services
• Name service = Directory service • Basis functie: Het leveren van een adres bij een gegeven naam Standaards: • CCITT: X.500 Directory Services • Internet: DNS (Domain Name System) • Internet: LDAP (Lightweight Directory Access Protocol) 7-3
in2210/2220 Computernetwerken: Applicatielaag
DNS (Domain Naming System)
• DNS (vanaf 1987) is name service van Internet • beschreven in RFC1034 en RFC 1035 • Voor 1987 één centrale masterfile met host-namen en adressen, te downloaden door iedere host. problemen: – niet scalable – te centraal • DNS bevat voornamelijk host-namen en IP-adressen • in principe ieder object mogelijk 7-4
in2210/2220 Computernetwerken: Applicatielaag
7-2
IN2210/IN2220: Computernetwerken: Applicatielaag
DNS werkwijze
UDP
Client
naam
Server
naam
Applicatie
DNS server
Resolver IP adres
IP adres
gethostbyname
7-5
in2210/2220 Computernetwerken: Applicatielaag
DNS domeinen • • • •
DNS hierarchisch gepartioneerd domeinnaam: labels gescheiden door '.' hoogste level rechts, voorbeeld: dutikos.twi.tudelft.nl domeinnamen, toplevel in twee soorten – generiek (voornamelijk in US), b.v. com, edu, gov, ... etc. nu ook: biz, info, pro, aero, coop museum – land (buiten de US) , (volgens ISO3166)
• domeinnamen zijn: absoluut (eindigt met .) of relatief • DNS servers kennen geen relatieve namen. Client-software vult eventueel namen aan • binnen een domein mag 'domein autoriteit' zelf de subdomein-indeling en namen kiezen • max 63 tekens per component, 255 per domein 7-6
in2210/2220 Computernetwerken: Applicatielaag
7-3
IN2210/IN2220: Computernetwerken: Applicatielaag
DNS database • Per domain een set Resource Records (RR’s) • format: domain-name, time-to-live, type, class, value • Resource Record (RR) kent verschillende recordtypen voor verschillende object typen, b.v. type betekenis A computeradres NS name server CNAME alias naam MX mail host etc...
• Root server adressen in systeem configuratie file. Deze worden in cache geplaatst tijdens het starten van DNS 7-7
in2210/2220 Computernetwerken: Applicatielaag
DNS queries queries ten behoeve van – eenvoudige host-naam resolutie b.v. ftp geeft host-naam, wenst IP-adres – vinden van een E-mail server (Er zijn of meer E-mail servers per domein) – omgekeerde resolutie (zoekt host-naam bij IP-adres) – informatie over de host ( gevaarlijk ?) – vinden van well-known services, b.v. telnet, ftp 7-8
in2210/2220 Computernetwerken: Applicatielaag
7-4
IN2210/IN2220: Computernetwerken: Applicatielaag
DNS name servers (1) • scaling probleem opgelost door – partitionering – replication en caching in de buurt waar gegevens nodig zijn • DNS name space opgedeeld in zones, per zone te registreren: – gegevens voor namen in een domein, uitgezonderd de subdomeinen met eigen beheer – namen en adressen van gezaghebbende (authorative) services – namen en adressen van servers in subzones – zone management parameters 7-9
in2210/2220 Computernetwerken: Applicatielaag
DNS name servers (2) • Iedere zone bevat: – Eén primaire server heeft (authoratieve) informatie in database – Eén of meer secundaire servers, (krijgen informatie van primaire server) – (secundaire servers kunnen zich ook buiten de zone bevinden) • caching mag door iedere server gegevens krijgen een time-to-live waarde mee 7-10
in2210/2220 Computernetwerken: Applicatielaag
7-5
IN2210/IN2220: Computernetwerken: Applicatielaag
DNS navigatie en query processing • navigatie en query processing d.m.v resolver en server • DNS-architectuur voorziet in – recursieve navigatie – iteratieve navigatie • resolver kiest methode (maar: niet alle servers kennen de recursieve techniek) • meer queries in 1 query-bericht toegestaan • DNS gebruikt UDP (voor korte responses) of TCP (voor langere responses)
7-11
in2210/2220 Computernetwerken: Applicatielaag
Email Standaards • CCITT: • OSI : • CCITT:
X.400 (versie 1984) MOTIS X.400 (versie 1988)
MOTIS en X.400 zijn nagenoeg hetzelfde
• Internet: RFC 822 (+ RFC 821)
= defacto standaard
Internet en X.400 gebruiken verschillende soorten adressen.
7-12
in2210/2220 Computernetwerken: Applicatielaag
7-6
IN2210/IN2220: Computernetwerken: Applicatielaag
Email Architectuur Users
Mail systeem
UA
Mail Transfer Systeem MTA
MTA MTA
MTA
☺
UA
☺
UA
UA
UA
• UA (User Agent): interface tussen gebruiker en mail-systeem • MTA (Message Transfer Agent) zorgt (in samenwerking met andere MTA's) voor overdracht van mail. 7-13
in2210/2220 Computernetwerken: Applicatielaag
Email Functies • Basisfuncties: – – – – –
compositie overbrengen rapportage tonen afhandelen (opbergen of weggooien)
• Extra functies, o.a. – – – – –
doorsturen creëren en opheffen van mailboxes copieën privacy alternatieve ontvanger
7-14
in2210/2220 Computernetwerken: Applicatielaag
7-7
IN2210/IN2220: Computernetwerken: Applicatielaag
Email Componenten van een brief • Envelop – bevat informatie ten behoeve van MTA's: i.h.a. informatie nodig voor het op de juiste wijze overbrengen van de brief
• Inhoud, bestaat uit: – briefhoofd (vergelijk normale brief) – het eigenlijke bericht (de 'message body')
7-15
in2210/2220 Computernetwerken: Applicatielaag
Email User Agent • User Agent (mail reader) is interface tussen gebruiker en mail-systeem • Voor verzending nodig: – het bericht (b.v. aanmaken met editor) – E-mail adress (Bij Internet in DNS-formaat, bij X.400 anders) – parameters, b.v. prioriteit, security, ...
• Lezen en verwerken van mail: – overzicht nodig – per brief te beslissen over acties, b.v. forward, reply, delete, undelete, save, print
7-16
in2210/2220 Computernetwerken: Applicatielaag
7-8
IN2210/IN2220: Computernetwerken: Applicatielaag
Email RFC 822 Enige details: • header bevat zowel envelop als briefhoofd – Ieder headerveld bestaat uit één regel, met:
: <waarde> – velden t.b.v. MTA, b.v. to : from: sender: – velden t.b.v UA, b.v. In-Reply-To: , Subject:
• body – iedere inhoud mag (dus niet alleen printbare tekst) 7-17
in2210/2220 Computernetwerken: Applicatielaag
Email MIME (1) • MIME (Multipurpose Internet Mail Extensions), structureert de message body • maakt het mogelijk verschillende delen van de body verschillend te behandelen. b.v. – ander alfabet gebruiken – beeld verwerken – geluid verwerken
• zendende en ontvangende programma's moeten hiervoor worden aangepast (uitgebreid).
7-18
in2210/2220 Computernetwerken: Applicatielaag
7-9
IN2210/IN2220: Computernetwerken: Applicatielaag
Email MIME (2) Nieuwe header velden t.b.v. MIME, o.a. • Content-Type: b.v. – text/plain – image/gif – video/mpeg
• Content-Transfer-Encoding, b.v. – ASCII (max 1000 tekens per regel) – base64 encoding : 24 bits in 4 groepen van 6, een groep van 6 bits wordt voorgesteld door een alfabetisch teken, een cijfer of + en / – quoted-printable encoding (‘unprintable’ wordt =XX )
7-19
in2210/2220 Computernetwerken: Applicatielaag
Email MIME (3) Zeven typen: b.v. – – – – – – – – – –
text/html image/gif video/mpeg application/octet-stream application/postscript message external body multipart/mixed multipart/alternative multipart/parallel multipart/digest
Web page plaatje filmpje willekeurige reeks bytes postscript 'programma' body elders te halen verschillende onderdelen b.v. verschillende talen b.v. video clip reeks berichten verzameld in één 7-20
in2210/2220 Computernetwerken: Applicatielaag
7-10
IN2210/IN2220: Computernetwerken: Applicatielaag
Email transfer • Brieven worden doorgegeven van MTA naar MTA (store and forward) • Steeds transportverbinding van MTA naar MTA nodig • In eenvoudigste geval (Internet): transportverbinding van bron-MTA naar doel-MTA • Internet gebruikt SMTP-protocol (boven TCP, server luistert op poort 25) • Bij verschillende mailsystemen b.v. Internet en X.400 gateways nodig (op applicatie niveau)
7-21
in2210/2220 Computernetwerken: Applicatielaag
Email Van server naar gebruiker • Als gebruikersmachine geen mailserver bevat is er een protocol nodig voor communicatie tussen gebruiker en mailbox in mailserver. • Verschillende standaards: – POP3 : Haalt mail uit mailbox, plaatst deze in machine van gebruiker. – IMAP : mail blijft in mailbox: gebruiker kan deze vanaf verschillende machines raadplegen en manipuleren
• andere faciliteiten: – filters – vacation daemon 7-22
in2210/2220 Computernetwerken: Applicatielaag
7-11
IN2210/IN2220: Computernetwerken: Applicatielaag
Belangrijke verschillen POP3 en IMAP
Waar Email bewaren? Hoe Email lezen? verbindingstijd gebruik server resources meerdere mailboxes? voor mobiele gebruikers? kiezen wat te downloaden? eenvoudige imlementatie? veel gebruikt?
POP3
IMAP
op gebruikers PC offline kort weinig nee nee nee ja ja
op Server online lang veel ja ja ja nee groeiend
7-23
in2210/2220 Computernetwerken: Applicatielaag
WWW World Wide Web • Web bestaat uit door links met elkaar verbonden documenten, verspreid over Internetmachines (servers) • documenten te bekijken d.m.v. browsers(clients): – grafisch b.v. Mosaic, Netscape, Internet Explorer – text-only: b.v. Lynx
• • • •
documenten worden meestal pages genoemd client/server relatie tussen browser en server oorspronkelijk gebaseerd op hypertext nu ook hypermedia soms external viewers ( helper applications ) nodig
7-24
in2210/2220 Computernetwerken: Applicatielaag
7-12
IN2210/IN2220: Computernetwerken: Applicatielaag
WWW het opvragen van pages • pages worden geïdentificeerd d.m.v. URL ( Universal resource Locator ), URL bevat o.a. hostnaam en filenaam • procedure voor opvragen van een page : browser (de client)... – – – – – –
vraagt via DNS het IP-adres dat hoort bij de hostnaam maakt TCP-verbinding met poort 80 op het gevonden IP-adres geeft request, krijgt reply heft TCP-verbinding op ( tenzij ... ) toont tekst haalt en toont bijbehorende files (b.v. plaatjes), zonodig via aparte TCP-verbindingen – maakt gebruik van • plug-in’s worden geladen in browser • helper applicaties (aparte processen) 7-25
in2210/2220 Computernetwerken: Applicatielaag
WWW de server (1) • Basisproces: – – – –
de server luistert naar (TCP) poort 80 ontvangt een request, met daarin de filenaam zoekt file (de web page) zendt de inhoud naar de client
• Bij grote aantallen requests: performance probleem oplossingen: – caching (in server memory) – multithreading (een thread per disk)
• Bij een nog grotere load: server farm model – groot aantal (gespecialiseerde servers) – eventueel een front-end voor het verdelen van de requests – eventueel antwoord van server door middel van TCP handoff 7-26
in2210/2220 Computernetwerken: Applicatielaag
7-13
IN2210/IN2220: Computernetwerken: Applicatielaag
WWW de server (2)
(a) Normal request-reply message sequence. (b) Sequence when TCP handoff is used. 7-27
in2210/2220 Computernetwerken: Applicatielaag
WWW cookies • Servers bewaren geen toestand • soms nodig toestand te bewaren (b.v. boodschappenwagentje) • oplossing: “cookies” – server zendt toestandsinformatie d.m.v. cookie naar de client – client bewaart deze in cookie directory – client geeft cookie mee bij iedere request naar het domein waar de cookie vandaan kwam
• max 5 velden: domein, pad, inhoud, expiration, security • cookies zijn gevoelig voor misbruik – klant kan een cookie veranderen – server kan m.b.v. cookies informatie over de klant verzamelen
7-28
in2210/2220 Computernetwerken: Applicatielaag
7-14
IN2210/IN2220: Computernetwerken: Applicatielaag
WWW web documents overzicht • statische documenten – oorspronkelijk gebaseerd op HTML – XML en SML bieden betere mogelijkheden voor structurering – XHTML opvolger van HTML 4, is stricter dan HTML 4
• dynamische documenten dynamisch genereren van web pages (“on the fly”), verschillende mogelijkheden: – Server-side web page generatie: • CGI Interface • PHP (of JSP of ASP) – client side web page generatie • Java script • applets (of ActiveX controls) 7-29
in2210/2220 Computernetwerken: Applicatielaag
HTML (1)
• HTML (Hypertext Markup Language) wordt gebruikt om de inhoud van de pages te definiëren • hyperlinks komen in de page voor in de vorm van URL 's : format: <protocol>://<machinenaam>/ – <protocol> meestal http, maar ook gopher, ftp, ... – <machine> geeft naam zoals bekend in DNS – is volledige filename, of een afkorting, b.v. ~userx/ betekent default web directory onder de home directory van userx, waarin de default filenaam index.html verwacht wordt. 7-30
in2210/2220 Computernetwerken: Applicatielaag
7-15
IN2210/IN2220: Computernetwerken: Applicatielaag
HTML (2)
• HTML aanpassing van SGML (ISO) • maakt gebruik van Markup Commands (tags), b.v. – en (is begin en einde van een kop) – en (begin en einde van boldface)
• browser interpreteert tags bij het weergeven van de page, houdt hierbij rekening met de locale situatie. (kleur/geen kleur, groot/klein window etc.) • HTML kent ook logische stijlen, b.v. – <EM> voor emphasis <STRONG> voor strong emphasis
• weergave van de logische stijlen wordt bepaald door style sheet. 7-31
in2210/2220 Computernetwerken: Applicatielaag
HTML (3) • HTML kent mogelijkheid voor het definiëren van invulformulieren: forms, hierin aangegeven: – De URL van het programma dat dit formulier moet verwerken – de namen en de grootte van de velden – de manier waarop de gegevens worden overgedragen
voorbeeld: 7-32
in2210/2220 Computernetwerken: Applicatielaag
7-16
IN2210/IN2220: Computernetwerken: Applicatielaag
Javascript
• extra code in HTML file • wordt uitgevoerd door de client • Javascript code begrensd door tags: voorbeeld: <script language=“javascript” type=“text/javascript”> document.writeln(“Hello there”); //en nog veel meer en nog slimmere code 7-33
in2210/2220 Computernetwerken: Applicatielaag
XML
• HTML bevat informatie over inhoud en formatting • gewenst: scheiding tussen inhoud en formatting b.v bij het doorzoeken van web pages
• XML (Extensible Markup Language) beschrijft de inhoud • XSL (Extensible Style Language) beschrijft de formatting • XML te tonen d.m.v. XSL
7-34
in2210/2220 Computernetwerken: Applicatielaag
7-17
IN2210/IN2220: Computernetwerken: Applicatielaag
CGI (1) • Common gateway Interface (CGI) • Door client ingevulde velden van een form worden door het cgi interface doorgegeven aan een cgi-programma of cgi-script . • Het programma of script wordt uitgevoerd in de server • waarden worden doorgegeven in de vorm van een string, b.v. naam=Jansen&adres=brink+6+Ons+Dorp • cgi-programma maakt een html page, met daarin de uitkomst (b.v. het resultaat van een database aanroep) • de page wordt via het cgi-interface teruggestuurd naar de client. 7-35
in2210/2220 Computernetwerken: Applicatielaag
CGI (2)
7-36
in2210/2220 Computernetwerken: Applicatielaag
7-18
IN2210/IN2220: Computernetwerken: Applicatielaag
PHP (1) • PHP: Hypertext Preprocessor (PHP) • page source bevat code van php script • php script wordt uitgevoerd in de server • filenaam moet eindigen met .php • werkt alleen met php enabled server • voordeel van php zeer eenvoudige parameter overdracht, voorbeeld: dit plaatst de waarde van het veld naam in de page 7-37
in2210/2220 Computernetwerken: Applicatielaag
PHP (3)
a. situatie bij PHP
b. situatie bijJavascript
Ook combinaties van PHP en JavaScript zijn mogelijk 7-38
in2210/2220 Computernetwerken: Applicatielaag
7-19
IN2210/IN2220: Computernetwerken: Applicatielaag
HTTP protocol (1)
HHTP (HyperText Transfer Protocol) • HTTP is een ASCII protocol (d.w.z. er worden printbare tekens uitgewisseld) • HTTP kent verschillende request methods , b.v. – – – – –
GET vraagt een page HEAD vraagt een header PUT geeft opdracht een page op te slaan POST voegt iets toe aan, b.v. aan nieuwsgroep OPTIONS vraagt eigenschappen van server of van een file
7-39
in2210/2220 Computernetwerken: Applicatielaag
HTTP (2) Message headers, zijn de parameters van de request en reply methods. voorbeelden; • request headers: – – – –
User-Agent Accept-Charset Host Cookie
informatie over browser en platform informatie over acceptabele charcacter sets de naam van de server geeft een cookie mee
• response headers – – – –
Content-Type Location Last-Modified Set-Cookie
het MIME type van de page verwijst naar een andere bestemming Tijdstempel van de laatste wijziging opdracht tot het bewaren van een cookie 7-40
in2210/2220 Computernetwerken: Applicatielaag
7-20
IN2210/IN2220: Computernetwerken: Applicatielaag
HTTP protocol (3)
• Op iedere request volgt een reply , bestaande uit – een status regel 3 cijferige statuscode (5 groepen, 1xx t/m 5xx) – andere informatie (b.v. de gevraagde page)
7-41
in2210/2220 Computernetwerken: Applicatielaag
Web Performance Drie manieren om te performance te verhogen: • caching • server replication • Content Delivery Networks
7-42
in2210/2220 Computernetwerken: Applicatielaag
7-21
IN2210/IN2220: Computernetwerken: Applicatielaag
performance: caching • caching door middel van een proxy – in gebruikers PC – in een locale server – in de ISP server
• hierarchisch cachen • Vraag: hoe lang cachen? – methode 1: gebruik Last-Modified header: lang niet gewijzigd, betekent zal waarschijnlijk ook in de toekomst niet snel wijzigen. – methode 2: (RFC 2616) GET met If-Modified-Since request header – methode 3: een combinatie van 1 en 2: gebruik gedurende een periode ∆T methode 1, daarna methode 2. ∆T hangt af van hoe lang geleden de laatste wijziging van die page was
• Proactive caching: als er in een page hyperlinks voorkomen, dan vast de bijbehorende pages ophalen 7-43
in2210/2220 Computernetwerken: Applicatielaag
performance: Server replication • Drukke servers kunnen mirroring gebruiken, d.w.z één of meer copieën elders op de wereld. • probleem: flash crowds (plotseling grote belangstelling) mogelijke oplossing:
– automatisch klonen van server. van tevoren overeenstemming nodig met nieuwe gastheren – dynamische replica’s van veel gevraagde pages
7-44
in2210/2220 Computernetwerken: Applicatielaag
7-22
IN2210/IN2220: Computernetwerken: Applicatielaag
performance: Content Delivery Networks (1) • Content providers (b.v. kranten) maken gebruik van diensten van CDN • CDN (Content Delivery Network) plaatst servers bij ISP’s • gebruiker komt via oorspronkelijk adres (URL) van Content Provider bij CDN, CDN kiest gunstigste server en stuurt request door.
7-45
in2210/2220 Computernetwerken: Applicatielaag
Performance: Content Delivery Networks (2)
7-46
in2210/2220 Computernetwerken: Applicatielaag
7-23
IN2210/IN2220: Computernetwerken: Applicatielaag
wordt vervolgd ….
7-47
in2210/2220 Computernetwerken: Applicatielaag
Wireless Web: WAP 1.0 • WAP (Wireless Application Protocol) • WAP 1.0 toegang tot Web via mobiele telefoon ( was niet erg succcesvol) • gebruikte 6 lagen en WML (Wireless Markup Language)
7-48
in2210/2220 Computernetwerken: Applicatielaag
7-24
IN2210/IN2220: Computernetwerken: Applicatielaag
Wireless Web: i-mode Succesvol in Japan: 35 miljoen abonnees, 40000 servers • nieuw transmissiesysteem: – circuit switching: mobiele telefoon (voor voice), betalen per minuut – packet switching: voor Internet (altijd aanwezig , vergelijk ADSL), betalen per pakket
• nieuwe toestellen • nieuwe specificatietaal voor pages cHTML (compact HTML) – is beperkte HTML 1.0 (o.a. geen Javascript) – uitbreidingen b.v.: • align om doorsnijden van woorden te voorkomen • kiezen van hyper links met toetsen (muisloze computer!) • 166 emoji (“japanse smileys”) 7-49
in2210/2220 Computernetwerken: Applicatielaag
Wireless Web: WAP 2 • gebruik van packet switching (b.v. GPRS) • Nieuw: – – – – – –
pull model en push model geïntegreerde telefoon en applicaties multimedia berichten 264 pictogrammen storage devices (flash cards) plug ins
• technisch: – moet werken met 384 kb/s – WAP 1.0 protocol stack en TCP met aanpassingen XHTML Basic voor page specificaties (ook nieuwe i-mode versie gebruikt dit)
• concurrent: 802.11 (11 Mbp/s of 54 Mbps) 7-50
in2210/2220 Computernetwerken: Applicatielaag
7-25
IN2210/IN2220: Computernetwerken: Applicatielaag
Multimedia
• • • •
formeel meerdere media liever continue media (b.v. audio, video) nog beter streaming media alléén audio wordt ook onder multimedia gerekend
7-51
in2210/2220 Computernetwerken: Applicatielaag
Audio frequentie bereik
CD 20 Hz telefoon lijn menselijke spraak
22050 Hz
4000 Hz
20 Hz
600 Hz
6000 Hz
menselijk oor
20000 Hz
20 Hz
7-52
in2210/2220 Computernetwerken: Applicatielaag
7-26
IN2210/IN2220: Computernetwerken: Applicatielaag
Audio sampling
telefoon (PCM) Audio CD
aantal aantal samples/s bits/sample 8000 8
44100
bandbreedte 64 kb/s
16
705.6 kb/s (mono) 1411 kb/s (stereo)
Sampling rate bepaalt de maximale frequentie (Nyquist): sampling rate is maximaal 2 maal de frequentie 7-53
in2210/2220 Computernetwerken: Applicatielaag
Audio compressie • waveform coding: – Fourier componenten bepalen – amplitudes op minimale manier coderen
• perceptual coding: zodanig coderen dat het resulterende signaal voor het menselijk oor bijna hetzelfde klinkt als het oorspronkelijke signaal – psycho akoestiek – frequentie maskering – tijdelijke maskering
7-54
in2210/2220 Computernetwerken: Applicatielaag
7-27
IN2210/IN2220: Computernetwerken: Applicatielaag
Drempels en maskering
• sterk geluid maskeert een minder sterk geluid van ongeveer
dezelfde frequentie • tijdelijke maskering: de maskering gaat een tijdje door nadat het maskerende signaal is gestopt 7-55
in2210/2220 Computernetwerken: Applicatielaag
MP3 principe: bepaal Fourier getransformeerde; alleen die frequenties doorgeven die – niet onder de drempel vallen – niet gemaskeerd worden
procedure: – kies output bit rate (b.v. 96 kb/s, 128 kb/s) – bewerk de samples in groepen van 1152 (plm 26 ms bij 44100 samples/s) • iedere groep door 32 filters om frequentieband te bepalen • psycho-akoestisch model voor bepalen van gemaskeerde frequenties
– beschikbare bits verdelen over de banden: • • • •
meer bits naar ongemaskeerde banden met veel vermogen minder bits naar ongemaskeerde banden met weinig vermogen geen bits naar gemaskeerde banden hierna Huffman codering 7-56
in2210/2220 Computernetwerken: Applicatielaag
7-28
IN2210/IN2220: Computernetwerken: Applicatielaag
streaming audio (1) • music on demand, b.v. MIME type audio/mp3 • eenvoudigste oplossing, eerst volledige mp3 file ophalen met http, afspelen door helper applicatie (media player).
probleem: lange download tijd 7-57
in2210/2220 Computernetwerken: Applicatielaag
streaming audio (2) • Oplossing: URL wijst niet naar de mp3 file, maar naar een metafile. Deze bevat de URL van de mp3 file. • media player communiceert niet met de http server, maar met media server. • gebruikt RSTP (i.p.v HTTP) en RTP (via UDP) • taken van de media player: – – – –
user interface error handling (geen TCP !) decompressie jitter elimineren
• werkwijze: – pull server: player blijft nieuwe blokken vragen – push server: server blijft sturen zolang hij kan 7-58
in2210/2220 Computernetwerken: Applicatielaag
7-29
IN2210/IN2220: Computernetwerken: Applicatielaag
streaming audio (3) Low en high watermark bij hoge snelheid push server
7-59
in2210/2220 Computernetwerken: Applicatielaag
Internet Radio Twee benaderingen: • prerecorded (file op disk) – zelfde als streaming audio
• live, – verschillen met prerecorded: • Prercorded streaming audio kan met grotere snelheid dan live • bij live mogelijk vele luisteraars simultaan, kan in principe met multiccast (RTP, RTSP) in de praktijk vaak nog individuele TCP verbindingen.
– verschillende concurrerende formats: • RealAudio, Windows Media audio, MP3, Vorbis
– probleem: firewalls 7-60
in2210/2220 Computernetwerken: Applicatielaag
7-30
IN2210/IN2220: Computernetwerken: Applicatielaag
Internet telefonie: H.323 H.323 is architectuuroverzicht van Internet telefonie, omvat een groot aantal protocollen
7-61
in2210/2220 Computernetwerken: Applicatielaag
Internet telefonie H.323 (2)
7-62
in2210/2220 Computernetwerken: Applicatielaag
7-31
IN2210/IN2220: Computernetwerken: Applicatielaag
Internet telefonie H.323 (3)
PC
gateway
gatekeeper
eindcentrale
H.225 (RAS) via UDP Q.931 via TCP
telefoon Q.931 via TCP H.245 RTP, RTCP
H.225 (RAS) ---- Internet protocollen -----
PSTN prot. 7-63
in2210/2220 Computernetwerken: Applicatielaag
Internet telefonie: SIP Session Initiation Protocol (SIP) voor opzetten, managen en afsluiten van telefoonsessies: • kent: two-party, multiparty of multicast sessies • ondersteunt: audio, video, data • telefoonnumers in de vorm van URL’s • sessie maken d.m.v INVITE method (http model), over TCP of UDP – headers geven informatie over mogelijkheden van de aanroeper – three-way handshake
• location server voor als de gebruiker niet op zijn home locatie is. – melden via REGISTER – te vinden via proxy 7-64
in2210/2220 Computernetwerken: Applicatielaag
7-32
IN2210/IN2220: Computernetwerken: Applicatielaag
Belangrijkste verschillen H.323 en SIP • H.323 – – – –
komt uit de telefoonwereld, specificeert volledige protocol stack, ondersteunt verschillende bestaande telefoonsystemen, complex
• SIP – komt uit Internet wereld, – bevat alleen sessie management – past goed bij de Internet standaards, minder goed bij bestaande telefoonsystemen – eenvoudig
7-65
in2210/2220 Computernetwerken: Applicatielaag
Video - analoog (1) • Zwart-Wit TV, termen: – – – – –
frame scan, b.v. 625 lijnen, 4:3 beeldverhouding, 25 frames/s flikkering veld interlacing/noninterlacing (progressief)
• Kleuren TV – composite signal = lineaire combinatie van luminantie (helderheid) en 2 chrominanties (kleur) luminantie is belangrijker dan chrominantie – standaarden: NTSC, SECAM, PAL
• HDTV (High Definition Television) – aantal scanlijnen plm 1000 – beeldverhouding 16:9 7-66
in2210/2220 Computernetwerken: Applicatielaag
7-33
IN2210/IN2220: Computernetwerken: Applicatielaag
Video - analoog (2)
7-67
in2210/2220 Computernetwerken: Applicatielaag
Digitale video • pixels • per pixel , – b.v. 8 bits (256 grijswaarden) – b.v. 24 bits (8 bits per kleur RGB)
• refresh rate b.v. 75 – refreshen vanuit locaal geheugen
• grote bandbreedte nodig, – b.v. 472 Mb/s ( bij 1024*768, 24 bits/pixel, 25 frames/s )
• compressie nodig
7-68
in2210/2220 Computernetwerken: Applicatielaag
7-34
IN2210/IN2220: Computernetwerken: Applicatielaag
Video compressie • Compressie systeem bevat: – compressie algoritme (voor het coderen ) – decompressie algoritme (voor het decoderen)
• asymetrie: coderen vaak eenmaal (b.v film voor opslag), mag ‘duur’ zijn decoderen vele malen (bij iedere vertoning), moet ‘goedkoop’ zijn • codeerproces niet altijd omkeerbaar (d.w.z. resultaat na decodering kan een beetje afwijken van het origineel) – compressie is lossy / lossles
7-69
in2210/2220 Computernetwerken: Applicatielaag
JPEG (1) • JPEG = Joint Photographic Experts Group, • Voor het coderen van stilstaande beelden, b.v. foto’s • Verschillende modes en opties 1
2
3
4
5
6
blokschema: JPEG in lossy sequential mode
7-70
in2210/2220 Computernetwerken: Applicatielaag
7-35
IN2210/IN2220: Computernetwerken: Applicatielaag
JPEG (2) Aanname in voorbeeld: 640* 480 pixels, RGB, NTSC • 1. Block preparation – luminantie (Y) en chrominanties (I en Q) uitrekenen voor iedere pixel (waarden 0...255) – matrix vullen voor Y, I en Q. (Bij I en Q 4 elementen middelen tot 1) – van deze waarden 128 aftrekken – matrices opdelen in blokken van 8 bij 8
7-71
in2210/2220 Computernetwerken: Applicatielaag
JPEG (3)
7-72
in2210/2220 Computernetwerken: Applicatielaag
7-36
IN2210/IN2220: Computernetwerken: Applicatielaag
JPEG (4)
• 2. DCT (Discrete Cosine Transform) toepassen op ieder 8 bij 8 blok. – geeft in blok(0,0) de gemiddelde waarde – aanvullende informatie in elementen ‘rond’ (0,0) – verderweg gelegen elementen vaak 0
• 3. Quantization – De waarde in ieder veld delen door een gewichtsfactor (uit qauntizatietabel) – resultaat gequantiseerde coëfficienten
7-73
in2210/2220 Computernetwerken: Applicatielaag
JPEG (5)
7-74
in2210/2220 Computernetwerken: Applicatielaag
7-37
IN2210/IN2220: Computernetwerken: Applicatielaag
JPEG (6)
• 4. Differential quantization In ieder blok element(0,0) vervangen door verschil met vorige blok – andere elementen niet wijzigen
• 5. lineariseren gebruikt run-length encoding – b.v. een reeks van N nullen voor te stellen door 0, gevolgd door getal N – door de structuur van de inhoud van een blok, geeft dit het beste resultaat wanneer het blok diagonaal wordt doorlopen
7-75
in2210/2220 Computernetwerken: Applicatielaag
JPEG (7)
7-76
in2210/2220 Computernetwerken: Applicatielaag
7-38
IN2210/IN2220: Computernetwerken: Applicatielaag
JPEG (8)
• 6. Statistical output coding: Huffman codering – Huffman coding is een code van varierende lengte, – gebruikt korte code voor veel voorkomende waarden – gebruikt langere code voor minder vaak voorkomende waarden
7-77
in2210/2220 Computernetwerken: Applicatielaag
MPEG (1) MPEG (Motion Picture Experts Group) • MPEG-1 – video-recorder output kwaliteit – 1.2 Mb/s – compressiefactor plm 40
• MPEG-2 – – – –
omroep kwaliteit 4 tot 6 Mb/s Support ook HDTV, basis voor DVD en digitale sateliet TV
• principes MPEG-1 en MPEG-2 dezelfde, details verschillen
7-78
in2210/2220 Computernetwerken: Applicatielaag
7-39
IN2210/IN2220: Computernetwerken: Applicatielaag
MPEG (2) Synchronizatie tussen Audio en Video Signaal
7-79
in2210/2220 Computernetwerken: Applicatielaag
MPEG (3) • MPEG-1 maakt gebruik van – redundantie in de ruimte (binnen een frame; JPEG) – redundantie in de tijd (weinig verschil tussen opvolgende frames)
• MPEG-1 kent 4 soorten frames: – I (Intracode) JPEG gecodeerd, nodig als “checkpoints” – P (Predictive) bevat per macroblok (16 bij 16), de verschillen met overeenkomstig macroblok uit vorige frame – B (Bidirectional) Als P, maar bovendien verschillen met overeenkomstig macroblok uit volgend frame – D (DC coded) Voor het vertonen van lage-resolutie beeld bij Fast Forward in2210/2220 Computernetwerken: Applicatielaag 7-80
7-40
IN2210/IN2220: Computernetwerken: Applicatielaag
MPEG (4) MPEG-2 • als MPEG-1 Met I, P en B frames (geen D) • DCT met 10 bij 10 in plaats van 8 bij 8, geeft betere kwaliteit • support ook interlaced (t.b.v. omroep TV) • 4 resolutie levels
7-81
in2210/2220 Computernetwerken: Applicatielaag
Video Server • omvang: MPEG-2 film is plm 4GB – 65000 films is dan 260TB
• organisatie van opslag bepaald door prijs/prestatie van de opslagmedia • hierarchie: tape - DVD - hard disk - RAM – laag in de hierarchie is traag en goedkoop – hoog in de hierachie is snel en duur
• typische server bestaat uit: – processoren voor: • user interface • data transmissie – opslag media – netwerk interface 7-82
in2210/2220 Computernetwerken: Applicatielaag
7-41
IN2210/IN2220: Computernetwerken: Applicatielaag
Distributie netwerk
• Backbone – belangrijkst: grote bandbreedte – jitter op te vangen door buffering bij de klanten
• locale distributie: concurrende mogelijkheden – ADSL : benut local loop (twisted pair) van centrale tot abonnee – FTTC (Fiber To The Curb): glasvezel tot in de buurt van de abonnee, laatste deel twisted pair – FTTH (Fiber To The Home): glasvezel tot in de woning – HFC (Hybrid Fiber Coax): Fiber tot in de buurt, laatste deel gemeenschappelijke coax kabel. (verschil met FTTC: HFC deelt het medium, encryptie nodig) 7-83
in2210/2220 Computernetwerken: Applicatielaag
Mbone (Multicast Backbone) • Mbone voor uitzenden van live video • operationeel sinds 1992 • bestaat uit een netwerk bovenop Internet, bestaande uit – multicast-capable eilanden – verbonden door tunnels
• routering door mrouters (multicast routers) • mrouters bevatten tabellen waarin eilanden en tunnels • bij deelname van een nieuw eiland, worden de mrouter tabellen aangepast
7-84
in2210/2220 Computernetwerken: Applicatielaag
7-42