Sieci Ethernet

Ostatnio aktualizowano 6 maja 2006r.

Teoria:

* Umiejscowienie protokołu Ethernet w modelu ISO/OSI
Pojęcie ( zwrot ) Ethernet odnosi się do pewnej rodziny protokołów sieci LAN, określonej przez standard IEE 802.3, standard ten definuje cos co powszechnie znane jest pod nazwa protkołu CSMA/CD. Standard 802.3 narzucił pewne własne logiczne warstwy, w ramach których rozumiany jest protokół Ethernet, najlepiej odwzorowanie na model ISO/OSI przedstawia poniższy rysunek:

               ISO/OSI                             IEE802.3
|----------------|----------------|
|  Nazwa modelu  |      Numer     |
|  odniesienia   |     warstwy    |
|      OSI       |       OSI      |
|----------------|----------------|
|    Aplikacji   |        7       |
|----------------|----------------|
|   Prezentacji  |        6       |
|----------------|----------------|
|      Sesji     |        5       |         |                    |
|----------------|----------------|         | Protokoły wyższych |
|  Transportowa  |        4       |         |       warstw       |	
|----------------|----------------|  / -----|--------------------|
|      Sieci     |        3       | /       |     klient MAC     |
|----------------|----------------|/        |--------------------|
|  Łącza danych  |        2       |         | Media Access (MAC) |
|----------------|----------------|---------|--------------------|
|     Fizyczna   |        1       |         |  Warstwa fizyczna  |
|----------------|----------------|---------|--------------------|

Jak we wszystkich protokołach standardu IEE802.3, warstwa łącza danych modelu OSI jest podzielona na dwie podwarstwy: podwarstwe MAC Media Access Control oraz podwarstwę klienta MAC. Warstwa fizyczna standardu IEE802.3 odpowiada warstwie fizycznej z modelu ISO/OSI.

* Popularne odmiany Ethernetu, ich topologie, okablowanie i ograniczenia, budowa ramki.

+ Wczesne wersje Ethernetu
- Xerox Ethernet - oryginalna implementacja firmy Xerox używająca ramek formatu 1 i 2.
- 10BASE5 zwana też ang.Thicknet albo "gruby koncentryk" - standard z 1980 roku IEEE 802.3 używajacy grubego (12 mm) kabla koncentrycznego o impedancji 50 Ohm. Umożliwiał budowę segmentów o długości do 500 m. Obecnie już nie stosowany ale czasami można spotkać jeszcze pracujące instalacje. Pracował z szybkościa 10 Mb/s.
- 10BROAD36 - przestarzały, pracował na 75 Ohm kablu TV.
- 1BASE5 - przestarzały, pracował z szybkością 1 Mb/s.
- StarLAN 1 - pierwsza implementacja kabla typu skrętka.

+ Wersje 10 Mbit/s
- 10BASE2 zwany też ang. ThinNet, Cheapernet lub "cienki koncentryk" - używa kabla koncentrycznego o średnicy ok. 5 mm. Kabel musi biec pomiędzy wszystkimi kartami sieciowymi wpiętymi do sieci. Karty podłącza się za pomocą tzw. "trójnika", do którego podpina się także kabel za pomocą złącz BNC. Na obu końcach kabla montowany jest dławik (tzw. "terminator") o impedancji 50 Ohm. Maksymalna długość segmentu wynosiła 185 m. chociaż rozwiązania niektórych firm np. 3COM dopuszczały 300 m. Przez wiele lat była to dominująca forma sieci Ethernet. Jej wadą było to, że uszkodzenie kabla w jednym miejscu powodowało zanik dostępu do sieci w całym segmencie. - StarLAN 10 - pierwsza implementacja kabla typu 'skrętka' przy szybkości 10 Mbit/s.
- 10Base-T - pracuje na 4 żyłach (2 pary 'skrętki') kategorii 3 lub 5. Każda karta sieciowa musi być podłączona do huba lub switcha. Maksymalna długość kabla wynosi 100 m. W przeciwieństwie do 10BASE2 awaria kabla w jednym miejscu powodowała zanik dostępu do sieci tylko jednego komputera dlatego 10Base-T wyparł 10Base2.
- FOIRL - (ang. Fiber-optic inter-repeater link) - pierwotny standard Ethernetu za pomocą światłowodu.
- 10BASE-F - rodzina standardów 10BASE-FL, 10BASE-FB i 10BASE-FP Ethernetu za pomoca światłowodu.
- 10BASE-FL - ulepszony standard FOIRL. Jedyny z szeroko stosowanych z rodziny 10BASE-F.
- 10BASE-FB - przeznaczony do łączenia hubów lub switchy, przestarzały.
- 10BASE-FP - do sieci nie wymagających elementów aktywnych (hubów, switchy), Nigdy nie zaimplementowany.

+ Fast Ethernet
- 100BASE-T - rodzina 3 standardów Ethernetu 100 Mb/s na kablu typu skrętka obejmująca 100BASE-TX, 100BASE-T4 i 100BASE-T2.
- 100BASE-TX - podobny do 10BASE-T, ale z szybkością 100 Mb/s. Wymaga 2 par skrętki i kabli kategorii 5. Obecnie jeden z najpopularniejszych standardów sieci opartych na 'skrętce'.
- 100BASE-T4 - Używa 4 par 'skrętki' kategorii 3. Obecnie przestarzały.
- 100BASE-T2 - Miał używać 2 par 'skrętki' kategorii 3 jednak nie ma sprzętu sieciowego wspierajacego ten typ Ethernetu.
- 100BASE-FX - Ethernet 100 Mb/s za pomocą włókien światłowodowych.

+ Gigabit Ethernet
- 1000BASE-T - 1 Gb/s na kablu miedzianym kat. 5 lub wyższej. Ponieważ kabel kategorii 5e może bez strat przenosić do 125 Mbit na sekundę, osiagniecie 1000 Mb/s wymaga użycia czterech par przewodów oraz modyfikacji układów transmisyjnych dającej mozliwość trasmisji ok 250Mb/s na jedną parę przewodów w skrętce.
- 1000BASE-SX - 1 Gb/s na światłowodzie (do 550 m).
- 1000BASE-LX - 1 Gb/s na swiatłowodzie (do 550 m). Zoptymalizowany dla połączeń na dłuższe dystanse (do 10 km) za pomocą światłowodów jednomodowych.
- 1000BASE-LH - 1 Gb/s na światłowodzie (do 100 km).
- 1000BASE-CX - 1 Gb/s na specjalnym kablu miedzianych na odległość do 25 m. Obecnie przestarzały i wyparty przez 1000BASE-T.

+ 10 Gigabit Ethernet
- 10GBASE-SR - 10 Gb/s przeznaczony dla światłowodów wielomodowych o maksymalnym zasięgu od 26 do 82 m (przy 850nm). Umożliwia także zasięg 300 m na nowych światłowodach wielomodowych 2000MHz/km.
- 10GBASE-LX4 - stosując modulację typu 'WDM' umożliwia zasięg 240 lub 300 m za pomocą światłowodów wielomodowych (przy 1310nm) lub 10 km za pomocą jednomodowych.
- 10GBASE-LR - Ethernet za pomocą światłowodów jednomodowych na odległość 10 km.
- 10GBASE-ER - Ethernet za pomocą światłowodów jednomodowych na odległość 40 km.
- 10GBASE-SW, 10GBASE-LW i 10GBASE-EW - odpowiedniki 10GBASE-SR, 10GBASE-LR i 10GBASE-ER używające transmisji synchronicznej na tych samych typach światłowodów i na te same odległości.

+ Inne standardy
- Ethernet bezprzewodowy - opisany w IEEE 802.11. Wymiana danych z szybkościami od 11 do 54 Mbit/s za pomocą urządzeń radiowych.
- 100BaseVG - standard zaproponowany przez firmę Hewlett-Packard o szybkości 100 Mb/s na 2 parach skrętki kategorii 3. Nie zdobył uznania.

+ Topologie:
- Topologia magistrali - wszystkie klienty przylaczone sa do pojedynczego przewodu, zwykle kabla koncentrycznego, który pelni funkcje lacza. Jakis czas temu topologia magistrali byla najczesciej spotykana topologia sieci. Jest latwa do zainstalowania i mozna w niej szybko wykryc usterki - to jej dwie decydujace zalety; jednakze ograniczone sa w niej dopuszczalne odleglosci i liczba klientów.

- Topologia gwiazdy - W tej strukturze wszystkie klienty lacza sie z centralnym urzadzeniem, które przyjmuje transmisje od nadawcy i przekierowuje dane do odbiorcy. Urzadzeniem centralnym jest zwykle koncentrator lub przelacznik.

