Datagramy

Datagram to podstawowa jednostka transferu powiązana z siecią z komutacją pakietów . Datagramy są zazwyczaj podzielone na sekcje nagłówka i ładunku . Datagramy zapewniają bezpołączeniową usługę komunikacyjną w sieci z komutacją pakietów. Dostarczenie, czas nadejścia i kolejność nadejścia datagramów nie muszą być gwarantowane przez sieć.

Historia

We wczesnych latach siedemdziesiątych termin datagram został stworzony przez połączenie słów data i telegram przez sprawozdawcę CCITT ds. komutacji pakietów, Halvora Bothnera-By'ego .

Chociaż słowo to było nowe, koncepcja miała już długą historię.

W 1962 roku Paul Baran opisał w raporcie RAND Corporation hipotetyczną sieć wojskową mającą oprzeć się atakowi nuklearnemu. Małe znormalizowane „bloki wiadomości”, zawierające adresy źródłowe i docelowe, były przechowywane i przesyłane w węzłach komputerowych wysoce redundantnej siatkowej sieci komputerowej. „Użytkownik sieci, który wywołał„ połączenie wirtualne ”ze stacją końcową i przesłał wiadomości… może również postrzegać system jako czarną skrzynkę zapewniającą pozorne połączenie obwodu”.

W 1967 roku Donald Davies opublikował przełomowy artykuł, w którym przedstawił powszechnie używane obecnie słowa pakiet i przełączanie pakietów . Jego sieć bazowa jest podobna do sieci Paula Barana, chociaż została zaprojektowana niezależnie. Aby poradzić sobie z permutacjami datagramów (ze względu na dynamicznie aktualizowane preferencje routingu) i stratami datagramów (nieuniknionymi, gdy szybkie źródła wysyłają do wolnych miejsc docelowych), zakłada, że ​​„wszyscy użytkownicy sieci zapewnią sobie pewien rodzaj kontroli błędów” (co zostanie wywołana później w przypadku czysto datagramowej ). Jego celem jest, po raz pierwszy w komutacji pakietów, „sieć komunikacyjna wspólnego przewoźnika”. Aby wesprzeć zdalny dostęp do usług komputerowych przez terminale użytkowników, które w tamtym czasie na ogół transmitowały znak po znaku, włączył do interfejsu peryferyjnego sieci komputery, które konwertują strumienie znaków na strumienie pakietów i odwrotnie.

W 1970 roku Lawrence Roberts i Barry D. Wessler opublikowali artykuł o ARPANET , pierwszej wielowęzłowej sieci przełączającej pakiety. W towarzyszącym dokumencie opisano jego węzły przełączające (IMP) i formaty pakietów. Rdzeń sieci wykonywał przełączanie datagramów, tak jak w modelu Barana i Daviesa, ale w sieci, na jej obrzeżach, dodano rezerwę, aby poradzić sobie ze stratami i permutacjami datagramów. W ten sposób komputerom użytkowników zaoferowano niezawodną usługę przesyłania wiadomości, co znacznie uprościło ich własną pracę i sprawiło, że była mniej zależna od dalszych badań.

W 1973 roku Louis Pouzin przedstawił swój projekt dla Cyclades , pierwszej sieci rzeczywistej wielkości, w której zastosowano czysty model datagramowy Donalda Daviesa. W ten sposób zespół Cyklady jako pierwszy zajął się wysoce złożonym problemem zapewnienia aplikacjom użytkownika niezawodnej usługi obwodów wirtualnych (odpowiednik internetowego TCP ) przy użyciu usługi sieciowej od końca do końca, o której wiadomo, że może powodować nieistotne straty i permutacje datagramów . Chociaż celem Pouzina „na pierwszym etapie nie było dokonanie przełomu w technologii przełączania pakietów, ale zbudowanie niezawodnego narzędzia komunikacyjnego dla Cyklad”, dwóch członków jego zespołu, Hubert Zimmerman i Gérard Le Lann, wnieśli znaczący wkład w projektowanie sieci internetowych TCP, co potwierdził Vint Cerf , jego główny projektant.

W 1981 roku Agencja Zaawansowanych Projektów Badawczych w Obronie ( DARPA ) wydała pierwszą specyfikację protokołu internetowego (IP). Wprowadził główną ewolucję koncepcji datagramów: fragmentację . W przypadku fragmentacji niektóre części sieci globalnej mogą wykorzystywać duże pakiety (zwykle sieci lokalne w celu minimalizacji mocy obliczeniowej), podczas gdy inne mogą narzucać mniejsze rozmiary pakietów (zwykle sieci rozległe w celu minimalizacji czasu odpowiedzi). Węzły sieciowe mogą dzielić pakiet datagramu na kilka mniejszych pakietów tego samego datagramu.

W 1999 r. Internet Engineering Task Force (IETF) oficjalnie zatwierdziła użycie szeroko stosowanej translacji adresów sieciowych (NAT), dzięki której każdy adres publiczny może być współużytkowany przez kilka prywatnych urządzeń. Dzięki temu opóźniono zbliżające się wyczerpanie adresów internetowych , pozostawiając wystarczająco dużo czasu na wprowadzenie IPv6 , nowej generacji pakietów internetowych obsługujących dłuższe adresy. Początkowa zasada pełnej typu end-to-end dla datagramów była złagodzona: węzły NAT musiały zarządzać stanami poszczególnych połączeń, czyniąc je częściowo zorientowanymi na połączenie .

W 2015 r. IETF zaktualizował swoją słabą „informacyjną” rekomendację z 1998 r., zgodnie z którą węzły przełączające datagramy wykonują aktywne zarządzanie kolejkami (AQM), aby uczynić ją mocniejszą i bardziej szczegółową rekomendacją „ najlepszych obecnych praktyk ”. Podczas gdy początkowy model kolejkowania datagramów był prosty do wdrożenia i nie wymagał więcej dostrojenia niż długość kolejki, uznano, że konieczne jest wsparcie bardziej wyrafinowanych i sparametryzowanych mechanizmów „w celu poprawy i zachowania wydajności Internetu” ( RED , ECN itp . ) . Wezwano również do dalszych badań na ten temat, z listą zidentyfikowanych pozycji.

Definicja

Termin datagram jest zdefiniowany w następujący sposób:

„Samowystarczalna, niezależna jednostka danych przenosząca wystarczające informacje, które mogą być kierowane od komputera źródłowego do docelowego bez polegania na wcześniejszej wymianie między tym komputerem źródłowym i docelowym a siecią transportową”.

RFC1594

Datagram musi być samowystarczalny, bez polegania na wcześniejszych wymianach, ponieważ między dwoma punktami komunikacji nie ma połączenia o ustalonym czasie trwania, jak ma to miejsce na przykład w większości telefonicznych rozmów głosowych.

Usługa datagramowa jest często porównywana do usługi dostarczania poczty; użytkownik podaje tylko adres docelowy, ale nie otrzymuje gwarancji dostawy ani potwierdzenia pomyślnej dostawy. Usługa datagramowa jest zatem uważana za zawodną . Usługa datagramowa kieruje datagramy bez uprzedniego tworzenia z góry określonej ścieżki. Usługa datagramowa jest zatem uważana za bezpołączeniową . Nie bierze się również pod uwagę kolejności, w jakiej on i inne datagramy są wysyłane lub odbierane. W rzeczywistości wiele datagramów w tej samej grupie może podróżować różnymi ścieżkami, zanim dotrą do tego samego miejsca docelowego. [ potrzebne źródło ]

Struktura

Każdy datagram ma dwa komponenty, nagłówek i ładunek danych . Nagłówek zawiera wszystkie informacje wystarczające do wyznaczenia trasy od urządzenia źródłowego do miejsca docelowego bez polegania na wcześniejszej wymianie danych między urządzeniem a siecią. Nagłówki mogą zawierać adresy źródłowe i docelowe, a także pole typu. Ładunek to dane, które mają być przetransportowane. Ten proces zagnieżdżania ładunków danych w oznakowanym nagłówku jest nazywany enkapsulacją .

Przykłady

Nazewnictwo datagramów
warstwa OSI Nazwa
Warstwa 4 Segment danych
Warstwa 3 Pakiet danych
Warstwa 2
Ramka Ethernet (IEEE 802.3) Ramka bezprzewodowej sieci LAN (IEEE 802.11)
Warstwa 1 Chip (CDMA)

protokół internetowy

Protokół internetowy (IP) definiuje standardy dla kilku typów datagramów. Warstwa internetowa to usługa datagramowa świadczona przez adres IP. Na przykład protokół UDP jest uruchamiany przez usługę datagramową w warstwie internetowej. Protokół IP to całkowicie bezpołączeniowa, niezawodna usługa dostarczania wiadomości z zachowaniem wszelkich starań. TCP to protokół wyższego poziomu działający na bazie protokołu IP, który zapewnia niezawodną usługę zorientowaną na połączenie.

Zobacz też