| 
 
 
   |   |  www.lissyara.su—> документация—> RFC—> RFC791 (IP)
 
 RFC 791 Internet протокол 
   RFC 791 Internet протоколПроект Darpa Internet
 Спецификация протокола
 сентябрь 1981
 
 приготовлено для
 Агенства расширенных оборонных исследовательских проектов
 Офис технологий обработки информации
 1400 Wilson Boulevard
 Arlington, Virginia 22209
 Институтом Информатики
 Университета Южной Каролины
 4676 Admiralty Way
 Marina del Rey, California 90291
 (перевод Радика Усманова сентябрь 1994)
 
 Содержание
 Предисловие
 1. Введение
 1.1 Обоснование
 1.2 Цель
 1.3 Интерфейсы
 1.4 Действие
 2. Обзор
 2.1 Связь с другими протоколами
 2.2 Сценарий работы
 2.3 Описание функций
 2.4 Шлюзы
 3. Спецификация
 3.1 Формат заголовка Internet
 3.2 Обсуждение
 3.3 Интерфейсы
 Приложение А: Примеры и сценарии
 Приложение Б: Порядок передачи данных
 Толковый словарь
 Ссылки
 
 Предисловие
 Данный документ устанавливает Internet протокол в стандарте DOD. Он основан на шести предыдущих версиях спецификации протокола ARPA Internet, и из них в значительной степени заимствован его текст. Вместе с тем в эту работу внесены многие изменения, касающиеся как терминологии, так и собственно изложения материала. Это издание освещает адресацию, обработку ошибок, коды опций, а также безапасность, историю и поддержку свойств протокола Internet.
 Джон Постел (Jon Postel)
 Редактор
 
 Протокол Internet
 Программа DARPA Internet
 Спецификация протокола
 
 1. Введение
 1.1 Обоснование
 Протокол Internet создан для использования в объединенных системах компьютерных коммуникационных сетей с коммутацией пакетов. Такие системы были названы "catenet" [1]. Протокол Internet обеспечивает передачу блоков данных, называемых датаграммами, от отправителя к получателям, где отправители и получатели являются хост-компьютерами, идентифицируемыми адресами фиксированной длины. Протокол Internet обеспечивает при необходимости также фрагментацию и сборку датаграмм для передачи данных через сети с малым размером пакетов.
 
 1.2 Цель
 Протокол Internet специально ограничен задачами обеспечения функций, необходимых для передачи битового пакета (датаграммы Internet) от отправителя к получателю через объединенную систему компьютерных сетей. Нет механизмов для увеличения достоверности конечных данных, управления протоколом, синхронизации или других услуг, обычно приненяемых в протоколах передачи от хоста к хосту. Протокол Ineternet может обобщить услуги поддерживающих его сетей с целью предоставления услуг различных типов и качеств.
 
 1.3 Интерфейсы
 Данный протокол получил название в соответствии с протоколами передачи информации между хост-компьютерами в межсетевой среде. Протокол вызывает в локальной сети протоколы для передачи датаграммы Internet на следующий шлюз или хост-получатель.
 Например, модуль TCP вызывал бы модуль Internet с тем, чтобы получить сегмент TCP (включая заголовок TCP и данные пользователя) как информационную часть Internet пакета. Модуль TCP обеспечил бы адреса и другие параметры в заголовке модуля Internet в качестве параметров рассматриваемого вызова. Модуль Internet в этом случае создал бы датаграмму Internet и прибегнул бы к услугам локальной сети для передачи датаграммы Internet.
 Например, в случае сети ARPANET модуль Ineternet вызывал бы локальный сетевой модуль, который бы добавлял к датаграмме Internet проводник типа 1822 [2], создавая сообщение ARPANET для передачи на IMP. Адрес ARPANET получился бы из адреса Intenet с помощью интерфейса локальной сети и относился бы к некоторому хост-компьютеру в сети ARPANET, который мог бы быть шлюзом в другие сети.
 
 1.4 Действие
 Протокол Internet выполняет две главные функции: адресацию и фрагментацию.
 Модули Internet используют адреса, помещенные в заголовок Internet, для передачи Internet датаграмм их получателям. Выбор пути передачи называется маршрутизацией.
 Модули Internet используют поля в заголовке Internet для фрагментации и восстановления датаграмм Internet, когда это необходимо для их передачи через сети с малым размером пакетов.
 Сценарий действия состоит в том, что модуль Internet меняет размер на каждом из хостов, задействованных в internet-коммуникации и на каждом из шлюзов, обеспечивающих взаимодействие между сетями. Эти модули придерживаются общих правил для интерпретации полей адресов, для фрагментации и сборки Internet датаграмм. Кроме этого, данные модули (и особенно шлюзы) имеют процедуры для принятия решений о маршрутизации, а также другие функции.
 Протокол Internet обрабатывает каждую Internet датаграмму как независимую единицу, не имеющую связи ни с какими другими датаграммами Internet. Протокол не имеет дело ни с соединениями, ни с логическими цепочками (виртуальными или какими-либо другими).
 Протокол Internet использует четыре ключевых механизма для формирования своих услуг: задание типа сервиса, времени жизни, опций и контрольной суммы заголовка.
 Тип обслуживания используется для обозначения требуемой услуги. Тип обслуживания - это абстрактный или обобщенный набор параметров, который характеризует набор услуг, предоставляемых сетями, и составляющих собственно протокол Internet. Этот способ обозначения услуг должен использоваться шлюзами для выбора рабочих параметров передачи в конкретной сети, для выбора сети, используемой при следующем переходе датаграммы, для выбора следующего шлюза при маршрутизации сетевой Internet датаграммы.
 Механизм времени жизни служит для указания верхнего предела времени жизни Internet датаграммы. Этот параметр устанавливается отправителем датаграммы и уменьшается в каждой точке на проходимом датаграммой маршруте. Если параметр времени жизни станет нулевым до того, как Internet датаграмма достигнет получателя, эта датаграмма будет уничтожена. Время жизни можно рассматривать как часовой механизм самоуничтожения.
 Механизм опций предоставляет функции управления, которые являются необходимыми или просто полезными при определенных ситуациях, однако он ненужен при обычных комминикациях. Механизм опций предоставляет такие возможности, как временные штампы, безопасность, специальная маршрутизация.
 Контрольная сумма заголовка обеспечивает проверку того, что информация, используемая для обработки датаграмм Internet, передана правильно. Данные могут содержать ошибки. Если контрольная сумма неверна, то Internet датаграмма будет разрушена, как только ошибка будет обнаружена.
 Протокол Internet не обеспечивает надежности коммуникации. Не имеется механизма подтверждений ни между отправителем и получателем, ни между хост-компьютерами. Не имеется контроля ошибок для поля данных, только контрольная сумма для заголовка. Не поддерживается повторная передача, нет управления потоком.
 Обнаруженные ошибки могут быть оглашены посредством протокола ICMP (Internet Control Message Protocol) [3], который поддерживается модулем Internet протокола.
 
 
 2. Обзор
 2.1 Связь с другими протоколами
 Следующая диаграмма иллюстрирует место протокола Internet в иерархии протоколов.
 
 
		
|            +------+ +-----+ +------+       +-----+
           |Telnet| | FTP | | TFTP |  ...  | ... |
           +------+ +-----+ +------+       +-----+
                 |   |         |              |
                +-----+     +-----+        +-----+
                | TCP |     | UDP |   ...  | ... |
                +-----+     +-----+        +-----+
                    |          |             |
                   +--------------------------+
                   | Internet Protocol & ICMP |
                   +--------------------------+
                                 |
                    +------------------------+
                    | Local Network Protocol |
                    +------------------------+
 |  Рис. 1 Взаимодействие протоколовПротокол Internet взаимодействует с одной стороны с протоколами передачи информации между хост-компьютерами, а с другой - с протоколами локальной компьютерной сети. При этом локальная сеть может являться малой компьютерной сетью, участвующей в создании большой сети, такой как ARPANET.
 
 2.2 Сценарий работы
 Схему действий для передачи датаграммы от одной прикладной программы к другой можно проиллюстрировать следующим образом:
 Предположим, что перенос будет включать прохождение одного промежуточного шлюза. Отправляющая прикладная программа готовит свои данные и вызывает свой локальный Internet модуль для отправки этих данных в качестве датаграммы, а в качестве аргументов этого вызова передает адрес получателя и другие параметры.
 Модуль Internet готовит заголовок датаграммы и стыкует с ним данные. Модуль Internet определяет локальный сетевой адрес, соответствующий данному адресу Internet. В данном случае это адрес шлюза.
 Модуль передает данную датаграмму и адрес в локальной сети в распоряжение интерфейса локальной сети.
 Интерфейс локальной сети создает соответствующий этой сети заголовок и соединяет с ним датаграмму. Затем он передает по локальной сети полученный таким образом результат.
 Датаграмма достигает хост-компьютер, играющий роль шлюза и расположенный в вершине сети. Интерфейс локальной сети отделяет этот заголовок и передает датаграмму на модуль Internet. Модуль Internet определяет из Internet адреса, что датаграмма должна быть направлена на хост-компьютер во второй сети. Модуль Internet определяет адрес хоста-получателя в локальной сети. Он обращается к интерфейсу локальной сети с тем, чтобы она переслала данную датаграмму по назначению.
 Интерфейс создает заголовок локальной сети и соединяет с ним датаграмму, а затем результат на правляет на хост-получатель.
 На хосте-получателе интерфейс локальной сети удалает заголовок локальной сети и передает оставшееся на Internet модуль.
 Модуль Internet определяет, что рассматриваемая выше датаграмма предназначена для прикладной программы на этот хосте. Модуль передает данные прикладной программе в ответ на системный вызов. В качестве результата этого вызова передаются адрес получателя и другие параметры.
 
 
		
