Kunskap och förståelse Du ska kunna beskriva och analysera grundläggande protokoll, och deras begränsningar i nätverk som Internet. Du ska också kunna analysera och diskutera nätverksproblem, som software-defined networks (SDN), TCP-anslutningar, "contention", prestanda och flödeskontroll. Färdighet och förmåga Du kan visa förmåga att systematiskt definiera och analysera ett datornätverk i form av kommunikationsgrafer och som ett distribuerat system. Du har förmågan att kritiskt analysera effekten av olika feltyper, såsom tillfälliga fel, förlorade meddelanden och förändringar i nätverkstopologin, och hur sådana fel kan propagera i, och påverka datornätverket. Under kursen utvecklar studenterna småskaliga nätverksapplikationer med hjälp av grundläggande nätverkstekniker. Du måste därför kunna konstruera och utveckla ett eget nätverk och därefter testa och demonstrera det i laboratoriet. Färdigheter i skriftlig kommunikation redovisas i form av laborationsrapporter och som formella bevis av protokollegenskaper där studenten förklarar och demonstrerar riktigheten av det studerade protokollet och dessutom tydligt beskriver självständigt författade nätverksalgoritmer. Efter genomgången kurs ska du skickligt kunna demonstrera mjukvaruutveckling för feltoleranta "client-server" och "peer-to-peer" arkitekturer. Du kan också utforma distribuerade algoritmer för datornätverk och att visa varför de fungerar. Värderingsförmåga och förhållningssätt Förmåga att beskriva, konstruera (nya) och analysera (nya och befintliga) algoritmer för nätverksprotokoll med en mycket stark betoning på självstabiliserande algoritmer för datornätverk.
Kursinnehåll
Kursen innehåller praktiska experiment med analyser som avser att öka studentens förståelse för centrala begrepp och dessas återspeglingar i verkliga problem. Under laborationer tränas API programmering för feltoleranta nätverk, Internet konfigurationer med tjänster ur praktiska perspektiv, samt protokoll med stark betoning på självstabiliserande algoritmer. Kursens innehåll ger därför förståelse för grundläggande frågor som uppkommer under utformning av datornätverk och olika datornätverksprotokoll.
Förutsättningar
Grundläggande behörighet för avancerad nivå
Litteratur
W. Stevens, Bill Fenner, Andrew M. Rudoff, Unix Network Programming, Volume 1: The Sockets Networking API, 3rd edition, Addison-Wesley Professional, ISBN-10: 0-13-141155-1.
S. Dolev, Self-Stabilization, 1st edition, The MIT Press, ISBN-10: 0-26-204178-2.
Läroboken kompletteras med föreläsningsanteckningar och vetenskapliga artiklar.