Narzędzia użytkownika

Narzędzia witryny


Pasek boczny


O mnie


Dydaktyka:

Feedback


bio-psiec:zagadnienia-test

Zagadnienia na test – 2025/26

Na teście będą pytania jednokrotnego i wielokrotnego wyboru, jak również pytania otwarte.
Wśród pytań otwartych mogą się pojawić między innymi pytania o podanie prostych komend, wpisanie informacji odczytanych z zawartych w pytaniu wyników poleceń, czy kawałki kodu z lukami do uzupełnienia.
W trakcie testu nie można korzystać z żadnych materiałów (internetu, notatek, konsoli, IDE, etc.).
Test będzie do wypełnienia na ekranie komputera.

Adresacja IP

  • jakie długie są i jak są zapisywane adresy IPv4 i IPv6
    proszę zwrócić uwagę kiedy podaje się adres z maską, kiedy sam adres
  • podział puli adresów IP na sieci (prefiksy):
    • co to jest maska sieci, jak się ją zapisuje
    • jakie adresy należą do podanej sieci, których z nich nie można przypisać urządzeniom
  • jakie adresy:
    • ma pętla zwrotna / localhost
    • określają dowolny adres
    • mają bloki prywatne – trzeba znać adresy wszystkich trzech bloków prywatnych IPv4

Podstawowa konfiguracja interfejsów sieciowych i przełączanie pakietów

  • jakimi komendami:
    • wyświetla się listę urządzeń
    • wyświetla się listę adresów IP
    • włącza/wyłącza się wskazane urządzenie
    • dodaje/usuwa się adresy IP
  • komenda ping - do czego służy, jak się jej używa
  • adresy MAC
    • jakie są długie, jak się je zapisuje
    • do czego służą w sieciach
    • która komenda je wypisuje
    • kto je ustawia, czy można je zmienić
  • protokoły ARP i NDP (neighbour solicit/advert):
    • do czego są potrzebne
    • kiedy są używane
  • do czego służy przełącznik (switch), co to jest przełączanie (switching)

Trasowanie

  • na co pozwala protokół ICMP(v6):
    • do czego są używane komunikaty echo reply / echo request
    • kiedy są wysyłane inne komunikaty tego protokołu i od czego służą
  • co to jest trasowanie
  • tablica tras:
  • co zawiera każdy jej wpis
  • jak na jej podstawie system operacyjny wybiera trasę
  • jaką komendą na Linuksie:
  • wyświetla się tablicę tras
  • dodaje się / usuwa trasy (w tym trasę domyślną i trasę przez podany skok)
  • bada się trasę (wszystkie kolejne skoki) jaką pokonuje pakiet do podanego adresu
  • na podstawie ilustracji (rysunku sieci) należy umieć wskazać jakie wpisy w tablicy tras muszą mieć urządzenia
  • proszę tam zwrócić uwagę na ilustrację szukanie MAC, przełączanie, trasowanie, szczególnie:
  • działanie protokołów ARP/NDP: kto, kiedy i po co je używa
  • czym jest przełączanie, kto i kiedy je wykonuje
  • czym jest trasowanie, kto i kiedy je wykonuje

System nazw domenowych (DNS)

  • co oznaczają skróty FQDN i TLD
  • jakie są rodzaje serwerów, jaką rolę pełnią (np. serwery authoritive, caching)
  • do czego są rekordy zasobowe A, AAAA, NS, CNAME, MX, PTR
  • jaką komendą można odpytać serwer DNS:
    • o wskazany rodzaj rekordu dla wskazanej nazwy domenowej
    • o odwzorowanie odwrotne
  • adres wskazany przez który rekord będzie użyty do połączenia przez:
    • klienty/serwery DNS do odpytywania o nazwy w domenie
    • serwer poczty który chce wysłać mail do szukanej domeny
    • pozostałe programy, w tym np. przeglądarkę internetową

Automatyczne nadawanie adresów IP

  • jakie co najmniej ustawienia sieciowe trzeba ustawić, żeby móc korzystać z przeglądarki internetowej
  • jakimi metodami/protokołami można ustawiać adres IPv4
  • jakimi metodami/protokołami można ustawiać adres IPv6
  • jak działają protokoły DHCP i NDP:
    • jakie informacje przesyłają
    • czy serwer nadaje IP, czy urządzenie samo wybiera IP
  • co to jest statyczna dzierżawa

