Exempel på klientsidan WWW Javascript-interpretator XML-interpretator HTML-interpretator Java-interpretator CSS-interpretator Använder TCP Kan återanvända uppkoppling Inga tillstånd hos servern OS API Applikationsnivå 1 Applikationsnivå 2 Överföring av en html-fil Två filer att överföra (html + jpg) http://www.ida.liu.se/test.htm 1. -klienten initierar en TCP-koppling till www.ida.liu.se (port 80). 2. Klienten skickar en begäran med /test.htm till en port hos servern. 3. Servern hämtar objektet (html-filen) och paketerar det i ett svarsmeddelande. 4. Servern meddelar TCP att kopplingen kan brytas 5. Klienten tar emot meddelandet, TCP-kopplingen bryts. Webläsaren ser att det finns en <img> och startar om steg 2 (flera parallella om det finns mer att hämta). Applikationsnivå 3 Snyggare variant Behåll uppkopplingen mellan objekt inom en fil. Behåll uppkopplingen till en viss klient under en viss tid. Flera begäran kan skickas innan första svaret anlänt (efter uppkopplingen dock), dvs. pipelining. Applikationsnivå 4 Meddelandeformat för begäran Verkligt format GET /test.htm /1.1 Host: www.ida.liu.se Connection: close User-agent: Mozilla/4.0 Accept-Language: sv Behåll inte kopplingen metod sp URL sp version cr lf fältnamn sp värde cr lf (flera) cr lf namn-värde par för POST-metoden Metod = GET, POST, HEAD, PUT, DELETE c:a 20 olika Förhandla med servern Applikationsnivå 5 Applikationsnivå 6 1
Format för svar Statusrad /1.1 200 OK Header Connection: close 404 Not Found Date: Sun, 12 Dec 2004 22:12:00 GMT Server: Apache/1.3.0 (UNIX) Last-Modified: Mon, 22 Jun 2004 08:30:12 GMT Content-Length: 1024 Content-Type: text/html Mellanlagring av websidor Använder Last-Modified & If-modified-since <html><head><title> Applikationsnivå 7 Applikationsnivå 8 Sessioner FTP (File Transfer Protocol) Identifiera användare Identifiering mha namn/lösenord 401 Authorisation WWW-Authenticate del i kommande meddelande Coies Set-coie i svarsmeddelande Coie i alla frågor Hidden-fält FTP klient TCP för kontroll TCP för filer En per fil USER, PASS, LIST, RETR, STOR FTP server Tillstånd på servern Applikationsnivå 9 Applikationsnivå 10 Mailprotollen Arkitektur Skicka SMTP (Simple Mail Transfer Protocol) ASCII-text skickas Hämta POP3 (Post Office Protocol) IMAP (Internet Mail Access Protocol) A POP3 / IMAP SMTP mail server SMTP mail server POP3 / IMAP B Applikationsnivå 11 Applikationsnivå 12 2
Skicka mail Klient HELO Hej på dig MAIL FROM: <kalle@aa.se> RCPT TO: <olle@bb.se> DATA Mail-meddelandet Server Applikationsnivå 13 Format Received: SMTP-server, väg, tid From: kalle@aa.se To: olle@bb.se Subject: En bild MIME-version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg. Applikationsnivå 14 Åtkomst av mail POP3 Identifiering Hämta mail Markera mail som ska tas bort IMAP Mer funktionalitet t.ex. mappar Domain Name System (DNS) Namnöversättning URL IP-adress www.aaa.tv - 121.12.101.22 URL URL (server-alias) Mail-adress URL (mail-alias) URL {IP-adresser} Distribuerad, redundant, lalt administrerad databas + protoll Applikationsnivå 15 Applikationsnivå 16 Namngivningstjänster Hierarkier av namntjänster Lal Applikationernas utgångspunkt Rot Stockholm Auktoritet Lal (ida) Jag Rot server1 server2 server3 nasa.gov.gov Applikationsnivå 17 Applikationsnivå 18 3
DNS-meddelanden 12-bytes header Identifikation, diverse flaggor (t.ex. krav på rekursion, stöd för rekursion) Antal frågor/svar Svar (beror på vilken typ av översättning det handlar om) inklusive en tidsgräns för cache Replikering På klientsidan T.ex. lal filcache med websidor Webcache (som DNS) CDN (Content Distribution Networks) P2P-delning Applikationsnivå 19 Applikationsnivå 20 Webcache Prata med en lal cache Kanske den pratar med backbone-cache (eller någonting mitt emellan) Cachea aggressivt på vägen (med tidsbegränsning) ICP, protoll för webcache utbyte och sökning CDN För stora leverantörer av information (CNN, Microsoft, Yahoo, Nasa) Kopiera ut information till en samling servrar Uppdatera automatiskt vid förändring Ändra URL till distrubutionscenter (DNS) Låt DNS-servern beräkna en bra IPadress Applikationsnivå 21 Applikationsnivå 22 P2P (fildelning) Exempel MP3-filer Modem = ingen fast IP-adress Visar lista med tänkbara leverantörer Bandbredd, förväntad leveranstid Maskiner kan stängas av Fildelning via (maskin = webserver) Hitta leverantörer 1 Central server Klientprogramvaran meddelar sin IP-adress samt filer som ska delas Servern kontrollerar då och då om klienten lever Enkel, ej skalbar lösning (problem med copyright) Applikationsnivå 23 Applikationsnivå 24 4
Hitta leverantörer 2 Decentraliserad databas En (vanlig) maskin ansvara för en samling grannar En granne fungerar som initieringsnod (hitta gruppledaren), eventuellt blir den som frågar gruppledare Hitta leverantörer 3 Inga gruppledare Komplext protoll Frågor skickas till alla man känner som i sin tur (med en maximal nivå) Applikationsnivå 25 Applikationsnivå 26 5