Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 135
Текст из файла (страница 135)
Здесь главный маршрутизатор соединен с провайдером или региональной сетью, а на каждом факультете может быть установлена своя локальная сеть ЕГ1тегпес. Все сети Е1ЬегпеС с помощью своих маршрутизаторов соединяются с главным маршрутизатором университетской сети (возможно, с помощью магистральной ЛВС, однако здесь важен сам принцип межмаршрутизаторной связи). ПК Маршрутизатор Факультет информатики Художественный факультет Факультет ектротехники Факультет Англии Факультет математики Факультет Франции Музыкальный факультет Факультет физики Етлеклет Рис. В.ВО.
университетская сеть, состоящая из ЛВС разных факультетов В литературе, посвященной интернет-технологиям, части сети называются подсетями. Как уже упоминалось в главе 1, подобное использование этого термина конфликтует со старым понятием «подсети», обозначающим множество всех маршрутизаторов и линий связи в сети. К счастью, по контексту обычно бывает ясно, какой смысл вкладывается в это слово. По крайней мере, в данном Разделе «подсеть» будет употребляться только в новом значении. Как центРальный маршрутизатор узнает, в какую из подсетей (Елетпес) направить пришедший пакет? Одним из способов является поддержание маршрутизатором таблицы из 65 536 записей, говорящих о том, какой из маршрутизаторов использовать для доступа к каждому из хостов.
Эта идея будет работать, но потребуется очень большая таблица и много операций по ее обслуживанию, выполняемых вручную, при добавлении, перемещении и удалении хостов. Выла изобретена альтернативная схема работы. Вместо одного адреса класса В с 14 битами для номера сети и 16 битами для номера хоста было предложено использовать несколько другой формат — формировать адрес подсети из нескольких битов.
Например, если в университете существует 35 подразделений, то 6-битным номером можно кодировать подсети, а 16-битным — номера хостов. С помощью такой адресации можно организовать до 64 сетей Е11тегпег по Сетевой уровень в Интернете 505 1022 хоста в каждой (адреса 0 и -1 не используются, как уже говорилось, поэтому не 1024 (2'"), а именно 1022 хоста). Такое разбиение может быть изменено, если окажется, что оно не очень подходит.
Все, что нужно маршрутизатору для реализации подсети, зто наложить маску подсети, показывающую разбиение адреса на номер сети, подсети и хоста (рис. 5.51). Маски подсетей также записываются в виде десятичных чисел, разделенных точками, с добавлением косой черты, за которой следует число битов номера сети и подсети. Например, на рис. 5,51 маску подсети можно записать в виде 255.255.252.0.
Альтернативная запись будет включать /22, показывая, что маска подсети занимает 22 бита. 32 битв Подсеть Сеть Хост Маска 10 дсети 111 З 111111111111 1111111О О О О О О О О О О Рис. 6.61. Сеть класса В, разделенная на 64 лодсети За пределами сети разделение на подсети незаметно, поэтому нет нужды с появлением каждой подсети обращаться в 1СА)ьйь) или изменять какие-либо внешние базы данных. В данном примере первая подсеть может использовать 1Р-адреса, начиная с 130.50А.1; вторая — начиная с 130.50.8.1; третья — 130.50.12.1, и т.д. Чтобы понятгь почему на каждую подсеть уходит именно четыре единицы в адресе, вспомните двоичную запись этих адресов: Подсеть 1: 10000010 00110010 000001/00 00000001 Подсеть 2; 10000010 ООПО010 000010/00 00000001 Подсеть 3: 10000010 00110010 000011/00 00000001 Здесь вертикальная черта (~) показывает границу номера подсети и хоста.
Слева расположен 6-битный номер подсети, справа — 10-битный номер хоста. Чтобы понять, как функционируют подсети, следует рассмотреть процесс обработки 1Р-пакетов маршрутизатором. У каждого маршрутизатора есть таблица, содержащая 1Р-адреса сетей (вида <сеть, О>) и 1Р-адреса хостов (вида <эта сеть, хост>). Адреса сетей позволяют получать доступ к удаленным сетям, а адреса хостов — обращаться к локальным хостам. С каждой таблицей связан сетевой интерфейс, применяющийся для получения доступа к пункту назначения, а также другая информация.
Когда 1Р-пакет прибывает на маршрутизатор, адрес получателя, указанный в пакете, ищется в таблице маршрутизации. Если пакет направляется в удаленную сеть, он пересылается следующему маршрутизатору по интерфейсу, указанному в таблице. Если пакет предназначен локальному хосту (например, в локальной сети маршрутизатора), он посылается напрямую адресату.
Если номера сети, в которую посылается пакет, в таблице маршрутизатора нет, пакет пересылается маршрутизатору по умолчанию, с более подробными таблицами. Такой алгоритм БОЕ Глава 5. Сетевой уровень означает, что каждый маршрутизатор должен учитывать только другие сети и докальные хосты, а не пары <сеть, хост>, что значительно уменьшает размер таблиц маршрутизатора. При разбиении сети на подсети таблицы маршрутизации меняются — добавляются записи вида <эта сеть, подсеть, О> н <эта сеть, эта подсеть, хост> Таким образом, маршрутизатор подсети е знает, как получить доступ ко всем другим подсетям и как добраться до всех хостов своей подсети. Ему нег нужды знать детали адресации хостов в других подсетях.
На самом деле, все, что для этого требуется от маршрутизатора, это выполнить двоичную операцию И над маской подсети, чтобы избавиться от номера хоста, а затем найти получившийся адрес в таблицах (после определения класса сети), Например, пакет, адресованный хосту с 1Р-адресом 130.50.15.6 и прибывающий на центральный маршрутизатор, после выполнения операции И с маской 255.255.252.0/22 получает адрес 130.50.12.0. Это значение ищется в таблицах маршрутизации, и с его помощью определяется выходная линия маршрутизатора к подсети 3.
Итак, разбиение на подсети уменьшает объем таблиц маршрутизаторов путем создания трехуровневой иерархии, состоящей из сети, подсети и хоста С!0й — бесклассовая междоменная маршрутизация В течение многих лет 1Р оставался чрезвычайно популярным протоколом. Он работал просто прекрасно, и основное подтверждение тому - экспоненциальный рост сети Интернет. К сожалению, протокол 1Р скоро стал жертвой собственной популярности: стало подходить к концу адресное пространство. Эта угроза вызвала бурю дискуссий и обсуждений в Интернет-сообществе. В этом разделе мы опишем как саму проблему, так и некоторые предложенные способы ее решения.
В теперь уже далеком 1987 году некоторые дальновидные люди предсказывали, что настанет день, когда в Интернете будет 100 000 сетей. Большинство экспертов посмеивались над этим и говорили, что если такое когда-нибудь и произойдет, то не раньше, чем через много десятков лет. Стотысячная сеть была подключена к Интернету в 1996 году. И, как уже было сказано, нависла угроза выхода за пределы пространства 1Р-эдресов. В принципе, существует 2 миллиарда адресов, но на практике благодаря иерархической организации адресного пространства (см. рис. 5А8) это число сократилось на миллионы.
В частности, одним из виновников этого является класс сетей В. Для большинства организаций класс А с 16 миллионами здресов — это слишком много, а класс С с 256 адресами — слишком мало. Класс В с 65 536 адресами — это то, что нужно. В интернет- фольклоре такая дилемма известна под названием проблемы трех медведей (вспомним Машу и трех медведей). На самом деле и класс В слишком велик для большинства контор, которые устанавливают у себя сети. Исследования показали, что более чем в половине случаев сети класса В включают в себя менее 50 хостов. Безо всяких сомнений, всем этим организациям хватило бы и сетей класса С, однако почему-то все уверены, что в один прекрасный день маленькое предприятие вдруг разрастется настолько, что сеть выйдет за пределы 8-битного алресного пространства хостов.
Сейчас, оглядываясь назад, кажется, что лучше было бы использовать в классе С Сетевой уровень в Интернете 507 10-битную адресацию (до 1022 хостов в сети). Если бы это было так, то, возможно, большинство организаций приняло бы разумное решение устанавливать у себя сети класса С, а не В. Таких сетей могло бы быть полмиллиона, а не 16 384, как в случае сетей класса В. Нельзя обвинять в создавшейся ситуации проектировшиков Интернета за то, что они не увеличили (или не уменьншли) адресное пространство сетей класса В. В то время, когда принималось решение о создании трех классов сетей, Интернет был инструментом научно-исследовательских организаций США (плюс несколько компаний и военных организаций, занимавшихся исследованиями с помощью сети).
Никто тогда не предполагал, что Интернет станет коммерческой системой коммуникации общего пользования, соперничающей с телефонной сетью. Тогда кое-кто сказал, ничуть не сомневаясь в своей правоте: «В США около 2000 колледжей и университетов. Даже если все они подключатся к Интернету и к ним присоединятся университеты из других стран, мы никогда не превысим число 16 000, потому что высших учебных заведений по всему миру не так уж много. Зато мы будем кодировать номер хоста целым числом байт, что ускорит процесс обработки пакетовм Даже если выделить 20 бит под адрес сети класса В, возникнет другая проблема; разрастание таблиц маршрутизации.
С точки зрения маршрутизаторов, адресное пространство 1Р представляет собой двухуровневую иерархию, состоящую из номеров сетей и номеров хостов. Маршрутизаторы не обязаны знать номера вообще всех хостов, но им необходимо знать номера всех сетей. Если бы использовалось полмиллиона сетей класса С, каждому маршрутизатору пришлось бы хранить в таблице полмиллиона записей, по одной для каждой сети, в которых сообшалось бы о том, какую выходную линию использовать, чтобы добраться до той или иной сети, а также о чем-нибудь еще. Физическое хранение полумиллиона строк таблицы, вероятно, выполнимо, хотя и дорого для маршрутизаторов, храняших таблицы в статической памяти плат ввода-вывода.