Protokoły warstwy transportu i narzędzia do ich diagnostyki i testowania

  • co to jest numer portu, czy porty mają nazwy
  • porty uprzywilejowane/systemowe:
    • z jakiego są zakresu
    • kto może ich używać jako adres lokalny (w bind)
    • kto może ich używać jako adres zdalny (w connect)
  • jakimi komendami można:
    • wyświetlić listę nawiązanych połączeń
    • wyświetlić listę gniazd czekających na połączenia
    • zwróć uwagę że trzeba umieć czytać wyniki tych komend
  • trzeba umieć napisać komendę która:
    • nawiąże połączenie TCP pod wskazany adres
    • uruchomi prosty serwer TCP na wskazanym porcie (i dowolnym z adresów IP tego komputera)
    • rozpocznie wymianę komunikatów UDP ze wskazanym docelowy adresem
    • będzie czekać na komunikaty UDP na wskazanym porcie (i dowolnym z adresów IP tego komputera)

Wstęp do programowania gniazd + prosty serwer TCP + klient i serwer UDP

  • co to jest deskryptor pliku
  • standardowe wejście, standardowe wyjście i standardowy błąd:
    • czym są, do czego służą
    • jakie mają wartości deskryptora pliku
  • jak większość funkcji systemowych (z POSIX) wskazuje że wystąpił błąd, oraz:
    • kiedy ustawiana i kiedy czyszczona jest stała errno
    • do czego służy funkcja perror
  • co zawierają, do czego i gdzie używane są struktury:
    • sockaddr_in (i kiedy oraz dlaczego konieczne jest rzutowanie wskaźnika na taką strukturę)
    • in_addr
  • endianness:
    • dlaczego ma znaczenie w sieciach
    • funkcje htons, ntohs, ntonl, … - gdzie i kiedy trzeba z nich korzystać
  • do czego i gdzie (tj. w jakiej funkcji/strukturze) używane są stałe
    • INADDR_ANY
    • AF_INET, AF_INET6
    • SOCK_STREAM, SOCK_DGRAM
    • IPPROTO_TCP, IPPROTO_UDP
  • należy znać funkcje:
    (w tym: co zwracają, jakie argumenty przyjmują)
    • tworzące/zamykające deskryptory plików:
      socket, accept, close
      w tym szczególnie:
      • co dokładnie zwraca accept, kiedy można go wykonać
      • do czego służy drugi i trzeci argument accept
    • odbierające/wysyłające dane:
      read, write, recv, send, recvfrom, sendto
      w tym szczególnie:
      • co oznacza zwrócenie wartości 0 przy odczycie dla gniazd połączeniowych
      • kiedy te funkcje zwracają -1
      • co oznaczają dodatnie wartości zwrócone z tych funkcji
      • które używa się dla gniazd (pseudo/)połączeniowych, np. TCP
      • które używa się dla gniazd bezpołączeniowych, np. UDP
    • zmieniające stan gniazda w systemie operacyjnym:
      bind, connect, listen, shutdown, oraz wywołanie setsockopt(…, SOL_SOCKET, SO_REUSEADDR, …, …)
      w tym szczególnie:
      • jak każda z tych funkcji zmienia stan gniazda
      • jakie inne funkcje sieciowe można wykonać w stanie przed/po wykonaniu tych funkcji, szczególnie:
        • kiedy można wysyłać dane
        • kiedy można przyjmować klientów
        • w jakiej kolejności wolno wywoływać te funkcje zmieniające stan
  • trzeba wiedzieć w jakiej kolejności należy wykonywać funkcje do stworzenia serwera/klienta tcp/udp
  • w jakich zastosowaniach warto używać UDP (i jakie ma zalety nad TCP w tych zastosowaniach)

API do nazw domenowych

  • do czego służy funkcja getaddrinfo
  • do czego służy funkcja getnameinfo
  • jakie argumenty przyjmują te funkcje, w tym:
    • po co jest argument hints w getaddrinfo
    • po co są flagi w getnameinfo
  • jak te funkcje informują o błędach
  • kiedy trzeba wykonać funkcję freeaddrinfo
  • co jest w wynikach funkcji getaddrinfo
    tzn. jakie informacje trafiają do struktur addrinfo tworzonych w wyniku wywołania tej funkcji

Dopuszczalne zachowanie się funkcji sieciowych

  • które funkcje i kiedy mogą się blokować
  • czym różni się tryb blokujący od nieblokującego
  • czy funkcje read/recv/recvfrom zawsze odbiorą tyle bajtów ile im kazano:
    • w trybie blokujacym
    • w trybie nieblokującym
    • jak w wywołaniu recv zmienić to czy ma czekać na odebranie dokładnie tylu bajtów ile wskazano
  • czy funkcje write/send/sendto zawsze wyślą wszystkie dane:
    • w trybie blokujacym
    • w trybie nieblokującym
    • jak w wywołaniu send zmienić to czy ma czekać na wysłanie wszystkich bajtów
  • co zwracają w trybie nieblokującym fukcje odbierające/wysyłające dane kiedy nie da się bez blokowania odebrać/wysłać danych
    jak odróżnić taką sytuację od innych błędów z tych funkcji
  • jak mają się porcje w których wysyłano dane do porcji w których są odbierane:
  • w TCP
  • w UDP
  • co programista może zrobić, żeby odbierać logiczne wiadomości w całości w TCP
  • jakie są gwarancje TCP i UDP związane z:
  • dostarczeniem danych
  • kolejnością danych
  • dobraniem prędkości wysłania do możliwości sieci

