Datorsystem. Exempeltentamen 2011-10-18



Relevanta dokument
Datorsystem. Tentamen

Datorsystem. Tentamen

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Datorsystem. Tentamen

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Grundläggande datavetenskap, 4p

Datorsystem. Tentamen

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Tentamen den 18 mars svar Datorteknik, EIT070

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

HF0010. Introduktionskurs i datateknik 1,5 hp

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Närliggande allokering Datorteknik

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Digitala System: Datorteknik ERIK LARSSON

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

Datorteknik ERIK LARSSON

IT för personligt arbete F5

Datorarkitekturer med operativsystem ERIK LARSSON

Det finns en hemsida. Adressen är

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Minnet från processorns sida Datorteknik

Föreläsning 1: Intro till kursen och programmering

Datorarkitekturer med operativsystem ERIK LARSSON

CE_O5. Cacheminne. Hemlaboration 2.

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Digitala System: Datorteknik ERIK LARSSON

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Digitala System: Datorteknik ERIK LARSSON

MESI i Intel Core 2 Duo

Digitalteknik och Datorarkitektur

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Tentamen PC-teknik 5 p

Föreläsning 1: Intro till kursen och programmering

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Datorarkitekturer med Operativsystem

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Mer datorarkitektur. En titt I datorn Minnen

Exempeltentamen Datorteknik, EIT070,

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

DA HT2011: F18. Länklagret och uppkopplingstekniker Ann-Sofi Åhn

Tentamen PC-teknik 5 p Lösningar och kommentarer

Jämförelse av skrivtekniker till cacheminne

Tentamen den 17 mars 2016 Datorteknik, EIT070

Pipelining i Intel 80486

IE1205 Digital Design: F6 : Digital aritmetik 2

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Datorsystemteknik för E/D

Datorsystemteknik DAV A14 Föreläsning 1

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen i Datorkommunikation den 10 mars 2014

Föreläsningsanteckningar 5. Cacheminnen

Pipelining i Intel Pentium II

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Datorarkitekturer med operativsystem ERIK LARSSON

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

Hantering av hazards i pipelines

Digital- och datorteknik

Tentamen i datakommunikation EDA343/DIT420 Vt 2011

Datorarkitekturer med operativsystem ERIK LARSSON

Lastbalansering för webbservrar

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Datorsystemteknik DVGA03 Föreläsning 8

Omtentamen i Datakommunikation för E2

Datorsystemteknik DVG A03 Föreläsning 3

Digital Aritmetik Unsigned Integers Signed Integers"

5 Internet, TCP/IP och Tillämpningar

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Föreläsning 2. Operativsystem och programmering

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digital- och datorteknik

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Parallellism i CDC 7600, pipelinens ursprung

Datorsystemteknik DAV A14 Föreläsning 1

Datorteknik ERIK LARSSON

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Transkript:

Datorsystem Exempeltentamen 2011-10-18 Instruktioner Samtliga svar skall vara motiverade och läsbara. Eventuella tabeller och beräkningar som används för att nå svaret ska också finnas med i lösningen. Ett svar måste vara läsligt för att kunna bedömas. Ofullständigt motiverade svar kan inte ge full poäng! För del A kan flera frågor besvaras på samma sida, men för del B ska samtliga frågor besvaras på en egen sida. Hjälpmedel Inga hjälpmedel är tillåtna. Rättning och betygsskala Denna tentamen består av två delar: A och B. Del A kan maximalt ge betyget E, och man måste vara godkänd på del A för att kunna få ett högre betyg på del B. Del A och del B har varsin poängskala enligt tabellen nedan. Del A Del B F Fx E E D C B A 0-9 10-11 12-16 0-5 6-10 11-15 16-20 21-24 Resultatet av tentamen kommer att meddelas senast 18 november 2011. Den som får betyget Fx måste ta kontakt med kursens examinator senast 2 december 2011. Komplettering för betyg Fx kommer att vara skriftlig, eller skriftlig samt muntlig, beroende på examinators bedömning. Lycka till! 1

