Читаем TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) полностью

64 bytes from ring.bell.com: icmp_seq=12. time = 17. ms

64 bytes from ring.bell.com: icmp_seq=13. time = 17. ms

-ring.bell.com PING Statistics-

14 packets transmitted, 11 packets received, 21% packet loss

round-trip (ms) min/avg/max = 17/17/21

<p>7.6.2 Маска адреса</p>

Напомним, что организация может разделить поле своего локального адреса на часть подсети и часть хоста. Когда включается система, она может быть сконфигурирована так, что не будет заранее знать, сколько бит было присвоено полю адреса подсети. Чтобы выяснить этот вопрос, система посылает широковещательный запрос на определение маски адреса (Address Mask Request).

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

Сервер маски адреса может быть сконфигурирован так, что, даже при отключении от сети на какое-то время, он будет далее передавать широковещательные сообщения Address Mask Reply, как только станет активным. Это предоставляет шанс на получение нужной информации системам, которые были запущены в то время, когда сервер был неактивен.

На рис. 7.13 показан формат запроса маски адреса и ответа на него. Тип 17 применяется для запроса, а тип 18 — для ответа. В общем случае можно игнорировать идентификатор и последовательный номер.

Рис. 7.13. Формат ICMP-сообщений Address Mask

На практике более предпочтительный метод определения маски адреса предоставляют протоколы загрузки, например Dynamic Host Configuration Protocol или BOOTP. Эти протоколы более эффективны, поскольку обеспечивают полный набор конфигурационных параметров. Кроме того, операции выполняются более точно, в том числе и некорректные.

<p>7.6.3 Временная метка и ответ на Timestamp</p>

Сообщение с ответом на Timestamp предоставляет сведения о времени в системе. Оно предназначено для оценки буферизации и обработки датаграммы на удаленной системе. Отметим следующие поля:

Originate timestamp (исходная временная метка)Время последнего обращения к сообщению в системе-отправителе
Receive timestamp (временная метка получения)Время первого обращения к сообщению отвечающей системы
Transmit timestamp (временная метка пересылки)Время последнего обращения к сообщению отвечающей системы

По возможности, возвращаемое время должно измеряться в миллисекундах относительно полуночи по универсальному времени (Universal Time), которое ранее называлось временем по Гринвичу (Greenwich Mean Time). Большинство реализаций реально возвращает одно и то же время в полях Receive timestamp и Transmit timestamp.

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

Тип 13 используется для запросов, а 14 — для ответов. Формат сообщения представлен на рис. 7.14.

Рис. 7.14. Формат сообщений запросов и ответов о временной метке

<p>7.7 Просмотр действий в ICMP</p>

Ниже показана часть отчета о статистике протоколов команды netstat. Приведенный фрагмент посвящен протоколу ICMP. В отчете отражены операции ICMP, выполненные после последней инициализации.

> netstat -s

icmp:

 1075 calls to icmp_error

 Output histogram:

  echo reply: 231

  destination unreachable: 1075

 2 messages with bad code fields

 0 messages < minimum length

 21 bad checksums

 0 messages with bad length

 Input histogram:

  echo reply: 26

  destination unreachable: 1269

  source quench: 2

  echo: 231

 231 message responses generated

Перейти на страницу:

Похожие книги