Bądź: Wyszukaj na stronie z użyciem Google
reklama:

wtorek, 24 lipca 2012

Podstawy funkcjonowania sieci - Model OSI, warstwy i sniffing (cz. 1)

Autor: , 13:22, wtorek, 24 lipca 2012


Kabel Ethernet. Fot.  David Davies
W związku z tym, że moja firma już od jakiegoś czasu zajmuje się projektowaniem i budową różnego rodzaju sieci, prześledzimy na blogu najczęstsze problemy pojawiające się przy tego typu zadaniach.

Swoją drogą, dla osób zainteresowanych tego typu usługami w Łodzi i okolicach, wkrótce na blogu powstanie nowa zakładka ze szczegółowymi informacjami, a na razie można pisać na e-mail :)

Wszyscy używamy sieci

Jeśli czytacie tę stronę, to na pewno korzystacie z sieci. Prawdopodobnie nie jednej, ale całego zestawu drobniejszych sieci, stanowiących wspólnie internet. Każdy wie, jak obsługuje się serwisy internetowe, ale nie wszyscy wiedzą, jak to działa "od środka".

Dla mnie funkcjonowanie komputerów często było bardziej interesujące, niż ich finalne zastosowania. Spora grupa internautów skupia się natomiast na wykorzystywaniu osiągnięć sieci, bez głębszej refleksji nad tym, co tak naprawdę dzieje się, gdy sprawdzają pocztę czy przesyłają plik.

Co trzeba wiedzieć

Nie można rozmawiać z lekarzem, o tym co nas boli, nie znając nazw podstawowych narządów. Podobnie, aby zrozumieć funkcjonowanie sieci, najpierw musimy zagłębić się w najważniejsze pojęcia. Jak zawszę obiecuję, że ograniczymy się do rzeczy najważniejszych - przynajmniej na początku.

Model OSI

Jednym z kluczowych pojęć w przypadku sieci komputerowych jest Model OSI (ang. OSI Reference Model). W uproszczeniu zakłada on, że wszystkie informacje przesyłane są w sieciach na wielu warstwach (np. fizycznej, transportowej czy aplikacji).

Dzięki warstwom, różne grupy informatyków mogą się skupić na swoich kluczowych umiejętnościach. Podczas pisania oprogramowania czy przygotowywania stron internetowych, nie trzeba się na przykład zagłębiać zbyt mocno w strukturę działania fizycznej sieci, a jedynie operować na swojej warstwie.

Podstawowa komunikacja

fot. Wikipedia
Aby lepiej zrozumieć działanie warstw, załóżmy że dwie aplikacje na różnych urządzeniach chcą się ze sobą porozumieć.

Aplikacje to najwyższa warstwa, natomiast faktyczna komunikacja odbywa się zawsze w warstwie fizycznej, gdzie impulsy elektroniczne przesyłane są do drugiego urządzenia.

W praktyce więc informacje z programu muszą zostać przekazane do niższych warstw, a za każdym razem gdy trafiają na niższą warstwę, zyskują dodatkowy nagłówek (najpierw nagłówek segmentu, później sieciowy czy ramki). Podstawowe dane są więc obudowywane w dodatkowe informacje, jak te o adresacie, nadawcy czy sumie kontrolnej CRC.

Gdy dane trafią do najniższej warstwy (fizycznej), są przesyłane do drugiego urządzenia w tak zwanych ramkach. Chodzi tutaj o to, że informacje nie są przekazywane w sposób jednostajny, a w cyklicznych niewielkich zestawach pakietów, z których każdy zbiór posiada wspomniane wcześniej dane na swój temat i przede wszystkim tego, gdzie ma trafić.

Jak łatwo się domyślić, po odebraniu pakietów przez drugie urządzenie, następuje weryfikacja informacji z danej ramki i jeśli jest ona przeznaczona dla danego adresu, zostaje przeniesiona do wyższych warstw, aż trafi do aplikacji.

Co z błędnymi ramkami?

Przy okazji mała ciekawostka. Gdy już wiemy, jak w uproszczeniu wędrują pakiety danych, można zadać sobie pytanie: co jeśli do naszej karty sieciowej dotrze pakiet, który adresowany jest do innego urządzenia?

Choć domyślnie dane tego typu są odrzucane, bardziej zaawansowani użytkownicy docenią z pewnością tryb nasłuchiwania (ang. promiscuous mode), który w pewnych sytuacjach pozwala na podsłuchiwanie tego, co dzieje się w lokalnej sieci. Niestety zwykle zwiększa on znacznie użycie procesora, dlatego jego ciągłe wykorzystywanie jest niepraktyczne (chyba, że sniffujemy cenne dane;)).

Podsumowanie

Trochę teorii związanej z przesyłaniem pakietów w sieci było niezbędne, ale w następnej części będziemy już mogli przejść do ciekawszych zagadnień. Przyjrzymy się m.in. najważniejszym urządzeniom umożliwiającym przesyłanie danych.
blog comments powered by Disqus

Prześlij komentarz


Popularne posty

Etykiety