RFC 791
RFC 791 — это документ, опубликованный в сентябре 1981 года, который определяет спецификацию протокола Internet Protocol (IP) версии 4 (IPv4). Данный документ является одним из основополагающих стандартов стека протоколов TCP/IP и описывает формат пакетов, адресацию, фрагментацию и основные принципы работы межсетевого уровня модели OSI. RFC 791 заменил собой предыдущие спецификации (RFC 760 и RFC 777) и стал краеугольным камнем современного Интернета.
История создания
Разработка протокола IP началась в 1970-х годах в рамках проекта ARPANET, финансируемого Министерством обороны США. Первоначальная версия протокола была описана в RFC 760 (январь 1980 года) Винтоном Серфом и Робертом Каном. Однако в процессе эксплуатации были выявлены недостатки, потребовавшие доработки. Основные изменения касались механизма фрагментации пакетов и обработки ошибок.
Новая версия, RFC 791, была подготовлена группой инженеров, включая Джона Постела (редактора), Стива Крокера и Дэнни Коэна. Документ был опубликован в сентябре 1981 года Инженерным советом Интернета (IAB) и стал официальным стандартом для IPv4. В отличие от предшественников, RFC 791 ввёл более строгую структуру заголовка пакета, определил поле «Время жизни» (TTL) и уточнил алгоритмы маршрутизации.
Основные положения протокола
Формат пакета (датаграммы)
Согласно RFC 791, IP-пакет (датаграмма) состоит из заголовка и данных. Заголовок имеет фиксированную часть длиной 20 байт (без опций) и может содержать дополнительные поля (опции) длиной до 40 байт. Основные поля заголовка:
- Версия (4 бита) — для IPv4 всегда равно 4.
- Длина заголовка (4 бита) — указывает длину заголовка в 32-битных словах.
- Тип обслуживания (8 бит) — определяет приоритет и требования к качеству передачи.
- Общая длина (16 бит) — длина всего пакета (заголовок + данные) в байтах, максимум 65 535 байт.
- Идентификатор (16 бит) — используется для фрагментации; все фрагменты одного пакета имеют одинаковый идентификатор.
- Флаги (3 бита) — управляют фрагментацией (бит DF — не фрагментировать, бит MF — есть ещё фрагменты).
- Смещение фрагмента (13 бит) — указывает позицию фрагмента в исходном пакете (в 8-байтовых единицах).
- Время жизни (TTL, 8 бит) — максимальное количество маршрутизаторов, через которые может пройти пакет; при обнулении пакет отбрасывается.
- Протокол (8 бит) — идентификатор протокола транспортного уровня (например, 6 для TCP, 17 для UDP).
- Контрольная сумма заголовка (16 бит) — проверяет целостность только заголовка.
- IP-адрес отправителя (32 бита) — адрес источника.
- IP-адрес получателя (32 бита) — адрес назначения.
- Опции (переменная длина) — необязательные поля для специальных функций (например, маршрутизация от источника, запись маршрута).
Адресация
RFC 791 определяет 32-битный IP-адрес, который традиционно записывается в виде четырёх десятичных чисел, разделённых точками (например, 192.168.1.1). Адрес состоит из двух частей: номера сети и номера узла. Изначально адреса делились на классы (A, B, C, D, E), где класс определял количество бит, отведённых под сеть и узел. Однако эта система была позже заменена бесклассовой адресацией (CIDR) в RFC 1519 (1993 год).
Фрагментация
Протокол IP поддерживает фрагментацию пакетов для передачи через сети с разным максимальным размером блока данных (MTU). Если пакет превышает MTU промежуточной сети, маршрутизатор разбивает его на фрагменты, каждый из которых содержит часть данных и собственную копию заголовка. Фрагменты собираются в исходный пакет только на узле назначения. RFC 791 описывает алгоритмы фрагментации и сборки, включая использование полей «Идентификатор», «Флаги» и «Смещение фрагмента».
Влияние на развитие Интернета
RFC 791 стал основой для всего стека TCP/IP, который впоследствии был принят в качестве стандарта для ARPANET (1 января 1983 года). Этот документ обеспечил универсальный механизм передачи данных между разнородными сетями, что позволило объединить локальные сети, университетские сети и военные сети в единую глобальную инфраструктуру. Без RFC 791 современный Интернет, как он известен сегодня, был бы невозможен.
Протокол IPv4, описанный в RFC 791, остаётся доминирующим протоколом сетевого уровня, несмотря на постепенное внедрение IPv6 (RFC 2460, 1998 год). По состоянию на 2024 год более 70 % интернет-трафика передаётся с использованием IPv4, хотя пул свободных адресов был исчерпан ещё в 2011 году.
Критика и ограничения
Несмотря на свою фундаментальную роль, RFC 791 имеет ряд недостатков, выявленных за десятилетия эксплуатации:
- Ограниченное адресное пространство — 32-битные адреса (около 4,3 миллиарда) оказались недостаточными для современного количества устройств, что привело к необходимости использования NAT (Network Address Translation) и разработке IPv6.
- Отсутствие встроенной безопасности — протокол не предусматривает шифрования или аутентификации, что потребовало создания дополнительных протоколов (IPsec, TLS).
- Неэффективная обработка фрагментации — фрагментация на маршрутизаторах создаёт нагрузку на процессоры и может быть использована для атак (например, фрагментированные пакеты для обхода межсетевых экранов).
- Отсутствие механизмов качества обслуживания (QoS) — поле «Тип обслуживания» редко используется на практике, а современные требования к QoS (например, для VoIP) реализуются через другие протоколы.
Наследие и статус
RFC 791 остаётся действующим стандартом Интернета (Internet Standard 5), хотя многие его положения были уточнены и дополнены последующими RFC (например, RFC 1122, RFC 1812). Документ является обязательным для изучения в курсах компьютерных сетей и считается одним из самых влиятельных технических текстов XX века. В 2011 году Джон Постел, редактировавший RFC 791, был посмертно введён в Зал славы Интернета.
Источники
- RFC 791 — Internet Protocol (сентябрь 1981)
- RFC 760 — DoD Standard Internet Protocol (январь 1980)
- RFC 1122 — Requirements for Internet Hosts — Communication Layers (октябрь 1989)
- RFC 1812 — Requirements for IP Version 4 Routers (июнь 1995)
- «The Design Philosophy of the DARPA Internet Protocols» — David D. Clark (1988)
- «Where Wizards Stay Up Late: The Origins of the Internet» — Katie Hafner, Matthew Lyon (1996)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →