co sie dzieje po wpisaniu adresu

background image

Zapraszam na drugą część cyklu o podstawach komunikacji w sieci. Dziś tematyka może

trochę bardziej zaawansowana, ale na pewno nie mniej ciekawa.

Po wcześniejszym wstępie, dziś opiszemy jak wygląda komunikacja między komputerami
w Internecie.

Diagram przedstawia warstwy modelu OSI / ISO. Dane przygotowane na jednym

komputerze muszą przedostać się przez kilka warstw sieci, aby drugi komputer mógł je z
powodzeniem odczytać i wykorzystać. Każda warstwa jest odpowiedzialna za

specyficzne działania, w ramach których często wykorzystywane są odpowiednie
protokoły sieciowe. Model OSI / ISO został na potrzeby komunikacji w Internecie

uproszczony i jest często przedstawiany w postaci modelu TCP/IP, który wygląda tak:

Warstwa aplikacji z pewnością najbardziej zainteresuje przeciętnego użytkownika, bo
to tutaj działają wszelkie programy. Jeżeli więc korzystasz z przeglądarki internetowej,

poczty elektronicznej, wymiany plików przez FTP, to masz do czynienia z warstwą
aplikacji w modelu TCP/IP. Z tą warstwą związane są protokoły takie, jak: HTTP, DNS,

SMTP, FTP.

W warstwie transportowej, jak sama nazwa wskazuje, działają mechanizmy

odpowiedzialne za dostarczenie danych. Tutaj pole do popisu mają protokoły TCP i UDP.

background image

Warstwa Internetu. Tu przede wszystkim działa protokół IP (Internet Protocol) używany

do lokalizacji hostów na podstawie ich adresów.

Warstwa dostępu do sieci. Najniższy poziom komunikacji, czyli poziom fizyczny -

wykorzystywany przez karty sieciowe, kabelki, modemy i im podobne urządzeniaPorty

Obok protokołów, które za chwile ogólnie opiszemy używając przykładu, możemy
rozróżnić porty. Porty istnieją niezależnie od protokołów i pozwalają zweryfikować

usługę sieciową działającą w ramach danego protokołu.

Traktuj porty jako coś abstrakcyjnego - nie jest to kabelek wetknięty w odpowiednie
gniazdo z numerem portu, ale logiczny byt, który porządkuje komunikację w ramach

danego protokołu. Dlaczego? Zestawienie adresu hosta, protokołu oraz portu pozwala
jednoznacznie zaadresować do niego odpowiedni pakiet danych
.

Na przykład twoja przeglądarka, po wpisaniu w jej adresie

http://jakasstrona.pl

"wie",

że ma spróbować wysłać żądanie w protokole HTTP do hosta ukrytego pod nazwą

domenową jakasstrona.pl, nasłuchującego na porcie 80. Gdybyś wpisał adres

http://jakasstrona.pl:12856

wysłałbyś żądanie na port 12856, jednak zapewne trafiłoby

ono w próżnię, bo żadna aplikacja nie oczekuje na komunikację przez HTTP na tym
serwerze i porcie - czyli, mówiąc bardziej fachowo, nie istnieje tam żaden endpoint.

Przykład wykorzystania portów i protokołów. Serwer udostępnia usługę WWW na porcie

80 i usługę pocztową na porcie 25.

Port może przyjąć wartość od 0 do 65535. Porty z zasady są przypisane do konkretnych

usług - i tak mamy porty przypisane domyślnie do protokołów:

80 - HTTP

443 - HTTPS

53 - DNS

20, 21 - FTP

143 - IMAP

110 - POP3

25 - SMTP

Przykład
Przeanalizujmy uproszczony przykład przesłania informacji z jednego komputera do

drugiego. Niech będzie to wspominany już wcześniej request z przeglądarki.

background image

1. Użytkownik zaczyna od warstwy aplikacji.

Uruchamia przeglądarkę i wpisuje adres internetowy www.przykładowyadres.pl. Po
wciśnięciu ENTER przeglądarka generuje request HTTP z prośbą o zwrócenie strony

WWW przez docelowy serwer.

2. www.przykładowyadres.pl to adres domenowy.

Host użytkownika używa protokołu DNS (Domain Name System), aby przetłumaczyć ten
adres z postaci przyjaznej dla użytkownika, do postaci adresu IP pozwalającego

zidentyfikować serwer zdalny w sieci. W tym celu komunikuje się z serwerami DNS
rozlokowanymi w Internecie i otrzymuje od nich informację zwrotną o adresie IP, np.:

111.112.113.114 (przykład).

3. Host, mając już wiedzę o adresie, protokole z warstwy aplikacyjnej i porcie
docelowym, procesuje pakiet danych dalej i przechodzi do warstwy transportowej.

Pakiet zawiera już nagłówek HTTP.

Nagłówek protokołu możesz traktować jako zbiór danych, opisujących właściwości

pakietu potrzebne do przetworzenia przez dany protokół.

Pakiet to po prostu nazwa (używana na potrzeby protokołów sieciowych) fragmentu
danych, które chcemy przesłać z jednego hosta do drugiego używając połączeń

sieciowych.

4. Teraz do gry wchodzi protokół TCP.

Za transport danych między dwoma komputerami odpowiedzialne są przede wszystkim
dwa protokoły - TCP (Transmission Control Protocol) oraz UDP (User Datagram

Protocol). Częściej stosuje się ten pierwszy, gdyż zapewnia dostarczenie danych w
całości, bez błędów i duplikatów. Minusem jest większe obciążenie sieci, gdyż w