- Topologia pierscienia - Podstawowym projektantem technologii Token Ring (pierscienia z przekazywaniem zetonu), która wymusza na klientach "uprzejme" zachowanie w sieci, byla firma IBM . Aby móc umiescic dane w sieci, klient musi posiadac zeton (ang. token) dostepu do sieci. Zeton przekazywany jest kolejno w logic znym pierscieniu. W kazdej chwili w sieci dostepny jest tylko jeden zeton, przez co jednoczesnie tylko jeden klient moze z niego skorzystac. Mechanizm ten moze sprawiac wrazenie spowalniajacego ruch w sieci, lecz w sieci typu Token Ring zeton moze zostac przeslany wzdluz pierscienia o dlugosci 2 kilometrów 10 000 razy na sekunde.

- Topologia oczkowa - Najbardziej odporna na uszkodzenia struktura sieci jest topologia oczkowa (ang. Mesh). W tej topologii jedyna mozliwoscia zalamania pracy sieci jest kleska zywiolowa. Topologie oczkowe stosowane sa zasadniczo w bardzo malych sieciach z uwagi na wymogi sprzetowe. Po zainstalowaniu, nadmiarowe transmisje w tej topologii sa znikome. Dzieki nadmiarowosci w kazdym kliencie, dopuszczalna jest awaria kilku skladników.

+ Topologie hybrydowe:
- Gwiazda-magistrala - Zbiór sieci o topologii gwiazdzistej, polaczonych magistrala, daje w wyniku topologie hybrydowa gwiazda-magistrala. Chociaz nie daje ona odpornosci na uszkodzenia, nie posiada równiez pojedynczego punktu awarii.

- Gwiazda-pierscien - Zbiór sieci o topologii gwiazdy polaczonych pierscieniem daje w wyniku topologie hybrydowa gwiazda-pierscien, która nalezy do najczesciej stosowanych topologii hybrydowych. Ma przewage nad topologia gwiazda-magistrala, gdyz jest odporna na uszkodzenia. W tym rozwiazaniu topologia pierscienia zawiera pierscien podstawowy i zapasowy. Jesli którys z nich zostanie uszkodzony, siec funkcjonuje nadal. Jesli zawiedzie jedna z sieci gwiazdzistych, reszta sieci równiez funkcjonuje dalej. W typowej topologii hybrydowej gwiazda-pierscien sieci gwiazdziste sa typu Ethernet, zas pierscien jest swiatlowodowy. Taki projekt zwieksza szybkosci przesylania danych pomiedzy sieciami gwiazdzistymi.

* Okablowanie
+ Kabel koncentryczny lub: wspólosiowy) jest najpowszechniej stosowanym typem kabla sieciowego, przede wszystkim dlatego, ze jest tani, lekki, elastyczny i latwy w eksploatacji. Kabel koncentryczny zawiera dwa przewodniki o wspólnej osi (patrz rysunek 3.6). Przewodnik centralny (drut lub linka miedziana) otoczony jest przez przewodnik zewnetrzny (ekran), sluzacy jako uziemienie i chroniacy przewodnik centralny przed zaklóceniami elektromagnetycznymi (EMI - Electromagnetic Interference). Warstwa izolacji pomiedzy przewodnikami wewnetrznym i zewnetrznym utrzymuje staly dystans jednego od drugiego. Ostatni element - zewnetrzna koszulka z tworzywa sztucznego - ochrania kabel. Kable koncentryczne umozliwiaja predkosci transmisji od 10 Mb/s do 100 Mb/s. Stosowane sa dwa typy kabla koncentrycznego: gruby i cienki.

- Cienki kabel koncentryczny (tzw. thinnet lub thin Ethernet) jest elastycznym kablem o srednicy okolo 6 mm. Moze sluzyc do przesylania sygnalów na odleglosc ok. 185 metrów bez znaczacej utraty mocy.
- Gruby kabel koncentryczny (inaczej thicknet lub standard Ethernet) jest sztywnym kablem o srednicy ok. 12 mm. Kabel ten pozwala na przesylanie danych na duze odleglosci (okolo 500 metrów), lecz jest drozszy od cienkiego.

+ Skretka - sklada sie z pary izolowanych skreconych ze soba przewodów miedzianych, istnieja dwa typy skretki:

- Skretka nieekranowana (UTP - Unshielded Twisted Pair) - kabel UTP zawiera pary przewodów miedzianych, z których kazda skrecona jest razem, aby zredukowac zaklócenia elektromagnetyczne.
- Skretka ekranowana (STP - Shielded Twisted Pair) - kable STP posiadaja metalowy ekran otaczajacy skrecone pary przewodów, który chroni przed zewnetrznymi zaklóceniami elektromagnetycznymi.

+ Swiatlowody - przesylaja dane za pomoca impulsów swiatla zamiast sygnalów elektrycznych, wobec czego dane trzeba przetworzyc na impulsy swietlne. Do konwersji sluza zródla swiatla, emitujace impulsy swietlne po przepuszczeniu pradu elektrycznego. Zródlem swiatla moze byc dioda swiecaca LED (Light Emitting Diode) lub dioda laserowa. Impuls swietlny reprezentuje bit "1", a jego brak - "0". Detektor na drugim koncu swiatlowodu (fotodioda) odbiera sygnaly swietlne i przeksztalca je z powrotem na sygnaly elektryczne.

+ Ramka Ethernet - Do pól ramki Ethernet IEEE 802.3 naleza:

- Ciag wstepny - niezaleznie od uzywanego typu ramki, sygnaly we wszystkich sieciach Ethernet sa kodowane na taki sam sposób - za pomoca kodu Manchester. Skutecznosc tej metody wymaga spelnienia dwóch warunków:

synchronizacji wewnetrznych zegarów wszystkich komputerów w sieci Ethernet
oraz
wstepnego ustalenia czasu trwania kazdego bitu podczas transmisji.

Oba te warunki pozwala spelnic ciag wstepny (preamble), czyli sekwencja jedynek i zer poprzedzajaca faktyczna ramke Ethernet. Ciag wstepny sklada sie z osmiu bajtów, zawierajacych na przemian zera i jedynki, i konczy sie dwiema jedynkami. Gdy komputer w sieci Ethernet nadaje ramke, pozostale komputery uzywaja ciagu wstepnego do synchronizacji z wewnetrznym zegarem nadawcy. Poniewaz synchronizacja zajmuje jakis czas, pierwsze bity ciagu wstepnego sa zasadniczo tracone. Po osiagnieciu synchronizacji miedzy nadawca i odbiorca, odbiorca czeka na sekwencje "11", która oznacza, iz nastepna bedzie ramka Ethernet. Poniewaz ciag wstepny sluzy jedynie do synchronizacji komputerów, jego bity nie sa wprowadzane do bufora w pamieci karty sieciowej.

- Adres docelowy - pierwsze szesc bajtów ramki, o numerach od 0 do 5, sklada sie na adres wezla (komputera) docelowego. Niezaleznie od typu ramki Ethernet, format adresu docelowego pozostaje taki sam we wszystkich implementacjach. Gdy wszystkie bity adresu docelowego maja wartosc 1, wówczas komunikat jest typu rozgloszeniowego i zostaje odebrany przez wszystkie wezly w segmencie.

- Adres zródlowy - nastepne szesc bajtów ramki, o numerach od 6 do 11, podaje adres wezla nadawcy. Podobnie jak dla adresu docelowego, format adresu zródlowego pozostaje taki sam we wszystkich implementacjach Ethernetu.

- Dlugosc - nastepne dwa bajty o numerach 12 i 13 okreslaja dlugosc ramki danych, z pominieciem ciagu wstepnego, 32-bitowej wartosci CRC, adresu DLC i samego pola Dlugosc. Minimalna dlugosc ramki Ethernet wynosi 64 bajty, zas maksymalna 1518 bajtów.

- Punkt dostepu do uslugi docelowej (DSAP - Destination Service Access Point) - nastepny bajt, o numerze 15, wskazuje adres bufora pamieci, w którym wezel odbiorcy powinien skladowac odebrane dane. Pole to gra wazna role w wezlach posiadajacych wiele stosów protokolów.

- Punkt dostepu do uslugi zródlowej (SSAP - Source Service Access Point) - nastepny bajt, o numerze 16, wskazuje adres procesu wysylajacego ramke.

- Bajt kontrolny - nastepny bajt, o numerze 17, podaje typ ramki LLC.

- Dane - od 43 do 1497 bajtów to dane uzytkownika. Dlugosc tego pola jest zmienna.

- Ciag kontrolny ramki (FCS - Frame Check Sequence) - ostatnie cztery bajty nazywane sa tez bajtami cyklicznej kontroli nadmiarowej (CRC - Cyclic Redundancy Check ). Gdy odbiorca otrzymuje pakiet, wówczas oblicza jego sume kontrolna za pomoca zlozonego wielomianu, a nastepnie porównuje otrzymany wynik z czterema ostatnimi bajtami ramki. Jesli sumy kontrole nie zgadzaja sie ze soba, ramka zostaje uznana za uszkodzona i odrzucona. Zapewnia to wykrywanie bledów transmisji i zachowanie poprawnosci odebranych ramek.

* Adresy MAC - budowa, unikalność, broadcastowy adres MAC.
MAC (ang. Media Access Control) - unikalny identyfikator, dołączony do prawie każdego urządzenia mającego związek z siecią. Adres MAC jest 48-bitowy i zapisywany jest heksadecymalnie (szesnastkowo). Pierwsze 24 bity oznaczają producenta karty sieciowej, pozostałe 24 bity są unikalnym identyfikatorem danego egzemplarza karty. Na przykład adres MAC 00-0A-E6-3E-FD-E1 oznacza, że karta została wyprodukowana przez Elitegroup Computer System Co. (ECS) i producent nadał jej numer 3E-FD-E1. Czasami można się spotkać z określeniem, że adres MAC jest 6-bajtowy. Ponieważ 1 bajt to 8 bitów, więc 6 bajtów odpowiada 48 bitom. Pierwsze 3 bajty oznaczają producenta, pozostałe 3 bajty oznaczają kolejny (unikalny) egzemplarz karty. Nowsze karty Ethernetowe pozwalają na zmianę nadanego im adresu MAC.

+ adres mający wszystkie bity wyjedynkowane (szesnastkowo FF FF FF FF FF FF) - jest to tak zwany adres rozgłoszeniowy (broadcast address) informujący, że ramka jest przeznaczona dla wszystkich odbiorników w danym fragmencie sieci
+ adres mający wszystkie bity wyzerowane (szesnastkowo 00 00 00 00 00 00) - informujący, że ramka nie zawiera danych, tylko jest ramką organizacyjną protokołu warstwy łącza.

* Działanie koncentratora (hub) i przełącznika (switch), protokół CSMA/CD, segmenty kolizyjne, tryby half-duplex i full-duplex.
- hub - inaczej koncentrator - posiada wiele gniazd. W podstawowej wersji urządzenie to jest wyposażone w diodki LED statusu połączenia, oraz zestaw gniazd typu RJ45 najczęściej 8 w tym dwa opcjonalne gniazda z crossem zwane inaczej cross over lub UPLINK należy pamiętać że gniazda te nie mogą być wykorzystywane jednocześnie z pozostałymi 6 cioma gniazdami. Użycie ich jednoczesne spowoduje zniszczenie urządzenia. Wniosek: Można zatem użyć jednego gniazda UPLINK na HUB. Troszkę kosztowniejsze rozwiązania sieciowe takich firm jak D-Link oraz 3Com i Intel posiadają w wyposarzeniu standardowym również gniazda zezwalające na połączenie za pośrednictwem przewodów AUI, Optical, oraz BNC. Ilość gniazd RJ45 w jakie jest wyposażony HUB jest wyrażona liczbą 2n i maksymalna ich liczba w standardowych i znormalizowanych urządzeniach tej klasy wynosi 64. Huby wykorzystują również technologię wykrywania obciążenia chwilowego połączeń oraz wykrywania pakietów kolizyjnych jak i stabilności połączenia chwilowego. Sygnalizowane jest to odpowiednimi diodami umieszczonymi w ich obudowie i mrugającymi według odgórnie spreparowanego kodu podając częstotliwość zdarzeń sieciowych jak i ich rozmiar. O tych warunkach dyktuje norma połączeń sieciowych sieci Ethernet Szybkich IEEE 802.1

- switch - przelącznik - Jest to urządzenie przełączające. Jego budowa niewiele się różni od budowy hub'a. Jedyną różnicą jest to iż switch potrafi kierować pakiety do konkretnych odbiorców charakteryzujących się konkretnymi i ustalonymi adresami IP. Posiada również możliwość ustalania połączenia sieciowego 10/100 w obrębie jednej sieci. To znaczy że jeżeli się łaczą dwie karty sieciowe 100 to połączenie uzyskane będzie 100. Jeżeli oczywiście połączone zostaną dwie karty w tym jedna będzie słabsza to wtenczas prędkość połączenia dostosowana zostanie do prędkości tej słabszej. Różnica pomiędzy switch'em a hub'em w zasadzie polega jeszcze na kierunkowaniu pakietów

Działanie:
W celu ustalenia fizycznego adresata używają docelowego adresu MAC, zawartego w nagłówku ramki Ethernet. Jeśli switch nie wie, do którego portu powinien wysłać konkretną ramkę, zalewa (flooding) wszystkie porty za wyjątkiem portu, z którego ramkę otrzymał. Switche utrzymują tablicę mapowań adres MAC<->port fizyczny, której pojemność jest zwykle określona na 4096, 8192 lub 16384 wpisów. Po przepełnieniu tej tablicy, nowe wpisy nie są dodawane (chyba, że któryś stary wygaśnie), a ramki 'zalewane' są do wszystkich portów (za wyjątkiem portu, którym ramka dotarła do switcha).

Switche ograniczają domenę kolizyjną do pojedynczego portu, dzięki czemu są w stanie zapewnić każdemu hostowi podłączonemu do portu osobny kanał transmisyjno-nadawczy, a nie współdzielony, tak jak huby.

Na switchach zarządzalnych można również wydzielać VLAN-y, czyli wirtualne podsieci LAN. Porty należące do różnych VLANów nie 'widzą' swoich transmisji - do wymiany informacji pomiędzy różnymi VLANami używa się routerów. Porty do VLANów przypisywane są statycznie lub na podstawie adresu MAC podłączonej stacji (opisuje to protokół GVRP, Generic VLAN Registration Protocol, dostępny na większych switchach). VLANy pomiędzy dwoma podłączonymi do siebie switchami przenosi specjalny rodzaj połączenia - trunk. W standardzie IEEE 802.1Q każda ramka wysyłana przez trunk opatrzona zostaje 4-bajtowym polem, w ramach którego przenoszony jest również identyfikator VLANu (tak, by odbierający ramki przełącznik był w stanie wysłać ramkę do odpowiedniego VLANu). W związku z tym ramki tzw. tagowane, czyli oznaczane, mogą mieć maksymalnie długość do 1522 bajtów.

Obecnie na rynku obecne są również switche routujące (tzw. przełączniki 3 warstwy modelu OSI).

Tryby przekazywania ramek:
Przekazywanie ramek przez switcha może się odbywać w róznych trybach. W przełącznikach zarządzalnych istnieje możliwość wyboru odpowiedniego trybu. Dostępne tryby to:
+ Cut-through - wprowadza najmniejsze opóźnienie, brak sprawdzania poprawności ramek.
+ Store and forward - wprowadza największe opóźnienie, sprawdza sumy kontrolne (CRC) ramek.
+ Fragment free - rozwiązanie pośrednie sprawdzające tylko poprawność nagłówka ramki.
+ Przełączanie adaptacyjne - na podstawie ruchu wybierany jest jeden z powyższych trybów.

- half-duplex/full-duplex - W uproszczeniu halfduplex polega na tym, że w jednym momencie stacja może albo nadawać albo odbierać. W przypadku jak poniżej:

K1-----H-----K2

K - komputer
H - HUB

Jeżeli K1 wyśle pakiet informacji do K2 i w tym samym czasie K2 spróbuje wysłać pakiet - nastąpi kolizja (jest to rzecz normalna w środowisku hubów) i K2 przestanie nadawać. Na tym polega half-duplex - nie jest możliwe jednoczesne odbieranie i nadawanie informacji.
Full-duplex pozwala na to co ogranicza nas w przypadku half-duplex, możliwa jest jednoczesna transmisja i odbiór danych. Tryb ten występuje w sieci zawierającej switche.

K1-----S-----K2

S - Switch

- protokół CSMA/CD - nakazuje urzadzeniom sieciowym nasluchiwac w nosniku transmisji przed nadaniem sygnalu, a ponadto pomaga urzadzeniom wykrywac kolizje. Gdy kolizja zostanie wykryta, wszystkie urzadzenia w sieci powstrzymuja sie od nadawania danych przez okreslony czas. Po jego uplynieciu urzadzenia zaczynaja rywalizowac o nosnik.

- segmenty kolizyjne inaczej domeny kolizyjne z angielskiego Collision Domain - domena kolizyjna to segment sieci, w którym może dojść do kolizji pomiędzy stacjami przyłączonymi do tego samego segmentu podczas transmisji danych. Kolizja to próba jednoczesnego nadawania. Wzrost liczby kolizji powoduje spadek wydajności pracy sieci. Segmentacja sieci polega na podzieleniu dużej domeny kolizyjnej na kilka mniejszych. Podział taki dokonywany jest za pomocą mostów lub przełączników.

Dla przykładu, co się stanie kiedy ktoś podłączy huba do jednego portu switch-a, a do huba wepnie kilka komputerów ? W tym przypadku port nadal reprezentuje domenę kolizyjną - występują w niej kolizje pomiędzy komputerami wpiętymi do hub-a i 1 portem switch-a do którego wpięty jest hub.

