Czym jest protokół sieci komputerowej?
Prawdopodobniej najprostszym sposobem pozwalającym zrozumieć protokół sieci komputerowej będzie zastosowanie w pierwszej kolejności analogii dotyczącej ludzi, którzy cały czas korzystają z protokołów. Zastanówmy się, co robimy, gdy chcemy zapytać kogoś o godzinę. Na rysunku 1.2 przedstawiono przebieg typowej wymiany.
Ludzki protokół (lub przynajmniej dobre maniery) nakazuje, aby najpierw się przywitać (zwrot „Cześć” na rysunku 1.2), zanim rozpocznie się z kimś rozmowę. Typową odpowiedzią na zwrot „Cześć” jest takie samo słowo. Automatycznie przyjmuje się, że po usłyszeniu w odpowiedzi serdecznego zwrotu „Cześć” można kontynuować rozmowę i zapytać o godzinę. Inne różne odpowiedzi na początkowy zwrot „Cześć” (takie jak „Nie przeszkadzaj!”, „Nie mówię po polsku” lub inne, których nie można tu przytoczyć) mogą wskazywać na to, że rozmówca nie ma ochoty na konwersację lub nie ma możliwości jej prowadzenia. W tym przypadku ludzki protokół nie umożliwi poznania godziny. Czasami na zadane pytanie nie otrzyma się żadnej odpowiedzi. W tego typu sytuacji zwykle rezygnuje się z pytania o godzinę. Warto zauważyć, że w przypadku ludzkiego protokołu istnieją określone przekazywane komunikaty i działania podejmowane w odpowiedzi na otrzymane komunikaty lub wystąpienie innych zdarzeń (takich jak brak odpowiedzi w określonym przedziale czasu). Oczywiście przekazywane i otrzymywane komunikaty, a także czynności wykonywane w momencie transferowania komunikatów lub po wystąpieniu innych zdarzeń w przypadku ludzkiego protokołu odgrywają podstawową rolę. Jeśli ludzie posługują się różnymi protokołami, które nie są ze sobą zgodne (jeśli na przykład jedna osoba posiada maniery, a druga nie lub ktoś rozumie pojęcie czasu, natomiast ktoś inny nie), nie uzyska się żadnego pozytywnego efektu. To samo dotyczy sieci. W celu zrealizowania zadania dwie komunikujące się ze sobą jednostki muszą korzystać z tego samego protokołu.
Rysunek 1.2. Porównanie ludzkiego protokołu i protokołu sieci komputerowej
Rozważmy drugą analogię dotyczącą komunikowania się ludzi. Załóżmy, że jesteśmy na zajęciach (na przykład z sieci komputerowych!). Nauczyciel w nieciekawy sposób mówi o protokołach, co powoduje, że traci się w tym orientację. Prowadzący zajęcia przerywa i pyta się, czy są jakieś pytania (komunikat jest wysyłany i odbierany przez wszystkich studentów, z wyjątkiem tych, którzy śpią). Jeden ze studentów podnosi rękę (przekazując automatycznie komunikat nauczycielowi). Prowadzący reaguje na to uśmiechem i mówi: „Tak, słucham” (przekazany komunikat zachęca studenta do zadania pytania). Nauczyciele uwielbiają, gdy zadaje im się pytania. Student zadaje pytanie (przekazuje komunikat nauczycielowi). Po usłyszeniu pytania (otrzymaniu komunikatu) nauczyciel udziela odpowiedzi na nie (przekazuje komunikat studentowi). Również w tym przypadku widać, że przekazywane i otrzymywane komunikaty, a także zestaw typowych działań podejmowanych w chwili wysyłania i odbierania wiadomości to rdzeń protokołu opartego na pytaniach i odpowiedziach.
Protokoły sieciowe
Protokół sieciowy przypomina ludzki protokół, z tą różnicą, że jednostki wymieniające się komunikatami i podejmujące działania są sprzętowymi lub programowymi składnikami określonego urządzenia (na przykład komputera, smartfona, tabletu, routera lub innego urządzenia sieciowego). Wszystkie operacje realizowane w internecie, które angażują dwie lub więcej zdalnych jednostek komunikacyjnych, są zarządzane przez protokół. Przykładowo, sprzętowe protokoły kart sieciowych dwóch połączonych ze sobą komputerów kontrolują przepływ bitów w kablu znajdującym się między dwoma interfejsami sieciowymi. Protokoły systemów końcowych kontrolujące przeciążenie decydują, z jaką szybkością pakiety będą transmitowane między nadawcą i odbiorcą.
Protokoły routerów określają ścieżkę, jaką pakiet będzie podążał od miejsca źródłowego do docelowego. Protokoły są stosowane w każdym miejscu internetu. W związku z tym spora część książki jest poświęcona protokołom sieci komputerowych. W ramach przykładu protokołu sieciowego, z którym Czytelnik prawdopodobnie jest zaznajomiony, zastanówmy się, co się stanie, gdy do serwera WWW wyśle się żądanie, czyli w oknie przeglądarki internetowej wprowadzi się adres URL witryny WWW. Zostało to zilustrowane w prawej części rysunku 1.2. Najpierw komputer wysyła do serwera WWW żądanie nawiązania połączenia i czeka na odpowiedź. Po otrzymaniu żądania serwer WWW zwraca komunikat odpowiedzi na żądanie. Gdy komputer już „wie”, że może żądać pobrania strony internetowej z serwera WWW, w komunikacie GET wysyła do niego jej nazwę. Na końcu serwer WWW zwraca komputerowi stronę internetową (plik).
Po przytoczeniu przykładów protokołów ludzkich i sieciowych można powiedzieć, że wymiana komunikatów i działania podejmowane w chwili wysyłania i odbierania komunikatów to kluczowe elementy definiujące protokół. Protokół definiuje format i kolejność komunikatów wymienianych między dwoma lub większą liczbą komunikujących się jednostek, a także operacje wykonywane w momencie wysyłania i (lub) odbierania komunikatu bądź innego zdarzenia. Zasadniczo internet i sieci komputerowe intensywnie korzystają z protokołów. Różne protokoły są używane w celu zrealizowania odmiennych zadań komunikacyjnych. W trakcie lektury książki okaże się, że niektóre protokoły są proste i oczywiste, natomiast inne złożone i zaawansowane intelektualnie. Opanowanie sieci komputerowych jest równoznaczne ze zrozumieniem, jak i dlaczego są stosowane protokoły sieciowe.
Opracowano na podstawie: