Nie wymagam dokładnej znajomości składni funkcji. \\
Wymagam znajomość nazw funkcji i umiejętność znalezienia opisu składni. \\
Do zajęć konieczna jest znajomość programowania strukturalnego i obiektowego w C++.
===== Laboratoria 2 (10/11/15.10) =====
* znać funkcje (nazwy, jakie informacje są przekazywane w argumentach, co oznaczają używane przez nie stałe) do:
* tworzenia gniazda
* łączenia gniazda
* czytania/wysłania danych z/do gniazda
* zamykania połączenia sieciowego i zamykania gniazda
* znać strukturę pozwalającą na zapis adresu gniazda
* wiedzieć że kolejność bajtów we wiadomościach musi być z góry ustalona
* kojarzyć funkcje pozwalające na wpisanie adresu IP i portu
===== Laboratoria 4 (24/25/29.10) =====
* znać wymienione niżej funkcje API gniazd, to znaczy wiedzieć:
* jak nazywa się funkcja która wykonuje konkretne działanie
* jakich informacji potrzebuje (nie trzeba znać kolejności, nazw, ani dokładnych typów argumentów)
* co każda z tych funkcji zwraca (nie chodzi o typ, bo wszystkie zwracają typ ''int'' – trzeba wiedzieć co oznacza jego wartość)
* lista funkcji
* ogólne:
* tworzenie gniazda
* ustalanie lokalnego adresu
* zamykanie gniazda
* połączeniowe (i pseudopołączeniowe):
* łączenie do wybranego adresu
* oczekiwanie na nowe połączenia
* przyjęcie nowego połączenia
* wysyłanie danych
* odbiór danych
* zakończenie połączenia
* bezpołączeniowe:
* wysłanie danych
* odbiór danych
* odpytywanie o nazwy domenowe:
* do odwzorowywania nazw domenowych na adresy IP
* do odwzorowywania adresów IP na nazwy domenowe
* wiedzieć co oznaczają stałe które występują w tych funkcjach: \\ AF_INET, AF_INET6, SOCK_STREAM, SOCK_DGRAM, IPPROTO_TCP, IPPROTO_UDP, INADDR_ANY, INADDR_LOOPBACK, SOMAXCONN, SHUT_RDWR, SO_REUSEADDR
* wiedzieć w jakiej kolejności można wywoływać w/w funkcje
* wiedzieć jakie funkcje i w jakiej kolejności należy użyć, aby stworzyć:
* klienta TCP
* serwer TCP
* klienta UDP
* serwer UDP
===== Laboratoria 5 (5/7/8.11) =====
* tryb blokujący / nieblokujący:
* jakie są różnice między trybami
* co jeśli funkcja która nie może natychmiast się wykonać jest wywołana w trybie nieblokującym
* które funkcje z interfejsu gniazd mogą się zablokować, które są zawsze nieblokujące
* należy umieć podać w jakich sytuacjach i na jak długo konkretna funkcja z interfejsu gniazd może się zablokować
* wysyłanie/odbieranie danych w trybie (nie)blokującym:
* jakie gwarancje mają funkcje wysyłające dane w trybie blokującym
* jakie wartości mogą zwrócić funkcje wysyłające dane do sieci (w każdym z trybów)
* jakie wartości mogą zwrócić funkcje odbierające dane z sieci (w każdym z trybów)
* na czym polega protokół strumieniowy i zorientowany na wiadomość (datagramowy), \\ szczególnie w jakich porcjach mogą być odbierane dane w TCP i UDP
* czym może skutkować brak kontroli przepływu
* czym może skutkować brak uporządkowania i potwierdzania odebrania danych
* znać praktyczne różnice między protokołami TCP i UDP
* jakie gwarancje zapewnia programiście TCP
* co w TCP programista musi sam zaimplementować
* jakie gwarancje zapewnia programiście UDP
* co w UDP programista musi sam zaimplementować
===== Laboratoria 7 (19/21/22.11) =====
Wejściówka obejmuje temat z __wykładu__.
\\
(Zagadnienia z pierwszej grupy powinny być częścią wiedzy ogólnoinformatycznej, stąd na wykładzie te pojęcia mogą się pojawić bez definicji.)
\\
* co to jest: (należy umieć podać krótkie definicje lub dopasować nazwę do definicji)
* uwierzytelnianie, autoryzacja, szyfrowanie
* kryptografia symetryczna, kryptografia asymetryczna
* klucz publiczny, klucz prywatny
* man-in-the-middle attack
* urząd certyfikacji (certificate authority), certyfikat
* standard X.509, format PEM
* czy serwer zwykle ma swój certyfikat
* czy klient zwykle ma swój certyfikat
* po co serwerowi certyfikat
* skąd bierze się klucz używany do szyfrowania
* jaka jest różnica między TLS i DTLS
* na jakiej warstwie działa TLS
* jakie gwarancje daje programiście połączenie TLS tzn. jest strumieniowy czy datagramowy, połączeniowy czy bezpołączeniowy, zapewnia kontrolę przepływu czy nie, czy pozwala na gubienie danych, duplikację, zmianę kolejności
* jak nazywają się przykładowe biblioteki implementujące TLS
* czym jest i do czego służy struktura ("obiekt") ''SSL_CTX''
* czym jest i do czego służy struktura ("obiekt") ''SSL''
* jakie wartości w zwracane przez funkcje ''SSL_set_fd/SSL_connect/…_accept/…_read/…_write/…'' oznaczają powodzenie, jakie oznaczają inny rezultat
===== Laboratoria 10 (na zajęciach z odpytywania DNS; 10/12/13.12) =====
Wejściówka obejmuje temat z __wykładu__.
* co to jest nazwa domenowa, co oznacza skrót FQDN
* na czym polega hierarchia w systemie nazw domenowych
* co to jest korzeń (root zone)
* co to jest TLD
* jakie są rodzaje TLD – krajowe, funkcjonalne, sponsorowane, …
* z każdego z w/w rodzaju należy znać po 3 przykłady TLD
* jakie są rodzaje serwerów, do czego służą i czym się różnią:
* root server, authoritative, non-authoritative (caching)
* co to jest resolver
* rodzaje rekordów zasobowych: A, AAAA, NS, CNAME, MX, TXT, …
* do czego służą
* co zawierają
* na czym polegają zapytania rekurencyjne i iteracyjne
===== Laboratoria 11 (na zajęciach z konfiguracji DNS; 17/19/20.12) =====
* znać komendy odpytujące:
* podany serwer nazw
* o wskazane rodzaje rekordów
* o odwzorowanie odwrotne (o nazwę domenową odpowiadającą wskazanemu IP)
* wiedzieć co oznacza treść (i składnia) wartości rekordów NS, CNAME, A, AAAA i MX
* umieć odczytać wyniki komendy ''dig …'' lub ''host -v …''
===== Laboratoria 12 (na zajęciach z HTTP; 7/9/10.12) =====
Wejściówka obejmuje temat z __wykładu__.
* co to jest HTTP i URL
* wersje protokołu HTTP:
* jakie są/były używane
* które używają protokołu tekstowego a które binarnego
* które używają TCP a które UDP, jakie są domyślne porty dla HTTP i HTTPS
* która obowiązkowo wymaga szyfrowania
* z jakich części składa się URL dla HTTP i te części oznaczają: \\ schemat, host, port, ścieżka, zapytania (//[[https://datatracker.ietf.org/doc/html/rfc1738#section-3.3|searchpart]]// aka //[[https://datatracker.ietf.org/doc/html/rfc9110#name-http-uri-scheme|query]]//)
* co to jest percent-encoding (urlencoding), do czego jest używane w linii żądania, w treści jakich żądań jest powszechnie używane
* jak jest zbudowane żądanie HTTP/1.x
* co to jest linia żądania, z czego się składa
* jakie metody HTTP są wykorzystywane przez przeglądarki
* co to są nagłówki, jak oddziela się nazwę od wartości
* jak oddziela się nagłówki od siebie, jak oddziela się nagłówki od treści żądania
* do czego służy nagłówek //Host// i na jaką wartość trzeba go ustawić
* jak wygląda odpowiedź HTTP/1.x
* co to jest linia statusu, z czego się składa
* co oznaczają kody należące do grup: 2xx, 3xx, 4xx i 5xx
* należy też umieć napisać treść żądania HTTP/1.x która pobierze wskazany URL bądź odtworzyć URL z treści żądania
====== ——— 2023 ——— ======
===== Laboratoria 10 (na 1 zajęciach z WLAN, 7/8/12.12) =====
Do pierwszych laboratoriów o sieciach bezprzewodowych proszę przypomnieć sobie zagadnienia:
* model warstwowy ISO/OSI oraz TCP/IP
* co to jest, jakie ma warstwy
* jakie zadania mają warstwy: fizyczna, łącza danych, sieci
* adresacja IPv4 - teoria
* co to jest adres sieci
* co to jest maska sieci i jak można ją zapisać
* jak wyliczyć które adresy IP należą do sieci
* jak podzielono pulę adresów
* trasowanie (routing) – teoria (co to jest, po co to jest, jak czytać tabelę tras, jak są podejmowane decyzje którędy idzie pakiet)
* ethernet
* jak wygląda adresowanie urządzeń w ethernecie
* kiedy urządzenie może zacząć wysyłać dane
* co się dzieje jeśli dwa urządzenia zaczną nadawać dane naraz
* urządzenia sieciowe
* przełącznik (switch)
* działa na warstwie łącza danych (2; adresy MAC; komunikacja między "bezpośrednio" połączonymi urządzeniami)
* rozgranicza domeny kolizyjne, ale nie rozgłoszeniowe (przypomnieć sobie definicje)
* ma wiele portów
* nie ma adresu IP (chyba że dodatkowo, poza byciem przełącznikiem, jest też czymś jeszcze – np. zdalną konsolą do zarządzania przełącznikiem)
* nie ma adresu MAC (chyba że… [jak wyżej])
* jest "niewidzialny" dla urządzeń do niego podłączonych
* trasownik (router)
* działa na warstwie sieci (3; adresy IP; komunikacja między dowolnymi urządzeniami w sieci)
* rozgranicza domeny rozgłoszeniowe
* stoi pomiędzy różnymi sieciami IP
* ma wiele interfejsów sieciowych
* każdy interfejs może mieć (dowolnie dużo) adresów IP
* adresy IP na różnych interfejsach muszą być z innych sieci
* wykonuje trasowanie (routing)
* narzędzia sieciowe w Linuksie
* wyświetlanie dostępnych interfejsów sieciowych
* włączanie / wyłączanie interfejsu
* sprawdzanie czy jest łączność na warstwie fizycznej
* wyświetlanie (wszystkich) ustawionych adresów IP
* ustawianie / usuwanie adresu IP
* dodawanie drugiego adresu IP do interfejsu
* wyświetlanie tabeli tras
* dodawanie tras do tabeli
* włączanie / wyłączanie IP forwarding
Na wejściówce mogą pojawić się pytania z:
* modelu warstwowego – za co która warstwa odpowiada
* adresu MAC – do czego służy, skąd się zwykle bierze, jak wygląda (zapis)
* adresacji IP:
* do czego służy adres IP, skąd się zwykle bierze, jak wygląda (zapis)
* zakresy publicznych i rozgłoszeniowych IP, bloki adresów prywatnych
* jakie IP należą do podanej sieci
* narzędzi sieciowych w Linuksie:
* wyświetlanie, włączanie, wyłączanie interfejsów
* wyświetlanie adresów MAC
* wyświetlanie, dodawanie, zmiana, usuwanie adresów IP
* sprawdzanie łączności IP, sprawdzanie trasy do podanego IP
* wyświetlanie, dodawanie tras
* trasowania – kiedy jest wykonywane, jak działa
===== Laboratoria 12 (na zajęciach z DNS; 21.12 / 8/9.1) =====
Na wejściówce będą pytania sprawdzające znajomość treści przedstawionych na wykładzie z DNS ([[https://www.cs.put.poznan.pl/mkalewski/edu/sk/doc/system-nazw-domen.pdf|link do slajdów]]):
* co to jest nazwa domenowa, co oznacza skrót FQDN
* na czym polega hierarchia w systemie nazw domenowych
* co to jest korzeń (root zone)
* co to jest TLD
* jakie są rodzaje TLD – krajowe, funkcjonalne, sponsorowane, …
* z każdego z w/w rodzaju należy znać po 3 przykłady TLD
* jakie są rodzaje serwerów, do czego służą i czym się różnią:
* root server, authoritative, caching (non-authoritative)
* master, slave
* co to jest resolver
* rodzaje rekordów zasobowych: A, AAAA, NS, CNAME, MX, TXT, …
* do czego służą
* co zawierają
===== Laboratoria 13 (na zajęciach z IPv6; 11/12/16.01) =====
* Co to jest adres MAC, ile na bitów, skąd się bierze?
* Na jakiej warstwie ISO/OSI działa protokół IP?
* Jakie zadania pełni protokół IP?
* Na czym polega fragmentacja w IP?
* Skąd wiadomo jaki protokół warstwy wyższej jest w danym pakiecie IP?
* Adres IPv4:
* Ile bitów ma adres?
* Jakie zakresy adresów mają bloki prywatne?
* Które adresy są multicastowe?
* Jaki jest adres localhosta, jaki adres reprezentuje dowolny adres?
* Jak jest określany adres MAC urządzenia o znanym adresie IP?
* Jaki protokół jest używany do automatycznego nadawania adresów IP? Jak wygląda przydzielanie adresu IP?
* Do czego wykorzystywany jest protokół ICMP?
* Do czego wykorzystywany jest NAT i dlaczego jest potrzebny?
====== ——— 2022 ——— ======
===== Laboratoria 10 (13/14.12) =====
Zagadnienia na wejściówkę:
* znać rodzaje sieci IBSS (ad-hoc), BSS i ESS
* z czego się składają
* czym się od siebie różnią
* rozróżniać identyfikatory ESSID (SSID) i BSSID
* jak się je zapisuje
* kto je nadaje / jak są tworzone
* znać komendy do:
* wyświetlania informacji o bezprzewodowych kartach sieciowych
* listowania interfejsów bezprzewodowych (jakie są dostępne, w jakich trybach pracują)
* wyświetlania stanu połączenia bezprzewodowego (czy jest połączenie, do jakiej sieci, na jakim kanale/częstotliwości)
* skanowania (wyświetlania listy) dostępnych sieci
* zmiany trybu pracy interfejsu bezprzewodowego
* [SK1] Podstawy obsługi sprzętu CISCO ([[sk1:cisco_wstep]]):
* kojarzyć jak i z jakich programów korzysta się do komunikacji po porcie szeregowym pod Linuksem
* kojarzyć tryby działania w IOS i przechodzenie między nimi (''enable'', ''configure terminal'', …)
* umieć wyświetlić pomoc kontekstową (''?'') i korzystać z autouzupełniania (''tab'')
* przypomnieć sobie jak wyglądały nazwy interfejsów
===== Laboratoria 11 (20/21.12) =====
* Znać różnice między WEP, WPA/WPA2-PSK, WPA3-SAE, WPA/WPA2/WPA3-EAP oraz WPA-Personal, WPA-Enterprise
* czym różni się uwierzytelnianie i które urządzenie je wykonuje
* czym różni się szyfrowanie, jakie są używane sposoby szyfrowania, kto może odszyfrować dane
* które rozwiązania są uważane za bezpieczne, w których bezpieczeństwo zależy od konfiguracji (np. zastosowanych metod, siły haseł)
* Kojarzyć do czego służy protokół EAP i RADIUS w WPA-Enterprise
* Kojarzyć od czego zależy metoda uwierzytelniania w WPA-Enterprise
* Kojarzyć jaka jest rola WPS i znać przykłady metod WPS
* Wiedzieć jakie programy pozwalają łączyć się do sieci bez zabezpieczeń i z zabezpieczeniami WPA/WPA2/WPA3
====== ——— 2021 ——— ======
===== Laboratoria 5 (1 zajęcia z programowania, 9/4.11) =====
**Uwaga**: Wejściówka obejmuje przypomnienie z przedmiotów //programowanie niskopoziomowe//, //programowanie obiektowe// i //programowanie systemowe i współbieżne//:
* jakim poleceniem (w konsoli) można skompilować program w języku C/C+''''+
* podstawy języka C/C+''''+, w szczególności:
* co to jest struktura i unia
* czym jest wskaźnik, jak dostać się do wskazywanych danch, jak dostać wskaźnik na wybrane dane
* na czym polega rzutowanie, jak je wykonać
* jak w programie w języku C/C+''''+:
* dostać się do argumentów programu
* zaalokować statycznie i dynamicznie pamięć, zwolnić zajętą wcześniej pamięć
* interfejs POSIX:
* co to jest deskryptor pliku
* jaką funkcją otwiera się zwykły plik w POSIX, jakie argumenty przyjmuje ta funkcja, jakie wyniki zwraca
* czym są potoki, jak mogą być wykorzystane do komunikacji międzyprocesowej
* jaką funkcją zamyka się plik w POSIX
* jaka funkcja czyta dane z deskryptora pliku, jakie argument przyjmuje i jaki zwraca wynik
* jaka funkcja zapisuje dane do wskazanego deskryptora pliku, jakie argument przyjmuje i jaki zwraca wynik
* jakie numery mają deskryptory standardowego wejścia, wyjścia i błędu, do czego służą
====== ——— 2019 ——— ======
===== Laboratoria N+5 (na zajęciach z kształtowania ruchu, 13/14.1) =====
* Iptables:
* Kiedy wykonywane są łańcuchy input, forward i output z tabeli filter?
* Jaką komendą wyświetlić listę reguł iptables?
* Umieć czytać listę reguł iptables (tzn. rozumieć co robi wskazana reguła).
* Jaką komendą dodać regułę:
* dotyczącą konkretnego adresu źródłowego / docelowego,
* protokołu TCP / UDP,
* dotyczącą konkretnego portu docelowego / źródłowego.
* Umieć konstruować proste reguły.
* Umieć usunąć regułę z listy.
* Kojarzyć programy do badania prędkości sieci między dwoma komputerami.
====== ——— 2016 ——— ======
===== Laboratoria N+4/5 (WLAN – infrastruktura) =====
Na wejściówce obowiązują zagadnienia z poprzedniej wejściówki oraz:
* rozumieć jaką rolę pełni AP w sieci WLAN i na jakiej warstwie działa
* umieć określić jak zachowa się AP podłączony do innych urządzeń sieciowych
* pamiętać jak STA odróżnia dwa różne AP z tej samej sieci
* rozumieć kiedy następuje uwierzytelnianie i od kiedy wiadomości są szyfrowane
* kojarzyć co określają standardy WEP, WPA i WPA2, umieć określić jaki poziom bezpieczeństwa zapewniają
* znać dwa tryby WPA (PSK i EAP), wiedzieć czym się różnią
* kojarzyć jak działa WPA-EAP (Enterprise) – infrastruktura z serwerem uwierzytelniającym oraz bogaty wybór metody uwierzytelniania