Datagram - Datagram

Datagram jest podstawowy moduł przenoszenia związane z sieci z komutacją pakietów . Datagramy są zazwyczaj podzielone na sekcje nagłówka i ładunku . Datagramy zapewniają usługę komunikacji bezpołączeniowej w sieci z komutacją pakietów. Sieć nie musi gwarantować dostarczenia, czasu przybycia i kolejności przybycia datagramów.

Historia

Na początku lat siedemdziesiątych termin datagram został stworzony przez połączenie słów data i telegram przez sprawozdawcę CCITT w sprawie przełączania pakietów, Halvora Bothner-By .

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

W 1962 roku Paul Baran opisał w raporcie RAND Corporation hipotetyczną siatkę wojskową, która musi odeprzeć atak nuklearny. Małe, ustandaryzowane „bloki wiadomości”, zawierające adresy źródłowe i docelowe, były przechowywane i przekazywane w węzłach komputerowych wysoce redundantnej 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ć szkieletowa 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 utratą datagramów (nieuniknioną, 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 czystej usłudze datagramowej ). Jego celem jest, po raz pierwszy w przełączaniu pakietów, „sieć komunikacyjna typu common-carrier”. Aby obsługiwać zdalny dostęp do usług komputerowych przez terminale użytkowników, które w tym czasie przesyłały w ogólności znak po znaku, umieścił na peryferiach sieci komputery, które konwertują przepływy znaków na przepływy pakietów i odwrotnie.

W 1970 Lawrence Roberts i Barry D. Wessler opublikowali artykuł o ARPANET , pierwszej wielowęzłowej sieci z przełączaniem pakietów. Towarzyszący dokument opisuje węzły przełączające (IMP) i formaty pakietów. Rdzeń sieci wykonywał przełączanie datagramów jak w modelu Barana i Daviesa, ale w sieci, na jej obrzeżach, dodano zabezpieczenie, aby poradzić sobie z utratą i permutacjami datagramów. Niezawodna usługa przesyłania wiadomości została zatem zaoferowana komputerom użytkowników, 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 zaprezentował swój projekt dla Cyclades , pierwszej sieci o rzeczywistym rozmiarze wykorzystującej czysty model datagramowy Donalda Daviesa. Zespół Cyclades jako pierwszy zajął się zatem bardzo złożonym problemem zapewnienia aplikacjom użytkownika niezawodnej usługi obwodu wirtualnego (odpowiednika połączenia internetowego TCP ) podczas korzystania z usługi sieciowej typu end-to-end, o której wiadomo, że może powodować znaczne straty datagramów i permutacje . Chociaż troską Pouzina „na pierwszym etapie nie jest dokonanie przełomu w technologii przełączania pakietów, ale zbudowanie niezawodnego narzędzia komunikacyjnego dla Cyklad”, dwaj członkowie jego zespołu, Hubert Zimmerman i Gérard Le Lann , wnieśli znaczący wkład w projektowanie Internetu. TCP, które uznał Vint Cerf , główny projektant.

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

W 1999 roku IETF ( Internet Engineering Task Force ) oficjalnie wykorzystała szeroko wdrożoną translację adresów sieciowych (NAT), dzięki której każdy adres publiczny może być współużytkowany przez kilka urządzeń prywatnych. Dzięki temu zbliżające się wyczerpanie adresów internetowych zostało opóźnione, pozostawiając wystarczająco dużo czasu na wprowadzenie IPv6 , nowej generacji pakietów internetowych obsługujących dłuższe adresy. Początkowy zasada pełnej końca do końca przejrzystości sieci do datagramów był za to spokojny: NAT węzły musiał zarządzać członkowskim za powiązaniem, czyniąc je w części zorientowanej związku .

W 2015 r. IETF zaktualizował swoje słabe „informacyjne” zalecenie z 1998 r., zgodnie z którym węzły przełączające datagramy wykonują aktywne zarządzanie kolejką (AQM), aby uczynić je silniejszym i bardziej szczegółowym zaleceniem „ najlepszej bieżącej praktyki ”. Podczas gdy początkowy model kolejkowania datagramów był prosty do wdrożenia i nie wymagał więcej dostrajania niż długość kolejki, wsparcie bardziej wyrafinowanych i sparametryzowanych mechanizmów okazało się konieczne „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

RFC 1594 definiuje termin Datagram w następujący sposób:

„Samodzielna, niezależna jednostka danych zawierająca wystarczającą ilość informacji do przekierowywania ze źródła do komputera docelowego bez polegania na wcześniejszych wymianach między tym komputerem źródłowym i docelowym oraz siecią transportową”.

—  RFC 1594

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

Usługa datagramów jest często porównywana do usługi dostarczania poczty; użytkownik podaje tylko adres docelowy, ale nie otrzymuje gwarancji doręczenia ani potwierdzenia po pomyślnym doręczeniu. Usługa datagramów jest zatem uważana za zawodną . Usługa datagramów 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 są one wysyłane lub odbierane oraz inne datagramy. 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.

Struktura

Każdy datagram ma dwa składniki, nagłówek i ładunek danych . Nagłówek zawiera wszystkie informacje wystarczające do trasowania ze sprzętu źródłowego do miejsca docelowego bez polegania na uprzednich wymianach między sprzętem a siecią. Nagłówki mogą zawierać adresy źródłowe i docelowe, a także pole typu. Ładunek to dane, które mają zostać przetransportowane. Ten proces zagnieżdżania ładunków danych w oznaczonym nagłówku nazywa się enkapsulacją .

Przykłady

Nomenklatura datagramowa
Warstwa OSI Nazwa
Warstwa 4 Segment danych
Warstwa 3 Pakiet danych
Warstwa 2 Ramka (IEEE 802.3)
Ramka (IEEE 802.11)
Komórka (ATM)
Warstwa 1 Chip (CDMA)

protokół internetowy

Internet Protocol (IP) określa normy dla kilku rodzajów datagramów. Warstwa internetowa to usługa datagramowa świadczona przez adres IP. Na przykład UDP jest uruchamiany przez usługę datagramową w warstwie internetowej. IP jest całkowicie bezpołączeniową, zawodną usługą dostarczania wiadomości z najlepszymi wysiłkami. TCP to protokół wyższego poziomu działający na szczycie IP, który zapewnia niezawodną usługę zorientowaną na połączenie.

Zobacz też

Bibliografia