| прикладная программа                               прикладная программа
           \                                            /
      модуль Internet       модуль Internet      модуль Internet
              \                /        \            /
             LNI-1         LNI-1        LNI-2     LNI2
                 \          /              \      /
                локальная сеть 1        локальная сеть 2
 |  Рис. 2 Путь передачи датаграммы
 2.3 Описание функций
 Функция или цель протокола Internet состоит в передаче датаграммы через набор объединенных компьютерных сетей. Это осуществляется посредством передачи датаграмм от одного модуля Internet к другому до тех пор, пока не будет достигнут получатель. Модули Internet находятся на хостах и шлюзах системы Internet. Датаграммы направляются с одного модуля Internet на другой через конкретные компьютерные сети, основанные на интерпретации Internet адресов. Таким образом, одним из важных механизмов протокола Internet является Internet адрес.
 При передаче сообщений с одного Internet модуля на другой датаграммы могут нуждаться в прохождении через сети, для которых максимальный размер пакета меньше, чем размер датаграммы. Чтобы преодолеть эту сложность, в протокол Internet включен механизм фрагментации.
 Адресация. В протоколе сделано разграничение между именами, адресами и маршрутами [4]. Имя показывает искомый нами объект. Адрес показывает его местонахождение. Internet имеет дело с адресами. Перевод имен в адреса является задачей протоколов более высокого уровня (прикладных программ или протоколов передачи синхронизации с хоста на хост). Собственно модуль Internet осуществляет отображение адресов Internet на адреса локальной сети. Создание карты адресов локальной сети для получения маршрутов - задача процедур более низкого уровня (процедур локальной сети или шлюзов).
 Адреса имеют фиксированную длину четыре октета (32 бита). Адрес начинается с сетевого номера, за которым следует локальный адрес (называемый полем остатка "rest"). Существуют три формата или класса адресов Internet. В классе a самый старший бит нулевой. Следующие 7 бит определяют сеть. а последние 24 бита - локальный адрес. В классе b самые старшие два бита равны соответственно 1 и 0, следующие 14 бит определяют сеть, а последние 16 бит - локальный адрес. В классе c три самых старших бита равны соответственно 1,1 и 0, следующие 21 бит определяют сеть, а последние 8 бит - локальный адрес.
 При отображении карты Internet адресов на адреса локальной сети следует соблюдать осторожность. Единичный хост-компьютер должен уметь работать так, как если бы на его месте существовало несколько отдельных хост-компьютеров для использования нескольких адресов Internet. Некоторые хост-компьютеры будут также иметь несколько физических
 интерфейсов (multi-homing).
 Таким образом, следует обеспечить каждый хост-компьютер несколькими физическими сетевыми интерфейсами, имеющими по несколько логических адресов Internet.
 Примеры построения карты адресов можно найти в документе "Address Mapping" [5].
 Фрагментация. Фрагментация Internet датаграммы необходима, когда эта датаграмма возникает в локальной сети, позволяющей работать с пакетами большого размера, и затем должна пройти к получателю через другую локальную сеть, которая ограничивает пакеты меньшим размером.
 Internet датаграмма может быть помечена как нефрагментируемая. Любая Internet датаграмма, помеченная таким образом, не может быть фрагментирована модулем Internet ни при каких условиях. Если же Internet датаграмма, помеченная как нефрагментируемая, тем не менее не может достигнуть получателя без фрагментации, то вместо этого она будет разрушена.
 Фрагментация, перенос и сборка в локальной сети, невидимые для модуля Internet протокола, называются внутрисетевой фрагментацией и могут быть всегда использованы [6].
 Необходимо, чтобы Internet процедуры фрагментации и сборки могли разбивать датаграмму на почти любое количество частей, которые впоследствии могли бы быть вновь собраны. Получатель фрагмента использует поле идентификации для того, чтобы быть убежденным в том, что фрагменты различных датаграмм не будут перепутаны. Поле смещения фрагмента сообщает получателю положение фрагмента в исходной датаграмме. Смещение фрагмента и длина определяют кусок исходной датаграммы, принесенный этим фрагментом. Флаг "more fragments" показывает (посредством перезагрузки) появление последнего фрагмента. Эти поля дают достаточное количество информации для сборки датаграмм.
 Поле идентификации позволяет отличить фрагменты одной датаграммы от фрагментов другой. Модуль Internet, отправляющий Internet датаграмму, устанавливает в поле идентификации значение, которое должно быть уникальным для данной пары отправитель - получатель, а также время, в течении которого датаграмма будет активна в системе Internet. Модуль протокола, отправляющий нерасчлененную датаграмму, устанавливает в нуль флаг "more fragments" и смещение во фрагменте.
 Чтобы расчленить большую Internet датаграмму, модуль протокола Internet (например, шлюз), создает две новые Intenet датаграммы и копирует содержимое полей Internet заголовка из большой датаграммы в оба новых Internet заголовка. Данные из старой датаграммы делятся на две части по границе на очередном восьмом октете (64 бита). Полученная таким образом вторая часть может быть кратна 8 октетам, а может и не быть, но первая часть кратна всегда. Заказывается количество блоков первой части NFB (количество блоков фрагмента). Первая часть данных помещается в первую новую Internet датаграмму, в поле общей длины помещается длина первой датаграммы. Флаг "more fragments" устанавливается в единицу. Вторая часть данных помещается во вторую новообразованную Internet датаграмму, в поле общей длины заносится длина второй датаграммы. В поле смещения фрагмента во второй Internet датаграмме устанавливается значение такого же поля в исходной большой датаграмме, увеличенное на NFB.
 Эта процедура может быть обобщена на случай многократного расщепления исходной датаграммы.
 Чтобы собрать фрагменты Internet датаграммы, модуль протокола Internet (например, модуль на хост-компьютере) объединяет Internet датаграммы, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола. Собственно объединение заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке Internet пакета в поле "fragment offset". Первый фрагмент будет иметь в поле "fragment offset" нулевое значение, а последний фрагмент будет иметь флаг "more fragments", вновь установленный в нуль.
 
 2.4 Шлюзы
 С помощью шлюзов протокол Internet осуществляет передачу датаграмм между сетями. Шлюзы также поддерживают протокол шлюз-шлюз (GGR) [7] для координации маршрутизации и передачи другой управляющей информации для протокола Internet.
 Нет нужды держать на шлюзе протоколы более высокого уровня, а функции GGP добавляются к возможностям IP модуля.
 
 
		
|                    +--------------------------------+
                   | Internet протокол & ICMP & GGP |
                   +--------------------------------+
                           |                |
                 +----------------+  +----------------+
                 | локальная сеть |  | локальная сеть |
                 +----------------+  +----------------+
 |  Рис. 3   Протоколы шлюзов
 
 3. Специфиация
 3.1 Формат заголовка Internet
 Ниже приведена полная схема полей заголовка Internet
 
 
		
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |Type of Service|          Total Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|      Fragment Offset    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Time to Live |    Protocol   |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options                    |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Рис. 4 Пример заголовка Internet датаграммыЗаметим, что каждая позиция соответствует одному биту.
 
 Version (версия) 4 бита
 Поле версии показывает формат заголовка Internet. Данный документ описывает версию 4.
 IHL (длина Internet заголовка) 4 бита
 Длина Internet заголовка измеряется в словах по 32 бита каждый и указывает на начало поля данных. Заметим, что корректный заголовок может иметь минимальный размер 5 слов.
 Type of Service (тип сервиса) 8 бит
 Тип сервиса определяет с помощью неких абстрактных параметров тип требуемого обслуживания. Эти параметры должны использоваться для управления выбором реальных рабочих характеристик при передаче датаграммы через конкретную сеть. Некоторые сети осуществляют обслуживание с приоритетом, которое неким образом дает преимущество для продвижения данной датаграммы по сравнению со всеми остальными. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью.
 биты 0-2  приоритет
 бит 3     0 - нормальная задержка, 1 - малая задержка
 бит 4     0 - нормальная пропускная способность, 1 - высокая пропускная способность
 бит 5     0 -  обычная достоверность, 1 - высокая достоверность
 биты 6-7 зарезервированы
 
 
		
|       0     1     2     3     4     5     6     7
   +-----+-----+-----+-----+-----+-----+-----+-----+
   |     приоритет   |  D  |  T  |  R  |  0  |  0  |
   +-----+-----+-----+-----+-----+-----+-----+-----+
 |     Приоритет111 - управление сетью
 110 - межсетевое управление
 101 - CRITIC/ECP
 100 - более, чем мгновенно
 011 - мгновенно
 010 - немедленно
 001 - приоритетно
 000 - обычный маршрут
 
 Использование индикации задержки, пропускной способности и достоверности может, в некотором смысле, увеличить стоимость обслуживания. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого. Исключения, когда имело бы смысл устанавливать два из этих трех параметров, очень редки.
 Тип обслуживания используется для указания типа обработки датаграммы при ее прохождении через систему Internet. Примеры отображения типа обслуживания в протоколе Internet на реальные услуги, предоставляемые такими сетями, как AUTODIN II, ARPANET, SATNET и PRNET даны в документе "Service Mapping" [8]. Значение "управление сетью" следует присваивать приоритету только для использования внутри локальной сети. Управление и реальное использование этого аргумента должно находиться в согласии с каждой применяющей его сетью. Аргумент "межсетевое управление" предназначен только для использования шлюзами, берущими на себя управление. Если вышеописанные аргументы приоритета находят применение в какой-либо сети, то это означает, что данная сеть может управлять приемом и использованием этих аргументов.
 Total Length (общая длина) 16 бит
 Общая длина - это длина датаграммы, измеренная в октетах, включая Internet заголовок и поле данных. Это поле может задавать длину датаграммы вплоть до 65535 октетов. В большинстве хост-компьютеров и сетей столь большие датаграммы не используются. Все хосты должны быть готовы принимать датаграммы вплоть до 576 октетов длиной (приходят ли они целиком или по фрагментам). Хостам рекомендуется отправлять датаграммы размером более чем 576 октетов, только если они уверены, что принимающий хост готов обслуживать датаграммы повышенного размера.
 Значение 576 выбрано с тем, чтобы соответсвующим образом ограниченный блок данных передавался вместе с требуемой информацией в заголовке. Например, этот размер позволяет заполнять датаграмму полем данных размером в 512 октетов и заголовком в 64 октета. Наибольший Internet заголовок занимает 60 октетов, а его типичный размер составляет всего 20 октетов, что оставляет место под заголовки протоколов более высокого уровня.
 Identification (идентификатор) 16 бит
 Идентификатор устанавливается отправителеим для сборки фрагментов какой-либо датаграммы.
 Flags (различные управляющие флаги) 16 бит
 бит 0      зарезервирован, должен быть нуль
 бит 1 (DF) 0 - возможно фрагментирование, 1 - запрет фрагментации
 бит 2 (MF) 0 - последний фрагмент, 1 - будут еще фрагменты
 
 
		
