LiTH, Tekniska högskolan vid Linköpings universitet (6) IDA, Institutionen för datavetenskap Juha Takkinen 009-03- Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 009 Lokal Valfri. Tillåtna hjälpmedel Du får ha dels en miniräknare, som har minnena tömda på kursrelaterad information, och dels 4 sidor linjerade A4-blad med handskrivna anteckningar inklusive figurer, med en rad text per linje och inom en marginal på,5-3 cm från alla kanter. Resultat Resultatet publiceras inom tolv arbetsdagar i LADOK. Poänggränser Du kan få maximalt 40 poäng. För att få godkänt, betyg 3, krävs minst 0 poäng totalt, med minst i datornätsdelen och minst 8 i distribuerade system-delen. För betygen 4 och 5 krävs 8 respektive 36 poäng totalt. Lärarjour Du kan när som helst ställa frågor och få förtydliganden från Juha Takkinen, juhta@ida.liu.se. Instruktioner Om du gör antaganden utöver det som står i uppgiften, skriv ner dem tydligt, men du får inte förändra uppgiften. Du kan svara på svenska eller engelska. Ha samma ordning på dina svar som på frågorna. Skriv gärna svar direkt på tentamenssidorna men då måste du även skriva ditt ID på dem innan du lämnar in dem. Idag mejl, igår morse. Lycka till!
(6) Del : Datornät. Protokoll och nätgrunder. Antag RTT är 00 ms, paketstorleken är KB och att det krävs en handskakning på x RTT innan filen kan börja sändas. a. Beräkna tiden det tar att överföra en 000 KB-fil om bandbredden är,5 Mbps och paketen kan skickas direkt efter varandra. b. Beräkna tiden det tar att överföra en 000 KB-fil om bandbredden är,5 Mbps, men sändaren måste vänta på en ACK för varje paket. c. Beräkna tiden det tar att överföra en 000 KB-fil om bandbredden är,5 Mbps och sändaren använder ett glidande fönster enligt go-back-n (eng. sliding window) som är inställt enligt länkens pipe-storlek och paket ej kan tappas bort eller komma i oordning. d. Definiera två andra fördröjningar som vanligen finns i ett paketförmedlande nät, utöver de två som har använts i beräkningarna ovan.. Applikationsprotokoll a. Beskriv de viktigaste kommandona i smtp-protokollet när ett e- postmeddelande skrivs och skickas iväg. b. Vilket transportprotokoll använder sig DNS av i huvudsak. Varför tror du det? c. Är HTTP/. ett push- eller pull-baserat protokoll? Motivera ditt svar. 3. TCP a. Beskriv vad som menas med slow start-fasen i TCP:s stockningskontrollmekanism (eng. congestion control) genom att använda MSS = 0 KB och threshold = 300 KB. b. Förklara vad som händer när två tillämpningar (den ena använder TCP och den andra UDP) som vill sända så mycket data som möjligt tävlar om åtkomsten till bandbredden. c. Vilka delar av TCP-huvudet används för att implementera flödeskontroll? 4. IP a. Antag att ett IP-paket av längden 800 byte måste fragmenteras av en router eftersom MTU:n är 300 byte. Beskriv hur routern använder IPhuvudet när den ska dela upp det ursprungliga paketet i fragment. b. Antag Alice har tagit reda på att Bob har en fil som hon vill ladda ned. Bob men inte Alice befinner sig i ett nätverk bakom en NAT-router. NATroutern har IP-adress 38.76.9.7 och Bob har IP-adress 0.0.0.. Förklara varför Alice inte kan genomföra en TCP-handskakning med Bob och hur man skulle kunna lösa problemet så att Alice kan få tag i filen.
3(6) 5. Routning a. Fyll i nedanstående tabell med hjälp av Dijkstras algoritm och beräkna den kortaste vägen från nod A till alla övriga noder i nätverket i figuren nedan. Om flera kolumner skulle ha samma värde på en rad, välj det värde som finns längst till vänster på raden. (3 p.) A B C 5 E 5 5 D F Steg N D(B), p(b) D(C), p(c) D(D), p(d) D(E, p(e) D(F), p(f) 0 A 3 4 b. Förklara vad BGP är för något och vilken roll AS-PATH-attributet har i protokollet. 6. Lokala nät a. Beskriv två typiska länklagertjänster. b. Beskriv hur CSMA/CA kan undvika kollisioner och samtidigt lösa problemet med gömda terminaler (eng. hidden terminals). c. Antag att två noder A och B i ett CSMA/CD-nät precis har upptäckt att det blev en kollision och att en jamsignal har skickats. Nod A försökte sända för tredje gången medan det var första sändningen för nod B. När börjar A och B sända ramar igen? Del : Distribuerade system 7. Distribuerade system-grunder och kommunikationsmodeller.
4(6) a. Förklara följande begrepp med max. meningar: marshaling samt idempotent. b. Figuren nedan visar stegen som en DCE RPC-klient utför för att göra ett RPC-anrop för första gången. Fyll i tabellen på nästa sida så att pilarna P P5 får rätt aktivitet A A5 och i rätt ordning Steg 5. P P P3 P5 P4 Pil (P P5) Aktivitet (A A5) Steg Steg Steg 3 Steg 4 Steg 5 A: Registrera tjänst A: Utför RPC-anrop A3: Registrera ändpunkt (eng. end-point) A4: Fråga efter ändpunkt A5: Leta fram en server. 8. Objektbaserade distribuerade system a. Beskriv hur interceptorer kan användas för att hantera uppdatering av replikerade object (eng. replicated objects) i ett objektbaserad distribuerat system. b. Är fjärrobjekt (eng. remote objects) transparenta i Java RMI? Motivera ditt svar. c. Antag att du ska utveckla en portal i Corba där man kan registrera sig på olika tentamina. Portalen, som är corbaservern, har en databas med alla kommande tentamina, sorterade på kurskod och även med information om datum, klockslag och plats. Dessa data finns i ett objekt som heter tentamen. När en student (corbaklienten) skickar en begäran via register4exam() till servern som måste han/hon ange sitt personnummer (t.ex. 98000-999) och kurskoden (t.ex. TDTS04) för den tentamen som han/hon vill skriva upp sig på. Servern svarar med en siffra (kan ej vara negativt) som anger hur många av förfrågningarna som lyckades. Om siffran är större än 0 så skickar servern även med detta antal exam-objekt.
5(6) Specificera ett gränssnitt Studentportalen.idl genom att fylla i nedanstående rader med hjälp av IDL (interface description language) för ovanstående distribuerade system, som alltså ska hantera tentamensanmälningar i en studentportal. Använd den datatyp som mest överensstämmer med kraven ovan och använd parameternamn som tydligt anger vad du menar. module StudentportalenApp { interface Studentportalen { register4exam(,, ); }; }; 9. Webbaserade distribuerade system a. Redogör för begreppet webbtjänster (eng. web services) och dess tre huvuddelar (protokoll). b. Är Akamais CDN-nät (eng. content distribution network) en vertikalt eller horisontellt distribuerad arkitektur? Motivera ditt svar. c. Förklara varför en persistent http-uppkoppling generellt ger bättre prestanda än en icke-persistent. 0. Koordinationsbaserade distribuerade system a. Antag ett koordinationsbaserat distribuerat system av typen Jini/
6(6) Javaspaces. Redogör för stegen som nod A i figuren nedan utför när denna ska göra WRITE på en tupel A. Redogör sedan för stegen som nod B utför när denna ska gör READ på tupel B. Redogör, slutligen för stegen som nod C utför när den gör TAKE på tupel C. (3 p.) A B C A B C en JavaSpace b. Antag ett system baserat på TIB/Rendezvous med ett broadcastnät och replikerad JavaSpace på alla noder i systemet. Beskriv hur en WRITE kan utföras.