porównaniu do UDP potrzebuje przesłania większej ilości danych potwierdzających
poprawność. TCP - niezawodność, UDP - szybkość.

Można powiedzieć, że TCP niejako nadzoruje działania protokołu IP i zapewnia jego

niezawodność. IP transmituje dane w formie pakietów mających określoną maksymalną
wielkość. Aby przesłać dużą porcję danych, należy podzielić ją na wiele pakietów i

wysyłać pojedynczo protokołem IP.

Pakiety takie mogą się w sieci zagubić, zdeformować czy przyjść w nieodpowiedniej

kolejności do odbiorcy, co uniemożliwiłoby odczytanie zawartych w nich informacji
(byłyby bezużytecznym ciągiem zer i jedynek). Protokół TCP kontroluje pakiety tak, aby

żadna z wymienionych okoliczności nie zakłóciła transmisji. TCP jest odpowiedzialny za
rozbicie danych, wysłanie za pomocą protokołu IP, a potem poskładanie ich w całość u

odbiorcy i dostarczenie aplikacji.

background image

5. Pakiet, opakowany już w nagłówki HTTP i TCP wędruje do kolejnej warstwy -

Internetu. Tutaj przejmuje go protokół IP.

IP jest odpowiedzialny za zaadresowanie naszego pakietu (adres IP zdobyliśmy dzięki
DNS) i zlokalizowanie hosta docelowego. Host docelowy może być zlokalizowany w

zupełnie odrębnej sieci po drugiej stronie globu. Urządzenia sieciowe zwane ruterami
przechowują informacje o drogach, którymi może dotrzeć pakiet do adresata (czyli po

prostu połączeniach między różnymi komputerami, wiodących w końcu do docelowego
hosta). Protokół IP ma za zadanie jednoznacznie zlokalizować docelowego hosta i

wyznaczyć optymalną trasę dla pakietów.

6. Po opakowaniu pakietu w nagłówek IP, pakiet dociera do warstwy najniższej - dostępu

do sieci.

Tutaj działają mechanizmy odpowiedzialne za fizyczne wysłanie pakietu w postaci
impulsów elektrycznych z naszego hosta. Pakiet jest dodatkowo opakowywany w tak

zwaną ramkę.

W tej warstwie działa także protokół ARP (Address Resolution Protocol). Wspomniane
wcześniej ramki powinny być zaadresowane adresem MAC. Jest to unikalny adres

każdego komputera, który posiada interfejs sieciowy, na przykład kartę sieciową
Ethernet. Taka karta ma fabrycznie przyporządkowany, unikalny adres fizyczny MAC.

Jeżeli chcesz poznać twój unikalny adres MAC, otwórz linię poleceń i wpisz:

ipconfig /all

Zobaczysz wynik podobny do tego:

Karta bezprzewodowej sieci LAN Połączenie sieci bezprzewodowej:

Sufiks DNS konkretnego połączenia : xxx.xx.pl

Opis. . . . . . . . . . . . . . . : Broadcom 802.11n Network Adapter
Adres fizyczny. . . . . . . . . . : XX-XX-XX-XX-XX-XX

DHCP włączone . . . . . . . . . . : Tak
Autokonfiguracja włączona . . . . : Tak

background image

Adres fizyczny to twój MAC adres.

ARP pozwala poznać adres MAC hosta docelowego, co jest konieczne przy adresowaniu

wysyłanej ramki.

Reasumując - jak wyglądają dane przesyłane podczas wprowadzania adresu strony
internetowej? W bardzo uproszczonym schemacie możemy je przedstawić tak:

7. Request naszej przeglądarki, żądający wyświetlenia strony www.przykładowyadres.pl
jest zamieniany na ciąg zer i jedynek w postaci elektrycznej i wysyłany, z

wykorzystaniem na przykład przewodowej karty sieciowej Ethernet lub jednego ze
standardów połączeń bezprzewodowych Wi-Fi. Nasze żądanie idzie w świat i dzięki

protokołowi IP przebywa drogę do hosta docelowego.

8. Ramka dociera do najniższej warstwy hosta docelowego - warstwy dostępu do sieci.

Weryfikowany jest adres MAC podany w ramce i jeżeli jest on taki sam, jak adres MAC
hosta docelowego, zwartość ramki jest przetwarzana w wyższych warstwach. A to

oznacza, że zdejmujemy ramkę i idziemy wyżej, bo informacje w niej zawarte spełniły
już swoje zadanie.

9. W warstwie Internetu host za pomocą adresu IP rozpoznaje, że dane są kierowane do
niego.

10. W warstwie transportowej protokół TCP zapewnia, że wszystkie pakiety IP składające

się na pojedynczy transport danych dotarły do celu.

W razie potrzeby wysyła prośbę o ponowne nadesłanie brakującego pakietu. Zapewnia,

że pakiety zostały scalone w odpowiedniej kolejności. W ten sposób, po usunięciu
nagłówka TCP, mamy na hoście docelowym czysty request HTTP GET. Request jest

kierowany na docelowy port 80.

11. Serwer WWW (specjalna aplikacja udostępniająca usługi WWW), nasłuchujący na
porcie 80, przyjmuje request HTTP GET, procesuje go i odpowiada nam responsem w

postaci strony WWW. Response pokonuje analogiczną drogę, ale w drugą stronę.

W ten sposób bardzo ogólnie opisaliśmy komunikację w sieci Internet od środka. ;)


Document Outline


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron