Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja Ostatnia wersja Both sides next revision | ||
sk2:zagadnienia-test [2022/01/17 22:01] jkonczak [Kształtowanie ruchu] |
sk2:zagadnienia-test [2023/01/16 22:16] jkonczak |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | Zagadnienia na test 2019/2020: | + | Zagadnienia na test 2022/2023: |
====== 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, 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, inaddr_t, hostent, addrinfo, epoll_event, pollfd'' <html></small></html> | ||
Linia 10: | Linia 10: | ||
* 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ć. | * 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ć. | ||
* Znać różnice między protokołem TCP i UDP. | * Znać różnice między protokołem TCP i UDP. | ||
- | * 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. | + | * 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 17: | ||
* 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ć. | + | * 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'' 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. o działanie funkcji) | ||
* 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 | ||
Linia 44: | Linia 49: | ||
* 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 59: | Linia 64: | ||
* 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 | ||
* 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 103: | ||
* 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) | ||
* 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 | ||
Linia 124: | Linia 133: | ||
* czym są 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 | + | |
- | * ''fw'' – ruch oznaczony wcześniej przez iptables/ebtables | + | |
* Wytłumaczyć co robią podane komendy (w w/w zakresie) | * Wytłumaczyć co robią podane komendy (w w/w zakresie) | ||
Linia 143: | Linia 150: | ||
* DHCPv6 | * DHCPv6 | ||
* 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 172: | Linia 180: | ||
**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. | ||
- | |||