Все что становится обыденным, мало ценится.

Microsoft покупает Skype за $8,5 млрд Комментарий: ...

Facebook открыл код платформы Detectron для распознавания объектов на фотографиях
Tue, 23 Jan 2018 10:12:25 +0600

Линус Торвальдс жестко раскритиковал связанные с микрокодом патчи Intel
Mon, 22 Jan 2018 19:47:37 +0600

Red Hat отменил обновление микрокода с устранением уязвимости Spectre
Sat, 20 Jan 2018 10:44:48 +0600

Проект OpenSSL переносит обсуждение разработки из списка рассылки на GitHub
Sat, 20 Jan 2018 10:15:02 +0600

В Firefox 58 появится новый двухуровневый компилятор
Thu, 18 Jan 2018 12:19:16 +0600

Google переводит рабочие станции инженеров с Goobuntu (Ubuntu) на gLinux (Debian)
Thu, 18 Jan 2018 10:05:24 +0600

В systemd 237 запланирована поддержка VPN WireGuard
Thu, 18 Jan 2018 04:31:11 +0600

Verizon стал платиновым участником Linux Foundation и присоединился к разработке ONAP
Wed, 17 Jan 2018 11:43:17 +0600

Mozilla обратилась в суд для защиты сетевого нейтралитета
Wed, 17 Jan 2018 10:26:01 +0600

Новые Web API в Firefox будут доступны только для HTTPS
Tue, 16 Jan 2018 10:50:31 +0600

Обновление микрокода Intel приводит к перезагрузкам систем с CPU Broadwell и Haswell
Mon, 15 Jan 2018 07:17:58 +0600

В Firefox тестируют механизм ускорения навигации по вкладкам
Sun, 14 Jan 2018 22:21:23 +0600

В Firefox 59 будет прекращена поддержка GTK+ 2
Sat, 13 Jan 2018 23:51:01 +0600

Компания Apple присоединилась к альянсу, развивающему свободный видеокодек
Thu, 11 Jan 2018 11:56:35 +0600

Ошибка в обновлении ядра в Ubuntu 16.04 приводит к сбою загрузки системы
Wed, 10 Jan 2018 23:08:11 +0600

Протоколы Расширения Сети Безопасность Почта
RFC 768RFC 791RFC 792RFC 793RFC 903RFC 1157RFC 4302

Протокол IP (Internet Protocol) [1] используется для передачи дейтаграмм между хостами в системе связанных между собой сетей, называемой Catenet [2]. Устройства, соединяющие сети между собой, называются шлюзами (Gateway). Маршрутизаторы (шлюзы) взаимодействуют между собой с помощью протокола GGP (Gateway to Gateway Protocol) [3,4]. Иногда шлюзам или хостам-получателям требуется связаться с хостом-отправителем (например, для передачи сообщения об ошибке при обработке дейтаграммы). Для решения таких задач предназначен описываемый этой спецификацией протокол ICMP (Internet Control Message Protocol — протокол управляющих сообщений Internet). ICMP использует базовый сервис протокола IP, как это делают протоколы вышележащих уровней, однако протокол ICMP на самом деле является составной часть IP и должен быть реализован в каждом модуле IP.

Сообщения ICMP передаются в разных ситуациях (например, когда дейтаграмма не может быть доставлена адресату, у маршрутизатора не хватает буферов для пересылки дейтаграммы или маршрутизатор может рекомендовать хосту передачу трафика по более короткому пути).

Протокол IP не предназначен для обеспечения гарантированной доставки. Задачей протокола ICMP является передача информации о возникновении проблем в коммуникационной среде, а не повышение уровня надежности протокола IP. Гарантий доставки дейтаграмм по-прежнему не предоставляется. Часть дейтаграмм может не попасть к адресату без уведомления отправителя о потере дейтаграмм. Протоколы вышележащих уровней, использующие сервис IP, должны реализовать собственные средства гарантированной доставки, если это требуется для работы.

Сообщения ICMP обычно содержат информацию об ошибках при обработке дейтаграмм. Для предотвращения бесконечных циклов обмена сообщениями не должно передаваться сообщений ICMP о других сообщениях ICMP. При возникновении ошибок в процессе обработки фрагментированных дейтаграмм сообщения ICMP должны передаваться только для начального (нулевого) фрагмента дейтаграммы (нулевым фрагментом считается тот, для которого значение fragment offset равно 0).

Формат сообщений

