Материал: 840

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

145

Последние две колонки на рисунке указывают, является ли ICMP сообщение запросом (query) или сообщением об ошибке (error). Подобное разделение необходимо, потому что сообщения об ошибках ICMP иногда обрабатываются специальным образом. Например, ICMP сообщение об ошибке никогда не генерируется в ответ на ICMP сообщение об ошибке. (Если не придерживаться этого правила, то ошибка будет генерироваться на ошибку до бесконечности.)

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

Сообщение об ошибке ICMP никогда не генерируется в ответ на:

1.ICMP сообщение об ошибке. (ICMP сообщение об ошибке, однако, может быть сгенерировано в ответ на ICMP запрос.)

2.Дейтаграмму, направляющуюся на широковещательный IP адрес или групповой адрес IP.

3.Дейтаграмму, которая посылается широковещательным запросом на канальном уровне.

4.Фрагмент, который не является первым.

5.Дейтаграмму, адрес источника которой не указывает на конкретный хост. Это означает, что адрес источника не может быть нулевым, loopback адресом, широковещательным или групповым адресом.

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

 

 

146

Таблица 6.5 — Типы сообщений ICMP

 

 

 

Тип

Код

Описание

0

0

эхо-отклик (отклик-Ping, глава 7)

3

 

назначение недоступно:

 

0

сеть недоступна — network unreachable (раздел «ICMP ошиб-

 

ки о недоступности хоста и сети» главы 9)

 

1

хост недоступен — host unreachable (раздел «ICMP ошибки о

 

недоступности хоста и сети» главы 9)

 

2

протокол недоступен — protocol unreachable

 

3

порт недоступен — port unreachable (раздел «ICMP ошибка

 

недоступности порта (ICMP Port Unreachable Error)» главы 6)

 

 

необходима фрагментация, однако установлен бит «не фраг-

 

4

ментировать» — fragmentation needed but don’t-fragment bit

 

 

set (раздел «ICMP ошибки о недоступности» главы 11)

 

 

не работает маршрутизация от источника — source route

 

5

failed (глава 8, раздел «Опция IP маршрутизации от источни-

 

 

ка»)

 

6

неизвестна сеть назначения — destination network unknown

 

7

неизвестен хост назначения — destination host unknown

 

8

хост источник изолирован — source host isolated

 

9

сеть назначения закрыта администратором — destination

 

network administrativrly prohibited

 

10

хост назначения закрыт администратором — destination host

 

administrativrly prohibited

 

11

сеть недоступна для TOS — network unreachable for TOS (гла-

 

ва 9, раздел «ICMP ошибки о недоступности хоста и сети»)

 

12

хост недоступен для TOS — host unreachable for TOS (глава 9,

 

раздел «ICMP ошибки о недоступности хоста и сети»)

 

13

связь административно закрыта путем фильтрации — com-

 

 

munication administratively prohibited by filtering

 

14

нарушено старшинство для хоста — host precedence violation

 

15

старшинство разъединено — precedence cutoff in effect

 

 

подавление источника (элементарное управление потоком

4

0

данных) — source quench (глава 11, раздел «ICMP ошибка

 

 

подавления источника»)

5

 

перенаправление — redirect (глава 11, раздел «ICMP ошибка

 

подавления источника»):

 

 

 

0

перенаправление в сеть — redirect for network

 

1

перенаправление в хост — redirect for host

 

2

перенаправление для типа сервиса и сети — redirect for type-

 

 

of-service and network

 

 

147

Окончание табл. 6.5

Тип

Код

Описание

 

3

перенаправление для типа сервиса и хоста — redirect for type-

 

 

of-service and host

8

0

эхо запрос — echo request (Ping запрос, глава 7)

9

0

объявление маршрутизатора — router advertisement (глава 9,

раздел «ICMP сообщения поиска маршрутизатора»)

10

0

запрос к маршрутизатору — router solicitation (глава 9, раздел

«ICMP сообщения поиска маршрутизатора»)

11

 

время истекло — time exceeded:

 

0

время жизни стало равным 0 в процессе передачи — time-to-

 

live equals 0 during transit (Traceroute, глава 8)

 

 

время жизни стало равным 0 в процессе повторной сборки —

 

1

time-to-live equals 0 during reassembly (глава 11, раздел «Фраг-

 

 

ментация IP»)

12

 

проблемы с параметрами — parameter problem:

 

0

неверный IP заголовок — IP header bad

 

1

отсутствует необходимая опция — required option missing

13

0

запрос временной марки — timestamp request (глава 6, раздел

«ICMP запрос и отклик временной марки»)

14

0

отклик с временной маркой — timestamp reply (глава 6, раз-

дел «ICMP запрос и отклик временной марки»)

15

0

информационный запрос — information request

16

0

информационный отклик — information reply

17

0

запрос маски адреса — address mask request (глава 6, раздел

«ICMP запрос и отклик маски адреса»)

18

0

отклик с маской адреса — address mask reply (глава 6, раздел

«ICMP запрос и отклик маски адреса»)

ICMP запрос и отклик маски адреса

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

Рис. 6.19 — ICMP запрос и отклик маски адреса

148

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

ICMP запрос и отклик времени

ICMP запрос времени позволяет системе запросить другую систему о текущем времени. Рекомендуемое значение, которое должно быть возвращено, это количество миллисекунд, которые прошли с полуночи в формате UTC, (Универсальное согласован-

ное время — Coordinated Universal Time). (В старых руководствах

UTC называется Среднее время по Гринвичу — Greenwich Mean Time.) Одна из основных особенностей ICMP сообщения заключается в том, что оно предоставляет время в с точностью до миллисекунд.

Рис. 6.20 — ICMP запрос и отклик времени

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

149

ICMP ошибка недоступности порта (ICMP Port Unreachable Error)

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

6.6Некоторые важные сетевые службы прикладного уровня

Система имен доменов (DNS — Domain Name System)

Несмотря на то, что каждый сетевой интерфейс компьютера имеет свой собственный IP адрес, пользователи привыкли работать с именами хостов. Существует распределенная мировая база данных TCP/IP, называемая системой имен доменов (DNS — Domain Name System), которая позволяет установить соответствие между IP адресами и именами хостов.

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

Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен — в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IPадресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.

Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, то он сразу посылает ответ клиенту, если же нет — то он посылает запрос DNS-серверу другого домена,

Источник: https://studfile.net/preview/16438503/