# Sieci - sprawko
Wszyscy uczący się z opracowania zdali. Powodzenia!
**Nagrania:**
https://www.youtube.com/playlist?list=PLqR_CU_UhSIp7OKa9zHFzUzz2mZlheRaN
Slajdy są z tego roku- nie uzywajcie paczkowych (czemu? nie są takie same?) nie, nie są!
**Wykłady Nowicki:**
https://drive.google.com/drive/folders/1L39RIWkPs8ZiqcQ0jUxSu8aIYlKoA0DH?fbclid=IwAR1Z8Ls2ZRnfrXh4MMXLiPXFlOb9A4eJHj8r7GIMTLwvBh-bgIg5Ql1daQE
**Wykład Woźniak:**
https://drive.google.com/drive/folders/1q8zpDZB_DMkQK-tagm4oUXl5RQZlhIBX?fbclid=IwAR1Z8Ls2ZRnfrXh4MMXLiPXFlOb9A4eJHj8r7GIMTLwvBh-bgIg5Ql1daQE
## Pytania zapowiedziane przez Nowickiego na wykładach
1. **Wykład 1 - Nowicki** – LAN nie musi być koniecznie na małym obszarze (np. dom, firma), tak jak opisano to na slajdach. Kwestia klasyfikacji jest sporna i dzisiaj nie mówimy o LAN tylko jako o sieci o małej rozpiętości.
2. **Wykład 2 – Woźniak** – Architektury warstwowe:
: **ISO-OSI** - była tworzona od podstaw zgodnie wg planu - mimo to jest dość zawodna, bo powstała 40 lat temu i jest w niej dużo zbędnych elementów
: **TCP/IP** - wynik ewolucji sieci ARPA USA
3. **Wykład 3 – Nowicki** - Dlaczego nie można stosować rozwiązań Manchester dla prędkości 1Gb?
**Odp.** Bo nie ma mediów o tej częstotliwości (kabli w sensie)
Od tego miejsca wykłady są już nagrywane (nie ma nagranych wszystkich):
4. **Wykład 5 – Nowicki** – Ile istnieje rozwiązań 10Gigabitowego Ethernetu i w którym z nich 10 gigabit danych jest dokładnie przesyłany?
**Odp.** Jest 6 szeregowych i jedno równoległe (LX4) i w żadnym z nich nie jest przesyłane 10 giga (cytując Nowickiego).
5. **Wykład 6 – Nowicki** – Będą pytania w stylu „Co oznacza zapis 10G BASE RW3?”
**Odp.** Wykład 09.04.2020 – 45:05. Odpowiedz na zdjęciu opis standardów 10Gbe
6. **Wykład 5 Nowicki** - Co to jest ethernet?
**Odp.** Ethernet to zasada dostepu z wykrywaniem kolozji, która od 20 lat nikogo przemysłowo nie obchodzi
7. **Wykład 6 Nowicki** - Kiedy trzeba stosować przełączniki? Kiedy warto stosować regeneratory?
**Odp.** Przełączniki trzeba stosować gdy nie można stosować regeneratorów, a regeneratorów nie można stosować gdy obciążenie sieci jest większe niż kilka procent.
8. **Wykład 24.04 Nowicki** - Czym się różni przełącznik od mostu?
**Odp.** Przełącznik jest zbudowany z wielu mostów (które mogą zmieniać swoją topologię) i działa równolegle, a most sekwencyjnie
10. **Wykład 24.04 Nowicki** - Dlaczego przełączniki są wielokrotnie szybsze od mostów?
**Odp.** Bo umożliwiają zrównoleglenie połączeń między dowolnymi parami portów. Lidkwidują kolizje.
11. **Wykład 24.04 Nowicki** - kurde pytał jeszcze o coś z routerami i przełącznikami ale nie mogę teraz znaleźć skurczybyka. Jeśli po prostu różnica między nimi to
**Odp.** Router rozdziela domenę rozgłoszeniową i kolizyjną a przełącznik tylko kolizyjną (da się też na przełączniku rozgłoszeniową stosując VLAN).
12. **Wykład ostatni Nowicki** - Będzie pytał o info zawarte w nagłówku Rodzaje rekordów
13. **Wykład Woźniaka** - Jak można scharakteryzować różne algorytmy dostępu do medium pod kątem ich użyteczności obsługi zróżnicowanych rodzajów ruchu/aplikacji?
**Odp.** Ethernet się nie nadaje bo polega na algorytmie rywalizacji (CSMA/CD), gdzie każdy ma takie samo prawo dostępu. Potrzeba zatem aby algorytm oferował priorytezację transmisji i np. taki token ring czy token bus są w porządku, bo są to algorytmy kontrolowane
14. **Wykład Woźniaka** - Ile razy Woźniak był w Nowej Zelandii?
**Odp.** Trzykrotnie.
# Nowicki
## Temat wykładu - Systemy teleinformatyczne
5g nowe technologie - Multiple input, multiple output, 3dBF, fale milimetrowe, IPv6, LI-FI
Sieci komórkowe-porównanie

### Klasyfikacja sieci
1. Ze względu na zasięg
: * LAN-sieci lokalne(domowe, firmowe)
: * MAN-sieci miejskie
: * WAN- sieci rozległe(Internet)
2. Ze względu na stróktóre - nice xDDDD
: * sieć hierarchiczna-sieć wykorzystująca główne stacje w celu zarządzania
: * sieć rozproszona-wszystkie stacje są równorzędne
3. Ze względu na przynależność
: * sieci naukowe/edukacyjne
: * sieci komercyjne
: * sieci cywilne
: * sieci wojskowe
: * sieci publiczne
: * sieci wydzielone
4. Ze względu na technike komutacji
: * komutacja kanałów
: * komutacja wiadomości
: * komutacja pakietów w sieciach datagramowych
: * komutacja pakietów w sieciach z połączeniami wirtualnymi
**Komutacja pakietów** — w telekomunikacji sposób transmisji danych polegający na dzieleniu strumienia danych na kawałki (pakiety), a następnie wysyłaniu ich za pomocą łączy komunikacyjnych pomiędzy węzłami sieci. Każdy pakiet podlega osobnemu trasowaniu — może podążać do celu ścieżką niezależną od wcześniejszych pakietów.
## Temat wykładu - Ehernet dobry na wszystko
Ethernet jest technologią warstwy fizycznej i warstwy łącza danych, odpowiadająca za przesyłanie danych.
W Ethernecie nie da się podkręcać zegarów, czyli zwiększać taktowania w ramach jednej technologii, rozmiar przesyłanych danych jest STAŁY.
Minimalna długość ramki to **512 bitów**, a maksymalna **1518 bajtów**.

1,5 kB to maksymalna wartość przyjmowana przez pole danych (czyli pole danych warstwy LLC i pole rozszerzenia).
To ograniczenie (1518 B) wynika ze stopy błędu. Na kablach koncentrycznych wynosiła ona kiedyś $10^{-8}$. 1,5 kB to około $10^{4}$ bitów. Gdyby ramka wynosiła $10^{8}$ bitów, prawdopodobieństwo zakłamania któregoś z bitów wynosiłoby praktycznie 1. Przy aktualnej wartości wielkości ramki, błąd występował średnio na 10 000 pakietów.
Aktualnie stopa błędu w dowolnych mediach wynosi $10^{-12}$, a w dobrych światłowodach nawet $10^{-14}$. Ramka jest więc stanowczo za mała na współczesne warunki, ale nie jest zwiększana przez zachowanie kompatybilności wstecznej.
Zwiększenie prędkości łącza zmniejszało z takim samym stosunkiem zasięg (250 metrów dla 10Mb/s). Oznacza to, że zwiększając 10-krotnie prędkość Ethernetu z wykrywaniem kolizji zmniejszamy 10-krotnei maksymalną odległość 2 stacji, pomiędzy którymi przekazywane są informacje.
### Wykrywanie kolizji
**CSMA/CD** - system wykrywania kolizji przy wykorzystaniu zmian napięcia na łączu; obecnie się od niego odchodzi.
Od standardu 1 gigabitowego zastosowano duplex (czyli łącze dwukierunkowe z możliwością wysyłania i odbierania w tym samym czasie), dzięki któremu nie ma już konieczności wykorzystywania CSMA/CD.
Sygnał w duplexie z taką samą prędkościa biegnie pomiędzy 2 stacjami. Dzieki czemu zamiast połączenia dwukierunkowego zasosowano połączenie jednokierunkowe. Dzieki czemu na tym samym standardzie prędkość jet 2 razy większa ze względu na dwustronicowe połączenie. Ponadto wykrywanie kolizji nie spowalnia już pracy sieci.
### Ethernet10Gb+
W 10 Gb Ethernecie zaszła potrzeba podzielenia warstwy fizycznej modelu ISO/OSI na 3 podwarstwy:
1. **PCS (Physical Coding Sublayer)** - odpowiada za kodowanie i dekodowanie, w szczególności rozróżnia sieć LAN od WAN. Kodowanie 64/66b
2. **PMA (Physical Medium Attachment)** - odpowiada za formatowanie strumienia bitów oraz mechanizm synchronizacji przesłanych danych
3. **PMD (Physical Medium Dependent)** -odpowiada za transmisje sygnałów, są to np optyczne układy odbiorczo-nadawcze
Jest 7 standardów 10 gigabitowego Ethernetu ale żaden nie osiąga dokładnie 10Gb.

