Дейтаграмма — это базовая единица передачи, связанная с сетью с коммутацией пакетов . Дейтаграммы обычно структурированы в разделы заголовка и полезной нагрузки . Дейтаграммы предоставляют услугу связи без установления соединения через сеть с коммутацией пакетов. Доставка, время прибытия и порядок прибытия дейтаграмм не должны гарантироваться сетью.
В начале 1970-х годов докладчиком МККТТ по коммутации пакетов [1] Халвором Ботнером-Баем был создан термин «дейтаграмма» путем объединения слов «данные» и «телеграмма» . [2] [3] Хотя само слово было новым, само понятие уже имело долгую историю.
В 1964 году Пол Баран в отчете корпорации RAND описал гипотетическую военную сеть, которая должна была противостоять ядерной атаке. Небольшие стандартизированные блоки сообщений , содержащие адреса источника и назначения, хранились и пересылались в компьютерных узлах высокоизбыточной ячеистой компьютерной сети. Баран писал: «Пользователь сети, который вызвал виртуальное соединение с конечной станцией и передал сообщения... может также рассматривать систему как черный ящик, обеспечивающий кажущееся соединение по цепи». [4] Концепция того, что мы теперь называем виртуальной цепью, появляется в проекте, [5] хотя сеть не была построена.
В 1967 году Дональд Дэвис опубликовал основополагающую статью, в которой он представил пакет и коммутацию пакетов . Его предложенная основная сеть похожа на ту, что предложил Пол Баран, хотя и была разработана независимо. Он предполагает, что «все пользователи сети обеспечат себя каким-то контролем ошибок». Его цель — «сеть связи с общим провайдером». Для поддержки удаленного доступа к компьютерным услугам с помощью пользовательских терминалов, которые в то время передавались посимвольно, он включил на периферии сети интерфейсные компьютеры, которые преобразуют потоки символов в потоки пакетов и наоборот. [6] Дэвис писал: «Мы были скорее против виртуального канала, потому что мы считали, что сеть связи должна заниматься только пакетами, и что любые протоколы, участвующие в сборке этих пакетов, должны выполняться сквозным образом, между самими клиентами». [5]
В 1970 году Лоуренс Робертс и Барри Д. Весслер опубликовали статью об ARPANET , первой многоузловой сети с коммутацией пакетов. [7] В сопроводительной статье были описаны ее коммутационные узлы ( IMP ) и форматы пакетов. [8] Ядро сети выполняло коммутацию датаграмм, как в модели Барана и Дэвиса, но услуга, предлагаемая хостам сетью, была ориентирована на соединение . [9] [10] Таким образом, надежная служба передачи сообщений была предложена пользовательским компьютерам, что значительно упростило проектирование сети. Это сделало ARPANET тем, что впоследствии стало называться сетью виртуальных цепей . [11]
Робертс представил идею пакетной коммутации профессионалам в области связи и столкнулся с гневом и враждебностью. До того, как ARPANET заработал, они утверждали, что буферы маршрутизатора быстро закончатся. После того, как ARPANET заработал, они утверждали, что пакетная коммутация никогда не будет экономически выгодной без правительственных субсидий. Баран столкнулся с тем же отказом и, таким образом, не смог убедить военных построить сеть пакетной коммутации. [12]
В 1973 году Луи Пузен представил свой проект CYCLADES , первой крупномасштабной сети, реализующей чистую модель датаграмм Дэвиса. [13] Таким образом, команда CYCLADES была первой, кто взялся за сложнейшую проблему предоставления пользовательских приложений надежной службы виртуальных каналов [14] при использовании принципа «от конца к концу» в сетевой службе, которая, как известно, может приводить к существенным потерям датаграмм и переупорядочиванию. [15] Хотя забота Пузена «на первом этапе заключается не в том, чтобы совершить прорыв [sic] в технологии коммутации пакетов, а в том, чтобы создать надежный инструмент связи для Cyclades», [13] два члена его команды, Юбер Циммерман и Жерар Ле Ланн , внесли значительный вклад в разработку TCP для Интернета, что признал Винт Серф , его главный конструктор. [16]
В 1981 году Управление перспективных исследовательских проектов Министерства обороны США ( DARPA ) выпустило первую спецификацию Интернет-протокола (IP). Она ввела существенную эволюцию концепции датаграммы: фрагментацию . [17] При фрагментации некоторые части глобальной сети могут использовать пакеты большого размера (обычно локальные сети для минимизации накладных расходов на обработку), в то время как некоторые другие могут использовать пакеты меньшего размера (обычно глобальные сети для минимизации времени отклика). Сетевые узлы могут фрагментировать датаграмму на несколько меньших пакетов.
В 1999 году IETF ( Internet Engineering Task Force ) санкционировала использование уже широко развернутой трансляции сетевых адресов (NAT), при которой каждый публичный адрес может совместно использоваться несколькими частными устройствами. [18] С этим предстоящее исчерпание адресов Интернета было отложено, что дало достаточно времени для внедрения IPv6 , нового поколения интернет-протокола, поддерживающего более длинные адреса. Первоначальный принцип полной сквозной сетевой прозрачности для датаграмм был для этого смягчен: узлы NAT должны были управлять состояниями для каждого соединения, что делало их частично ориентированными на соединение .
В 2015 году IETF обновила свой информационный RFC 2309 1998 года о том, что узлы коммутации датаграмм выполняют активное управление очередями (AQM), чтобы сделать его более сильной и подробной рекомендацией по наилучшей текущей практике посредством публикации RFC 7567. Хотя первоначальная модель очередей датаграмм была проста в реализации и не требовала дополнительной настройки, кроме настройки длины очереди, поддержка более сложных и параметризованных механизмов была признана необходимой «для улучшения и сохранения производительности Интернета» ( RED , ECN и т. д.). Также требовалось дальнейшее исследование по этой теме со списком идентифицированных элементов. [19]
Термин «дейтаграмма» определяется следующим образом: [20]
«Автономная, независимая сущность данных, несущая достаточно информации для маршрутизации от источника к компьютеру назначения без зависимости от предыдущих обменов между этим источником и компьютером назначения и транспортной сетью».
— RFC 1594
Дейтаграмма должна быть самодостаточной и не зависеть от предыдущих обменов, поскольку между двумя точками связи нет соединения фиксированной продолжительности, как, например, в большинстве голосовых телефонных разговоров. [21]
Службу дейтаграмм часто сравнивают со службой доставки почты; пользователь только предоставляет адрес назначения, но не получает никаких гарантий доставки и подтверждения при успешном получении. Поэтому служба дейтаграмм считается ненадежной . Служба дейтаграмм направляет дейтаграммы без предварительного создания предопределенного пути. Поэтому служба дейтаграмм считается службой без установления соединения . Также не учитывается порядок, в котором она и другие дейтаграммы отправляются или принимаются. Фактически, многие дейтаграммы в одной и той же группе могут перемещаться по разным путям, прежде чем достигнут того же пункта назначения в разном порядке . [22]
Каждая датаграмма состоит из двух компонентов: заголовка и полезной нагрузки данных . Заголовок содержит всю информацию, достаточную для маршрутизации от исходного оборудования к месту назначения без опоры на предыдущие обмены между оборудованием и сетью. Заголовки могут включать адреса источника и назначения, а также поля типа и длины . Полезная нагрузка — это данные, которые необходимо перенести. Этот процесс вложения полезных нагрузок данных в помеченный заголовок называется инкапсуляцией .
Интернет -протокол (IP) определяет стандарты для нескольких типов датаграмм. Интернет-уровень — это служба датаграмм, предоставляемая IP. Например, UDP управляется службой датаграмм на интернет-уровне. IP — это полностью не требующая соединения, ненадежная служба доставки сообщений с наилучшими усилиями. TCP — это протокол более высокого уровня, работающий поверх IP, который обеспечивает надежную службу с установлением соединения.
три параметра однозначно определяют соединение между исходным и целевым хостами." "IMP назначения возвращает положительное подтверждение получения сообщения исходному IMP, который, в свою очередь, передает это подтверждение исходному хосту." "Каждая ссылка является однонаправленной и контролируется сетью, так что по ней одновременно может быть отправлено не более одного сообщения.
Однако у Arpanet были свои недостатки, поскольку она не была истинной сетью датаграмм и не обеспечивала сквозного исправления ошибок.
Arpanet был виртуальным каналом." "по сути, это был сервис виртуальных каналов, использующий внутренние датаграммы