Förklara, beskriva, och analysera en typisk nätarkitektur, bland annat vikten av nätverkslager och inkapsling
Förklara de olika grundläggande typerna av protokoll, kommunikationskanaler och nätverkstyper
Utforma, konstruera, implementera, verifiera, och testa dina egna protokoll
Förklara grundläggande prestandakompromisser, såsom var fördröjning kan uppstå i ett nätverk, vilka olika typer av fördröjning som finns, samt inverkan av paketförluster och jitter på olika protokoll
Beskriva och analysera de vanligaste protokollen och arkitekturerna för applikationslagret på Internet, hur de fungerar, de tjänster de erbjuder, samt ha förmåga att utforma och genomföra dina egna applikationslagerprotokoll
Analysera och förklara viktiga designöverväganden vid transport lagret, även praktisk kunskap om hur flödeskontroll och kongestion kontroll fungerar, och hur tillförlitlig dataöverföring implementeras
Motivera och förklara hur routing och packetvidarebefordran genomförs på Internet, inklusive design och implementation av nätverkslagrets protokoll
Beskriva och förklara olika länklager tekniker och hur de fungerar
Nätverkssäkerhet: Kunna exemplifiera hur olika typer av säkerhetstjänster kan implementeras i olika lager med hjälp av olika standarder
Trådlösa och mobila nätverk: Analysera och exemplifiera en del av de unika utmaningar som vi går mot med allt mer mobila användare
Multimediatjänster och nätverk: Förklara och diskutera grunderna i hur multimedia tjänster tillhandahålls via Internet
Kursinnehåll
Protokollterminologi, språk och specificering. Protokollagerkonceptet. Referensmodeller för nätarkitekturer. Tillämpningsområden för datornät och exempel på kommersiella nättjänster. Nättyper, deras kännetecken och komponenter (router, switch, repeater, hubb). Kommunikationsmoder och kanaler. Accessnättekniker. Olika typer av MAC-protokoll. Kollisionsdomänkonceptet. Sliding window-protokollet. Feldetektering. Lokala nät (IEEE 802.3) och intranät. Trådlösa nät (Bluetooth, WiFi och WiMax). Utökning av LAN. Internet och standardisering. TCP/IP-protokollfamiljen. Distansvektor- och länktillståndsroutning. ICMP. ARP. NAT. Namngivning, adressering och routning på Internet. TCP-timrar, flödeskontroll och stockningskontroll. Pålitlig dataöverföring i TCP. Trevägshandskakning. IPv6. Mobilt IP. QoS-nätparametrar och ramverk. Nätprestandafrågor. Internettillämpningar (domännamnssystemet, e-post, filöverföring, webben, fildelning, ip-telefoni och nätunderhåll). IP-telefoni. Nätsäkerhetstillämpningar (IPsec, SSL/TLS, PGP m.fl.). Nyckelhantering. WPA2. P2P-nät. Bittorrent, DHT-datastrukturen och Skype. Internethistoria. Internetdesignprinciper. LAN-bakgrund. Utvecklingstrender. SDN.
Förutsättningar
Kunskaper i C eller C++ krävs för att klara av laborationerna i kursen. Det är en fördel om studenten även kan förklara de resurskonflikter som kan uppstå i ett datorprogram och hur man löser dem. Denna kunskap kan dock inhämtas under arbetet med laborationerna i kursen. Studenten förutsätts kunna konstruera och testa program i Unix/Solaris-miljö.
Litteratur
Computer networking: a top-down approach - Kurose, J. F. & Ross, K. W.