3
Opublikowano 13 marca 2012 w Portal komputerowy » Oprogramowanie » Internet » Jak działa sieć Internet
 
 

Jak działa sieć Internet

Internet
Internet

Działanie sieci Internet

  1. Wstęp
  2. Model OSI
  3. TCP/IP a warstwy OSI
  4. Adresy IP
  5. Protokół ARP i RARP
  6. Protokół IP
  7. Protokół ICMP
  8. Porty Protokołów
  9. Protokół UDP
  10.  Protokół TCP
  11.  Protokół SMTP
  12.  Protokół HTTP
  13.  Protokół FTP
  14.  Protokół NNTP
  15.  Protokół DNS
  16.  Protokół IPX
  17.  Pojecia dodatkowe

1. Wstęp

Chciałbym poruszyć zagadnienie działania sieci Internet. Jako, że nie spotkałem się jeszcze z pełnym opisem działania Internetu, postaram się napisać tutaj o wielu istotnych rzeczach. Oczywiście nie dam rady poruszyć wszystkiego, gdyż wątpie aby było to możliwe, ale postaram się opisać rzetelnie podstawy działania sieci Internet. So, let`s start the party !

2. Model OSI

Internet pierwotnie miał za zadanie zapewnić komunikację między bazami wojskowymi, gdzie taka szybka wymiana informacji miała kluczowe znaczenie. Niedługo później Internet stał się ogólnodostępnym medium, najpierw wykorzystanym przez naukowców, później firmy, by trafić do naszych domów. Jak to się stało, że komunikacja internetowa przetrwała tyle lat i jest tak łatwa w obsłudze? Odpowiedź tkwi w modelu ISO/OSI, specyfikacji modelu Internetu składającego się na warstwy.
Model OSI to siedem współgrających ze sobą warstw, niezbędnych do prawidłowej komunikacji w sieci Internet. To w nich zawarte są wszystkie protokoły, dane itp. W ich skład wchodzą:

  • warstwa aplikacji
  • prezentacji
  • sesji
  • transportu
  • sieci
  • łączenia danych
  • fizyczna

Najniższą warstwę sieci stanowi warstwa fizyczna, składająca się z urządzeń do obsługi sieci i okablowania. Odpowiada ona za transmisje danych i przyjmowanie ramek z warstwy drugiej. Warstwa łącza danych jest określa sposób wymiany informacji. Dane zostają umieszczone w ramkach/datagramach zawierających takie informacje jak: adres odbiorcy i nadawcy, MTU (maksymalna porcja danych w jednym pakiecie), bądź MAC.
Trzecia warstwa, czyli sieci odpowiada za transmisje pomiędzy sieciami i może także routować pakiety. O drodze pakietów informuje nas IP (Internet Protocol), a za tłumaczenie adresów łącza danych i sieci odpowiada ARP. Kolejna warstwa to warstwa transportu obsługująca błędy transmisji w wypadku połączeń typu TCP (dobrze znany nam protokół internetowy wymagany abyśmy „szczęśliwie” mogli przeglądać strony internetowe), oraz nie obsługująca błędów, tzw. bezpołączeniowa UDP (wykorzystywana przez aplikacje Skype, radio internetowe). Zadaniem warstwy sesji jest opisanie formatu danych. Warstwa prezentacji zarządzą sposobami kodowania danych, tak aby była czytelna ona dla danej sieci. Ostatnia warstwa: Aplikacji gwarantuje interfejs dla użytkownika i służy do inicjacji sesji komunikacyjnej. Jest niczym innym jak efektem wynikowym widzianym w naszym okienku przeglądarki czy też programie pocztowym.

3. TCP/IP a warstwy OSI

Protokół TCP/IP ma także strukturę warstwową. Warstwy TCP/IP są okrojoną wersją modelu OSI. Protokół TCP/IP ustala zasady komunikacji pomiedzy komputerami. W nich zawarte jest jak komputer ma się zachować na dane przychodzące z sieci. Przyjrzyjmy się warstwom TCP/IP i OSI:

Warstwy OSI Warstwy TCP/IP

  •  aplikacji – programy użytkowe
  •  prezentacji – programy użytkowe
  •  sesji – programy użytkowe
  •  transportowa – transport
  •  sieciowa – sieć
  •  łącza danych – sprzęt i interfejs sieciowy
  •  fizyczna – sprzęt

Na trzy górne warstwy OSI odpowiada tylko jedna warstwa TCP/IP. Reszta pozostaje w niezmienionej formie. Zadaniem warstwy aplikacji jest współpraca z jednym z protokołów na poziomie warstwy transportowej oraz wysyłanie i odbieranie pojedynczych komunikatów. Warstwa transportu odpowiada za komunikacje miedzy programami użytkownika, regulowania przepływu informacji oraz zapewnia pewność przesyłania. Warstwa sieci odpowiada za komunikacje jednej maszyny z drugą. Warstwa interfejsu sieciowego odbiera datagramy IP i przesyła je przez sieć.

4. Adresy IP

Teraz warto poznać strukturę adresów IP. Adres IP jest 32 bitowa liczba całkowita, jednoznacznie identyfikująca komputer w sieci (pomijam tu zagadnienie adresów wirtualnych, dynamicznych IP oraz IP-spoofingu). Zapisywany jest on w postaci czterech trzy-cyfrowych liczb dziesiętnych oddzielonych kropką. W sieci IP v.4 występuje zjawisko adresacji według klas, gdzie takich klas jest pięć (A – E). Aby zidentyfikować, do jakiej klasy należy dany komputer spoglądamy na najstarsze bity danego adresu (chodzi o system binarny rzecz jasna). Wyróżniamy klasy:
klasa najstarszy bit siec komputer
A 0 7 24
B 10 14 16
C 110 21 8
D 1110 adres grupowy, przeznaczony dla wielu odbiorców (multicast).
E 11110 zarezerwowane, np. 255.255.255.255 to adres rozgłoszeniowy (broadcast).

Klasy użytkowe to A, B i C.
Wyrażając to liczbami dziesiętnymi:
Klasa A to adresy od 0.1.0.0 do 126.0.0.0
Klasa B to adresy od 128.0.0.0 do 191.255.0.0
Klasa C to adresy od 192.0.1.0 do 223.255.255.0
Klasa D to adresy od 224.0.0.0 do 239.255.255.255
Klasa E to adresy od 240.0.0.0 do 247.255.255.255

Zapewne zauważyłeś pewna nieścisłość pomiędzy adresami klasy A i B. Do jakiej klasy zaliczamy adresy 127.0.0.0 do 127.255.255.255. Te adresy to są adresy lokalne i nie ma takich w Internecie, znaleźć je można w sieciach Intranet.

5. Protokół ARP i RARP

Oba protokoły służą do przetwarzania adresów IP na adresy fizyczne. Protokół ARP jest protokołem odwzorowywania adresów. Każde urządzenie w sieci posiada także swój 48 bitowy adres fizyczny MAC. Aby urządzenia mogły ze sobą komunikować się muszą znać nie tylko IP, ale także MAC i te informacje dostarcza im protokół ARP (Address Resolution Protocol). Porotokół RARP (Reverse Address Resolution Protocol) umożliwia uzyskanie adresu IP na podstawie znajomości własnego adresu fizycznego.

6. Protokół IP

Sieć TCP/IP udostępnia trzy zbiory usług:
* usługi programów użytkowych
* usługi niezawodnego przesyłania
* usługi bezpołączeniowego przesyłania pakietów

Podstawowa usługa – przenoszenie pakietów bez użycia połączenia w IP (Internet Protocol) to UDP. Jest to zawodny system przenoszenia pakietów bez użycia połączenia, ponieważ nie ma gwarancji, ze przenoszenie się uda. Pakiety mogą podróżować różnymi drogami i może się zdarzyć taka sytuacja, że dwukrotnie wrócą do odbiorcy, zaginą, lub dotrą w innej kolejności. Podstawowa jednostka przesyłania danych to datagram. Jest on podzielony na dwie części: nagłówek i dane. W części pierwszej jest adres IP nadawcy, odbiorcy i pole, określające zawartość datagramu. Format datagramu jest mniej więcej taki:

  •  4 bity określające wersje Protokółu IP
  •  4 bity określające długość nagłówka (mierzona w 32 bitowych słowach)
  •  8 bitowe pole typ obsługi
  •  16 bitów określających długość całkowitą
  •  pole identyfikacja (ID pakietu)
  •  4 bitowe znaczniki
  •  przesuniecie fragmentu – numer fragmentu nadany w procesie fragmentacji
  •  czas życia
  •  protokół
  •  suma kontrolna
  •  32 bitowy adres nadawcy
  •  32 bitowy adres odbiorcy
  •  opcje IP
  •  uzupełnienie
  •  dane

7. Protokół ICMP

Protokół ICMP (Internet Control Message Protocol) służy do oznajmiania komputerom błędów podczas przekazywania datagramów. Pierwotnie wykorzystywały go jedynie routery ale obecnie każdy komputer ma możliwość wysyłania i odbierania pakietów ICMP. Gdy datagram powoduje błąd (z różnych przyczyn) ICMP powiadamia pierwotnego nadawcę, ze wystąpiły problemy z danym datagramem i należy coś przedsięwziąć w danej sprawie. Protokół ICMP jest traktowany jako wymagana część IP i musi być realizowany przez każda implementacje IP. Komunikat ICMP składa się z minimum trzech pól:

  •  8 bitowe pole TYP
  •  8 bitowe pole KOD
  •  SUMA KONTROLNA

Oprócz tych trzech pól, w przypadku wysyłania komunikatu o błędzie, dany pakiet ICMP zawiera nagłówek i pierwsze 64 bity danych datagramu, z którym były problemy. Datagramy ICMP wymagają dwóch poziomów kapsułkowania (o tym powiem na końcu artykułu). Cały datagram ICMP (nagłówek + dane) mieści się w części na dane datagramu IP. Datagram IP (nagłówek + dane (dane = nagłówek ICMP + dane ICMP)) musza zmieścić się w części z danymi RAMKI. Wygląda to następująco:
RAMKA (nagłówek_RAMKI + dane_RAMKI (dane_RAMKI = nagłówek_IP + dane_IP (dane_IP = nagłówek_ICMP + dane_ICMP))). Proste, nie ? 🙂

8. Porty protokołów

Co to są port protokołu? Wyobraźmy sobie taką sytuacje, gdy maszyna A wysyła komunikat do maszyny B, na której uruchomionych jest kilka programów, korzystających z połączenia internetowego… Skąd system operacyjny ma wiedzieć do którego programu przeznaczona jest dana wiadomość, skoro w datagramie jest tylko adres odbiorcy? Rozwiązano to poprzez wprowadzenie portów protokołów. Każdy proces tworzy sobie odpowiedni port określony przez dodatnią liczbę całkowitą i komunikuje się właśnie przez niego. Dlatego też nadawca musi oprócz adresu IP znać tez numer portu odbiorcy oraz umieścić port nadawcy, aby proces odbiorcy miał możliwość odpowiedzi na dany komunikat.

9. Protokół UDP

Kolejnym protokołem TCP/IP jest protokół datagramów użytkownika UDP (User Datagram Protocol). W tym protokole, każdy datagram zawiera jeszcze numer portu nadawcy i odbiorcy. Do przesyłania czegokolwiek do komunikacji UDP używa IP bez kontroli pakietów. Datagram UDP składa się z:

  •  16 bitowy port nadawcy
  •  16 bitowy port odbiorcy
  •  pole długości
  •  pole suma kontrolna (opcjonalne)
  •  dane

W tym protokole także występuje kapsułkowanie.

10. Protokół TCP

Doszliśmy w końcu do protokołu TCP (Transmission Control Protocol), który jest niezawodną usługą dostarczania pakietów. Protokół TCP jest drugą najważniejszą usługą sieci, a wraz z protokołem IP dał nazwę całej rodzinie protokołów TCP/IP. TCP organizuje dwukierunkową współpracę pomiędzy warstwą IP, a warstwami wyższymi, zwracając uwagę na priorytety. To on obsługuje błędy, izoluje warstwy wyższe od awarii w warstwie Protokółu IP. TCP znajduje się powyżej warstwy IP, ale obecny jest tylko tam, gdzie aplikacje przetwarzają datagramy (dlatego tej warstwy nie posiadają routery). TCP można sobie wyobrazić jako sposób komunikacji między dwoma komputerami tzw. gniazdkami (socketami). Nawiązanie komunikacji w TCP przebiega trójstopniowo:

komputer I komputer II

SYNC —————>
<————– SYNC/ACK
ACK —————->

W pierwszej kolejności komputer I wysyła pakiet SYNC (synchronizacja), komputer II otrzymuje go i wysyła SYNC/ACK (synchronizacja + potwierdzenie), komputer I otrzymuje go i wysyła ACK.
Jak spełnić warunek niezawodnego przesyłania danych? Po otrzymaniu każdego pakietu odbiorca wysyła ACK z potwierdzeniem odebrania pakietu.

komputer I komputer II
wysyłanie pakietu I —————–> odebranie pakietu I
odebranie ACK <—————- wysyłanie ACK
wysyłanie pakietu II —————–> odebranie pakietu II odebranie ACK <—————- wysyłanie ACK

Natomiast co się dzieje, jeżeli pakiet nie dojdzie ?

komputer I komputer II
wysłanie pakietu I —-utrata pakietu -> spodziewane przybycie (uruchomienie zegara) pakietu I
powinna dojść flaga ACK
powinno przyjść ACK
przekroczenie limitu czasowego
Retransmisja pakietu I ——————> odebranie pakietu I
odebranie ACK <—————— wysłanie ACK

Oprócz SYNC i ACK istnieje jeszcze inne rodzaje flag, które mogą zostać wysłane. Są to m.in.
FIN – zakończenie wysyłania danych
RST – zerwanie połączenia
URG – wysyłanie pakietu OOB (Out Of Bound)
PSH – oznacza dane, które powinny być możliwie szybko przetransportowane

11. Protokół SMTP

Protokół SMTP (Simple Mail Transfer Protocol) jest wykorzystywane w komunikacji serwera pocztowego z komputerem klienckim. Zasada działania polega na rozpoczęciu zwykłej komunikacji typu klient ? serwer tylko odpowiednim portem i wysyłana jest komenda MAIL. Jeżeli wszystko jest Ok, serwer wysyła potwierdzenie i jest rozpoczynana transmisja danych list: nagłówka, treści itp.

12. Protokół HTTP

Protokół HTTP (Hyper-Text Transfer Protocol) podstawowy protokół transmisji stron WWW. Gdy wpiszemy dowolny adres w przeglądarce, zostanie on z pomocą protokołu DNS przemianowany na adres konkretnego serwera w sieci. HTTP także obsługuje błędy (nie korzysta przy tym z ICMP, chyba, ze będzie chodziło o pojedyncze datagramy z danymi)). Np.: sławny błąd 404 to nic innego jak komunikat HTTP o błędzie klienta.

13. Protokół FTP

FTP (File Transfer Protocol) służy do transmisji plików pomiędzy dwoma maszynami w sieci. Działa na zasadzie klient-serwer. Klient za pomocą programu FTP otwiera sesje łącząc się z portem 21 serwera, gdzie czeka na niego deamon FTP. Rozpoczyna się dwukierunkowa komunikacja. Transfer plików zazwyczaj odbywa się w trybie ASCII.

14. Protokół NNTP

Protokół ten służy do odbierania oraz wysyłania newsów do centralnej bazy danych. Wszystko odbywa się w transmisji strumieniowej, przez co Protokół ten posiada cechy TCP, a możliwość wydawania bezpośrednich poleceń w trybie tekstowym łączy go z SMTP.

15. Protokół DNS

Protokół ten służy do rozszyfrowywania nazw domen, oraz uzyskiwania ich adresów IP. Weźmy taki przykład:
Ktoś z komputera fidel.return.org.pl chce dowiedzieć się adres IP domeny www.asmie.net.pl. Aby odszukać informacje trzeba skorzystać z serwera DNS o nazwie dns.return.org.pl. Przykładowo:
fidel.return.org.pl dns.return.org
193.129.100.3:2130 —-> zapytanie —-> 193.129.100.6:53

Serwer DNS znajduje się zazwyczaj na porcie 53. Teraz zadanie przejął serwer DNS. Rozpoczyna on szukanie od zadania tego pytania najbliższemu serwerowi DNS jaki znajdzie. Jeżeli ten nie zna tego adresu, przechodzi do serwera znajdującego się w hierarchii najwyżej, czyli serwera z autoryzacja w domenie .pl. Ten serwer, niestety nie może nam udzielić tej odpowiedzi ale przekazuje zlecenie do serwera .net.pl, który nie mogąc także udzielić odpowiedzi przesyła je jeszcze dalej do domeny asmie.net.pl. Tutaj, dns.return.org.pl otrzymuje adres www.asmie.net.pl. Napisałem, to trochę zagmatwanie, ale mam nadzieję, ze zrozumiesz 🙂 Jakby coś to mail-me. Pora poznać jak wygląda pakiet DNS:

  •  ID
  •  flagi
  •  ilość pytań
  •  ilość odpowiedzi
  •  numer certyfikujący RR
  •  numer uzupełniający RR
  •  pytanie
  •  odpowiedź

Numer ID pozwala zidentyfikować pakiet. Ponieważ, ilość zleceń na serwerach DNS jest bardzo duża, należy mieć możliwość rozpoznania odpowiednich pakietów. Ilość pytań, odpowiedzi, flagi itp. są nadawane przez serwer.

16. Protokół IPX

Protokół IPX został adaptowany przez firmę Novell z Protokółu Xerox Network System`s Internet Datagram Protocol. IPX jest protokołem bezpołączeniowym, w którym tak jak w IP nie ma gwarancji, ze pakiet dotrze do celu (tzn. nie ma wysyłanych pakietów ACK). IPX wykonuje zadania tylko warstwy sieciowej modelu OSI (adresowanie, routing itd.). Tak jak w przypadku innych protokołów sieciowych pakiet IPX składa się z nagłówka i części z danymi. Pakiet ten składa się z dwóch części 30-bajtowego nagłówka i części danych o długości od 0 do 546 bajtów. Minimalna długość pakietu to 30 bajtów, a maksymalna 576 bajtów. Pakiet składa się z:

  •  suma kontrolna
  •  długość
  •  kontrola transportu
  •  typ pakietu
  •  siec docelowa
  •  węzeł docelowy
  •  końcówka docelowa
  •  siec źródłowa
  •  węzeł źródłowy
  •  końcówka źródłowa
  •  część danych

