tanenbaum_seti_all.pages (525408), страница 138
Текст из файла (страница 138)
Это сообщение используется для измерения произволитсльности сети. Кроме перечисленных сообщений, опрслелсны и другие. Их полный список хранится в Интернете по алресу ааалапа,огц/азз!цпгоепгайсшр-рагагое1егз. АВР— протокол разрешения адресов Хотя у кажлой машины в Интернете есть один (или более) 1Р-адресов, они не могут использоваться для отправки пакетов, так как аппаратура уровня передачи данных не понимаст интернет-адресов. В настоящее время большинство хостов соединены с локальными сетями с помощью интерфейсных карт, понимающих только адреса данной локальной сети.
Например, каждая когда-либо выпущенная сетевая карта ЕгЬегпег имеет 48-разрядный ЕгЬегпег-адрес. Производители сетевых карт ЕГЬсгпег запрашивают у центра блок адрссов, что гарантирует уникальность ЕгЬегпет-адресов (это позволяет избежать конфликтов при наличии одинаковых сетевых карт в одной ЛВС). Сетевые карты отправляют и принимают кадры, основываясь па 48-разрядных ЕгЬегпег-адресах. О 32-разрялных 1Р-адресах им ничего нс известно. Таким образом, возникает вопрос как устанавливается соответствие 1Р-адресов и адресов уровня передачи данных, таких как Егйсгпег-адреса? Чтобы понять, как это работает, рассмотрим показанный на рис. 5.53 пример, в котором изображен небольшой университет с пссколькими сетями класса С (ныне называемыми сетями класса /24).
На рисунке мы видим две сети ГгЬегпец одна на факультете кибернетики с 1Р-адресом 192.3!.65.0, а други — с 1Р-адресом 192.31.63.0 на электротехническом факультете. Они соединены кольцом Г110! с !Р-адресом 192.31.60.0. У каждой машины сетей ЕЕЬсгпег есть уникальный ЕГЬегпе1чшрсс (на рисунке — от Е1 до ЕВ), а у каждой машины кольца ГЕ)!)! есть ГЕ)Р!-адрес (от Е1 до ЕЗ). Рассмотрим, как пользователь хоста ! посылает пакет пользователю хоста 2. Допустим, отправителю известно имя получателя, например, шагуееац!е.са,цпЕеоц Сначала надо найти 1Р-адрес лля хоста 2, известного как еац!е.са.ип!.ес!ц.
Этот поиск осуществляется службой имен доменов !)Тч5 (1)оша!и Хаше 5уьхет), которую мы рассмотрим в главе 7. 11а данный момент мы просто предположим, что служба ЕТЬ!8 возвращает 1Р-адрес для хоста 2 (192.31,65,5), Сетевой уровень в Интернете 517 Теперь программное обеспечение верхнего уровня хоста 1 создает пакет со значением 192.31.65.5 в поле Адрес лолучаглеля и передает его!Р-программе для пересылки. Программное обеспечение протокола 1Р может посмотреть на адрес и увидеть, что адресат находится в его собственной сети, но ему нужно как-то определить ЕгЬегпе2-а!грес получателя.
Одно из решений состоит в том, чтобы хранить в системе конфигурационный файл, в котором были бы перечислены соответствия всех локальных П'-адресов ЕгЬегпе!-адресам. Такое решение, конечно, возможно, но в организациях с тысячами машин обновление зтих файлов потребует много времени и подвержено ошибкам. Е о о Л с У маршрутизатора Л 2 !Р-адреса 3 У маршрутизатора 2 0'-адреса 192.31. 1.63.8 !Пегпег-адреса Сеть Е!пегое! Кольцо Сеть Егаегпе! факультета кибернетики Е00! факультета злектротехники 192.31.66.0 192.31.60.0 192.31.63.0 Рис.
6.63. три объединенные сети класса /24; дае сети ешегпе! и кольцо г00! Более удачное решение заключается в рассылке хостом 1 по сети Е!ЬегпеФ широковещательного пакета с вопросом: «Кому принадлежит 1Р-адрес 192.31.65.5?» Этот пакет будет получен каждой машиной сети ЕгЬегпе! 192.31.65.0, а хост 2 ответит на вопрос своим ЕгЬегпеыадресом Е2. Таким образом, хост 1 узнает, что 1Р-адрес 192.31.65.5 приналлежит хосту с ЕгЬегпег-адресом Е2.
Протокол, который залает подобный вопрос и получает ответ на него, называется АКР (А(Ыгезз Кезо101!оп Ргогосо1 — протокол разрешения адресов) и описан в КГС 826. Он работает почти на каждой машине в Интернете. Преимушество протокола АКР над файлами конфигурации заключается в его простоте. Системный администратор должен всего лишь назначить каждой машине 1Р-адрес и решить вопрос с маской подсети.
Все остальное сделает протокол АКР. Затем программное обеспечение протокола 1Р хоста 1 создает ЕгЬегпег-кадр для Е2, помешает в его поле полезной нагрузки 1Р-пакет, адресованный 192.31,65.5, и посылает его по сети ЕсЬсгпес Сетевая карта ЕгЬегпег хоста 2 обнаруживает кадр, замечает, что он адресован ей, считывает его и вызывает прерывание.
ЕФЬегпег-драйвер извлекает 1Р-пакет из поля полезной нагрузки и передает его 1р-программе, которая, виля, что пакет адресован правильно, обрабатывает его. 519 Глава 5. Сетевой уровень Существуют различные методы повышения эффективности протокола АКР. Во-первых, машина, на которой работает протокол АКР, может запоминать результат преобразования адреса на случай, если ей придется снова связываться с той же машиной. В следующий раз она найдет нужный адрес в своем каше, сэкономив, таким образом, на рассылке широковещательного пакета.
Скорее всего, хосту 2 понадобится отослать ответ на пакет, что также потребует от него обращения к АКР для определения адреса отправителя. Этого обращения можно избежать, если отправитель включит в АКР-пакет свои 1Р- и Е1Ьегпег-адреса. Когда широковещательный АКР-пакет прибудет иа хост 2, пара (192.31,65.7, Е1) будет сохранена хостом 2 в АКР-кэше для будущего использования.
Волее того, эту пару адресов могут сохранить у себя все машины сети Егйегпеь Кроме того, каждая машина может рассылать свою пару адресов во время загрузки. Обычно эта широковещательная рассылка производится в виде АКР-пакета, запрашивающего свой собственный 1Р-адрес. Ответа на такой запрос быть ие должно, но все машины могут запомнить эту пару адресов. Если ответ все же придет, это будет означать, что двум машинам назначен один и тот же 1Р-адрес.
При этом вторая машина должна проинформировать системного администратора и прекратить загрузку. Чтобы разрешить изменение соответствий адресов, например, при поломке и замене сетевой карты на новую (с новым ЕгЬегпег-адресом), записи в АКР-каше должны устаревать за несколько минут.
Посмотрим снова на рис. 5.53. На этот раз хост 1 хочет послать пакет хосту 4 (192.31.63.8). Обращение к АКР не даст результата, так как хост 4 не увидит широковещательного пакета (маршрутизаторы не переправляют широковещательные пакеты ЕгЬегпес-уровня). Есть два решения данной проблемы. Во-первых, маршрутизатор факультета кибернетики можно настроить так, чтобы он отвечал на АКР-запросы к сети 192.31.63.0 (а также к другим местным сетям). В таком случае хост 1 добавит в свой АКР-кэш строку (192.31.63.8, ЕЗ) и будет счастлив посылать весь трафик для хоста 4 локальному маршрутизатору, Такой метод называется АКР-прокси.
Второе решение состоит в том, чтобы хост 1 сразу выявлял нахождение адресата в удаленной сети и посылал весь внешний график по ЕсЬегпег-адресу, обрабатывающему все пакеты для удаленных адресатов, то есть по адресу маршрутизатора 53. В этом случае маршрутизатору факультета кибернетики не нужно знать, какую именно удаленную сеть ои обслуживает. В любом случае хост 1 помещает 1Р-пакет в поле полезной нагрузки ЕгЬегпегкадра, адресованного маршрутизатору ЕЗ.
Получив ЕгЬегпес-кадр, маршрутизатор факультета кибернетики извлекает из поля полезной нагрузки 1Р-пакет и ищет его 1Р-адрес в своих таблицах. Он обнаруживает, что пакеты, адресованные сети 192.31.63.0, должны пересылаться маршрутизатору 192,31.60.7. Если ему еше не известен РОР1-адрес маршрутизатора 192.31.60.7, то он посылает по кольцу широковещательный АКР-пакет и узнает, что нужный ему адрес г3. Затем он помещает 1Р-пакет в поле полезной магрузки ЕРШ!-кадра, адресованного маршрутизатору гЗ, и отправляет его по кольцу.
Когда кадр попадает на маршрутизатор факультета электротехники, ЕИИ- драйвер извлекает из поля полезной нагрузки 1Р-пакет и передает его 1Р-программе, которая понимает, что этот пакет следует переслать 192.31.63.8, Если та- Сетевой уровень в Интернете 619 кого 1Р-адреса еще нет в АКР-кэше, маршрутизатор посылает широковещательный АКР-запрос по сети Егйегпег факультета электротехники и узнает, что нужный ему адрес принадлежит хосту Еб, поэтому он создает ЕгЬегпес-кадр, адресованный хосту Еб, помещает 1Р-пакет в поле полезной нагрузки и передает его по сети ЕгЬегпек Получив ЕгЬегпег-кадр, хост 4 извлекает из поля полезной нагрузки 1Р-пакет и передает его 1Р-программе для обработки.
Пересылка хостом 1 пакетов в удаленную сеть по глобальной сети работает аналогично, с той разницей, что на этот раз маршрутизатор факультета кибернетики узнает из своих таблиц, что пакет следует переслать маршрутизатору глобальной сети, чей ЕРШ-адрес равен Е2. Протоколы йАНР, ВООТР и ОНСР Протокол АКР решает проблему определения по заданному 1Р-адресу ЕгЬегпегадреса хоста, Иногда бывает необходимо решить обратную задачу, то есть по заданному ЕгЬегпег-адресу определить 1Р-адрес. В частности, эта проблема возникает при загрузке бездисковой рабочей станции. Обычно такая машина получает двоичный образ своей операционной системы от удаленного файлового сервера. Но как ей узнать его 1Р-адрес? Первым для решения проблемы был разработан протокол КАКР (Кечегзе Абйгезз Кезо1цг1оп Ргогосо1 — протокол обратного определения адреса), описанный в КРС 903.
Этот протокол позволяет только что загрузившейся рабочей станции разослать всем свой ЕгЬегпег-адрес и сказать: ~Мой 48-разрядный Егйегпесадрес — 14.04.05.18.01.25. Знает ли кто-нибудь мой 1Р-адрес?» КАКР-сервер видит этот запрос, ищет ЕгЬегпег-адрес в своих файлах конфигурации и посылает обратно соответствующий 1Р-адрес. Использование протокола КАКР лучше внедрения 1Р-адреса в образ загружаемой памяти, так как это позволяет использовать данный образ памяти для разных машин. Если бы 1Р-адреса хранились бы где-то в глубине образа памяти, каждой машине понадобился бы свой отдельный образ.