Narzędzia użytkownika

Narzędzia witryny


sk2:zagadnienia-test

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
sk2:zagadnienia-test [2022/01/17 21:58]
jkonczak [DNS]
sk2:zagadnienia-test [2024/01/18 13:26] (aktualna)
jkonczak
Linia 1: Linia 1:
-Zagadnienia na test 2019/2020:+Zagadnienia na test 2023/2024:
  
 ====== Programowanie ====== ====== Programowanie ======
  
 Zagadnienia:  ​ Zagadnienia:  ​
-  * Znać podstawowe funkcje, wiedzieć co robią. \\ <​html><​small></​html>​Lista funkcji: ''​socket,​ bind, connect, listen, accept, shutdown, close, fcntl, read, recv, recvfrom, write, send, sendto, setsockopt, gethostbyname,​ getaddrinfo,​ getnameinfo,​ inet_aton, ​inet_aton, inet_addr, htons, ntohs, select, poll, epoll_create1,​ epoll_ctl, epoll_wait''<​html></​small></​html>​ +  * Znać podstawowe funkcje, wiedzieć co robią. \\ <​html><​small></​html>​Lista funkcji: ''​socket,​ bind, connect, listen, accept, shutdown, close, fcntl, read, recv, recvfrom, write, send, sendto, setsockopt, gethostbyname,​ getaddrinfo,​ getnameinfo,​ inet_aton, ​inet_ntoa, inet_addr, htons, ntohs, select, poll, epoll_create1,​ epoll_ctl, epoll_wait''<​html></​small></​html>​ 
-  * Znać podstawowe stałe i wiedzieć co oznaczają. \\ <​html><​small></​html>​Lista stałych: ''​AF_INET,​ AF_INET6, SOCK_STREAM,​ SOCK_DGRAM, INADD_ANY, INADDR_LOOPBACK,​ O_NONBLOCK, MSG_DONTWAIT,​ MSG_WAITALL,​ SHUT_RDWR, SOL_SOCKET, SO_REUSEADDR,​ POLLIN, POLLOUT, EPOLLIN, EPOLLOUT, EPOLLET''<​html></​small></​html>​ +  * Znać podstawowe stałe i wiedzieć co oznaczają. \\ <​html><​small></​html>​Lista stałych: ''​AF_INET,​ AF_INET6, SOCK_STREAM,​ SOCK_DGRAM, INADD_ANY, INADDR_LOOPBACK, SOMAXCONN, O_NONBLOCK, MSG_DONTWAIT,​ MSG_WAITALL,​ SHUT_RDWR, SOL_SOCKET, SO_REUSEADDR,​ POLLIN, POLLOUT, EPOLLIN, EPOLLOUT, EPOLLET''<​html></​small></​html>​ 
-  * Znać podstawowe struktury i wiedzieć co zawierają. \\ <​html><​small></​html>​Lista struktur: ''​sockaddr,​ sockaddr_in,​ sockaddr_in6,​ inaddr_t, hostent, addrinfo, epoll_event,​ pollfd''​ <​html></​small></​html>​+  * Znać podstawowe struktury i wiedzieć co zawierają. \\ <​html><​small></​html>​Lista struktur: ''​sockaddr,​ sockaddr_in,​ sockaddr_in6''​ (tylko do czego służy)''​, inaddr_t, hostent, addrinfo, epoll_event,​ pollfd''​ <​html></​small></​html>​
   * Nie jest wymagana znajomość składni, kolejność czy nazwy argumentów funkcji / pól struktur. \\ <​html><​small></​html>​Np. trzeba wiedzieć, że funkcja socket tworzy gniazdo podanego protokołu (IPv4, IPv6) i typu (strumieniowe,​ zorientowane na wiadomość),​ a nie trzeba wiedzieć że pierwszy argument nazywa się ''​domain'',​ a trzeci ma typ ''​int''​.<​html></​small></​html>​   * Nie jest wymagana znajomość składni, kolejność czy nazwy argumentów funkcji / pól struktur. \\ <​html><​small></​html>​Np. trzeba wiedzieć, że funkcja socket tworzy gniazdo podanego protokołu (IPv4, IPv6) i typu (strumieniowe,​ zorientowane na wiadomość),​ a nie trzeba wiedzieć że pierwszy argument nazywa się ''​domain'',​ a trzeci ma typ ''​int''​.<​html></​small></​html>​