* Zapytania ARP, wykrywanie zdublowanych adresów IP.
+ ARP ( Adress Resolution Protocol ) - Protokół Rozwiązywania (Zamiany) Adresów sieciowych - nieznajomosc fizycznego adresu komputera docelowego uniemozliwia wysylanie do niego datagramow. Musi istniec metoda zamiany adresow IP, dostarczonych przez aplikacje, na adresy fizyczne sprzetu laczacego komputery z siecia.

Metoda prymitywna polega na utworzeniu na kazdym komputerze tabeli konwersji. Aplikacja wysyłająca badałaby następnie tę tabelę pod kątem określonych adresów fizycznych. Z metodą tą wiąże się wiele problemów, więc jest prawie wogóle nie stosowana. Główna jej wada to ciągła konieczność uaktualniania tabel w przypadku zmian.

Cały Impas rozwiązuje protokół ARP. Jego zadaniem jest konwersja adresów IP na fizyczne ( sieciowe i lokalne ), eliminująca wymóg znajomości adresów fizycznych przez aplikacje. Nieco uproszczając, protokół ARP jest tabelą konwersji adresów IP na odpowiadające im andresy IP. Tabela ta nosi nazwe tabeli ARP. Jej zawartość jest generowana automatycznie, ale w trakcie analizowania problemów z siecią można wprowadzać wpisy statyczne.

W tabeli ARP jeden wiersz reprezentuje jedno buforowane urządzenie. Protokół ARP przechwouje w pamięci także bufor pozycji ( nazywany bufor ARP lub ARP cache ). Podczas szukania adresu zwykle najpierw sprawdzany jest bufor, a dopiero potem tabela. Wpisy generowane dynamicznie ulegają wymazaniu po upływie czasu zapisanego w konfiguracji bufora. Wpisy statyczne nie są ograniczone limitem czasu.

+ Bufor ARP - każdy wiersz bufora ARP odpowiada jednemu urządzeniu, zawiera następujące informacje:
- INDEKS IF - port fizyczny ( przyłącze ).
- ADRES FIZYCZNY - adres fizyczny urządzenia.
- ADRES IP - adres IP odpowiadający adresowu fizycznemu.
- TYP - typ pozycji.

Typ może mieć jedną z czterech wartości:
2 - pozycja niepoprawna
3 - odwzorowanie dynamiczne ( może ulec zmianie )
4 - odwzorowanie statyczne ( nie może ulec zmianie )
1 - żadne z powyższych

Po otrzymaniu adresu IP protokół ARP szuka dopasowania w buforze i tabeli. Jeśli je znajdzie, zwraca adres fizyczny obiektowi dostarczającemu adres IP. Jeśli poszukiwanie się nie powiedzie, wysyła komunikat do sieci. Komunikat ten nosi nazwę żądania ( zapytania ) ARP.

+ Żądanie ARP - jest komunikatem rozgłaszania, odbieranym przez wszystkie urządzenia sieci lokalnej.

Zapytanie ARP zawiera adres IP zamierzpnego urządzenia odbierającego. Urządzenie, które rozpozna adres jako swój, wysyła do komputera żądającego odpowiedź, zaweirającą swój adres fizyczny. Komputer umieszcza otrzymane informacje, z których będzie później korzystał, w tabeli i buforze ARP. W ten sposób protokół ARP określa adres fizyczny dowolnego komputera na podstawie adresu IP.

|-------------------------------------|
|      Typ sprzętu ( 16 bitów )       |
|-------------------------------------|
|     Typ protokołu ( 16 bitów )      |
|------------------|------------------|
|     Długosć      |     Długosć      |
|     adresu       |     adresu       |
|   sprzętowego    |    protokołu     |
|------------------|------------------|
|      Kod operacji ( 16 bitów )      |
|-------------------------------------|
|      Adres sprzetowy nadawcy        |
|-------------------------------------|
|      Adres protokołowy nadawcy      |
|-------------------------------------|
|      Adres sprzetowy odbiorcy       |
|-------------------------------------|
|     Adres protokołowy odbiorcy      |
|-------------------------------------|

- Typ sprzętu ( Hardware Type ) - określa typ interfejsu sprzętowego. Dopuszczalne są wartości z zakresu 1 - 21
- Typ protokołu ( Protocol Type ) - określa typ protokołu wykorzystywanego przez urządzenie wysyłające. Dla TCP/IP są to zwykle protokoły EtherType.
- Długość adresu sprzętowego ( Hardware Address Length ) - Długość w bajtach adresów sprzętowych w datagramie. Dla sieci Ethernet wynosi 4.
- Długość adresu protokołowego ( Protocol Address Length ) - Długość w bajtach adresu protokołu warstwy wyższej w datagramie. Dla protokołu IP wynosi 4.
- Kod operacji ( Opcode ) - Wskazuje na to, czy datagram jest żądaniem ( wartość 1 ), czy odpowiedzią ARP ( wartość 2 )
- Adres sprzętowy nadawcy ( Sender Hardware Address ) - Adres sprzętowy urządzenia wysyłającego.
- Adres protokoły nadawcy ( Sender Protocol Address ) - Ades IP urządzenia wysyłającego.
- Adres sprzętowy odbiorcy ( Recipient Hardware Address ) - Adres sprzętowy urządzenia odbierającego.
- Adres protokołowy odbiorcy ( Recipient Protocol Address ) - Adres IP urządzenia odbierającego.

* wykrywanie zdublowanych adresów IP - Przypisania adresów IP w sieci muszą być jednoznaczne, jednak w procesie przypisywania adresów IP zawsze istnieje możliwość ich powielenia. Skutkiem zakłócenia pracy stacji sieciowych.
+ Konflikt IP klientów TCP/IP
Mam doczynia z następującą sytuacją:
Dwa klienty TCP/IP: stacja1 oraz stacja2 komunikaują się z serwerem TCP/IP o adresie 144.19.74.102, adres sprzętowy serwera to 080020021545
Obie stacje klienckie korzystają z tego samego adresu IP, 144.19.74.1. Ich adresy sprzętowe to 0000C0085121 ( stacja 1 ) i 0000C0075106 ( stacja 2 ).

Stacja 1 rozpoczyna sesję FTP z serwerem TCP/IP. Wcześniej jeszcze generuje żądanie rozgłoszeniowe ARP, mające na celu doprowadzić do rozpoznania adresu sprzętowego serwera. Po odebraniu żądania serwer oddaje wpis stacji 1 do własnej tabeli ARP i wysyła odpowiedź ARP. Po otrzymaniu odpowiedzi stacja 1 dodaje do lokalnej tabeli ARP wpis serwera. Zawartość buforów ARP jest następująca:

Serwer TCP/IP
    Adres IP               Adres sprzętowy
    144.19.74.1            0000C0085121
Stacja 1
    Adres IP               Adres sprzętowy
    144.19.74.102          080020021545

Kolejnym krokiem jest dokonana przez stację 2. próba ustanowienia sesji TCP/IP (np.: kolejnej sesji FTP ) z tym samym serwerem.

Przed utworzeniem połączenia stacja 2. musi rozpoznać adres sprzętowy serwera. Wysyła więc żądanie ARP. Po odebraniu tego żądania serwer ma dodać wpis stacji 2. do tabeli ARP i odesłać odpowiedź nadawcy. W trakcie pierwszej z tych czynności zostaje odnaleziony wpis wcześniejszy, dotyczący adresu 144.19.74.1. Jak nakazauje dokument RFC 826, serwer musi zastąpić starszy wpis danymi odczytanymi z odebranego komunikatu. Większość implementacji TCP/IP wykonuje to automatatycznie, nie generując, żadnych ostrzeżeń ( nie jest to jednak reguła ). Drugą czynnością jest przesłanie odpowiedzi na żądanie stacji 2. Po odebraniu odpowiedzi stacja 2. dodaje wpis serwera do własnej tabeli ARP. Wówczas tabele ARP serwera i stacji 2 zawierają dane:

Serwer TCP/IP
    Adres IP               Adres sprzętowy
    144.19.74.1            0000C0075106
Stacja 2
    Adres IP               Adres sprzętowy
    144.19.74.102          080020021545

Kiedy następnie serwer ma wysłać dane do stacji 1., wyszukuje w tabeli ARP jej adres sprzętowy, skojarzony z wpisem adresu IP 144.19.74.1. Serwer pobiera adres sprzętowy z tabeli i rozpoczyna transmisję. Niestety, adres sprzętowy jest teraz adresem stacji 2 i do niej kierowane sa dane z serwera. Z powodu braku oczekiwanych odpowiedzi serwera stacja 1 ponawia próby transmisji. Serwer natomiast w dalszym ciągu wysyła odpowiedź do stacji 2. Sytuacja taka utzrymuje się do czasu przekroczenia pewnego limitu czasowego stacji 1. lub przerwania połączenia przez użytkownika ( lub restartowania oprogramowania klienta ). Spowoduje to przerwanie ponawiania transmisji, ale bynajmniej nie przywróci możliwości komunikacji z serwerem.

