IN2210/IN2220: 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)
7. De applicatielaag • Standaard toepassingen, b.v. – Email (SMTP en X.400) – WWW – multimedia – File Transfer (b.v. FTP) 7-1
in2210/2220 Computernetwerken: Applicatielaag
in2210/2220 Computernetwerken: Applicatielaag
Name services
DNS (Domain Naming System)
• 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 (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 in2210/2220 Computernetwerken: Applicatielaag
DNS werkwijze • • • •
UDP Server
Applicatie
naam DNS server
Resolver IP adres
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
IP adres
gethostbyname
in2210/2220 Computernetwerken: Applicatielaag
7-4
DNS domeinen
Client
naam
7-2
7-5
in2210/2220 Computernetwerken: Applicatielaag
7-1
7-6
IN2210/IN2220: Computernetwerken: Applicatielaag
DNS database
DNS queries
• 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 gezaghebbende 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 in2210/2220 Computernetwerken: Applicatielaag
7-7
queries ten behoeve van – eenvoudige host-naam resolutie b.v. ftp geeft host-naam, wenst IP-adres – vinden van een E-mail server (Er is één E-mail server per domein) – omgekeerde resolutie (zoekt host-naam bij IP-adres) – informatie over de host ( gevaarlijk ?) – vinden van well-known services, b.v. telnet, ftp
DNS name servers (1)
DNS name servers (2)
• 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 in2210/2220 Computernetwerken: Applicatielaag
7-8
in2210/2220 Computernetwerken: Applicatielaag
7-9
• Iedere zone bevat: – Eén primaire server heeft (authorative) 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
DNS navigatie en query processing
Email Standaards
• 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
• CCITT: • OSI : • CCITT:
X.400 (versie 1984) MOTIS X.400 (versie 1988)
MOTIS en X.400 zijn nagenoeg hetzelfde
• Internet: RFC822 (+ rfc821)
= defacto standaard
Internet en X.400 gebruiken verschillende soorten adressen.
in2210/2220 Computernetwerken: Applicatielaag
7-11
in2210/2220 Computernetwerken: Applicatielaag
7-2
7-12
IN2210/IN2220: Computernetwerken: Applicatielaag
Email Architectuur
Email Functies • Basisfuncties:
Mail systeem Users
K
UA
Mail Transfer Systeem MTA
MTA MTA
MTA
J
J
UA
UA UA
compositie overbrengen rapportage tonen afhandelen (opbergen of weggooien)
• Extra functies, o.a.
L
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. in2210/2220 Computernetwerken: Applicatielaag
– – – – –
7-13
– – – – –
doorsturen creëren en opheffen van mailboxes copieën privacy alternatieve ontvanger
in2210/2220 Computernetwerken: Applicatielaag
Email Componenten van een brief
7-14
Email User Agent
• 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:
• 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, ...
– briefhoofd (vergelijk normale brief) – het eigenlijke bericht (de 'message body')
• Lezen en verwerken van mail: – overzicht nodig – per brief te beslissen over acties, b.v. forward, reply, delete, undelete, save, print
in2210/2220 Computernetwerken: Applicatielaag
7-15
in2210/2220 Computernetwerken: Applicatielaag
Email RFC 822
7-16
Email MIME (1)
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
• MIME (Multipurpose Internet Mail Extension), 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).
– iedere inhoud mag (dus niet alleen printbare tekst)
in2210/2220 Computernetwerken: Applicatielaag
7-17
in2210/2220 Computernetwerken: Applicatielaag
7-3
7-18
IN2210/IN2220: Computernetwerken: Applicatielaag
Email MIME (2)
Email MIME (3)
Nieuwe header velden t.b.v. MIME, o.a. • Content-Type: b.v.
Zeven typen: 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 ; ‘=‘ wordt =3D )
7-19
in2210/2220 Computernetwerken: Applicatielaag
7-20
Email Van server naar gebruiker
• 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
• 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 in2210/2220 Computernetwerken: Applicatielaag
Belangrijke verschillen POP3 en IMAP POP3
IMAP
op gebruikers PC offline kort weinig nee nee nee ja ja
op Server online lang veel ja ja ja nee groeiend
in2210/2220 Computernetwerken: Applicatielaag
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
in2210/2220 Computernetwerken: Applicatielaag
Email transfer
Waar Email bewaren? Hoe Email lezen? verbindingstijd gebruik server resources meerdere mailboxes? voor mobiele gebruikers? kiezen wat te downloaden? eenvoudige imlementatie? veel gebruikt?
text/html image/gif video/mpeg application/octet-stream application/postscript message external body multipart/mixed multipart/alternative multipart/parallel multipart/digest
7-22
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
• • • •
7-23
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
in2210/2220 Computernetwerken: Applicatielaag
7-4
7-24
IN2210/IN2220: Computernetwerken: Applicatielaag
WWW het opvragen van pages
WWW de server (1)
• 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) in2210/2220 Computernetwerken: Applicatielaag
7-25
• 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 – 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 in2210/2220 Computernetwerken: Applicatielaag
WWW de server (2)
7-26
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 bewaard 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
(a) Normal request-reply message sequence. (b) Sequence when TCP handoff is used. in2210/2220 Computernetwerken: Applicatielaag
7-27
in2210/2220 Computernetwerken: Applicatielaag
WWW web documents overzicht
7-28
HTML (1)
• 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 genereren dynamsich 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) in2210/2220 Computernetwerken: Applicatielaag
• 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-29
in2210/2220 Computernetwerken: Applicatielaag
7-5
7-30
IN2210/IN2220: Computernetwerken: Applicatielaag
HTML (2)
HTML (3) • HTML kent mogelijkheid voor het definiëren van invulformulieren: forms, hierin aangegeven:
• HTML aanpassing van SGML (ISO) • maakt gebruik van Markup Commands (tags), b.v.
– De URL van het programma dat dit moet verwerken – de namen en de grootte van de velden – de manier waarop de gegevens worden overgedragen
– 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. in2210/2220 Computernetwerken: Applicatielaag
7-31
voorbeeld: in2210/2220 Computernetwerken: Applicatielaag
Javascript
XML
• extra code in HTML file • wordt uitgevoerd door de client • Javascript code begrensd door tags:
• 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
voorbeeld: <script language=“javascript” type=“text/javascript”> document.writeln(“Hello there”); //en nog veel meer en nog slimmere code in2210/2220 Computernetwerken: Applicatielaag
7-32
7-33
in2210/2220 Computernetwerken: Applicatielaag
CGI (1)
7-34
CGI (2)
• 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 vi het cgi-interfcae teruggestuurd naar de client.
in2210/2220 Computernetwerken: Applicatielaag
7-35
in2210/2220 Computernetwerken: Applicatielaag
7-6
7-36
IN2210/IN2220: Computernetwerken: Applicatielaag
PHP (1)
PHP (3)
• 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 in2210/2220 Computernetwerken: Applicatielaag
a. situatie bij PHP
Ook combinaties van PHP en JavaScript zijn mogelijk 7-37
in2210/2220 Computernetwerken: Applicatielaag
HTTP protocol (1)
GET HEAD PUT POST OPTIONS
vraagt een page vraagt een header geeft opdracht een page op te slaan voegt iets toe aan, b.v. aan nieuwsgroep vraagt eigenschappen van server of van een file
in2210/2220 Computernetwerken: Applicatielaag
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 – – – – 7-39
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
in2210/2220 Computernetwerken: Applicatielaag
HTTP protocol (3)
7-40
Web Performance Drie manieren om te performance te verhogen: • caching • server replication • Content Delivery Networks
• 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)
in2210/2220 Computernetwerken: Applicatielaag
7-38
HTTP (2)
HHTP (HyperText Transfer Protocol) • HTTP is een ASCII protocol (d.w.z. er worden printbare tekens uitgewisseld) • HTTP kent verschillende request methods , b.v. – – – – –
b. situatie bijJavascript
7-41
in2210/2220 Computernetwerken: Applicatielaag
7-7
7-42
IN2210/IN2220: Computernetwerken: Applicatielaag
performance: caching
performance: Server replication
• caching door middel van een proxy
• Drukke servers kunnen mirroring gebruiken, d.w.z één of meer copieën elders op de wereld. • probleem: flash crowds (plotseling grote belangstelling)
– in gebruikers PC – in een locale server – in de ISP server
mogelijke oplossing:
• 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 in2210/2220 Computernetwerken: Applicatielaag
7-43
performance: Content Delivery Networks (1)
– automatisch klonen van server. van tevoren overeenstemming nodig met nieuwe gastheren – dynamische replica’s van veel gevraagde pages
in2210/2220 Computernetwerken: Applicatielaag
7-44
Performance: Content Delivery Networks (2)
• 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.
in2210/2220 Computernetwerken: Applicatielaag
7-45
in2210/2220 Computernetwerken: Applicatielaag
Wireless Web: WAP 1.0
7-46
Wireless Web: i-mode
• 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)
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”) in2210/2220 Computernetwerken: Applicatielaag
7-47
in2210/2220 Computernetwerken: Applicatielaag
7-8
7-48
IN2210/IN2220: Computernetwerken: Applicatielaag
Wireless Web: WAP 2
Multimedia
• gebruik van packet switching (b.v. GPRS) • Nieuw: – – – – – –
• • • •
pull model en push model geïntegreerde telefoon en applacaties multimedia berichten 264 pictogrammen storage devices (flash cards) plug ins
formeel meerdere media liever continue media (b.v. audio, video) nog beter streaming media alleen audio wordt ook onder multimedia gerekend
• technisch: – moet werken met 384 kb/s – WAP 1.0 protocol stack en TCP met aanpassingen XHTML Basic voor page specificaties (ook nieuwe i-node versie gebruikt dit)
• concurrent: 802.11 (11 Mbp/s of 54 Mbps) 7-49
in2210/2220 Computernetwerken: Applicatielaag
sampling
telefoon (PCM) Audio CD
aantal aantal samples/s bits/sample 8000 8
Frequentie bereik bandbreedte CD
64 kb/s
20 Hz
44100
16
7-50
in2210/2220 Computernetwerken: Applicatielaag
705.6 kb/s (mono) 1411 kb/s (stereo)
telefoon lijn
22050 Hz
4000 Hz
20 Hz
stem 600 Hz
Sampling rate bepaalt de maximale frequentie (Nyquist): sampling rate is maximaal 2 maal de frequentie in2210/2220 Computernetwerken: Applicatielaag
6000 Hz
menselijk oor 20 Hz 7-51
in2210/2220 Computernetwerken: Applicatielaag
Audio compressie
20000 Hz 7-52
Drempels en maskering
• 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 • 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
in2210/2220 Computernetwerken: Applicatielaag
7-53
in2210/2220 Computernetwerken: Applicatielaag
7-9
7-54
IN2210/IN2220: Computernetwerken: Applicatielaag
MP3
streaming audio (1)
principe: bepaal Fourier getransformeerde, alleen die frequenties doorgeven die – niet onder de drempel vallen – niet gemaskeerd worden
• music on demand, b.v. MIME type audio/mp3 • eenvoudigste oplossing, eerst volledige mp3 file ophalen met http, afspelen door helper applicatie (media player).
procedure: – kies output bit rate (b.v. 96 kb/s, 128 kb/s) – bewerk het sample in groepen van 1152 bits • 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 in2210/2220 Computernetwerken: Applicatielaag
probleem: lange download tijd 7-55
in2210/2220 Computernetwerken: Applicatielaag
streaming audio (2)
7-56
streaming audio (3)
• 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 en RTP (via UDP) • taken van de media player: – – – –
user interface error handling (geen TCP !) datacompressie jitter elimineren
• werkwijze: – pull server: player blijft nieuwe blokken vragen – push server: server blijft sturen zolang hij kan in2210/2220 Computernetwerken: Applicatielaag
7-57
in2210/2220 Computernetwerken: Applicatielaag
Internet Radio
7-58
Internet telefonie: H.323 H.323 is architectuur overzicht van Internet telefonie, omvat een groot aantal protocollen
Twee benaderingen: • prerecorded (file op disk) – zelfde als streaming audio
• live, – verschillen met prerecorded: • 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 in2210/2220 Computernetwerken: Applicatielaag
7-59
in2210/2220 Computernetwerken: Applicatielaag
7-10
7-60
IN2210/IN2220: Computernetwerken: Applicatielaag
Internet telefonie H.323 (2)
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 in2210/2220 Computernetwerken: Applicatielaag
7-61
Internet telefonie: SIP
in2210/2220 Computernetwerken: Applicatielaag
7-62
Belangrijkste verschillen H.323 en SIP
Session Initiation Protocol (SIP) voor opzetten, managen en afsluiten van telefoonsessies highlights: • kent: 2-party, multiparty of multicast • ondersteunt: audio, video, data • telefoonnumers in de vorm van URL’s • sessie maken d.m.v INVITE method (over TCP of UDP)
• 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
– 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 in2210/2220 Computernetwerken: Applicatielaag
7-63
in2210/2220 Computernetwerken: Applicatielaag
Video - analoog (1)
7-64
Video - analoog (2)
• 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 in2210/2220 Computernetwerken: Applicatielaag
7-65
in2210/2220 Computernetwerken: Applicatielaag
7-11
7-66
IN2210/IN2220: Computernetwerken: Applicatielaag
Digitale video
Video compressie • Compressie systeem bevat:
• pixels • per pixel ,
– compressie algoritme (voor het coderen ) – decompressie algoritme (voor het decoderen)
– b.v. 8 bits (256 grijswaarden) – b.v. 24 bits (8 bits per kleur RGB)
• assymetrie: 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)
• 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
– compressie is lossy / lossles
7-67
in2210/2220 Computernetwerken: Applicatielaag
in2210/2220 Computernetwerken: Applicatielaag
JPEG (1)
JPEG (2)
• JPEG = Joint Photographic Experts Group, • Voor het coderen van stilstaande beelden, b.v. foto’s • Verschillende modes en opties 1
2
3
4
7-68
5
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 alle waarden 128 afterkekn – mrix opdelen in blokken van 8 bij 8
6
blokschema: JPEG in lossy sequential mode
in2210/2220 Computernetwerken: Applicatielaag
7-69
in2210/2220 Computernetwerken: Applicatielaag
JPEG (3)
7-70
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
in2210/2220 Computernetwerken: Applicatielaag
7-71
in2210/2220 Computernetwerken: Applicatielaag
7-12
7-72
IN2210/IN2220: Computernetwerken: Applicatielaag
JPEG (5)
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
in2210/2220 Computernetwerken: Applicatielaag
7-73
in2210/2220 Computernetwerken: Applicatielaag
JPEG (7)
7-74
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 code
in2210/2220 Computernetwerken: Applicatielaag
7-75
in2210/2220 Computernetwerken: Applicatielaag
MPEG (1)
7-76
MPEG (2)
MPEG (Motion Picture Experts Group) • MPEG-1
Synchronizatie tussen Audio en Video Signaal
– 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
in2210/2220 Computernetwerken: Applicatielaag
7-77
in2210/2220 Computernetwerken: Applicatielaag
7-13
7-78
IN2210/IN2220: Computernetwerken: Applicatielaag
MPEG (3)
MPEG (4)
• 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-79
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
in2210/2220 Computernetwerken: Applicatielaag
Video Server
7-80
Distributie netwerk
• omvang: MPEG-2 film is plm 4GB – 65000 films is dan 260TB
• Backbone
• organisatie van opslag bepaald door prijs/prestatie van de opslagmedia • hierarchie: tape - DVD - hard disk - RAM
– belangrijkst: grote bandbreedte – jitter op te vangen door buffering bij de klanten
• locale distributie: concurrende mogelijkheden
– laag in de hierarchie is traag en goedkoop – hoog in de hierachie is snel en duur
– 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)
• typische server bestaat uit: – processoren voor: • user interface • data transmissie – opslag media – netwerk interface in2210/2220 Computernetwerken: Applicatielaag
7-81
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
in2210/2220 Computernetwerken: Applicatielaag
7-83
7-14
7-82