Wykład jest wstępem do szerokiej tematyki sieci komputerowych. Przedstawione
będą na nim podstawowe zasady działania sieci komputerowych, ze szczegolnym
uwzględnieniem sieci opartych na protokole TCP/IP, oraz przegląd zastosowań
sieciowych spotykanych w Internecie. Nacisk położony będzie na przedstawienie
słuchaczowi mechanizmow, protokołow i algorytmicznych podstaw stojących za
problemami komunikacji w sieciach, a także na praktyczne wykorzystanie
elementow tej wiedzy.
**Program:**
1. Podstawowe pojęcia, modele warstwowe, dokumenty RFC.
2. Sieci LAN w technologi Ethernet, protokoł CSMA/CD, przełączniki i mosty, sumy kontrolne CRC.
3. Warstwa sieci: protokoł IP, adresowanie CIDR, routing statyczny, wspołpraca z warstwą łącza danych (ARP, DHCP), NAT, protokoł kontrolny ICMP.
4. Warstwa transportowa (UDP i TCP): porty, podstawy programowania usług sieciowych (BSD Sockets), algorytmy kontroli przepływu.
5. Sieci bezprzewodowe.
6. Warstwa zastosowań: DNS, FTP, HTTP, serwery proxy, sieci peer-to-peer.
7. Routing dynamiczny: algorytmy oparte o wektory odległości (RIP) i stan łączy (OSPF), routing hierarchiczny.
8. Elementy kryptografii: szyfrowanie, podpisy cyfrowe, certyfikaty, SSL, PGP.
9. Poczta elektroniczna: SMTP, MIME, filtry antyspamowe.
10. Podstawy bezpieczeństwa sieci: ataki, zapory, tunele.
**Wymagania wstępne:**
* Algebra
* Programowanie w C
* Obsługa Linuksa (wiersz poleceń, proste skrypty)
**Literatura:**
* James F. Kurose, Keith W. Ross, Sieci komputerowe. Od ogołu do szczegołu z Internetem w tle, Helion, 2006.
* Andrew S. Tanenbaum, Sieci komputerowe, Helion, 2004.
* W. Richard Stevens, Unix programowanie usług sieciowych, tom 1, WNT 2000.