Suma kontrolna zawsze wynosi FFFFh. Wypełnianie tego pola jest zbędne. Długość, jest to długość całego pakietu, czyli nagłówek + dane. Kolejne pole używane jest tylko przez mostki międzysieciowe. Zazwyczaj jest równe 0. Typ pakietu może zawierać:
0 – nieznany typ pakietu
1 – Routing Information Packet
2 – Echo Packet
3 – Error Packet
4 – Packet Exchange Packet
5 – Sequenced Packet Protocol Packet (SPX)
16 – 31 – Protokoły eksperymentalne
17 – NetWare Core Protocol
Siec docelowa zawiera numer podsieci zawierającej węzeł docelowy. W takich sieciach numer jest reprezentowany przez 4 bajty. Pole węzła docelowego zawiera adres fizyczny węzła. Komunikacja w tej sieci zachodzi poprzez system końcówek, które łącząc się ze sobą umożliwiają komunikacje.

17. Pojęcia dodatkowe

Jak obiecałem, napisze tutaj o kapsułkowaniu i fragmentacji pakietów. Kapsułkowanie to nic innego jak zamknięcie jednego datagramu z danymi innego datagramu. Na przykład podczas transportu danych w protokole IP zachodzi potrzeba zakapsułkowania datagramu IP w części z danymi ramki. Tak samo dzieje się przy przesyłaniu komunikatów ICMP. Datagram ICMP zawiera się w części z danymi datagramu IP, a ten z kolei połączony jest z danymi ramki.
Dobrze by było, gdyby jeden datagram mieścił się w jednej ramce fizycznej. Nie zawsze jest to jednak możliwe, gdyż każda sieć posiada dodatkowy parametr jakim jest MTU. Ustala on ilość danych jakie mogą zostać przesłane w jednej ramce. Dlatego też, po drodze ulegają one fragmentacji. Po dotarciu do celu są one defragmentowane. Np. Z sieci A pakiety są przekazywana w formie 1500bitowej, gdy sieć B ma tylko 250bitową przepustowość. Co wtedy się dzieje? Pakiet 800 bajtów, zostaje „rozdzielony” na pakiety po: 250 bajtów i w takiej kolejności dochodzą do stacji B. Każdy z tych rozdzielonych pakietów dostaje własny nagłówek, zawierający offset przesunięcia, czyli miejsce identyfikujące go wśród innych pakietów. Na podstawie offsetu przesunięcia, pakiety są składane i odczytywane.
Informacje dodatkowe:

Spolszczył i rozszerzył opis Makensis

Spis treści: Jak działa sieć Internet

Słowa kluczowe: działanie internetu, zasada działania internetu, zasada działania sieci internet, działanie sieci internet, internet zasada działania

Click to rate this post!
[Total: 4 Average: 3]

makensis
 
Od 2006 roku Redaktor Naczelny oraz Administrator Tweaks.pl Autor dwóch książek o systemach operacyjnych, szeregu publikacji i porad odnośnie użytkowania komputera. Absolwent Wydziału Elektroniki. Z zamiłowania informatyk, pozycjoner i podróżnik.