Сообщения ICMP передаются с использованием базовых заголовков IP. Первый октет данных дейтаграммы указывает тип ICMP — значение этого поля определяет формат остальной части дейтаграммы. Все поля, указанные как неиспользуемые (unused), зарезервированы для использования в будущем и должны иметь нулевые значения. Получателям не следует использовать эти поля (за исключением их учета при вычислении контрольной суммы). Если при описании конкретного формата явно не указано иное, поля заголовков IP имеют следующие значения:

  • Version — версия

  • 4

  • IHL

  • Размер заголовка Internet в 32-битовых словах.

  • Type of Service — тип обслуживания

  • 0

  • Total Length — общий размер

  • Размер заголовка и поля данных в октетах.

  • Identification, Flags, Fragment Offset — идентификация, флаги, смещение фрагмента

  • Используются при фрагментации, см. [1].

  • Time to Live — время жизни

  • Время жизни дейтаграммы в секундах. Значение этого поля уменьшается по крайней мере на 1 в каждой точке обработки дейтаграммы (маршрутизаторы на пути доставки).

  • Protocol — протокол

  • ICMP = 1

  • Header Checksum — контрольная сумма заголовка

  • 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы всех 16-битовых слов заголовка. При расчете контрольной суммы значение самого поля принимается равным нулю (не учитывается). Алгоритм расчета контрольной суммы может быть изменен в будущем.

  • Source Address — адрес отправителя

  • Адрес шлюза или хоста, создавшего сообщение ICMP. Если явно не задано иное, может использоваться любой из адресов шлюза.

  • Destination Address — адрес получателя

  • Адрес хоста или шлюза, которому должно быть передано сообщение.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             unused                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Заголовок IP и 64 бита исходной дейтаграммы          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Destination Address
  • Адрес отправителя исходной дейтаграммы.

Поля ICMP

  • Type
  • 3
  • Code
  • 0 — сеть недоступна;
  • 1 — хост недоступен;
  • 2 — протокол недоступен;
  • 3 — порт недоступен;
  • 4 — требуется фрагментация, но установлен флаг DF (не фрагментировать);
  • 5 — некорректно задан маршрут source route.
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP , начиная с поля ICMP Type . При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Заголовок IP и 64 бита исходной дейтаграммы
  • Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.

Описание

Если (в соответствии с данными в таблице маршрутизации шлюза) сеть, указанная в поле адреса получателя дейтаграммы, недоступна (например, дистанция до этой сети бесконечна), шлюз может передавать сообщение destination unreachable хосту, отправившему дейтаграмму. Дополнительно к этому в некоторых сетях шлюзы могут определять недоступность хоста. В этом случае шлюзы могут передавать сообщение destination unreachable.

Если IP-модуль хоста-получателя не может доставить дейтаграмму, поскольку этот протокол или порт не активизирован, хост-получатель может передать отправителю дейтаграммы сообщение destination unreachable.

Когда дейтаграмма должна быть фрагментирована для пересылки шлюзу, но в ней установлен флаг DF (не фрагментировать), шлюз должен отбросить дейтаграмму и может передать ее отправителю сообщение destination unreachable.

Коды 0, 1, 4, 5 могут приходить от шлюзов, коды 2 и 3 — от хостов.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             unused                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Заголовок IP и 64 бита исходной дейтаграммы          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Destination Address
  • Адрес отправителя исходной дейтаграммы.

Поля ICMP

  • Type
  • 11
  • Code
  • 0 — время жизни истекло в процессе доставки;
  • 1 — время жизни истекло в процессе сборки фрагментов.
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Заголовок IP и 64 бита исходной дейтаграммы
  • Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.

Описание

Если обрабатывающий дейтаграмму шлюз видит, что поле TTL содержит нулевое значение, дейтаграмма должна быть отброшена. Шлюз может уведомить отправителя дейтаграммы с помощью сообщения time exceeded.

Если хост, собирающий дейтаграмму из фрагментов, не может завершить сборку в течение заданного времени по причине нехватки фрагментов, дейтаграмма должна быть отброшена. Хост может передать отправителю дейтаграммы сообщение time exceeded.

При отсутствии нулевого фрагмента сообщение time exceeded передавать не нужно.

Код 0 может быть получен от шлюза, код 1 — от хоста.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Pointer    |                   unused                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Заголовок IP и 64 бита исходной дейтаграммы          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Destination Address
  • Адрес отправителя исходной дейтаграммы.

Поля ICMP

  • Type
  • 12
  • Code
  • 0 — поле pointer pointerpointer содержит указатель на ошибку.
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Pointer
  • Если code = 0, данное поле указывает октет, в котором обнаружена ошибка.
  • Заголовок IP и 64 бита исходной дейтаграммы
  • Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.

Описание

Если шлюз или хост, обрабатывающий дейтаграмму, встречает в заголовке параметры, которые не могут быть обработаны, такая дейтаграмма отбрасывается. Одной из причин таких ошибок являются некорректные аргументы в полях опций. Шлюз или хост может уведомить отправителя дейтаграммы о возникновении проблем с помощью сообщения parameter problem. Такие сообщения передаются только в случаях отбрасывания проблемной дейтаграммы.

Поле pointer указывает октет в заголовке исходной дейтаграммы, в котором была обнаружена ошибка (она может находиться в поле опций). Например, значение 1 показывает ошибку в поле Type of Service, а 20 (если в заголовке присутствуют опции) говорит о некорректности кода первой опции.

Код 0 может быть получен от шлюза или хоста.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             unused                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Заголовок IP и 64 бита исходной дейтаграммы          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Destination Addres
  • Адрес отправителя исходной дейтаграммы.

Поля ICMP

  • Type
  • 4
  • Code
  • 0
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Заголовок IP и 64 бита исходной дейтаграммы
  • Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.

Описание

Шлюз может отбрасывать дейтаграммы, если у него недостаточно буферного пространства для размещения дейтаграммы в очереди на передачу в следующую сеть на пути к получателю. Если шлюз отбрасывает дейтаграмму, он может передать ее отправителю сообщение source quench. Хост-получатель также может передавать сообщения source quench, если дейтаграммы прибывают слишком быстро и хост не успевает их обрабатывать. Сообщение source quench является запросом хосту-отправителю на снижение скорости передачи дейтаграмм. Шлюз может передавать сообщение source quench для каждой отбрасываемой дейтаграммы. При получении отклика source quench хосту-отправителю следует снижать скорость передачи дейтаграмм в адрес данного получателя до тех пор, пока не перестанут приходить сообщения source quench. Впоследствии хост-отправитель может постепенно повышать скорость передачи дейтаграмм по этому адресу, пока снова не будет получено сообщение source quench.

Шлюз или хост может передать сообщение source quench, когда он может предсказать нехватку ресурсов, не дожидаясь критической ситуации. Это означает, что дейтаграмма, вызвавшая передачу сообщения source quench, вполне может быть доставлена.

Код 0 может быть получен от шлюзов и хостов.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Gateway Internet Address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Заголовок IP и 64 бита исходной дейтаграммы          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Destination Address
  • Адрес отправителя исходной дейтаграммы.

Поля ICMP

  • Type
  • 5
  • Code
  • 0 — перенаправление дейтаграмм для сети;
  • 1 — перенаправление дейтаграмм для хоста;
  • 2 — перенаправление дейтаграмм для типа обслуживания и сети;
  • 3 — перенаправление дейтаграмм для типа обслуживания и хоста.
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Gateway Internet Address
  • Адрес шлюза, которому следует направлять трафик, указанный в поле адреса получателя исходной дейтаграммы.
  • Заголовок IP и 64 бита исходной дейтаграммы
  • Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.

Описание

Шлюзы передают сообщения redirect в нескольких случаях. Предположим, что шлюз G1 принимает дейтаграмму от хоста, находящегося в подключенной к шлюзу сети. G1 просматривает свою таблицу маршрутизации и определяет адрес следующего шлюза G2 на пути дейтаграммы к сети получателя, X. Если шлюз G2 и хост, указанный в поле отправителя дейтаграммы, находятся в одной сети, хосту передается сообщение redirect. Такое сообщение говорит хосту что трафик для сети X следует передавать шлюзу G2, поскольку такой путь будет короче. Исходную дейтаграмму получивший ее шлюз пересылает в направлении адресата.

Для дейтаграмм IP с опцией source route и адресом шлюза в поле destination address сообщения redirect не передаются даже в тех случаях, когда к конечному получателю существует маршрут, который лучше указанного в source route.

Коды 0, 1, 2, 3 могут приниматься от шлюзов.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Данные ...
+-+-+-+-+-

Поля IP

  • Address
  • Адрес отправителя сообщения echo будет адресом получателя в сообщении echo reply . Для формирования сообщений echo reply поля адресов отправителя и получателя просто меняются местами, значение кода заменяется на 0 и заново вычисляется контрольная сумма.

Поля ICMP

  • Type
  • 8 — для сообщений echo
  • 0 — для сообщений echo reply
  • Code
  • 0
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Если общий размер имеет нечетное значение, полученные данные при расчете контрольной суммы дополняются нулевым октетом. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Идентификатор
  • Если code = 0, идентификатор для обеспечения соответствия запросов и откликов может быть нулевым.
  • Порядковый номер
  • Если code = 0, порядковый номер для обеспечения соответствия запросов и откликов может быть нулевым.

Описание

Данные, принятые из сообщения echo, должны возвращаться в сообщении echo reply.

Значения идентификатора и порядкового номера могут использоваться отправителем сообщений echo в целях обеспечения соответствия между запросами и откликами. Например, значение идентификатора может использоваться по аналогии с портами TCP и UDP для обозначения сеансов, а порядковый номер может увеличиваться на единицу в каждом передаваемом запросе echo (отвечающая сторона сохраняет порядковые номера в откликах).