Filtracja pakietów i translacja adresów

  • co to jest reguła i jak reguły są pogrupowane w tabele i łańcuchy
  • w jakiej kolejności są wykonywane reguły wewnątrz łańcucha
  • kiedy kolejne reguły z łańcucha nie są już przetwarzane
  • co decyduje o tym czy pakiet przepuścić czy odrzucić jeśli żadna regułą się nie dopasuje
  • na czym polega podział na PREROUTING, INPUT, FORWARD, OUTPUT i POSTROUTING
  • na co (w filtracji/translacji) pozwala śledzenie połączeń
  • co to są dopasowania (matches)
    należy znać dopasowania do:
  • protokołu
  • stanu połączenia
  • interfejsów źródłowych/docelowych
  • adresów źródłowych/docelowych
  • portów źródłowych/docelowych
  • jakie akcje można wykonać w regule i co one oznaczają:
    ACCEPT, DROP, REJECT, MASQUERADE, SNAT, DNAT
  • nie będzie pytań gdzie trzeba napisać komendę iptables, ale mogą być pytania gdzie trzeba wyjaśnić podaną komendę
  • do czego (w jakiej sytuacji) potrzebna jest:
  • translacja adresów źródłowych
  • translacja adresów docelowych
  • które urządzenie w sieci wykonuje translację adresów źródłowych / docelowych
  • jakie dopasowania zwykle stosuje się dla translacji źródłowej a jakie dla docelowej
  • proszę tam zwrócić uwagę na ilustrację ilustracja do NATów

Sieci bezprzewodowe

  • co określa nazwa WLAN / standardy IEEE 802.11 / trademark Wi-Fi®
  • od czego zależy prędkość sieci bezprzewodowej
  • identyfikatory BSSID i ESSID/SSID
    • jaką mają postać
    • do czego są używane
    • czy muszą być unikalne
  • co to jest i z czego składa się sieć bezprzewodowa:
    • IBSS / ad hoc
    • w trybie infrastruktury
  • jakimi komendami w Linuksie można wyświetlić:
    • listę interfejsów bezprzewodowych
    • listę dostępnych sieci bezprzewodowych
  • jak nazywają się najpowszechniejsze zabezpieczenia sieci bezprzewodowych
  • czym różni się uwierzytelnianie w profilu WPA Personal i WPA Enterprise
  • jakie są różnice między WPA2-PSK i WPA3-SAE
  • czym jest WPS

Wielowątkowa obsługa gniazd + obsługa wielu gniazd naraz w jednowątkowym programie

  • jakie są metody na obsługę wielu gniazd naraz w jednym programie
  • czy z różnych wątków można robić operacje odczytu/zapisu (I/O) na jednym gnieździe
  • co zapewnia system operacjny jeżeli wykona się z różnych wątków operacje I/O na tym samym gnieździe
  • jak buduje się pętlę zdarzeń
  • funkcja poll:
    • do czego służy
    • jakie ma argumenty
      w tym jak można określić ile czasu ma czekać i jak wskazać że ma czekać od skutku
    • jakie pola ma struktura pollfd
    • jak przygotowuje się przekazywane od funkcji poll struktury pollfd
    • co oznaczają:
      • POLLIN, i kiedy to zdarzenie może wystąpić mimo że nie przyszły dane
      • POLLOUT, w tym:
        • kiedy to zdarzenie może wystąpić mimo że nie da się wysłać danych
        • ile bajtów można wysłać jeżeli wystąpiło POLLOUT
    • jakie zdarzenia może zawsze ustawić poll (mimo że programista nie wskazał że na nie czeka)
    • jak można w polu revents struktury pollfd sprawdzić czy jest ustawione wskazane zdarzenie

Uwaga: jeżeli wzorem wyższych roczników bioinformatyki przygotowujecie jakieś materiały streszczające przedmiot dla ułatwienia nauki, zachęcam do skonsultowania ich ze mną – w ubiegłym roku w takich znalazło się sporo błędów, a o ich istnieniu dowiedziałem po poprawce dopytując skąd ciągle powtarzały się błędne odpowiedzi.

bio-psiec/zagadnienia-test.txt · ostatnio zmienione: 2026/01/18 14:28 przez jkonczak