-  * Wiedzieć jak wygląda obsługa błędów w sieciach. Umieć na podstawie objaśnienia błędu wypisanego np. przez ''​perror''​ zdiagnozować co mogło być przyczyną błędu. Wiedzieć czym jest zmienna ''​errno''​ i gdzie znaleźć kody które może zawierać. +  ​* <​small>​Kojarzyć zmienne, stałe i funkcje z interfejsu POSIX / standardu C które mają zastosowanie przy programowaniu aplikacji sieciowych i pojawiały się na laboratoriach – mogą się pojawić w kodzie podanym w treści zadania</​small>​ 
-  * Znać różnice między protokołem TCP i UDP. +  ​* Wiedzieć jak wygląda obsługa błędów w sieciach. 
-  * Wiedzieć w jakiej kolejności można i w jakiej kolejności należy wywoływać ​funkcję ​na gnieździe, w szczególności by stworzyć klienta/​serwer TCP/UDP.+  * Umieć na podstawie objaśnienia błędu wypisanego np. przez ''​perror''​ zdiagnozować co mogło być przyczyną błędu. 
 +  * Wiedzieć czym jest zmienna ''​errno''​ i gdzie znaleźć kody które może zawierać. 
 +  * Znać różnice między protokołem TCP i UDP, m. inn. strumieniowe vs datagramowe,​ gwarancje dawane programiście przez protokół
 +  * Wiedzieć w jakiej kolejności można i w jakiej kolejności należy wywoływać ​funkcje ​na gnieździe, w szczególności by stworzyć klienta/​serwer TCP/UDP. 
 +  * Wiedzieć jakie funkcje pozwalają znaleźć IP dla podanej nazwy domenowej i czym się różnią
   * Wiedzieć czym różni się blokująca i nieblokująca obsługa gniazd.   * Wiedzieć czym różni się blokująca i nieblokująca obsługa gniazd.
   * Wiedzieć które funkcje operujące na gniazdach mogą zablokować program.   * Wiedzieć które funkcje operujące na gniazdach mogą zablokować program.
Linia 16: Linia 20:
   * Ile bajtów może przeczytać funkcja read (recv, recvfrom, …), kiedy mniej niż żądano.   * Ile bajtów może przeczytać funkcja read (recv, recvfrom, …), kiedy mniej niż żądano.
   * Ile bajtów może przeczytać funkcja write (send, sendto, …), kiedy mniej niż żądano.   * Ile bajtów może przeczytać funkcja write (send, sendto, …), kiedy mniej niż żądano.
 +  * Wiedzieć jakie gwarancje (bądź brak) odbierania danych, kolejności odbioru, odbierania danych takimi porcjami jakimi były wysyłane, wysyłania nie szybciej niż pozwala łącze daje TCP i UDP
   * Znać wzorce projektowe do odbierania i wysyłania wiadomości (uwzględniające możliwość zablokowania się funkcji / niemożliwość wysłania i odebrania danych bez czekania).   * Znać wzorce projektowe do odbierania i wysyłania wiadomości (uwzględniające możliwość zablokowania się funkcji / niemożliwość wysłania i odebrania danych bez czekania).
   * Wiedzieć jakimi funkcjami obsługuje się szukanie IP dla podanej nazwy domenowej i czym te funkcje się różnią.   * Wiedzieć jakimi funkcjami obsługuje się szukanie IP dla podanej nazwy domenowej i czym te funkcje się różnią.
   * Na czym polega wielowątkowa obsługa gniazd.   * Na czym polega wielowątkowa obsługa gniazd.