|    +----+----+----+
   |  0 | DF | MF |
   +----+----+----+
 |  Fragment Offset (смещение фрагмента) 13 битЭто поле показывает, где в датаграмме находится этот фрагмент. Смещение фрагмента изменяется порциями по 8 октет (64 бита). Первый фрагмент имеет смещение нуль.
 Time to Live (Время жизни) 8 бит
 Это поле показывает максимальное время, в течении которого датаграмме позволено находиться в системе Internet. Если это поле имеет значение нуль, то датаграмма должна быть разрушена. Значение этого поля изменяется при обработке заголовка Internet. Время измеряется в секундах. Однако, поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатываетт эту датаграмму менне, чем за секунду, то поле TTL следует понимать как максимальный интервал времени, в течении которого датаграмма может сущенствовать. Внимание следует обратить на разрушение датаграмм, не могущих достигнуть получателя, а также на ограничение времени жизни датаграммы.
 Protocol (Протокол) 8 бит
 Это поле показывает, какой протокол следующего уровня использует данные из Internet датаграммы. Значения для различных протоколов приводятся в документе "Assigned Numbers" [9].
 Header Checksum (Контрольная сумма заголовка) 16 бит
 Поскольку некоторые поля заголовка меняют свое значение (например, время жизни), это значение проверяется и повторно рассчитывается при каждой обработке Internet заголовка.
 Алгоритм контрольной суммы следующий:
 Поле контрольной суммы - это 16 бит, дополняющие биты в сумме всех 16 битовых слов заголовка. Для вычисления контрольной суммы значение этого поля устанавливается в нуль.
 Контрольную сумму легко рассчитать и опытным путем доказать ее адекватность, однако это временная мера и должна быть заменена CRC процедурой в зависимости от дальнейшего опыта.
 Source Address (адрес отправителя) 32 бита (см. часть 3.2)
 Destination Address (адрес получателя) 32 бита (см. часть 3.2)
 Options (опции)    поле переменной длины
 Опции могут появиться в датаграммах, а могут и не появляться. Они должны поддерживаться всеми Internet модулями (хостами и шлюзами). Не обязательно каждая конкретная датаграмма несет опции, но нести их все же может.
 В некоторых приложениях опция секретности должна присутствовать во всех датаграммах.
 Поле опций не имеет постояннойц длины. Опций может не быть, а может быть несколько. Существуют два формата опции:
 
  единичный октет с указанием типа опции
 единичный октет с указанием типа опции, октет для указания длины опции, и, наконец, октеты собственно данных.Октет длины поля учитывает октет типа опции, сам себя и октеты с данными для опции.
 Считается, что октет типа опции состоит из трех полей:
 1 бит   флаг копирования
 2 бита  класс опции
 5 бит   номер опции
 Флаг копирования показывает, что эта опция копируется во все фрагменты при фрагментации.
 0 - не копируется
 1 - копируется
 Классы опции
 0 - управление
 1 - резервировано
 2 - отладка и измерения
 3 - резервировано
 Определены следующие опции Internet
 
		
			
				| 
					
						
					| класс | номер | длина | описание |  
					| 0 | 0 | - | Конец списка опций. Эта опция занимает лишь один октет; октет длины отсутствует. |  
					| 0 | 1 | - | Нет операции. Эта опция занимает лишь один октет. Не имеет октета длины. |  
					| 0 | 2 | 11 | Безопасность. Используется для поддержания безопасности; изоляции; разделения на группы пользователей (TCC); обработки кодов ограничения; соответсвующих DOD требованиям. |  
					| 0 | 3 | перем | Потеря маршрута отправителя. Используется для передачи Internet датаграммы; основанной на имеющейся у отправителя информации |  
					| 0 | 9 | перем | Определение маршрута отправителя. Используется для передачи Internet датаграммы; основанной на имеющейся у отправителя информации |  
					| 0 | 7 | перем | Запись маршрута. Используется для отслеживания проходимого Internet датаграммой маршрута. |  
					| 0 | 8 | 4 | Идентификатор маршрута. Используется для поддержки идентификации потока. |  
					| 2 | 4 | перем | Временной штамп Internet. |  |     Отдельные описания опций
 
		
|            +--------+
   Тип 0   |00000000| End of Option List   (конец списка опций)
           +--------+
 |        Эта опция обозначает конец списка опций. Он может не совпадать с окончанием Internet заголовка, обозначаемым полем Internet header length. Эта опция используется после всех опций, но не после каждой. Она необходима только в том случае, если конец списка опций не совпал с окончанием Internet заголовка.Может быть скопирован, внесен или удален при фрагментации, или по какой-либо другой причине.
 
 
		
|            +--------+
   Тип 1   |00000001| No operation  (нет действий)
           +--------+
 |        Эта опция может быть использована между другими опциями. Ее целью может служить, к примеру, выравнивание очередной опции по 32-битной границе. Может быть скопирована, внесена или удалена при фрагментации и по любой другой причине.Тип 130            Security  (безопасность)
 Эта опция дает способ хост-компьютерам отправлять параметры, связанные с безопасностью, закрытостью, введением ограничений и параметрами TCC (закрытой группой пользователей). Формат этой опции следующий:  (длина 11 октетов)
 
 
		
|       +--------+--------+---///---+---///---+---///---+---///----+
      |10000010|00001011|SSS...SSS|CCC...CCC|HHH...HHH|   TCC    |
      +--------+--------+---///---+---///---+---///---+---///----+
 |        Поле S (security) 16 битУказывает один из 16 уровней безопасности (восемь из которых зарезервировано).
 00000000 00000000 - неклассифицировано
 11110001 00110101 - конфиденциальный
 01111000 10011010 - EFTO
 10111100 01001101 - MMMM
 01011110 00100110 - PROG
 10101111 00010011 - ограниченный
 11010111 10001000 - секретный
 01101011 11000101 - особо секретный
 00110101 11100010 - резервировано
 10011010 11110001 - резервировано
 01001101 01111000 - резервировано
 00100100 10111101 - резервировано
 00010011 01011110 - резервировано
 10001001 10101111 - резервировано
 11000100 11010110 - резервировано
 11100010 01101011 - резервировано
 Поле C (compartments) 16 бит
 Нулевое значение во всех позициях используется когда передача информации не ограничена. Остальные значения для этого поля можно получить от Секретного Оборонного Агенства.
 Поле H (введение ограничений) 16 бит
 Значения для управления и внесения меток являются буквенно-цифровыми диграммами и опредены в документе DIAM 65-19 "Standard Security Markings".
 Поле TCC (поле управления переносом) 24 бита
 Дает средства для отслеживания процесса отделения, его значения контролируются группами заинтересованных подписчиков. Значения TCC имеют три поля для записей и могут быть получены из документа HQ DCA Code 530.
 Рассматриваемый тип должен копироваться при фрагментации. Эта опция появляется в датаграмме не более одного раза.
 Тип 131  Loose Source and Record Route (Потеря отправителя и запись маршрута)
 
 
		
|       +--------+--------+---------+------- // ------+
      |10000011| длина  |указатель|данные о маршруте|
      +--------+--------+---------+------- // ------+
 |        Опция потери отправителя и записи маршрута (LSRR) обеспечивает средства, позволяющие отправителю Internet датаграммы передавать информацию, используемую шлюзами при передаче датаграмм по назначению, а также записывать информацию о маршруте. Опция начинается с кода типа. Второй октет - октет длины, которая учитывает код типа опции и сам себя, а также октет указателя. Третий октет является указателем на данные о маршруте, он определяет октет, с которого начинается следующий адрес отправителя, подлежащий обработке. Указатель отсчитывается от начала рассматриваемой опции, а его наименьшее допустимое значение - 4.Данные о маршруте состоят из ряда Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель превышает длину, то маршрут отправителя пуст (поле с записями маршрута заполнено), а маршрутизация должна основываться на значениях поля с адресом получателя.
 Если адрес, записанный в поле адреса получателя, был достигнут, а указатель не превысил длину, то следующий адрес в маршруте отправителя замещает адрес в поле с адресом получателя. Записанный адрес маршрута заменяет только что использованный адрес отправителя, а указатель увеличивается на 4.
 Записанный адрес маршрута является собственным Internet адресом Internet модуля, известным во внешнем окружении, куда эта датаграмма направляется.
 Эта процедура замещения исходного маршрута записанным маршрутом (хотя при обратном порядке он должен использоваться как маршрут отправителя) означает, что данная опция (а также и весь IP заголовок) сохраняет постоянный размер при прохождении датаграммы по Internet системе.
 Эта опция называется потерей маршрута отправителя (loose source route), поскольку шлюз или IP хост могут использовать любые маршруты через любое количество других промежуточных шлюзов для достижения следующего адреса в рассматриваемом маршруте. При фрагментации опция должна копироваться. В датаграмме она должна появляться не более одного раза.
 Тип 137  Strict Source and Record Route (Уточнить отправитель и записать маршрут)
 
 
		
|       +--------+--------+---------+------- // --------+
      |10001001| длина  |указатель| данные о маршруте |
      +--------+--------+---------+------- // --------+
 |        Опция "уточнить отправитель и записать маршрут" (SSRR) дает средства отправителю Internet датаграммы для поддержания информации о маршрутизации, которая должна использоваться шлюзами при передаче датаграммы по назначению, а также для записи этой информации.Опция начинается с кода типа. Второй октет - длина опции, которая учитывает код типа опции и октет длины, октет указателя (3 октета с данными о маршруте). Третий октет является указателем на данные маршрута, определяющим октет, с которого начинается следующий адрес отправителя, подлежащий обработке. Указатель отсчитывается с начала этой опции, а наименьшее допустимое значение указателя - 4.
 Данные о маршруте состоят из серии Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель превышает длину, то маршрут отправителя пуст (записываемый маршрут полон), а маршрутизация основывается на значении поля с адресом получателя.
 Если адрес в поле адреса получателя был достигнут, а указатель не превышает длины, то следующий адрес в маршруте отправителя замещает адрес в поле с адресом получателя, а записанный адрес маршрута замещает только что использованный адоес отправителя, указатель увеличивается на 4.
 Записанный адрес маршрута - это собственный Internet - адрес Internet - модуля, как он был бы распознан во внешней среде, куда эта датаграмма направляется.
 Эта процедура замещения маршрута отправителя записанным маршрутом (хотя в обратном порядке он должен использоваться как маршрут отправителя) означает, что опция (и весь IP заголовок) сохраняет постоянный размер при прохождении датаграммы через Internet систему.
 Эта опция является точным маршрутом отправителя, поскольку шлюз или IP хост должен посылать данную датаграмму непосредственно на следующий адрес в маршруте отправителя через напрямую соединенную сеть, на адрес, показывающий следующий шлюз или хост, указанный в маршруте.
 Опция должна копироваться при фрагментации. Появляется не более одного раза в датаграмме.
 Тип 7  Record Route        (Записать маршрут)
 
 
		
