RFC 883
RFC 883 — это утверждённый стандарт Интернета, опубликованный в январе 1983 года в рамках серии документов Request for Comments (RFC). Он носит название «Протокол дейтаграмм Интернета» (Internet Datagram Protocol) и является ранней спецификацией протокола IP (Internet Protocol), предшествовавшей современной версии IPv4, описанной в RFC 791. RFC 883 определил базовые принципы адресации, фрагментации и маршрутизации пакетов в сети ARPANET, заложив основу для глобальной сети Интернет.
История
Предпосылки создания
К началу 1980-х годов сеть ARPANET, созданная Министерством обороны США, столкнулась с необходимостью перехода от протокола NCP (Network Control Program) к более гибкой и масштабируемой архитектуре. Протокол NCP был ориентирован на соединение и не поддерживал взаимодействие между разнородными сетями. Разработка нового набора протоколов, известного как TCP/IP, велась под руководством Винтона Серфа и Роберта Канна.
Разработка и публикация
RFC 883 был написан Джоном Постелом (Jon Postel), одним из ключевых разработчиков стека TCP/IP. Документ стал результатом многолетних экспериментов и дискуссий в рамках Исследовательской группы по межсетевым протоколам (Internetworking Protocol Group). В отличие от более ранних черновиков, RFC 883 представил формализованную версию протокола, который уже использовался в тестовых сетях. Публикация состоялась в январе 1983 года, что совпало с запланированным переводом ARPANET на TCP/IP (1 января 1983 года).
Переход к RFC 791
RFC 883 оставался действующим стандартом недолго. Уже в сентябре 1981 года был опубликован RFC 791, который уточнил и дополнил спецификацию, введя современную версию IPv4. RFC 883 был объявлен устаревшим, но его роль в истории Интернета остаётся значительной: он зафиксировал ключевые решения, определившие развитие протокола.
Структура и содержание
RFC 883 состоит из нескольких разделов, описывающих формат пакета, адресацию, фрагментацию и обработку ошибок.
Формат дейтаграммы
Протокол определяет единицу передачи данных — дейтаграмму. Заголовок дейтаграммы имеет фиксированную длину 20 октетов (байт) и включает следующие поля:
- Версия (Version) — 4 бита, указывает на версию протокола (в RFC 883 — значение 4).
- Длина заголовка (IHL) — 4 бита, длина заголовка в 32-битных словах.
- Тип сервиса (Type of Service) — 8 бит, приоритет и требования к задержке/пропускной способности.
- Общая длина (Total Length) — 16 бит, размер всей дейтаграммы в октетах.
- Идентификация (Identification) — 16 бит, используется для фрагментации.
- Флаги (Flags) — 3 бита, контроль фрагментации (бит «Не фрагментировать» и «Ещё фрагменты»).
- Смещение фрагмента (Fragment Offset) — 13 бит, позиция фрагмента в исходной дейтаграмме.
- Время жизни (Time to Live) — 8 бит, максимальное число маршрутизаторов, через которые может пройти пакет.
- Протокол (Protocol) — 8 бит, указывает на протокол верхнего уровня (TCP, UDP и т.д.).
- Контрольная сумма заголовка (Header Checksum) — 16 бит.
- IP-адреса отправителя и получателя — по 32 бита каждый.
Адресация
RFC 883 ввёл 32-битную схему адресации, которая делится на классы:
- Класс A: первый октет задаёт сеть (0–127), остальные — узел. Поддерживает до 128 сетей и 16 миллионов узлов.
- Класс B: первые два октета задают сеть (128–191), остальные — узел. До 16 384 сетей и 65 534 узлов.
- Класс C: первые три октета задают сеть (192–223), остальные — узел. До 2 миллионов сетей и 254 узлов.
- Класс D (224–239): зарезервирован для многоадресной рассылки.
- Класс E (240–255): зарезервирован для экспериментальных целей.
Эта классификация, хотя и была позже вытеснена бесклассовой адресацией (CIDR), оставалась основой маршрутизации в течение десятилетий.
Фрагментация
Протокол предусматривает возможность фрагментации дейтаграмм при передаче через сети с меньшим максимальным размером пакета (MTU). RFC 883 описывает механизм, при котором маршрутизатор разбивает пакет на фрагменты, каждый из которых содержит собственный заголовок с указанием смещения. Сборка фрагментов происходит только на узле назначения. В случае потери любого фрагмента вся дейтаграмма отбрасывается.
Обработка ошибок
Протокол не гарантирует доставку дейтаграмм. Для оповещения отправителя об ошибках используется протокол ICMP (Internet Control Message Protocol), который был описан отдельно в RFC 792. RFC 883 лишь упоминает, что маршрутизаторы могут отбрасывать пакеты с истекшим TTL или неверной контрольной суммой.
Значение и влияние
Технические инновации
RFC 883 закрепил несколько ключевых принципов, ставших основой Интернета:
- Дейтаграммный режим: передача данных без установления соединения, что обеспечивает устойчивость к отказам и простоту маршрутизации.
- Независимость от физической среды: протокол может работать поверх любых каналов связи (Ethernet, радиоканалы, спутниковая связь).
- Фрагментация на маршрутизаторах: позволяет объединять сети с разными MTU без модификации конечных узлов.
Историческая роль
RFC 883 стал первым формальным стандартом IP, который был внедрён в реальной сети. Его публикация совпала с «днём флага» (Flag Day) — 1 января 1983 года, когда ARPANET полностью перешла на TCP/IP. Без RFC 883 переход на новую архитектуру был бы невозможен, так как документ обеспечил единообразие реализации.
Ограничения
Современные читатели могут заметить, что RFC 883 не содержит многих элементов, привычных для IPv4:
- Отсутствует поле «Параметры» (Options) — оно появилось в RFC 791.
- Не описана процедура проверки подлинности и шифрования.
- Адресация по классам оказалась неэффективной для быстрого роста Интернета, что привело к введению CIDR в 1993 году.
Применение
RFC 883 никогда не использовался в коммерческих сетях в неизменном виде, так как был быстро заменён. Однако его идеи легли в основу:
- IPv4 (RFC 791) — основной протокол Интернета до 2020-х годов.
- IPv6 (RFC 2460) — сохранил дейтаграммный принцип, но изменил формат заголовка и адресации.
- Маршрутизация — протоколы RIP, OSPF и BGP работают поверх IP, используя механизмы, заложенные в RFC 883.
Критика
Основные замечания к RFC 883 связаны с его незавершённостью. Документ не описывал:
- Процедуру выбора маршрута (динамическая маршрутизация).
- Механизмы контроля перегрузок.
- Поддержку мобильных узлов.
Кроме того, 32-битная адресация уже в 1980-х годах вызывала опасения по поводу исчерпания адресного пространства. Эти проблемы были решены в последующих стандартах, но RFC 883 не предусматривал их.
Интересные факты
- Нумерация: RFC 883 — один из немногих документов серии, который был объявлен устаревшим через несколько месяцев после публикации.
- Авторство: Джон Постел, написавший RFC 883, также редактировал RFC 791 и RFC 792. Он считается «отцом» протоколов TCP/IP.
- Юмор: В RFC 883 нет стандартного для RFC раздела «Security Considerations» — вопросы безопасности начали включать в документы только в 1990-х годах.
Источники
- RFC 883 — Internet Datagram Protocol (1983)
- RFC 791 — Internet Protocol (1981)
- RFC 792 — Internet Control Message Protocol (1981)
- «TCP/IP Illustrated, Volume 1» by W. Richard Stevens (1994)
- «Where Wizards Stay Up Late: The Origins of the Internet» by Katie Hafner and Matthew Lyon (1996)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →