Transcript Datorsystem
Datorsystem Exempeltentamen 2011-10-18 Instruktioner Samtliga svar skall vara motiverade och l¨asbara. Eventuella tabeller och ber¨akningar som anv¨ands f¨or att n˚ a svaret ska ocks˚ a finnas med i l¨osningen. Ett svar m˚ aste vara l¨asligt f¨ or att kunna bed¨ omas. Ofullst¨ andigt motiverade svar kan inte ge full po¨ ang! F¨or del A kan flera fr˚ agor besvaras p˚ a samma sida, men f¨or del B ska samtliga fr˚ agor besvaras p˚ a en egen sida. Hj¨ alpmedel Inga hj¨alpmedel ¨ ar till˚ atna. R¨ attning och betygsskala Denna tentamen best˚ ar av tv˚ a delar: A och B. Del A kan maximalt ge betyget E, och man m˚ aste vara godk¨ and p˚ a del A f¨ or att kunna f˚ a ett h¨ogre betyg p˚ a del B. Del A och del B har varsin po¨angskala enligt tabellen nedan. F 0-9 Del A Fx E 10-11 12-16 E 0-5 D 6-10 Del B C B 11-15 16-20 A 21-24 Resultatet av tentamen kommer att meddelas senast 18 november 2011. Den som f˚ ar betyget Fx m˚ aste ta kontakt med kursens examinator senast 2 december 2011. Komplettering f¨or betyg Fx kommer att vara skriftlig, eller skriftlig samt muntlig, beroende p˚ a examinators bed¨omning. Lycka till! 1 Del A 1. (a) En processor best˚ ar av flera komponenter. Vilka av komponenterna nedan ing˚ ar i processorn? A. Prim¨ arminne B. ALU C. Register D. Rothubb f¨ or USB E. Systembuss F. Kontrollenhet (1 po¨ ang) (b) Beskriv de komponenter du angett ing˚ ar i processorn. (1 po¨ ang) Lo ¨sning: ALU Den aritmetiska logiska enheten (Arithmetic Logic Unit) utf¨or ber¨akningsoperationer p˚ a bin¨ art data. Ber¨akningarna ¨ar logiska eller aritmetiska operationer. Register Registren ¨ ar en processors interna minne. Kontrollenhet Kontrollenheten (Control Unit) tolkar instruktioner fr˚ an minnet och ser sedan till att dessa utf¨ors. 2. Beskriv kortfattat filosofierna bakom CISC- och RISC-arkitekturerna och skillnaderna mellan dem. (2 po¨ ang) Lo ¨sning: CISC = Complex Instruction Set Computing och RISC = Reduced Instruction Set Computing. Med en RISC-arkitektur har man f¨arre instruktioner och m˚ anga register. F¨arre instruktioner g¨ or att en kompilator b¨ attre kan f¨oruts¨aga n¨asta instruktion, vilket ger mer effektiv pipelining. I RISC f¨ ors¨ oker ocks˚ a kompilatorn optimera registeranv¨andningen och f¨ oredrar registeroperationer f¨ore minnesoperationer. Med en CISC-arkitektur finns d¨aremot fler instruktioner och f¨arre register att anv¨anda. Meningen a ¨r att mer specifika instruktioner ska ge simplare kompilatorer, och att dessa instruktioner dessutom ska mappa b¨attre mot h¨ogniv˚ aspr˚ ak. Anledningen till dessa mer specifika instruktioner ¨ ar att om man kan anv¨anda en instruktion ist¨allet f¨or en kombination av flera andra instruktioner kommer man f˚ a ett mindre och snabbare program. 3. I ett modernt datorsystem ¨ ar det vanligt att man anv¨ander flera bussar f¨or att undvika flaskhalsar. 2 (a) Vilken funktion har en buss i ett datorsystem? (1 po¨ ang) Lo aller kommunikation mellan olika enheter i ett da¨sning: En buss tillhandah˚ torsystem genom att varje enhet har tillg˚ ang till gemensamma ledningar f¨or data, kontroll och adressering. (b) Hur ¨ ar bussarna i ett modernt h¨ogprestanda-system ordnade? Vad g¨or de olika bussarna? (1 po¨ ang) L¨ osning: • Systembussen knyter samman processorn, minnet och I/O-enheter. • H¨ oghastighetsbussen knyter samman systembussen med enheter som kr¨aver snabb ¨ overf¨ oring. • Expansionsbussen knyter samman h¨oghastighetsbussen med enheter med l¨ agre krav p˚ a¨ overf¨ oringshastighet. 4. I ett datorsystem anv¨ ands flera olika typer av minnen. (a) Beskriv f¨ oljande typer av minnen: • RAM • ROM (1 po¨ ang) Lo ar f¨ or Random Access Memory och a¨r en typ av minne som kan ¨sning: RAM st˚ b˚ ade skrivas och l¨ asas. S¨ oktiden f¨or att l¨asa en minnesplats ¨ar oberoende av var p˚ a minnet informationen ¨ ar sparad. ROM st˚ ar f¨ or Read Only Memory och ¨ar en typ av minne som skrivs en g˚ ang och som sedan bara kan l¨ asas. (b) Ange en typ av lagringsmedium f¨or de tv˚ a typerna av minne ovan. (1 po¨ ang) L¨ osning: RAM Dynamic RAM (eller Static RAM) ROM Optiskt minne (DVD, CD, BluRay bland andra) 5. Assembler ¨ ar ett programmeringspr˚ ak som ligger v¨aldigt n¨ara en dators maskinstruktioner. Beskriv processen f¨ or hur en assemblersintruktion ¨overs¨atts till en maskinstruktion. (2 po¨ ang) 3 Lo overs¨atter mellan Assembler och maskininstruktioner. As¨sning: En assemblerare ¨ sembleraren utg˚ ar fr˚ an instruktionen (till exempel ADD) och ¨overs¨atter till r¨att operationskod. Utifr˚ an operationskoden kan assembleraren fylla i operandf¨alt och ¨ovriga f¨alt korrekt. En assemblerare ser ocks˚ a till att labels ¨overs¨atts till r¨att minnesadress f¨or de instruktioner som anv¨ ander labels. 6. F¨orklara kortfattat vilken funktion ett filsystemet har i ett operativsystem. (2 po¨ ang) Lo a ett lagringsme¨sning: Ett filsystem hanterar och organiserar data som lagrats p˚ dium. Med hj¨ alp av ett filsystem kan program l¨asa, skriva och uppdatera data, metadata och filr¨ attigheter. Det ¨ ar filsystemet som h˚ aller ihop data i filer och mappar. 7. I TCP/IP-modellen finns fyra lager. Ange lagrens namn i korrekt ordning, fr˚ an det h¨ogsta lagret till det l¨ agsta. (2 po¨ ang) L¨ osning: 1. Applikationslagret 2. Transportlagret 3. N¨ atverkslagret 4. L¨ anklagret 8. (a) Vilka av alternativen nedan ¨ ar giltiga IPv4-adresser? A. 192.168.0.1.1 B. 17.114.89.134 C. 24:17:9b:1a:43:e3 D. 130.237.25.114 E. 278.125.0.12 F. fdb2:2c26:f4e4::1 (1 po¨ ang) (b) Ange en motivering f¨ or de adresser du angett som ogiltiga ovan. L¨ osning: ¨ st¨ A Ar orre ¨ an 32 bitar (har fem oktetter ist¨allet f¨or fyra). C Det ¨ ar en MAC-adress. D En oktett har 8 bitar och kan d¨armed bara vara mellan 0-255. F¨orsta oktetten h¨ ar ¨ ar 278. 4 (1 po¨ ang) E Det ¨ ar en IPv6-adress. 5 Del B 1. Flyttal ¨ ar ett s¨ att att representera stora, sm˚ a och rationella tal. H¨ar anv¨ands standarden IEEE 754 f¨ or 16 bitars flyttal. Bilden nedan f¨orklarar hur ett flyttal lagras bin¨art. tecken exponent (1 bit) (5 bitar) 15 mantissa (10 bitar) 10 0 Figur 1: 16 bitars flyttal enligt IEEE 754 (a) Ber¨ akna operationen A*B. Svara med ett 16 bitars flyttal enligt IEEE 754. Flyttal A: 0 10100 1001000000 Flyttal B: 0 10110 0101000000 Formeln f¨ or att f˚ a ut det decimala v¨ardet v ur ett flyttal: v = (−1)teckenbit × 2exponent−15 × (1, mantissa)2 (2 po¨ ang) L¨ osning: Vi anv¨ ander formeln fr˚ an uppgiften f¨or att f˚ a ut de v¨arden vi beh¨over. Flyttal A: Teckenbiten ¨ ar 0, vilket ger ett positivt tal. Exponenten ¨ar 10100, vilket ger 20. Eftersom formeln ger 20-15 som den faktiska exponenten f˚ ar vi att exponenten ¨ ar 5. Enligt formeln har vi ocks˚ a mantissan 1,1001. Flyttal B: Teckenbiten ¨ ar 0, s˚ a talet ¨ar positivt. Exponenten ¨ar 10110, vilket ger 22. Ur formeln f˚ ar vi 22-15=7. Mantissan blir 1,0101 enligt formeln. F¨ or att multiplicera de tv˚ a talen anv¨ander vi formeln (2x × a) × (2y × b) = 2x+y × (a × b). Det ger i v˚ art fall 25+7 × (1, 1001 × 1, 0101). 5+7=12, och vi har d¨armed v˚ ar nya exponent. Vi multiplicerar mantissorna fr˚ an talen A och B och f˚ ar f¨oljande: 1, 1 0 0 1 * 1, 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 + 1 1 0 0 1 1 0, 0 0 0 0 1 1 0 1 Utifr˚ an den framr¨ aknade expontenten och mantissan kan vi konstruera ett nytt flyttal. Eftersom mantissan just nu ¨ar 10,00001101 beh¨over vi skifta talet s˚ a att vi 6 ist¨ allet f˚ ar 1,000001101. Eftersom vi skiftade ett steg ˚ at h¨oger m˚ aste vi ¨oka exponenten med ett och f˚ ar d¨ armed 13. F¨or att r¨akna ut de nya exponentbitarna ¨okar vi 13 med 15 och f˚ ar 28. 2810 = 111002 , vilket ger v˚ ara fem bitar f¨or exponenten. Mantissan har redan 1, enligt formeln, s˚ a i bitarna f¨or mantissan l¨agger vi in 0000011010. Eftersom talet fortfarande ¨ar positivt blir teckenbiten 0. Flyttal A * Flyttal B = 0 11100 0000011010 (b) Varf¨ or ¨ ar det enklare f¨ or en dator att r¨akna addition j¨amf¨ort med subtraktion? L¨ osning: N¨ ar en dator r¨ aknar addition med hj¨alp av en adderare finns en carry som skickar eventuella o verblivna bitar fr˚ an en position till en annan. D˚ a jobbar ¨ man hela tiden fram˚ at, ett steg ger ett v¨arde till n¨asta. Bilden nedan illustrerar konceptet. A3 B3 C4 A2 B2 A1 B1 A0 B0 1-bits 1-bits 1-bits 1-bits helhelhelheladderare C3 adderare C2 adderare C1 adderare C0 S3 S2 S1 S0 Om man ist¨ allet skulle subtrahera beh¨over man arbeta ˚ at andra h˚ allet eftersom man l˚ anar fr˚ an en position som ¨annu inte processats. Det ¨ar mycket sv˚ arare att bygga h˚ ardvara som kan l˚ ana fr˚ an en position j¨amf¨ort med att skicka ¨over en rest, och d¨ arf¨ or ¨ ar det enklare f¨ or en dator med addition j¨amf¨ort med subtraktion. (2 po¨ ang) 2. En processor har en serie steg f¨ or att utf¨ora ber¨akningar. Dessa steg sker i en cykel som kallas fetch-execute-cykeln. (a) I den sexstegspipeline som kursen beskriver ing˚ ar f¨oljande steg: Decode instrucion, fetch instruction, fetch operands, calulate operands, write operands och execute instruction. Beskriv samtliga steg samt ordna dem korrekt fr˚ an f¨orsta till sista steget. L¨ osning: 1. Fetch instruction: H¨ amtar en instruktion fr˚ an minnet. 2. Decode instruction: Tolkar instruktionen som nyss h¨amtades. 3. Calculate operands: R¨aknar ut adresser f¨or operanderna. 4. Fetch operands: H¨ amtar operanderna fr˚ an minnet. Det h¨ar steget beh¨ovs inte om operanderna ¨ ar register. 5. Execute instruction: Utf¨or den operation som instruktionen anger. 7 6. Write operand : Skriver tillbaka resultatet av operationen till minnet. (2 po¨ ang) (b) Vad ¨ ar ett avbrott (interrupt)? Varf¨or anv¨ands avbrott, och hur f¨or¨andrar interrupts fetch-execute-cykeln? Lo ¨sning: I/O- och minnesenheter kan avbryta en processors normala fetch-executecykel vid behov. Exempelvis kan en l˚ angsam enhet utf¨ora en operation medan processorn utf¨ or andra sysslor, och n¨ar den l˚ angsamma enheten ¨ar klar kan den avbryta fetch-execute-cykeln s˚ a att enhetens data kan hanteras. Avbrott g¨ or att en processors tid kan l¨aggas p˚ a andra processer ist¨allet f¨or p˚ a den process som v¨ antar p˚ a data fr˚ an en extern enhet. Utan avbrott skulle processen beh¨ ova vara aktiv och sj¨ alv kontrollera om statusen f¨or den externa enhet den f¨ ors¨ oker kommunicera med. Utan interrupts ser fetch-execute-cykeln ut s˚ a h¨ar: Start Hämta nästa instruktion Utför instruktionen Fetch-cykeln Execute-cykeln Med interrupts ser den ut s˚ a h¨ar: Avbrott inaktiverade Start Hämta nästa instruktion Utför instruktionen Fetch-cykeln Execute-cykeln Avbrott aktiverade Kolla efter avbrott Hantera avbrott Interrupt-cykeln Avbrott l¨ agger allts˚ a till ett extra steg i fetch-execute-cykeln, d¨ar det extra steget anv¨ ands f¨ or att kontrollera om n˚ agra avbrott har skett och i s˚ a fall hantera dessa. (2 po¨ ang) 3. I ett datorsystem beh¨ ovs flera typer av minne f¨or att lagra data och instruktioner. (a) Vi har f¨ oljande avsnitt ur ett assemblerprogram: 1 2 3 4 5 6 7 8 movia ldw ldw ldw stw ldw stw ldw r8 , r10 r11 r12 r13 r14 r15 r16 0 x740B00 , 0( r8 ) , 16( r8 ) , 32( r8 ) , 4( r8 ) , 128( r8 ) , 0( r8 ) , 64( r8 ) # # # # # # # 0 x740B00 0 x740B10 0 x740B20 0 x740B04 0 x740B80 0 x740B00 0 x740B40 8 Storlek: Radl¨ angd: Associativitet: 128 byte (32 ord) 32 byte (8 ord) 1-v¨ags (direktmappat) Tabell 1: Egenskaper f¨or cacheminnet Vi har ocks˚ a ett cacheminne med egenskaper enligt tabell 1. F¨or varje instruktion som l¨ aser eller skriver till minnet ska du ange om det blir en tr¨ aff eller miss i cacheminnet. (2 po¨ ang) L¨ osning: 1. Ber¨ akna antalet rader: 128/32=4 2. Ber¨ akna antalet bitar som beh¨ovs f¨or att adressera fyra rader: 2 bitar (00, 01, 10, 11) 3. Ber¨ akna antalet bitar som beh¨over f¨or att adressera 32 bytes: 5 bitar (00000 - 11111) 4. Det ger f¨ oljande: 32-2-5=25 bitar f¨or tag, 2 bitar f¨or rad och 5 bitar f¨or bytes. Vi utg˚ ar fr˚ an ett tomt cacheminne och b¨orjar med andra kodraden: ldw r10, 0(r8) # 0x740B00 0016 = 0|00|000002 , vilket ger rad 00. Eftersom cachen ¨ ar tom f˚ ar vi en cachemiss, och datat 0x740B00 till 740B1F l¨aggs in i cachen p˚ a rad 00. ldw r11, 16(r8) # 0x740B10 1016 = 0|00|100002 , vilket ger rad 00. Vi s¨oker byten p˚ a plats 100002 = 1016 . Vi ser att 1016 finns p˚ a rad 00 och f˚ ar en cachetr¨ aff. ldw r12, 32(r8) # 0x740B20 2016 = 0|01|000002 , vilket ger rad 01. Raden ¨ar tom, vilket ger en cachemiss. Vi l¨agger nu in 0x740B20 till 0x740B3F p˚ a rad 01. stw r13, 4(r8) # 0x740B04 0416 = 0|00|001002 , vilket ger rad 00. 001002 = 0416 och vi ser att byten finns p˚ a rad 00, vilket ger en cachetr¨ aff. ldw r14, 128(r8) # 0x740B80 8016 = 1|00|00000, vilket ger rad 00. D¨ar finns data f¨ or byte 00, men vi ser att taggen skiljer sig ˚ at. Det a¨r d¨armed fel data p˚ a rad 00, vi f˚ ar en cachemiss och f˚ ar byta ut datat p˚ a rad 00. P˚ a rad 00 finns numera 0x740B80 till 0x740B8F. stw r15, 0(r8) # 0x740B00 0016 = 0|00|000002 , vilket ger rad 00. Eftersom instruktionen innan tvingade oss att byta ut rad 00 ser vi att taggen inte matchar, och det ¨ ar fel data p˚ a rad 00 igen. Vi f˚ ar ¨annu en cachemiss och l¨ agger nu in datat 0x740B00 till 740B1F i rad 00. ldw r16, 64(r8) # 0x740B40 4016 = 0|10|000002 , vilket ger rad 10. Raden ar tom, vilket ger en cachemiss och vi f˚ ar l¨asa in data till raden fr˚ an ¨ prim¨ arminnet. (b) I ett datorsystem finns flera olika typer av minne, vilka ¨ar ordnade i en minneshierarki. Varf¨ or har man ordnat minnena p˚ a s˚ a9s¨att? Namnge ocks˚ a de fyra ¨oversta typerna av minnen. (2 po¨ ang) L¨ osning: Minnestyperna ¨ ar ordnade i en hierarki med det oftast anv¨anda minnet overst. Det sammanfaller ocks˚ a med snabbhet d˚ a det ¨oversta minnet ocks˚ a ¨ar ¨ snabbast. Om man ordnar minnena i den pyramid kursboken anv¨ander ser man ocks˚ a att man har mindre minne av de snabbare typerna i ett datorsystem, medan man har mer minne av de l˚ angsammare typerna. Det sammanfaller i sin tur med att l˚ angsammare minne i regel ¨ar billigare. Hierarkin visar hur en avv¨agning mellan hur mycket av de olika minnestyperna man b¨or ha i ett datorsystem. De fyra ¨ oversta typerna av minnen: 1. Register 2. Cache 3. Prim¨ arminne 4. Sekund¨ arminne 4. (a) Beskriv f¨ oljande begrepp: Context switch, schemal¨aggningsalgoritm, virtuellt minne samt multiprogrammering. (2 po¨ ang) L¨ osning: Context switch ¨ ar n¨ ar ett byte sker av k¨orande process i en CPU. Schemal¨ aggningsalgoritm ¨ar olika s¨att f¨or processorn att hantera schemal¨aggning av processer. Det finns tv˚ a prim¨ara varianter: kooperativa algoritmer och preemptiva algoritmer. Virtuellt minne ¨ ar ett s¨ att att ”lura” en process att tro att den har en hel, obryten adressrymd att jobba med. Verkligheten kan ofta skilja sig genom att en process har blivit tilldelad minne i olika delar av prim¨arminnet. Multiprogrammering a agan att v¨axelvis k¨ora ¨r n¨ar ett datorsystem har f¨orm˚ flera processer. (b) F¨orklara hur begreppen ovan h¨anger ihop. Lo ¨r vad som sker n¨ar en processor som k¨ora flera processer ¨sning: Context switch a (multiprogramming) byter mellan dessa processer. En schemal¨aggningsalgoritm anv¨ ands f¨ or att best¨ amma n¨ar context switch ska ske, och virtuellt minne ¨ar en konsekvens av att flera processer delar p˚ a samma minne. Paging ¨ar en f¨oruts¨attning f¨ or v¨ al fungerande multiprogrammering, och virtuellt minne g¨or paging enklare att hantera fr˚ an ett programs sida, eftersom programmet d˚ a inte beh¨over hantera att det tilldelade minnet eventuellt inte ligger i sekvens. 5. I figur 2 finns en skiss av ett n¨ atverk med flera subn¨at och olika n¨atverksenheter anslutna. 10 (2 po¨ ang) Switch B www.dsv.su.se Klient C Router B Router A Router D Klient D Klient A Switch A Switch D Klient B Router C DNS-server Klient E Switch C Figur 2: Ett mindre n¨atverk (a) Beskriv f¨ oljande n¨ atverksenheter: router, switch och accesspunkt (access point). (2 po¨ ang) L¨ osning: Router En router dirigerar trafik mellan olika lokala n¨atverk. Switch En switch skickar trafik mellan enheter i ett lokalt n¨atverk Accesspunk En accesspunkt hanterar tr˚ adl¨ost uppkopplade enheter och g¨or s˚ a att de tr˚ adl¨ osa enheterna kan kommunicera med ett tr˚ adbundet n¨atverk. (b) F¨orklara hur trafiken fl¨ odar n¨ar Klient A vill ansluta till webbservern www.dsv.su.se. Du kan utg˚ a fr˚ an att Klient A inte vet vilken IP-adress webbservern har. Flera alternativa v¨ agar existerar, redog¨ or f¨or samtliga av dessa v¨agar. (2 po¨ ang) L¨ osning: Klient A vill ansluta till www.dsv.su.se men har inte IP-adressen till webbservern. Klient A beh¨over d¨armed f¨orst g¨ora ett DNS-uppslag, och vi f˚ ar f¨ oljande: Klient A → Switch A → Router A → Router C → Switch C → DNSserver → Switch C → Router C → Router A → Switch A → Klient A. Fr˚ an Router A finns flera m¨ojliga v¨agar: Router A → Router B → Router C eller Router A → Router B → Router D → Router C. Naturligtvis kan ¨aven trafiken p˚ a tillbakav¨ agen ta dessa alternativa v¨agar. Nu n¨ ar Klient A vet IP-adressen f¨or webbservern kan den skicka sin f¨orfr˚ agan dit. Trafiken kommer d˚ a g˚ a p˚ a f¨oljande s¨att: Klient A → Switch A → Router A → Router B → Switch B → webbservern f¨or www.dsv.su.se → Switch B → Router B → Router A → Switch A → Klient A. 11 ¨ Aven h¨ ar kan trafiken ta alternativa v¨agar: Router A → Router C → Router B eller Router A → Router C → Router D → Router B. Bilden nedan illustrerar hur trafiken fl¨odar enligt scenariot ovan, utan de alternativa v¨ agarna inritade. www.dsv.su.se Klient C Router B Router A Klient A Router D Switch A Klient D Switch D Klient B Klient E Router C Klient A -> DNS-server Klient A -> webbserver DNS-server Switch C 6. Ponera att vi har en person med en laptop som kopplar upp sig mot internet via en tr˚ adl¨ os anslutning h¨ ar p˚ a DSV. Om personen d˚ a ansluter till sidan www.dsv.su.se ¨ar ett flertal protokoll inblandade, b˚ ade f¨ or att strukturera upp det data som skickas men ocks˚ a f¨or att ¨overf¨ora informationen. (a) I scenariot ovan kan man f¨ orv¨anta sig att bland andra f¨oljande protokoll anv¨ands f¨ or oringen av webbsidan: ¨overf¨ • WiFi (802.11) • IP • HTTP • TCP Beskriv de olika protokollen och f¨orklara deras funktion. L¨ osning: WiFi WiFi, eller 802.11, ¨ ar ett protokoll f¨or tr˚ adl¨os ¨overf¨oring inom ett lokalt n¨ atverk. Internet Protocol IP ¨ ar ett protokoll som hanterar ¨overf¨oring av data mellan tv˚ a n¨atverksenheter. HyperText Transfer Protocol HTTP ¨ ar ett protokoll f¨or att ¨overf¨ora hypermedia mellan tv˚ a n¨atverksenheter. Transmission Control Protocol TCP ¨ar ett protokoll som ¨overf¨or data mellan tv˚ a applikationer ¨ over ett n¨atverk. TCP ser ocks˚ a till att allt data ¨overf¨ors korrekt och i ordning, och ser ocks˚ a till att inte ¨oversv¨amma n¨atverket eller mottagaren. 12 (2 po¨ ang) (b) Hur h¨ anger dessa protokoll ihop, och till vilka n¨atverkslager h¨or de? Lo ¨sning: • HTTP h¨ or till applikationslagret. • TCP h¨ or till transportlagret. • IP h¨ or till n¨ atverkslagret. • WiFi h¨ or till l¨ anklagret. De h¨ anger ihop genom att varje lager tillf¨or funktionalitet. HTTP hanterar hypermedia mellan tv˚ a applikationer, och skickar sitt data till TCP. TCP ser till att data hittar till r¨ att mottagarapplikation med hj¨alp av portnummer, och ser ocks˚ a till att datat kommer ¨ over ordentligt. TCP skickar i sin tur datat till IP, som ser till att r¨ att n¨ atverksenhet f˚ ar datat med hj¨alp av IP-adresser. L¨angst ned finns WiFi, som ser till att klienten kan skicka och ta emot data ¨over en tr˚ adl¨os f¨orbindelse i ett lokalt n¨ atverk. 13 (2 po¨ ang)