|       +--------+--------+---------+------- // --------+
      |00000111| длина  |указатель| данные о маршруте |
      +--------+--------+---------+------- // --------+
 |           Опция записи маршрута дает средства для записи маршрута Internet датаграммы. Опция начинается с кода типа. Второй октет определяет длину опции, которая учитывает код типа опции, сам себя, октет указателя и длину трех октетов с данными о маршруте. Третий октет является указателем на данные маршрута. Указатель определяет октет, с которого начинается следующее поле для размещения адреса маршрута. Указатель отсчитывается от начала рассматриваемой опции, а его наименьшее допустимое значение - 4.
 Записываемый маршрут состоит из серии Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель больше, чем длина опции, то поле с записываемым маршрутом заполнено. Хост - компьютер, создающий эту опцию, должен зарезервировать поле с данными о маршруте и достаточным размером, с тем, чтобы оно вместило все ожидаемые адреса. Размер этой опции не изменяется при добавлении адресов. Первоначальное содержимое поля под данные о маршруте должно быть нулевым.
 Когда Internet модуль направляет датаграмму, он проверяет ее на присутствие рассматриваемой опции с записываемым маршрутом. Если она присутствует, то он вставляет свой собственный Internet адрес в качестве распознанного во внешней среде, куда эта датаграмма направлена. Вставка осуществляется в опцию записи маршрута, в то место, на которое указывает октет указателя. Указатель затем увеличивается на 4.
 Если поле с данными о маршруте уже заполнено (указатель превышает длину), то датаграмма направляется без вставки адреса в опцию заполняемого маршрута. Если имеется некоторое пространство, но недостаточное для вставки полного адреса, то исходная датаграмма считается ошибочной и разрушается. И в том, и в другом случае на хост-отправитель напрвляется сообщение о проблеме с ICMP параметром [3].
 При фрагментации не копируется, присутствует лишь в первом фрагменте. В датаграмме присутствует не более одного раза.
 Тип 136 (длина 4) Stream Identifier (Идентификатор потока)
 
 
		
|       +--------+--------+--------------------+
      |10001000|00000010|идентификатор потока|
      +--------+--------+--------------------+
 |           Эта опция дает средства для поддержания 16-битовой SATNET идентифткации потока в сетях, которые первоначально не поддерживали потоковую концепцию.Опцтя должна копироваться при фрагментации. В датаграмме появляется не более одного раза.
 Тип 68  Internet timestamp (Временной штамп Internet)
 
 
		
