Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 139
Текст из файла (страница 139)
три объединенные сети класса /24: дае сети е!пегие! и кольцо Рос! Более удачное решение заключается в рассылке хостом 1 по сети ЕСЬегпет широковещательного пакета с вопросом: «Кому принадлежит 1Р-адрес 192.31.65.57» Этот пакет будет получен каждой машиной сети ЕгЬегпес 192.31.65.0, а хост 2 ответит на вопрос своим ЕгЬегпес-адресом Е2. Таким образом, хост 1 узнает, что 1Р-адрес 192.31.65.5 принадлежит хосту с ЕгЬегпег-адресом Е2. Протокол, котоРый задает подобный вопрос и получает ответ на него, называется АКР (АгЫгезз Кезо1цС1оп Рго!осо1 — протокол разрешения адресов) и описан в КРС 826. Он работает почти на каждой машине в Интернете. Преимущество протокола АКР над файлами конфигурации заключается в его простоте.
Системный администратор должен всего лишь назначить каждой машине 1Р-адрес и решить вопрос с маской подсети. Все остальное сделает протокол АКР. Затем программное обеспечение протокола 1Р хоста 1 создает ЕгЬегпет-кадр для л2, помещает в его поле полезной нагрузки 1р-пакет, адресованный 192.31.65.5, и посылает его по сети ЕгЬегпек Сетевая карта ЕсЬегпет хоста 2 обнаруживает кадр, замечает, что он адресован ей, считывает его и вызывает прерывание. ЕгЬегпес-драйвер извлекает 1Р-пакет из поля полезной нагрузки и передает его 1Р-программе, которая, видя, что пакет адресован правильно, обрабатывает его.
518 Глава 5. Сетевой уровень Существуют различные методы повышения эффективности протокола АКР. Во-первых, машина, на которой работает протокол АКР, может запоминать результат преобразования адреса на случай, если ей придется снова связываться с той же машиной. В следующий раз она найдет нужный адрес в своем кэше, сэкономив, таким образом, на рассылке широковещательного пакета. Скорее всего, хосту 2 понадобится отослать ответ на пакет, что также потребует от него обращения к АКР для определения адреса отправителя.
Этого обращения можно избежать, если отправитель включит в АКР-пакет свои 1Р- и Е?Ьегпес-адреса. Когда широковещательный АКР-пакет прибудет на хост 2, пара (192.31.65.7, Е1) будет сохранена хостам 2 в АКР-кэше для будущего использования. Более того, эту пару адресов могут сохранить у себя все машины сети Е1Ьегпеп Кроме того, каждая машина может рассылать свою пару адресов во время загрузки.
Обычно эта широковещательная рассылка производится в виде АКР-пакета, запрашивающего свой собственный 1Р-адрес. Ответа на такой запрос быть не должно, но все машины могут запомнить эту пару адресов. Если ответ все же придет, это будет означать, что двум машинам назначен один и тот же 1Р-адрес. При этом вторая машина должна проинформировать системного администратора и прекратить загрузку. Чтобы разрешить изменение соответствий адресов, например, при поломке и замене сетевой карты на новую (с новым Е?Ьегпес-адресом), записи в АКР-каше должны устаревать за несколько минут. Посмотрим снова на рис.
5.53. На этот раз хост 1 хочет послать пакет хосту 4 (192.31.63.8). Обращение к АКР не даст результата, так как хост 4 не увидит широковещательного пакета (маршрутизаторы не переправляют широковещательные пакеты Е?Ьегпес-уровня). Есть два решения данной проблемы. Во-первых, маршрутизатор факультета кибернетики можно настроить так, чтобы он отвечал на АКР-запросы к сети 192,31.63.0 (а также к другим местным сетям). В таком случае хост 1 добавит в свой АКР-кэш строку (192.31.63.8, ЕЗ) и будет счастлив посылать весь трафик для хоста 4 локальному маршрутизатору.
Такой метод называется АКР-прокси. Второе решение состоит в том, чтобы хост 1 сразу выявлял нахождение адресата в удаленной сети и посылал весь внешний график по Е?Ьегпет-адресу, обрабатывающему все пакеты для удаленных адресатов, то есть по адресу маршрутизатора ЕЗ. В этом случае маршрутизатору факультета кибернетики не нужно знать, какую именно удаленную сеть он обслуживает.
В любом случае хост 1 помещает ?Р-пакет в поле полезной нагрузки Е?Ьегпегкадра, адресованного маршрутизатору ЕЗ. Получив Е?Ьегпес-кадр, маршрутизатор факультета кибернетики извлекает из поля полезной нагрузки 1Р-пакет и ищет его 1Р-адрес в своих таблицах. Он обнаруживает, что пакеты, адресованные сети 192.31.63.0, должны пересылаться маршрутизатору 192.31.60.7. Если ему еще не известен РРР1-адрес маршрутизатора 192.31.60.7, то он посылает по кольцу широковещательный АКР-пакет и узнает, что нужный ему адрес ЕЗ.
Затем он помещает 1Р-пакет в поле полезной нагрузки РРР1-кадра, адресованного маршрутизатору И, и отправляет его по кольцу. Когда кадр попадает на маршрутизатор факультета электротехники, РРР1- драйвер извлекает из поля полезной нагрузки 1Р-пакет и передает его 1Р-программе, которая понимает, что этот пакет следует переслать 192.31.63.8. Если та- Сетевой уровень в Интернете 619 кого 1Р-адреса еще нет в АКР-кэше, маршрутизатор посылает широковещательный АКР-запрос по сети ЕгЬегпес факультета электротехники и узнает, что нужный ему адрес принадлежит хосту Еб, поэтому он создает ЕсЬегпес-кадр, адресованный хосту Еб, помещает 1Р-пакет в поле полезной нагрузки и передает его по сети ЕсЬегпеп Получив ЕгЬегпег-кадр, хост 4 извлекает из поля полезной нагрузки 1Р-пакет и передает его 1Р-программе для обработки.
Пересылка хостом 1 пакетов в удаленную сеть по глобальной сети работает аналогично, с той разницей, что на этот раз маршрутизатор факультета кибернетики узнает из своих таблиц, что пакет следует переслать маршрутизатору глобальной сети, чей Р1)1)1-адрес равен Г2. Протоколы НАВР, ВООТР и ОНСР Протокол АКР решает проблему определения по заданному 1Р-адресу ЕтЬегпесадреса хоста. Иногда бывает необходимо решить обратную задачу, то есть по заданному Е1Ьегпет-адресу определить 1Р-адрес. В частности, эта проблема возникает при загрузке бездисковой рабочей станции. Обычно такая машина получает двоичный образ своей операционной системы от удаленного файлового сервера. Но как ей узнать его 1Р-адрес7 Первым для решения проблемы был разработан протокол КАКР (Кечегзе Аббгезз Кезо!цг!оп Ргогосо! — протокол обратного определения адреса), описанный в КРС 903.
Этот протокол позволяет только что загрузившейся рабочей станции разослать всем свой ЕсЬегпес-адрес и сказать: «Мой 48-разрядный ЕгЬегпетадрес — 14.04.05.18.01.25. Знает ли кто-нибудь мой 1Р-адрес7» КАКР-сервер видит этот запрос, ищет ЕтЬегпег-адрес в своих файлах конфигурации и посылает обратно соответствующий 1р-адрес. Использование протокола КАКР лучше внедрения 1Р-адреса в образ загружаемой памяти, так как это позволяет использовать данный образ памяти для разных машин, Если бы 1Р-адреса хранились бы где-то в глубине образа памяти, каждой машине понадобился бы свой отдельный образ.
Недостаток протокола КАКР заключается в том, что в нем для обращения к КАКР-серверу используется адрес, состоящий из одних единиц (ограниченное широковещание). Однако эти широковещательные запросы не переправляются маршрутизаторами в другие сети, поэтому в каждой сети требуется свой КАКР- сервер. Для решения данной проблемы был разработан альтернативный загрузочный протокол ВООТР. В отличие от КАКР, он использует ()1)р-сообщения, пересылаемые маршрутизаторами в другие сети.
Он также снабжает бездисковые рабочие станции дополнительной информацией, включаюгцей 1Р-адрес файлового сервера, содержащего образ памяти, 1Р-адрес маршрутизатора по умолчанию, а также маску подсети. Протокол ВООТР описан в документах КРС 951, 1048 и 1084. Серьезной проблемой, связанной с применением ВООТР, является то, что таблицы соответствия адресов приходится настраивать вручную.
Когда к ЛВС подключается новый хост, протокол ВООТР невозможно использовать до тех пор, пока администратор сети не присвоит ему 1Р-адрес и не пропишет вручную в конфигурационных таблицах пару (ЕтЬегпег-адрес, 1Р-адрес). Для устранения 620 Глава 5. Сетевой уровень Только что загруженный хост, ищущий РетРанслятоР Другие свой И -адрес ОНСР ети Сервер Маршрутизатор 0НСР ОНСР-пакет О!ЗСОНЕГх (широковещательный! Одноадресный пакет от ретранслятора ОНСР серверу ОНСР Рис. В.бе. Работа протокола ОНСР Для отыскания своего 1Р-адреса загружаемая машина широковещательным способом распространяет специальный пакет 0!500усй !Поиск).
Агент ретрансляции !)НСР перехватывает все широковещательные пакеты, относящиеся к протоколу 1)НСР. Обнаружив пакет О!500усй, он превращает его из широковещательного в одноадресный и доставляет !)НСР-серверу, который может находиться и в другой ЛВС. Агенту ретрансляции необходимо знать всего одну деталь: ! Р-алрес РНСР-сервера. Встает вопрос: на какое время можно выдавать в автоматическом режиме!Р- адреса из пула7 Если хост покинет сеть и не освободит захваченный адрес, этот адрес будет навсегда утерян.