Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы (4-ое изд.) - 2010 - обработка (953099), страница 136
Текст из файла (страница 136)
16.16, на котором показано адресное пространство поставщика услуг < участками 31, Я2, $3 и Я, переданными в пользование четырем клиентам. Этот пример пхже иллюстрирует рис. 16.19. В результате агрегирования сетей клиентов в табл. 16.12 наршрутизатора Кззр поставщика услуг для каждого клиента будет выделено по одной <зраке независимо от количества подсетей, организованных ими в своих сетях. Так, вместо четырех маршрутов к четырем сетям клиента Я в таблице задан только один общий для мех них маршрут (выделенный жирным шрифтом). Таблица 16.12. Таблица маршругизатора йв» поставщика услуг Итак, внедрение технологии СЮК позволяет решить две основные задачи.
0 Болев экономное расходование адресного пространства. Благодаря технологии С1РК поставщики услуг получают возможность «нарезать» блоки из выделенного им адресного пространства в точном соответствии с требованиями каждого клиента, при этом у клиента остается пространство для маневра на случай будущего роста. 0 Уменьшение числа записей в таблицах маршрутизации за счет объединения маршрутов — одна запись в таблице маршрутизации может представлять большое количество сетей.
Если все поставщики услуг Интернета начнут придерживаться стратегии СНЖ, то особенно заметный выигрыш будет достигаться в магистпальных мапшпутизатопах. Глава 16. Протокол межсетевого взаимодействии Сеть клиента 83 ', 131.$73КО!23 Рис. 16.19.0оъединение подсетей %пиков'таксы' ойучае фафикмав«еТййвт)гйвйГ К сожалению, сейчас распределение адресов носит во многом случайный характер. Ка динальный путь решения проблемы — перенумерование сетей.
Однако эта процедура с пряжена с определенными временньгми и материальными затратами, и для ее проведен~ пользователей нужно каким-либо образом стимулировать. В качестве таких стимул рассматривается, например, введение оплаты за строку в таблице маршрутизации или же количество узлов в сети. Первое требование подводит потребителя к мысли получить у г ставщика услуг такой адрес, чтобы маршрутизация графика в его сеть шла на основан префикса, и номер его сети не фигурировал больше в магистральных маршрутизатор Требование оплаты каждого адреса узла также может подтолкнуть пользователя решки на перенумерование с тем, чтобы получить ровно столько адресов, сколько ему нужно.
Технология СПЖ уже успешно используется в текущей версии протокола 1Р (! Рт4) н п держивается такими протоколами маршрутизации, как ОЗРР, К1Р-2, ВСР4 (в основн на магистральных маршрутизаторах Интернета). Особенности применения техноло« Гтга н - „.... толь,дтк.... -...... «и ФРагментация гР-пекетое Фрагментация! Р-пакетов Вышней особенностью протокола 1Р отличающей его от других сетевых протоколов (например, от сетевого протокола 1РХ, который какое-то время назад конкурировал с 1Р), вввяется его способность выполнять динамическую ((уагзгеяяящию пакетов при передаче их яежду сетями с различными максимально допустимыми значениями длины поля данных вгдров (Махппшп Тгапзппззюп Пшй МТ(1).
Значения МТП зависят как от протокола, так и от настройки сетевых интерфейсов. Прежде всего отметим разницу между фрагментацией сообщений в узле-отправишеле и пгнамической фрагментацией сообщений гг глраязитнмх узлах сети — маршрутизаторах. В первом случае деление сообщения на несколько более мелких частей (фрагментация) происходит при передаче данных между протоколами одного и того же стека внутри компьютера. Протоколы, выполняющие фрагментацию в пределах узла, анализируют тип технологии нижнего уровня, определяют ее МТ11 и делят сообщения на такие части, которые умещаются в кадры канального уровня того же стека протоколов.
В стеке ТСРгг1Р зту задачу решает протокол ТСР, который разбивает поток байтов, передаваемый ему с прикладного уровня, на сегменты нужного размера, например, по И60 байт, если на нижнем уровне данной сети работает протокол ЕгЬегпес. Протокол 1Р в )зле-отправителе, как правило, не использует свои возможности по фрагментации пакетов.
Ь зот на транзитном узле — маршрутизаторе, когда пакет необходимо передать из сети гбольшим значением МТП в сеть с меньшим значением МТП, способности протокола 1Р чыпалнять фрагментацию становятся востребованными. Пометы-фрпементы, путешествуя по сети, могут вторично подвергнуться фрагментации на каком-либо из промежуточных каршрутизаторов. Параметры Фрагментации Вчяаый из фрагментов должен быть снабжен полноценным заголовком 1Р Некоторые из пшей заголовка (идентификатор, ТТ1., флаги 1)Р и МК смещение) непосредственно предввначены для последующей сборки фрагментов в исходное сообщение. П Идентификатор пакета используется для растюэяаеаяия пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части (фрагменты) одного пакета должны иметь одинаковое значение этого поля.
Модуль 1Р отправляющий пакет, устанавливает в поле идентификатора значение, которое должно быть уникальным для данной пары отправителя и получателя в течение всего времени, пока данный пакет (яли любой его фрагмент) может существовать в составной 1Р-сети. П Поле времени жизни (Типе То 1лче, "ГП.) занимает один байт и определяет предельный срок, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задаегея источником (отправителем). Как уже отмечалось в начале этой главы, по истечении каждой секунды пребывания на каждом из маршрутизаторов, через которые проходит пакет во время своего «путешествия» по сети, из его текущего времени жизни вычитается единица; единица вычитается и в том случае, если время пребывания было меньше секунды.
Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно интерпретизозать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нулевым до того, как пакет достигает Глава 16. Протокол межсетевого ээаимодэйстеия получателя, пакет уничтожается.
При сборке фрагментов хост-получатель использует значение ТТ1. как крайний срок ожидания недостающих фрагментов. ьл Поле смещения фрагмента предоставляет получателю информацию о положении фрагмента относительно начала поля данных исходного нефрагментированного пакета. Так, например, первый фрагмент будет иметь в поле смещения нулевое значение.
В пакете, не разбитом на фрагменты, поле смещения также имеет нулевое значение. Смещение задается в байтах и должно быть кратно 8 байт. (2 Установленный в единицу однобитный флаг МР (Моте Ргайшепгз — больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом.
Модуль 1Р отправляющий нефрагментированный пакет, устанавливает бит МР в нуль. 0 Флаг РР (1)о пог Ргайшепг — не фрагментировать), установленный в единицу, запрещает маршрутизатору фршментировать данный пакет. Если помеченный таким образом пакет не может достигнуть получателя без фрагментации, то модуль 1Р его уничтожает, а узлу-отправителю посылается диагностическое сообщение. ПРИМЕЧАНИЕ Возможность запретить фрагментацию позволяет в некоторых случаях ускорить работу приложений. Для этого вначале необходимо исследовать сеть, определить максимальный размер пакета, который сможет пройти весь путь без фрагментации, а затем использовать пакеты такого нли меньшею размера лля обмена данными.
Дацнал возможность позволяет также предотвратить фрагментацию э тех случаях, когда хост-получатель ие имеет достаточных ресурсов для сборки фрагментов. Механизм фрагментации Рассмотрим механизм фрагментации на примере составной сети, показанной нз рис.
16.20. В одной из подсетей (Ргаше Ке!ау) значение МТ13 равно 4080, в другой (Еспегпес) — 1492 Хост, принадлежащий сети Ргаше Ке!ау, передает данные хосту в сети Егцегпеп На обоих хостах, а также на маршрутизаторе, связывающем эти подсети, установлен стек протоколов ТСР/! Р. Транспортному уровню хоста-отиравитеия известно значение МТ1) нижележащей тех. нологии (4080).
На основании этого модуль ТСР и «нарезает» свои сегменты размером 4000 байт и передает вниз протоколу 1Р, который помещает сегменты в поле данных 1Р- пакетов и генерирует для них заголовки. Обратим особое внимание на заполнение тек полей заголовка, которые прямо связаны с фрагментацией: С1 пакету присваивается уникальный идентификавюр, например 12456; 0 поскольку пакет пока еще не был фрагментирован, в поле смея(лния помещается звзчение 0; 0 признак МРтамже обнуляется, это показывает, что пакет одновременно является и сэо. им последним фрагментом; (2 признак РР устанавливается в 1, это означает, что данный пакет можно фрагментироэать Общая величина 1Р-пакета составляет 4000 плюс 20 (размер заголовка 1Р), то есть 4020 байт, что умещаегся в поле данных кадра Ргшпе Ке)ау, которое в данном примере раэээ 4080.
Далее модуль 1Р хоста-отправителя передает этот кадр своему сетевому интерфейсу Ргаше Ке!ак котооый отяоавляет кадпы следующему мапшпттизатопк 549 Фрагментация !Р-пакетов Рис. 16.20. Фрагментация Модуль 1Р маршрутизатора по сетевому адресу прибывшего 1Р-пакета определяет, что пакет нужно передать в сеть Етйегпеп Однако оиа имеет значение МТ1), равное 1492, что значительно меньше размера поступившего иа входной интерфейс пакета.
Следовательно, 1Р-пакет необходимо фрагмеитировать. Модуль 1Р выбирает размер поля данных 0рагиеита равным 1000, так что из одного большого! Р-пакета получается 4 маленьких пикета-фрагмента. Для каждого фрагмента и его заголовка 1Р в маршрутизаторе создается отдельный буфер (иа рисунке фрагменты и соответствующие им буферы пронумерованы рт ! до 4). Протокол 1Р копирует в эти буферы содержимое некоторых полей заголовка !Р исходного пакета, создавая тем самым чзаготовкиь заголовков 1Р всех новых пакетов- фрагментов.