przejście do zawartości
Jan Kończak
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
bio-psiec
»
zagadnienia-test
bio-psiec:zagadnienia-test
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
~~NOTOC~~ ===== 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 ----- <small> //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. </small>
bio-psiec/zagadnienia-test.txt
· ostatnio zmienione: 2026/01/18 14:28 przez
jkonczak
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Złóż / rozłóż wszystko
Do góry