TDTS04 Datornät och distribuerade system, 15 mars 2010 Svar sammanställda av Juha Takkinen, IDA, juhta@ida.liu.se. Fråga 1. a) i) Location transparency ii) Relocation transparency i - ii - iii - iv - v - B E D C A c) Vertikal distribution är ett annat ord för multi-tiered arktiektur, t.ex. ett klient-serversystem där resurser är fördelade olika mycket hos klient, server eller i ett extra lager dem emellan. Fråga 2. a) [Den här uppgiften ströks vid rättningen och tentaresultatet justerades därefter] Generellt gäller att antingen a-->b, b-->a (a och b är ordnade) eller a b (a och b är samtidiga) i Lamports logiska klockor. Definition: Två händelser är samtidiga i Lamports logiska klockor om varken a-->b eller b-->a gäller för händelserna. För att lägga in ett meddelande som är samtidigt enligt ovanstående definition med de redan givna meddelandena i figuren så får P1 inte vara inblandad, annars blir alla meddelandena ordnade och är ej samtidiga eftersom P1 inleder ordningen av alla meddelandne i exemplet, som är m1, m2, m3 som följs av m4. Återstår meddelanden som skickas eller tas emot före tiden 16 i P2. Då är två pilar möjliga: antingen P2(tid 0)-->P3(tid 10) eller P3(tid 0)-->P2(tid 8). Exempel: om m5 = P3(tid 0)-->P2(tid 8) så går det inte att säga något om ordningen mellan P3(tid 0) och m1 vid P1(tid 6) eftersom det inte finns ett meddelande som skickas mellan dessa processer. Observera att med m5 = P3(tid 0)-->P2(tid 16) ej är tillåtet i uppgiften eftersom tidsintervallerna enligt Lamportklockan redan är givna (det skulle behövas en 17 i P2 för att tillåta meddelandet och då är det inte längre samtidigt med m1). Det är nämligen så att Lamports logiska klocka separarerar meddelandena lokalt i en process baserat på process-id:t. Med andra ord, om det inte går att avgöra om m1 kommer före m5 i P2 baserat på ankomsttid så kommer P2 att separera dem baserat på process-id:t; då kommer m1 före m5 eftersom P1 har lägre ID än P3. Innan den bärbara datorn loggar ut ur det distribuerade systemet så måste den se till att dess kopia (eng. replicate) av datan blir primär (eng. primary). Då kan datorns användare logga ut och uppdatera och ändra i datan i urkopplat läge. Nästa gång användaren ansluter sig till systemet så utförs en uppdatering av alla övriga kopior enligt write-pilarna i figuren i uppgiften. 29 March 2010 1
c) Replikering ökar prestandan och tillförlitligheten; kopior kan läggas närmare användaren och därmed minska svarstiderna och om en kopia skulle fallera så kan en annan kopia anävndas istället. Fråga 3. a) Marshalling = att formatera parametrar för överföring i nätet. I Corba utförs detta i proxyn för anrop av fjärrobjekt och i stubben för data som ska till fjärrklienten. Interceptorn kan implementeras precis före stubben på sändarsidan. Då hanterar den replikerade klienter och gör så att de replikerade anropen endast blir ett anrop, som skickas till fjärrobjektet. c) Två alternativ: Alternativ 1 (det korrekta och enligt angivna krav): interface Matrecept { boolean sokrecept( in string array sokord, in boolean vegetariskt, out string receptnamn, out string array ingredienser, out string anvisningar, out boolean arvegetariskt); Alternativ 2 (det acceptabla): module MatreceptApp { struct recept{ string receptnamn; string array ingredienser; string anvisningar; boolean arvegetariskt; interface Matrecept { sokrecept( in string array sokord, in boolean vegetarisk, out struct recept), Fråga 4. 29 March 2010 2
a) Insticksprogram exekveras i webbläsaren hos klienten och implementerar dynamiska utökningar av webbläsarens funktionalitet. Cgi-program anropas i servern och bildar ett extra lager med funktionalitet som servern delegerar sina anrop till. I steg 4 lokaliseras adresserna till de servrar som lagrar objekt som ligger närmast Originservern och som utgör delar av webbsidan som ska visas. På detta sätt kan Akamai erbjuda bl.a. annonsering som är anpassad till var klienten befinner sig samt kortare svarstider för krävande multimedia eftersom servern med objektet befinner sig närmare klienten. c) SOAP är ett standardiserat xml-baserat protokoll för kommunikation mellan klient och server i ett webbtjänstbaserat system. Eftersom anropen är request-response-baserade och synkrona så används HTTP-protokollet som transport av SOAP-meddelandena. Fråga 5. a) Svar: 10,04 s (se figur nedan) syn trevägshandskakning = = 20 ms syn+ack ack+data bas-html objekt 1-fråga objekt 1 = = 0,01 + 5 s 5 s, skicka objekt 1 (500 x 8 x 1000) / (800 x 1000) objekt 2-fråga objekt 2 = = 0,01 + 5 s 5 s, skicka objekt 2 HELO liu.se (starta session och tala om min egen domän) MAIL FROM: (ange avsändaradress) RCPT TO: (ange mottagaradress) 250 Ok (kommandot accepterades av servern) DATA (starta brevkropp) Mime-version: 1.0 (förvarna att brevkropp är mimekodad; att det bl.a. kommer content-type-fält). (sänd e-brevet) QUIT (avsluta smtp-session) 29 March 2010 3
Fråga 6. a) UDP använder precis som TCP portnummer för att demultiplexa meddelanden och lokalisera rätt process på mottagarsidans dator. i) 110-90 = 20 byte ii) ACK:en har sekvensnummer 90. c) Tre dubbla kopior av en ACK gör att sändarens stockningskontrollfönster kommer att halveras och tröskelvärdet sätts till detta värde. Efteråt kommer sändaren att öka fönstret en MSS per RTT. Funktionen finns för att tidigare observera när nätet börjar bli överbelastat jämfört med om man väntar tills det blir timeout; när man boserverar tredubbla ACK-kopior så kan nätet fortfarande klara av att transportera paketen men det tar längre tid. Alltså fortsätter man att skicka paket men man saktar ned hastigheten något men däremot inte ända ned till 1 MSS som i slowstart. Fråga 7. a) i) Avsändare: A:s mac-adress och ingen ip-adress (noll). Mottagare: broadcast mac-adress (alla ettor) och broadcast ip-adress (alla ettor) ii) Avsändare: Router 1:s mac-adress och ip-adress Mottagare: A:s mac-adress och A:s ip-adress iii) De två routrarna i figuren behöver dynamiska tabeller för enkel administration av nätets kommunikation (de kan då kommunicera ändringar via ett routningsprotokoll, utan ingrepp av systemadministratör som vid statisk konfigurering). De två klienterna behöver statiska tabeller för konfigurering av standardrouter, som kan uppdateras via DHCP-protokollet. Alltså behövs fyra dirigeringstabeller i nätet. (Switchen har också en dirigeringstabell och den är dynamisk, men den har inte med ip-routning att göra eftersom swtichen arbetar i länklagret och inte i nätlagret.) 3, A 29 March 2010 4
Fråga 8. a) Efter en kollison ska noden välja K = 0 eller 1, alltså är maxvärdet som efterfrågas i uppgiften 1. Detta ska sedan multipliceras med 512 bittider för att man ska få backofftiden i noden efter kollisionen, d.v.s väntetiden. 512 bittider i 10 Mbps = 512 / (10 x 10^6) = 51,2 µs. Switchtabellen: Nod Länk TTL A 1 B 2 C 3 D - E - F 6 För varje inkommande paket kan switchen registrera vilken länk som avsändaren finns på. TTL är time-to-live, som får ett standardvärde kring 10-20 min. för varje rad. c) I den trådlösa standarden IEEE 802.11b ingår definition av fysiskt lager (modulationstekniker och kanaler) och länklager (mac-protokollet och dess ramtyper, DCF) samt hur ett wlan ska konfigureras, antingen med infrastruktur (accesspunkt och distributionssystem) eller utan (ad hoc), samt vilka egenskaper en station ska ha. 29 March 2010 5