Stacja 2. po otrzymaniu nieoczekiwanych danych, przeznaczonych dla stacji 1., prawdopodobnie będzie je ignorować. Może również wyświetlić komunikat o błędzie. Można też oczekiwać, że będzie kontynuować rozpoczętą sesję komunikacyjną. Nieoczekiwane dane prowadzą jednak niekiedy do zawieszenie systemu.

Jeżeli użytkownik stacji 1. ponownie uruchomi komputer i spróbuje nawiązać połączenie z serwerem, wpis ARP stacji 2, zostanie zastąpiony wpisem stacji 1. Wówczas sytuacja ulegnie odwróceniu. Stacja 2. utraci możliwość komunikacji z serwerem aż do ponownego uruchomienia.

+ Konflikt adresów IP serwerów TCP/IP
Mamy doczynienia z następującą sytuacją. Do serwera 1 i serwera 2 został przypisany identyczny adres IP 144.19.74.102. Adresy sprzętowe obu serwerów to odpowiednio, 080020021545 oraz AA0004126750

Stacja o adresie IP 144.19.74.1 podejmuje próbę połączenia z serwerem o adresie 144.19.74.102. Adrs sprzętowy stacji to 0000C0085121

Zamierzeniem użytkownikastacji jest nawiązanie łączności z serwerem 1. Przed rozpoczęciem właściwej komunikacji TCP/IP stacja wysyła rozgłoszeniowe żądanie ARP, dążąc do uzyskania adresu sprzętowego serwera. Adres docelowy rozgłoszenia został przypisany dwóm serwerom. Po odebraniu żądania każdy z nich dołącza wpis stacji do lokalnej tabeli ARP i wysyła odpowiedź. Stacja odbiera pierwszą z nich, całkowicie ignorując drugą. Jeżeli komunikat ARP serwera 2. dotrze do stacji jako pierwszy, wpis tego właśnie serwera znajdzie się w jej tabeli ARP.

Stacja nawiązuje więc łącznoiść z serwerem 2. w miejsce oczekiwanego serwera1. Jeżeli na serwerze 2. nie została uruchomiona wskazana przez klienta usługa, połączenie nie dojdzie do skutku, a użytkownik otrzyma komunikat o tym, że serwer nie obsługuje wymaganego protokołu aplikacji.

Jeżeli na serwerze 2. dostępna jest wywolywana przez stację usługa, kolejnym krokiem może byc logowanie. Jeżeli usługa jest telnet czy FTP, wymagane jest wówczas podanie nazwy użytkownika i hasła. Możliwa jest wtedy odmowa dostępu z powodu, że serwer nie dysponuje kontem danego użytkownika.

Jeżeli serwer jest stacją o wielu przyłączach sieciowych, która pracuje jako router, mogą pojawić się jeszcze trudniejsze do rozpoznania komplikacje - pakiety kierowane do sieci zewnętrznych mogą zostać niedostarczone lub skierowane inną od oczekiwaną trasą. Przyczyna jest oczywiście przekazywanie pakietów do niewłaściwego routera.

+ Wykrywanie powtórzonych adresów IP.
- Wiele iplementacji TCP/IP rozsyła żądania ARP przy uruchamianiu, umieszczając w polu docelowego adresu IP adres własny. Celem takiej inicjalizacji jest rozpoznanie węzłów o identycznym adresie IP. Jeżeli po wysłaniu żądania zostanie odebrana odpowiedź ARP, oznacza to, że inny węzeł w sieci ( ten który odpowiedział ) ma ten sam adres IP, co stacja uruchamiana. W takim wypadku stacja informuje użytkownika o zdublowaniu adresu IP w sieci. Węzeł odpowiadający na żądanie, może sprawdzić czy adres w polu IP to taki jak jego łasny, jeżeli tak powiadami administratora.

- w wyszukiwaniu zdublowanego adresu można posiłkować się także poleceniem arp, pozwalającym na wyświetlenie wpisów tabeli ARP. Za pomocą polecenia arp -a wyświetlamy bierzącą tabele ARP i na podtsawie listy właściwych adresów ( zwłaszcza adresów Ethernet ) szukamy problematycznej stacji.

* Automatyczna konfiguracja adresów IP - BOOTP, DHCP.
+ BOOTP - Bootstrap Protocol - inaczej prosty protokół rozruchu wstępnego, wykorzystuje pare protokołów UDP i IP do przesłania komputerom danych konfiguracyjnych. Komputery, które generują żądania BOOTP określa się jako klienty BOOTP ( BOOTP clients ) a komputery przesyłające odpowiedzi jako serwery BOOTP ( BOOTP servers ). Żądanie klienta BOOTP ma na celu uzyskaniu wartosci parametrow IP przeznaczonych dla komputera, na którym oprogramowanie klienta jest uruchomione.

Komunikat BOOTP jest kapsułkowany w datagramie UDP, określającym numer portu procesu BOOTP. Tak utworzony datagram podlega kapsułkowaniu w pakiecie IP. Nagłówek protokołu IP zawiera jedynie adresy IP źródłowy i docelowy. Generując zapytanie klient nie zna swojego adresu IP. Adresem używanym w takich sytuacjach jest 0.0.0.0. Jeżeli klient BOOTP ma przypisany adres IP, jest on oczywiście stosowany. Klient BOOTP nie zna zazwyczaj adrsu serwera, jeżeli jednak stacja ma możliwość przechowywania takiego adresu klient BOOTP przewiduje taką możliwość. W przypadku braku adresu serwera jest stosowany lokalny adres rozglaszania. Ma on wartosc: 255.255.255.255. Pakiety opisane za pomoca lokalnego adresu rozglaszania odbieraja wszystkie stacje w sieci lokalnej. Po rozpoznaniu zawartosci wszystkie stacje poza serwerami BOOTP, odrzucaja pakiet.

Gdy serwer BOOTP pracuje w innej podsieci, oddzielonej routerem, rozgloszenie lokalne nie zostanie przekazane przez router. W takich przypadkach w systemie routera musi znalezc sie agent przekazywania BOOTP, Rozpoznaje on, okreslony w naglowku UDP rozgloszenia lokalnego, numer portu docelowego BOOTP - 67. Jest to port zarezerwowany dla protokołów BOOTP i DHCP. Agent przekazywania zapewnia przesyłanie rozgłoszenia lokalnego pomiędzy przyłączami routera.

Serwer BOOTP w sieci lokalnej odpowiada bezpośrednio klientowi. To czy serwer może skorzystać z adresu IP i wysłać odpowiedź skierowana zalezy wylacznie od implementacji serwera.

Wysłanie do klienta komunikatu skierowanego jest pewnym problemem, bowiem serwer wyszukuje jego adres IP we własnej bazie danych BOOTP. Żądanie ARP, mające prowadzić do rozpoznania sprzętowego adresu klienta, pozostanie bez odpowiedzi. Sam klient nie zna swojego adresu IP. Jednak serwer BOOTP dysponuje adresem sprzetowym klienta, przesłanym doń w nagłówku warstwy łącza sieciowego komunikatu żądania BOOTP. Oprogramowanie serwera może na tej podstawie utworzyć wpis w tabeli ARP. Jeżeli taki mechanizm jest używany to odpowiedź, serwera może mieć charakter komunikatu skierowanego. Jeżeli serwer nie modyfikuje tabeli ARP, wysyła odpowiedź jako rozgłoszenie.

+ Zakłócenia komunikacji BOOTP
Protokół BOOTP opiera swoje działanie na protokołach UDP i IP. Nie gwarantują one dostarczania komunikatów. Mogą więc zostać nie dostarczone, opóźnione, powielone lub dostarczone w zmienionej kolejności. Ponieważ IP zapewnia wyłącznie mechanizm sum kontrolnych, umożliwiający nadzór nad poprawnością transmisji nagłówka IP, ale nie samych danych, oprogramowanie BOOTP może wymagać korzystania z sum kontrolnych UDP. Zapewniają one kontrolę poprawności całego komunikatu.

