Czym jest domena rozgłoszeniowa i kolizyjna?

Damian Michalak
Damian Michalak Komentarze: 11

Dzisiejsze sieci umożliwiają komunikację między wieloma urządzeniami. Jednak im więcej urządzeń znajduje się w sieci, tym większe ryzyko, że będą one przesyłać dane w tym samym czasie, co w konsekwencji doprowadzi do zakłóceń. Oczywiście może mieć to ogromny wpływ na wydajność sieci. Żeby lepiej zrozumieć ten problem musisz wiedzieć czym jest domena kolizyjna i rozgłoszeniowa. Przyjrzyjmy się bliżej tym zagadnieniom.

Domena kolizyjna

Topologia szyny

Zaczynamy od domen kolizyjnych. Aby móc dobrze wytłumaczyć to zagadnienie sięgnijmy wpierw pamięcią kilkadziesiąt lat do tyłu. To właśnie wtedy mieliśmy do czynienia z pierwszymi prostymi sieciami LAN opartymi o topologię szyny, z angielskiego bus topology. Działało to dość prosto – do pojedynczej magistrali będącej kablem koncentrycznym mieliśmy podłączone poszczególne hosty za pomocą złącz w kształcie litery T. Każdy host posiadał oczywiście swój własny NIC, czyli Network Interface Card za pomocą którego podłączał się do sieci.

Sieci oparte o tego typu magistralę danych były sieciami typu half-duplex co oznacza, że w danej jednostce czasu w medium mogła odbywać się tylko transmisja lub odbiór danych – ale nie obie te rzeczy naraz. A że medium było współdzielone – przypominam, mamy do czynienia z pojedynczym kablem – to pojawiał się oczywiście problem kolizji ramek.

Aby przeciwdziałać kolizjom stworzono metodę CSMA/CD od angielskiego Carrier Sense Multiple Access with Collision Detection. W dużym skrócie urządzenia w trakcie transmisji powodują kolizje – zdarzą się sytuacje gdy na przykład host A zacznie transmitować dane, a z perspektywy hosta B na kablu nadal będzie cisza i też wyśle on swoje dane. Doprowadzi to do kolizji, a CSMA/CD jako mechanizm zadba o to by hosty wykryły kolizję oraz przeprowadziły retransmisję ramek ponownie.

A zatem domena kolizyjna to zbiór NICów, dla którego ramka wysłana przez jeden NIC może ulec kolizji z ramką wysłaną przez inny NIC w tej samej domenie kolizyjnej.

Warto już w tej chwili zwrócić uwagę na dwie cechy wynikające z jej charakterystyki:

  1. Wszystkie urządzenia będące w domenie kolizyjnej współdzielą dostępną przepustowość.

2. Urządzenia mogą tą przepustowość wykorzystywać nieefektywnie z powodu właśnie kolizji – czym będzie ich więcej, tym więcej będziemy musieli przeprowadzać retransmisji.

Jeśli masz problem zrozumieć to zagadnienie, to spróbuj wyobrazić sobie długi i wąski korytarz od którego odbiegają małe pokoiki. Pomieszczenia są w tej analogii naszymi hostami, a drzwi łączące pokoiki z korytarzem są NICami. Pokoik A chce do pokoiku C wysłać dane, które w tej analogii zwizualizujemy sobie jako po prostu idącego człowieka.

Z pomieszczenia A wychodzi zatem nasza ramka i idzie tym wąskim korytarzem. Jeżeli host D nie zorientuje się w porę, że korytarz jest zajęty to nada on swoje dane. W pewnym momencie dane z pokoju A wejdą w kolizję z danymi z pokoju D – wszakże korytarz był zbyt wąski, aby obie osoby były w stanie nim przejść.

A może hub?

Sieci oparte o topologię szyny słabo się skalowały więc w pewnym momencie wymyślono huby. Hub to nic innego jak nasza długa topologia szyny „zwinięta” w pojedyncze pudełko z wieloma portami. Do każdego portu możemy przyłączyć pojedynczego hosta bądź inne urządzenie sieciowe.

Mamy do czynienia nadal z komunikacją half-duplex, więc musimy kontynuować stosowanie CSMA/CD. No i hub w gruncie rzeczy jest zwykłym urządzeniem działającym w warstwie pierwszej modelu OSI – w tym sensie, że to co otrzyma na jednym ze swoich portów – po prostu powiela na wszystkich pozostałych portach.