|       +--------+--------+---------+-----+-----+
      |01000100| длина  |указатель|oflw | flg |
      +--------+--------+---------+-----+-----+
      |           Internet адрес              |
      +---------------------------------------+
      |              Timestamp                |
      +---------------------------------------+
      |                                       |
 |           Длина - это количество октетов в опции, которое учитывает октеты типа, длины, указателя и overflow/flag (максимальная длина 40 октетов).Указатель - это количество октетов от начала этой опции до конца временных штампов, плюс единица (т.е. он указывает на октет, с которого начинается свободное место для следующего временного штампа). Наименьшее допустимое значение - 5. Поле временного штампа считается заполненным, когда указатель превышает длину опции.
 Overflow (oflw, переполнение  4 бита) - это количество IP модулей, которые не могут произвести регистрацию временных штампов по причине отсутствия свободного места.
 Flag (flg, флаги  4 бита) - это
 0 - оставлять лишь временные штампы, размещенные в следующих друг за другом 32-битных словах
 1 - каждому временному штампу предшествует Internet адрес регистрируемого объекта
 3 - поля Internet адресов определены заранее. IP модуль лишь регистрирует свой временной штамп, если его собственный адрес совпадает со следующим указанным Inernet адресом.
 Timestamp - это выровненный по правой границе 32-битный временной штамп в миллисекундах (относительно полуночи по Единому Времени). Если время в миллисекундах неопределимо или не может быть отсчитано относительно полуночи по Единому Времени, то может быть внесено любое другое время в качестве временного штампа при условии, что самый старший бит в поле временного штампа будет установлен в единицу (что указавает на использование нестандартного значения).
 Хост-отправитель должен создавать эту опцию так, чтобы поля для временных штампов были достаточны для размещения всей ожидаемой информации. Размер опции не изменяется при добавлении временных штампов. Первоначально содержимое поля под временные штампы должно быть заполнено нулями, либо Internet адреса должны чередоваться с нулями.
 Если поле с временными штампами уже заполнено (указатель превышает длину опции), то датаграмма передается без вставки временного штампа, а счетчик переполнения увеличивается на единицу.
 Если имеется место, но оно недостаточно для вставки полного временного штампа, или же счетчик переполнения сам переполнен, то исходная датаграмма рассматривается как ошибочная и уничтожается. И в том, и в другом случае на хост-отправитель должно посылаться сообщение о проблеме с ICMP параметром [3].
 Опция временного штампа не копируется при фрагментации, а сохраняется в первом фрагменте. В датаграмме появляется не более одного раза.
 Padding (Выравнивание)
 Выравнивание Internet заголовка используется для того, чтобы убедиться в том, Internet заголовок заканчивается на 32-битной границе. Варавнивание осуществляется нулями.
 
 3.2 Обсуждение
 Реализация протокола должна быть ясной. Каждая реализация должна предвидеть работу с другими реализациями, созданными другими людьми. Хотя цель этой спецификации - уточнение данного протокола, тем не менее существует различие интерпретаций. В общем случае реализация должна сохранять консерватизм в манере отправления, а свобода существует лишь в манере получения информации. А именно, реализация должна быть аккуратной в посылке хорошо определенных датаграмм и должна принимать любую датаграмму, которую она могла бы интерпретировать (т.е. нет среды для технических ошибок).
 Основные Internet службы ориентированы на датаграммы и обеспечивают фрагментацию датаграмм на шлюзах, сборку на модуле Internet протокола на хосте-получателе. Конечно, фрагментация и сборка датаграмм в сети или по предварительному согласованию между шлюзами также разрешена, поскольку это очевидно для Internet протоколов и протоколов более высокого уровня. Этот очевидный тип фрагментации и сборки называется фрагментацией, зависящей от сети (или Internet), и далее здесь не обсуждается.
 Отправителей и получателей на уровне хост-компьютера позволяют отличать Internet адреса, а также поле протокола. Предполагается, что каждый протокол будет определять, есть ли нужда в мультиплексировании на хосте.
 
 Адресация
 Чтобы обеспечить гибкость в присвоении адресов комптьютерным сетям и позволить применение большого количества малых и средних сетей, поле адреса кодируется таким образом, чтобы определять малое количество сетей с большим количеством хостов, среднее количество сетей со средним количеством хостов и большое количество сетей с малым количеством хостов. Дополнительно имеется escape код для расширенного режима адресации.
 Форматы адресации
 
 
		
			
				| 
					
						
					| Старшие биты | Формат | Класс |  
					| 0 | 7 бит в сети; 24 бита для хостов | А |  
					| 10 | 14 бит в сети; 16 бит для хостов | В |  
					| 110 | 21 бит для сети; 8 бит для хостов | С |  
					| 111 | переход в расширенный режим адресации |  |  |     Нулевое значение в поле сети означает данную сеть. Этот режим используется только в определенных ICMP сообщениях. Расширенный режим адресации неопределен. Обе эти возможности зарезервированы для будущих реализаций. Реальные значения, присваиваемые сетевым адресам, даны в документе "Assigned Numbers" [9].Локальный адрес, присвоенный локальной сети, должен позволять одиночному физическому хосту работать как несколько отдельных Internet хостов. А именно, должен существовать промежуток между адресами Internet хостов и должны присутствовать интерфейсы между сетью и хостом, которые позволили бы нескольким Internet адресам соответствовать одному интерфейсу. Хост должен иметь возможность для поддержки нескольких физических интерфейсов и для обработки датаграмм с любого из них, как если бы они были адресованы к единственному хосту.
 Карта соответствия между Internet адресами и адресами таких сетей, как ARPANET, SATNET, PRNET и др. описаны в документе "Address Mapping" [5].
 
 Фрагментация и сборка
 Поле Internet идентификации (ID) используется вместе с адресамиотправителя и получателя, полями протокола для идентификации фрагментов датаграммы при сборке.
 Бит флага More Fragments (MF) устанавливается, если датаграмма не является последним фрагментом. Поле Fragment Offset идентифицирует расположение фрагмента относительно начала в первоначальной нефрагментированной датаграмме. Единица измерения - 8 октетов. Стратегия фрагментации разработана так, чтобы нефрагментированная датаграмма имела нули во всех полях с информацией о фрагментации (MF=0, Fragment Offset=0). Если же Internet датаграмма фрагментируется, то выделение информации производится кусками и по границе 8 октет.
 Данный формат позволяет использовать 2**32=8192 фрагментов по 8 октетов каждый, а в целом 65536 октетов. Заметим, что это совпадает со значением поля общей длины для датаграммы (конечно, заголовок учитывается в общей длине датаграммы, но не фрагментов).
 Когда происходит фрагментация, то некоторые опции копируются, а другие остаются лишь в первом фрагменте.
 Каждый Internet модуль должен быть способен передать датаграмму из 68 октетов без дальнейшей фрагментации. Это происходит потому, что Internet заголовок может включать до 60 октетов, а минимальный фрагмент - 8 октетов. Каждый Internet - получатель должен быть в состоянии принять датаграмму из 576 октетов в качестве единого куска, либо в виде фрагментов, подлежащих сборке.
 Процесс фрагментации может повлиять на предыдущие поля
 
 
		
			
				| 
					
						
					| 1 | поле опций |  
					| 2 | флаг "more fragments" |  
					| 3 | смещение фрагмента |  
					| 4 | поле длины Internet заголовка |  
					| 5 | поле общей длины |  
					| 6 | контрольная сумма заголовка |  |     Если бит флага запрета фрагментации (Don't Fragment - DF) установлен, то Internet фрагментация данной датаграммы запрещена, даже если она может быть разрушена. Данное средство может использоваться для предотвращения фрагментации в тех случаях, когда хост-получатель не имеет достаточных ресурсов для сборки Internet фрагментов.Одним из примеров использования средства запрета фрагментации должна служить линия, ведущая к малому хосту. Маленький хост может иметь фмксированную загрузочную программу, которая принимает датаграмму, помещает в памяти, а затем исполныет ее.
 Процедуры фрагментации и сборки наиболее просто описываются примерами. Следующие процедуры являются учебными реализациями.
 В следующих псевдопрограммах принимается следующая нотация: "=<" означает "меньше или равно", "#" означает "не равно", "=" означает "равно", "<-" означает "устанавливается в". Кроме этого, "с x по y" означает включительно по x, но не включая y. К примеру, выражение "с 4 по 7" означало бы включение 4,5 и 6, но не включало бы 7.
 
 Пример процедуры фрагментации
 Датаграмма наибольшего размера, которая еще может быть передана через очередную локальную сеть, называется наибольшей передаваемой единицей (maximum transmission unit - MTU).
 Если общая длина датаграммы меньше или равна максимальной
 передаваемой единице, то датаграмма передается следующим процедурам обработки. В противном случае прежде она разбивается на два фрагмента, причем первый из них будет иметь максимальный размер, соотвественно во второй фрагмент будет помещен остаток исходной датаграммы. Первый фрагмент отправляется на дальнейшую обработку, а второй повторно подвергается только что рассмотренной процедуре, если и его размер окажется слишком большим.
 Обозначения:
 
 
		
			
				| 
					
						
					| FO | смещение фрагмента |  
					| IHL | длина Internet заголовка |  
					| DF | флаг запрета фрагментации |  
					| MF | флаг появления дополнительных фрагментов |  
					| TL | общая длина |  
					| OFO | старое смещение фрагмента |  
					| OIHL | старая длина Internet заголовка |  
					| OMF | старое значение флага появление дополнительных фрагментов |  
					| OTL | старое значение общей длины |  
					| NFB | количество блоков фрагментации |  
					| MTU | максимальная длина переноса |  |  Процедура
 
	
		| IF TL =< MTU THEN отправить датаграмму на следующие процедуры обработки ELSE
 IF DF =1 THEN разрушить датаграмму
 ELSE
 создать первый фрагмент
 (1) скопировать исходный Internet заголовок;
 (2) OIHL <- IHL; OTL <- TL; OMF <- MF;
 (3) NFB <- (MTU - IHL*4)/8;
 (4) взять первые NFB*8 октетов данных;
 (5) скорректировать заголовок:
 MF <- 1; TL <- (IHL*4)+(NFB*8);
 пересчитать контрольную сумму;
 (6) направить данный фрагмент на последующие процедуры обработки создать второй фрагмент:
 (7) выборочно скопировать Internet заголовок (некоторые опции не копируются, см. определение опций)
 (8) добавить оставшиеся данные
 (9) скорректировать заголовок
 IHL <- (((OIHL*4)-(длина нескопированных опций))+3)/4;
 TL <- OTL - NFB*8 - (OIHL-IHL)*4;
 FO <- OFO + NFB;  MF <- OMF;
 пересчитать контрольную сумму;
 (10) Приготовить этот фрагмент к повторному тесту на необходимость фрагментации. Выполнить.
 |  
   В предыдущей процедуре каждый фрагмент (за исключением последнего) получает максимально разрешенную длину. Альтернатива может заключаться в создании датаграмм, не достигающих максимального размера. Для примера, она может включать процедуру фрагментации, которая повторно делит большие датаграммы пополам до тех пор, пока получающиеся фрагменты не станут короче, чем максимальный допустимый размер передаваемой единицы.
 Пример процедуры сборки
 Для каждой датаграммы идентификатор буфера определяется как объединение полей адреса отправителя, адреса получателя, протокола и идентификации. Если это целая датаграмма (поля fragment offset и more fragments нулевые), то все ресурсы, связанные с этим идентификатором буфера, освобождаются, а сама датаграмма направляется на следующие процедуры обработки.
 Если следующий фрагмент не связан с этим идентификатором буфера, то выделяются ресурсы для сборки. Они включают буфер данных, буфер заголовка, битовую таблицу фрагментации, поле общей длины данных, а также таймер. Данные из фрагмента помещаются в буфер данных в соответствии со значением полей fragment offset и длины, а также устанавливаются биты в битовой таблице фрагментации согласно полученным блокам фрагментов.
 Если это первый фрагмент (поле fragment offset нулевое), то его заголовок помещается в буфер заголовка. Если это последний фрагмент (поле more fragments нулевое), то вычисляется общая длина данных. Если этот фрагмент завершает датаграмму (проверяется по установке битов в таблице фрагментации), то датаграмма направляется на следующий этап обработки. В противном случае таймер устанавливается на максимальное из двух: текущее значение таймера и время жизни для данного фрагмента. Выполнение процедуры сборки приостанавливается.
 Если таймер отсчитал положенное время, то все ресурсы сборки, связанные с данным идентификатором буфера, освобождаются. Первоначальная установка таймера является нижней границей для времени ожидания при сборке. Это происходит потому, что всемя ожидания будет увеличено, если время жизни приходящего фрагмента окажется больше, но не может быть уменьшено. Установка таймера может достигать максимального времени жизни (примерно 4.25 минуты). В настоящее время рекомендуется первоначально устанавливать таймер на 15 секунд. Это значение можно изменить при получении достаночного практического опыта. Заметим, что выбор значения для этого параметра связи связан с емкостью буфера и скоростью получения данных с коммуникационных сетей. Например, скорость получения данных следует умножать на размер буфера (т.е. 10 кбайт/сек * 15 сек = 150 кбайт).
 Обозначения
 
 
		
			
				| 
					
						
					| FO | смещение фрагмента |  
					| IHL | длина Internet заголовка |  
					| MF | флаг More Fragments |  
					| TTL | время жизни |  
					| NFB | количество фрагментов |  
					| TL | общая длина |  
					| TDL | общая длина данных |  
					| BUFID | идентификатор буфера |  
					| RCVBT | битовая таблица фрагментации |  
					| TLB | нижняя граница для значения таймера |  |  Процедура(1) BUFID <- отправитель|получатель|протокол|идентификация;
 (2) IF FO = 0 AND MF = 0 THEN
 (3)     IF буфер с идентификатором BUFID выделены THEN
 (4)         завершить сборку для этого идентификатора BUFID;
 (5)         Приготовить датаграмму для дальнейшей обработки.
 Запустить обработку
 (6)     ELSE
 IF буфер для идентификатора BUFID не выделен THEN
 (7)             выделить ресурсы для сборки с идентификатором BUFID
 TIMER <- TLB; TDL <- 0;
 (8)         перенести данные из фрагмента в буфер данных с идентификатором
 BUFID, данные с октета FO*8 по октет (TL-(IHL*4))+FO*8;
 (9)         установить биты RCVBT с FO по FO+((TL-(IHL*4)+7)/8);
 (10)        IF MF = 0 THEN TDL <- TL-(IHL*4)+(FO*8)
 (11)        IF FO = 0 THEN поместить заголовок в буфер заголовка
 (12)        IF TDL # 0 AND все биты RCVBT с 0 по (TDL+7)/8 выставлены THEN
 (14)            TL <- TDL+(IHL*4)
 (15)            Приготовить датаграмму к дальнейшей обработке
 (16)            Освободить все ресурсы сборки для этого идентификатора
 BUFID. Запустить обработку.
 (17)        TIMER <- MAX(TIMER,TTL);
 (18)        приостановить работу до получения следующего фрагмента или
 сигнала от таймера
 (19) Сигнал от таймера:
 Освободить все ресурсы, связанные с этим идентификатором BUFID.
 В случае, если два или более фрагмента содержат одни и те же данные, либо идентичны или частично перекрываются, то эта процедура будет использовать последнюю полученную копию при создании буфера данных и воссоздании датаграммы.
 
 Идентификация
 Выбор способа идентификации исходит из необходимости уникальной идентификации фрагментов конкретной датаграммы. Модуль протокола, собирающий фрагменты, считает, что они относятся к одной и той же датаграмме, если они имеют общего отправителя, получателя, протокол и идентификатор. Таким образом, отправитель должен выбрать идентификатор таким образом, чтобы он был уникален для данной пары отправителя - получателя, для данного протокола и в течении того времени, пока данная датаграмма (или любой ее фрагмент) может существовать в сети Internet.
 Очевидно, что модуль протокола, отправляющий датаграммы, должен иметь таблицу идентификаторов, где каждая запись соотносится с каждым отдельным получателем, с которым осуществлялась связь, и указывает последнее значение максимального времени жизни датаграммы в сети Internet.
 Однако, поскольку поле идентификатора позволяет использовать 65536 различных значений, некоторые хост-компьютеры могут использовать просто уникальные идентификаторы независимо от адреса получателя.
 Обычно идентификаторы выбирают протоколы более высокого уровня,
 например модули TCP протокола могут повторно передавать идентичные TCP сегменты. Вероятность правильного приема увеличивалась бы, если повторная передача осуществлялась с тем же самым идентификатором, что и исходная датаграмма, поскольку ее фрагменты могли бы использоваться для сборки правильного TCP сегмента.
 
 Тип обслуживания
 Тип обслуживания (TOS) используется для выбора качества Internet сервиса. Тип обслуживания определяется абстрактными параметрами приоритета, задержки, продолжительности и достоверности. Эти параметры должны отображаться на реальные параметры сервиса для конкретных сетей, через которые проходит данная датаграмма.
 Приоритет. Независимая единица измерения для важности данной датаграммы.
 Задержка. Указание задержки важно для датаграмм с этим знаком.
 Пропускная способность. Для датаграмм с этим знаком важна высокая скорость    передачи данных.
 Достоверность. Для датаграмм с таким типом обслуживания важен более высокий уровень усилий, предпринимаемых для обеспечения достоверности.
 Например, сеть ARPANET имеет бит приоритета, а также выбор между "стандартными" сообщениями (тип 0) и "неконтролируемыми" (тип 3) (также в качестве одного из сервисных параметров может использоваться выбор между единичным пакетом и многопакетными сообщениями). Неконтролируемые сообщения имеют тенденцию иметь меньшую достоверность, но и меньшую задержку. Допустим, Internet датаграмма должна быть передана через сеть ARPANET. Пусть тип Internet сервиса определен как
 
 
		
			
				| 
					
						
					| приоритет | 5 |  
					| задержка | 0 |  
					| пропускная способность | 1 |  
					| достоверность | 1 |  |     В рассматриваемом примере отображение описанных параметров на параметры, допустимые в сети ARPANET, привело бы к установке бита приоритета ARPANET (поскольку приоритет Internet находится в верхней половине своего диапазона), выбору стандартного типа сообщений (поскольку указаны требования высокой пропускной способности и достоверности, а параметр задержки сброшен). Дополнительные детали реализации сервиса даны в документе "Service Mappings" [8].
 Время жизни
 Время жизни устанавливается отправителем в соответствии с максимальным значением, которое данная датаграмма может иметь в системе Internet. Если датаграмма пребывает в системе Internet дольше, чем указанное время жизни, она подлежит уничтожению.
 Значение в поле, где указано время жизни, должно уменьшаться в каждой точке, где обрабатывается Internet заголовок, с тем, чтобы показать время, потраченное на обработку датаграммы. Даже если нет возможности получать информацию о том, сколько реально времени было потрачено, значение этого поля должно быть уменьшено на единицу. Время изменяется в секундах (т.е. указанная единица соответствует одной секунде). Таким образом, максимальное время жизни составляет 255 секунд или 4.25 минуты. Поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатывает ее быстрее, чем за секунду, то поле TTL следует рассматривать лишь как верхнюю границу для времени существования датаграммы. Цель процедуры заключается в разрушении датаграмм, не достигших получателя, а также в ограничении времени жизни датаграммы в сети.
 Некоторые протоколы более высокого уровня, управляющие соединениями, основываются на предположении, что старые датаграммы-дубликаты не достигают цели по истечении определенного времени. TTL - это способ, с помощью которого такие протоколы могли бы убедиться, что их предположение удовлетворяется.
 
 Опции
 Опции могут присутствовать в любой датаграмме, но должны всегда быть обработаны. А именно, наличие или отсутствие какой-либо опции дело отправителя, но каждый Internet модуль должен быть в состоянии произвести разбор каждой опции.
 Опции могут оканчиваться не на 32-битной границе. В этом случае Interntet заголовок может дополняться нулевыми октетами. Первый из них должен интрепретироваться как заключительная опция, а остальные - как октеты выравнивания Internet заголовка по границе.
 Каждый Internet модуль должен быть в состоянии реагировать на каждую опцию. Например, опция безопасности требует классификации, внесения ограничений, или передачи по изолированному пути.
 
 Контрольная сумма
 Пересчет контрольной суммы Internet заголовка осуществляется каждый раз при его изменении. Например, это происходит при уменьшении времени жизни, добавлении или изменении Internet опций или при фрагментации. Контрольная сумма на уровне Internet имеет целью защиту полей Internet заголовка от ошибок при пересылке.
 Существуют некоторые приложения, которые могли бы допустить несколько ошибочных битов в поле данных при условии отсутствия задержки. Однако, если Internet протокол усиливает ошибочность данных, то такие приложения не могут поддерживаться.
 
 Ошибки
 Ошибки Internet заголовка могут быть оглашены посредством ICMP сообщений [3].
 
 3.3 Интерфейсы
 Функциональное описание взаимодействия между пользователем и Internet протоколом будет, в лучшем случае, умозрительным в силу специфики операционной системы. Следовательно, мы должны предупредить читатетлей, что различные реализации Internet протокола будут иметь различный интерфейс с пользователем. Тем не менее, все реализации должны давать определенный минимальный набор услуг, с тем, чтобы гарантировать, что все они придерживаются единой иерархи протоколов. Данная глава описывает интерфейс с функцией, обызательный для всех реализаций.
 Internet протокол взаимодействует, с одной стороны, с локальной сетью, а с другой - с протоколом более высокого уровня или прикладной программой. В дальнейшем протокол более высокого уровня или прикладную программу (или даже программу межсетевого шлюза) мы будем называть "пользователем", поскольку они используют Internet модуль для своих целей. Поскольку Internet протокол - это протокол работы с датаграммами, то в промежутке между этапами их передачи системе придаются минимальные ресурсы памяти, она поддерживает определенные регистры состояния, а следовательно, каждый вызов пользователем Internet протокола сообщает системе всю информацию, необходимую для осуществления требуемого сервиса.
 
 Пример интерфейса с вышестоящим уровнем
 Два примера вызовов, приведенные ниже, удовлетворяют запросы пользователя в общении с Internet протоколом (символ "=>" означает возвращаемое значение).
 SEND(src,dst,prot,TOS,TTL,BufPTR,len,Id,DF,opt => result)
 где
 src    - адрес отправителя
 dst    - адрес получателя
 prot   - протокол
 TOS    - тип сервиса
 TTL    - время жизни
 BufPTR - указатель буфера
 len    - длина данных в буфере
 Id     - идентификатор
 DF     - запрет фрагментации
 opt    - опции
 result - ответ:
 Ok    - успешная посылка датаграммы
 Error - ошибка в аргументах функции или в локальной сети
 Заметим, что тип сервиса TOS включает приоритет, а требование безопасности передается в качестве опции.
 RECV(BufPTR,prot => result,src,dst,TOS,len,opt)
 BufPTR - указатель буфера
 prot   - протокол
 result - ответ:
 Ok    - успешное получение датаграммы
 Error - ошибка в аргументах
 len    - длина буфера
 src    - адрес отправителя
 dst    - адрес получателя
 TOS    - тип сервиса
 opt    - опции
 Когда пользователь отправляет датаграмму, он осуществляет SEND вызов, сопровождаемый всеми аргументами. Модуль Internet протокола по получении этого вызова проверяет аргументы, приготавливает и отправляет сообщение. Если аргументы в порядке, а датаграмма принята локальной сетью, то вызов завершается успешно. Если же агрументы неверны или датаграмма не принята локальной сетью, то вызов завершается с ошибкой. В последнем случае должен быть сделан соответствующий отчет о причине проблемы, однако детали таких отчетов относятся уже к конкретным реализациям.
 В момент, когда датаграмма приходит на модуль Internet протокола из локальной сети, может присутствовать ожидающий ее RECV вызов от пользователя - адресата, а может и не присутствовать. В первом случае ожидающий вызов удовлетворяется посылкой информации из датаграммы к пользователю. Во втором случае пользователю - адресату посылается напоминание о ждущей его датаграмме. Если пользователь - адресат не присутствует, отправителю возвращается ICMP сообщение об ошибке, а принятые данные разрушаются.
 Напоминание пользователю может быть выполнено через псевдопрерывание или с помощью аналогичного механизма в соответствии с конкретной операционной системой, поддерживающей данную реализацию.
 Сделанный пользователем запрос RECV может быть немедленно удовлетворен ждущей этого датаграммой или же он может быть задержан до получения соответствующей датаграммы.
 Адрес отправителя включается в запрос на посылку, если отправляющий датаграмму хост-компьютер имеет несколько адресов (несколько физических соединений или же чисто логических адресов). Internet модуль должен следить за тем, чтобы адрес отправителоя был одним из разрешенных адресов для данного хоста.
 Реализация протокола может допускать или даже требовать применения запроса к Internet модулю для обозначения заинтересованности, или же, наоборот, использование исключительно какого-либо класса датаграмм (т.е. всех датаграмм, которые имеют в поле протокола определенное занчение).
 Данная глава характеризует функции интерфейса между пользователем и Internet протоколом. Используемые обозначения аналогичны большинству процедур функций вызовов на языках высокого уровня, однако данный способ обращения с Internert протоколом не является правилом для запросов на обслуживание типа ловушек (т.е. SVC, UUO, EMT), или для любой другой формы общения между процессами.
 
 Приложение А: Примеры и сценарии
 Пример 1
 Пример минимальной Internet датаграммы, несущей данные
 
 
		
| +-------+-------+---------------+-------------------------------+
| Ver=4 | IHL=5 |Type of Service|          Total Length = 21    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Identification = 111    |Flg=0|    Fragment Offset = 0  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Time =123   |  Protocol =1  |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     data      |
+-+-+-+-+-+-+-+-+
 |  Рис. 5  Пример Internet датаграммыНапомним, что каждая метка означает место для одного бита. Здесь приведена Internet датаграмма версии 4 Internet протокола. Internet заголовок состоит из пяти 32 битных слов, а общая длина датаграммы составляет 21 октет. Данная датаграмма является полноценной датаграммой (а не фрагментом).
 
 Пример 2
 В данном примере мы показываем сперва Internet датаграмму промежуточного размера (452 октета данных), а затем два Internet фрагмента, которые могли бы возникнуть при фрагментации исходной датаграммы в случае, когда максимальная допустимая единица пересылки составляла 280 октетов.
 
 
		
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=4 | IHL=5 |Type of Service|          Total Length = 472   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Identification = 111    |Flg=0|    Fragment Offset = 0  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Time =123   |  Protocol =6  |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
\                                                               \
\                                                               \
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              data             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Рис. 6 Пример Internet датаграммыТеперь приведем первый фрагмент, который возникает при расщеплении исходной датаграммы по границе после 256 октета данных.
 
 
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=4 | IHL=5 |Type of Service|          Total Length = 276   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Identification = 111    |Flg=1|    Fragment Offset = 0  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Time =119   |  Protocol =6  |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
\                                                               \
\                                                               \
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  
Рис. 7 Пример Internet фрагмента
 и второй фрагмент
 
 
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=4 | IHL=5 |Type of Service|          Total Length = 216   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Identification = 111    |Flg=0|   Fragment Offset = 32  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Time =119   |  Protocol =6  |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
\                                                               \
\                                                               \
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              data             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  
Рис. 8 Пример Internet заголовка
 
 Пример 3
 Здесь мы показываем пример, когда датаграмма имеет опции
 
 
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=4 | IHL=8 |Type of Service|          Total Length = 576   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Identification = 111    |Flg=0|   Fragment Offset = 32  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Time =123   |  Protocol =6  |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opt. Code = x | Opt. len. = 3 | option value  | Opt. Code = x |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opt. len. = 4 |        option value           | Opt. Code = 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opt. Code = y | Opt. len. = 3 | option value  | Opt. Code = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              data                             |
\                                                               \
\                                                               \
|                              data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  
Рис. 9 Пример Internet датаграммы
 
 Приложение Б: Порядок передачи данных
 Порядок передачи заголовка и данных, описанных в данном документе,
 определяется на уровне октетов. В то время как диаграмма обозначает группу
 октетов, порядок их передачи является таким же, как при чтении на
 английском языке. Например, в нижеприведенной диаграмме октеты передаются
 в порядке номеров.
 
 
|  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       1       |       2       |       3       |       4       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       5       |       6       |       7       |       8       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       9       |      10       |      11       |      12       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  
Рис. 10 Порядок передачи байтов
 Октет представляет собой число, для котрого самый левый бит на
 диаграмме является самым старшим или самым значащим битом. Так бит,
 отмеченный нулем, является наиболее значащим битом. Например, следующая
 диаграмма представляет число 170 (десятичное)
 
 
|                               0 1 2 3 4 5 6 7                             
                             +-+-+-+-+-+-+-+-+                            
                             |1 0 1 0 1 0 1 0|                            
                             +-+-+-+-+-+-+-+-+ 
 |  
                           Рис. 11 Старшинство битов
 Аналогично, если многооктетное поле представляет число, то самый левый
 бит в этом поле является самым значащим битом. При передаче многооктетного
 чила самый значащий октет передается первым.
 
 Толковый словарь
 1822 BBN доклад 1822, "The Specification of the Interconnection of a Host
 and an IMP". Спецификация взаимодействия между хост-компьютером и
 сетью ARPANET.
 ARPANET проводник
 Управляющая информация в ARPANET сообщении для интерфейса между
 хост-компьютером и IMP процессором.
 ARPANET сообщение
 Единица передачи между хост-компьютером и IMP процессором в сети
 ARPANET. Максимальный ее размер примерно 1012 октетов (8096 битов).
 ARPANET пакет
 Единица передачи внутри сети ARPANET между IMP процессорами.
 Максимальный размер ее около 126 октетов (1008 бит).
 Destination (Получатель)
 Адрес получателя, поле в Internet заголовке.
 DF
 Бит запрета фрагментации в поле флагов.
 Flags (Флаги)
 Поле Internet заголовка, содержащее различные управляющие биты.
 Fragment Offset (Смещение фрагмента)
 Это поле Internet заголовка указывает, к какому месту в Internet
 датаграмме относится фрагмент.
 GGP
 Gateway to Gateway Protocol - Протокол общения между шлюзами. Данный
 протокол первоначально использовался шлюзами для управления
 маршрутизацией и другими функциями шлюзов.
 header (заголовок)
 Управляющая информация в начале сообщения, сегмента, датаграммы,
 пакета или блока данных.
 ICMP
 Internet Control Message Protocol - Протокол контрольных сообщений
 Internet. Поддерживаемое Internet модулем, ICMP сообщение передается
 от шлюзов к хост-компьютерам и между хост-компьютерами, используется
 для отчетов об ошибках а также для создания предположений о
 маршрутизации.
 Identification (Идентификация)
 Поле Internet заголовка, содержащее идентифицирующее значение,
 назначенное отправителем, и служащее для сборки фрагментов какой-либо
 датаграммы.
 IHL
 The Internet Header Length - Поле Internet заголовка. Представляет
 собой длину Internet заголовка, измеренную в 32-битных словах.
 IMP
 The Interface Message Processor - Процессор сообщений интерфейса.
 Пакетный переключатель сети ARPANET.
 Internet Address (адрес Internet)
 Четырехоктетный (32 бита) адрес отправителя или получателя. Состоит
 из поля сети и поля локального адреса.
 Internet фрагмент
 Порция данных из Internet датаграммы, снабженная Internet заголовком.
 Local Address (локальный адрес)
 Адрес хост-компьютера внутри какой-либо сети. Реальное отображение
 локального адреса Internet на адреса хост-компьютеров в сети довольно
 произвольное, что позволяет отображать несколько локальных адресов на
 один хост-компьютер.
 MF
 Флаг появления дополнительных фрагментов, содержащийся в поле флагов
 Internet заголовка
 module (модуль)
 Реализация, обычно программная, протокола или других процедур
 more-fragments flag (флаг дополнительных фрагментов)
 Флаг, показывающий, содержит ли данная Internet датаграмма
 заключительную часть исходной Internet датаграммы. Флаг включен в
 поле флагов Internet заголовка.
 NFB
 The Number of Fragments Blocks - количество блоков фрагментации с
 данными в Internet фрагменте. Иными словами, длина поля с данными.
 Единица измерения - 8 октет.
 octet (октет)
 байт с восемью битами
 Options (опции)
 Поле опций Internet заголовка, может содержать несколько опций.
 Каждая опция может иметь длину в несколько октет.
 Padding (Выравнивание)
 Поле выравнивания Internet заголовка, используемое для того, чтобы
 убедиться в том, что данные начинаются по границе 32-битного слова.
 Выравнивание осуществляется нулями.
 Protocol (Протокол)
 Для данного документа это идентификатор протокола более высокого
 уровня, поле в Internet заголовке.
 Rest (Остаток)
 Часть Internet адреса, указывающая локальный адрес.
 Source (Отправитель)
 Адрес отправителя, поле Internet заголовка.
 TCP
 Transmission Control Protocol - Протокол управления передачей.
 Протокол общения между хост-компьютерами для осуществления
 коммуникаций в среде Internet.
 TCP сегмент
 Единица данных, передаваемая между TCP модулями (имеющая TCP
 заголовок).
 TFTP
 Trivial File Transfer Protocol: Простой протокол передачи файлов,
 созданный для UDP.
 Time to Live (Время жизни)
 Поле Internet заголовка, показывающее верхний предел для времени
 существования данной Internet датаграммы.
 TOS
 Тип сервиса
 Total length (общая длина)
 Поле Internet заголовка Total Length, определяющее длину датаграммы в
 октетах, включающее Internet заголовок и данные.
 TTL
 Время жизни
 Type of Service (Тип сервиса)
 Поле Internet заголовка, определяющее тип сервиса для данной Internet
 датаграммы.
 UDP
 User Datagram Protocol. Протокол на уровне пользователя для
 приложений, ориентированных на транзакции.
 User (Пользователь)
 Пользователь Internet протокола. Это может быть модуль протокола
 более высокого уровня, прикладная программа или программа шлюза.
 Version (версия)
 Поле версии, определяющее формат Internet заголовка.
 
 Ссылки
 [1] Cerf, V., "The Catenet Model for Internetworking," Офис технологий
 обработки информации, Оборонное Агентство расширенных
 исследовательских проектов, IEN 48, июль 1978.
 [2] Bolt Beranek and Newman, "Specification for the Interconnection of a
 Host and an IMP," BBN Технический отчет 1822, пересмотрен в мае 1978.
 [3] Postel, J., "Internet Control Message Protocol - DARPA Internet
 Program Protocol Specification," RFC 792, USC/Институт Информатики,
 сентябрь 1981.
 [4] Shoch, J., "Inter-Network Naming, Addressing, and Routing," COMPCON,
 компьютерное общество IEEE, конец 1978 года.
 [5] Postel, J., "Address Mappings," RFC 796, USC/Институт Информатики,
 сентябрь 1981.
 [6] Shoch, J., "Packet Fragmentation in Inter-Network Protocols," Computer
 Networks, v.3, n.1, январь 1979.
 [7] Strazisar, V., "How to Build a Gateway", IEN 109, Bolt Beranek and
 Newman, август 1979.
 [8] Postel, J., "Service Mappings," RFC 795, USC/Институт Информатики,
 сентябрь 1981.
 [9] Postel, J., "Assigned Numbers," RFC 790, USC/Институт Информатики,
 сентябрь 1981.
 
 
 
 
   |   |   
 2014-07-27, lissyaragmirror
 Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
 2013-08-20, zentarimScan+Print server FreeBSD 9
 Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
 2011-11-20, BlackCatРазъём на WiFi-карту
 Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
 2011-09-14, manefestoНастройка git+gitosis
 Настройка системы контроля версия исходного кода в связке git+gitosis+ssh 
 2011-08-14, zentarimWi-FI роутер + DHCP + DNS
 Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
 2011-06-15, -ZG-Охранная система на FreeBSD+LPT
 В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
 2011-03-13, terminusng_nat
 Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
 2011-02-20, КапитанNagios+Digitemp
 Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
 2011-02-17, Le1Zyxel Configuration
 Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
 2011-02-16, foxhast carp zfs ucarp cluster
 HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
 2011-02-04, BlackCatВосстановление ZFS
 История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
 2011-02-03, Капитан1-Wire
 Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
 2011-01-28, КапитанТемпература в серверной
 Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
 2011-01-21, m4rkellSyslog server
 Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
 2011-01-07, lissyaraCanon/gphotofs
 Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
 2010-12-13, AlIPSec
 Описание принципов работы IPSEC и способов аутентификации.
 2010-12-07, manefestoFreeBSD on flash
 Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем  =)
 2010-12-05, Fomalhautroot ZFS, GPT
 Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
 2010-09-05, CancerНастройка аудиоплеера на ximp3
 Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
 2010-08-31, CancerУстановка и настройка OpenVPN
 На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
 2010-08-25, manefestofreebsd lvm
 Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
 2010-04-30, gonzo111proftpd file auth"a
 Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
 2010-04-22, lissyaratw_cli
 Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
 2010-04-14, foxMySQL Master+Master
 MySQL (Master Master) and (Master Slave) Как настроить репликацию…
 2010-03-09, terminusDNS zones
 Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
 2010-03-09, asperaSquid+AD (group access)
 Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
 2010-03-02, BlackCatШлюз: Часть 4
 Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
 2010-03-01, BlackCatШлюз: Часть 3
 Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
 2010-03-01, BlackCatШлюз: Часть 2
 Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
 2010-03-01, BlackCatШлюз: Часть 1
 Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
 2010-02-23, Mortydarkstat
 Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
 2010-01-23, gonzo111squid+sams+sqstat
 Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
 2009-12-19, schizoidmpd5 + radius + ng_car + Abills
 Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
 2009-11-16, lissyaraUFS->ZFS
 Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
 2009-11-13, gx_uafusefs-ntfs
 Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
 2009-11-12, MortyLiveCD
 Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
 2009-09-27, lissyaraSamba как PDC
 Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
 2009-08-30, terminusipfw nat
 Подробное руководство по ipfw nat, сложные случаи конфигурации.
 2009-08-24, levantuevHotSpot
 Установка Hotspot системы в общественное заведение.
 2009-08-18, lissyaradiskless
 Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
 2009-07-29, BAV_LugВидеонаблюдение
 Настройка бюджетного варианта видеонаблюдения на удаленном объекте
 2009-07-22, CancerOpenLDAP адресная книга
 Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
 2009-06-30, SergeySLAimSniff
 Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
 2009-06-25, atriumУправление правами доступа
 Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX. 
 2009-06-16, DNKExim+PgSQL
 Установка почтовой системы exim+pgsql на FreeBSD 7.1
 2009-05-30, mvaleryHDD(mbr) -> HDD(gpt)
 Как разбить диск размером более 2TB на разделы, сделать загрузочным, а  затем перенести на него информацию с рабочей системы — донора.
 2009-05-22, CancerSendXMPP
 Отправка сообщений на Джаббер сервер по средствам SendXMPP
 2009-05-11, Raven2000Network UPS Tools
 Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования. 
 2009-04-29, m0psIPSEC over GRE with RIP
 Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
 2009-04-24, WhiteBear777qemu network
 Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в  локалку и в сеть internet...
 2009-04-22, vpfreebsd + huawei 162 gsm modem
 В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
 2009-04-12, mvaleryМониторинг RAID
 Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
 2009-04-09, texnotronicRAID1 via LAN
 Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
 2009-04-03, Raven2000Оптимизация хоста для CMS
 В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
 2009-04-01, atriumVSFTPD + AD && MySQL
 Настройка самого безопасного сервера FTP - vsftpd.
 2009-03-31, DronPeoplenet + C-motech (3G)
 Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
 2009-03-25, lissyaramod_auth_external
 mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
 2009-03-24, gx_uaLightsquid
 Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
 2009-03-18, LHCУстановка Zabbix-1.6
 Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
 2009-03-16, CancerПринт-Сервер Samba+LPD & AD
 Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
 2009-03-04, Mad_caterpillaripsec_vpnc
 Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
 2009-02-18, AndyFree-SA
 Программа анализирует log файлы Squid'а и формирует по ним отчет.
 2009-02-02, CancerOpenfire Jabber Server
 Установка  Jabber сервера на примере Openfire
 2009-01-28, Cancermpd5 + сжатие и шифрование
 Установка VPN сервера mpd5 + сжатие и шифрование
 2009-01-26, vpfreebsd + webcamera
 Подключение и настройка вебмкамеры для работы с freebsd на примере Logitech QCam STX
 2009-01-10, Grishun_U_Sконфиг для офисов
 В статье разбирается конфиг для офиса, пользователи которого имеют строгие ограничения по портам. Заворачиваем www трафик на транспарентный прокси, а остальное NAT'им. Эффективно делим канал интернет
 2008-12-27, Storogesftp+chroot
 Возникла необходимость дать возможность нескольким пользователям заливать на сервер контент для своих сайтов через sftp, чтобы при этом не страдала безопасность.
 2008-12-13, MortyPurefFTPd
 Администрирование pureftpd-сервера с помощью вэб интерфейса Usermanager
 2008-12-11, lissyaratermlog
 Небольшая простая утилита, использующаяся для записи в файл всего что происходит на терминалах системы. Полезно, когда есть доступ по ssh у тех, кому не очень доверяете. Паранойя - это не плохо =)
 2008-11-26, CancerSQUID+SAMS +Rejik-(ADLDAP)
 Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
 2008-11-22, dvg_labphp5-oci8
 Решение проблем segmentation fault (core dumped) при работе с oracle8-client и php5-oci8
 2008-11-21, m0psNTP
 Пример настройки NTP сервера для локальной сети и клиента, для синхронизации времени с локальный NTP сервером. Обновление ntpd из портов.
 2008-11-20, CancerSQUID+SAMS +Rejik-(NTLM)
 Установка Прокси сервера SQUID с аутентификацией по NTL с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf, РЕЖИК собственно рубит банеры и запрещает пользователям хо
 2008-11-20, UAHotspot
 Настройка безпроводной точки доступа (WiFi) на freebsd 
 2008-11-12, ShamanEnemy Territory
 Появилась у меня такое желание поднять сервер Enemy Territory.