Żądania wysyłane przez klienta BOOTP mająustawiony znacznik DF ( Don't Fragment, nie fragmentować ). Upraszcza to przetwarzanie odpowiedzi, zwłaszcza gdy klient nie dysponuje pamięcią wystarczająca do ponownego złożenia podzielonych datagamów. W protokole BOOTP stosowana jest metoda limitów czasowych retransmisji. Klient wysyłający żądanie rozpoczyna zliczanie czasu oczekiwania. Odebranie odpowiedzi kończy procedurę, ale w przypadku gdy określony limit czasowy zostanie przekroczony, żądanie BOOTP jesat wysyłane ponownie.

Wieksza liczba jednoczesnie uruchamianych klientow moze doprowadzic do zdlawienia komunikacji sieciowej wskutek tzw.: powodzi lub burzy rozgłoszen BOOTP. Aby później uniknać takiego zjawiska, specyfikacja BOOTP zaleca wprowadzenie losowych opoznien retransmisji w zakresie do czterech sekund.

Kazda kolejna retransmisja podwaja czas oczekiwania. Wartosc graniczna rosnacego opoznienia jest zazwyczaj znacznie wieksza, rzedu 60 sekund. Po osiągnieciu tej wartosci limit czasu oczekiwania przestaje byc podwajany, w dalszym ciagu jednak jest stosowane losowe opznienie nie wieksze niz wartosc graniczna. Ma to na celu unikniecie kierowania do sieci zbyt wielu jednoczesnych zadan BOOTP, ktore moga doprowadzic do przeciazenia serwera i powodowac kolizje pakietow w sieci Ethernet.

Podwajanie losowo dobieranego czasu oczekiwania ma zapewnic unikniecie przekroczenia przepustowosci sieci w sytuacjach, gdy z rozgloszeniowej komunikacji protokołu BOOTP korzysta jednoczesnie wielu klientow.

+ DHCP - Podobnie jak BOOTP, protokól DHCP przydziela pelne dane konfiguracyjne do uruchamianego urzadzenia sieciowego. Jest jednak znacznie przydatniejszy od BOOTP, poniewaz dodatkowo pozwala urzadzeniom automatycznie pobierac adresy IP. W rezultacie klient DHCP moze byc przenoszony bez koniecznosci recznej zmiany konfiguracji. Ta zdolnosc do automatycznej rekonfiguracji ma znaczenie zwlaszcza w przypadku tymczasowych przenosin, gdy host przenoszony jest do innej lokalizacji na bardzo krótki czas (na przyklad, na kilka godzin lub dzien). Oprócz dynamicznego przydzielania adresu IP, DHCP posiada wbudowane mechanizmy sluzace do zarzadzania lokalnymi klientami w sieci, rejestracji ruchu sieciowego i podstawowe zabezpieczenia. Równie wazna jest latwosc instalacji, konfiguracji i utrzymywania DHCP. Dzieki tym wszystkim zaletom zadanie zarzadzania siecia TCP/IP z pomoca DHCP staje sie stosunkowo latwe.

Protokól DHCP nie tylko rozwiazuje problem dynamicznego przydzielania adresów IP klientom w sieci TCP/IP, lecz równ iez radzi sobie z problemem szybko kurczacej sie puli unikatowych adresów IP. W statycznym srodowisku sieciowym administrator nadaje unikatowe adresy IP nowym urzadzeniom w sieci. Nawet jesli urzadzenie uzywane jest rzadko (lub tymczasowo), zadne inne urzadzenie nie moze korzystac z jego adresu IP, chocby byl bardzo potrzebny. Dzieki zastosowaniu protokolu DHCP, który dynamicznie przydziela adresy IP, adresy te sa przyznawane tylko w miare potrzeby i zwa lniane, gdy nie sa potrzebne, co pozwala oszczedzic cenna przestrzen adresów IP.

+ Dzierzawy DHCP
Serwer DHCP utrzymuje pule poprawnych adresów IP, które moze przydzielac klientom. Pula adresów IP nosi nazwe zakresu (scope). Klient w trakcie uruchamiania rozglasza zadanie adresu IP. Wszystkie serwery DHCP, które otrzymaja zadanie, zwracaja w odpowiedzi adres IP i zwiazane z nim dane konfiguracyjne, dzieki czemu klient moze otrzymac wiele odpowiedzi na zadanie. Nastepnie klient wybiera do swojego uzytku odpowiedni adres IP i dzierzawi go od serwera DHCP. Dzierzawa (lease) okresla czas, przez który serwer DHCP pozwala klientowi uzywac okreslonego adresu IP. Po potwierdzeniu dzierzawy klient staje sie czescia funkcjonujacej sieci. Gdy ustalony czas uplynie, dzierzawa jest uniewazniana przez serwer DHCP. W dynamicznym srodowisku sieciowym dzierzawy sa wazne, poniewaz zapobiegaja zagarnianiu przez klienty adresów na dlugi czas. Po wygasnieciu dzierzawy adres IP wraca do puli (zakresu) adresów serwera, z które j adresy moga byc dzierzawione potrzebujacym ich klientom. Jesli jednak klient nadal uzywa adresu po uplynieciu terminu, serwer moze odnowic dzierzawe i pozwolic klientowi uzywac tego samego adresu. W niektórych przypadkach nieuzywane dzierzawy moga byc automatycznie zwracane do puli adresów. Czas trwania dzierzawy zalezy od sieci i wymogów klientów. Na przyklad, w sieci przedsiebiorstwa dzierzawa moze trwac dzien lub nawet tydzien, zaleznie od wykonywanych zadan. Z drugiej strony, dzierzawy w kafejkach internetowych moga trwac zaledwie godzine. Z tego powodu specyfikacja DHCP nie zaleca okreslonego czasu dzierzawy. Jej dlugosc zalezy od administratora sieci. DHCP pozwala równiez na dzierzawy na czas nieokreslony (np. jesli podamy w polu Lease Duration wartosc 0xffffffff). Przyznawanie trwalych dzierzaw przypomina statyczny przydzial adresów IP.

Proces dzierzawy DHCP, obejmuje nastepujace kroki:
1. Klient zostaje uruchomiony i rozglasza w lokalnej podsieci tzw. komunikat odkrycia DHCP (DHCPDISCOVER). Ta faza nosi nazwe stanu inicjacji. Jesli po drodze pomiedzy klientem i serwerem znajduje sie ruter, komunikat rozgloszenia moze byc przesylany do innych podsieci. Do tego celu potrzebne sa rutery obslugujace protokól BOOTP.
2. Wszystkie serwery, które otrzymaly komunikat odkrycia i moga wydzierzawic adres IP odpowiadaja wysylajac komunikat oferty DHCP (DHCPOFFER). Komunikat ten zawiera adres IP i zwiazane z nim dane konfiguracyjne.
3. Klient moze otrzymac wiele ofert dzierzawy, w zaleznosci od liczby serwerów DHCP, które odpowiedzialy na komunikat odkrycia. Klient wchodzi teraz w stan wyboru, w którym przeglada komunikaty ofert i wybiera jedna z nich.
4. Klient wchodzi w stan zadania - wysyla do odpowiedniego serwera komunikat zadania (DHCPREQUEST), zadajac konfiguracji zaoferowanej przez serwer.
5. Serwer wysyla komunikat pozytywnego potwierdzenia (DHCPACK) komunikatu zadania, wyslanego przez klienta. Oprócz adresu IP i danych konfiguracyjnych komunikat ten zawiera informacje o dzierzawie.
6. Klient po otrzymaniu potwierdzenia wchodzi w stan powiazania, w którym wydzierzawiony adres IP jest zwiazany z klientem, a klient staje sie czescia sieci. W stanie powiazania klient uzywa trzech liczników czasu, które kontroluja wygasniecie, odnowienie i ponowne nawiazanie dzierzawy.
7. W zaleznosci od ustawien licznika czasu wygasniecia, po uplywie 50% czasu dzierzawy - lub po jej wygasnieciu - klient usiluje odnowic dzierzawe, wysylajac komunikat DHCPREQUEST do serwera, który adres wydzierzawil. Klient moze tez usilowac zakonczyc dzierzawe przed czasem, wysylajac komunikat zwolnienia (DHCPRELEASE).
8. Po wyslaniu do serwera komunikatu DHCPREQUEST, klient wchodzi w stan odnowienia i w tym stanie oczekuje na odpowiedz od serwera. Serwer moze w odpowiedzi albo przyjac zadanie (potwierdzajac przez DHCPACK), albo je odrzucic (DHCPNACK). W razie odrzucenia zadania klient zwalnia adres i wraca do stanu inicjacji.
9. Jesli klient nie otrzyma od serwera odpowiedzi w okreslonym czasie, to serwer zostaje uznany za wylaczony lub niedostepny. W tym przypadku klient po uplywie 87,5% czasu dzierzawy wchodzi w stan ponowienia powiazania. W tym stanie klient zaczyna ponownie rozglaszac komunikat DHCPREQUEST do wszystkich dostepnych serwerów DHCP.
10. Jesli klient otrzyma chocby jedna pozytywna odpowiedz, to wraca do stanu powiazania, natomiast jesli wszystkie serwery odpowiedza negatywnie, klient powróci do stanu inicjacji.

* Podsłuchiwanie w sieciach opartych o koncentratory, podsłuchiwanie w sieciach opartych o przełączniki.

+ Sniffing i koncentratory - Najłatwiej prowadzić sniffing w sieciach standardu Ethernet (są to sieci rozgłoszeniowe używające protokołu CSMA/CD), które oparte są na fizycznej topologii magistrali lub gwiazdy (także topologii mieszanej, np. drzewa). W drugim przypadku do organizacji sieci muszą być jednak wykorzystane urządzenia zwane koncentratorami (ang. hubs), które działają w pierwszej warstwie (fizycznej) modelu referencyjnego OSI. Ich zadaniem jest wzmacnianie transmitowanego sygnału i przekazywanie go do wszystkich portów, do których mogą być podłączone inne urządzenia sieciowe (komputery, kolejne koncentratory itp.). W normalnym trybie pracy karty sieciowe (ang. Network Interface Card, NIC - karta interfejsu sieciowego) są w stanie odfiltrować wszystkie pakiety, które skierowane były do innego interfejsu sieciowego, sprawdzając swój adres MAC (tzw. adres fizyczny) z zapisanym w pakiecie adresem MAC odbiorcy. Możliwe jest jednak przełączenie karty sieciowej w tzw. bezładny tryb pracy (ang. promiscuous mode - potocznie nazywany trybem podsłuchu). Wówczas karta sieciowa przekazuje do wyższych warstw (chodzi o model referencyjny OSI) wszystkie odebrane pakiety, nawet jeżeli nie były one do niej adresowane. Z możliwości tej korzystają programy zwane snifferami, dzięki którym jesteśmy w stanie podsłuchiwać ruch sieciowy (czyli przechwytywać pakiety, które są jego elementami składowymi). Poszczególne pakiety mogą być zapisane przez sniffer do pliku, co pozwoli osobie korzystającej z programu na dokładniejszą analizę ruchu w dowolnym czasie. Takie działanie umożliwia zebranie wielu informacji, które mogą być przydatne w celu przeprowadzenia np. innego ataku lub uzyskania nieautoryzowanego dostępu do określonych zasobów. Sniffing w sieciach bez przełączników można uznać za działanie pasywne, gdyż atakujący musi jedynie programowo przestawić tryb pracy swojej karty sieciowej na bezładny, uruchomić sniffer i określić jakie pakiety ma on wychwytywać. Nie jest konieczna żadna interakcja z innymi urządzeniami pracującymi w sieci. Oczywiście warunkiem koniecznym jest, aby maszyna, na której prowadzony jest sniffing, była podpięta do dowolnego portu koncentratora. Ten po odebraniu pakietu wyśle go na wszystkie swoje porty i w rezultacie pakiet trafi do każdego spiętego z koncentratorem urządzenia (komputera lub kolejnego koncentratora). Każda z kart sieciowych - za wyjątkiem karty prawdziwego odbiorcy oraz karty pracującej w trybie bezładnym (używanej przez sniffującego) - odfiltruje pakiet po adresie MAC. W ten sposób możliwe jest podsłuchiwanie całej komunikacji odbywającej się w sieci

+ Sniffing i przełączniki - Typowe przełączniki spotykane w sieciach lokalnych są urządzeniami działającymi w drugiej warstwie modelu referencyjnego OSI. Z tego względu funkcjonują one bardziej inteligentnie niż typowe koncentratory. W trakcie pracy przełączniki budują tablice adresów MAC urządzeń przyłączonych do ich portów i zapisują te informacje we własnej pamięci (w postaci tzw. tablic CAM - ang. Content Addressable Memory). Dzięki temu każdy przełącznik po odebraniu pakietu przesyła go nie na wszystkie porty, a jedynie do jednego z nich, do którego podpięte jest urządzenie o odpowiednim adresie MAC (odbiorca). To z kolei oznacza, że do karty sieciowej maszyny-odbiorcy trafiają wyłącznie pakiety dla niej przeznaczone oraz pakiety rozgłoszeniowe (ang. broadcast). Wówczas przełączenie karty w tryb bezładny i uruchomienie sniffera nie przyniesie pożądanego efektu (patrz Rys. 3). Stąd też wziął się mit, że przełączniki uniemożliwiają podsłuchiwanie ruchu. To prawda, że ograniczają możliwości ataku, ale wystarczy zastanowić się nad kilkoma szczegółami związanymi z zasadami działania przełączników, aby dostrzec potencjalne drogi obejścia tego problemu. Okazuje się, że właśnie pamięć wykorzystywana przez przełączniki do przechowywania odwzorowań portów na adresy MAC przyłączonych do nich urządzeń stanowi pierwszą drogę ataku. Po pierwsze warto pamiętać, że dopóki przełącznik nie wybuduje aktualnej tablicy odwzorowań MAC/port rozsyła pakiet przeznaczony dla nieokreślonego odbiorcy (może to być np. nowy komputer podpięty do wolnego portu, który jeszcze nie wygenerował żadnego ruchu) do wszystkich portów. Wówczas urządzenie to działa jak typowy koncentrator. Tworzenie tablicy odwzorowań MAC/port polega na tym, że kiedy na porcie przełącznika pojawia się pakiet, ten odczytuje informację o nadawcy pakietu i zapisuje ją w pamięci, łącząc odkryty adres MAC z określonym portem. Ten proces ma charakter dynamiczny, gdyż w przeciwnym razie nie byłoby możliwe przepinanie urządzeń na inne porty. Po drugie, pamięć przełącznika, w której przechowywana jest tablica odwzorowań MAC/port ma ograniczony rozmiar, można więc pokusić się o jej przepełnienie. Pojedynczy adres MAC zajmuje 6 bajtów (np. 00-0A-FF-12-01-01) - nie jest to dużo biorąc pod uwagę pamięć urządzenia, jednak stosując technikę MAC flooding można przesłać odpowiednią ilość fałszywych pakietów i spowodować przepełnienie tablicy. Po trzecie, większość producentów kart sieciowych pozwala na zmianę adresu MAC przypisanego danemu urządzeniu, a to daje możliwość podszycia się pod inną maszynę. Nie jest to jednak działanie konieczne, ponieważ istnieje wiele narzędzi pozwalających na manipulację pakietami ARP, a to otwiera już kilka możliwych dróg rozwiązania problemu. Warto też zapamiętać, że w przypadku sieci opartych na przełącznikach sniffing okazuje się atakiem aktywnym - co zresztą zaraz stanie się oczywiste.

* Wirtualne segmenty - VLAN
Pojecie wirtualnych sieci lokalnych (ang. VLAN - Virtual LAN) nie znalazło do tej pory oficjalnej, uniwersalnej definicji. Interpretacji jest wiele, najczesciej zaleznie od producenta sprzetu implementujacego sieci wirtualne.

Wirtualna siec lokalna to podzbiór urzadzen pracujacych w sieci lokalnej. Wirtualna siec lokalna zapewnia urzadzeniom przynaleznosc do wyodrebnionej domeny rozgloszeniowej. Z punktu widzenia stacji roboczych zapewnia im dzialanie, jakby nalezaly do fizycznie wydzielonej sieci lokalnej. W sieci lokalnej moze istniec jednoczesnie kilka wirtualnych sieci lokalnych. Zakladajac dla uproszczenia, ze siec lokalna tworzy jedna domene rozgloszeniowa, nastepuje jej podzial na poszczególne wirtualne sieci lokalne. Urzadzeniem realizujacym podzial domeny rozgloszeniowej na wirtualne sieci lokalne jest najczesciej przelacznik. Przynaleznosc podłaczonych do niego urzadzen do danej wirtualnej sieci lokalnej moze nastepowac na podstawie róznych kryteriów. Przynaleznosc stacji do sieci wirtualnej moze byc realizowana na podstawie:

a) numeru portu przelacznika ( jako port rozumiany jest fizyczny interfejs przelacznika ). O ile do portu przelacznika podlaczone jest kilka urzadzen, wszystkie one naleza do tej samej sieci wirtualnej.

b) adresu MAC urzadzenia. W przelaczniku konfigurowana jest przez administratora tabela zawierajaca numery sieci wirtualnych i nalezace do nich adresy MAC. Zgodnie z idea dzialania przelaczników, przelacznik posiada informacje, na którym porcie wystepowala ostatnio stacja o danym adresie MAC. W przypadku odebrania przez przelacznik ramki o nieznanym adresie MAC lub adresie rozgloszeniowym, mozliwe sa dwa rozwiazania:

- zaklada sie, ze nie moze wystapic w sieci adres MAC poza zdefiniowanymi. Wówczas precyzyjnie okreoelone sa porty dla ramek rozgloszeniowych, ramki nieznanego przeznaczenia sa gubione.
- zaklada sie mozliwosc wystapienia nieznanego adresu MAC. Wówczas rozgloszenia oraz ramki nieznanego przeznaczenia rozsylane sa na wszystkie porty. Podzial domen rozgloszeniowych nie jest zachowany.

c) typu protokolu warstwy trzeciej modelu OSI. Aby ramki rozgloszeniowe danego protokolu nie byly wysylane do sieci wirtualnej odpowiadajecej innemu protokolowi, stacje podlaczone do jednego portu przelacznika powinny wszystkie poslugiwaa sie jednym protokolem.

