studiehandbok@lith
 

Tekniska högskolan vid Linköpings universitet

 
 
År : 2017
 
TDDD93 Storskaliga distribuerade system och nätverk, 13 hp
/Large-Scale Distributed Systems and Networks/

För:   U  


OBS!

Får ej ingå i examen samtidigt som TDTS06


 

Prel. schemalagd tid: 80
Rek. självstudietid: 267

  Utbildningsområde: Teknik

Huvudområde: Datavetenskap   Nivå (G1,G2,A): G1

  Mål:  IUAE-matris
Datornät har blivit en oumbärlig del av infrastrukturen i vÃ¥rt moderna samhälle. Miljarder människor och enheter är anslutna och använder kritiska distribuerade tjänster implementerade över via Internet. Det blir därför allt viktigare att förstÃ¥ hur dessa nätverk, distribuerade system, och tjänster som trafikerar dessa nät, är utformade för att skala till stora antal maskiner och användare. Ã"ven pÃ¥ nivÃ¥n för enskilda maskiner, är det viktigt att veta hur man bygger applikationer och tjänster som effektivt skalas med resurser (t.ex. antalet kärnor, processorer, etc.). I den här kursen kommer vi att använda en kombination av teori och praktik (inklusive utforskning av verkliga data) för att fÃ¥ en djupare förstÃ¥else av moderna storskaliga system och tjänster.

Inom området datornät, förväntas deltagare efter genomgången kurs kunna:

  • Förklara, beskriva och analysera ett typiskt nätverksarkitektur, inklusive argumentera om vikten av nätverkslager och inkapsling
  • Förklara de olika grundläggande typer av protokoll, kommunikationskanaler och nätverkstyper
  • Designa, genomföra, kontrollera och testa dina egna protokoll
  • Förklara grundläggande prestanda kompromisser, inklusive visa en förstÃ¥else för var förseningar kan förekomma i ett nätverk, vilka olika typer av förseningar som finns, inverkan av paketförluster och jitter pÃ¥ olika protokoll
  • Använda konkreta exempel, och i detalj, beskriva samspelet mellan de olika protokoll i nätverksarkitektur, och de protokoll som är förknippade med de olika lagren
  • Beskriva och analysera de vanligaste applikationsarkitekturer pÃ¥ Internet, hur de viktigaste applikationslagerprotokoll fungerar, den tjänst som de tillhandahÃ¥ller, samt ha förmÃ¥ga att utforma och genomföra sina egna applikationslagerprotokoll
  • Analysera och förklara viktiga designöverväganden vid transportlagret, inklusive praktisk kunskap om hur flödeskontroll och stockningskontroll fungerar, och hur tillförlitlig dataöverföring implementeras
  • Motivera och förklara hur routing och vidarebefordran genomförs pÃ¥ Internet, inklusive grundläggande design och implementeringsprinciper nätverkslagerprotokoll som används för att säkerställa skalbarhet
  • Beskriva och förklara olika länklagertekniker och hur de fungerar
  • exemplifiera hur olika typer av säkerhetstjänster kan implementeras i olika lager med hjälp av olika standarder
  • Analysera och exemplifiera nÃ¥gra av de unika utmaningar som upkommer dÃ¥ vi gÃ¥r mot allt mer mobila användare
  • Förklara och diskutera grunderna i hur multimedia tjänster tillhandahÃ¥lls via Internet
Studenterna förväntas också förstå hur distribuerade system kan byggas på toppen av nätverksarkitektur för att ge skalbara tjänster, samt hur flerkärniga system och inbäddade system kan användas för att ytterligare förbättra tjänsterna. Mer specifikt, efter avslutad kurs skall studenten kunna:
  • Definiera vad ett distribuerat system är och dess viktigaste mÃ¥l
  • Förklara relationen mellan arkitekturer, processer och kommunikation
  • Exemplifiera olika typer av transparens, skaltekniker
  • Analysera och förklara nÃ¥gra av de grundläggande skillnaderna i olika systemarkitekturer
  • Beskriva och förklara hur man kan uppnÃ¥ synkronisering, konsistens och replikering
  • Genomföra, motivera och förklara konstruktionen av olika typer om distribuerade systemarkitekturer, inklusive objektbaserade distribuerade system (t.ex. med hjälp av Corba) och webbaserade distribuerade system (inklusive hur en proxy cache fungerar )
  • FörstÃ¥ grundläggande homogena och heterogena flerkärniga arkitektur begrepp och deras prestanda konsekvenser; grundläggande tekniker för flerkärniga programmering med trÃ¥dar och uppgifter; och en del tekniker för att konstruera parallella algoritmer och analysera deras komplexitet, inklusive parallell skalbarhet
  • FörstÃ¥ metoder och verktyg pÃ¥ systemnivÃ¥ för konstruktion av realtids inbyggda system; förstÃ¥ grundläggande kompromisser och design konsekvenser som mÃ¥ste beaktas när beslut fattas pÃ¥ systemnivÃ¥ design; och placera design i ett större sammanhang (bland annat i samband med hÃ¥rdvaruarkitektur och mjukvaruimplementering).
