WYKŁAD 1: Pakietyzacja danych: * niezawodność, * mały narzut. Transmisja danych: * podział danych, * enkapsulacja - podział na mniejsze fragmenty. Network Control Protocol - do adresowania, zajmowanie się kwestiami transmisji w sieci. SIEĆ - zbiór komunikujących się komputerów. LAN - zasięg lokalny, małe rozproszenie geograficzne (np. pracownia komputerowa). MAN - zasięg miejski, kilka tysięcy jednostek. WAN - sieci do zasięgu globalnego włącznie (np. Internet). TOPOLOGIE: * fizyczna - sposób połączenie komputerów ze sobą, za pomocą mediów transmisyjnych; * logiczna - sposób rozpływu sygnału w tej sieci. TOPOLOGIA MAGISTRALI (BUS): * kabel koncentryczny, współosiowy; * terminatory (oporniki); * szyfrowanie połączeń; może być naraz jeden tylko nadawca, jeden nadaje, reszta nasłuchuje; dochodzi nieraz do kolizji transmisyjnych. TOPOLOGIA RING (pierścień): * tylko odmiana logiczna; * jeden kierunek; * transmisja rozgłoszeniowa; * kto ma żeton ten nadaje/wysyła dane; * mechanizm odzyskiwania żetonu; * można obliczyć czas nadawania - są to sieci DETERMINISTYCZNE! (np. lotniska, zakłady przemysłowe, elektrownie). TOPOLIGIA GWIAZDY: * fizyczna, * logiczna - topologia magistrali z hubem; * ze switchem - topologia przełączana; * koncentratory (hub) - optoelektroniczny rozgałęźnik; * cecha: regeneracja sygnału; wzmacniak (repeter) - fizycznie osobne urządzenia (teraz taka opcja zaszyta jest w koncentratorach); * przełącznik (switch) - analizuje każdą napływającą ramkę; * brak możliwości podłuchu; * transmisja wielodupleksowa - przesyłanie danych między kilkoma parami komputerów; half-duplex - jedna nadaje, druga odbiera; * przełączniki minimalizują zjawisko kolizji; SPRZĘT: * urządzenia transmisji (przesyłanie sygnałów w sieciach), nośniki (tzn. medium transmisyjne); * urządzenia dostępu: formatowanie danych w taki sposób, aby nadawały się do przsyłania w sieci. Network Interface Card (NIC) - urządzenia wzmaniania przesyłanych sygnałów, np. wzmacniaki (repetery). Elementy programowe: Programy (software): - protokoły - zbiór reguł komunikowania się; - programy poziomu sprzętowego (mikroprogramy zaszyte w kartach sieciowych); - oprogramowanie komunikacyjne (klient FTP, przeglądarki, itd.). MODEL ISO/OSI: warstwa Aplikacyjna (strumień-połączeniowa, wiadomości-bezpołącz.); w.Prezentacji; w.Sesji; w.Transportowa (segment - połącz. - TCP, wiadomość-bezpołącz. - UDP); w.Sieciowa (datagram); w.Łącza Danych (struktura danych: ramka-MAC); w.Fizyczna (opisy urządzeń i protokołów, reguluje dotyczące budowy skrętki). |||| w.Sieciowa: *określenie jednolitej adresacji w sieciach rozległych; * trasowanie w sieciach rozległych (ustalanie trasy od nadawcy do odbiorcy); * w.Transportowa: * odpowiada za nawiązanie połączenia; * bezbłędna przesyłka danych i ewentualne retransmisje; * w.Sesji: * nie funkcjonuje ta warstwa; w.Prezentacji: * zawiera informacje jak przejść z jednego kodu na drugi, aby komputery porozumiewały się mimo dwóch róznych architektur; w.Aplikacji: * zawiera programy, za pomocą których użytkownik korzysta z sieci. |||| w.Aplikacyjna, w.Prezentacji, w.Sesji -> w.Aplikacji (FTP, SMTP, POP3, http, SSL); w.Transportowa -> w.Transportowa (TCP, UDP); pomiędzy warstwami NetBios; w.Sieciowa -> w.Internetu (IP4, IP6, routery z protokołami routingu ICMP); w.Łącza Danych, w.Fizyczna -> w.Dostępu Do Sieci (UTP, STP, RJ-45, Ethernety, Token Ring, koncentratory, hub, przełączniki, wzmacniaki).
WYKŁAD 2: Warstwa fizyczna rozbija ramki na oktety. Oktet <-> bajt. Pakowanie nagłówków - enkapsulacja; Odpakowywanie nagłówków - dekapsulacja. Typy sieci: * P2P (peer to peer); * Klient-serwer: 1. Serwer plików (serwer http, FTP, serwer poczty); 2. Serwer aplikacji (serwer bazodanowy); 3. Serwer wydruków (drukarki z systemem operacyjnym, procesor, pamięć operacyjna); 4. Serwer bezpieczeństwa (kontrolery domen, przechowuje bazę kont). Media transmisyjne wykorzystujące metody elektryczne i optyczne: a b c, gdzie a - pasmo transmisyjne (1, 10, 100, 1000), b - informuje czy transmisja jest w paśmie rozproszonym czy podstawowym (Base, Broad), c - dokładniejsze opisanie technologii (10 Base 2, normy: 802.3a, 802.3); przy Base możliwa tylko transmisja half-duplex! KABLE: * 10 Base T(802.3e) - kabel typu skrętka (Twisted), half-duplex; * 10 Base F(802.3j): L,B (2km), P(1km); half i full-duplex; transmisja za pomocą światłowodów; * 100 Base TX(802.3u): 100m, full-duplex; * 100 Base T4(802.3u): skrętka, 100m, half-duplex, wszystkie 4 pary przewodów w skrętce; * 100 Base FX(802.3u): od 400 do 1000m; half i full-duplex; * 1000 Base T(802.3ab): skrętka, 100m; * 1000 Base LX: światłowód jednomodowy lub wielodomowy, half-duplex(400m), full-duplex(1km). RJ-45(8 przewodów), RJ-11(6 przewodów). PARC Ethernet: 8okt. - preambuła (naprzemiennie ciąg zer i jedynek, ostatnie dwa bity to dwe jedynki), 6okt. - adres sprzętowy odbiorcy (MAC), 6okt. - adres sprzętowy nadawcy, 2okt. - typ danych jakie są przenoszone przez ramkę (identyfikator protokołu), ~okt. - dane, 4okt. - pole kontrolne FCS(Frame Check Sequence). 802.3 Ethernet (row Frome - ramka surowa): 8okt. - preambuła, 6okt. - odbiorca (MAC), 6okt. - nadawca (MAC), 2okt. - długość całej ramki bez preambuły, ~okt. - dane, 4okt. - FCS, 64okt. - 1.5 kilo-oktetu. 802.2 (Logical Link Control): 1okt. - DSAP, 1okt. - SSAP, 1okt. - połączeniowa czy nie, z potwierdzeniem lub bez.
WYKŁAD 3: Ramka Ethernetu: 802.3 + 802.2; LLC: 1okt. - identyfikator DSAP <- 0xAA, 1okt. - SSAP <- 0xAA (jeśli będzie to, to pojawia się SNAP), 1okt. - pole kontrolne (Control). Nagłówek SNAP: 3okt. - identyfikator organizacji/producenta technologii, 2okt. - identyfikator protokołu. Adresy sprzętowe kart sieciowych: MAC - każda karta ma unikatowy adres, 6okt. -> 48-bitowy: 1b - LAA (Locally Administered Address), 1b - U/L - Universally/Locally Administered Address (unikatowy/grupowy) - gdy 0b to unikatowy, 22b - identyfikator producenta - ID Prod., 24b - model karty, data produkcji, numer seryjny. Gdy 48 jedynek to SuperBroadcast - wysłane do wszystkich. Pierwszy adres specjalny: 1111 - adresowanie do wszystkich, 0000 - adresowanie do nikogo, samotestowanie przez łącze. Metodyka modelowania: CSMA/CD (Carrier Sense Multiple Access/Colision Detection - Wielodostęp Do Nośnika Z Nasłuchiwaniem Nośnym/Wykrywanie Kolizji): 32b - czas rozpropagowania kolizji do wszystkich węzłów sieci (3,2μs), po rozpropagowaniu kolizji, karty odczekują losowo wygenerowany odcinek czasowy, według wzoru: Ti=Ri· S, i=1…16; 16 prób nadawania, 17 kolizja powoduje odłączenie węzła od sieci. Ri <0,2n-1>, n=min(i,10), i - numer próby, R - pewna liczba losowa, S - szczelina czasowa; czas mierzony w nanosekundach, kolizje występują w segmentach lokalnych. 512b -> najmniejsza ramka Ethernet -> 10Mb/s, 51,2μs; Fast Ethernet - 5,12μs. SZCZELINA CZASOWA - czas potrzebny na wysłanie sygnału pomiędzy najdalej rozłożonymi węzłami do nadawcy i powrót sygnału. Gigabit Ethernet - 4096b (64 oktety) - rozmiar ramki. Binary Exponential Back-off Algorithm (czas oczekiwania rośnie wykładniczo) - 96b; transmituje sygnał odstępu międzyramkowego - InterFrameGap; zarezerwowanie pasma na wysłanie kolejnej ramki; * przełączniki działają w dwóch trybach: * Fast - natychmiast przesyła dane, * Store and Forward - magazynuje ramki; gdy port się zwolni, dopiero dane zostają przesłane. NATŁOK - gdy wielu chce nadawać. Maksymalny rozmiar ramki w Ethernet: Ethernet i Fast Ethernet - ~1,5kB, Gigabit Ethernet - 2x4096b. Wykorzystanie medium transmisji: Ethernet: 10 Base T - skręcany, skrętka: 8 żył kabla, 4 pary; Fast Ethernet: 100 Base T4: * cat.3 (STP - ekranowana, UTP - nieekranowana); * 4p: 3p - transmisja, 1p - kontrola; 100 Base TX: * cat.5; * 2p: transmisja, kontrola; Gigabit Ethernet: 100 Base T - kabel skręcany, kategoria 5(e), wszystkie 4 pary. KODOWANIE SYGNAŁU: stosowane do zwiększania odporności na zakłócenia; Manchester - 8B/6T: 6 znaków trójkowych, 100 Base T4 (3 pary przewodów); 4B/5B (tworzony kod nadmiarowy z jednym bitem): * 100 Base TX (250Mb/s), * 1000 Base T (800 Mb/s). KATEGORIE: kat.1 - 100kbps, telefonia, skrętki trójparowe; kat.2 - 1Mbps, telefonia; kat.3 - 16Mbps, Ethernet 10Mb, Token Ring; kat.4 - 20Mbps, niewykorzystywana; kat.5 - 125Mbps, Fast Ethernet; kat.5e - 125Mbps, Gigabit Ethernet; kat.6 - 250Mbps, Gigabit Ethernet; kat.7 - 600Mbps, sieci ATM, bardzo szybkie sieci. TOKEN RING: logicznie: pierścień; mają swoje adresy sprzętowe MAC; token - żeton; jeśli nie ma żetonu, to musi być ramka danych lub techniczna; nie ma ciszy na łączu. ŻETON - porcja danych; daje prawo nadawania, jeśli trafi do danej stacji; w Token Ring jest mechanizm potwierdzeń; topologie te nadają się do budowy sieci czasu rzeczywistego; występuje preambuła - synchronizowanie wszystkich zegarów. BUDOWA ŻETONU: 1okt. - ogranicznik początku (Start Frame Delimiter), 1okt. - pole sterowania dostępem (Access Control), 1okt. - ogranicznik końca ramki (End Frame Delimiter).
WYKŁAD 4: Token składa się z: SFD - ogranicznik początku; AC - sterowanie dostępem: 3b - pole priorytetu: 0-1, 1b - token/data, 1b - znacznik aktywnego monitora: 0-1, 3b - żądanie priorytetu (stos); priorytet co jakiś czas jest zerowany; EFD - ogranicznik końca. 1okt. - FS; 2okt. - ramka przerwania; Może nadawać ten, który ma żeton! |||| Ramka z danymi: SFD; AC; 1okt. - kontrola ramki (802.5): 00-MAC (ramka techniczna), 01-LLC (ramka danych), 1x - zarezerwowana; 6okt. - adres MAC odbiorcy; 6okt. - adres MAC nadawcy; 3okt. - LLC (identyfikatory protokołów i typy połączenia); ~ - dane; 4okt. - sekwencja kontroli ramki FCS (suma kontrolna liczona metodą CRC); EFD; 1okt. - FS (Frame Status) - odebrana ramka: prawidłowo/nieprawidłowo. |||| ACxx(adres docelowy został znaleziony/rozpoznany-0-nieskopiowana lub 1-skopiowana)ACxx(powielone); dla pewności dubluje się to dwa razy. Maksymalne rozmiary ramek w Token Ring: Podstawowy Token Ring: 4Mbps ~ 4kB (rozmiar ramki); 16Mbps ~ 17kB = 17tys. oktetów. W Token Ringu może działać tylko jeden Aktywny Monitor; narzuca działanie w segmencie sieci lokalnej! * Active Monitor; * Standby Monitor - monitor oczekujący na przejęcie obowiązków. Zadanie Aktywnego Monitora: * wykrywanie osieroconych ramek z danymi; * rekonstrukcja zagubionego żetonu; (I przypadek: ramkę usuwamy, rekonstruujemy żeton. II przypadek: gdy rekonstruujemy przetrzymujemy czas - Valid Frame Time (VFT)); * buforowanie sieci; * rozpoznawanie konfiguracji sieci (co parę sekund Aktywny Monitor przerywa bieżącą transmisję i wysyła ramki). PAKIET TECHNICZNY - pakiet przetrzymujący informację o rekonstruowaniu żetonu. ACTIVE MONITOR PRESENT - ramka - Aktywny Monitor wysyła taką ramkę do wszystkich stacji, jeżeli stacje nie dostają tej ramki, oznacza to, że Aktywny Monitor uległ awarii. RAMKA ELEKCYJNA - wyłania nowy Aktywny Monitor (diagnostyczno-naprawcza), ten kto ma najmniejszy adres MAC i zapisaną najmniejszą wartość na 64 bitach zostaje „nowym” Aktywnym Monitorem; każda stacja sprawdza czy taki warunek jest prawdziwy: MACi<MACi=1. PRZYŁĄCZENIE STACJI DO „PIERŚCIENIA”: I etap: Lobe Test - Test Łącza - sprawdzenie ciągłości łącznika na trasie stacja-koncentrator. II: AMP (przeszukuje aktywność ramek AMP). III: sprawdzenie unikatowości swojego adresu sprzętowego/MAC; ramka techniczna adresowana jest do samej siebie, zostaje wysłana; jak wróci do siebie jako ramka nieodebrana, to jest UNIKATOWA! IV: wysłanie dwóch ramek unikatowych, poznaje sąsiadów; dwie ramki: Nearest Active UpStream Neighbour, Nearest Active DownStream Neighbour. V: wysłanie informacji do Aktywnego Monitora i wszystkich stacji w sieci o tym, że w przyszłości chcemy zostać Aktywnym Monitorem - Standby Monitor Present. VI: wysłanie żądania parametrów do serwera parametrów <- jest nim najczęściej Aktywny Monitor, on przechowuje wartości wszystkich czasów. Drugi serwer w sieci Token Ring to: Serwer Konfiguracji - przechowuje informacje: * o ilości stacji podpiętych do sieci; * o adresach sprzętowych (kto za kim, kto przed kim występuje w pierścieniu).
WYKŁAD 5: Frame Control (8-oktetowe = 1 bitowe): 00xxxxxx - MAC; 01xxxxxx - LLC (zwykła ramka z danymi); 6 bitów: 0 - Duplicate Adr. Test (sprawdzenie unikatowości adresu sprzętowego), 2 - Beacon (awaryjna ramka), 3 - Claim Token (żeton elekcyjny), 4 - Purge (ramka czyszczenia pierścienia), 5 - AMP (Active Monitor Present), 6 - SMP (Standby Monitor Present). Maksymalny rozmiar ramek w Token Ring: 4,4-5 tys. oktetów - 4Mbps, ~17 tys. oktetów - 16Mbps. KODOWANIE SYGNAŁU: Ethernet: kod Manchester; Token Ring: Manchester różnicowy; Fast Ethernet: * TX - 4B/5B + NRZI, * T4 - 8B/6T. Kody stosuje się w celu: * minimalizacja zajmowanego pasma; * eliminacja składowej stałej sygnału (zakłócenie); * zwiększenie odporności na zakłócenia; * detekcja oraz ewentualnie korekcja błędów; * odtwarzanie zegara bitowego. 4B/5B - uniemożliwienie występowania zbyt długich ciągów 0 i 1: 1111 - sygnał stanu jałowego (cisza na łączu); 11000/10001 - ogranicznik początku ramki; 01101/00111 - ogranicznik końca ramki; 00100 - oznaczenie błędu transmisyjnego. 8B/6T - 6 wiązek przewodów; wartości znaku trójkowego: 0, +1, -1.
WYKŁAD 6: Kody CRC (Cyclic Redundancy Check). Każdy dzieli się na dwie części: * blokowe; * splotowe. Wynik = dane + suma kontrolna (kod). Kodowanie CRC: Wielomian binarny - sekwencja zer i jedynek: 1 · xn +0 · xn-1 + 1 · xn-2 + … + 0 · x2 + 1 · x1 + 1 · x0. Wyznaczenie sumy kontrolnej: 1 xor 0 = 1; 0 xor 1 = 1; 0 xor 0 = 0; 1 xor 1 = 0. Kodowanie/wyznaczanie kodu CRC: 1. MSB, LSB -> 1; 2. Na końcu ciągu danych podlegających zakodowaniu dodajemy tyle zer, ile wynosi stopień generatora. 3. Dane: 110101, gen: 101 <- stopień 2. Jeżeli w wyniku dzielenia modulo 2 w danym kroku na najstarszej pozycji jest/będzie 1, to do kolejnego dzielenia bierzemy generator, jeżeli 0 to bierzemy same 0. Właściwości detekcyjne: * wykrywa 100% błędów na pojedynczych bitach; * 100% - pojedyncze, podwójne, błędy seryjne (nie dłuższa niż 16 bitów i nieparzysta liczba bitów); * dokładność 99,997% -> pewność wykrycia błędu seryjnego dla serii 17-bitowej; * 99,998%. |||| CRC - 32 bity - 100%: * prawdopodobieństwo nie wykrycia błędu dla 33b -> 2-31; * prawdopodobieństwo wykryci błędu dla 34b i więcej -> 2-32. |||| Do przesyłu danych służy: INTERNET PROTOCOL (IP) - RFC 791. IETF - grupa specjalistów zajmująca się przydzielaniem protokołów. Zadania protokołu: * definiowanie datagramu; * definiowanie schematu adresowania używanego w Internecie; * trasowanie (routowanie) datagramów skierowanych do odległych hostów; * dokonywanie fragmentacji i defragmentacji transmitowanych datagramów. CECHY IP: * protokół IP jest bezpołączeniowy; * IP jest protokołem niepewnym (nie wykrywa błędów w datagramach, nie zapewnia korekcji przesyłanych datagramów). BUDOWA NAGŁÓWKA PROTOKOŁU IPV4: * 4b - numer wersji protokołu IP (IP Version); * 4b - Internet Header Length (długość nagłówka mierzona w 32 bitach (x32b); * 8b - typ usługi (Type Of Service) - czy zwykły, priorytetowy datagram: 0-2. - bity pierwszeństwa, im wyższa wartość zapisana na tych bitach, tym wyższy priorytet; 3. - bit opóźnienia (1 - małe opóźnienie, 0 - standardowe); 4. - bit wydajności (wykorzystywany przy transmisjach strumieniowych: 1 - wysoka wydajność, 0 - normalna); 5. - bit niezawodności (1 - wysoka niezawodność, 0 - standardowa); 6./7. - nieużywane, zarezerwowane; * 16b - długość całkowita (Total Length) mierzona w bajtach, 64kB - maksymalna; * 16b - identyfikator (ID), identyfikacja datagramów należących do jednej transmisji; * 3b - Flags (pole z flagami sterującymi defragmentacją - tną datagramy na mniejsze porcje): 0. - zarezerwowany; 1. - identyfikuje czy datagram należy do fragmentacji i czy do ostatniej części (0 - ostatni fragment, 1 - pośredni, pierwszy fragment); 2. - informacja czy dany datagram, fragment można dalej fragmentować (0) czy fragmentacja zabroniona (1); * 13b - przesunięcie datagramu/fragmentacji (Offset), mierzona w jednostkach 64b(x64b); * 8b - TTL; * 8b - Protocol ID (identyfikator protokołu wyższej warstwy): 1 - przenosi informacje dla protokołu ICMP, 6 - TCP, 17 - UDP; * 16b - suma kontrolna wyznaczana z algorytmu CRC-16 (z generatorem 16-bitowym); * 32b - adres nadawcy; * 32b - adres odbiorcy (w Ethernecie/w Token Ring jest na odwrót - najpierw dres odbiorcy, a dopiero nadawcy). Następne pole to: opcje + uzupełnienie (options + pudding) x32 |||| Przed wysłaniem dane są cięte na datagramy! Router rozcina! :) |||| Dane(ładunek) - PAYLOAD. Datagramy mogą być szyfrowane! Nagłówków nie szyfrujemy! |||| KLASY ADRESÓW: A: N.(identyfikator sieci)H.H.H.(identyfikator hosta w danej sieci); 0; 1.0.0.0.-126.0.0.0; B: N.N.H.H; 10; 128.1.0.0.-191.254.0.0; C: N.N.N.H; 110; 192.0.1.0.-223.255.254.0; D (multicastowe): RFC 1112; 1110; 224.0.0.0.-239.255.255.255. (telekonferencje); E (eksperymentalne): ---; 1111; 240.0.0.0.-254.255.255.255. |||| 127.0.0.0. - adres pętli zwrotnej.
WYKŁAD 7: 2n-2 <- liczba możliwych hostów do zaadresowania. ADRESY PRYWATNE: adres A: 10.0.0.0.-10.255.255.255 (adres Broadcast na sieć o numerze 10), 224-2; adres B: 172.16.0.0.-172.31.255.255, 216-2; adres C: 192.168.0.0.-192.168.255.255, 28-2; 0.0.0.0. - adres domyślny, superbroadcastowy (w routerach). Technika tworzenia podsieci: Subnetting, Classless. Protokół ARP (Address Resolution Protocol) - RFC 826: IP -> MAC: 1. Komp. A ta sama podsieć co Komp. B? Maskujemy swoją maską adres odbiorcy. 2. Komp. A określa MAC Komp. B za pomocą ARP? 3. Pakiet (IPA, MACA) -> (IPB, MACB). Komunikacja między sieciami: 1. IPA AND MA=? IPB AND MA. 2. Komp. A szuka MAC routera (ARP). 3. Do routera (IPA, IPB, MACA, MACR). 4. Router szuka MACB na podstawie IPB (ARP). 5. Router do komp. B (IPA, IPB, MACR, MACB). PROTOKÓŁ IP: 1. Komp. A sprawdza swoją pamięć cache ARP, szukając odwzorowania IP na MAC dla komp. B. Jeżeli znajdzie, to przechodzi do kroku 5, jeśli nie - krok 2. 2. Komp. A buduje ramkę żądania ARP, zawierającą swój adres IP i MAC oraz adres IP komp. B i rozgłasza taką ramkę na całą podsieć. 3. Komputery w podsieci odbierają ramkę żądania ARP; jeśli któryś z komputerów stwierdzi, że adres odbiorcy (IP) jest taki sam jak jego własny, aktualizuje swoją pamięć cache ARP i buduje tamkę ARP odpowiedzi, zawierającą własny adres sprzętowy MAC. Ramka odpowiedzi jest wysyłana bezpośrednio do komp. A. 4. Komp. A uaktualnia swoją pamięć cache ARP na podstawie tego, co uzyskał w odpowiedzi. 5. Komp. A wysyła ramki do komp. B. IPv4 vs. IPv6: * rozszerzone możliwości adresowania (32b-128b); * uproszczenie formatu nagłówka; * zwiększone wsparcie dla rozszerzeń i opcji protokołu; * możliwość etykietowania strumienia danych QoS; * możliwość wprowadzania szyfrowania autentykacji i prywatności. PACKET (jak datagram w IPv4) <- jest zbiorem 2 części (nagłówek i dane). PACKET - Protocol Data Unit (PD4), (PDU). NODE - węzeł, urządzenie, które może obsłużyć IPv6. ROUTER - węzeł, który przesyła dalej pakiety niezaadresowane do niego samego. HOST - każdy węzeł, który nie jest routerem. ŁĄCZE (Link) - medium transmisyjne poprzez które komunikują się hosty na warstwie łącza danych. SĄSIEDZI (Neighbour) - wszystkie węzły podpięte do tego samego łącza.
WYKŁAD 8: IPv6: 4b - Version, 4b - Priority, 24b - Flow Label, 16b - Payload Length, 8b - Next Header; 1 - ICMP, 6 - TCP, 17 - UDP, 43 - Routing, 44 - Fragment, 59 - nothing. |||| 8bit - Hop Limit, 2x128b - adres nadawcy, adres odbiorcy. ANYCAST - wysyła się do grupy, 128b = 16B. |||| ABCD:0000:1234:AB01:0000:0000:1111:AAAA => można ten adres zapisać na dwa inne sposoby: * ABCD::1234:AB01:0000:0000:1111:AAAA; * ABCD:0000:1234:AB01::1111:AAAA. Te 3 adresy są sobie równoważne! GRUOWANIE ADRESÓW: 0000 010 - IPX; 010 - Provider-Based Unicast Adr.; 100 - Geographic-Based Unicast Adr.; 1111 1110 10 - Link Local; 1111 1110 11 - Site Local; 1111 1111 - Multicast; 3b - 010, 5b - Registry ID (IANA, InterNIC, RIPE NCC, APNIC), n - Provider ID, 56-n - Subscriber ID, 64b - Intra-Subscriber ID, 8b - 1111 1111, 4b - flags (LSB: 0-permanent, 1 - transmisent), 4b - scope: 1 - node-local, 2 - link-local, 5 - site-local, E - global, 80b - „0”, 16b: „1” - Ipv4 only, „0” - Ipv4 lub IPv6. INTERNET CONTROL MESSAGE PROTOCOL - RFC 792: 1. Sterowanie przepływem danych (Source Qench); 2. Wykrywanie miejsc nieosiągalnych w sieci (Destination Unreachable): * host unreachable (nieosiągalny jest host docelowy - wyłączony, podsieć wyłączona, zła maska ustawiona), * Network unreachable (sieć nieosiągalna), * protocol unreachable, * port unreachable; 3. Przekirowywanie ścieżek - Redirect; 4. Sprawdzenie zdalnego hosta - Echo Message (ping). 5. Wykrywanie porzucania pakietów - Time Exceeded. |||| 4b - Type, 4b - Code, 28b - CheckSum, 32b - Unisted. Internet header + 64 bity payload. TRANSMISSION CONTROL PROTOCOL (TCP) - RFC 793: * ulokowany na warstwie transportowej, * połączeniowy; 16bx2 - Source Port/Destination Port, 32b - Sequence Number, 32b - numer potwierdzenia (Anknowledgement Nr), 4b - długość nagłówka TCP, 6b - nieużywane, 6b - flagi TCP, 16b - Sliding Window, 16b - CRC (header + payload), 16b - Urgent Data Pointer.
WYKŁAD 9: NAGŁÓWEK TCP, cd.: 16b - port nadawcy; 16b - port odbiorcy/numer przeznaczenia; 32b - numer sekwencji (SEQ NUMBER); 32b - ACK NUMBER; 4bx32b - długość nagłówka; 6b - zarezerwowane, nieużywane; 6b - flagi jednobitowe: flaga URG - pilny, flaga ACK - jeśli jest ustawiona, mamy do czynienia z segmentem potwierdzenia, flaga PSH - wypychania, flaga RST - żądanie zresetowania, flaga SYN - wykorzystywana na etapie połączenia, flaga FIN; 16b - nr okna: Sliding(5), Window(3), Number, Flow control(Sterowanie Przepływem Danych); 16b - CRC; 16b - wskaźnik ważności; ~ - opcje + wypełnienie (x32b); ~ - dane (PAYLOAD). PROTOKÓŁ UDP - RFC 768: 16b - Source Port (nadawca), 16b - numer portu odbiorcy/długość nagłówka (length - H+P); algorytm Nagle'a; Czy wszystkie komendy Netbiosa są jednocześnie synchroniczne i synchroniczne? NIE! RESET nie może być asynchroniczny! |||| hcb - retcode - kod powrotu (synchroniczne), hcb - cmd - cplt - II kod powrotu (asynchroniczne). DHCP - Dynamic Host Config. Protocol - RFC 1531: 1. Adres IP. 2. Maska naszej podsieci MAC-IP: 1) Automatic allocation; 2) Manual allocation; 3) Dynamic allocation; 3. Adres IP gateway'a (routera).
WYKŁAD 10: DHCP - pierwszy protokół aplikacyjny opiera się na protokole UDP: DHCP DISCOVER (255.255.2555.255.), DHCP OFFER (typu Broadcast), DHCP REQUEST - > DHCP DECLINE: * rezerwacja 10.10.10.2.-10.10.10.10; 10.10.10.11.-; * potwierdzenie rezerwacji; DHCP PACK -> DHCP NACK; zwolnienie wydzierżawionego (przydzielonego) adresu = DHCP RELEASE; rozmiar: niecałe 600 oktetów. STRUKTURA: 1okt. - typ operacji (tylko dwie wartości: 1 - BOOTREQUEST [od klienta do serwera], 2 - odpowiedź serwera do klienta [BOOTREPLY]; 1okt. - hardware type (1 - Ethernet; rodzaj interfejsu sieciowego); 1okt. - długość adresu sprzętowego - hardware addr. length(6); 1okt. - hops; 4okt. - xid - identyfikator transakcji; 2okt. - liczba sekund jaka upłynęła od momentu rozpoczęcia procesu konfiguracji klienta - sec.; 2okt. - flags (MSB, 15b - reserved): „0” - unicast, mimo że nie jest skonfigurowany, „1” - broadcast; 4okt. - ciadr (client ip address); 4okt. - yiadr (your ip address); 4okt. - siadr - adres DHCP serwera); 4okt. - giaur - adres gateway'a; 16okt. - chadr (client hardware address); 64okt. - sname (Server Home); 128okt. - file; 312okt. - options (serwer przesyła klientowi dodatkowe informacje na temat konfiguracji, np. maska, adres…). |||| CZAS: T1 -> 50% czasu, na jaki nam przydzielono adres; T2 -> 87,5% czasu, po upłynięciu czasu klient znowu wysyła DHCP REQUEST nie do jednego serwera, ale do wszystkich możliwych (broadcast); DHCP REQUEST (siadr), stan Renewing (odnowienia), stan ponownego związania - Rabinding - INIT. PROTOKÓŁ POCZTOWY SMTP (Simple Mail Transfer Protocol) - RFC 821: abc - komunikat (3 znaki/cyfry); 1xx-3xx - operacja się powiodła, powodzenie operacji, 4xx - błąd/problem serwera przejściowy, 0xx - błąd/problem parametru (stała awaria) |||| 220 - komunikat o gotowości usługi, 250 - powodzenie operacji, 354 - rozpoczęcie przyjmowania treści wiadomości email, 450 - operacja zaniechana, przyczyna: skrzynka jest w użyciu, 452 - operacja zaniechana, brak miejsca na dysku, 500 - polecenie niepoprawne/nierozpoznane, 501 - błąd w parametrach polecenia, 502 - polecenie nieobsługiwane, 503 - niewłaściwa kolejność wydawanych poleceń. KOMUNIKATY: HELO - wysyłane na port 25, MAIL - określenie, że chcemy wysłać wiadomość, parametrem jest - od kogo; FROM:<abc@serwer.com>, RCPT TO: <xy@komputer.pl>, RCPT TO: <…….>; Nagłówki: <CR><LF>, Date: … , Subject: … , CC(do kogo): …, pusta linia. DATA - przesyłana właściwa wiadomość tekstowa. KODOWANIE: wiadomości pocztowe były wysyłane za pomocą NVT - ASCII (7 bit, 128 ASCII); Q; B =?charset?encoding?encoded text?=ISO-8859-2 ; =?ISO-8859-2?Q?e9?=, gdzie 8859 to zestaw znaków, Q to rodzaj kodowania, E9 to pozycja z tabeli. KODOWANIE B: 3x8b => 24b => 4x6b. Załączniki: wysyłane jako zawartość MIME (Multirpose Internet Mail Extensions): * Mime - Version 1.0; * Content-Type (typ zawartości): Text, Multipart, Application, Image, Audio; * Content-Transfer - Encoding: base64; * Content-ID; * Content-Description (dodatkowy opis, co w maile zawarte); * MIME - RFC 1521; * na koniec znak kropki, oznacza koniec wiadomości. HELP - zwróci nam informacje o serwerze, o implementacji, VRFY - żądanie weryfikacji.
WYKŁAD 11: Protokoły aplikacyjne: SOML - Send OR Mail (jeśli nie był zalogowany zostanie w skrzynce), SAML - Send AND Mail. POST OFFICE PROTOCOL v3 - POP3 - RFC 1939: trzy stany pracy serwera: 1) stan autoryzacji: USER… +OK, PASS…, +OK, APOP nazwa_uż (skrót => MD5 - sygnatura + hasło); 2) stan transakcji <- po zalogowaniu przechodzimy w stan trans.; 3) stan aktualizacji. Komunikacja nawiązywana jest protokołem TCP na porcie 110. Komenda STAT - zwraca liczbę wiadomości i rozmiar w bajtach. RETR 1 - numer wiadomości, którą chcemy ściągnąć: +OK, nagłówki, pusta linia, treść, kropka. DELE 1 - kasowanie, +OK (wiadomość została zaznaczona do skasowania, a nie skasowana). RSET - wiadomości zostają usunięte/wyzerowane. NOOP - komenda bezargumentowa. QUIT - wylogowanie, fizycznie usuwa wiadomości z komendy DELE i przejście w tryb aktualizacji. TOP - n m, dwuargumentowa (pobierz z wiadomości n m linijek). PROTOKÓŁ APLIKACYJNY FTP (File Transfer Protocol) - RFC 454: bazuje na dwóch połączeniach TCP: * połączenie kontrolne (służy do przesyłania komend), na porcie 21 od strony serwera; * połączenie danych (port 20). REPREZENTACJA DANYCH: 1) Typ pliku: a) plik ASCII, czyli zwykły plik tekstowy <CRLF>, b) plik EBCDIC, c) plik IMAGE, d) plik lokalny; 2) Kontrola formatu: a) non print - domyślny, b) TELNET, c) CARRIAGE CONTROL - wyrzucanie wyników działania programów (FORTRAN, RFC 740); 3) Struktura przesyłanych danych: a) plikowa, b) rekordowa, c) stronicowa; 4) Tryb przesłania: a) tryb strumieniowy, b) tryb blokowy (uzupełnienie struktury stronicowej), c) tryb skompresowany (nieużywany dzisiaj). Kompresja RLE: ABBBBBA = A5_BA. KOMENDY PROTOKOŁU FTP: * komendy kontroli dostępu: USER, PASS, ACCT, CWD - zmiana katalogu roboczego, CDUP - wyjście do katalogu piętro wyżej, REIN - reinicjalizacja sesji, QUIT; * komendy parametrów transmisji: PORT - ustalenie numeru portu po stronie klienckiej dla połączenia danych, PASV, TYPE - określa jakiego typu będzie przesyłany plik: N - non print dla plików tekstowych, I - plik binarny, A - ASCII, STU - struktura przesyłanego pliku: F - plikowa, R - rekordowy, P - stronicowa (PAGE), MODE - tryb transmisji: S - strumieniowy, B - blokowy, C - skompresowany. USŁUGI: RETR - podaje się nazwę pliku do pobrania (pobieramy pliki domyślne z katalogu głównego), STOR - zapisz plik na serwer/wyślij do serwera, APPE - dołączenie pliku tekstowego do innego pliku, RNFR (FROM) - RNTO (TO), ABOR - przerwanie transmisji plików, DELE - kasowanie pliku na serwerze, RMD - usuwanie katalogu, PWD - wyświetlenie nazwy bieżącego katalogu, LIST, SITE - wyświetlenie informacji o serwerze, SYST - uzupełnia informacje, STAT, HELP - implementacja komend, NOOP.
WYKŁAD 12: polecenie PORT - informuje, że serwer ma do klienta wykonać aktywne otwarcie. PASV - polecenie zlecające serwerowi przejście w tryb pasywny. KODY ODPOWIEDZI: xyz: 1 - wstępna odpowiedź pozytywna, 2 - pozytywna odpowiedź końcowa po zakończeniu akcji, 3 - pozytywna odpowiedź pośrednia, 4 - chwilowa negatywna odpowiedź końcowa, 5 - trwała negatywna odpowiedź końcowa; y: 0 - odpowiedź związana ze składnią, 1 - odpowiedź związana z informacją, 2 - kod odpowiedzi związany ze zleceniem, inaczej komendą dotyczącą połączenia, 3 - legalizacja/ocena, 4 - , 5 - odpowiedzi z systemem plików: 125 - połączenie danych/otwarcie transferu, 200 - prawidłowa komenda, 202 - komenda niezaimplementowana, zbędna, 211 - stan systemu lub odpowiedź pomocy systemowej, 214 - konkretna wiadomość pomocy (HELP), 230 - użytkownik zalogowany poprawnie, 331 - poprawna nazwa użytkownika, potrzebne hasło, 332 - potrzebne konto do zalogowania, 425 - nie można utworzyć połączenia danych, 452 - porzucono żądaną akcje, niewystarczająca przestrzeń w systemie, 500 - błąd składniowy/komendy nie rozpoznano, 501 - błąd składniowy w parametrach polecenia, 503 - niewłaściwa sekwencja komend, 530 - użytkownik niezalogowany. HTTP (Hyper Text Transfer Protocol) - RFC 2616: Żądanie protokołu: wpisanie adresu URL/URI; http://serwer.com:80/ , gdzie http to identyfikator protokołu, serwe.com to DNS => IP, :80 to port [0-1024]. PRZYKŁADOWY NAGŁÓWEK ŻĄDANIA: GET/HTTP/1.1, gdzie GET to polecenie do serwera (pobierz), pomiędzy GET a HTTP - co chcemy dostać z serwera; Accept: image/gif, image/jpeg, text/html, */*, Accept - Language: en-us, pl-pl, Accept - Encoding: gzip, deflate, User-Agent: Mozilla/4.0, Host: serwer.com, Connection: Keep-Alive <- nieobowiązkowa, opcjonalna. ODPOWIEDŹ SERWERA: HTTP/1.1 200 OK; Date:, Server: Apache/13.6(UNIX), Last-Modified:, E.Tag (znacznik jednostki): „Ab4g0…”, Accept-Ranges: bytes, Content-Length: 327 (w bajtach), Conncection: close, Content-type: text/html, pusta linia, treść wiadomości <…>. METODY HTTP: 1) GET (od klienta do serwera), 2) HEAD, 3) POST - wykorzystywana jest łącznie z formularzami WWW, wysyłamy od klienta do serwera informacje ze zmienionym stanem serwera, 4) PUT - umieszczanie plików na serwerze, 5) DELETE, 6) TRACE - polecenie diagnostyczne, komunikacja z serwerem PROXY. OPTIONS - lokalna data i czas, oprogramowanie. CONNECT - wywoływane przez klienta, kierowane w stronę PROXY. KODY ODPOWIEDZI: 100-199 - odpowiedź informacyjna, 200-299 - żądanie przetworzone poprawnie, 300-399 - żądanie przeadresowanie, 400 - żadanie niekompletne, np. 404 - File Not Found, 500 - wystąpił błąd pracy serwera. |||| 1) Pola ogólnego przeznaczenia - zawiera informacje ogólne, takie jak data, 2) Pola nagłówka żądania - wysyłane od klienta do serwera, tam są wszystkie nagłówki, które może przyjąć klient, jakie i w jakim formacie: Accept-…, 3) Pola nagłówka odpowiedzi - informacje związane z konfiguracją serwera: E.Tag - znacznik związany ze zwracanym zasobem, 4) Pola nagłówka zawartośći - Content-…