# Sieci z kurpielem
## Gniazda
Gniazda - podstawowy element składający się na komunikację internetową
Model OSI

Gniazda występują w warstwie transportowej tj 4 od dołu ( w modelu ARPA 3 od dołu)
Wiadomość którą wysyła się przez gniazdą nazywamy datagramem lub segmentem w zależności od protokołu zastosowanego w warstwie
**Identyfikacja serwera (ale też i klienta) odbywa się przez wymienienie adresu komputera(np ipv4) i portu**
Numer portu to liczba całkowita i dodatnia dwu bajtowa(65 tyś z groszem)
Niektóre porty są zastrzeżone dla standardowych usług
Oprócz adresu oraz numeru portu potrzebny jest protokół którym odbywa się komunikacja:
UDP - używany do przesyłania jednego komunikatu(datagramu) przez proces nadawcy do procesu odbiorcy
TCP - używany do tworzenia stałego połaczenia miedzy dwoma procesami, przekazywania danych(sagmentów) w obie strony, kontrola poprawności przesyłu dancyh w obie strony i zamknięcie połaczenia
**Z czego składa się datagram/segmentów -> nagłówka i treści**
**Skąd sie bierze treść datagramu/segementu -> z komunikatu warstwy wyższej**
**Co używa UDP? DNS, DHCP, TFTP, transmisja multimediów**
UDP - jest protokołem bezpołączeniowym

TCP - protokół połączeniowy, wiadomości przekazywane w obie strony, można wyróżnic proces inicjujący(klient) oraz oczekujący(serwer), spełnia 6 podstawowych zadań:
**1) budowa połączenia
2) Podstawowy transfer danych
3) Niezawodnośc tego transferu
4) Kontrola przepływu danych
5) Multipleksowanie
6) Nadrzędnośc(bezpieczeństwo**

**Główne zadania protokołu TCP:**
Numer sekwencyjny i numer potwierdzenia -> Realizacja niezawodnośc transferu
TCP budowa połączenia oparta jest o zasade potrójnego uzgodnienia:
1) klient wysyła flagę SYN i wybiera wartość pola SEQ=x,
2) Serwer ustawia flagę ACK oraz numer potwierdzenia ACK=x+1
3) Serwer ustawia SYN, wybiera swoje SEQ=y
4) Klient ustawia flagę ACK oraz numer potwierdzenia ACK=y+1
Zakończenie połączenia może być inicjowane przez kazdą ze stron klient/serwer, sygnalizowane jest przez nadanie flagi FIN, strona wysyłająca FIN jest dalej gotowa do odbioru
Gniazdo to zbiór 3 elementowy {Adres_internetowy, Port, Typ_protokołu}
----------------------------------------------
--------------------------------------------
## DHCP
Komputer dołączony do sieci musi mieć:
- adresIP
- maskę podsieci
- adres IP bramki
- adres IP serwera nazw
ARP - Adress resolution Protocol -> jaki adres MAC ma jeden z moich najblizszych sasiadów
RARP(reverse ARP) - historyczny protokół oferujący ograniczoną autokonfigurację, pozwalał na otrzymanie adresu IP
Bootstrap Protocol(warstwa aplikacji) - przeznaczony do konfiguracji dowolnego urządzenia sieciowego używa protokołów komunikacyjnych UDP oraz IP
Podstawowe zadania:
- Wyszukiwanie własnego adresu IP klienta,
- wyszukiwanie adresu IP serwera bootp,
- wyszukiwanie nazwy pliku który będzie załadowany i uruchomiony na maszynie klienta
Protokół pracuje w trybie klient-serwer: serwer 67/udp, klient 68/udp oraz używa dwóch rodzajów pakietów(zapytanie i odpowiedź)
Klient który chce otrzymać adres zapyuje o adres TYLKO RAZ! (Jesli chcemy odświezyć to trzeba zrestartować klienta BOOTP)
Komunikat Bootp jest opakowany w nagłówek UDP oraz naglówek IP. Następnie jest wysyłany w sieć(na adres rozgłaszania) do portu 67,
adres klienta to zera bo nie zna swojego adresu,
Nie zna adresu serwera więc wstawia adres rozgłoszeniowy,
wstawia xid(identyfikator),
sekundy i flagi,
Następnie serwer odpowiada danymi jeżeli ma je w bazie danych(sprawdza po adresie MAC klienta)
BOOTP to protokół statyczny (dane klienta muszą być wpisywane do bazy danych)
**DHCP**
Zgodnośc z poprzednim protokołem BOOTP, możliwość dzierżawienia adresu(otrzymania tymczasowego adresu), Serwer DHCP gromadzi i zapamiętuje dane konfiguracyjne o klientach
DHCP scenariusz:
-Klient zgłasza chęc dzierżawy adresu IP na określony czas,
-Serwe przydziela adres IP klientowi gwarantując że w określonym czasie parametry dzierżawy nie zmienią sie
-Po wygasnieciu czasu dzierżawy adres może być przydzielony innemu klientowi
-Klient może zgłośić chęć przedłużenia czasu dzierżawy, chęć otrzymaniu stałego adresu
Dane przekazywane przez DHCP to adres, bramka, maska, adres serwera DNS
Są trzy podstawowe metody przyznawania konfiguracji:
1) Metoda ręczna = Administrator sieci na serwerze DHCP ręcznie konfiguruje adres IP klienta -> gdy klient zgłasza się do serwera ten sprawdza adres sprzętowy klientai znajduje odpowiadający mu adres IP
2) Metoda automatyczna = Klient łączyąc się z serwerem pierwszy raz otrzymuje losowy adres IP, serwer rezerwuje ten przydzielony adres na zawsze dla klienta
3) Metoda dynamiczna: Klient dostaje adres IP z pewnej puli na okreslony okres czasu, po upływie tego czasu dierżawy serwer DGCO zabiera adres i może go przydzielić innemu klientowi

