User Tools

Site Tools


sk2:zagadnienia

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sk2:zagadnienia [2023/12/30 17:42] – [Laboratoria 12 (na zajęciach z DNS; 21/22.12 / 9.1)] jkonczaksk2:zagadnienia [2026/10/23 22:00] (current) – jkonczak
Line 3: Line 3:
 Do zajęć konieczna jest znajomość programowania strukturalnego i obiektowego w C++.  Do zajęć konieczna jest znajomość programowania strukturalnego i obiektowego w C++. 
  
-===== Laboratoria 2 (10/12/13.10) =====+===== Laboratoria 2 (9/12/13.10) =====
   * znać funkcje (nazwy, jakie informacje są przekazywane w argumentach, co oznaczają używane przez nie stałe) do:   * znać funkcje (nazwy, jakie informacje są przekazywane w argumentach, co oznaczają używane przez nie stałe) do:
     * tworzenia gniazda     * tworzenia gniazda
Line 12: Line 12:
   * wiedzieć że kolejność bajtów we wiadomościach musi być z góry ustalona   * wiedzieć że kolejność bajtów we wiadomościach musi być z góry ustalona
   * kojarzyć funkcje pozwalające na wpisanie adresu IP i portu   * kojarzyć funkcje pozwalające na wpisanie adresu IP i portu
 +  * umieć napisać polecenia konsolowe (netcat/socat) do nawiązywania połączenia TCP i tworzenia serwera TCP  
   <html><!--* umieć wyświetlić pomoc systemową dla funkcji / struktur--></html>   <html><!--* umieć wyświetlić pomoc systemową dla funkcji / struktur--></html>
  
 +===== Laboratoria 4 (23/26/27.10) =====
  
-===== Laboratoria 3 (17/19/20.10) ===== +  * znać wymienione niżej funkcje API gniazd, to znaczy wiedzieć: 
- +    * jak nazywa się funkcja która wykonuje konkretne działanie 
-  * znać pełen zestaw funkcji BSD sockets API:+    * 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:     * ogólne:
       * tworzenie gniazda       * tworzenie gniazda
Line 32: Line 36:
       * wysłanie danych       * wysłanie danych
       * odbiór 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, SHUT_RDWR, SO_REUSEADDR
   * wiedzieć w jakiej kolejności można wywoływać w/w funkcje   * 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ć:   * wiedzieć jakie funkcje i w jakiej kolejności należy użyć, aby stworzyć:
Line 39: Line 47:
     * serwer UDP     * serwer UDP
  
-===== Laboratoria 5 (2/3/6/7.11) =====+===== Laboratoria 5 (30.10 / 2/3.11) =====
  
-  * znać różnice między trybem blokującym i nieblokującym  +  * tryb blokujący / nieblokujący: 
-  * wiedzieć które funkcje (spośród wszystkich omawianych funkcji sieciowych) mogą się zablokować +    * jakie są różnice między trybami 
-  * wiedzieć w jakiej sytuacji w/w funkcje mogą się zablokować +    * co jeśli funkcja która nie może natychmiast się wykonać jest wywołana w trybie nieblokującym 
-  * znać gwarancje funkcji write w trybie blokującym +    * które funkcje z interfejsu gniazd mogą się zablokować, które są zawsze nieblokujące 
-  * rozumieć jakie wartości (ilości bajtów) mogą zwrócić funkcje odbierające dane z sieci +    * należy umieć podać w jakich sytuacjach i na jak długo konkretna funkcja z interfejsu gniazd może się zablokować 
-  * rozumieć jakie wartości (ilości bajtów) mogą zwrócić funkcje wysyłające dane do sieci +  * wysyłanie/odbieranie danych w trybie (nie)blokującym: 
-  * rozumieć na czym polega protokół strumieniowy i zorientowany na wiadomość (datagramowy), \\ szczególnie w jakich porcjach mogą być odbierane dane w TCP i UDP +    * jakie gwarancje mają funkcje wysyłające dane w trybie blokującym 
-  * rozumieć czym może skutkować brak kontroli przepływu +    * jakie wartości mogą zwrócić funkcje wysyłające dane do sieci (w każdym z trybów) 
-  * rozumieć czym może skutkować brak uporządkowania i potwierdzania odebrania danych+    * 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   * znać praktyczne różnice między protokołami TCP i UDP
     * jakie gwarancje zapewnia programiście TCP     * jakie gwarancje zapewnia programiście TCP
