BSK Kolos 1
1. Hub
- 1 warstwa: fizyczna (przede wszystkim topologia gwizdy)
- przyłącza stacje do swoich wielu portów, przesyła do wszystkich portów
- tryb half-duplex (transmisja w jednym kierunku jednocześnie w kanale
dwukierunkowym)
- wzmacnia i regeneruje kształt sygnału (co wydłuża połączenie), potrzebuje zasilania
- gdy ulegnie awarii, cały podłączony segment nie działa, gdy host nie działa, inne
urządzenia podpięte do huba działają
- zapobiega rozprzestrzenianiu się zbyt wielu błędnych ramek, ramek z uszkodzonego
segmentu, zbyt długiemu nadawaniu stacji
4. Most
- 2 warstwa: łącza danych
- tryb nasłuchu – odbierają dane z medium transmisyjnego
- zwykle 2 porty łączących segmenty (stacje, huby), czyli zwiększa rozpiętość sieci
- zapisuje w tablicy pary: MAC + port dla podpiętych hostów, przesyła tylko między
odpowiednimi portami
- proste urządzenie, nie filtruje błędnych ramek
- wprowadza opóźnienie
3. Switch
- 2 warstwa: łącza danych (przede wszystkim topologia gwiazdy)
- kilkanaście portów, łączących segmenty (stacje, huby, switche), czyli zwiększa
rozpiętość sieci
- tryb full-duplex (transmisja w obu kierunkach jednocześnie w kanale
dwukierunkowym)
- zapisuje w tablicy pary: MAC + port dla podpiętych hostów, przesyła tylko między
odpowiednimi portami
- inteligentnie przełączane tryby: fast foward – śle od razu, store and forward – spr.
błędne lub biorące udział w kolizji ramki, eliminuje je i śle (opóźnia)
- wprowadza opóźnienie
4. Router (Gateway)
- 3 warstwa: sieci
- łączy segmenty (również w różnych technologiach), zwiększa rozpiętość sieci
- konfigurowalny (np. przepustowość)
- routing – optymalna trasa wg tablicy (info o routerach, sieciach i ich stanie) statycznej
lub dynamicznej (aktualizowana ręcznie przez admina lub automatycznie)
- izoluje LAN, przekazuje pakiety poza nią
- dzięki NAT (tłumaczeniu adr. źródł. hostów na jeden zewnętrzny IP routera),
reprezentuje sieć LAN w Internecie
- można wykorzystać jako firewalla: kontrolować połączenia, dostęp zabezpieczenia
5. Brama domyślna/sieciowa (router)
Maszyna w sieci pośrednicząca w przesyłaniu pakietów LAN – zewnętrzne podsieci.
Zwykle router jest takim węzłem, do którego kierowane są pakiety z hostów sieci LAN.
Bez adresu bramy domyślnej (oraz IP i maski podsieci) niemożliwa jest komunikacja
poza siecią LAN.
6. Maska podsieci
Liczba wyodrębniająca w adr. IP część sieciową od części hosta (IPv4 32b, IPv6 128b),.
W IPv4: w postaci 4 liczb 8 bitowych, np. 255.255.255.0. W wyniku porównywania
maski adresu (np. 255.255.255.0) z konkretnym adresem IP (np. 192.180.5.22) router
otrzymuje informację o tym, która część identyfikuje podsieć (w tym przypadku
192.180.5), a która dane urządzenie (.22).
7. Domena kolizji (Segment)
Pojedynczy segment w obrębie urządzeń 1 warstwy (karty sieciowe, modemy, huby).
Dzielenie na segmenty z urządzeniami 2 i 3 warstwy (most, switch, router). Zasady 5-
4-3: max 5 segmentów, 4 wzmacniaki pomiędzy dwoma stacjami, 3 wypełnione
segmenty/5.
8. Ethernet
Standard odmiany CSMA/CD (wykrywanie kolizji) umożliwiający budowanie sieci w
oparciu o topologię fizyczną gwiazdy lub magistrali (nie pierścienia).
- 1 warstwa: fizyczna
- ciągły nasłuch
- half-duplex
- S – szczelina czasowa czas transmisji 512 b dla 10 i 100 MB/s, żeby kolizja została
wykryta; określa rozmiar ramki na 64B; ramki mniejsze – fragment kolizji lub słaba
ramka – odrzucane
- czas propagacji – czas przejścia między dwoma najdalej oddalonymi stacjami w sieci
- Ti=Ri*S – czas oczekiwania stacji po koizji, by znów nadawać; i – max l. Prób
9. Pola Ethernet
Preambuła – zerojedynkowy ciąg na początek ramki
SFD – start frame datalimiter , początek komunikacji
MAC do/ MAC z
Długość – ilość danych
Dane – min 46B, bo szczlina czasowa def. dł. nagłówka na 64B
FCS – frame check sum, spr. czy ramki nieuszkodzone
10. Adresy MAC
Adres źródłowy MAC: pojedynczy
Adres docelowy MAC: singlecast (pojedynczy), multicast (grupowy), broadcast
(rozgłoszeniowy: FF:FF:FF:FF:FF:FF)
11. ARP
- warstwa 2: łącza danych
- Adress Resolution Protocol
- zamienia IP → MAC
- kiedy nie znamy MAC, a chemy wysłać hostowi
Adres docelowy MAC broadcast, docelowy IP znamy. Pytamy o MAC hosta o danym IP,
A → B. Jeśli B ma ten IP, to odpowiada podając swój MAC, a A zapisuje sobie te parę w
tablicy.
12. Proxy ARP
- połączenie point to point
- router pośredniczy między A → B, A wysyła, router podaje swój IP, a odbiera dane
jeśli posiada w tablicy IP hosta A.
13. RARP
- Reverse Address Resolution Protocol
- zamienia MAC → IP
- gdy podłączymy nową stację do sieci
A → B. B nie zna swojego IP, więc wysyła zapytanie. Wysyła nagłówek Ethernet z
docelowym MAC broadcast, docelowym IP adres rozgłoszeniowy, MAC źródłowy
aa:aa..., ip: 0.0.... Tablica danych (server RARP) zwraca mu jego IP.
14. Gratuitous ARP
- ARP request lub reply
- aktualizacja tablic ARP innych maszyn
- informuje switche o zmianie IP na jego porcie
Wykrywanie dublowania IP: kiedy stacja chce wiedzieć, czy jako jedyna posiada dane
IP. Wysyła swój MAC, jak dostanie odpowiedź, to znaczy, że w sieci jest duplikat.
15. Domena rozgłoszeniowa
Wszystkie stacje w LAN, które dostają broadcast.
16. IP
- warstwa 3: sieci
- bezpołączeniowy – nie spr. gotowości odbioru
- niepewny – nie wykrywa błędów
- jednostka: datagram
- schemat adresowania sieci
- trasowanie – routing – wybór trasy datagramu po IP
- dzieli dane – fragmentacja/defragmentacja
17. Pola IP
Wersja [4]– nr wersji IP (v4 czy v6)
IHL[4] – dł. nagłówka min. 5 32 bitowych słów kolejno włącznie z adresem
docelowym, opcje już nie muszą wchodzić w skład.
ToS [8]– jakość: opóźnienie, przepustowość, niezawodność
Dł. całk. [16]- nagłówek + dane max ok. 65,5 tys. bitów, bo 16 bitów dł. pola; min. 20
bajtów, bo taka dł. nagłówka
ID [16]– losowa wartość, dla fragmentowanego datagramu
Flagi [3] – sterowanie fragmentacją: czy dozwolony/ostatni/który datagram?
Przemieszczenie fragmentacji [13] – pozycja, od której wstawiamy dane, korzysta z ID
TTL [8] - czas życia, max życie datagramu (przejście przez router TTL -1), jeśli 0 giń
Protocol [8] – nr protokołu wyższej warstwy
Suma kontrolna [16] – ciągle obliczana, bo nagłówek ciągle się zmienia, np. TTL, spr.
czy nie ma błędu
Adres źródła IP/ Adres docelowy IP [32]
Opcje [x] – zachowanie przy fragmentacji, klasa, np. kontrola, numer
Uzupełnienie [x] – dopełnia do 32b
Dane - ...
18. ICMP
- warstwa 3: sieci
- Internet Control Message Protocol
- protokół kontrolny, obsuguje i wykrywa awarie
- steruje przepływem danych (np. jak sieć nienadąża wysyła komunikat)
- przekierowuje
- kiedy TTL 0 – wysyła komunikat o przeterminowaniu datagramu
- transportowany wewnątrz datagramów IP
- jednostka: ramka
- przykładowe typy: echo reply/request (odpowiedź/prośba ping), destination
ureachable, source quench (tłumienie nadawcy), redirect meddage, traceroute
(śledzenie trasy)
19. Pola ICMP
Typ [8], Kod [8], Suma [16] = 32 bity + 32 bity opcjonalnych danych
20. TCP
- warstwa 4: transportowa
Transmision Control Protocol
- połączeniowy
- niezawodny
- strumieniowy (dane = strumień)
- jednostka: segment
- wykorzystuje PAR – wysyłanie, aż nastąpi potwierdzenie poprawnej transakcji
- retransmisja, jeśli suma kontrolna się nie zgadza
(…) pola TCP, 3 way handshake (...)
UDP
- warstwa 4: transportowa
- bezpołączeniowy, nie ustanawia połączenia, nie spr. gotowości
- bardziej efektywny od TCP, ale brak zabezpieczeń (aplikacja może o to zadbać)
- dobry dla małej ilości danych
- jednostka: pakiet
Pola UDP
Port nadawcy [16] – opcjonalny, może być do niego zwrócona wiadomość, jeśli
nieużywane = 0
Port odbiorcy [16]– identyfikuje, wymagany
Długość [16] - całego datagramu: nagłówek i dane. Min 8B bajtów i jest to długość
nagłówka. Datagram max 65,5 tys. B, ze względu na dł. tego pola
Suma kontrolna [16] – spr. poprawność danych (sk w IP nie spr. danych), opcjonalne
Port
Liczba 16b (0-65,5 tys. b). 0-1024 – well-known ports (porty niskie zarezerwowane
przez organizację dla standardowych usług. Porty wysokie – pozostałe do
wykorzystania. Większość połączeń: niskie → wysokie.
DNS
- warstwa 7: aplikacji
- system nazw domenowych, serwerów, protokół + obsługa bazy adresów sieciowych
- tłumaczy nazwy domenowe na IP
- rejestracja domen, powiązanie ich z IP, obsługa odnajdywania IP dla nazw
- jednostka logiczna: zapytanie
- cały komunikat przesyłany w jednym pakiecie UDP (w TCP + 2 bajty określające dł.
zapytania)
Rodzaje zapytań
- Rekurencyjne
Musi zwrócić adres IP stacji lub błąd. Stosowane między resolverem a serwerem
(providera?). Serwery uczestniczące zapamiętują odwzorowanie, podnosi efektywność
systemu. Serwer zostaje on obarczony odpowiedzialnością za cały proces
wyszukiwania informacji i nie może odesłać klienta do innego serwera nazw.
- Iteracyjne
Zwraca najlepszą odpowiedź na podstawie danych lokalnych, odsyłając w razie
konieczności klienta do innych serwerów DNS. Stosowane między serwerami:
podrzędny pyta nadrzędnego.
- Odwrotne
Znajdowanie nazwy dla adresu IP. Jeśli chcemy zablokować stronę, musimy
zablokować również to, bo użytkownik może dostać się na WWW wpisując IP.
Odpowiedzi na zapytania
autorytatywne – pozytywna odpowiedź pochodząca bezpośrednio z bazy danych
serwera; ma bit uwierzytelniania (AA – Authoritative Answer) - odpowiedź z serwera
bezpośrednio uwierzytelniającego poszukiwaną nazwę.
nieautorytatywne – odpowiedź spoza bazy danych serwera; buforowane przez serwer
przez czas TTL (podany w odpowiedzi) i usuwane.
Format komunikatu
Nagłówek (Header)
Zapytanie (Question) – do serwera nazw
Odpowiedź (Answer) – rekordy z odpowiedzią
Zwierzchność (Authority) – serwery zwierzchnie domeny
Dodatkowa (Additional) – info dodatkowe
Nagłówek
Pola nagłówka
ID [16 bitów] – identyfikator, jednoznaczne powiązanie zapytania i odpowiedzi
QR [1 bit] – (Query or Response) – komunikat jest zapytaniem (0) czy odpowiedzią (1)
OPCODE [4 bity] – rodzaj zapytania wysyłanego od klienta, jest przypisywany przez
serwer do odpowiedzi. Wartości:
0 – QUERY – standardowe zapytanie,
1 – IQUERY – zapytanie zwrotne,
2 – STATUS – pytanie o stan serwera,
3-15 – zarezerwowane do przyszłego użytku
AA [1 bit] (Authoritative Answer) - odpowiedź jest autorytatywna.
TC [1 bit] (TrunCation) – odpowiedź nie zmieściła się w jednym pakiecie UDP i została
obcięta
RD [1 bit] (Recursion Desired) – klient żąda rekurencji, pole kopiowane do odpowiedzi
RA [1 bit] (Recursion Available) – serwer obsługuje zapytania rekurencyjne
Z [3 bity] – zarezerwowane na przyszłość, wyzerowane
RCODE [4 bity] (Response CODE) kod odpowiedzi. Przyjmuje wartości:
0 – brak błędu
1 – błąd formatu – serwer nie potrafił zinterpretować zapytania
2 – błąd serwera – wewnętrzny błąd serwera
3 – błąd nazwy – nazwa domenowa podana w zapytaniu nie istnieje
4 – nie zaimplementowano – serwer nie obsługuje typu otrzymanego zapytania
5 – odrzucono – serwer odmawia wykonania określonej operacji, np. transferu strefy
6-15 – zarezerwowane do przyszłego użytku
QDCOUNT [16 bitów] – określa liczbę wpisów w sekcji zapytania
ANCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji odpowiedzi
NSCOUNT [16 bitów] – określa liczbę rekordów serwera w sekcji zwierzchności
ARCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji dodatkowej
Rekordy
A – adres, mapuje nazwę domeny DNS na jej 32-bitowy adres IPv4.
AAAA - adres, mapuje nazwę domeny DNS na jej 128-bitowy adres IPv6.
CNAME - nazwa kanoniczna, ustanawia alias nazwy domeny; wszystkie wpisy DNS
oraz poddomeny są poprawne także dla aliasu.
MX - wymiany poczty (mail exchange), mapuje nazwę domeny DNS na nazwę serwera
poczty oraz jego priorytet.
PTR – wskaźnik, mapuje adres IPv4 lub IPv6 na nazwę kanoniczną hosta, pozwala na
implementację odwrotnej translacji adresów DNS (reverse DNS lookup).
NS - serwer nazw, mapuje nazwę domenową na listę serwerów DNS dla tej domeny.
SOA - adres startowy uwierzytelnienia (start of authority), ustala serwer DNS
dostarczający autorytatywne informacje o domenie internetowej, łącznie z jej
parametrami (np. TTL).
SRV - usługi (service), dodatkowe info o lokalizacji danej usługi, którą udostępnia
serwer wskazywany przez adres DNS.
TXT – dołączenie tekstu do rekordu DNS
HTTP
- warstwa 7: aplikacji
- Hypertext Transfer Protocol, protokół przesyłania dokumentów hipertekstowych w
WWW
- port 80
- określa formę żądań klienta i odpowiedzi serwera
- jednostka logiczna: wiadomość
- bezstanowy – nie zachowuje info o poprzednich transakcjach, zmniejsza to obciążenie
serwera
- zastosowanie stanów – ciasteczka/sesje po stronie serwera/ukryte parametry
serwera
Kody stanu dla HTTP
- 1xx – informacja (odebrane, w trakcie wykonywania)
- 2xx – sukces (odebrane; zrozumiane i zaakceptowane)
- 3xx – przekierowanie (trzeba podjąć dalsze kroki by zakończyć żądanie)
- 4xx – błąd klienta (zła składnia, lub niemożliwe do realizacji)
- 5xx – błąd serwera (serwer nie może wykonać żądania)
Metody (cele żądania)
POST – żądanie odebrania danych, np.: upload plików, formularze, dane autoryzowane
(dane lecą w ciele kodu)
GET – żądanie zasobu wskazanego przez URI, format: nagłówek + dane (w pasku
adresu pobieranie stanu na podstawie parametrów), ograniczone przez dł. odnośnika
do skryptu
HEAD – żądanie zasobu w formie nagłówka (jak GET), testowanie
DELETE – żądanie usunięcia zasobu (dla uprawnionych userów)
LINK – żądanie ustawienia relacji między istniejącymi zasobami
UNLINK – żądanie usunięcia relacji między istniejącymi zasobami
OPTIONS – żądanie informacji: jakie metody obsługuje serwer
PUT – żądanie odbioru pliku przez serwer
TRACE – testowanie, żądanie zwrotu nagłówka, jaki dostał serwer
CONNECT – dla serwerów pośredniczących, pełni funkcję tunelowania
PATH – żądanie częściowej zmiany zasobu
Różnica między POST i GET
GET - do operacji pobierających dane, na przykład do wyświetlenia użytkownikowi
POST - do operacji zmieniającej stan w systemie (ew. pobierania danych, gdzie chcemy
się choć troszkę zabezpieczyć przed zmasowanym linkowaniem)
Wskazanie zasobu dla metody
URI – ujednolicony id zasobów; standaryzowany łańcuch znaków reprezentowany:
URL – lokalizator, wskazuje miejsce i sposób (ścieżkę i protokół)
URN – nazwa