Del A 1. (a) En processor består av flera komponenter. Vilka av komponenterna nedan ingår i processorn? A. Primärminne B. ALU C. Register D. Rothubb för USB E. Systembuss F. Kontrollenhet (1 poäng) (b) Beskriv de komponenter du angett ingår i processorn. (1 poäng) ALU Den aritmetiska logiska enheten (Arithmetic Logic Unit) utför beräkningsoperationer på binärt data. Beräkningarna är logiska eller aritmetiska operationer. Register Registren är en processors interna minne. Kontrollenhet Kontrollenheten (Control Unit) tolkar instruktioner från minnet och ser sedan till att dessa utförs. 2. Beskriv kortfattat filosofierna bakom CISC- och RISC-arkitekturerna och skillnaderna mellan dem. CISC = Complex Instruction Set Computing och RISC = Reduced Instruction Set Computing. Med en RISC-arkitektur har man färre instruktioner och många register. Färre instruktioner gör att en kompilator bättre kan förutsäga nästa instruktion, vilket ger mer effektiv pipelining. I RISC försöker också kompilatorn optimera registeranvändningen och föredrar registeroperationer före minnesoperationer. Med en CISC-arkitektur finns däremot fler instruktioner och färre register att använda. Meningen är att mer specifika instruktioner ska ge simplare kompilatorer, och att dessa instruktioner dessutom ska mappa bättre mot högnivåspråk. Anledningen till dessa mer specifika instruktioner är att om man kan använda en instruktion istället för en kombination av flera andra instruktioner kommer man få ett mindre och snabbare program. 3. I ett modernt datorsystem är det vanligt att man använder flera bussar för att undvika flaskhalsar. 2

(a) Vilken funktion har en buss i ett datorsystem? (1 poäng) En buss tillhandahåller kommunikation mellan olika enheter i ett datorsystem genom att varje enhet har tillgång till gemensamma ledningar för data, kontroll och adressering. (b) Hur är bussarna i ett modernt högprestanda-system ordnade? Vad gör de olika bussarna? (1 poäng) Systembussen knyter samman processorn, minnet och I/O-enheter. Höghastighetsbussen knyter samman systembussen med enheter som kräver snabb överföring. Expansionsbussen knyter samman höghastighetsbussen med enheter med lägre krav på överföringshastighet. 4. I ett datorsystem används flera olika typer av minnen. (a) Beskriv följande typer av minnen: RAM ROM (1 poäng) RAM står för Random Access Memory och är en typ av minne som kan både skrivas och läsas. Söktiden för att läsa en minnesplats är oberoende av var på minnet informationen är sparad. ROM står för Read Only Memory och är en typ av minne som skrivs en gång och som sedan bara kan läsas. (b) Ange en typ av lagringsmedium för de två typerna av minne ovan. (1 poäng) RAM Dynamic RAM (eller Static RAM) ROM Optiskt minne (DVD, CD, BluRay bland andra) 5. Assembler är ett programmeringspråk som ligger väldigt nära en dators maskinstruktioner. Beskriv processen för hur en assemblersintruktion översätts till en maskinstruktion. 3

En assemblerare översätter mellan Assembler och maskininstruktioner. Assembleraren utgår från instruktionen (till exempel ADD) och översätter till rätt operationskod. Utifrån operationskoden kan assembleraren fylla i operandfält och övriga fält korrekt. En assemblerare ser också till att labels översätts till rätt minnesadress för de instruktioner som använder labels. 6. Förklara kortfattat vilken funktion ett filsystemet har i ett operativsystem. Ett filsystem hanterar och organiserar data som lagrats på ett lagringsmedium. Med hjälp av ett filsystem kan program läsa, skriva och uppdatera data, metadata och filrättigheter. Det är filsystemet som håller ihop data i filer och mappar. 7. I TCP/IP-modellen finns fyra lager. Ange lagrens namn i korrekt ordning, från det högsta lagret till det lägsta. 1. Applikationslagret 2. Transportlagret 3. Nätverkslagret 4. Länklagret 8. (a) Vilka av alternativen nedan är 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äng) (b) Ange en motivering för de adresser du angett som ogiltiga ovan. (1 poäng) A Är större än 32 bitar (har fem oktetter istället för fyra). C Det är en MAC-adress. D En oktett har 8 bitar och kan därmed bara vara mellan 0-255. Första oktetten här är 278. 4

E Det är en IPv6-adress. 5