Klient:
nie zna swojego adresu więc wypełnia je zerami,
adres serwera to zera, w diagramie UDP dajemy odpowidnie porty, transaction identifier -> numer który nas będzie identyfikował
Typy komunikatów DHCP:

Tak działa DHCP

------
------
## ACL NAT PAT
**ACL** - Access Control List - często używany sposób kontroli dostępów do zasobów:
- komputera
- serwera usługi
- sieci lokalnej
Plik posiada zazwyczaj jednego
właściciela, jedną grupę do której należy, pozostałych użytkowników
r- prawo do czytania
w - prawo do pisania(modyfikacji, usunięcia)
x- prawo do wykonywania
Model ACL obejmuje właściciela pliku oraz zdefiniowanego ACL_USER
Grupę pliku oraz ACL_GROUP
ACL_MASK
Generalnie chodzi o to że oprócz zwykłych praw, można mieć prawa ACL i wtedy sie też sprawdza po tych prawach ACL
ACL - zapora ogniowa
Filtrowanie pakietów:
to podejmowanie decyzji na podstawie zawartości nagłówka co dalej robić z pakietem
Listy ACL - reguły zapór ogniowych które odnoszą sie do konkretnej warstwy i protokołu sieciowego(np iptables)
Reguła to najmniejsza jednostka konfiguracji filtra która zawiera się w łańcuchach
Reguła zawiera :
• zbiór warunków, jakie musi spełniać pakiet, oraz
• akcję, jaka zostanie wykonana, gdy warunki zostaną
spełnione.
Podstawowe decyzje w regułach
DROP, REJECT, ACCEPT
mogą być podjęte w stosunku do pakietu w każdym łańcuchu
**NAT**
Nat(network address translation) - warstwa łącza danych. Istotą NAT jest zamiana adresów MAC.
Mosty - pozwalają połączyć dwa segmenty sieci lokalnej w jeden segment(nie psując fizycznej topologii)
W jakim łańcuchu wpisuje się reguły modyfikujące adres nadawcy pakietu?
w jakim to łańcuchu tablicy nat modyfikuje się odbiorce pakietu?
odp na dwa wyższe to

jakie adresy trzeba zmodyfikować jeśli siec firmową chcemy podłączyc do internetu?
adres nadawcy
w jaki sposób przejmować ruch ze swiata zeby był rozłozony na kilka komputerów w firmie
adres odbiorcy
**PAT**
Zmiana portów może być realizowana przez urzadzenie które ma dostep do komunikató TCP oraz UDP
zajmuje się tablicą iptables
Typy natowania:
**statyczna tablica nat**: mapowanie 1:1
**Dynamiczne tablica NAT**
wiele do wielu
**PAT**
maskarada: wiele do jeden
---------------------
--------------------
**VLAN**
VLAN to logicznie wydzielona czesc segmentu sieci lokalnej, tworząc vlany dzielimy segment sieci lokalnej na logiczne czesci w rmach warstwy 2(łącza danych).
Domyślnym VLAN jest VLAN1
Data VLAN - ramki zawierają dane np o użytkownikach
Protokół VTP - vlan trunking protocol