Line 62: Line 73:
     * semantyka strumieniowa / zorientowana na wiadomość (datagramowa)     * semantyka strumieniowa / zorientowana na wiadomość (datagramowa)
 --></html> --></html>
 +
 +====== ——— 2025 ——— ======
 +
 +===== Laboratoria 7 (21.11/2.12) =====
 +Wejściówka obejmuje temat z __wykładu__ (temat z 18.11).
 +\\
 +<small>
 +Zagadnienia z pierwszej grupy powinny być częścią wiedzy ogólnoinformatycznej,
 +stąd na wykładzie te pojęcia mogą się pojawić bez definicji.
 +\\
 +Dla porządku zamieszczam odnośniki przypominające te zagadnienia.
 +</small>
 +\\
 + 
 +
 +  * co to jest: <small>(należy umieć podać krótkie definicje lub dopasować nazwę do definicji)</small>
 +    * uwierzytelnianie, autoryzacja [[https://www.microsoft.com/pl-pl/security/business/security-101/what-is-authentication#authorization|■]], szyfrowanie
 +    * kryptografia symetryczna, kryptografia asymetryczna <html>
 +      <div style="display:inline-block"><div style="position:absolute; transform: translateY(-1em);">
 +      <div style="display:inline-block; height: 4.2em; width: 0.5em; border: 1px gray solid; border-left: none"></div>
 +      <div style="display:inline-block; height: 5.2em; vertical-align: middle;"></html>[[https://www.youtube.com/watch?v=0ctat6RBrFo|■]]<html></div></div></div></html>
 +    * klucz publiczny, klucz prywatny
 +    * urząd certyfikacji (certificate authority), certyfikat
 +    * man-in-the-middle attack [[https://pl.wikipedia.org/wiki/Atak_man_in_the_middle|■]]
 +    * standard X.509 [[https://www.ibm.com/docs/en/sdk-java-technology/8?topic=certificate-x509-certificates|■]], format PEM [[https://learn.microsoft.com/pl-pl/azure/iot-hub/reference-x509-certificates#certificate-formats|■]]
 +  
 +  * 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 <small> 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</small>
 +
 +  * 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; 12/16.12) =====
 +
 +Wejściówka obejmuje temat z __wykładu__ (temat z 9.12).
 +
 +  * 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; 19/23.12) =====
 +
 +  * znać komendy odpytujące:
 +    * wskazany serwer nazw
 +    * o wskazane rodzaje rekordów \\ w tym 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 …''
 +  * na podstawie rekordów określić jaki adres IP użyje:
 +    * większość programów, w tym przeglądarka internetowa, łącząc się do wskazanej nazwy domenowej \\ (<small>NB:  wyniku wywołania ''gethostbyname'' / ''getaddrinfo''</small>)
 +    * serwer pocztowy nadawcy łącząc się do serwera pocztowego odbiorcy, chcąc wysłać mail na podany adres e-mail
 +
 +===== Laboratoria 12 (na zajęciach z HTTP; 9/13.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<html><!--
 +    * która obowiązkowo wymaga szyfrowania --></html>
 +  * 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) ===== ===== Laboratoria 10 (na 1 zajęciach z WLAN, 7/8/12.12) =====
Line 195: Line 301:
  
 **Uwaga**: Wejściówka obejmuje przypomnienie z przedmiotów //programowanie niskopoziomowe//, //programowanie obiektowe// i //programowanie systemowe i współbieżne//: **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+''''+ +  * jakim poleceniem (w konsoli) można skompilować program w języku C/C+%%%%+ 
-  * podstawy języka C/C+''''+, w szczególności:+  * podstawy języka C/C+%%%%+, w szczególności:
     * co to jest struktura i unia     * co to jest struktura i unia
     * czym jest wskaźnik, jak dostać się do wskazywanych danch, jak dostać wskaźnik na wybrane dane     * czym jest wskaźnik, jak dostać się do wskazywanych danch, jak dostać wskaźnik na wybrane dane
     * na czym polega rzutowanie, jak je wykonać     * na czym polega rzutowanie, jak je wykonać
-  * jak w programie w języku C/C+''''+:+  * jak w programie w języku C/C+%%%%+:
     * dostać się do argumentów programu     * dostać się do argumentów programu
     * zaalokować statycznie i dynamicznie pamięć, zwolnić zajętą wcześniej pamięć     * zaalokować statycznie i dynamicznie pamięć, zwolnić zajętą wcześniej pamięć
sk2/zagadnienia.1703958136.txt.gz · Last modified: (external edit)