### Opis standardów 10Gbe

**M** oznacza Multimode (wielomodowy).
**C** oznacza kable miedziane.
**T** oznacza skrętkę (też miedziana).
**K** oznacza że działa na płycie głównej urządzenia sieciowego.
W dzisiejszym Ethernecie zasięg jest ograniczony jedynie przez medium. Ograniczenie wysyłania w postaci ramki jest jedynie ze względu na kompatybilność wsteczną.
Alien Crosstalk - wpływ kabli otaczających na aktualny kabel
Światłowód jednomodowy jest wydajniejszy od wielomodowego, natomiast jego wadą jest wysoka precyzja wykonania i ich łączenia. Oznacza to, że w jednomodowym transmitowana jest jedna wiązka światła.
Grubsze światłowody są gorsze.
W skrętkach jest odwrotnie, im grubsza tym lepsza.
### Standardy opisujące 10Gb ethernet na płytach (backplane)
1. **10 Base KX** transmisja szeregowa z prędkością 1 Gb/s na dwóch parach ścieżek, po jednej parze w każdym kierunku
2. **10 GBase KX4** transmisja równoległa z prędkością 10 Gb/s na ośmiu parach ścieżek, po 4 w każdym kierunku
3. **10 GBase KR** transmisja szeregowa z prędkością 10 Gb/s na dwóch parach ścieżek, po jednej parze w każdym kierunku
### Ethernet 100 gb/s
1. **100 GBASE SR 10** optyczny interfejs oparty na dziesięciu niezależnych ścieżkach 10 3125 G/s pracujących w trybie full duplex Interfejs obsługuje połączenia o maks długości 100 m
2. **100 GBASE LR 4** optyczny interfejs oparty na czterech niezależnych ścieżkach LAN WDM, każda transmitująca dane z szybkością 25 8 G/s (z oknami o szerokości 1300 nm Interfejs obsługuje połączenia o maks długości 10 km, wykorzystujące standardowy światłowód jednomodowy
3. **100 GBASE ER 4** optyczny interfejs oparty na czterech niezależnych ścieżkach LAN WDM, każda transmitująca dane z szybkością 25 8 G/s (z oknami o szerokości 1300 nm Interfejs obsługuje połączenia o maks długości 40 km, wykorzystujące standardowy światłowód jednomodowy

## Temat wykładu - Łączenie sieci
### Wprowadzenie
Łączenie sieci jest tematem niezwykle skomplikowanym, bo jest bardzo wiele ich rodzajów (np. magistralowe, pierścieniowe, niepełne grafy).
Połączenie dwóch sieci o różnych topologiach w sposób bezpośredni jest praktycznie niemożliwe. Sieci różnią się też w innych aspektach takich jak długość ramki czy szybkość połączeń.
Nie ma sprawdzonych i prostych metod do np. składania ramek w większe. Dlatego musimy przy łączeniu dwóch sieci wykorzystać jakieś urządzenie, które będzie nadzorowało przejście z jednej sieci do drugiej. Tak samo nie ma prostych sposobów na zarządzenie wymianą danych, między sieciami pracującymi na różnych prędkościach. Nie ma też łatwego rozwiązania aby zarządzać i konwertować priorytety między dwiema sieciami.
Te wszystkie problemy są rozwiązywane przy wykorzystaniu urządzeń pośredniczących, **takich jak most, przełącznik router albo brama.**
Sieci lokalne można łączyć na 3 sposoby:
* wykorzystując urządzenia sprzęgające (gdy są wystarczająco blisko)
* wykorzystując sieci miejskie (MAN)
* wykorzystując sieci rozległe (WAN)
To jest w sumie ciekawe, bo Nowicki powiedział to jakby to były 3 wykluczające się warianty, a przy łączeniu z wykorzystaniem MAN i WAN też używa się urządzeń sprzęgających.
### Łączenie przez sieci miejskie
Kiedyś (lata 90 do 2005) powszechne było łączenie sieci przy użyciu sieci FDDI. Była to sieć 100 mb, do której podłączano sieci lokalne (wolniejsze). Przy komunikacji sieć lokalna -> FDDi nie występowały problemy, bo odbiorca pracował szybciej niż nadawca i zwyczajnie czekał między odbieranymi pakietami. Dodatkowo sumy kontrolne w sieciach miejskich i lokalnych były takie same, więc nie trzeba było dokonywać żadnej translacji. Urządzenia sprzęgające sieci lokalne z FDDI były więc bardzo proste, bo nie było potrzeby implementować złożonych rozwiązań.
Po jakimś czasie pojawiły się sieci ATM, które też były szybkie (155 - 620 mb/s). Pojawił się wraz z nimi nowy problem - różne sumy kontrolne. Urządzenia musiały więc dokonywać ich przeliczania i translacji.
Kolejnymi sieciami miejskimi był 1 Gb/s Ethernet, 10 Gb/s Ethernet, 40/100 Gb/s Ethernet, a współcześnie planowany nawet 1000 Gb/s Ethernet. We wszystkich tych przypadkach, długości ramek, sumy kontrolne i prędkości były odpowiednie, aby nie implementować złożonych mechanizmów translacji w urządzeniach sprzęgających.
Sieci miejskie są więc zawsze szybsze od lokalnych i nie sprawiają wielu problemów przy łączeniu.
### Łączenie przez sieci WAN
W sieciach rozległych sytuacja wygląda inaczej. W historii, tak jak w MAN, było kilka standardów, na których opierały się sieci WAN. Były to X.25, FR, ATM i potem Ethernet. We wszystkich tych scenariuszach zdarzało się, że podłączane sieci lokalne były szybsze od sieci WAN.
Dzisiaj stosujemy światłowody i uzyskujemy prędkości rzędu setek gigabitów, ale podłączamy tysiące sieci lokalnych z prędkościami dziesiątek gigabitów. Powoduje to potencjalne "zalewanie" sieci WAN przez podłączone sieci lokalne, bo są one niewiele wolniejsze (a jest ich bardzo dużo).
**Zalewanie sieci** to wprowadzanie do niej więcej danych niż może przerobić. Efekt ten występuje przy łączeniu sieci znacznie szybszej do sieci wolniejszej, bądź, tak jak w omawianym wyżej przypadku, wielu sieci delikatnie wolniejszych do sieci szybszej. Nazwa pochodzi najprawdopodobniej od zalewania buforów, które ma miejsce w tym procesie.
Rolą urządzeń pośredniczących w tym połączeniu, było więc kontrolowanie ilości danych wpuszczanych do sieci rozległej. Niektóre dane, które są nadawane do wszystkich (rozgłoszeniowe), są zatrzymywane na routerze, aby nie zalać sieci WAN.
Nasze domowe routery nie robią żadnego routingu, bo mają tylko jedną ścieżkę wyjściową (w 99% przypadków). Nie opłaca się więc kupować drogich routerów, tylko te najtańsze, które będą blokowały ruch rozgłoszeniowy.
### Łączenie przez urządzenia sprzęgające
Działanie urządzeń opisujemy na wykładzie warstwowo, bo są one w ten sposób standaryzowane, aby była możliwość współpracy urządzeń od różnych firm.

Każde kolejne urządzenie jest bardziej złożone, więc wprowadza opóźnienie większe o rząd.
Wraz z poziomem skomplikowania rośnie też cena urządzenia. Najtańsze i najszybsze są regeneratory i to na nich powinno się inicjalnie budować sieć. Potem, gdy potrzeba, powinno się dodawać bardziej złożone urządzenia.
Teraz po kolei opis każdego urządzenia:
#### Regenerator/koncentrator
Warstwa fizyczna.
Wszystko co jest przesyłane jest traktowane jako ciąg 0 i 1 i przekazywane dalej.
Regenerator zniekształcone sygnały regeneruje i przywraca do poprawnej formy.

Najistotniejsze fakty o regeneratorach i koncentratorach:
Regeneratory ustawione w odpowiednich miejscach w sieci **zwiększają zasięg sygnału** (który bez nich zostałby wytłumiony na kablu).
Koncentrator jest w środku wieloportowym regeneratorem.
Koncentrator otrzymane sygnały rozgłasza na wszystkie możliwe drogi, z wyjątkiem drogi z któej otrzymał sygnał.
**Kolizja** - scenariusz, gdy dwa urządzenia usiłują wysłać pakiet przez łącze w tym samym czasie. Kolizja wymaga retransmisji, stąd duża ilość kolizji zmniejsza wydajność.
**Koncentrator działa w trybie kolizyjnym**, przez co w przypadku, gdy dwa sygnały wchodzą do niego jednocześnie, następuje błąd i konieczna jest retransmisja.
Opóźnienia regeneratorów czy koncentratorów są rzędu **1 μs**.
**Kiedy takie urządzenia stosować?**
Gdy sieć ma prędkość x, a stacje wysyłają dane z prędkością np. 0,8x, z dużym prawdopodobieństwem będą występowały kolizje (bo dane są często wysyłane). W takim wypadku, użycie koncentratorów jest nieopłacalne. Opłaca się więc z nich korzystać, gdy jest małe obciążenie (mały ruch) na stacjach. Ten mały ruch to wg Nowickiego około kilku procent. Daje nam to niezwykle szybkie rozwiązanie, bardzo małym kosztem.
**Przeważnie w rozwiązaniach firmowych te urządzenia są zbędne.**
#### Most/przełącznik:
Warstwa łącza danych.
Działa na ciągach 0 i 1, które niosą pewne informacje (od i do kogo, suma kontrolna itd.; ogólnie rozumieją logikę ramki w przeciwieństwie do regeneratora, który zwyczajnie puszcza dane dalej bez żadnego wglądu).
Most łączy dwie sieci o różnych bądź tych samych topologiach. **Uczy się on które urządzenia są po której jego stronie** i dzięki temu może inteligentnie sterować przepływem danych. Gdy dane mają przejść do urządzenia z innej sieci, most dokonuje konwersji i przesyła je na drugi port (do drugiej sieci).
Używając mostów można podzielić też tą samą sieć na dwie mniejsze, uzyskując tym samym szybsze połączenie.
**Przykład od Nowickiego:** Jedna sieć 100 mb/s z 8 urządzeniami, będzie wolniejsza niż 2 sieci z 4 urządzeniami połączone mostem (bo 100/4 > 100/8).
Mosty powinny być umieszczane w odpowiednich miejscach, aby zminimalizować liczbę przerzutów danych między dwiema sieciami.
**Przykład od Nowickiego:** most między dwoma działami w firmie byłby dobrym
pomysłem, bo dane będą rzadziej przechodzić między działami niż w ich środku.
**Przełącznik to jest urządzenie zbudowane z wielu mostów** (tak jak koncentrator był z wielu regeneratorów).
Istnieje kilka rodzajów mostów:

Most to taki prosty komputer z pamięcią, portami i warstwą oprogramowania. Most na początku (gdy jeszcze się uczy) działa jak regenerator.
Mosty mają też wady, bo występuje ryzyko powstania sztormów, multiplikacji i pętli ramek. Te scenariusze są opisane na wykładzie 17.04 mniej więcej od 1:40. Wynikają z kilku mostów przekazujących dalej ten sam pakiet w kółko.
**Sztorm** to powielanie jednej ramki w nieskończoność, czyli robienie z jednej dwóch, z dwóch czterech, z czterech ośmiu i tak dalej.
**Multiplikacja** to scenariusz, w którym wysyłana jest ramka do mostu, który nie nauczył się jeszcze gdzie jest adres do którego ma trafić ta ramka. Działa on wtedy jak regenerator, i rozgłasza na wszystkie możliwe drogi. Powoduje to zwielokrotnienie ramki i przesłanie tego samego pakietu kilka razy (bo ta zwielokrotniona ramka dojdzie do adresata w kilku identycznych kopiach różnymi drogami, a więc też w różnym czasie, a systemy takie jak Windows czy Linux tego nie ogarną i przyjmą ją kilka razy jakby przyjmowały różne pakiety).
Aby zapobiec temu problemowi pętlenia się ramek, należy zamienić strukturę sieci na niepętlącą się.
Taką strukturą jest **drzewo opinające**.
Nowicki tłumaczył przez 20 minut działanie algorytmu tworzenia struktury drzewa opinającego z perspektywy lokalnej (bo w sieciach wszystkie decyzje podejmuję się lokalnie, a nie globalnie dla całej sieci). Nie będę go tu opisywał w szczegółach bo to nie ma większego sensu. Jak ktoś chce zobaczyć to wykład 17.04 - 2:16 - Nowicki wraca po przerwie i zaczyna tłumaczenie.
**Tłumacząc ogólnie:**
Wybierany jest lokalny nadzorca sieci (root). Jest wybierany z grupy wszystkich podłączonych urządzeń. W sieciach nadzorcą zostanie zawsze urządzenie o najmniejszym adresie MAC. Wybieranie odbywa się na zasadzie rozgłaszania.
1. Każde z urządzeń wysyła do najbliższych informacje że jest nadzorcą.
2. Gdy urządzenie otrzyma taką informacje od urządzenia z mniejszym adresem MAC, przestaje głosić, że ono jest nadzorcą i zaczyna głosić do sąsiadów, że to to inne urządzenie nim jest.
3. W ten sposób, wszyscy w sieci prędzej czy później dowiedzą się, które urządzenie jest ich rootem. Wiedzą też dodatkowo w którym kierunku mają szukać roota, bo otrzymali od sąsiada informację kto nim jest.
4. Gdy root zostaje ustalony, trzeba ustalić najkrótsze drogi do roota. Każde połączenie ma wagę odwrotnie proporcjonalną do prędkości łącza. Czyli im łacze szybsze, tym lepsze.
5. Jako że każde urządzenie wie w którym kierunku jest root, "wyklucza ono" zbędne mu połączenia i zachowuje tylko to które ma w kierunku roota. Informuje też ono sąsiednie urządzenie, że konkretne połączenie jest dla niego konieczne i nie powinno być zamykane.
6. Root co mniej więcej 2 sekundy rozgłasza się po sieci, informując wszystkie urządzenia o swojej obecności. Jeśliby go zabrakło, sieć jest reorganizowana od nowa z innym urządzeniem jak root (bo jeśli root przestał rozgłaszać, to najpewniej został odłączony od sieci).
7. Gdyby jakieś złącze zostało zerwane, sieć sama to wykryje i dokona reorganizacji.
Ten algorytm nie jest koniecznie najoptymalniejszym drzewem spinającym, ale jest jednym z optymalniejszych.
Innym rozwiązaniem problemów z pętlami i multiplikacjami jest zastosowanie mostów ze sterowaniem źródłowym.
**Sterowanie źródłówe** polega na badaniu możliwego połączenia stacji x ze stacją y, przesyłając pakiet wszystkimi możliwymi drogami i zapamiętując przebytą drogę. Wysyłany jest pilot ze stacji x do y (który multiplikuje się na rozgałęzienich). Stacja y po jego odebraniu będzie komunikowała się z x po drodze, którą wyznaczyła pierwsza otrzymana od x kopia jego pilota (bo jeśli była pierwsza, oznacza to że przyszła najszybszą drogą).
Sterowanie źródłowe jest rozwiązaniem lepszym dla dużych sieci, dla których proces budowania drzewa trwa długo.
#### Router/przełącznik:
Warstwa sieciowa
Przełącznik jest najczęściej używanym urządzeniem do łączenia sieci.
***
##### Podział sieci LAN na domenę kolizyjną i rozgłoszeniową przed i po zainstalowaniu przełącznika

Przełącznik pozwala na rozbicie domeny kolizyjnej na kilka mniejszych domen kolizyjnych co zmniejsza ilość kolizji między urządzeniami w sieci. W nowoczesnych przełącznikach każde urządzenie jest podłączone do osobnego portu więc jedna domena kolizyjna zawiera jedno urządzenie co całkowicie usuwa problem kolizji.
***
##### Różnica w działaniu mostu i przełącznika.
Przełącznik składa się z wielu mostów, które mogą szybko zmienić swoją topologię co w praktyce pozwala na zrównoleglenie połączeń między różnymi parami urządzeń do niego połączonych.

***
##### Różnica w działaniu przełącznika i routera

W odróżnieniu od routera przełącznik nie rozdziela domeny rozgłoszeniowej
***
##### Architektura przełącznika

W przypadku przesyłania danych z portu zwykłego do portu szybkiego, urządzenie w porcie szybkim po prostu oczekuje na kolejną ramkę. W przypadku odwrotnym, ramki nadchodzące szybciej niż zwykły port jest w stanie je odebrać, są buforowane (przytrzymywane) w pamięci skąd później trafiają do odpowiedniego portu. W skrajnym przypadku do jednego portu będą skierowane ramki z wszystkich pozostałych, stąd w idealnym przełączniku prędkość i rozmiar pamięci powinna umożliwić zapis ramek ze wszystkich pozostałych portów.
W praktyce taki rozmiar i prędkość pamięci jest gwarantowana tylko w najdroższych urządzeniach na rynku. W tańszych producenci zakładają, że nie wszystkie porty będą używane (i mają rację, bo dla rozwiązań domowych rzadko kiedy w użyciu jest więcej niż killka portów).



Stosowane są również **bufory na wejściach lub wyjściach portów**, których można użyć zamiast jednej wydajnej pamięci, wymaga to jednak większej wydajności procesora, który musi tymi buforami zarządzać.
W **tablicy adresów** przechowywane są pary adresu MAC i numeru portu. Dzięki niej przełącznik uczy się, do których portów kierować ramki zaadresowane na dany numer MAC.
**Działanie przełącznika od startu**
Początkowo tablica adresów jest pusta. Urządzenie A wysyła ramkę do urządzenia B, po dotarciu ramki do przełącznika w tablicy zapisywany jest adres MAC urządzenia A i port do którego jest podłączony. Przełącznik nie wie jeszcze, w którym porcie jest urządzenie B więc wysyła ramkę do wszystkich portów (zadziała jak koncetrator). Kiedy ramka dotrze do urządzenia B, odsyłane jest potwierdzenie na podstawie którego przełącznik określa port dla B. Dalsza komunikacja z A do B lub B do A jest już ukierunkowana i trafia tylko do odpowiednich portów.
**Tryby pracy przełącznika:**
* przełączania przezroczystego (TP - Transparent Bridging)
* przełączania szybkiego (ES - Express Switching)
Przełączania szybkiego używamy w sieciach wykorzystujących transmisję w czasie rzeczywistym(szybki broadcasting w czasie rzeczywistym), aby uniknąć zalania sieci ramkami wysłanymi do odbiorców o nieokreślonej jeszcze w tablicy adresów lokalizacji. Przełącznik wysyła wtedy ramki tylko do wybranych portów (Wymaga to konfiguracji, często domyślnie broadcast w tym trybie jest wysyłany tylko na pierwszy port)
**Metody przełączania:**
* Cut-Through
Brak kontroli błędów, szybkie działanie (rzędu 200 ns)
* Store-and-Forward
Ładuje ramkę do pamięci, sprawdza sumę kontrolną i przesyła dalej, w skrajnym przypadku działa 100 razy dłużej niż Cut-Through
* Fragment-Free Cut-Through
Cut-Through z filtracją kolizji, obecnie nieużywane (jedno urządzenie w jednym porcie w obecnych przełącznikach)

Przełączniki cut through należy stosować tam, gdzie zależy nam głównie na szybkości, a ewentualne przekłamania nie "położą" nam aplikacji.
Te aplikacje, które nie tolerują błędów pojawiających się w danych, powinny być obsługiwane przez przełączniki pracujące w trybie "zapamiętaj i przekaż".
Za dużo tu nie powiedzał więc wstawiam slajdy
**Typy przełączników (ze względu na wewnętrzną budowę i związany z tym algorytm pracy) oparte na:**
* współdzielonym medium (shared-medium)
* budowie komutatora przestrzennego, krzyżowa (space-division)

* współdzielonej pamięci (shared-memory)


***
##### Praktycznie zastosowania przełącznika

Dawniej stosowano przełączniki aby połączyć z sobą mniejsze domeny kolizyjne

Przełączniki stosujemy do łączenia z sobą bardzo wydajne urządzenia, z którymi komunikuję się naraz duża liczba urządzeń.

Łączenie sieci lokalnych w sposób bezkolizyjny, sieci szkieletowe.

Rozproszoną sieć szkieletową opartą na routerach możemy dla zwiększenia wydajności zamienić na skupioną opartą na przełącznikach. Przełącznik będący węzłem szkieletowym staje się wtedy elementem krytycznym, po którego awarii przestaje działać cała sieć.
***
##### Kryteria wyboru przełącznika
1. „Standardowość” przełącznika –IEEE 802..... (1d,p,Q,x;3w,ad)
1. Elastyczność – możliwość konfigurowania przełącznika na różne sposoby
* autodedekcja 10/100/1000
* wspieranie technologii 10/100/1000 ETH i innych (10/40/100 Gb/s ETH, ATM)
* możliwość dublowania portów polegająca na tym, że wszystkie pakiety obsługiwane przez jeden port można kierować (kopiować) na inny port, co pozwala monitorować z zewnątrz pracę przełacznika)
1. Przepustowość („przędzy”)
1. Pojemność tablic adresów MAC
1. Zarządzanie węzłem sieci – istotne jest , aby w warunkach maksymalnego obciążenia pakiety zarządzania (oparte np. na protokole SNMP) docierały zawsze do przełącznika
1. Obsługa VLANów
1. „Szybkość przetwarzania ramek (pps - packets per second, pps * długość minimalnej ramki daje rzeczywistą przepustowość przełącznika)
1. Zasięg – skrętki 100 m; powyżej 100 m związane jest z koniecznością przejścia na technologię światłowodową (np. 100Base-FX 400 m)
1. możliwość kontrolowania przepływu pakietów (ETH)
* automatyczne sterowanie ruchem pakietów rozgłoszeniowych
* szereg opcji zmiejszających wolumen palietów rozgłoszeniowych w obszarze warstwy sieciowej OSI (np. Ograniczenie liczby pakietów rozgłoszeniowych i typu multicast w każdym porcie do poziomu np.. 10% przepustowości portu)
* stosunkowo prosta technika sztucznego blokowania medium (tzw. Jamming), dzięki której przełacznik w krytycznych dla niego sytuacjach nie jest bombardowany zbyt dużą lliczbą pakietów
* Możliwość definiowania przez użytkownika progów (w odniesieniu do każdego z portów), których przełacznikowi nie wolno przekroczyć
* Ograniczenie liczby pakietów obsługiwanych przez dany port – poprzez zdefiniowanie listy adresów MAC, które dany port może obsługiwać (bezpieczeństwo)
##### Agregacja łączy

Właściwości agregacji łączy:
* „pełen dupleks” – po 100(0) Mb/s w każdym kierunku
* opcja automatycznego przełączania ruchu na łącze zapasowe w momencie awarii łącza podstawowego
* 
* mechanizm „load balancing” – równomiernego rozkładania obciążenia na poszczególne łacza
* Automatyczna rekonfiguracja
* Szybka rekonfiguracja - 1 sekunda
* Wsparcie dla klientów MAC standardu 802.3
* Kompatybilność z urządzeniami nie wspierającymi agregacji
* Wsparcie dla zarządzania siecią
* Możliwość połączenia różnych typów fizycznych łączy
* Zwiększona przepustowość
* Zwiększona niezawodność
* Podział obciążenia ruchu
* 
Ograniczenia:
* Tylko urządzenia pracujące w trybie full-duplex
* Wymagana identyczna przepustowość na łączach
* Tylko połączenia Point to Point
* Tylko jednostki MAC wspierające standart IEEE 802.3
##### Problemy z przełącznikami
Wraz z przełacznikami pojawiło się szereg nowych problemów
* Okresowe blokowanie się portów (head of line) polegające na tym, że przepustowość poszczególnych portów zmiejsza się na pewien okres; może to być powodowane nadmiernym przeciążeniem portu pakietami lub niewydolnością układów przełączania wbudowanych w urządzenie
* Kłopoty z rozszerzalnością systemu przełącznikowego – lepiej jest stosować jeden przełącznik obsługujący różne technologie i dysponujący większą liczba portów, niż instalować dwa oddzielne węzły sieci – może wtedy dochodzić do blokowania sieci, gdyż pakiety muszą być przesyłane między portami zainstalowanymi w różnych przełącznikach( dwa przełącznki 12 portowe nie zastąpią nigdy przełącznika 24 portowego)
* Problemy z „podsłuchiwaniem” ruchu
#### Brama:
Wpomnianie, nieopisane

Więcej tutaj:
https://books.google.pl/books?id=1goQWuTd_KUC&pg=PA213&lpg=PA213&dq=gateway+iso+osi&source=bl&ots=8fi_lFgPCd&sig=ACfU3U0ojPEvp_yM3W5aGM-xk-WWP0YTWQ&hl=pl&sa=X&ved=2ahUKEwjOo5n7g6PqAhUFqaQKHSVyD-QQ6AEwDnoECAoQAQ#v=onepage&q&f=false
## Temat wykładu - Lokalne sieci wirtualne - VLAN
Zaczyna się od 2:37 z 24.04.
Potrzeba wirtualnych sieci lokalnych wynika z konieczności zredukowania **domeny rozgłoszeniowej**. Dotychczas była ona redukowana przy pomocy routerów i niemożliwe było uzyskanie tego efektu korzystając z przełączników.
Aby korzystać z VLAN, trzeba podzielić sieć na bazie logicznej struktury. W firmie można ją podzielić na działy, albo na jakieś inne klasy wg których będzie przeprowadzone rozróżnienie. Kategoriami po których można grupować mogą być porty, adresy warstwy sieciowej, adresy MAC, adresy IP albo reguły logiczne.
Grupowanie podłączonych do przełącznika użytkowników pozwala na wydzielenie dwóch domen rozgłoszeniowych. Jest to też rozwiązanie gwarantujące bezpieczeństwo, bo użytkownicy jednej podsieci VLAN są kompletnie odseparowani od użytkowników drugiej.
Takie sztuczne dzielenie sieci jest obecenie rozwiązaniem coraz bardziej praktycznym i popularnym.
## Temat wykładu - Aplikacje usług internetowych
### DNS - domain name system
**DNS** - hierarchiczny rozproszony system nazw sieciowych, odpowiadający na zapytania o nazwy domen (tłumaczy nazwy domen na numeryczne adresy ip)
1. Związany jest z portem 53
2. Posiada strukturę hierarchiczną

3. Trzy główne typy domen
: * domeny organizacji
: * domeny geograficzne
: * domeny wsteczne
4. Nadzór na domenami sprawują konkretne instytucje, najczęściej uprawnienia przekazane przez poszczególne kraje
5. 13 głownych serwisów DNS, ponadto istnieje 993 instancji tych serwerów
6. **Rodzaje rekordów DNS**

### Poczta
1. Protokoły:
: * SMTP- główny protokół pocztowy
: * Imap to nowsza/lepsza wersja popa

## Nowicki 05.05
### Sieci TCP/IP
TCP/IP - zbiór protokołów sieciowych, które są odpowiedzialne za
komunikację między hostami dołączonymi do dowolnych
niejednorodnych sieci komputerowych.

### Cechy TCP/IP
* **Niezależność od technologii**
Protokoły TCP/IP określają jedostkę danych (datagram) i reguły jego transmisji niezależnie od użytych technologii
* **Dowolny zasięg**
Każdy komputer ma swój unikalny adres w skali świata. W nagłówku datagramu określone są adres źródłowy i docelowy. Współpracować może więc dowolna para komputerów znajdujących się w sieci niezależnie od ich położenia.
* **Potwierdzenia End-to-End**
Potwierdzenia wymieniane są między urządzeniem źródłowym i docelowym. Wadą tej cechy jest to, że w trakcie routingu nie jest wykorzystywana wiedza pośredników o tym co stało się z datagramem.
* **Implementacje standardowych aplikacji**
Standardy takie jak: poczta elektroniczna, transfer zbiorów, terminal wirtualny i inne
### Budowa datagramu IP

#### Wersja protokułu IP - za długie
Używane tylko wartości 4 (IPv4) i 6 (IPv6). Pozostałe zajęte przez nieużywane technologie.
#### Czas życia Datagramu TTL - kryminogenne oraz za krótkie
Początkowo znacznik czasowy momentu wygaśnięcia datagramu co powodowało błędy przez rozbieżności zegarów na urządzeniach.
Obecnie maksymalna ilość przeskoków między węzłami.
* Zmniejszany po każdym przejściu przez węzeł
* Zabezpiecza przez zapętleniem datagramu w sieci
* Użyteczny przy próbach śledzenia trasy (tracert)
Typowe wartości TTL:
* 32 - Windows 95, NT 3.51
* 64 - Windows 98, Linux
* 128 - Nowsze Windowsy
Umożliwia przeprowadzenie ataku, polegającego na zmniejszaniu pola do np. 1 i w konsekwencji nieprzesłanie datagramu dalej przez kolejny węzeł.
Umożliwia śledzenie drogi datagramów, poprzez wysyłanie kolejnych datagramów z coraz większymi wartościach TTL zaczynając od 1 i rejestrowaniu kolejnych odbiorców aż do osiągnięcia adresu docelowego.

#### Identyfikacja - za krótkie
Numer "seryjny" utworzonego przez nadawcę datagramu. Wraz z adresem IP nadawcy jednoznacznie identyfikuje każdy pakiet w Internecie.
#### Suma kontrolna - niepotrzebne, obciązające i za krótkie
Zabezpiecza przed pojedynczymi lub seryjnymi błędami **tylko w nagłówku datagramu** (nie sprawdza przesyłanych danych). Prosty algorytm (suma modulo 2).
#### Protokół przesyłający dane - za krótkie
Przykładowe:
* ICMP (Internet Control Message Protocol)
* IGMP (Internet Group Management Protocol)
* UDP (User Datagram Protocol)
* TCP (Transmission Control Protocol)
Obecnie rozmiar pola jest zbyt mały, liczba różnych protokołów przekracza 256 (rozmiar pola 8 bitów).
#### Adres źródłowy i adres docelowy - za krótkie
* Jednoznacznie identyfikują hosta w sieci
* Na podstawie adresu docelowego węzły pośredniczące dokonują wyboru drogi przesyłania datagramu przez sieć (next hop)
Rozmiar pola to 32 bity więc liczba unikalnych adresów to 4 294 967 296. W obecnych czasach to zbyt mało dlatego wprowadzono IPv6 z adresami 128 bitowymi. Aby ograniczyć problem stosuje się również rozwiązania typu NAT, które pozwalają na podłączenie wielu urządzeń pod jeden wspólny adres publiczny.
#### Opcje nagłówka - często bezużyteczne
* Pole nieobowiązkowe
* Rejestracja trasy i czasu przejścia przez węzły sieci,
* Wymuszenie drogi routingu (swobodne lub dokładne)
* Ograniczenia dotyczące bezpieczeństwa
Według Nowickiego marnotractwo 32 bitów. Pole bardzo rzadko stosowane przez kompatybilność wsteczną dla urządzeń, które kiedyś nie były w stanie go przetworzyć ze względu na ograniczenia sprzętowe.
#### Przesunięcie fragmentacji i znaczniki - za długie i błędogenne
* Umożliwia przesłanie datagramów przez podsieci o różnych MTU (maximum transfer unit). Datagramy mogą być dzielone na mniejsze podczas przechodzenia przez sieć o mniejszym MTU.
* W znacznikach używane dwie flagi

**Wpływ fragmentacji na przepływy:**
* zmniejsza prawdopodobieństwo jego bezbłędnego dotarcia do celu,
* zwiększa rozmiar przesyłanych informacji,
* podnosi koszt operacji routowania
* protokół wyższego rzędu powinien unikać fragmentacji datagramu
**Przesunięcie fragmentacji = przesunięcie tego fragmentu datagramu w stosunku do początku oryginalnego datagramu**

#### Typ usługi TOS (Type of service) - niepotrzebne

* 3 bitowy wskaźnik priorytetu danych (0-7)
* Flagi optymalizacji trasy:
* minimalne opóźnienia,
* maksymalna przepustowość,
* najlepsza poprawność
* najniższy koszt połączenia.
#### Długośc datagramu - powielanie informacji, niepotrzebne
### Protokół IPv6 w sieciach
#### Protokół IP w modelu TCP/IP
IP (Internet Protocol) to rozwiązanie sieciowe zdefiniowane w warstwie Internetowej czterowarstwowego modelu TCP/IP. Jest to zbiór zasad i mechanizmów przekazywanie datagramów w Internecie. Wspólny element architektury Internetu, który nadaje każdemu urządzeniu lub sprzętowi łączącemu się z Internetem adres, w celu umożliwienia komunikacji z innymi urządzeniami lub sprzętami. Aby zagwarantować globalną łączność, adres ten co do zasady powinien być jednoznaczny.

#### IPv6
Oba protokoły(IPv4 i IPv6) są protokołami warstwy (między)sieciowe (modele TCP/IP i ISO-OSI). Nie są jednak z sobą kompatybilne ze względu na ilość różnic pomiędzy nimi. Sieci IPv4 i IPv6 mogą z sobą współistnieć.
#### Wady rozwiązań opartych na IPv4
1. IPv4 jest mechanizmem typu best effort. Nie zapewnia żadnych metod zapewniania jakości usług. W skutek braku odpowiednich funkcjonalności IPv4 nie można w prosty sposób przekazać wymagań narzuconych przez warstwy wyższe warstwie łącza danych.
1. IPv4 **nie** zapewnia żadnych mechanizmów pozwalających na **szyfrowanie** i zapewnienie, że dane nie zostały **zmodyfikowane**. W efekcie tego każdy, kto ma dostęp do jednego z miejsc na ścieżce pomiędzy dwoma urządzeniami, może podejrzeć lub zmienić przesyłane dane. Jest to dużą niedogodnością, zwłaszcza w obszarze wykorzystania sieci jako medium biznesowego. Bezpieczeństwo danych musi zostać zapewnione przez poszczególne aplikacje, a to nie zawsze jest możliwe.
1. W adresacji IPv4 przewidziano **niewiele adresów multicastowych**. Na dodatek są one nieroutowalne. W efekcie tego znacznie wzrasta obciążenie łączy przy transmisjach strumieniowych, takich jak radio internetowe czy telewizja internetowa.
* Dążenie do maksymalnego wykorzystania przestrzeni adresowej IPv4 (niechęć do przydzielania adresów, które czasowo mogłyby być niewykorzystane) sprawia, że dostawcy usług internetowych dysponują większą ilością mniejszych pul adresowych (zamiast jednej większej). Pociąga to za sobą **rozrost tabeli routingu** i sprawia, że proces trasowania jest mniej efektywny (spadek wydajności sieci, spowodowany przeciążeniami głównych routerów sieci szkieletowych)
1. Obsługa użytkowników **mobilnych** jest niezwykle **skomplikowana**, często wręcz niemożliwa.
1. Węzły mogą posiadać **tylko jeden adres IPv4 w danej sieci**.
1. Przypisywanie **adresów** zazwyczaj odbywa się **ręcznie** (lub lokalnie przez DHCP z ręcznie określonej puli).
**Problemy wynikające z samej konstrukcji datagramów IP:**
1. Ściśle zdefiniowany w specyfikacji sposób podziału i przydziału adresów IP
1. Zamknięta i ściśle sprecyzowana postać komunikatów informacyjno–kontrolno–diagnostycznych
1. Brak możliwości modyfikacji istniejących formatów przesyłania danych
#### Format nagłówka IPv6

Obecna sieć internet opiera się na stosie protokołów TCP/IP oraz
dwóch głównych założeniach:
* na oferowaniu jednej klasy usług (tj. usługi best effort)
* przewymiarowaniu sieci.
Te założenia projektowe:
- w istotny sposób ograniczają obecnie rozwój sieci internet, uniemożliwiając oferowanie usług wymagających przekazu informacji w czasie rzeczywistym.
- przyczyniły się do niebywałego rozwoju internetu, ponieważ jego użytkownicy korzystają głownie z aplikacji, które nie wymagają formalnych gwarancji na jakość przekazu pakietów (przeglądanie stron www, e-mail, pobieranie zbiorów).
Dalszy rozwój infrastruktury internetu opartego na protokołach TCP/IP jest mało prawdopodobny. Sieć IP jest relatywnie prosta i dodanie nowej funkcjonalności czyni ją bardzo złożoną (np. dodanie do sieci możliwości zapewnienia jakości przekazu pakietów wymaga wprowadzenia nowych złożonych architektur.
# Woźniak
## Woźniak 21.04.
### Klasyczne rozwiązania Sieci LAN
### LAN (Local Area Network) – Sieć lokalna
~ Definicja klasyczna: Zespół różnorodnych urządzeń końcowych, które są rozlokowane na niewielkim obszarze, połączonych wspólnym medium komunikacyjnym i realizujących zdecentralizowany algorytm dostępu do tego medium (sprzęt, medium, protokół)
### Cechy sieci LAN:
- max 1000 urządzeń (zasięg do 10 km)
- małe odległości = używane lepsze medium (kable) = szybsza transmisja
- łatwa rozbudowa
- łatwe administrowanie siecią (bo jest mała)
Następuje ciągła ewolucja sieci LAN – jedne technologie pojawiają się, jedne znikają z użycia. Pod względem technicznym też zachodzą znaczne zmiany (w procesorach: wielkości układów krzemowych stale maleje, a oraz liczba tranzystorów oraz maksymalna szybkość działania wzrasta)
#### Prawo Moore'a - średnio co 18 miesięcy podwaja się ilość tranzystorów w procesorach
### Osoby historyczne
- Prof. Jan Czochralski
- Claude Shannon
- Prof. Seidler
### Modele referencyjne sieci
- ISO OSI - International Standarization Organization Open Systems Interconnection (7 warstw)
- TCP/IP (4 warstwy)
### Organizacje/instytucje, które tworzą normy dot. sieci komputerowych (jednostki standaryzujące):
- IEEE (ItripleE) - Institute of Electrical and Electronics Engineers
- ANSI - American National Standards Institute
- ETSI - European Telecommunications Standards Institute
### Porównanie standardu IEEE 802 z modelem ISO OSI
W modelu warstwowym sieci LAN (IEEE 802) mamy bardziej wyodrębnione i podzielone warstwy z modelu ISO OSI, np. warstwa łącza danych podzielona jest na dwie osobne części, podobnie jak warstwa fizyczna.
### Warstwa Łącza Danych
- Podwarstwa kanału logicznego (LLC - Logical Link Control) - warstwa wyższa
- Podwarstwa dostępu do medium (MAC - Medium Access Control) - warstwa niższa
MAC udostępnia LLC odpowienie "prymitywy", czyli jakby metody na komunikację, bo zawsze warstwa NIŻSZA zapewnia komunikację z warstwą WYŻSZĄ, taka hierarchia.
### Omówienie pierwszej podwarstwy łącza danych - LLC
W LLC mamy trzy rodziaje usług, czyli sposobów sterowania ramkami:
- LLC1 (bezpołączeniowe, bez powiadomień - Ethernet, Wifi)
- LLC2 (połączenie z potwierdzeniem, standardowe ramki informacyjne)
- LLC3 (bezpołączeniowe z potwierdzaniem)
W zależności od typu usługi LLC ramki są mniej lub bardziej rozbudowane (rys.)

### Sieci LAN mogą posiadać różne topologie:
- magistrala (bus)
- pierścień (ring)
- drzewo (tree)
- ewentualnie gwaizda (star)
### Sieci LAN charakteryzujemy ze względu na:
- rodziaj medium/system okablowania (przewodowe -skrętka, koncentryk, światłowód; bezprzewodowe - transmisje radiowe, podczerwień)
- technikę transmisji (baseband, carrierband, broadband)
- sposób dołączania stacji do medium transmisyjnego
- algorytm dostępu do medium - Oczywiste jest, że w sieciach istnieje medium, które współdzielą wszystkie urządzenia. Potrzeba zatem metod, które umożliwią dostęp i kontrolę. Podział tych metod poniżej:

Odnośnie rysunku:
Rozwinięcie CSMA - Carrier Sense Multiple Access - wykrywanie innych transmisji/sygnałów, czyli jeśli medium jest wolne to nadajemy dane, a jak nie to nie. Algorytm dostępu CSMA/CD jest kluczowy dla Ethernetu, CSMA/CA dla rozwiązania 802 (czyli dla Wifi).
### Omówienie drugiej podwarstwy łącza danych - MAC
MAC - Multipy Access Control
Właściwości algorytmów rywalizacyjnych – np. CSMA/CD (CD - Collision Detection)
* przy małym natężeniu ruchu zapewniają niewielkie opóźnienia w dostępie do medium
* przy dużym natężeniu ruchu powodują duże i co gorsze niedeterministyczne wartości tego opóźnienia
* gwarantują sprawiedliwą obsługę wszystkich stacji
* wprowadzają ograniczenia na minimalną długość przesyłanych ramek,
* wymagają nasłuchiwania kanału przed i podczas realizowanych transmisji,
* nie nadają się do obsługi aplikacji rt (realtime)

### Cechy algorytmów tokenowych dostępu do medium
- magistrala (token bus)- efektywne wykorzystanie łącza transmisyjnego, ograniczenie od góry czasu opóźnienia dostępu do medium, brak ograniczeń na minimalną długość przesyłanych ramek, priorytezacja i bezkolizyjność przesyłania ramek
- pierścień (token ring) - uproszczone zarządznie pętlą w celu sprawiedliwego dostępu do medium, możliwość obsługi ruchu synchronicznego, natychmiastowe potwierdzanie odbioru ramek na poziomie podwarstwy MAC, możliwość dokonywania rezerwacji tokena o określonym priorytecie
### Przykłady algorytmów dostępu do medium
- Zdecentralizowany algorytm rywalizacyjnego dostępu (CSMA/CD)
- Algorytmy kontrolowanego dostępu z rezerwacją
- Algorytmy kontrolowanego dostępu z przepytywaniem
- Algorytmy z przekazywaniem tokena
Algorytmy z rywalizacją przy dużych korkach (traffic) w medium charakteryzują się znacznym wzrostem czasu odpowiedzi. Dla algorytmów kontrolowanych czas odpowiedzi jest zwyke taki sam (max liniowo rośnie)
### Zagrożenia bezpieczeństwa w sieciach LAN
- przypadkowe zakłócenie
- nieautoryzowany podsłuch/odbiór
- celowe zakłócenie lub nieautoryzowany dostęp
-----
## Woźniak 28.04.
### Standard IEEE 802.11 (Instytut Inżynierów, Elektroników i Elektryków) WIFI
- popularny 802.11n
- 802.11s - zróżnicowanie jakości obsługi
- elementy specyfikacji: 
: * DSSS - transmisje szerokopasmowe, pasmo 20Hz, rozpraszanie bitów pewnymi sekwencjami 2.4GHz 54Mbps
: * FH - frequency hopping, rozproszenie sygnałów w określonej częstotliwości (np. Bluetooth) 5.5Mbps
: * IR - podczerwień 5GHz
: * OFDM - ortogonalnie, nieseryjnie, tylko na równoległych nośnych (większa przepływność)
: * PHY - warstwa fizyczna
: * MAC i MAC management, MIB - baza
: * WEP - prywatność - szyforwanie 24B kluczem
: * LLC - logiczna, 802.2 (już poza standaryzacją)
- Protokół Distributed Foundation Wireless MAC (DFWMAC), dwa tryby pracy:
: * Distributed Coordination Function (DCF) - dostęp rywalizacyjny Carrier Sense Multiple Access / Collision Avoidance (CSMA/CA)
: * Point Coordination Function (PCF) - bezkolizyjna transmisja
- topologiczne rozwiązania:
: * Independent Basic Service Set (IBSS) - ah-hoc, asynchroniczna
: * Infrastructure Basic Service Set (BSS) (Jedno- lub wielokomórkowa sieć z infrastrukturą), stacje nie mogą się komunikować bezpośrednio
- PHY:
- PLCP 16B, Ethernet 7B preambuła
- MAC:
- ramka: frame control - 2B: wersja (a,b,c ...), typ (ramki sterujące(00), zarządzające(01), danych(10)), podtyp (Association - zarządzanie, RTS, CTS, ACK - sterujące, data)
- 4 pola adresowe (w Ethernet tylko 1) S-source, D-destination, T-transmitter, R-receiver
- Portal – interfejs (logiczny i fizyczny) odpowiedzialny za konwersję z 802.11 do 802.3
- standard z 2012: koncepcja agregacji ramek
- skanowanie: 
- wielodostęp CSMA/CA ma za zadanie uniknąć kolizji : (2+ węzłów nadających jednocześnie) - brak możliwości wykrycia kolizji przy 802.11
- W praktyce brak możliwości detekcji kolizji podczas transmisji na skutek słabych sygnałów odbieranych (fading)
- Kompletny brak możliwości wykrywania kolizji w przypadku: stacji ukrytych głębokich zaników
 `Uwaga: W systemie CSMA/CD w pierwszym kroku dostępu – po stwierdzeniu zajętości medium - stosujemy rozwiązanie 1-persistent CSMA (wymuszenie transmisji)`
- detekcja kolizji w 802.11    `CTS mówi nam, że przyjdzie DATA, dlatego stacja B nie podejmie żadnych działań, tylko oczekuje`
- wyeliminowanie kolizji długich ramek jest możliwe, ale ramek RTS niekoniecznie (ale wysłanie ponowne jest szybkie)
- randomizacja opóźnienia przed kolizją (random backoff) od 1 do 32, każda stacja randomowo wybiera takie opóżnienie i count-down, wtedy przy 0 stacja może nadawać
***WAŻNE***
***DCF***
 
- należy wysyłać ramki RTS i CTS, aby zwiększyć przepustowość - wysyłać info o wielkości przesyłanych danych
***PCF***
- AP rozgłasza okresowo ramki Beacon i używa PCF do odpytywania (poll) stacji, czy mają ramki do przesłania 
***WAŻNE***
 
### Bezprzewodowe sieci LAN
coś o antenach i decybelach 10log(K/I)
 
`moc odebrana maleje z kwadratem powierzchni, L mówi o gęstości tłumienia. Lepsze tłumienie dla fal o większych długościach`

`czułość urządzenia jest ważna, zysk kierunkowy`
Teoretyczny zasięg połączenia - „wolna przestrzeń”: 54 Mb/s – 450m, 1 Mb/s – 3550m, 54 Mb/s – 9m, 1 Mb/s – 23m
-----
## Woźniak 30.04.
### Protokół IPv4
- Sieci IP są rozlokowane w wielu rozproszonych lokalizacjach;
- Sieci IP projektowane są z myślą o poprawie odporności na uszkodzenia;
- IP umożliwia pracę odległych systemów jako jednego organizmu;
- Gdy powstał model OSI, protokół IP został przyporządkowany warstwie sieciowej;
- IP jest protokołem datagramowym, oferującym prosty, ale zawodny sposób przekazu
- praktykuje sie minimalizm, bardzo prosty mechanizm
Taka notka - router działa transparentnie, jest bezstanowy, w żaden sposób nie ingeruje w zawartość przesyłanych datagramów

- Każdy obiekt warstwy sieciowej (network-layer) w sieci IP ma przynajmniej jeden unikatowy adres IP
- Formaty adresów IP:
: * 4 bajty: 132.181.10.9
: * 32 bity: 10000100.10110101.00001010.00001001
: * Hex: 0x84 0xB5 0x0A 0x09
- Liczba dostępnych (teoretycznie) adresów IP: $2^{32}$ ≈ 4.3 miliardów (za mało, stąd potrzeba było wprowadzić IPv6, czyl 128 bitowe adresy)
### Klasy adresów i bloki adresowe
Ciąg pierwszych bitów <-> odwzorowanie klasy adresu (lokalizacja zera definiuje przynależność do klasy):
- A: 1-bit class ID (0), 7-bit net id, 24-bit host id; Dostępnych 126 sieci klasy A (każda z 16 milionami hostów)
- B: 2-bit class ID (10), 14-bit net id, 16-bit host id; 16,384 dostępnych sieci klasy B (każda z 65536 hostami)
- C: 3-bit class ID (110), 21-bit net id, 8-bit host id; 2,097,152 dostępnych sieci (każda z 256 hostami) z adresami klasy C
- D: Adresy Multicastowe : 4-bit class ID (1110), $2^{28}$ adresów
- E: Adresy do specjalnego wykorzystania: 5-bit class ID(11110), $2^{27}$ adresów

### Maski sieciowe
Maski sieciowe to ciąg iluś jedynek zakończonych ciągiem zer. Powstały po to, aby podzielić sieci na mniejsze fragmenty. Jeśli przykładowo adres IP ma postać:
11101010.10101000.01100101.10100110
a maska wynosi:
11111111.11111111.11111111.00000000 (skrócony zapis to /24, bo mamy 24 jedynki)
to w tym wypadku pierwsze 3 bajty reprezentują adres sieci, a pozostały bajt (8 bitów = 256 adresów) reprezentuje liczbe hostów w tej sieci. Ale trzeba pamiętać, żeby z puli liczby dostępnych hostów odjąć 2 adresy - adres podsieci oraz adres rozgłoszeniowy (broadcast)

### Adresacja bezklasowa (CIDR - Classless Inter-Domain Routing)
- pozwala na elastyczne zarządzenie pulą adresów
- można agregować duże grupy adresów zmniejszając tabele routingowe, o ile mają wspólny prefix (początek adresu)
### NAT - Network Address Translation
- Umożliwia powtórzenia tego samego adresu IP w różnych sieciach lokalnych, dzięki czemu liczba dostępnych adresów aż tak drastycznie nie malała
- zamienia adres prywatny, który możę się powtarzać, na adres publiczny potrzebny do komunikacji globalnej



### Koncepcje routingu
#### Problemy wyboru tras
- Często sieci przedstawia się w postaci grafu, gdzie wierzchołki to routery, a krawędzie to połączenia między nimi. Oczywiście nie każda krawędź jest identyczna - często mają różne wagi czy długości (tzw. metryki np. koszt, czas opóźnienia/przesyłu, odległość geograficzna).
Tzw. 'hopy' to liczba przeskoków pomiędzy routerami. Zwykle wybieramy trasy najkrótsze, czyli o najmniejszej liczbie hopów.
Co jakiś czas routery dzielą się ze swoimi sąsiadami zawartością całej swojej tablicy adresowej.
-----
## Woźniak 12.05.
### Protokoły transportowe UDP i TCP w Internecie (TCP/IP)
TCP - protokół połączeniowy, niezawodny, umożliwia sterowanie przepływem, kontrola postępów, zaufanie - bezpieczny, wiarygony, multipleksowanie (obsługa większej liczby aplikacji), pozwala na pracę duplexową, ALE skomplikowana obsługa i duży nagłówek
UDP - protokół bezpołączeniowy, zawodny, zapewnia identyfikację protokołów warstwy aplikacji, suma kontrolna, krótkie wiadomości, szybka interakcja, NIE buforowanie, NIE segmantacja, NIE sterowanie przepływem
IP - usługa best effort (staramy się zachować jakość dla danego przepływu)
4 podstawowe elementy protokołu:
- składnia (gramatyczna część)
- semantyka (jednoznaczność - jakie znaczenie wiadomości?)
- akcja (dynamika)
- timing (zachowanie kolejności wykonania działań)
Warstwa transportowa obsługuje protokoły TCP i UDP:
- gniazda (numery portów, suma kontrolna w TCP)
Warstwa Internetu IP:
- zamiana adresów z pomocą DNS, rozszerzenie o adresy IP - datagram
Warstwa sieciowa Ethernet:
- dodanie nagłówka ETH (warstwa MAC), ogólna obsługa datagramów, dodanie CRC (zakończenie)
TCP i UDP korzystają z różnych grup portów
- 0-1023 zarezerwowane dla usług sieciowych, np. DNS 53, HTTP 80, smtp 25
- 1024-49151 używane po rejestracji w IANA
- 49152-65535 reszta
#### 'UDP'
- komunikat UDP (nagłówek i komunikat) jest enkapsulowany przy użyciu nagłówka IP z wartością 17 (0x11) w polu IP Protocol `minimalna długość nagłówka IP to 20B, a UDP to 8B`
- pseudo-nagłówek (usuwany - tylko do sumy kontrolnej) - adres źródłowy i docelowy IP `z punktu widzenia UDP i TCP musi być znana adresacja IP!`
#### 'TCP'
- jednostka informacji przekazywana przez TCP do IP nazywana jest segmentem.
- jednoczesne uruchomienie zegara (timer) i czekamy na powiadomienie - RTT i RTO
- nagłówek `jak jest brakujący segment to cały czas czekamy aż on przyjdzie` `OKNO window size - bardzo ważna sprawa - max pojemność bufora, musi być wielokrotność 2^16, najczęściej 2^16 * 2 ^14`
- znaczniki
• CWR – Congestion Window –wskazuje, iż host wysyłający otrzymał segment TCP z ustawioną flaga ECE – służy do zarządzania oknem wysyłającym
• ECE –TCP Peer is ECN-Enable – oznacza, iż strona TCP obsługuje funkcjonalność ECN (Explicit Congestion Notification)
• UGR wskazuje na ważność pola wskaźnik pilności
• ACK wskazuje na ważność pola numer potwierdzenia
• PSH wskazuje na działanie funkcji wymuszającej wysyłanie segmentu
• RST powoduje przywrócenie stanu początkowego (wyzerowanie) połączenia
• SYN wskazuje, że w polu numer sekwencyjny umieszczony jest inicjujący numer sekwencyjny INS. Jest on przeznaczony do synchronizacji numerów sekwencyjnych w fazie ustanowienia połączenia
• FIN wskazuje, że nadawca nie ma nic więcej do nadania. Jest on traktowany jako sygnał końca danych
- połączenie TCP, three-way handshake

- porównanie TCP vs UDP

### Mechanizmy sterowania przebiegiem sesji TCP w Internecie
- chcemy płynnie sterować, full-duplex, flow control, ciągła transmisja
- efektywne zarządzanie kolejkami AQM (Active Queue Management) np. RED (Random Early Detection/Drop)
- kontrola przeciążenia w Internecie, mogę modelować ruch już u siebie, routed zwykle działa jako FIFO, i DT - drop tail (jak coś się nie mieści)
- ważne parametry flow control: sequence number (cowysyłam), numer potwierdzenia (co pobieram), rozmiar okna (ile jeszcze mogę)
- okno przesuwne 
* rozmiar okna
* acknowledgements, potwierdzenia

* zmniejszanie okna


* poszerzanie, zwiększanie okna

### Mechanizmy sterowania przebiegiem sesji TCP w Internecie i przeciwdziałania przeciążeniu sieci
- dwa tryby:
* slow start: congestion window < slow-start threshhold value
* congestion avoidance: congestion window >= slow-start threshhold value
+ slow start - wysyłamy 1, jak napływa coś to cwnd +1, jak 2 to +2, exp
- reakcje na przeciążenie:
* utrata pakietu

* Tahoe: jak przeciążenie (congestion) - inicjujemy znowu slow start od 1, zmniejszamy do połowy wartość progową związaną z oknem przeciążeniowym
* Reno: nie rozpoczynamy od 1, tylko od jakiejś wartości progowej (congestion avoidance), zmniejszając do połowy wartość progową związaną z oknem przeciążeniowym
++ Fast Retransmit, gdy replikacje ACK, nie czekamy na wyczerpanie RTT
++ Fast Recovery, pozwala uniknąć slow start, przed RTO, duplikaty mówią nam, że transfer jest nadal git i bierzemy te kolejne segmenty (zakładamy, że tworzą ciąg, a później transmitujemy początek) - zwiększamy okno o te duplikaty
Rozwiązania stanu łącza:
- metryka jest odwrotnością przepustowości (lepsze większe przepustowości - mniejsze opóźnienia)
- OSPF (wewnątrzdomenowy - zamknięte sieci) - w przeciwieństwie do odległościowo-wektorowego trybu wysyłamy info do wszystkich, a nie tylko do sąsiadów (wtedy znamy w krótkim czasie całą topologię sieci)
Po co są bufory w routerach?
• Cel podstawowy – buforowanie ruchu i tym samym „łagodzenie” chwilowych spiętrzeń ruchu bez konieczności odrzucania pakietów
• Sytuacja idealna:
+ bufor w routerze jest najczęściej prawie pusty
+ tylko czasami (rzadko) zawiera wiele pakietów (chwilowe spiętrzenia ruchu)
+ pożądany efekt – niskie opóźnienia kolejkowania
Wnioski z analizy TCP
• Protokół TCP używa buforów do innego celu, niż powinny one służyć (czyli ....do chwilowego zajmowania buforów w ścisłym powiązaniem z routingiem i do multipleksacji statystycznej...)
o TCP stara się maksymalnie zapełnić bufory w routerach (sondując w ten sposób dostępne dla siebie pasmo)
• Takie „nieprzystosowanie” do siebie protokołu TCP oraz kolejki FIFO-DT powoduje szereg problemów:
+ niepotrzebnie występują długie kolejki pakietów -> opóźnienia kolejkowania,
+ przy przepełnieniu bufora wielu nadawców redukuje równocześnie szybkość transmisji (niskie wykorzystanie pasma) po czym znowu dochodzi do przepełnienia i tak cyklicznie (swoista synchronizacja pracy źródeł...)
+ niesprawiedliwy podział pasma pomiędzy połączenia TCP
`jak zachowują się routery w przypadku zbyt dużych segmentów? co się dzieje? czy router może wykonywać segmentację?`
# Gierszewski
### Filtrowanie ruchu sieciowego
#### Sposoby
* za pomocą adresu ip domeny rozgłoszeniowej
* numer portu węzła IP
* flaga segmentów TCP
* pola danych
* przynależność połączenia
* ciasteczka
#### Zastosowania
* diagonostyka konfiguracji stosu ip
* diagnostyka działania protokołu/aplikacji
* firewall
### Filtry BPF - Berkely Packet Filter
* Uniwersalne bezstanowe filtry wysokiej wydajności
* Filtrowanie po polach adnresu
* filtrowanie po protokole lub numerze portu
* Filtrowanie po kerunku ruchu
### Firewall
* najprostszy, historycznie najstarszy sposób filtrowania ruchu IP
* zwykle kojarzone z interfejsem wejściowym/wyjściowym
* możliwość zaglądania w nazwane popularne pola ramek – m.in. adresy docelowy i źródłowy warstwy 3 OSI (czasem także 2), protokół warstwy transportowej, numery portów, rodzaje komunikatów ICMP, itp.
* opcjonalne filtrowanie po offsecie w ramce (uwaga na zmienną długość nagłówka protokołu IP), również z maskami
* historycznie odpowiedzialne za podział na porty uprzywilejowane (<1024) i nieuprzywilejowane (>1024) – zwykły użytkownik nie mógł otworzyć portu <1024
### Filtrowanie Stanowe
* Wymaga śledzenia stanu połączenia
* Dotyczy nie tylko ruchu połączeniowego
* Pozwala dodać jedną regułe dla ruchu przychodzącego
### Filtrowanie aplikacji
* oprócz parametrów do L4 włącznie oraz stanu analizowane są warstwy wyższe
* przykład: filtrowanie zależnie od sesji HTTP (protokół sam w sobie nie dostarcza mechanizmów śledzenia sesji – powszechnie wykorzystywane są ciastka)
* ciastka występują jedynie w nagłówkach żądań HTTP, a nie dalej w pofragmentowanym żądaniu/formularzu, dlatego potrzeba dodatkowych charakterystyk ruchu
* WAF-Web Application Firewall
### TLS - transport Layout security
* protokół wykorzystywany w warstwie 4 modelu OSI jako opcjonalna realizacja istniejących protokołów otwartotekstowych
* ALPN - Application-layer Protocol Negotiation
* pozwala uwierzytelnić minimum jedną strone komunikacji
* ruch bezpołączeniowy utrudnia atrybucje datagramów do sesji
### TLS-zastosowania
* DNS
* NTP
* SNMP
* RADIUS
* ruch strumieniowy
* tunelowanie – VPN
* HTTP over QUIC, HTTP/3
DTLS - datagram TLS pozwalający przypisać datagram sesji
### AAA
* Authentication – uwierzytelnianie
* Authorization – autoryzacja
* Accounting – rozliczanie
### AAA - przykłady
* Radius
* Diameter
* LDAP
### VPN - Virtual Private Network
* nakładkowe rozwiązanie bezpieczeństwa
* Stworzone w celu połączenia oddziałów firm poprzez kontrolowaną sieć
* 2 tryby
: * site-to-site: pomiedzy oddziałami
: * client-to-site: użytkownik zdalny
* nie jest niezawodny!
### Vpn - zastosowania
1. wzajemne uwierzytelnienie stron
2. uzgodnienie materiału kryptograficznego (strumieniowego)
3. szyfrowanie danych – enkapsulacja
4. rotacja materiału kryptograficznego podczas trwania połączenia
### Vpn - standardy
* IPsec - IP security
* L2TP
* GRE – Generic Routing Encapsulation
* PPTP – wyłącznie informacyjne RFC 2637
### usługi katalogowe
* Podstawowe zarządzanie grupami zasobów i użytkowników
* Uwierzytelnianie użytkownika do zbioru zasobów
* Możliwość hierarchicznego przydzielania uprawnień
* Dziedziczenie uprawnień
* Możliwość zabronienia dziedziczenia
* Koszt: trudność w teoretycznym określeniu uprawnień – niedeterministyczne zachowanie katalogu
### zarządzanie logami
* Manualne przeglądanie dzienników zdarzeń (logów)
* Cykliczna analiza oprogramowaniem automatycznym
* Cykliczne audyty bezpieczeństwa
### Rozwiązania MDM - Mobile Data Management
* rozwiązania dla urządzeń mobilnych
* pozwalają na provisioning aplikacji i lokalne źródła aplikacji
* pozwalają na kontrolowanie funkcjonalności terminala mobilnego
* zapewniają bezpieczeństwo data-in-motion oraz data-at-rest
* funkcjonalność zdalnego usunięcia danych
### Monitorowanie sesji uprzywilejowanych
* Dotyczy ruchu sieciowego związanego z zarządzaniem systemami informatycznymi
* Rozwiązania pozwalają monitorować zarówno ruch przeszukiwalny, jak i inny (np. sesje graficzne)
* W przypadku ruchu nieprzeszukiwalnego dodawane są meta-znaczniki pozwalające poruszać się w zbiorze danych opisujących zapisaną sesję