d) znacznika dodawanego do ramki w warstwie drugiej. Dokumentem opisujacym miejsce jego umieszczenia oraz zawartosc jest standard IEEE 802.1Q.


Bibliografia:
* Ethernet:
+ http://www.codeguru.pl/article-381.aspx
* MAC:
+ http://pl.wikipedia.org/wiki/MAC
+ http://julia.univ.gda.pl/~matjs/sieci5.ppt
+ http://en.wikipedia.org/wiki/MAC_address#Address_details
* Hub:
+ http://adam.imir.agh.edu.pl/figiel/wftele/eksplo2/Urzadzenia/Urzadzenia52hub.htm
+ http://sierp.net/faq/
* BOOTP i DHCP:
+ "TCP/IP Księga Eksperta"
+ "TCP/IP Biblia"
* ARP:
+ "TCP/IP Księga Eksperta"
+ "Sieci komputerowe Księga eksperta"
* Sniffing:
+ http://www.it-faq.pl/EditModule.aspx?tabid=583&mid=1253&def=Cs_ITSCS_CMS_Articles_View&ArticleID=1757
+ Artykuł z czasopisma Hackin9: http://www.haking.pl/pl/attachments/switch_pl.pdf
* Switch:
+ http://pl.wikipedia.org/wiki/Switch
+ http://sierp.net/faq/
+ http://en.wikipedia.org/wiki/Network_switch
* VLAN:
+ http://thenut.eti.pg.gda.pl/~stilab/vlan-et/
+ "TCP/IP Księga Eksperta"
* half-duplex, full-duplex:
+ http://en.wikipedia.org/wiki/Half-duplex
+ http://sierp.net/faq/#duplex
+ http://pl.wikipedia.org/wiki/Dupleks
* protokół CSMA/CD:
+ http://www.erg.abdn.ac.uk/users/gorry/course/lan-pages/csma-cd.html
+ "Sieci komputerowe Księga eksperta"
+ http://www.au.poznan.pl/~jankar/SK-dostep_do_lacza.pdf
+ http://pl.wikipedia.org/wiki/CSMA/CD
* domeny kolizyjne:
+ http://windows.howto.pl/artykuly,windows-21-41-0.html
+ http://network.page.com.pl/referaty/sinski/
+ http://kik.pcz.czest.pl/Slawomir_Litwinski/2-symulator_przelacz.pdf
+ http://www.phys.uni.torun.pl/~jkob/sk-transp.pdf


Praktyka:

Zadania praktyczne poczatkowo wykonywane były na komputerach laboratoryjnych, jednak z powodu braku czasu jak i pewnych problemow technicznych zadanie praktyczne zostalo poczęści wykonane w warunkach "domowych" za pomoca trzech komputerow znajdujacych sie w sieci lokalnej, oraz niektore cwiczenia wykonane są na wirtualnym komputerze podlączonym do tejże sieci.
Dwa z komputerow oraz wirtualny pracują pod kontrolą systemu Windows 2000
Trzeci pracuje pod kontrola systemu Linux PLD


1) Zbadać własny adres MAC za pomocą polecenia ipconfig oraz adres MAC bramy domyślnej poprzez a) podsłuchanie programami windump i/lub ethereal komunikacji z bramą, b) poprzez wygenerowanie zapytania ARP programem ArpCacheWatch.
- ifconfig z danymi dotyczacymi adresu MAC karty sieciowej komputera pod kontrola systemu Linux
gdzie:
* eth0 - pierwsza karta sieciowa, zaraz po określeniu z jest to połączenie w sieci Ethernet, znajduje sie adres MAC karty
* eth1 - druga karta sieciowa
* lo - loopback - pozwala na komunikacje sieciowa wewnatrz pojedynczego komputera pozbawionego dostepu do sieci
* ppp0 - pierwsze połączenie PPP z ISP
- ipconfig pierwszego i drugiego komputera pod kontrolą systemu Windows 2000. W przeciwienstwie do listingu z ifconfig powyzsze dwa listingi sa bardziej czytelne

a) Listing z programu Ethereal z komunikacji z bramą adres MAC bramy, jest to sytuacja gdy komputer z Windows 2000 podsluchuje brame sieciowa, ktora jest komputer z systemem PLD
b) Ponizej znajduja sie zrzuty z ekranu z działania programu ARPWatcher:
- adres MAC 1 komputera z Windows 2000
- adres MAC 2 komputera z Windows 2000
- adres MAC bramki z 1 komputera z Windows 2000
- adres MAC bramki z 2 komputera z Windows 2000

2) Ustalić producenta karty sieciowej w komputerze własnym i bramie domyślnej.
* Producent karty sieciowej w bramie to:
00-0F-EA (hex)Giga-Byte Technology Co.,LTD.
000FEA (base 16)Giga-Byte Technology Co.,LTD.
No.215,Nan-Ping Road,Ping-Jen City,
Ping-Jen Taoyuan 324
TAIWAN, REPUBLIC OF CHINA

* Producent karty sieciowej w wykorzystywanym komputerze:
00-04-4B (hex)NVIDIA
00044B (base 16)NVIDIA
3535 Monroe St.
Santa Clara CA 95051
UNITED STATES

* Karta sieciowa wirtualnej maszyny:
00-0C-29 (hex)VMware, Inc.
000C29 (base 16)VMware, Inc.
3145 Porter Dr.
Palo Alto CA 94304
UNITED STATES

Dane producentow kart sieciowych pobralismy ze strony.

3) Za pomocą polecenia arp zbadać i wyczyścić zawartość pamięci podręcznej (cache) protokołu ARP.
Na jednostce z zainstalowanym systemem Windows 2000 zostało wydane polecenie arp -a, otrzymano nastepujace wyniki.

4) Na dwóch komputerach ustawić ten sam adres IP i "wykryć" tę sytuację generując zapytanie ARP.
Nie udalo nam sie ustawic takiego samego adresu IP na dwoch komputerach, otrzymalismy nastepujace komunikaty probujac zmienic adresy poszczegolnych jednostek:
* System na wirtualnej maszynie wykryl blad podczas zmiany adresu IP tutaj
* System na fizycznym komputerze wykrył konflikt adresów tutaj
* System na wirtualnej maszynie wykryl blad podczas uruchamiania ( po zmianie adresu IP ) tutaj
Proces wykrywania zdublowanego IP został opisany w części teoretycznej

5) Za pomocą programu windump i/lub ethereal prześledzić proces otrzymywania adresu IP poprzez DHCP przez inny komputer w czasie uruchamiania oraz proces zwalniania adresu IP poprzez DHCP przez inny komputer w czasie zamykania.
W czasie uruchamiania systemu zaobserwowalismy "tranzakcje DHCP", gdzie maszynie przydzielany był nowy adres IP, ładnie pokazuje to ten log z Ethereal. Podczas zamykania systemu nie zaobserwowalismy zadnego ruchu sieciowego, który byłby kojarzony z procesem samego zwalniania adresu IP.

6) Odnowić i zwolnić dzierżawę DHCP korzystając z polecenia ipconfig.
Zadanie to zostało wykonane za pomoca polecenia ipconfig /release oraz ipconfig /renew, oto zrzut z ekranu pokazujący cały proces.

7) We właściwościach sterownika karty sieciowej ustawić adres MAC taki sam, jaki ma karta sieciowa innego komputera w laboratorium, po czym odnowić dzierżawę DHCP i zaobserwować skutek.
Podczas przeprowadzanych przez nas prób po ustawieniu w naszych warunkach dwóm komputerom ( ich kartom sieciowym ) tego samego adresu MAC, nic nie zmienilo wykonanie odnowienia dzierzawy DHCP. Wirtualnej maszynie został przydzielony adres MAC komputera "fizycznego", przedstawiwa to ten zrzut z ekranu. Jednak po wykonaniu przywracania dzierzawy o dziwo nic sie nie zmienilo. Stan przed oraz stan po wykonanii ipconfig /renew. Podejrzewamy iż taki stan rzeczy był spowodowany faktem, testowania tego na wirtualnej maszynie.

8) Zaobserwować różnicę w działaniu programów windump i ethereal w trybie z interpretacją adresu MAC oraz z ignorowaniem adresu MAC (tzw. tryb rozwiązły, ang. promiscuous mode).

Tryb Promiscuous (ang. promiscuous mode) - tryb pracy interfejsu sieciowego (np. ethernetowej karty sieciowej), polegający na odbieraniu całego ruchu docierającego do karty siecioiwej, nie tylko skierowanego na adres MAC karty sieciowej.

Wiedza tylko wtedy jest wiedzą, kiedy zdobyta została wysiłkiem własnej myśli, a nie wyłącznie dzięki pamięci.

Poprawny XHTML 1.0! Poprawny styl CSS!hacker emblem open source emblem