Del B 1. Flyttal är ett sätt att representera stora, små och rationella tal. Här används standarden IEEE 754 för 16 bitars flyttal. Bilden nedan förklarar hur ett flyttal lagras binärt. tecken (1 bit) exponent (5 bitar) mantissa (10 bitar) 15 10 0 Figur 1: 16 bitars flyttal enligt IEEE 754 (a) Beräkna operationen A*B. Svara med ett 16 bitars flyttal enligt IEEE 754. Flyttal A: 0 10100 1001000000 Flyttal B: 0 10110 0101000000 Formeln för att få ut det decimala värdet v ur ett flyttal: v = ( 1) teckenbit 2 exponent 15 (1, mantissa) 2 Vi använder formeln från uppgiften för att få ut de värden vi behöver. Flyttal A: Teckenbiten är 0, vilket ger ett positivt tal. Exponenten är 10100, vilket ger 20. Eftersom formeln ger 20-15 som den faktiska exponenten får vi att exponenten är 5. Enligt formeln har vi också mantissan 1,1001. Flyttal B: Teckenbiten är 0, så talet är positivt. Exponenten är 10110, vilket ger 22. Ur formeln får vi 22-15=7. Mantissan blir 1,0101 enligt formeln. För att multiplicera de två talen använder vi formeln (2 x a) (2 y b) = 2 x+y (a b). Det ger i vårt fall 2 5+7 (1, 1001 1, 0101). 5+7=12, och vi har därmed vår nya exponent. Vi multiplicerar mantissorna från talen A och B och får följande: 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ån den framräknade expontenten och mantissan kan vi konstruera ett nytt flyttal. Eftersom mantissan just nu är 10,00001101 behöver vi skifta talet så att vi 6

istället får 1,000001101. Eftersom vi skiftade ett steg åt höger måste vi öka exponenten med ett och får därmed 13. För att räkna ut de nya exponentbitarna ökar vi 13 med 15 och får 28. 28 10 = 11100 2, vilket ger våra fem bitar för exponenten. Mantissan har redan 1, enligt formeln, så i bitarna för mantissan lägger vi in 0000011010. Eftersom talet fortfarande är positivt blir teckenbiten 0. Flyttal A * Flyttal B = 0 11100 0000011010 (b) Varför är det enklare för en dator att räkna addition jämfört med subtraktion? När en dator räknar addition med hjälp av en adderare finns en carry som skickar eventuella överblivna bitar från en position till en annan. Då jobbar man hela tiden framåt, ett steg ger ett värde till nästa. Bilden nedan illustrerar konceptet. A3 B3 A2 B2 A1 B1 A0 B0 C4 1-bits heladderare 1-bits heladderare 1-bits heladderare 1-bits heladderare C3 C2 C1 C0 S3 S2 S1 S0 Om man istället skulle subtrahera behöver man arbeta åt andra hållet eftersom man lånar från en position som ännu inte processats. Det är mycket svårare att bygga hårdvara som kan låna från en position jämfört med att skicka över en rest, och därför är det enklare för en dator med addition jämfört med subtraktion. 2. En processor har en serie steg för att utföra beräkningar. Dessa steg sker i en cykel som kallas fetch-execute-cykeln. (a) I den sexstegspipeline som kursen beskriver ingår följande steg: Decode instrucion, fetch instruction, fetch operands, calulate operands, write operands och execute instruction. Beskriv samtliga steg samt ordna dem korrekt från första till sista steget. 1. Fetch instruction: Hämtar en instruktion från minnet. 2. Decode instruction: Tolkar instruktionen som nyss hämtades. 3. Calculate operands: Räknar ut adresser för operanderna. 4. Fetch operands: Hämtar operanderna från minnet. Det här steget behövs inte om operanderna är register. 5. Execute instruction: Utför den operation som instruktionen anger. 7

6. Write operand: Skriver tillbaka resultatet av operationen till minnet. (b) Vad är ett avbrott (interrupt)? Varför används avbrott, och hur förändrar interrupts fetch-execute-cykeln? I/O- och minnesenheter kan avbryta en processors normala fetch-executecykel vid behov. Exempelvis kan en långsam enhet utföra en operation medan processorn utför andra sysslor, och när den långsamma enheten är klar kan den avbryta fetch-execute-cykeln så att enhetens data kan hanteras. Avbrott gör att en processors tid kan läggas på andra processer istället för på den process som väntar på data från en extern enhet. Utan avbrott skulle processen behöva vara aktiv och själv kontrollera om statusen för den externa enhet den försöker kommunicera med. Utan interrupts ser fetch-execute-cykeln ut så här: Start Med interrupts ser den ut så här: Hämta nästa instruktion Fetch-cykeln Utför instruktionen Execute-cykeln Avbrott inaktiverade Start Hämta nästa instruktion Utför instruktionen Avbrott aktiverade Kolla efter avbrott Hantera avbrott Fetch-cykeln Execute-cykeln Interrupt-cykeln Avbrott lägger alltså till ett extra steg i fetch-execute-cykeln, där det extra steget används för att kontrollera om några avbrott har skett och i så fall hantera dessa. 3. I ett datorsystem behövs flera typer av minne för att lagra data och instruktioner. (a) Vi har följande avsnitt ur ett assemblerprogram: 1 movia r8, 0 x740b00 2 ldw r10, 0( r8 ) # 0x740B00 3 ldw r11, 16( r8 ) # 0x740B10 4 ldw r12, 32( r8 ) # 0x740B20 5 stw r13, 4( r8 ) # 0x740B04 6 ldw r14, 128( r8 ) # 0x740B80 7 stw r15, 0( r8 ) # 0x740B00 8 ldw r16, 64( r8 ) # 0x740B40 8