Możemy zatem już teraz intuicyjnie stwierdzić, że cały hub stanowi domenę kolizyjną. Jeżeli do naszego huba będziemy mieli podłączone osiem hostów na połączeniach stu megabitowych – czyli Fast Ethernet, to przepustowość naszej sieci będzie wynosiła nadal tylko sto megabitów. Natura działania huba powoduje, że transmitować w danej chwili powinien tylko jeden host.

Nawiązując do wcześniejszej analogii możesz sobie wyobrazić hub jako ciasne skrzyżowanie wielu wąskich korytarzy, często wiodących do pojedynczych pokoików, czyli hostów. Ma tutaj zastosowanie ta sama logika co we wcześniejszym przykładzie. Dane, czyli osoby, mogą ze sobą nadal kolidować w korytarzach. Mogą też jednak kolidować w naszym ciasnym skrzyżowaniu, czyli w hubie. Dlatego też wszystkie porty na hubie należą do tej samej domeny kolizyjnej.

Czas na switche

Czas na nasze ukochane przełączniki, czy też jak kto woli switche. Z premedytacją pomijam tutaj bridge, które były krokiem pośrednim w ewolucji z huba do switcha. Dla uproszczenia możemy jednak już teraz przyjąć, że bridge to prosty dwuportowy switch. Zatem wszystko co powiem o switchach możemy też ekstrapolować na bridge.

Rozważmy najpierw sytuację, w której zastępujemy naszego huba switchem, ale wszystkie połączenia do hostów nadal są w half-duplex. Przełączniki wprowadzają do całego systemu trochę więcej, można by powiedzieć, świadomości sytuacyjnej. Są to urządzenia działające w warstwie drugiej modelu ISO/OSI i mają możliwość zaglądania w zawartość ramek.

Dzięki temu w przeciwieństwie do hubów, switch jest w stanie operować w nieco mądrzejszy sposób. Uczy się on bowiem gdzie są zlokalizowane poszczególne hosty i pozwala mu to przekazywać później ramki typu unicast w kierunku właściwych odbiorców. Ramki nadal mogą kolidować na danym kablu – przypominam, że używamy w tym przykładzie half-duplex – ale nie mogą już kolidować na poziomie switcha, bo nie jest on zwykłym powielaczem sygnałów takim jak hub.

Kontynuując analogię nasze ciasne skrzyżowanie, czyli hub zastępujemy dużym pomieszczeniem – nazwijmy je audytorium, w którym kolizje już występować nie mogą. Na dodatek w audytorium operuje bardzo miły pan przewodnik Cam Table, który poszczególnym osobom pomaga wyjść odpowiednimi drzwiami na korytarz prowadzący do właściwego pokoiku.

To właśnie dlatego mówimy, że na switchu każdy port stanowi osobną domenę kolizyjną. W pewnym sensie switch stanowi barierę, czy też granicę dla kolizji.

Wróćmy do zagadnienia przepustowości. Powiedzieliśmy już sobie, że sieć oparta o hub z ośmioma hostami podłączonymi na stu megabitowych portach ma nadal przepustowość tylko stu megabitów. Switch nam tę sytuację znacznie usprawnia. Dzięki temu, że ramki nie mogą ze sobą kolidować na switchu przepustowość takiej sieci wzrasta do ośmiuset megabitów na sekundę. Każdy host może korzystać z pełnych stu megabitów przepustowości, które oferuje mu kabel do którego jest podłączony.

Pamiętasz jak powiedziałem, że porty na switchu w tym przykładzie są nadal tylko half-duplex? Powoduje to, że na każdym porcie nadal musi mieć zastosowanie mechanizm CSMA/CD. No i korytarzyk nadal jest wąski, więc w danej chwili dane mogą iść tylko w jednym kierunku – albo z pokoiku do audytorium, albo z audytorium do pokoiku. Połączenie jest stumegabitowe więc w trakcie jednej sekundy tym korytarzem może przejść maksimum sto osób. Musiałyby dość szybko biegać, co nie?

Czas włączyć na portach naszego switcha full-duplex. Full-duplex rozszerza nasz korytarz i wydziela w nim dwie ścieżki w obu kierunkach przepływu danych. Powoduje to zatem podwojenie dostępnej przepustowości na kablu ze stu megabitów do dwustu i efektywnie eliminuje nam kolizje całkowicie!

