[ Pobierz całość w formacie PDF ]
danych używana jest tzw. tabela (lub tablica) routingu, która zawiera informacje o sąsiadujących
routerach, sieciach lokalnych oraz ich stanie. Na podstawie tych danych wyszukiwana jest optymalna
droga dla danego pakietu. Tablica routingu może być statyczna aktualizowana ręcznie przez
administratora sieci, lub dynamiczna aktualizowana automatycznie przez oprogramowanie sieciowe.
Zaletą drugiego rozwiązania jest to, że w razie dużego ruchu oprogramowanie może zmienić tablice
routingu tak, aby pakiety omijały powstały zator.
Routery mogą być także wykorzystywane jako zapora ogniowa , zabezpieczając sieć przed
nieautoryzowanym dostępem. Przy odpowiedniej konfiguracji wszyscy użytkownicy sieci lokalnej
korzystają z Internetu, natomiast pozostali użytkownicy Internetu maja ograniczony dostęp do sieci
lokalnej.
Ponadto ruter można wykorzystać jako urządzenie tłumaczące adresy sieciowe (Network Address
Translation - NAT), którego funkcje zostały częściowo zaimplementowane np. w systemie operacyjnym
Linux jako IP-masquerading (maskarada, maskowanie adresów IP). Działanie NAT polega na
umożliwieniu przedostawania się pakietów z sieci lokalnej o adresach z zakresu nierutowalnego (lub
innych) do Internetu. Każdy z pakietów z sieci lokalnej ma zamieniany adres zródłowy na adres rutera
wykonującego funkcję NAT. W ten sposób komputery w sieci lokalnej są niewidoczne z Internetu. Można
powiedzieć, że cała sieć jest reprezentowana przez ruter.
Warstwa transportowa
W warstwie transportowej znajdują się dwa protokoły zapewniające transport danych pomiędzy
protokołem IP a aplikacjami. Ponieważ dane wędrują przez sieć w datagramach IP, a aplikacje
najczęściej wykorzystują inny format i rozmiar informacji, to protokoły warstwy transportowej muszą
zapewniać dostarczenie danych w pożądanej kolejności i umieć poskładać je w odpowiednie struktury.
Ponadto protokół IP zapewnia jedynie dostarczenie danych do komputera, a przecież na każdym
komputerze może pracować wiele procesów (programów) i usług sieciowych korzystających
jednocześnie z transmisji IP.
Porty, gniazda
Zadaniem protokołów warstwy transportowej jest rozdzielenie nadchodzących informacji z warstwy
Internetu i dostarczenie ich do odpowiednich procesów pracujących w warstwie aplikacji. Identyfikacja
przynależności danej transmisji do konkretnego procesu odbywa się na podstawie numeru portu. Numer
portu jest liczbą 16 bitową związaną z procesem komunikującym się w sieci. Proces chcąc transmitować
lub odbierać dane poprzez IP rezerwuje sobie taką liczbę i w ten sposób uzyskuje dostęp do sieci.
Każda transmisja w sieci Internet jest identyfikowana za pomocą kilku liczb. Po pierwsze jest to adres IP
komputera wysyłającego dane, czyli np.: 212.51.219.50 oraz numer portu na tym komputerze, z którego
nadaje proces transmitujący. Może to być np.: 23. W tym momencie mamy już liczby identyfikujące
transmisję z jednej strony: 212.51.219.3.23. Połączenie numeru IP komputera i portu na którym odbywa
się komunikacja nazywamy gniazdem (socket). Podobnie komputer odbierający dane ma swój numer IP:
32
Sieci komputerowe
Karol Krysiak
212.51.219.4 oraz port, na którym proces z nim skojarzony odbiera dane np.: 60000. I w tym momencie
mamy już dwa gniazda jednoznacznie definiujące w danej chwili tę transmisję w całym Internecie,
można to zapisać w ten sposób:
212.51.219.50.23 : 212.51.219.4.6000
Istnieje kilka zasad przyznawania numerów portów w systemach sieciowych. Jak już napisałem, numer
portu jest liczbą 16 bitową, czyli może przyjmować wartości od 0 do 65535. Jednak zakres od 0 do 1024
jest zarezerwowany dla tzw. dobrze znanych portów (dobrze znanych usług). W tym zakresie rezydują
takie usługi warstwy aplikacji jak: WWW, FTP, telnet i inne. Lista dobrze znanych portów znajduje się w
systemach Unixowych w pliku /etc/services. Wygląda ona mniej więcej tak jak poniższa pozostawiłem
najważniejsze usługi.
ftp-data 20/tcp # File Transfer [Default Data]
ftp-data 20/udp # File Transfer [Default Data]
ftp 21/tcp # File Transfer [Control]
ftp 21/udp # File Transfer [Control]
ssh 22/tcp # Secure Shell Login
[ Pobierz całość w formacie PDF ]