-  * Na czym polega poll/epoll, czym się różnią, jakie zdarzenia na gniazdach ​mogą raportować.+  ​* Wiedzieć które funkcje można bezpiecznie używać w programie wielowątkowym,​ jak działają ​ i jakie mają gwarancje współbieżne wywołania funkcji sieciowych. 
 +  ​* Na czym polega ​''​poll'' ​mechanizm ​epoll, czym się różnią, jakie zdarzenia na gniazdach ​raportują w przypadku przyjścia nowego połączenia,​ przyjścia danych, możliwości wysłania danych, zamknięcia gniazda, wystąpienia błędu na gnieździe.
   * Jak, wykorzystując ''​poll''​ / ''​epoll_wait'',​ czekać na możliwość odczytu / zapisu danych do któregoś z podanych gniazd.   * Jak, wykorzystując ''​poll''​ / ''​epoll_wait'',​ czekać na możliwość odczytu / zapisu danych do któregoś z podanych gniazd.
 +  * Jak funkcje ''​poll''​ / ''​epoll_wait''​ działają w wielowątkowych programach.
   * Jak wygląda obsługa multicastu.   * Jak wygląda obsługa multicastu.
   * Wiedzieć jakie "​archetypowe"​ klasy do obsługi sieci oferują języki/​biblioteki wysokiego poziomu.   * Wiedzieć jakie "​archetypowe"​ klasy do obsługi sieci oferują języki/​biblioteki wysokiego poziomu.
   * Wiedzieć w jakich sytuacjach wybrać języki/​biblioteki wysokiego poziomu a w jakich należy korzystać z niskopoziomowego interfejsu systemowego.   * Wiedzieć w jakich sytuacjach wybrać języki/​biblioteki wysokiego poziomu a w jakich należy korzystać z niskopoziomowego interfejsu systemowego.
 +  * kojarzyć komendy ''​netstat''​ / ''​ss'',​ ''​nc''​ / ''​netcat''​ / ''​socat'',​ ''​strace''​ / ''​ltrace'',​ ''​gdb''​ (debugger) i ich użycie do rozwoju, testowania i diagnostyki programów sieciowych
   * <​html><​small></​html>​Dla jasności: nie jest wymagana znajomość API do sieci z bibliotek Qt / języka Java<​html></​small></​html>​   * <​html><​small></​html>​Dla jasności: nie jest wymagana znajomość API do sieci z bibliotek Qt / języka Java<​html></​small></​html>​
 Przykładowe formy pytań w tej części: Przykładowe formy pytań w tej części:
-  * Pytania typowo teoretyczne ​(np. o działanie ​funkcji)+  * Pytania typowo teoretyczne, **np.**: 
 +    * co robi funkcja  
 +    * co oznacza konkretny argument (por. "czym w funkcji ​''​printf(char * fstr, …)''​ jest argument ''​fstr''"​) 
 +    * co określają stałe, w jakiej funkcji można je użyć 
 +    * czy tej funkcji można użyć w danym przypadku 
 +    * co spowoduje użycie funkcji w danym przypadku
   * Fragment kodu i pytanie:   * Fragment kodu i pytanie:
-    * co robi / co wypisze na ekran+    * co robi dany kod podana linia 
 +    * co wypisze na ekran wykonanie danego kod
     * w jakim kontekście może być użyty     * w jakim kontekście może być użyty
     * w jakim przypadku nie zadziała prawidłowo     * w jakim przypadku nie zadziała prawidłowo
 +  * Fragment kodu z luką i pytanie co pasuje w jej miejsce
   * Komunikat o błędzie i pytanie co mogło taki komunikat spowodować   * Komunikat o błędzie i pytanie co mogło taki komunikat spowodować
 +  * Jakim programem sprawdzić konkretny aspekt działania programu sieciowego, do czego służy dany program, co wypisze / spowoduje podana komenda, jaką komendą coś wypisać / spowodować
  
 ====== Sieci bezprzewodowe ====== ====== Sieci bezprzewodowe ======
Linia 44: Linia 60:
       * BSSID       * BSSID
       * SSID (ESSID)       * SSID (ESSID)
-      * rola identyfikatorów+      * kiedy i do czego są używane w/w identyfikatory
     * role urządzeń     * role urządzeń
       * AP       * AP
Linia 52: Linia 68:
       * w jakich rodzajach sieci występują       * w jakich rodzajach sieci występują
     * bezpieczeństwo     * bezpieczeństwo
-      * WEP, WPA-PSK, WPA-EAP, WPA2-PSK, WPA2-EAP, WPA3-SAE, WPA3-EAP+      * WEP, WPA-PSK, WPA-EAP, WPA2-PSK, WPA2-EAP, WPA3-SAE, WPA3-EAP, WPS
       * realny poziom bezpieczeństwa       * realny poziom bezpieczeństwa
       * realizacja uwierzytelniania       * realizacja uwierzytelniania
       * realizacja szyfrowania       * realizacja szyfrowania
-      * różnice między WPA/​WPA2-PSK,​ WPA3-SAE i WPA/​WPA2/​WPA3-EAP+      * różnice między WPA/​WPA2-PSK,​ WPA3-SAE i WPA/​WPA2/​WPA3-EAP<​html><​!--
     * na warstwie łącza danych:     * na warstwie łącza danych:
       * zadania karty bezprzewodowej       * zadania karty bezprzewodowej