Storlek: Radlängd: Associativitet: 128 byte (32 ord) 32 byte (8 ord) 1-vägs (direktmappat) Tabell 1: Egenskaper för cacheminnet Vi har också ett cacheminne med egenskaper enligt tabell 1. För varje instruktion som läser eller skriver till minnet ska du ange om det blir en träff eller miss i cacheminnet. 1. Beräkna antalet rader: 128/32=4 2. Beräkna antalet bitar som behövs för att adressera fyra rader: 2 bitar (00, 01, 10, 11) 3. Beräkna antalet bitar som behöver för att adressera 32 bytes: 5 bitar (00000-11111) 4. Det ger följande: 32-2-5=25 bitar för tag, 2 bitar för rad och 5 bitar för bytes. Vi utgår från ett tomt cacheminne och börjar med andra kodraden: ldw r10, 0(r8) # 0x740B00 00 16 = 0 00 00000 2, vilket ger rad 00. Eftersom cachen är tom får vi en cachemiss, och datat 0x740B00 till 740B1F läggs in i cachen på rad 00. ldw r11, 16(r8) # 0x740B10 10 16 = 0 00 10000 2, vilket ger rad 00. Vi söker byten på plats 10000 2 = 10 16. Vi ser att 10 16 finns på rad 00 och får en cacheträff. ldw r12, 32(r8) # 0x740B20 20 16 = 0 01 00000 2, vilket ger rad 01. Raden är tom, vilket ger en cachemiss. Vi lägger nu in 0x740B20 till 0x740B3F på rad 01. stw r13, 4(r8) # 0x740B04 04 16 = 0 00 00100 2, vilket ger rad 00. 00100 2 = 04 16 och vi ser att byten finns på rad 00, vilket ger en cacheträff. ldw r14, 128(r8) # 0x740B80 80 16 = 1 00 00000, vilket ger rad 00. Där finns data för byte 00, men vi ser att taggen skiljer sig åt. Det är därmed fel data på rad 00, vi får en cachemiss och får byta ut datat på rad 00. På rad 00 finns numera 0x740B80 till 0x740B8F. stw r15, 0(r8) # 0x740B00 00 16 = 0 00 00000 2, vilket ger rad 00. Eftersom instruktionen innan tvingade oss att byta ut rad 00 ser vi att taggen inte matchar, och det är fel data på rad 00 igen. Vi får ännu en cachemiss och lägger nu in datat 0x740B00 till 740B1F i rad 00. ldw r16, 64(r8) # 0x740B40 40 16 = 0 10 00000 2, vilket ger rad 10. Raden är tom, vilket ger en cachemiss och vi får läsa in data till raden från primärminnet. (b) I ett datorsystem finns flera olika typer av minne, vilka är ordnade i en minneshierarki. Varför har man ordnat minnena på så9sätt? Namnge också de fyra översta typerna av minnen.

Minnestyperna är ordnade i en hierarki med det oftast använda minnet överst. Det sammanfaller också med snabbhet då det översta minnet också är snabbast. Om man ordnar minnena i den pyramid kursboken använder ser man också att man har mindre minne av de snabbare typerna i ett datorsystem, medan man har mer minne av de långsammare typerna. Det sammanfaller i sin tur med att långsammare minne i regel är billigare. Hierarkin visar hur en avvägning mellan hur mycket av de olika minnestyperna man bör ha i ett datorsystem. De fyra översta typerna av minnen: 1. Register 2. Cache 3. Primärminne 4. Sekundärminne 4. (a) Beskriv följande begrepp: Context switch, schemaläggningsalgoritm, virtuellt minne samt multiprogrammering. Context switch är när ett byte sker av körande process i en CPU. Schemaläggningsalgoritm är olika sätt för processorn att hantera schemaläggning av processer. Det finns två primära varianter: kooperativa algoritmer och preemptiva algoritmer. Virtuellt minne är ett sätt 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ärminnet. Multiprogrammering är när ett datorsystem har förmågan att växelvis köra flera processer. (b) Förklara hur begreppen ovan hänger ihop. Context switch är vad som sker när en processor som köra flera processer (multiprogramming) byter mellan dessa processer. En schemaläggningsalgoritm används för att bestämma när context switch ska ske, och virtuellt minne är en konsekvens av att flera processer delar på samma minne. Paging är en förutsättning för väl fungerande multiprogrammering, och virtuellt minne gör paging enklare att hantera från ett programs sida, eftersom programmet då inte behöver hantera att det tilldelade minnet eventuellt inte ligger i sekvens. 5. I figur 2 finns en skiss av ett nätverk med flera subnät och olika nätverksenheter anslutna. 10

