Маршрутизация в сетях TCP/IP. Сети класса D. Семейство протоколов ТСР/IР. Диапазон адресов. Диапазон значений, страница 3

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

Некоторые IP-адреса являются выделенными и трактуются по-особому.

a)  все нули – данный узел;

b)  все единицы – все узлы в данной IP‑ сети (255.255.255.255);

c)  номер сети | все нули – адрес какой-то IP-сети, уже говорили об этом;

d)  номер сети | все единицы – все узлы в указанной IP-сети;

e)  номер сети | адрес узла – адрес узла  в указанной IP-сети;

f)  127. что-нибудь (часто 0.0.1) – «петля».

Особый смысл имеет последний адрес – это тестовый адрес, он служит для тестирования программ, взаимодействующих на одном компьютере. Когда программа посылает данные на этот адрес, данные не передаются по сети, а остаются в модуле IP, как бы организуется внутренняя петля.

Теперь обратим свое внимание на то, как осуществляет передача данных по IP-сетям. Пакет IP сперва формируется в программе, желающей передать информацию посети, в заголовок вкладываются адрес приемника, адрес источника, информация о сокетах и т. п., в поле данных помещаются данные для передачи, после этого пакет передается в модуль IP. Там формируется кадр Ethernet (для определенности будем считать, что имеем дело с технологией общая шина), в котором нужно явно и конкретно указать шестибайтный адрес сетевой карты-получателя. Так вот, IP-адреса – вещь в достаточной степени условная, она не имеет никакой связи с номерами сетевых карт, и нет никаких законов преобразования одно в другое. Адреса IP назначаются администраторами (провайдерами) высокого уровня на основании каких-то своих, высших интересов, или, на деле - из того, что он имеет, мы не можем выбирать их самостоятельно, если только речь не идет об Intranet технологиях (сугубо внутренних сетях). Адрес же сетевой карты формируется заводом-изготовителем на основании кода страны и фирмы, присваиваемых ему комитетом по стандартом, а также на основании кода продукта. Адрес Ethernet выбирается уникальным, как, впрочем, и IP, однако по критериям совершенного иного рода.  Итак, откуда мы возьмем соответствие IP-Ethernet? Ведь речь даже не о сети достаточно высокой степени абстракции, а о физической (приземленной) линии связи, где мы должны указать номер устройства, кому предназначается пакет. Существует два очень сходных пути, они имеют только одно отличие, о нем немного позже, суть этих двух методов сводится к следующему: накапливать информацию о соответствиях IP-адресов адресам Ethernet во входящих пакетах. Действительно, получили мы пакет, срисовали оба адреска и внесли их в некую таблицу, а когда надо, подсмотрели их там. Ведь мы же можем использовать информацию своих прежних передач, например, ответов кому-то, да и просто «случайно» принятых пакетов. Более того, мы можем обнаглеть до предела: не найдя в нашей таблице нужного на сей момент соответствия, мы можем отправить широковещательный запрос: «Ау! Кто имеет такой-то «Ай-пи-шник», откликнитесь и укажите свой Ethernet адрес!». Для чего-то же их придумали, широковещательные адреса? Это имеет свое научное название – ARP – address protocol resolution – протокол распознавания адресов, а таблица именуется ARP-таблицей. В чем различие двух методов? В том, что в одном случае сформированный IP-пакет хранится в модуле IP до тех пор, пока не будет получен искомый Ethernet адрес, а в другом случае пакет уничтожается, а тому процессу, кто его сформировал, выдается уведомление о том, чтобы он попробовал еще раз попозже. Но как бы то ни было, если соответствие не было получено, пакет уничтожается, а породившему его процессу отсылается сообщение примерно такого содержания: «Увы, данный узел пока недоступен, пакет ликвидирован». Естественно в цифрах – в двоичном коде. Рассмотрим этот процесс на конкретном примере. Допустим, наша машина имела такую вот ARP-таблицу: