Datagram – podstawowa jednostka przekazu powiązana z siecią komutacyjną pakietów. Datagramy zwykle są zbudowane z sekcji nagłówka i ładunku.

Datagramy dostarczają możliwość bezpołączeniowej komunikacji w sieci komutacyjnej pakietów. Dostarczenie, czas dostarczenia i kolejność datagramów nie musi być gwarantowana przez sieć.

Historia

edytuj

Wyrażenie „datagram” pojawiło się pierwotnie wraz z projektem CYCLADES, czyli siecią zmieniających się pakietów, stworzone w 1970 roku i przedstawione przez Louisa Pouzina jest kombinacją słów „dane” (ang. data) i „telegram”. CYCLADES było pierwszą siecią, która zrzucała odpowiedzialność rzetelnego przekazu danych na hosty, a nie na samą sieć, używając niesolidnych datagramów i powiązanego mechanizmu „end-to-end”.

„Inspiracją dla datagramów były dwa źródła. Pierwsze to badania Donalda Daviesa. Stworzył on bowiem symulacje sieci datagramów, mimo że żadnej nie zbudował, technicznie wyglądała ona wykonalnie do funkcjonowania. Druga to: lubię proste rzeczy. Nie widziałem żadnego sensu, by narzucać dwa poziomy protokołów „end-to-end”. Myślałem, że jeden wystarczał.’’

~ Louis Pouzin

Te pomysły były potem przyjęte do stworzenia Protokołu internetowego (IP) i innych sieciowych protokołów.

Definicja

edytuj

RFC1594 definiuje określenie datagram następująco:

„Samodzielna, niezależna jednostka danych niosąca wystarczalną informację, kierowaną od źródła do wybranego komputera bez pośrednictwa wcześniejszych wymian między źródłem, destynowanym komputerem, a siecią transportową.”

~ RFC 1594

Datagram musi być samodzielny i niewspierany wcześniejszymi wymianami, ponieważ nie ma tu żadnego łączenia z ustalonym czasem trwania między dwoma komunikującymi się punktami, jak np. w wielu konwersacjach telefonicznych.

Sieć datagramów jest często porównywana do serwisu mailowego; użytkownik przekazuje jedynie adres przeznaczenia i nie otrzymuje gwarancji dostarczenia i potwierdzenia udanego przekazania e-maila. Datagramy są więc uznawane jako niegodne polegania na sobie. Serwis datagramów rozrzuca je bez wcześniejszego ustalenia ich ścieżki. Jest więc uznawana za bezpołączeniową. Nie przywiązuje się również uwagi do kolejności, w jakiej inne datagramy są wysyłane lub otrzymywane. Te same datagramy mogą podróżować różnymi ścieżkami, zanim dotrą do identycznego miejsca docelowego.

Struktura

edytuj

Każdy datagram składa się z dwóch składników: nagłówka i ładunku danych. Nagłówek zawiera wszystkie niezbędne informacje do transportu pierwotnego zestawu do miejsca przeznaczenia bez konieczności wcześniejszych wymian, między zestawem a siecią. Nagłówki mogą zawierać adresy źródła i miejsca docelowego, ale również typowane pola. Ładunek to dane, które mają zostać przetransportowane. Proces zagnieżdżania się ładunku danych w oznaczonym nagłówku nazywany jest kapsułkowaniem.

Protokół internetowy

edytuj

Protokół internetowy definiuje standardy dla kilku typów datagramów.

Warstwa internetowa to serwis datagramów dostarczana przez IP np. UDP jest napędzane przez serwis datagramów w warstwie internetowej. IP jest bezpołączeniowym, dostępnym, niesolidnym serwisem dostarczania informacji. TCP jest wyższym poziomem protokołem działającym na szczycie IP, który dostarcza rzetelny łączeniowo-zorientowany serwis.

Określenie datagram jest często używane, jako synonim pakietu, ale są to niuanse. Słowo datagram jest generalnie zarezerwowane dla pakietów z niesolidnych serwisów, które nie mogą określić nadawcy, gdy przesyłanie się nie powiodło. Z kolei termin pakiet przypisany jest dla jakiegokolwiek pakietu, zaufanego, lub niezaufanego. Datagramy to pakiety IP szybką i niepewną usługę jak UDP. Wszystkie pakiety IP są datagramami, aczkolwiek w warstwie DCP, to co jest określane segmentem TCP, jest czasem potrzebnym fragmentem IP z datagramu. To jednak odnosi się do pakietów.

Zobacz też

edytuj

Przypisy

edytuj