Wróćmy do naszego przykładu ze switchem i ośmioma hostami na stu megabitowych portach – tym razem full-duplex. Mamy finalnie do czynienia z siecią o przepustowości tysiąc sześćset megabitów na sekundę. Nieźle co?

A co z routerami?

I tym oto sposobem doszliśmy do routerów. Routery są urządzeniami działającymi w warstwie trzeciej modelu ISO/OSI, służą do łączenia ze sobą sieci i posiadają również pewną logikę, która decyduje o tym jakim portem przesłać dalej ruch. Możemy więc intuicyjnie stwierdzić, że router również stanowi barierę dla kolizji i każdy pojedynczy port na routerze stanowi osobną domenę kolizyjną.

Zakończmy temat domen kolizyjnych przykładem:

Widzimy tutaj prostą sieć, w której znajdują się cztery hosty oraz pięć urządzeń aktywnych – po dwa huby i switche oraz jeden router. W takim razie ile domen kolizyjnych znajduje się w powyższym przykładzie?

Pamiętaj, że switche i routery rozdzielają domeny kolizyjne i każdy ich port stanowi osobną domenę kolizyjną. Patrząc na przykład od lewej strony, pierwsza domena znajduje się na lewo od switcha. Druga znajduje się między switchem, a routerem. Trzecia domena to połączenie między routerem i switchem, a czwarta i piąta to połączenia między switchem, a hostami B i D.

Sądzę, że temat domeny kolizyjnej jest już dla Ciebie jasny, sprawdźmy więc czym jest domena rozgłoszeniowa.

Domena rozgłoszeniowa

Broadcast domain, czyli domena rozgłoszeniowa jest bardziej przejrzystym pojęciem, ale i tak najłatwiej będzie je zrozumieć na zasadzie analogii. Nietrudno sobie wyobrazić, że wspomniane wcześniej pokoiki, korytarze i audytorium znajdują się w jakimś budynku, który możemy postrzegać jako sieć.

Wiemy już, że routery łączą sieci. Naszym routerem w tym scenariuszu niech będzie plac na zewnątrz budynku. Plac, przy którym stoją inne budynki – czyli inne sieci. Drzwi do budynku stanowią interfejs routera do danej sieci. A gdzie w tej analogii domena rozgłoszeniowa?

Każdy budynek ma swój własny radiowęzeł. Jeżeli chcemy przesłać dane z pojedynczego pokoiku do wszystkich w budynku (czy też w sieci) to możemy chwycić słuchawkę intercomu i nadać komunikat. Router w postaci naszego placu na zewnątrz stanowi zatem barierę dla tego typu broadcastów – rozgłoszenie nadane w jednym budynku, nie jest słyszane w innym.

Tym samym huby, bridge oraz switche tego typu rozgłoszenia przekazują. Z technicznego punktu widzenia ma to sens. Jeżeli dany host wysyła ramkę rozgłoszeniową to hub po prostu powieli ją na wszystkich portach. Zasada działania switcha również spowoduje wysłanie takiego broadcastu na wszystkich portach poza tym na, którym on wszedł do switcha. To dopiero router będzie stanowić barierę dla takiego rozgłoszenia – wszakże rozgłoszenia są dedykowane dla wszystkich hostów w danej sieci, a routery łączą ze sobą sieci, więc nie powinny broadcastów przekazywać.

Sformułujmy zatem definicję domeny rozgłoszeniowej.

Domena rozgłoszeniowa to zbiór NICów, dla których ramka rozgłoszeniowa wysłana przez jeden NIC jest otrzymywana przez wszystkie pozostałe NICi w tej samej domenie rozgłoszeniowej.

Żeby to lepiej zobrazować wróćmy do naszej poprzedniej topologii. Ponieważ routery stanowią barierę dla rozgłoszeń, będziemy mieć tutaj dwie domeny rozgłoszeniowe – pierwszą na wszystkich urządzeniach i hostach po lewej stronie, a drugą domenę po prawej stronie od routera.

Zagadnienia dodatkowe

Byś mógł w pełni zrozumieć tematykę domen kolizyjnych i rozgłoszeniowych nie mogę pominąć trzech dodatkowych, dość istotnych pytań:

  1. Dlaczego powinniśmy ograniczać rozmiar domen kolizyjnych?

Broadcast z definicji trafia do wszystkich hostów w sieci i każdy host musi poświęcić pewien czas i zasoby procesora na przetworzenie otrzymanych danych. Czym więcej broadcastów w sieci, tym więcej przerwań dla hostów i tym mniej efektywne ich działanie. Warto zatem dzielić sieci na mniejsze podsieci, tym samym zmniejszając rozmiar domeny rozgłoszeniowej. Ma to również zalety z punktu widzenia bezpieczeństwa i ułatwia troubleshooting problemów.

2. Jak się mają do tego wszystkiego VLANy?

Wcześniejsze przykłady opierały się na sytuacji, w której wszystkie porty na switchu należą do tego samego VLANu. Wobec tego domyślnie wszystkie porty na switchu należą do tej samej domeny rozgłoszeniowej – powiedzieliśmy sobie, że przełączniki nie stanowią bariery dla rozgłoszeń.

Jednakże stworzenie dodatkowych VLANów i przypisanie do nich portów zmienia to zachowanie. VLAN zaczyna stanowić barierę dla ramek rozgłoszeniowych, które nie mogą przepływać swobodnie między VLANami. W zrozumieniu tej koncepcji może pomóc następująca definicja: LAN to sieć składająca się ze wszystkich urządzeń w tej samej domenie rozgłoszeniowej.

Virtual LAN, czyli VLAN, jest niczym innym jak wydzieleniem osobnej sieci, a co za tym idzie osobnej domeny rozgłoszeniowej.

3. Jak się mają do tego wszystkiego przełączniki warstwy trzeciej?

Przełączniki warstwy trzeciej łączą w sobie wszystkie wymienione wcześniej koncepcje. Jako urządzenia spełniają one dwie funkcje. Po pierwsze funkcję switcha operującego w warstwie drugiej, gdzie możemy porty przypisywać do różnych VLANów. Po drugie pełnią one funkcje routerów operujących w warstwie trzeciej, gdzie niektóre interfejsy możemy skonfigurować jako routowalne z przypisanym adresem IP.

Z perspektywy domeny kolizyjnej każdy port switcha warstwy trzeciej jest w osobnej domenie kolizyjnej. Jeżeli chodzi o domeny rozgłoszeniowe to każdy port routowalny i operujący w warstwie trzeciej jest osobną domeną rozgłoszeniową. Również wszystkie porty operujące w warstwie drugiej i przypisane do tego samego VLANu stanowią osobną domeną rozgłoszeniową.

Podsumowanie

Pamiętaj, że switche rozdzielają domeny kolizyjne i każdy port na switchu stanowi osobną domenę kolizyjną. Przełączniki nie stanowią jednak bariery dla broadcastów i swobodnie je przekazują dalej.

Z kolei routery stanowią barierę zarówno dla kolizji jak i dla rozgłoszeń, rozdzielając tym samym obie te domeny.

Na koniec mam dla Ciebie tabelę z podsumowaniem charakterystyk poszczególnych urządzeń sieciowych w odniesieniu do domeny kolizyjnej i rozgłoszeniowej:

Komentarze: 11
Otrzymuj powiadomienia z tej dyskusji
Powiadom mnie o
guest

11 - Ilość komentarzy
Sortuj wg najlepszych
Sortuj wg najnowszych Sortuj wg najstarszych
Inline Feedbacks
View all comments
Filip
Filip
1 rok temu

Super opracowany materiał 😉

Wacek
Wacek
11 miesięcy temu

super!!!!

Tomasz Osko
Tomasz Osko
2 miesięcy temu

Najlepszy materiał jaki czytałem, idealnie początkującym daje możliwość zgłębienia i zrozumienia zasad, SUPER, oby więcej takich opracowań.

KutaDzwon2005
KutaDzwon2005
5 miesięcy temu

Super artykuł

Spocony Johny
Spocony Johny
4 miesięcy temu

+1

adam
adam
19 dni temu

nie znalazłem tego czego chciałem

adam
adam
19 dni temu
Odpowiedź do  Damian

Nie znalazłem zdjęcia z przykładem zastosowania domeny rozgłoszeniowej oraz jego wyjaśnienia, lecz twój artykuł jest dobry i mogę go polecić innym.

Adam
Adam
19 dni temu
Odpowiedź do  Damian

dziękuje za wyjaśnienie, miłego dnia!