-      * algorytm CSMA/CA+      * algorytm CSMA/CA, problem ukrytej/​odkrytej stacji
       * rodzaje ramek (typy i podtypy, do czego służą)       * rodzaje ramek (typy i podtypy, do czego służą)
 +      * jak tworzy się listę dostępnych sieci
 +      * jak dołącza się do wybranej sieci
 +      --></​html>​
     * Dla standardów 802.11{a,​b,​g,​n,​ac,​ax}     * Dla standardów 802.11{a,​b,​g,​n,​ac,​ax}
-      * z jakich częstotliwości ​korzystają +      * dla każdego standardu: ​z jakich ​pasm częstotliwości ​korzysta (2.4/​5/​6GHz) 
-      * jakie pasmo zajmują +      * dla każdego standardu: ​z jakimi ​szerokościami kanałów i przybliżonymi ​prędkościami mogą pracować 
-      * z jakimi prędkościami mogą pracować +      * czym jest wiele strumieni przestrzennych (spatial stream), jak wpływają na prędkość sieci 
-      * czy wiele sieci/​urządzeń może naraz korzystać z tego samego kanału +      * jak jest wykorzystywane wiele anten – beamforming,​ SU/MU-MIMO 
-      jak jest wykorzystywane wiele anten+      * czy wiele sieci/​urządzeń może naraz korzystać z tego samego kanału ​– CSMA, MU-MIMO, OFDMA 
 +    Znać zastosowanie,​ umieć czytać wyniki podstawowych komend (m. inn. ''​iwconfig'',​ ''​iw dev'',​ ''​iw phy'',​ ''​iwconfig … mode …'',​ ''​iw … set type …'',​ ''​iw[config] … scan'',​ ''​iw … [link/​info]'',​ ''​iwconfig … essid …'',​ ''​iwconfig … freq …'',​ ''​iw … <ibss join/​connect>​ …'',​ ''​wpa_supplicant''​) \\ <​html><​small></​html>​Potencjalne pytania będą zawierać poprawną składnię komend, będą dotyczyć wyboru pasującej komendy lub interpretacji wyniku komendy<​html></​small></​html>​
     * <​html><​small></​html>​Nie będzie pytań dotyczących konkretnych komend na urządzeniach Cisco/​MikroTik<​html></​small></​html>​     * <​html><​small></​html>​Nie będzie pytań dotyczących konkretnych komend na urządzeniach Cisco/​MikroTik<​html></​small></​html>​
  
Linia 95: Linia 115:
       * CNAME       * CNAME
       * TXT       * TXT
 +    * które rekordy są obowiązkowe dla każdej strefy
     * gdzie (na serwerze której domeny) należy umieszczać wpisy dla podanej nazwy domenowej (powyższych typów)     * gdzie (na serwerze której domeny) należy umieszczać wpisy dla podanej nazwy domenowej (powyższych typów)
 +    * jakie rekordy i w jakich domenach są wykorzystywane/​potrzebne:​
 +      * do działania DNS
 +      * do tłumaczenia adresów domenowych na IPv4/6
 +      * w poczcie elektronicznej
 +      * do tłumaczenia IP na nazwę domenową ​
     * na czym polega cache'​owanie rekordów (przez serwery caching), kto i jak określa ile czasu rekord może być cache'​owany     * na czym polega cache'​owanie rekordów (przez serwery caching), kto i jak określa ile czasu rekord może być cache'​owany
     * na czym polega zone transfer     * na czym polega zone transfer
-  * znać komendy dig / host do odpytywania serwerów DNS w zakresie (= tylko umieć określić, co podana komenda robi):+  * znać komendy ​''​dig'' ​''​host'' ​do odpytywania serwerów DNS w zakresie (= tylko umieć określić, co podana komenda robi lub co oznacza jej wynik):
     * odpytania o konkretny typ rekordu     * odpytania o konkretny typ rekordu
     * odpytania konkretnego serwera DNS     * odpytania konkretnego serwera DNS
     * wyjaśnienia wyniku     * wyjaśnienia wyniku
  
 +<​html><​!--
 ====== Kształtowanie ruchu ====== ====== Kształtowanie ruchu ======
   * Wiedzieć   * Wiedzieć
Linia 110: Linia 137:
       * o czym można decydować       * o czym można decydować
     * czym różnią się bezklasowe i klasowe qdisc     * czym różnią się bezklasowe i klasowe qdisc
-    * wiedzieć ​co mają zapewniać bezklasowe qdisc (jaką ideę realizują)+    * co mają zapewniać bezklasowe qdisc (jaką ideę realizują)
       * pfifo       * pfifo
       * pfifo_fast       * pfifo_fast