Код 0 может приходить от шлюзов и хостов.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |      Code     |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Originate Timestamp                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Receive Timestamp                                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Transmit Timestamp                                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Address
  • Адрес отправителя сообщения timestamp будет адресом получателя в сообщении timestamp reply. Для формирования сообщений timestamp reply поля адресов отправителя и получателя просто меняются местами, значение типа заменяется на 14 и заново вычисляется контрольная сумма.

Поля ICMP

  • Type
  • 13 — для сообщений timestamp
  • 14 — для сообщений timestamp reply
  • Code
  • 0
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
  • Идентификатор
  • Если code code = 0, идентификатор для обеспечения соответствия меток и откликов может быть нулевым.
  • Порядковый номер
  • Если code code = 0, порядковый номер для обеспечения соответствия меток и откликов может быть нулевым.

Описание

Принятые данные (временная метка) из сообщения timestamp возвращаются в отклике вместе с дополнительной временной меткой. Метка представляет собой 32-битовое значение числа миллисекунд после полуночи по времени UT. Один из вариантов использования временных меток описан в работе Mills [5].

Поле Originate Timestamp содержит время отправителя на момент отправки дейтаграммы, Receive Timestamp — время получателя в момент приема дейтаграммы, а Transmit Timestamp — время отправителя отклика перед отправкой дейтаграммы.

Если хост не может указать время в миллисекундах после полуночи по UT, он может ввести произвольное значение, установив старший бит временной метки для индикации нестандартного значения.

Значения идентификатора и порядкового номера могут использоваться отправителем сообщений timestamp в целях обеспечения соответствия между запросами и откликами. Например, значение идентификатора может использоваться по аналогии с портами TCP и UDP для обозначения сеансов, а порядковый номер может увеличиваться на единицу в каждом передаваемом запросе timestamp (отвечающая сторона сохраняет порядковые номера в откликах).

Код 0 может приходить от шлюзов и хостов.

 0                   1                   2                   3
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |      Code     |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Identifier          |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Поля IP

  • Address
  • Адрес отправителя сообщения information request будет адресом получателя в сообщении information reply. Для формирования сообщений information reply поля адресов отправителя и получателя просто меняются местами, значение кода заменяется на 16 и заново вычисляется контрольная сумма.

Поля ICMP

  • Type
  • 15 — для сообщений information request
  • 16 — для сообщений information reply
  • Code
  • 0
  • Checksum
  • Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем. Идентификатор
  • Если code = 0, идентификатор для обеспечения соответствия запросов и откликов может быть нулевым.
  • Порядковый номер
  • Если code = 0, порядковый номер для обеспечения соответствия запросов и откликов может быть нулевым.

Описание

Эти сообщения могут передаваться с установленным в заголовке IP адресом отправителя и нулевым значением адреса получателя (такой вариант адресации означает "данная сеть"). Отвечающему модулю IP следует передавать отклик с заполненными полями адресов. Такие сообщения могут использоваться хостами для определения номера своей сети.

Значения идентификатора и порядкового номера могут использоваться отправителем в целях обеспечения соответствия между запросами и откликами. Например, значение идентификатора может использоваться по аналогии с портами TCP и UDP для обозначения сеансов, а порядковый номер может увеличиваться на единицу в каждом передаваемом запросе (отвечающая сторона сохраняет порядковые номера в откликах).

Код 0 может приходить от шлюзов и хостов.

0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
  1. Postel, J. (ed.), "Internet Protocol — DARPA Internet Program Protocol Specification," RFC 791, USC/Information Sciences Institute, September 1981

  2. Cerf, V., "The Catenet Model for Internetworking," IEN 48, Information Processing Techniques Office, Defense Advanced Research Projects Agency, July 1978.

  3. Strazisar, V., "Gateway Routing: An Implementation Specification", IEN 30, Bolt Beranek and Newman, April 1979.

  4. Strazisar, V., "How to Build a Gateway", IEN 109, Bolt Beranek and Newman, August 1979.

  5. Mills, D., "DCNET Internet Clock Service," RFC 778, COMSAT Laboratories, April 1981.

Николай Малых, moc.milib@hkylamn

НОВОСТИ: Выпуск распределенной системы управления исходными текстами Git ... Fri, 19 Jan 2018 10:11:18 +0600

Подготовлен выпуск распределенной системы управления исходными текстами Git 2.16.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 509 изменений, подготовленных при участии 91 разработчика, из которых 26 впервые приняли своё участие в разработке.

???????@Mail.ru Opera Firefox INFOBOX - хостинг Google Chrome