Поискал погуглил, ничего толкового не нашел пришлось все самому делать.
И вот решил поделиться опытом. Начинаем...... 
 2008-11-11, lissyaraSamba+ NT ACL
 Использование vfs самбы - модули full_audit и recycle. Настройка для использования в качестве файлопомойки с 500+ одновременно работающих юзеров. Раздача прав через нативный виндовый интерфейс.
 2008-11-11, Raven2000Upgrading OpenBSD
 Сегодня мы будем обновлять OpenBSD. Систему необходимо поддерживать в актуальном виде  и следить, чтобы все работало, как часы и все дырки были залатаны до прихода врага =)
 2008-11-10, lexySMSTools 3
 Как автоматизировать отправку и обработку входящих сообщений при помощи мобильного телефона, датакабеля и компа
 2008-11-06, CancerAsterisk IP PBX
 Установка VoiP сервера Asterisk IP PBX для соединения двух шлюзов и АТС
 2008-10-30, atriumSamba & CUPS & AD & ACL
 Настройка Samba в роли доменного файл-сервера, и CUPS в роли принт-сервера для Windows клиентов
 2008-10-17, Raven2000src & ports
 Конечно, в OpenBSD система портов никогда не сможет быть полной сравнение с той же системой во FreeBSD. Связано это с тем, что разработчики включают в порты лишь те приложение которые протестированн
 2008-10-13, MortyMysql - базовое описание
 Базовое описание и принципы работы с MySQL
 2008-10-10, Cancerexim&dovecot + fetchmail + SSL
 Exim & Dovecot + Postfixadmin & Roundcube  + Fetchmail & smtp_relay
С возможностью отправлять письма через смтп релей провайдера.
С использование SSL шифрование: POP3s IMAPs sSMTP
 2008-10-09, m0psДополнительные порты для роутера
 Увеличение количества Ethernet портов маршрутизатора за счет свободных портов коммутатора пробросив vlan с сабинтерфейса роутера на интерфейс коммутатора.
 2008-10-06, princepsBacula
 Настройка сервера системы резервного копирования Bacula на FreeBSD для бэкапов FreeBSD и Windows машин
 2008-10-02, zheromoPostfix + DBMail
 Создание почтовой системы на основе Postfix + DBMail + SASL2 + TLS + DSpam + ClamAV + RoundCubeWebMail
 2008-10-02, CancerSugarForge CRM
 SugarForge CRM предоставляет подавляющее большинство функциональных возможностей CRM систем
 2008-09-12, arksung_ipacct + squid
 Подсчет трафика с помощью ng_ipacct. Связка ng_ipacct + squid + парсер логов + авторизатор + nginx + mysql и куча служебных скриптов для работы всей системы.
 2008-09-03, Raven2000GLPI
 Мне надо было найти замену существующей программы инвентаризации, чтобы за компьютерами, принтерами, картриджами, лицензиями и тп был учет. Желательно с дополнительными бонусами типа системы подачи...
 2008-09-03, salimkPOWERDNS
 Статья о том как мигрировать с DNS сетвера ISC Bind на POWERDNS
 2008-09-03, DNKRinetd
 Редирект TCP портов с помощью утилиты rinetd - просто до безобразия - само прилодение простое, конфиг в одну строчку - что ещё надо для счастья? =)
 2008-09-03, L!NereGroupWare
 Это сервер групповой работы. Он укомплектован собственным веб-интерфейсом, который обеспечивает доступ к вашим данным с любой платформы по всей планете. 
 2008-08-30, jafffMAC адрес
 У девайса VoIP Planet VIP-000 слетел MAC адрес и стал FF-FF-FF-FF-FF-FF, как я его востанавливал 
 2008-08-30, Mortyclonehdd
 Перенесение, бэкапирование HDD,легко и просто
 2008-07-31, Raven2000Proxy Auto Configuration
 Возникла необходимость автоматически настраивать прокси для всех компов и не бегать например если поменялось что-то на сервере прокси. Для этого давно существует технология Proxy Auto Configuration.
 2008-07-29, f0sNNTP сервер
 Конфигурирование собственного NNTP-сервера.
 2008-07-28, Alspamooborona
 настройка yandex spamooborona  в качестве smtp-proxy для работы с exim
 2008-07-28, CancerSQUID+SAMS +Rejik-(NCSA)
 Установка Прокси сервера SQUID с красивой мордой SAMS и редиректором REJIK,для учета кто куда ходил + графики в pdf,РЕЖИК собственно рубит банеры и запрещает пользователям ходить на запрещенные сайты,
 2008-07-20, Raven2000Pax
 Эта замечательная утилита поставляется с FreeBSD по умолчанию, и она имеет неплохой потенциал.
Можно создавать архивы модифицировать их, а так же живьем переносить всю операционную систему с данными 
 2008-07-16, Andy2kBIND & AD
 Настройка BIND для обслуживания запросов контроллеров Active Directory. Альтернатива поднятию DNS от Microsoft.
 2008-07-16, aleksey.kravchenkoSamba (PDC+BDC)
 Поднять главный (офис) и резервный (филиал) контроллер домена на базе Samba и OpenLDAP, организовать синхронизацию и репликацию между ними. Запись в LDAP должена выполняться только на PDC.
 2008-07-14, aleksey.kravchenkoOpenVPN + LDAP
 Статья о том, как настроить OpenVPN с авторизацией пользователей в OpenLDAP.
 2008-07-14, aleksey.kravchenkoProFTPd + LDAP
 ProFTPd с авторизацией пользователей в OpenLDAP
 2008-07-13, lissyaraAsus Eee PC
 Дали на несколько дней поиграться Asus Eee PC - мелкий ноутбок по смешной цене. Ну, первым делом ставим правильный ОС и смотрим - что из этого получиться.
 2008-07-09, terminusDNS сервер Unbound
 Установка и настройка кеширующего DNS сервера Unbound под управлением FreeBSD 7.0
 2008-07-08, f0smozilla autoconfig
 Автонастройка браузера и почты Mozilla Seamonkey пользователям
 2008-07-05, lissyaraiftop
 Утилита предназначена для мониторинга загрузки канала в режиме реального времени - позволяет видеть кто именно занял полосу. Полезно для организаций с FreeBSD на шлюзовой машине.
 2008-07-02, manefestosnd_hda
 Патчим snd_hda для корректной работы с наушниками
 2008-06-27, Grishun_U_Sdd : бэкапируем windows
 Клонирование разделов windows с помощью загрузочного диска FreeBSD
 2008-06-25, terminusDNS сервер NSD
 Установка и настройка авторитарного DNS сервера NSD под управлением FreeBSD 7.0
 2008-06-17, AlNetXtreme BCM5722
 Драйвер для сетевой карты NetXtreme BCM5722 Gigabit Ethernet
 2008-06-15, tangoAmanda
 Установка и настройка сервера резервного копирования Amanda на FreeBSD.
 2008-06-12, LMikВиртуальный свитч
 Статья описывает создание виртуального коммутатора для соединения удаленных физических ethernet сетей.
 2008-06-08, littlesavageSiS*Mirage*1 на D201GLY2
 Как заставить работать видеоrарту SiS*Mirage*1 на материнской D201GLY2
 2008-06-06, nsandРыбалка на FreeBSD
 Стьатья о том как настроить рыбалку со спутника под FreeBSD
 2008-06-06, nsandTT budget S-1401
 Настройка драйвера ttbudget (SkyStar3) под FreeBSD
 2008-05-30, Andy2kNOD32 mirror
 Скрипт для создания зеркала обновлений для антивируса NOD. Автоматически ищет нужные логин-пароль для получения обновлений. В теории не требует обслуживания.
 2008-05-25, Romzesметаданные exif
 Пример сортировки фотографий сделаных разными фотоаппаратами, с разными названиями, датами создания/модификации. Из под консоли, конечно.
 2008-05-23, FenXsvn+apache+trac
 Установка связки Apache2.2 + Subversion + Trac (Установка и настройка SVN сервера с доступом к репозиториям по http протоколу)
 2008-05-22, Grishun_U_Sпростой конфиг PF
 В статье разбирается простой конфигурационный файл pf "изнутри можно все"
 2008-05-20, KrivoSoftHAVP
 HAVP(HTTP AntiVirus proxy)- работает как http прокси, проверяющий файлики используя LibClamav. В заметке описан процес прикручивания антивируса к уже работающему прокси серверу squid.
 2008-05-20, CovaxALTQ в IPFW
 Исполльзование ALTQ вместе с IPFW
 2008-05-19, nonalog2007pppoe
 Настройка ADSL-модема для подключения к Интернет.
 2008-05-04, Abigorphp + mssql
 Настройка php на freebsd для работы с базами в mssql по доменной авторизации.
 2008-04-28, sergei386=>amd64
 Рассматриваеться способ удаленной миграции с архитектуры i386 на amd64 на рабочем сервере.
 2008-04-24, Mr.YLan over Bluetooth
 Статья описывает как используя Bluetooth, объединить две FreeBSD машины в сеть.
 2008-04-19, lissyaraWiFi WPA
 Подключение FreeBSD к беспроводной WiFi сети с использованием шифрования WPA.
 2008-04-18, nikllnginx+php-fpm+mysql
 Статья о настройке мощного веб сервера который не ляжет от хорошей нагрузки.
 2008-04-16, nikllqmail-ldap + AD
 Статья о том как я прикрутил qmail к АД win2003 (с упровлением почтовыми аккаунтами через консоль mmc из под винды)
 2008-04-14, SHPAkПриглашение csh/tcsh
 Приглашение csh/tcsh не всегда удобно. Здесь описано как помянять оное...
 
 |