Теория:Датаграмма

Материал из MikroTik Wiki

Датаграмма (datagram, дейтаграмма) — блок информации, передаваемый протоколом без предварительного установления соединения и создания виртуального канала. Любой протокол, не устанавливающий предварительное соединение (а также обычно не контролирующий порядок приёмо-передачи и дублирование пакетов), называется датаграммным протоколом. Таковы, например, протоколы Ethernet, IP, UDP и др. Название «датаграмма» было выбрано по аналогии со словом телеграмма.

IP-датаграммы, IP-пакеты и IP-фрагменты

В современной практике термин «IP-пакет» обычно используется в качестве синонима к термину «IP-датаграмма». Вместе с тем в ряде документов IETF (RFC 1812, RFC 1547, RFC 1661 и др.) между ними проводится определенное различие. Как известно, модули данных верхних уровней сетевой модели последовательно инкапсулируются в модули данных нижележащих уровней. При передаче на канальный уровень IP-датаграмма может не помещаться в кадр канального уровня. В таком случае для инкапсуляции требуется предварительная фрагментация датаграммы для удовлетворения требований конкретной технологии уровня среды передачи данных. Таким образом, возникает ещё один термин — IP-фрагмент. Термин IP-пакет обобщает понятия IP-датаграммы и IP-фрагмента, с тем существенным условием, что он обозначает модуль данных, передаваемый канальному уровню для инкапсуляции в кадр. Можно сказать, что на сетевом уровне IP-датаграмма является инкапсулирующим модулем данных, а IP-пакет — инкапсулируемым. В частном случае они могут совпадать, в общем случае — нет, так как IP-датаграмма может дробиться на фрагменты. Не всякая датаграмма, и даже не всякий фрагмент без дополнительной фрагментации может стать IP-пакетом.

Разведение понятий IP-датаграммы, IP-фрагмента и IP-пакета удобно для понимания процессов, происходящих на сетевом уровне. Вместе с тем следует иметь в виду, что общая структура сообщения с его заголовками и телом во всех трёх случаях одна и та же. Полные датаграммы и фрагменты датаграмм различаются только определенной информацией в заголовках. Пакет просто идентичен датаграмме или фрагменту, если они помещаются в кадр. Таким образом, необходимо помнить, что датаграммы, фрагменты и пакеты представляют собой разные единицы сетевого уровня не в структурном, а в функциональном плане.