Datagram Delivery Protocol
Datagram Delivery Protocol (DDP) — это сетевой протокол транспортного уровня, разработанный компанией Apple Computer для использования в сетях AppleTalk. Он обеспечивает негарантированную доставку дейтаграмм (пакетов данных) между узлами сети без установления предварительного соединения и без подтверждения получения. DDP является аналогом протокола UDP в стеке TCP/IP, но с рядом особенностей, связанных с архитектурой AppleTalk.
История и контекст
Протокол DDP был создан в начале 1980-х годов как часть стека протоколов AppleTalk, предназначенного для объединения компьютеров Macintosh и периферийных устройств (принтеров, файловых серверов) в локальные сети. AppleTalk изначально проектировался для простоты настройки и автоматической конфигурации, что было революционно для того времени. DDP стал основным транспортным протоколом этого стека, обеспечивая базовую передачу данных.
С развитием сетей Ethernet и повсеместным распространением стека TCP/IP, популярность AppleTalk и DDP начала снижаться. В 2009 году компания Apple официально прекратила поддержку AppleTalk в операционной системе Mac OS X 10.6 Snow Leopard, что фактически завершило эпоху активного использования DDP. Тем не менее, протокол остаётся в истории как пример ранней реализации дейтаграммной передачи в персональных компьютерных сетях.
Архитектура и место в модели OSI
DDP работает на транспортном уровне (уровень 4) модели OSI, хотя в некоторых классификациях его относят к сетевому уровню, так как он выполняет функции маршрутизации. В стеке AppleTalk протоколы располагаются следующим образом:
- Физический уровень: LocalTalk, EtherTalk (AppleTalk поверх Ethernet), TokenTalk (AppleTalk поверх Token Ring).
- Канальный уровень: LLAP (LocalTalk Link Access Protocol), ELAP (EtherTalk Link Access Protocol), TLAP (TokenTalk Link Access Protocol).
- Сетевой/Транспортный уровень: DDP.
- Сеансовый уровень: ATP (AppleTalk Transaction Protocol), ASP (AppleTalk Session Protocol), PAP (Printer Access Protocol).
- Прикладной уровень: AFP (Apple Filing Protocol), PostScript, и другие.
DDP обеспечивает передачу данных между сетевыми узлами, используя уникальную систему адресации AppleTalk. Он не гарантирует доставку, не контролирует порядок прибытия пакетов и не управляет потоком данных — эти функции возлагаются на протоколы более высокого уровня (например, ATP).
Адресация в DDP
Система адресации в DDP отличается от привычной IP-адресации. Каждый узел в сети AppleTalk имеет два адреса:
- Сетевой адрес (Network Number): 16-битное число, идентифицирующее локальную сеть (сегмент). Значения от 1 до 65535. Адреса 0 и 65535 зарезервированы для широковещательных и специальных целей.
- Адрес узла (Node ID): 8-битное число, уникальное в пределах данной сети. Значения от 1 до 253. Адреса 0, 254 и 255 зарезервированы.
Таким образом, полный адрес узла в DDP — это пара (Network Number, Node ID), например (10, 42). Для маршрутизации между разными сетями используется третий параметр — Socket Number (номер сокета), который идентифицирует конкретный процесс или службу на узле.
Автоматическое назначение адресов
Одной из ключевых особенностей AppleTalk, реализованной на уровне DDP, была процедура AARP (AppleTalk Address Resolution Protocol). При подключении нового устройства к сети оно случайным образом выбирало себе адрес узла (Node ID) и отправляло широковещательный запрос, проверяя, не занят ли этот адрес. Если в течение определённого времени не приходило ответа, адрес считался свободным и закреплялся за устройством. Это позволяло создавать сети без ручной настройки IP-адресов.
Формат дейтаграммы DDP
Дейтаграмма DDP состоит из заголовка и поля данных. Заголовок имеет переменную длину: короткий (5 байт) для передачи в пределах одной сети и длинный (13 байт) для маршрутизируемых пакетов.
Структура короткого заголовка (внутрисетевая передача):
| Поле | Размер (бит) | Описание |
|---|---|---|
| Hop Count | 4 | Счётчик шагов (максимум 15). Уменьшается на каждом маршрутизаторе. |
| Length | 10 | Длина дейтаграммы в байтах (включая заголовок). |
| Checksum | 16 | Контрольная сумма всего пакета (опционально, может быть 0). |
| Destination Socket | 8 | Номер сокета получателя. |
| Source Socket | 8 | Номер сокета отправителя. |
| DDP Type | 8 | Тип протокола верхнего уровня (например, ATP, NBP). |
Структура длинного заголовка (межсетевая передача):
Длинный заголовок включает все поля короткого, а также:
| Поле | Размер (бит) | Описание |
|---|---|---|
| Destination Network | 16 | Номер сети получателя. |
| Source Network | 16 | Номер сети отправителя. |
| Destination Node | 8 | Идентификатор узла получателя. |
| Source Node | 8 | Идентификатор узла отправителя. |
Поле Hop Count ограничивает время жизни пакета в сети, предотвращая бесконечную маршрутизацию. Максимальное значение — 15 шагов. Поле Checksum не является обязательным: если отправитель не вычисляет контрольную сумму, он устанавливает это поле в 0, и получатель игнорирует его.
Применение и протоколы верхнего уровня
DDP служит основой для нескольких протоколов сеансового и прикладного уровней в стеке AppleTalk:
- ATP (AppleTalk Transaction Protocol): Обеспечивает надёжную передачу данных с подтверждением. Использует DDP для отправки запросов и ответов.
- NBP (Name Binding Protocol): Служит для разрешения имён (например, «Printer@Office») в адреса DDP. Широко использует широковещательные дейтаграммы DDP.
- PAP (Printer Access Protocol): Протокол для взаимодействия с принтерами. Работает поверх DDP.
- ASP (AppleTalk Session Protocol): Управляет сеансами связи между приложениями.
- AFP (Apple Filing Protocol): Протокол удалённого доступа к файлам, работающий поверх ASP и DDP.
Все эти протоколы полагаются на негарантированную доставку DDP, самостоятельно реализуя механизмы повторной передачи, контроля потока и упорядочивания.
Сравнение с UDP
DDP и UDP — оба дейтаграммных протокола, работающих без установления соединения. Однако между ними есть существенные различия:
| Характеристика | DDP | UDP |
|---|---|---|
| Размер адреса | 24 бита (сеть + узел) | 32 бита (IP-адрес) |
| Порт/сокет | 8-битный номер сокета | 16-битный номер порта |
| Маршрутизация | Встроена в заголовок (сеть назначения) | Выполняется на IP-уровне |
| Контрольная сумма | Опциональна | Обязательна (в IPv4 опциональна, в IPv6 обязательна) |
| Автоконфигурация | AARP (автоматическое назначение адреса) | DHCP или статическая настройка |
| Максимальный размер пакета | Зависит от канального уровня (обычно 586 байт для LocalTalk, до 1500 для Ethernet) | 65535 байт (теоретически) |
DDP более интегрирован с механизмами автоматической настройки, что делало его удобным для небольших офисных сетей, но менее масштабируемым и гибким, чем UDP/IP.
Ограничения и недостатки
- Масштабируемость: 16-битный номер сети и 8-битный номер узла ограничивают максимальное количество узлов (около 16 миллионов сетей по 253 узла), что было достаточно для 1980-х, но недостаточно для глобальных сетей.
- Надёжность: Отсутствие гарантий доставки требует реализации дополнительных механизмов на верхних уровнях, что увеличивает сложность приложений.
- Безопасность: DDP не содержит встроенных механизмов аутентификации или шифрования. Все данные передаются в открытом виде.
- Совместимость: Протокол жёстко привязан к архитектуре AppleTalk и не может напрямую взаимодействовать с сетями TCP/IP без шлюзов (например, IPTalk).
Устаревание и наследие
С переходом Apple на использование TCP/IP в качестве основного сетевого стека (начиная с Mac OS X), DDP был постепенно вытеснен. В 2009 году поддержка AppleTalk была полностью удалена из macOS. Тем не менее, DDP оставил след в истории сетевых технологий как пример успешного протокола с автоматической конфигурацией, который предвосхитил многие идеи, впоследствии реализованные в Zeroconf (Bonjour) и IPv6 (автоконфигурация адресов).
Сегодня DDP представляет в основном исторический интерес. Он изучается в курсах компьютерных сетей как пример альтернативного подхода к адресации и маршрутизации, отличного от доминирующего стека TCP/IP.
Источники
- Apple Computer, Inc. AppleTalk Network System Overview. Addison-Wesley, 1989.
- Sidhu, Gursharan; Andrews, Richard; Oppenheimer, Alan. Inside AppleTalk. 2nd ed. Addison-Wesley, 1990.
- Comer, Douglas E. Computer Networks and Internets. 6th ed. Pearson, 2015. (Глава о протоколах AppleTalk).
- RFC 1742 — AppleTalk Management Information Base II. IETF, 1995.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →