Compare commits

..

9 Commits

Author SHA1 Message Date
MKjanek32 02a4e8cf5e ISK: bezpieczeństwo systemów i sieci 2021-02-04 20:02:38 +01:00
Jan Potocki 7125acaf78 Kierunkowe: arytmetyka 2019-02-03 15:52:27 +01:00
Jan Potocki 959f5973c4 ISK: protokoły routingu v1 2019-02-03 02:48:30 +01:00
Jan Potocki 8b4dbdcbc3 ISK: protokoły sieci rozległych v1, pozdrawiam z Poznania ;-) 2019-02-02 13:50:48 +01:00
Jan Potocki a0a8418897 Kierunkowe: ray tracing, interpunkcja 2019-01-31 15:16:15 +01:00
Jan Potocki ebb520038a Kierunkowe: ray tracing, poprawka wypunktowania IV 2019-01-31 15:15:18 +01:00
Jan Potocki f8342db939 Kierunkowe: ray tracing, poprawka wypunktowania III 2019-01-31 15:13:56 +01:00
Jan Potocki 6696004072 Kierunkowe: ray tracing, poprawka wypunktowania II 2019-01-31 15:13:19 +01:00
Jan Potocki c6fb417c41 Kierunkowe: ray tracing, poprawka wypunktowania I 2019-01-31 15:10:03 +01:00
2 changed files with 79 additions and 6 deletions
+49
View File
@@ -1,3 +1,19 @@
# Protokoły rozległych sieci komputerowych
Rozległe sieci komputerowe to sieci zlokalizowane na dużym obszarze geograficznym (region, kraj, kontynent, cały świat), służące do łączenia ze sobą i przesyłania danych między wieloma sieciami lokalnymi. Protokoły stosowane w sieciach rozległych obejmują pierwsze 2 lub 3 warstwy modelu ISO/OSI (fizyczną, łącza danych i sieciową).
Podstawowy podział protokołów sieci rozległych wynika ze sposobu zestawiania połączenia (komutacji). Wyróżnia się:
- komutację kanałów gdzie każdemu połączeniu przydzielane są na wyłączność kolejne łącza między węzłem źródłowym a węzłem docelowym (zajmowane przez cały czas trwania połączenia), przez które następnie przesyłane są dane,
- komutację pakietów gdzie dane dzielone są na fragmenty (pakiety), które następnie przesyłane są przez wspólne łącza między kolejnymi węzłami sieci od źródła do celu; umożliwia to lepsze wykorzystanie łączy i łatwe omijanie uszkodzonych fragmentów sieci (jedna transmisja może się odbywać wieloma trasami) kosztem nieco większego opóźnienia transmisji, niż w przypadku komutacji kanałów,
- komutację komórek w zasadzie odmiana komutacji pakietów, w której dane dzieli się na komórki, w porównaniu z pakietami krótsze i posiadające zawsze taką samą długość (pakiety mają określoną tylko maksymalną długość); rozwiązanie opracowane z myślą o szybszym przełączaniu danych w węzłach sieci z zastosowaniem specjalizowanych układów cyfrowych (ASIC), obecnie straciło na znaczeniu z powodu wzrostu mocy obliczeniowej routerów i mniejszej elastyczności od komutacji pakietów.
Kilka istotniejszych protokołów sieci rozległych to:
- __PPP (Point-to-Point Protocol)__ bazujący na komutacji kanałów protokół warstwy łącza danych, używany do zestawienia bezpośredniego połączenia i wymiany danych między dwoma węzłami sieci, może pracować bezpośrednio na interfejsach szeregowych lub być opakowywany w ramki innego protokołu warstwy 2 (__PPPoE__ PPP over Ethernet, __PPPoA__ PPP over ATM), obecnie często stosowany do transmisji danych na linii abonenckiej między siecią szkieletową operatora a urządzeniami klienta (między innymi NETIA i Orange wykorzystują PPPoE na łączach DSL) oraz do zestawiania wirtualnego połączenia w niektórych implementacjach sieci VPN (np. L2TP+IPSec),
- __MPLS (Multi-protocol Label Switching)__ protokół wykorzystujący komutację pakietów, opracowany niejako w celu rozszerzenia sieci IP o narzędzia inżynierii ruchu (chociaż teoretycznie może współpracować z dowolnym protokołem warstwy 3), wraz z protokołem IP podstawa działania dzisiejszych sieci szkieletowych; idea działania sieci MPLS opiera się
na przełączaniu etykiet, które identyfikują kolejny węzeł na trasie i są zastępowane nowymi przy każdym przeskoku na wejściu do sieci MPLS pakiety są obudowywane za pomocą etykiet przez routery brzegowe __LER__ (Label Edge Router), a w węzłach sieci routery wewnętrzne __LSR__ (Label Switch Router) po odebraniu pakietu indeksują za pomocą jego etykiety tablicę, w której znajduje się kolejny węzeł na trasie i nowa etykieta umożliwia to definiowanie różnych tras między tymi samymi punktami w sieci dla różnego rodzaju ruchu, dzięki czemu można np. rozmowy głosowe przesyłać szybszą trasą niż transfer plików, równoważąc obciążenie łączy,
- __X.25 / Frame Relay__ jedne z pierwszych protokołów wykorzystujących komutację pakietów protokół X.25 obejmuje warstwę fizyczną, łącza danych i sieciową, został opracowany w czasach gdy łącza w sieciach rozległych były bardzo zawodne (zawiera więc rozbudowane mechanizmy korekcji błędów, ale wprowadza około 15 ms opóźnienia na każdy węzeł, a jego maksymalna przepustowość wynosi tylko 2 Mb/s); Frame Relay jest jego unowocześnioną wersją obejmującą tylko warstwę fizyczną i łącza danych, zaprojektowaną pod kątem szybszej transmisji danych przez stabilne łącza,
- __ATM (Asynchronous Transfer Mode)__ protokół bazujący na komutacji komórek, obejmujący warstwę fizyczną, łącza danych i sieciową, opracowany z myślą o stabilnych połączeniach z niskimi opóźnieniami; do transmisji danych wykorzystuje komórki o 5-bajtowym nagłówku i 48-bajtowym polu danych, wykorzystuje koncepcję wirtualnych ścieżek trasowanie jest dokonywane tylko raz, na początku zestawiania połączenia.
# Charakterystyka wybranej techniki wirtualizacji # Charakterystyka wybranej techniki wirtualizacji
(to jest oczywiście dość rozległe zagadnienie i sami możecie wybrać o czym dokładnie powiecie, tu spróbowałem zebrać trochę informacji o różnych odmianach wirtualizacji, tak żebyście mieli rozeznanie w temacie) (to jest oczywiście dość rozległe zagadnienie i sami możecie wybrać o czym dokładnie powiecie, tu spróbowałem zebrać trochę informacji o różnych odmianach wirtualizacji, tak żebyście mieli rozeznanie w temacie)
@@ -37,3 +53,36 @@ W bardziej skomplikowanym wariancie używa się wirtualizacji sprzętu syste
__Wirtualne sieci prywatne (VPN)__ __Wirtualne sieci prywatne (VPN)__
Wykorzystanie wirtualnych szyfrowanych połączeń punkt-punkt (z własną adresacją IP, rotuingiem, itp.) zestawianych przez publiczne łącza, w celu łączenia odległych sieci lokalnych bezpiecznym kanałem bez konieczności dzierżawienia własnych łącz od operatorów (co jest kosztowne) lub w celu zdalnego dostępu do sieci wewnętrznej z dowolnego miejsca w internecie (np. do sieci firmowej z domu pracownika) przykładowe protokoły: OpenVPN, IKEv2+IPSec, Cisco IPSec. Wykorzystanie wirtualnych szyfrowanych połączeń punkt-punkt (z własną adresacją IP, rotuingiem, itp.) zestawianych przez publiczne łącza, w celu łączenia odległych sieci lokalnych bezpiecznym kanałem bez konieczności dzierżawienia własnych łącz od operatorów (co jest kosztowne) lub w celu zdalnego dostępu do sieci wewnętrznej z dowolnego miejsca w internecie (np. do sieci firmowej z domu pracownika) przykładowe protokoły: OpenVPN, IKEv2+IPSec, Cisco IPSec.
# Protokoły routingu
Zadaniem protokołów routingu jest dynamiczna wymiana między routerami informacji o podłączonych do nich sieciach oraz wyznaczanie na podstawie zebranych w ten sposób informacji następnego węzła na trasie do odległych sieci (standardowo router może trasować tylko pakiety, których host docelowy znajduje się w podłączonych do niego sieciach) dzięki czemu nie jest konieczna statyczna konfiguracja tras, co w dużych sieciach byłoby bardzo trudne i uciążliwe.
W protokołach routingu stosuje się pojęcie __metryki__, czyli wartości określającej, która z dostępnych tras jest lepsza. Może ona być wyznaczana na podstawie wielu parametrów przepustowość łącza, liczba przeskoków, opóźnienie, itp.
Podstawowym podziałem protokołów routingu są następujące dwie grupy:
- __protokoły wektora odległości__ w ich przypadku rozgłaszana sąsiadom jest kopia całej tablicy routingu (razem z metrykami i informacjami otrzymanymi od innych routerów), pojedynczy router zna tylko odległość swoich sąsiadów od sieci docelowej (różnie definiowaną), nie posiada natomiast informacji o całej trasie następny węzeł wybierany jest na podstawie lepszej metryki, jednak ostatecznie wybrana w ten sposób trasa niekoniecznie musi się okazać najlepszą,
- __protokoły stanu łącza__ w ich przypadku rozgłaszane wszystkim routerom (nie tylko sąsiadom) są informacje o podłączonych sieciach i ich metrykach, każdy router przechowuje informacje o całej sieci w formie grafu i wylicza na ich podstawie najlepszą drogę do wszystkich pozostałych routerów, najczęściej za pomocą algorytmu Dijkstry (Shortest Path First); ze względu na zasadę działania protokoły stanu łącza w porównaniu z protokołami wektora odległości wymagają od routera większej mocy obliczeniowej i większej ilości pamięci oraz mocniej obciążają łącza sieciowe (w momencie zbierania informacji o topologii sieci).
__Protokoły wewnętrzne__
Wewnętrzne protokoły routingu wykorzystuje się do wyznaczania tras wewnątrz __systemu autonomicznego__ czyli w obrębie sieci administrowanych przez jednego zarządcę. Do najbardziej znanych należą:
- __RIP (Routing Information Protocol)__ protokół wektora odległości, jeden z pierwszych protokołów routingu dynamicznego, wykorzystujący jako metrykę liczbę przeskoków; w celu zabezpieczenia przed powstawaniem pętli maksymalna liczba przeskoków jest ograniczona do 15 (co jednocześnie określa maksymalną wielkość sieci obsługiwaną za jego pomocą); wersje RIPv1 i RIPv2 są przeznaczone dla sieci IPv4, wersja RIPng dla sieci IPv6,
- __OSPF (Open Shortest Path First)__ najczęściej obecnie stosowany protokół stanu łącza, dostosowany do pracy w dużych sieciach, aby zapewnić skalowalność wykorzystuje hierarchiczny podział sieci na obszary w obrębie jednego obszaru każdy router zna pełną topologię sieci, natomiast routery brzegowe obszarów wymieniają się tylko trasami (jak w protokołach wektora odległości), nadrzędny obszar zerowy zapobiega powstawaniu pętli, do komunikacji między routerami wykorzystywany jest protokół IP (OSPFv2 IPv4, OSPFv3 IPv6); protokół OSPF jest używany w sieci W4,
- __IGRP (Interior Gateway Routing Protocol)__ protokół wektora odległości opracowany przez Cisco, w porównaniu z protokołem RIP wykorzystujący bardziej rozbudowane sposoby wyznaczania metryki i obsługujący większą maksymalną liczbę przeskoków (do 255),
- __EIGRP (Enhanced Interior Gateway Routing Protocol)__ opracowany przez Cisco następca protokołu IGRP, jest protokołem hybrydowym, przesyłającym i wykorzystującym zarówno informacje o sąsiedztwie, jak i o stanie łącza.
__Protokoły zewnętrzne__
Protokoły zewnętrzne służą do wyznaczania tras między systemami autonomicznymi. Najistotniejszym jest __BGP (Border Gateway Protocol)__, protokół __wektora ścieżki__ stanowiący obecnie podstawę routingu w internecie. Potokół BGP używa numerów systemów autonomicznych, przydzielanych przez odpowiednie organizacje podobnie jak adresy IP. Dane między routerami są wymieniane za pomocą protokołu TCP, do wyboru tras nie są stosowane metryki, tylko atrybuty poszczególnych systemów autonomicznych i algorytm wyboru (który może być implementowany różnie przez różnych producentów routerów). Protokół BGP standardowo jest używany w sieciach posiadających styki z co najmniej 2 dostawcami internetowymi, pozwala na pełną redundancję połączenia z internetem.
# Zasady projektowania bezpiecznych systemów i sieci komputerowych
(zagadnienie jest bardzo rozległe, samo bezpieczeństwo można zapewnić na różnych poziomach, tutaj wymienię kilka najistotniejszych według mnie kwestii)
- __możliwie prosta architektura__ (tzw. _reguła KISS_) tak aby zmniejszyć liczbę punktów, w których w ogóle może jakaś podatność wystąpić (i których zabezpieczenie trzeba wziąć pod uwagę),
- __fizyczne bezpieczeństwo infrastruktury__ ochrona przed wstępem niepowołanych osób do pomieszczeń z serwerami i urządzeniami sieciowymi, zamykanie szaf teletechnicznych (tzw. _szaf rack_) na klucz,
- __osobna sieć administracyjna__ wydzielenie dostępu do konfiguracji urządzeń sieciowych (lub również serwerów) do osobnej sieci, dodatkowo chronionej przed nieautoryzowanym dostępem,
- __zabezpieczenie przed podłączeniem do sieci przypadkowych urządzeń__ w zależności od potrzeb: w sieciach przewodowych wyłączanie nieużywanych portów na przełącznikach sieciowych, automatyczne blokowanie nieznanych adresów MAC; w sieciach bezprzewodowych stosowanie bezpiecznych obliczeniowo algorytmów szyfrowania, ze wspólnym kluczem (WPA2-PSK) lub z indywidualnymi danymi autoryzacyjnymi dla każdego użytkownika weryfikowanymi przez serwer RADIUS (WPA2 Enterprise, np. jak w eduroam),
- __filtrowanie ruchu sieciowego__ stosowanie zapór sieciowych (firewalli) i odpowiednich reguł, blokowanie nieużywanych portów TCP/UDP, wydzielanie serwerów do stref zdemilitaryzowanych (DMZ),
- __szyfrowanie połączeń__ zabezpieczenie transferu wrażliwych danych np. haseł użytkowników przez stosowanie odpowiednich protokołów (HTTPS, SSH, różne implementacje sieci VPN, itp.),
- __rozsądna polityka haseł__ stosowanie takich haseł, które w zależności od __specyfiki__ miejsca pracy zostaną uznane za bezpieczne (ważne! nie zawsze długie hasło = bezpieczne hasło, np. gdy stosowanie zbyt skomplikowanych haseł kończy się ich napisaniem na karteczce na stanowisku użytkownika),
- __przechowywanie haseł w bazach w bezpiecznym formacie__ najczęściej hash hasła, z wykorzystaniem algorytmu uznawanego za bezpieczny (tzn. dla którego nie udowodniono kolizji),
- __bezpieczeństwo zdalnego dostępu do serwerów__ np. stosowanie klucza publicznego i prywatnego zamiast hasła w celu autoryzacji użytkownika przy połączeniu SSH.
+30 -6
View File
@@ -1,3 +1,27 @@
# Arytmetyka stało- i zmiennoprzecinkowa
__Liczby stałoprzecinkowe__
W reprezentacji stałoprzecinkowej każdy bit ma zawsze taką samą wagę (zależącą od swojej pozycji) i co za tym idzie, pozycja przecinka jest ustalona z góry. Do kodowania liczb najczęściej wykorzystuje się system uzupełnieniowy do dwóch (U2), pozwalający zapisać zarówno liczby dodatnie, jak i ujemne oraz czasem naturalny kod binarny (NB), kiedy obliczenia prowadzone są tylko na liczbach dodatnich. Zaletą arytmetyki stałoprzecinkowej są zawsze dokładne obliczenia (w granicach precyzji określanej przez wagę najmłodszej cyfry) oraz duża szybkość wykonywania działań, wadą jest stosunkowo niewielki zakres możliwych do zapisania wartości.
__Liczby zmiennoprzecinkowe__
W reprezentacji zmiennoprzecinkowej liczby przechowywane są w postaci notacji wykładniczej:
X = S \* M \* 2 <sup>E</sup>
S __znak__
M __mnożnik (mantysa)__
E __wykładnik__
Wagi poszczególnych bitów (i pozycja przecinka) zależą więc od wartości wykładnika i mogą się zmieniać. Taka reprezentacja pozwala zapisać liczby z bardzo dużego zakresu, które w reprezentacji stałoprzecinkowej wymagałyby stosunkowo dużej liczby bitów. Wadą arytmetyki zmiennoprzecinkowej jest wolniejsze wykonywanie operacji i mniejsza dokładność działań, wynikająca z błędów zaokrągleń.
Precyzja obliczeń zmiennoprzecinkowych zależy przede wszystkim od liczby bitów przeznaczonych na zapis liczby. Stosowane w informatyce formaty zapisu liczb zmiennoprzecinkowych są określone w standardzie __IEEE 754__. Definiuje on:
- __liczby pojedynczej precyzji (float)__ 32 bity: 1 bit znaku, 8 bitów wykładnika, 23 bity mnożnika
- __liczby podwójnej precyzji (double)__ 64 bity: 1 bit znaku, 11 bitów wykładnika, 52 bity mnożnika
Istnieją też niestandardowe formaty liczb zmiennoprzecinkowych, np. 80-bitowy format rozszerzonej precyzji, stosowany wewnętrznie w jednostkach zmiennoprzecinkowych (FPU) procesorów x86.
W obliczeniach zmiennoprzecinkowych może występować zjawisko __kumulacji błędów__, którego efektem są wyraźnie odbiegające od prawdziwych wyniki wielu wykonywanych kolejno działań arytmetycznych zdarzały się nawet w historii przypadki katastrof rakiet kosmicznych, spowodowanych słabo jeszcze wtedy rozumianymi właściwościami arytmetyki zmiennoprzecinkowej. Z powodu zjawiska kumulacji błędów, arytmetyki zmiennoprzecinkowej nie powinno się używać między innymi w obliczeniach finansowych.
# Model TCP/IP # Model TCP/IP
Model TCP/IP to warstwowy model struktury protokołów komunikacyjnych w sieciach komputerowych, opracowany razem z odpowiadającym mu zestawem protokołów w latach 70. w agencji DARPA (Stany Zjednoczone); sam model jak i zestaw protokołów TCP/IP został zaprojektowany w otwartej architekturze i nie jest ograniczony żadnymi patentami ani prawami autorskimi. Model TCP/IP to warstwowy model struktury protokołów komunikacyjnych w sieciach komputerowych, opracowany razem z odpowiadającym mu zestawem protokołów w latach 70. w agencji DARPA (Stany Zjednoczone); sam model jak i zestaw protokołów TCP/IP został zaprojektowany w otwartej architekturze i nie jest ograniczony żadnymi patentami ani prawami autorskimi.
@@ -16,12 +40,12 @@ Metoda śledzenia promieni (ang. _ray tracing_) służy do generowania fotoreali
Zasada działania algorytmu śledzenia promieni jest następująca: Zasada działania algorytmu śledzenia promieni jest następująca:
1. Dla każdego piksela na ekranie z punktu, w którym znajduje się obserwator, wyprowadzany jest promień pierwotny, który przecina ten piksel. 1. Dla każdego piksela na ekranie z punktu, w którym znajduje się obserwator, wyprowadzany jest promień pierwotny, który przecina ten piksel.
2. Jeżeli: 2. Jeżeli:
- promień nie trafi na żaden obiekt na scenie piksel przyjmuje kolor tła, * promień nie trafi na żaden obiekt na scenie piksel przyjmuje kolor tła,
- promień trafi w źródło światła piksel przyjmuje kolor źródła, * promień trafi w źródło światła piksel przyjmuje kolor źródła,
- promień trafi w obiekt wyznaczany jest najbliższy punkt przecięcia z obiektem i dla niego: * promień trafi w obiekt wyznaczany jest najbliższy punkt przecięcia z obiektem i dla niego:
- obliczany jest kolor za pomocą jednego z modeli oświetlenia lokalnego (np. modelu Phonga), * obliczany jest kolor za pomocą jednego z modeli oświetlenia lokalnego (np. modelu Phonga),
- ewentualne zacienienie (poprzez poprowadzenie pomocniczych promieni do źródeł światła i przeanalizowanie, czy przecinają inne obiekty) * ewentualne zacienienie (poprzez poprowadzenie pomocniczych promieni do źródeł światła i przeanalizowanie, czy przecinają inne obiekty),
- kierunek odbicia promienia wtórnego, który następnie jest śledzony rekruncyjnie w taki sam sposób (jeżeli trafi w kolejny obiekt jego oświetlenie lokalne jest mnożone przez współczynnik odbicia i dodawane do lokalnego oświetlenia poprzedniego obiektu) * kierunek odbicia promienia wtórnego, który następnie jest śledzony rekruncyjnie w taki sam sposób (jeżeli trafi w kolejny obiekt jego oświetlenie lokalne jest mnożone przez współczynnik odbicia i dodawane do lokalnego oświetlenia poprzedniego obiektu).
3. Krok 2 jest powtarzany dopóki promień wtórny nie trafi w tło albo w źródło światła, lub dopóki nie zostanie osiągnięta określona głębokość rekurencji. 3. Krok 2 jest powtarzany dopóki promień wtórny nie trafi w tło albo w źródło światła, lub dopóki nie zostanie osiągnięta określona głębokość rekurencji.
Podstawową wadą metody śledzenia promieni jest jej (wciąż) duża złożoność obliczeniowa, znacznie rosnąca wraz z liczbą obiektów na scenie lub źródeł światła natomiast dzięki niezależnym obliczeniom dla każdego piksela, stosunkowo łatwo można ją zrównoleglić np. dzięki możliwościom współczesnych kart graficznych. Podstawową wadą metody śledzenia promieni jest jej (wciąż) duża złożoność obliczeniowa, znacznie rosnąca wraz z liczbą obiektów na scenie lub źródeł światła natomiast dzięki niezależnym obliczeniom dla każdego piksela, stosunkowo łatwo można ją zrównoleglić np. dzięki możliwościom współczesnych kart graficznych.