Linia 116: Linia 143:
       * tbf       * tbf
       * fq_codel       * fq_codel
-    * wiedzieć ​co mają zapewniać klasowe qdisc (jaką ideę realizują)+    * co mają zapewniać klasowe qdisc (jaką ideę realizują)
       * prio       * prio
       * htb       * htb
-    * klasy+    * czym są klasy
       * po co są tworzone       * po co są tworzone
       * dla htb jakie mają opcje       * dla htb jakie mają opcje
-    * filtry+    * czym są filtry
       * po co są tworzone       * po co są tworzone
-      * jakie filtry da się zdefiniować +      * jak używa ​się filtra ​''​fw''​ 
-        * ''​u32'' ​– adresy IP, porty TCP/UDP +  * Wytłumaczyć co robią podane komendy (w w/w zakresie) 
-        * ''​fw''​ – ruch oznaczony wcześniej przez iptables/ebtables +--></html> 
 +  
 ====== IPv6 ====== ====== IPv6 ======
   * Wiedzieć   * Wiedzieć
Linia 136: Linia 163:
       * subnet       * subnet
       * IID       * IID
 +    * Skąd jest brany IID
     * jak jest zbudowany adres multicastowy     * jak jest zbudowany adres multicastowy
     * jak zmieniono nagłówek IPv6 w porównaniu do IPv4     * jak zmieniono nagłówek IPv6 w porównaniu do IPv4
Linia 141: Linia 169:
       * NDP       * NDP
       * DHCPv6       * DHCPv6
 +    * jak jest realizowana fragmentacja w IPv6 i co to jest pMTU
     * jakie wygląda współistnienie IPv4 i IPv6     * jakie wygląda współistnienie IPv4 i IPv6
-      * co to są tunele +      ​* co oznacza dual stack 
-      * jak wygląda podstawowy tunel 6in4+      ​* co to są tunele 6in4
       * czemu służy usługa tunnel broker       * czemu służy usługa tunnel broker
 +      * czemu służą translacje 4→6 i 6→4
   * Znać   * Znać
     * rodzaje adresów     * rodzaje adresów
Linia 164: Linia 194:
   * Na każde pytanie co najmniej jedna odpowiedź jest poprawna.   * Na każde pytanie co najmniej jedna odpowiedź jest poprawna.
   * Za błędne odpowiedzi nie ma punktów ujemnych.   * Za błędne odpowiedzi nie ma punktów ujemnych.
-  * Zaznaczenie w pytaniach wielokrotnego wyboru więcej odpowiedzi niż jest poprawnych skutkuje brakiem punktu za pytanie.+  * pytaniach wielokrotnego wyboru
 +    * Zaznaczenie ​więcej odpowiedzi niż jest poprawnych skutkuje brakiem punktu za pytanie. 
 +    * Za każdą zaznaczoną poprawną odpowiedź z //N// poprawnych odpowiedzi dostaje się //1/N// punktu. \\ <​small>​ Np. zaznaczając 2 poprawne i 1 błędną odpowiedź w pytaniu z 3 poprawnymi odpowiedziami uzyskuje się ⅔ punkta za pytanie.</​small>​
   * **Nie można** korzystać z żadnych materiałów pomocniczych ani konsoli   * **Nie można** korzystać z żadnych materiałów pomocniczych ani konsoli
  
Linia 171: Linia 203:
 **Q:** Czy na teście mogą pojawić się jakieś komendy? \\ **Q:** Czy na teście mogą pojawić się jakieś komendy? \\
 **A:** W treści pytania lub w możliwych odpowiedziach mogą pojawić się nazwy programów, pełne polecenia lub wyniki wykonania poleceń. Wszystkie zadania to wybór jednej albo wskazanej liczby gotowych odpowiedzi, w teście nie będzie pytań w których konieczne by było wpisanie jakiegokolwiek teksu. ​ **A:** W treści pytania lub w możliwych odpowiedziach mogą pojawić się nazwy programów, pełne polecenia lub wyniki wykonania poleceń. Wszystkie zadania to wybór jednej albo wskazanej liczby gotowych odpowiedzi, w teście nie będzie pytań w których konieczne by było wpisanie jakiegokolwiek teksu. ​
- 
  
sk2/zagadnienia-test.1642453098.txt.gz · ostatnio zmienione: 2022/01/17 21:58 przez jkonczak