Switch B www.dsv.su.se Klient C Router B Klient A Router A Router D Klient D Switch A Switch D Klient B Router C Klient E DNS-server Switch C Figur 2: Ett mindre nätverk (a) Beskriv följande nätverksenheter: router, switch och accesspunkt (access point). Router En router dirigerar trafik mellan olika lokala nätverk. Switch En switch skickar trafik mellan enheter i ett lokalt nätverk Accesspunk En accesspunkt hanterar trådlöst uppkopplade enheter och gör så att de trådlösa enheterna kan kommunicera med ett trådbundet nätverk. (b) Förklara hur trafiken flödar när Klient A vill ansluta till webbservern www.dsv.su.se. Du kan utgå från att Klient A inte vet vilken IP-adress webbservern har. Flera alternativa vägar existerar, redogör för samtliga av dessa vägar. Klient A vill ansluta till www.dsv.su.se men har inte IP-adressen till webbservern. Klient A behöver därmed först göra ett DNS-uppslag, och vi får följande: Klient A Switch A Router A Router C Switch C DNSserver Switch C Router C Router A Switch A Klient A. Från Router A finns flera möjliga vägar: Router A Router B Router C eller Router A Router B Router D Router C. Naturligtvis kan även trafiken på tillbakavägen ta dessa alternativa vägar. Nu när Klient A vet IP-adressen för webbservern kan den skicka sin förfrågan dit. Trafiken kommer då gå på följande sätt: Klient A Switch A Router A Router B Switch B webbservern för www.dsv.su.se Switch B Router B Router A Switch A Klient A. 11 Även här kan trafiken ta alternativa vägar: Router A Router C Router B eller Router A Router C Router D Router B. Bilden nedan illustrerar hur trafiken flödar enligt scenariot ovan, utan de alternativa vägarna inritade.

www.dsv.su.se Klient C Router B Klient A Router A Router D Klient D Switch A Switch D Klient B Router C Klient E 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ådlös anslutning här på DSV. Om personen då ansluter till sidan www.dsv.su.se är ett flertal protokoll inblandade, både för att strukturera upp det data som skickas men också för att överföra informationen. (a) I scenariot ovan kan man förvänta sig att bland andra följande protokoll används för överföringen av webbsidan: WiFi (802.11) IP HTTP TCP Beskriv de olika protokollen och förklara deras funktion. WiFi WiFi, eller 802.11, är ett protokoll för trådlös överföring inom ett lokalt nätverk. Internet Protocol IP är ett protokoll som hanterar överföring av data mellan två nätverksenheter. HyperText Transfer Protocol HTTP är ett protokoll för att överföra hypermedia mellan två nätverksenheter. Transmission Control Protocol TCP är ett protokoll som överför data mellan två applikationer över ett nätverk. TCP ser också till att allt data överförs korrekt och i ordning, och ser också till att inte översvämma nätverket eller mottagaren. 12

(b) Hur hänger dessa protokoll ihop, och till vilka nätverkslager hör de? HTTP hör till applikationslagret. TCP hör till transportlagret. IP hör till nätverkslagret. WiFi hör till länklagret. De hänger ihop genom att varje lager tillför funktionalitet. HTTP hanterar hypermedia mellan två applikationer, och skickar sitt data till TCP. TCP ser till att data hittar till rätt mottagarapplikation med hjälp av portnummer, och ser också till att datat kommer över ordentligt. TCP skickar i sin tur datat till IP, som ser till att rätt nätverksenhet får datat med hjälp av IP-adresser. Längst ned finns WiFi, som ser till att klienten kan skicka och ta emot data över en trådlös förbindelse i ett lokalt nätverk. 13