Genom att införa generella designkoncept, några grundläggande vetenskapliga metoder (såsom grundläggande system för prestandamodellering), utforskning av verkliga data, och en allmän systemtänkande, med omfattning och resultat som viktiga aspekter, som används i hela kursen, förväntar vi oss också att studenten ska kunna:
  • Förklara med hjälp av konkreta exempel grundläggande nätverksdesignprinciper och skalbarhetsavvägningar
  • Designa och utföra mÃ¥linriktade försök att kritiskt utvärdera nätverk och distribuerade system teknik
  • Använd grundläggande systemmodeller och analysmetoder för att analysera system och nätverk
  • Som ett team, planera och genomföra en projektstudie för ett identifierat problem inom ett valt teknikomrÃ¥de, även experiment med verkliga datakällor (som i vissa fall samlas in av studenterna själva)
  • Baserat pÃ¥ en projektstudie, presentera och förklara (bÃ¥de skriftligt och muntligt) slutsatser inom ett valt teknikomrÃ¥de, till en publik med liknande allmän kunskap om datornät
  • Ge/ta emot konstruktiv feedback till/frÃ¥n andra studenter


  Förkunskaper: (gäller studerande antagna till program som kursen ges inom, se 'För:' ovan)
Matematisk analys, statistik och programeringskunskap (helst i både java och C).

OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.

  Påbyggnadskurser
Distribuerade system, Avancerade nätverk, och individuella projekt

  Organisation:
Kursen består av både teori (föreläsningar och inlämningsuppgifter) och praktisk utbildning (laborationer och projekt). Kursen har två skriftliga tentamina. Den första på nätverk och den andra med inledande material om distribuerade system, flerkärniga system, inbyggda system, samt grundläggande systemvetenskapsmetodik. Projektet ska resultera i en skriftlig rapport, och kommer presenteras i ett seminarium i vilket studenterna kommer att fungera som både presentatörer och motståndare (utvärdera och ge varandra feedback, till exempel, för att förbättra rapporter och projekt). Labbar skall göras i par. Projekten skall göras i grupper med tre-till-fyra elever.
Kursen pågår under hela vårterminen.


  Kursinnehåll:
Datornätverk: De grundläggande designprinciper för datornätverk, deras protokoll, och Internet stacken. Applikationsprotokoll (t.ex. HTTP), transportlagerprotokoll (t.ex. TCP), nätverkslagerprotokoll (t.ex. IP och BGP), länklagerprotokoll (t.ex. Ethernet, WiFi och Bluetooth). Introduktion till multimedia-applikationer, trådlöst nätverk och nätverkssäkerhet för varje lager.

Distribuerade system, flerkärniga system och inbyggda system: Grundläggande distribuerade arkitekturer och deras processer och kommunikation. Synkronisering, replikering, konsistensfrågor och kompromisser. Objektbaserade och webbaserade system. Flerkärniga arkitekturer, deras möjligheter och grundläggande utmaningarna de orsakar. Inbyggda system och deras integration i ett brett utbud av moderna system.

Projekt: De exakta ämnena för projektet kommer att variera nÃ¥got frÃ¥n Ã¥r till Ã¥r, för att hÃ¥lla projekten spännande och "up-to-date" med utvecklingen inom omrÃ¥dena. Ã.terkommande teman är: av storskaliga system och deras grundläggande egenskaper (t.ex., power-lagar, rik-blir-rikare); Skalbara system och mönster (t.ex., hierarkisk kontra platt design, skiktade konstruktioner); Mätning, modellering och analysmetoder som använder riktiga nätverksdata; Viktiga moderna distribuerade system sÃ¥som molnbaserade tjänster (t.ex., EC2), CDN, Internet routing arkitektur i sig, och sociala nätverk.

  Kurslitteratur:
J. F. Kurose and K. W. Ross (2012), Computer networking: A top-down approach. Sixth Edition. Pearson.
TBD [top-two candidates]: G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair (2011), Distributed Systems: Concepts and Design, Fifth Edition, Pearson.
Andrew S. Tanenbaum and Maarten van Steen (2007), Distributed Systems: Principles and Paradigms, Second Edition, Pearson Education.


  Examination:
TEN1 TEN2 LAB1 PRA1
Skriftlig tentamen (U,3,4,5)
Skriftlig tentamen (U,3,4,5)
Laborationer (U,G)
Projektarbete (U,G)
3 hp
3 hp
4 hp
3 hp
 
För godkänt betyg krävs minst godkänt betyg för alla komponenter. Slutbetyget beräknas med hjälp av genomsnittet av de individuella tentamensbetygen.



Undervisningsspråk är Engelska.
Institution: IDA.
Studierektor: Patrick Lambrix
Examinator: Niklas Carlsson
Ansvarig programnämnd: Data&Medie

Engelsk kursplan


Tekniska högskolan vid Linköpings universitet


Informationsansvarig: TFK , val@tfk.liu.se
Senast ändrad: 04/12/2016