Protokół internetowy został stworzony przez Agencję Zaawansowanych Projektów Badawczych Departamentu Obrony Stanów Zjednoczonych (DARPA) we wczesnych latach 70. Po utworzeniu pionierskiego projektu ARPANET (pierwsza na świecie sieć rozległa), DARPA rozpoczęła wielokierunkowe prace nad technologiami przesyłu danych.
W 1972 Robert E. Kahn został zatrudniony w DARPA Information Processing Technology Office (Biuro Technologii Przetwarzania Danych), gdzie pracował nad dwoma projektami: satelitarnym przesyłaniu pakietów internetowych oraz radiowym przesyłaniu pakietów internetowych. Dostrzegł wówczas możliwości, jakie kryły się w komunikowaniu się za pomocą tych pakietów. Wiosną 1973 roku Vinton Cerf, który rozwijał pierwotny protokół sieci ARPANET (NCP), dołączył się do Kahna, by wraz z nim pracować nad modelem otwartej architektury łączeniowej
Network Control Program (NCP) - pierwotny protokół sieci ARPANET.
W NCP warstwa fizyczna, warstwa łącza i warstwa sieciowa były określone przez Host/IMP Protocol. Warstwą transportową był Host-to-Host Protocol, razem z Initial Connection Protocol. Warstwy powyżej tego były połączone z aplikacją, np. FTP, SMTP itd.
W lecie 1973 roku Kahn i Cerf opracowali zręby nowego systemu, w którym użyto jednego tylko wspólnego protokołu internetowego. Cerf był też inspirowany przez Huberta Zimmermana i Louisa Pouzina, który stworzył francuską sieć CYCLADES, podobną do amerykańskiej.
Stało się przy tym możliwe połączenie niemalże wszystkich sieci, także nie opartych o TCP/IP, a więc rozwiązano początkowy problem Kahna. Komputer zwany bramą sieciową (później tę nazwę zmieniono na router, by uniknąć nieporozumień w przypadku innych typów bram sieciowych) jest podpięty do każdej z łączonych sieci i dokonuje tłumaczenia pakietów pomiędzy nimi.
Pomysł TCP/IP został znacząco rozwinięty przez grupę Cerfa w Stanford w latach 1973-74. Ośrodek badawczy firmy Xerox, Xerox PARC, we wczesnych latach badań nad Internetem wyprodukował Uniwersalny Pakiet PARC, posiadających wiele wspólnych cech z TCP/IP. Protokół ten był również bardzo popularny i przez pewien czas koegzystował z TCP/IP.
DARPA następnie rozpoczęła współpracę z BBN Technologies, na Uniwersytecie Stanforda oraz z londyńskim College University, w celu rozwinięcia innych wersji protokołu dla różnych urządzeń. Stworzono cztery wersje protokołu: TCP v1, TCP v2, w wiosnę 1978 roku rozdzieloną wersję TCP v3 i IP v3, a następnie stabilną wersję TCP/IP v4- standard, który jest stosowany w Internecie do dziś.
W 1975 roku przeprowadzono test komunikacyjny dwóch sieci TCP/IP pomiędzy uniwersytetami Stanforda a College London (UCL). W listopadzie 1977 roku dokonano trójstronnego połączenia na bazie protokołów TCP/IP pomiędz USA i. Emgland of Norwey Pomiędzy 1978 a 1983 rokiem, kilka innych prototypów TCP/IP zostało wynalezionych w centrach naukowych. 1 stycznia 1983 roku ARPANET w całości przełączyła się na TCP/IP.
W marcu 1982 roku Amerykański Departament Obrony uznał protokoły TCP/IP za standard w całej sieci należącej do wojska. W 1985 roku dawniej Internet Activities Board – techniczne ciało zarządzające Internetem) zorganizowało trzydniowe warsztaty na temat TCP/IP dla przemysłu komputerowego i korzystając z sił swoich 250 specjalistów pomogło wprowadzić protokoły TCP/IP do szerszego, komercyjnego użytku.
Model
Podstawowym założeniem modelu TCP/IP jest podział całego zagadnienia komunikacji sieciowej na szereg współpracujących ze sobą warstw (ang. layers). Każda z nich może być tworzona przez programistów zupełnie niezależnie, jeżeli narzucimy pewne protokoły według których wymieniają się one informacjami. Założenia modelu TCP/IP są pod względem organizacji warstw zbliżone do modelu OSI Jednak liczba warstw jest mniejsza i bardziej odzwierciedla prawdziwą strukturę Internetu. Model TCP/IP składa się z czterech warstw.
Warstwa Aplikacji
Warstwa procesowa czy warsrwa aplikacji (ang. process layer) to najwyższy poziom, w którym pracują użyteczne dla człowieka aplikacje takie jak np.serwer WWW czy przeglądarka internetowa . Obejmuje ona zestaw gotowych protokołów, które aplikacje wykorzystują do przesyłania różnego typu informacji w sieci. Wykorzystywane protokoły to m.in.: HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Window.
Warstwa Transportowa
Warstwy transportowa (ang. host-to-host layer) gwarantuje pewność przesyłania danych oraz kieruje właściwe informacje do odpowiednich aplikacji. Opiera się to na wykorzystaniu portów określonych dla każdego połączenia. W jednym komputerze może istnieć wiele aplikacji wymieniających dane z tym samym komputerem w sieci i nie nastąpi wymieszanie się przesyłanych przez nie danych. To właśnie ta warstwa nawiązuje i zrywa połączenia między komputerami oraz zapewnia pewność transmisji.
Warstwa Internetu
Warstwa Internetu lub warstwa protokołu internetowego (ang. internet protocol layer) to sedno działania Internetu. W tej warstwie przetwarzane są datagramy posiadające adresy IP. Ustalana jest odpowiednia droga do docelowego komputera w sieci. Niektóre urządzenia sieciowe posiadają tę warstwę jako najwyższą. Są to routery, które zajmują się kierowaniem ruchu w Internecie, bo znają topologię sieci. Proces odnajdywania przez routery właściwej drogi określa się jako trasowanie.
Warstwa Dostępu Do Sieci
warstwa dostępu do sieci lub warstwa fizyczna (ang. network access layer) jest najniższą warstwą i to ona zajmuje się przekazywaniem danych przez fizyczne połączenia między urządzeniami sieciowymi. Najczęściej są to karty siecioe i modemy. Dodatkowo warstwa ta jest czasami wyposażona w protokoły do dynamicznego określania adresów IP.
Aplikacje i protokoły
W warstwie transportowej może istnieć wiele protokołów, które współegzystują w jednej sieci. Ich algorytmy powinny być optymalizowane, aby zapewnić:
- niezawodny transfer danych,
- dużą przepustowość,
- krótki czas reakcji.
Niezawodny transfer danych oznacza zapewnienie, że jeżeli tylko istnieje taka możliwość, każdy komunikat dotrze do odbiorcy. Duża przepustowość określa ilość informacji jaką można przesłać w zadanym czasie. Czas reakcji ping musi być jak najmniejszy, co jest niezbędne, aby ograniczyć opóźnienie w komunikacji. W praktyce nie da się pogodzić wszystkich trzech wymogów względem warstwy transportowej. Zwykle poprawa jednego z nich dokonuje się kosztem pozostałych. Aby rozwiązać ten problem w sieciach komputerowych zaprojektowano szereg protokołów warstw transportowych. Projektant tworzący aplikację musi w takiej sytuacji wybrać, który protokół najlepiej sprawdzi się w jego oprogramowaniu oraz sieci.
Niezawodny Transfer Danych
Niektóre zastosowania, takie jak poczta elektroniczna , przesyłanie wiadomości błyskawicznych, transfer pliki terminale sieciowe, pobieranie stron internetowych i transakcje finansowe wymagają niezawodnego przesyłania danych, czyli bez utraty danych. Utrata danych pliku lub danych transakcji finansowej może mieć przecież fatalne konsekwencje (w drugim przypadku dla banku lub klienta!). Zastosowania tolerujące utratę danych, wśród których najbardziej wyróżniają siię modele strumieniowe mogą pozwolić sobie na przepadnięcie określonej ilości danych. W przypadku zastosowań multimedialnych utrata danych może spowodować niewielkie zakłócenia podczas odtwarzania danych obrazu lub dźwięku, które nie wpłyną znacząco na jakość. Wpływ utraty danych na jakość pracy aplikacji i rzeczywista liczba pakietów danych, które mogą przepaść, w dużym stopniu zależy od aplikacji i zastosowanego schematu kodowania.
Przepustowość
Aby efektywnie działać, niektóre aplikacje muszą być w stanie transmitować dane z określoną szybkością. Jeśli na przykład aplikacja telefonii komórkowej koduje głos z szybkością 32 kb/s, z taką samą szybkością musi mieć możliwość przesyłania danych w sieci i dostarczania ich do aplikacji odbiorczej. Jeśli wymagana przepustowość nie jest dostępna, aplikacja zależna od przepustowości będzie zmuszona do kodowania z inną szybkością (i uzyskania przepustowości wystarczającej do kontynuowania procesu) lub powinna przerwać operację, ponieważ np. połowa żądanej przepustowości to zdecydowanie za mało dla tego typu aplikacji. Wiele aktualnie istniejących aplikacji multimedialnych jest zależnych od przepustowości. Jednak aplikacje multimedialne które powstaną w przyszłości, czy w celu kodowania z szybkością dostosowaną do aktualnie dostępnej przepustowości mogą stosować adaptacyjne metody kodowania. Aplikacje zależne od przepustowości wymagają określonej przepustowości, natomiast aplikacje elastyczne są w stanie skorzystać z takiej przepustowości, jaka w danej chwili będzie dostępna. Przykładami takich aplikacji są programy pocztowe służące do przesyłania plików i stron internetowych. Oczywiście im większa przepustowość, tym lepiej.
- Thomas Marill, Lawrence G. Roberts, Toward a cooperative network of time-shared computers, San Francisco, California: ACM Press, 1966, s. 425, DOI: 10.1145/1464291.1464336 [dostęp 2020-02-02] (ang.).p?,
- ↑ Thomas Marill, Lawrence Roberts, Toward A Cooperative Network of Time Shared Computers, „FJCC”, 29, 1966, s. 425–431, DOI: 10.1145/1464291.1464336 [dostęp 2020-02-02].1 stycznia
- ↑ Zanim powstał Internet, był ARPANET, PolskieRadio24.pl, 29 października 2019 [dostęp 2020-02-02].
- ↑ Wielkie "lo" i zasada gorącego ziemniaka. Jak Baran przewidział naszą rzeczywistość, TVN24.pl [dostęp 2020-02-02].
- ↑ Marek Pudełko, Prawdziwa Historia Internetu, wyd. ITSTART, s. 91.
Komentarze
Prześlij komentarz