Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Архитектура и стандартизация сетей 12 страница



1. Формирование пакета с инкапсулированным в него DNS-запросом. Программный модуль FTP-клиента получив команду > ftp unix.mgu.com, передает запрос к работающей на этом же компьютере клиентской части протокола DNS, которая, в свою очередь формирует к DNS-серверу запрос, интерпретируемый примерно так: «Какой IP-адрес соответсвует символьному имени unix.mgu.com?» Запрос упаковывается UDP-дейтаграмму затем в IP-пакет. В заголовке пакета в качестве адреса назначения Указывается IP-адрес 200.5.16.6 DNS-сервера. Этот адрес известен программному обеспечению клиентского компьютера, так как он входит в число его конфигурационных параметров. Сформированный IP-пакет будет перемещаться по сети в неизменном виде (как показано на рис. 16.5), пока не дойдет до адресата — DNS-сервера.

2. Передача кадра Ethernet с IP-пакетом маршрутизатору R3. Для передачи этого IP-пакета необходимо его упаковать в кадр Ethernet, указав в заголовке МАС-адрес получателя. Технология Ethernet способна доставлять кадры только тем адресатам, которые находятся в пределах одной подсети с отправителем. Если же адресат расположен в этой подсети, то кадр надо передать ближайшему маршрутизатору, чтобы тот взял на себя заботу о дальнейшем перемещении пакета. Для этого модуль IP, сравнив номера сетей в адресах отправителя и получателя, то есть 129.13.23.17 и 200.5.16.6, выясняет, что пакет направляется в другую сеть, следовательно, его необходимо передать маршрутизатору, в данном случае маршрутизатору по умолчанию. IP-адрес марщрутизатор по умолчанию также известен клиентскому узлу, поскольку он входит в число конфигурационных параметров. Однако для кадра Ethernet необходимо указать не IP-адрес, а МАС-адрес получателя. Эта проблема решается с помощью протокола ARP, который для ответа на вопрос: Какой МАС-адрес соответствует IP-адресу 194.87.23.1?» делает поиск в своей ARP-таблице. Поскольку обращения к маршрутизатору происходят часто, будем считать, что нужный МАС-адрес обнаруживается в таблице и имеет значение 008048ЕВ7Е60. После получения этой информации клиентский компьютер cit.mgu.com отправляет маршрутизатору R3 пакет, упакованный в кадр Ethernet (рис. 16.6).

 

Рис. 16.5. IP-пакет с инкапсулированным в него DNS-запросом

 

Рис. 16.6. Кадр Ethernet с инкапсулированным IP-пакетом, отправленный с клиентского компьютера

 

3. Определение IP-адреса и MAC-адреса следующего маршрутизатора R2. Кадр принимается интерфейсом 129.13.5.1 маршрутизатора R3. Протокол Ethernet, работающий на этом интерфейсе, извлекает из этого кадра IP-пакет и передает его протоколу IP. Протокол находит в заголовке пакета адрес назначения 200.5.16.6 и просматривает записи своей таблицы маршрутизации. Пусть маршрутизатор Кб не обнаруживает специфического маршрута для адреса назначения 200.5.16.6, но находит в своей таблице следующую запись:

200.5.16.0 198.21.17.7 198.21.17.6

Эта запись говорит о том, что пакеты для сети 200.5.16.0 маршрутизатор R3 должен передавать на свой выходной интерфейс 198.21.17.6, с которого они поступят на интерфейс следующего маршрутизатора R2, имеющего IP-адрес 198.21.17.7. Однако знания IP-адреса недостаточно, чтобы передать пакет по сети Ethernet. Необходимо определить МАС-адрес маршрутизатора R3. Как известно, такой работой занимается протокол ARP. Пусть на этот раз в ARP-таблице нет записи об адресе маршрутизатора R3. Тогда в сеть отправляется широковещательный ARP-запрос, который поступает на все интерфейсы сети 198.21.17.0. Ответ приходит только от интерфейса маршрутизатора R3: «Я имею 1Р-адрес 198.21.17.7 и мой МАС-адрес 00E0F77F5A02» (рис. 16.7).

Рис. 16.7. Кадры Ethernet с инкапсулированными ARP-запросом и ARP-ответом.

Теперь, зная МАС-адрес маршрутизатора R2 (00E0F77F5A02), маршрутизатор R3 отсылает ему IP-пакет с DNS-запросом (рис. 16.8).

4. Маршрутизатор R2 доставляет пакет DNS-серверу. Модуль IP на маршрутизаторе R2 действует в соответствии с уже не раз описанной нами процедурой: отбросив заголовок кадра Ethernet, он извлекает из пакета IP-адрес назначения и просматривает свою таблицу маршрутизации. Там он обнаруживает, что сеть назначения 200.5.16.0 является непосредственно присоединенной к его второму интерфейсу. Следовательно, пакет не нужно маршрутизировать, однако требуется определить МАС-адрес узла назначения. Протокол ARP «по просьбе» протокола IP находит (либо из ARP-таблицы, либо по запросу) требуемый МАС-адрес 00E0F7751231 DNS-сервера. Получив ответ о МАС-адресе, маршрутизатор R2 отправляет в сеть назначения кадр Ethernet с DNS запросом (рис. 16.9).

 

Рис. 16.8. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R3 маршрутизатору R2

 

Рис. 16.9. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R2

 

5. Сетевой адаптер DNS-сервера захватывает кадр Ethernet, обнаруживает совпадение МАС-адреса назначения, содержащегося в заголовке, со своим собственным адресом и направляет его модулю IP. После анализа полей заголовка IP из пакета извлекает данные вышележащих протоколов. DNS-запрос передается программному модулю DNS-сервера DNS-сервер просматривает свои таблицы, возможно, обращается к другим DNS-серверам и в результате формирует ответ, смысл которого состоит в следующем «Символьному имени unix.mgu.com соответствует IP-адрес 56.01.13.14».

Процесс доставки DNS-ответа клиенту cit.mgu.com совершенно аналогичен процессу передачи DNS-запроса, который мы только что так подробно описали. Работая в тесной кооперации, протоколы IP, ARP и Ethernet передают клиенту DNS-ответ через всю составную сеть (рис. 16.10).

Рис. 16.10. Кадр Ethernet с DNS-ответом, отправленный с маршрутизатора R3 компьютеру-клиенту

 

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

 


Маршрутизация с использованием масок

 

Алгоритм маршрутизации усложняется, когда в систему адресации узлов вносятся дополнительные элементы — маски. В чем же причины отказа от хорошо себя зарекомендовавших в течение многих лет метода адресации, основанного на классах? Основная из них - потребность в структуризации сетей в условиях дефицита нераспределенных номеров сетей

Часто администраторы сетей испытывают неудобства, поскольку количества централизованно выделенных им номеров сетей недостаточно для того, чтобы структурировать сеть надлежащим образом, например развести все слабо взаимодействующие компьютеры по разным сетям. В такой ситуации возможны два пути. Первый из них связан с получение от кого-либо центрального органа дополнительных номеров сетей. Второй способ, употребляющийся чаще, связан с использованием технологии масок, которая позволяет разделить одну сеть на несколько.

 

Структуризация сети масками одинаковой длинны

 

Допустим, администратор получил в свое распоряжение сеть класса В: 129.44.0.0. Он может организовать сеть с большим числом узлов, номера которых доступны ему из диапазона 0.0.0.1-0.0.255.254. Всего в его распоряжении имеется (216 - 2) адреса. Вычитание двойки связано с учетом того, что адреса из одних нулей и одних единиц имеют специальное назначение и не годятся для адресации узлов. Однако ему не нужна одна большая неструктурированная сеть. Производственная необходимость диктует администратору другое решение, в соответствии с которым сеть должна быть разделена на три отдельных подсети, при этом трафик в каждой подсети должен быть надежно локализован. Это позволит легче диагностировать сеть и проводить в каждой из подсетей особую политику безопасности (Заметим, что разделение большой сети с помощью масок имеет еще одно преимущество - оно позволяет скрыть внутреннюю структуру сети предприятия от внешнего наблюдения и тем самым повысить ее безопасность.)

На рис. 16.11 показано разделение всего полученного администратором адресного диапазона на 4 равные части — каждая по 214 адресов. При этом число разрядов, доступных для нумерации узлов, уменьшилось на два бита, а префикс (номер) каждой из четырех сетей стал длиннее на два бита. Следовательно, каждый из четырех диапазонов можно записать в виде IP-адреса с маской, состоящей из 18 единиц, или в десятичной нотации 255.255.192.0.

129.44.0.0/18 (1000000100101100 00000000 00000000)

129.44,64.0/18 (1000000 i 00101100 01000000 00000000)

129.44.128.0/18 (100000010010110010000000 00000000)

129.44.192.0/18 (10000001 0010110011000000 00000000)

Из приведенных записей видно, что администратор получает возможность использования для нумерации подсетей два дополнительных бита (выделенных жирным шрифтом). Именно это позволяет ему сделать из одной централизованно выделенной сети четыре, в данном примере это 129.44.0.0/18,129.44.64.0/18,129.44.128.0/18,129.44.192.0/18.

Пример сети, построенной путем деления на 4 сети равного размера, показан на рис. 16.12. Весь трафик во внутреннюю сеть 129.44.0.0, направляемый из внешней сети, поступает через маршрутизатор R1. В целях структуризации информационных потоков во внутренней сети установлен дополнительный маршрутизатор R2. Каждая из вновь образованных сетей 129.44.0.0/18, 129.44.64.0/18, 129.44.128.0/18 и 129.44.192.0/18 подключена к соответственно сконфигурированным портам внутреннего маршрутизатора R2.

 

Рис. 16.11. Разделение адресного пространства 129.44.0.0 сети класса В на четыре равные части

ПРИМЕЧАНИЕ

В одной из этих сетей (129.44.192.0/18), выделенной для организации соединения между внешним и внутренним маршрутизаторами, для адресации узлов задействованы всего два адреса — 129.44.192.1 (порт маршрутизатора R2) и 129.44.192.2 (порт маршрутизатора R1). Огромное число узлов в этой подсети не используется. Такой пример выбран исключительно в учебных целях, чтобы показать неэффективность сетей равного размера.

 

Извне сеть по-прежнему выглядит, как единая сеть класса В. Однако поступающий в сеть общий трафик разделяется локальным маршрутизатором R2 между четырьмя сетями. В условиях, когда механизм классов не действует, маршрутизатор должен иметь другое средство, которое позволило бы ему определять, какая часть 32-разрядного числа, помещенного в поле адреса назначения, является номером сети. Именно этой цели служит дополнительное поле маски, включенное в таблицу маршрутизации (табл. 16.8).

Первые четыре записи в таблице соответствуют внутренним подсетям, непосредственно. Непосредственно подключенным к портам маршрутизатора R2.

Запись 0.0.0.0 с маской 0.0.0.0 соответствует маршруту по умолчанию.

Последняя запись определяет специфический маршрут к узлу 129.44.128.15. В тех строках таблицы, в которых в качестве адреса назначения указан полный IP-адрес узла, маска имеет значение 255.255.255.255. В отличие от всех других узлов сети 129.44.128.0, к которым пакеты поступают с интерфейса 129.44.128.5 маршрутизатора R2, к данному узлу они должны приходить через маршрутизатор R3.

Рис. 16.12. Маршрутизация с использованием масок одинаковой длины Таблица 16.8. Таблица маршрутизатора R2 в сети с масками одинаковой длины

 

Адрес назначения Маска Адрес следующего маршрутизатора Адрес порта Расстояние
129.44.0.0 255.255.192.0 129.44.0.1 129.44.0.1 Подключена
129.44.64.0 255.255.192.0 129.4464.7 129.44.64.7 Подключена
129.44.128.0 255.255.192.0 129.44.128.5 129.44.128.5 Подключена
129.44.192.0 255.255.192.0 129.44.192.1 129.44.192.1 Подключена
0.0.0.0 0.0.0.0 129.44.192.2 129.44.192.1 ––
129.44.128.15 255.255.255.255 129.44.64.8 129.44.64.7 ––

 

Перекрытие адресных пространств

 

Со сложностями использования масок администратор впервые сталкивается не тогда, когда начинает конфигурировать сетевые интерфейсы и создавать таблицы маршрутизации, а гораздо раньше — на этапе планирования сети. Планирование включает определение количества сетей, из которых будет состоять корпоративная сеть, оценку требуемого количества адресов для каждой сети, получение пула адресов от поставщика услуг, распределение адресного пространства между сетями. Последняя задача часто оказывается нетривиальной, особенно когда решается в условиях дефицита адресов.

Рассмотрим пример использования масок для организации перекрывающихся адресных

пространств.

Пусть на некотором предприятии было принято решение обратиться к поставщику услуг для получения пула адресов, достаточного для создания сети, структура, которой показана на рис. 16.15. Сеть клиента включает три подсети. Две из них — это надежно защищенные от внешних атак внутренние сети отделов: сеть Ethernet на 600 пользователей и сеть Token Ring на 200 пользователей. Предприятие также предусматривает отдельную, открытую для доступа извне сеть на 10 узлов, главное назначение которой — предоставление информации в режиме открытого доступа для потенциальных клиентов. Такого рода участки корпоративной сети, в которых располагаются веб-серверы, FTP-серверы и другие источники публичной информации, называют демилитаризованной зоной (Demilitarized Zone, DMZ).

Ещё одна сеть на два узла потребуется для связи с поставщиком услуг, то есть общее число адресов, требуемых для адресации сетевых интерфейсов, составляет 812. Кроме того, необходимо, чтобы пул доступных адресов включал для каждой из сетей широковещательные адреса, состоящие только из единиц, а также адреса, состоящие только из нулей. Учитывая также, что в любой сети адреса всех узлов должны иметь одинаковые префиксы, становится очевидным, что минимальное количество адресов, необходимое клиенту для построения задуманной сети, может значительно отличаться от значения 812, полученного простым суммированием.

В данном примере поставщик услуг решает выделить клиенту непрерывный пул из 1024 адресов. Значение 1024 выбрано как наиболее близкое к требуемому количеству адресов, равному степени двойки (210 = 1024). Поставщик услуг выполняет поиск области такого размера в имеющимся у него адресном пространстве — 131.57.0.0/16, часть которого, как показано на рис. 16.16, уже распределена. Обозначим распределенные участки и владеющих ими клиентов через SI, S2 и S3. Поставщик услуг находит среди нераспределенных еще адресов непрерывный участок размером 1024 адреса, начальный адрес которого кратен размеру данного участка. Таким образом, наш клиент получает пул адресов 131.57.8.0/22, обозначенный на рисунке через S.

 

Рис. 16.15. Сети поставщика услуг и клиента

 

 

Рис. 16.16. Адресное пространство поставщика услуг

 

Далее начинается самый сложный этап — распределение полученного от поставщика услуг адресного пула S между четырьмя сетями клиента. Прежде всего, администратор решил назначить для самой большой сети (Ethernet на 600 узлов) весь пул адресов 131.57.8.0/22, полученной от поставщика услуг (рис. 16.17). Номер, назначенный для этой сети, совпадает с номером сети, полученным от поставщика услуг. А как же быть с оставшимися тремя сетями? Администратор учел, что для сети Ethernet требуется только 600 адресов, а из оставшихся 624 «выкроил» сеть Token Ring 131.57.9.0/24 на 250 адресов. Воспользовавшись тем, что для Token Ring требуется только 200 адресов, он «вырезал» из нее два участка: для сети DMZ 131.57.9.16/28 на 16 адресов и для связывающей сети 131.57.9.32/30 на 4 адреса. В результате все сети клиента получили достаточное (а иногда и с избытком) количество адресов.

Рис. 16.17. Планирование адресного пространства для сетей клиента

 

Следующий этап - это конфигурирование сетевых интерфейсов конечных узлов и маршрутизаторов. Каждому интерфейсу сообщается его IP-адрес и соответствующая маска. На рис. 6.18. показана сконфигурированная сеть клиента.

После конфигурирования сетевых интерфейсов должны быть созданы таблицы маршрутизации маршрутизаторов R1 и R2 клиента. Они могут быть сгенерированы автоматически или с участием администратора.

Рис. 16.18. Сконфигурированная сеть клиента

 

CIDR

Технология CIDR (Classless Inter-Domain Routing — бесклассовая междоменная маршрутизация) позволяет максимизировать использование ограниченного адресного пространства, доступного в рамках существующей реализации стандарта IPv4 (Internet Protocol version 4). Прочитав материал данного и последующего разделов, вы получите хорошее представление о том, как настраивается сетевая конфигурация компьютера, даже если раньше вы никогда не настраивали компьютер, подключенный к сети.

Предпосылки

С середины 1990-х и по сей день технология CIDR является наиболее распространенной тенденцией развития маршрутизации в сетях, основанных на IP. Эта концепция появилась в 1993 году для того, чтобы компенсировать недостатки существующей схемы распределения адресов IPv4 до тех пор, пока не будет введена в строй следующая версия протокола IP под названием IPv6 (также называемая IPng, то есть IP next generation — следующее поколение IP).

В настоящее время технология IPv6 проходит тщательное тестирование. Когда она вступит в строй, адресное пространство IP будет расширено на несколько порядков. В рамках IPv6 также реализованы специальные более совершенные механизмы защиты. Те из читателей, которые пожелают принять участие в формировании будущего уже сейчас, могут попробовать IPv6 в действии, так как операционная система Linux поддерживает IPv6 на уровне ядра. Но до тех пор, пока IPv6 не получит широкого распространения, благодаря CIDR вы можете максимально эффективно использовать то, чем вы ограничены в рамках IPv4.
Чтобы лучше понять, зачем вообще нужна технология CIDR, давайте вернемся назад по шкале времени в конец 1980-х годов. В то время для поиска и идентификации компьютерных систем в сети использовался протокол IPv4. Однако в то далекое время к Интернету было подключено относительно немного компьютеров. Количество компьютеров, которые нуждались в подключении к Интернету, также было небольшим. В действительности огромное количество систем использовали для передачи данных протокол UUCP (UNIX-to-UNIX Copy Protocol). В рамках протокола UUCP компьютеры устанавливали между собой связь в заранее определенное время, происходил обмен электронной почтой, после чего связь разрывалась. В то далекое время запас IP-адресов, доступных в рамках IPv4, казался неисчерпаемым. Однако это было до того, как появился первый web-браузер под названием Mosaic. С появлением Mosaic Интернет стал стремительно расти. По мере его роста увеличивалась потребность в новых IP-адресах. Чем большее количество компьютеров подключалось к Интернету, тем большее количество уникальных IP-адресов требовалось для идентификации машин в Интернете.

 


Фрагментация IP-пакетов

 

Важной особенностью протокола IP, отличающей его от других сетевых протоколов (например, от сетевого протокола IPX, который какое-то время назад конкурировал с IP), является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными максимально допустимыми значениями длины поля данных кадров (Maximum Transmission Unit, MTU). Значения MTU зависят как от протокола, так и от настройки сетевых интерфейсов.

Прежде всего отметим разницу между фрагментацией сообщений в узле-отправителе и динамической фрагментацией сообщений в транзитных узлах сети — маршрутизаторах.

В первом случае деление сообщения на несколько более мелких частей (фрагментация) происходит при передаче данных между протоколами одного и того же стека внутри компьютера. Протоколы, выполняющие фрагментацию в пределах узла, анализируют тип технологии нижнего уровня, определяют ее MTU и делят сообщения на такие части, которые умещаются в кадры канального уровня того же стека протоколов.

В стеке TCP/IP эту задачу решает протокол TCP, который разбивает поток байтов, передаваемый ему с прикладного уровня, на сегменты нужного размера, например, по 1460 байт, если на нижнем уровне данной сети работает протокол Ethernet. Протокол IP в узле-отправителе, как правило, не использует свои возможности по фрагментации пакетов.

А вот на транзитном узле — маршрутизаторе, когда пакет необходимо передать из сети с большим значением MTU в сеть с меньшим значением MTU, способности протокола IP выполнять фрагментацию становятся востребованными. Пакеты-фрагменты, путешествуя по сети, могут вторично подвергнуться фрагментации на каком-либо из промежуточных маршрутизаторов.

 

Параметры фрагментации

 

Каждый из фрагментов должен быть снабжен полноценным заголовком IP. Некоторые из полей заголовка (идентификатор, TTL, флаги DF и MF, смещение) непосредственно предназначены для последующей сборки фрагментов в исходное сообщение.

Идентификатор пакета используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части (фрагменты) одного пакета должны иметь одинаковое значение этого поля. Модуль IP, отправляющий пакет, устанавливает в поле идентификатора значение, которое должно быть уникальным для данной пары отправителя и получателя в течение всего времени, пока данный пакет (или любой его фрагмент) может существовать в составной IP-сети.

Поле времени жизни (Time To live, TTL) занимает один байт и определяет предельный срок в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником (отправителем). Как уже отмечалось в начале этой главы по истечении каждой секунды пребывания на каждом из маршрутизаторов, через которые проходит пакет во время своего «путешествия» по сети, из его текущего времени жизни вычитается единица; единица вычитается и в том случае, если время пребывания было меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно интерпретировать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нулевым до того, как пакет достигает получателя, пакет уничтожается. При сборке фрагментов хост-получатель использует значение TTL как крайний срок ожидания недостающих фрагментов.

  • Поле смещения фрагмента предоставляет получателю информацию о положении фрагмента относительно начала поля данных исходного не фрагментированного пакета, например, первый фрагмент будет иметь в поле смещения нулевое значение. В пакете не разбитом на фрагменты, поле смещения также имеет нулевое значение. Смещение задается в байтах и должно быть кратно 8 байт.
  • Установленный в единицу однобитный флаг MF (More Fragments — больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Модуль IP, отправляющий не фрагментированный пакет, устанавливает бит MF в нуль.
  • Флаг DF (Do not Fragment — не фрагментировать), установленный в единицу, запрещает маршрутизатору фрагментировать данный пакет. Если помеченный таким образом пакет не может достигнуть получателя без фрагментации, то модуль IP его уничтожает, а узлу-отправителю посылается диагностическое сообщение.

 

Механизм фрагментации

 

Рассмотрим механизм фрагментации на примере составной сети, показанной на рис. 16.20.

В одной из подсетей (Frame Relay) значение MTU равно 4080, в другой (Ethernet) – 1492. Хост, принадлежащий сети Frame Relay, передает данные хосту в сети Ethernet. На обоих хостах, а также на маршрутизаторе, связывающем эти подсети, установлен стек протокола TCP/IP.

Транспортному уровню хоста-отправителя известно значение MTU нижележащей технологии (4080). На основании этого модуль TCP и «нарезает» свои сегменты размерами 4000 байт и передает вниз протоколу IP, который помещает сегменты в поле данных IP-пакетов и генерирует для них заголовки. Обратим особое внимание на заполнение полей заголовка, которые прямо связаны с фрагментацией:

  • пакету присваивается уникальный идентификатор, например 12456;
  • поскольку пакет пока еще не был фрагментирован, в поле смещения помещается значение 0;
  • признак MF также обнуляется, это показывает, что пакет одновременно является и своим последним фрагментом
  • признак DF устанавливается в 1, это означает, что данный пакет можно фрагментировать.

Общая величина IP-пакета составляет 4000 плюс 20 (размер заголовка IP) то есть 4020 байт, что умещается в поле данных кадра Frame Relay, которое в данном примере равно 4080. Далее модуль IP хоста-отправителя передает этот кадр своему сетевому интерфейсу Frame Relay, который отправляет кадры следующему маршрутизатору.

Модуль IP маршрутизатора по сетевому адресу прибывшего IP-пакета определяет, что пакет нужно передать в сеть Ethernet. Однако она имеет значение MTU, равное 1492, значительно меньше размера поступившего на входной интерфейс пакета. Следовательно, IP-пакет необходимо фрагментировать. Модуль IP выбирает размер поля данных фрагмента равным 1000, так что из одного большого IP-пакета получается 4 маленьких пакета-фрагмента. Для каждого фрагмента и его заголовка IP в маршрутизаторе создается отдельный буфер (на рисунке фрагменты и соответствующие им буферы пронумерованы от 1 до 4). Протокол IP копирует в эти буферы содержимое некоторых полей заголовка IP исходного пакета, создавая тем самым «заготовки» заголовков IP всех новых пакетов фрагментов. Одни параметры заголовка IP копируются в заголовки всех фрагментов, другие лишь в заголовок первого фрагмента.

В процессе фрагментации могут измениться значения некоторых полей заголовков IP в пакетах-фрагментах по сравнению с заголовком IP исходного пакета. Так, каждый фрагмент имеет собственные значения контрольной суммы заголовка, смещения фрагмента и общей длинны пакета- Во всех пакетах, кроме последнего, флаг MF устанавливается в единицу, а в последнем фрагменте — в нуль. Полученные пакеты-фрагменты имеют длину 1020 байт (с учетом заголовка IP), поэтому они свободно помещаются в поле данных кадров Ethernet.

На рисунке показаны разные стадии перемещения фрагментов по сети. Фрагмент 2 достиг хоста-получателя и помещен в приемный буфер. Фрагмент 1 еще перемещается в сети Ethernet, остальные фрагменты находятся в буферах маршрутизатора.

А теперь обсудим, как происходит сборка фрагментированного пакета на хосте назначения.

На хосте назначения для каждого фрагментированного пакета отводится отдельный буфер. В этот буфер принимающий протокол IP помещает IP-фрагменты, у которых совпадают IP-адреса отправителя и получателя, а также значения в полях идентификатора (в нашем примере — 12456). Все эти признаки говорят модулю IP, что данные пакеты являются фрагментами одного исходного пакета. Сборка заключается в помещении данных из каждого фрагмента в позицию, определенную смещением, указанным в заголовке фрагмента.

Когда первый фрагмент исходного пакета приходит на хост-получатель, этот xocт запускает таймер, который определяет максимальное время ожидания прибытия остальных фрагментов данного пакета. В различных реализациях IP применяются разные правила выбора максимального времени ожидания. В частности, таймер может быть установленным на фиксированный период времени (от 60 до 120 секунд), рекомендуемый RFC. Как правило, этот интервал достаточен для доставки пакета от отправителя получателю. В других реализациях максимальное время ожидания определяется с помощью адаптивных алгоритмов измерения и статистической обработки временных параметров сети, позволяют оценивать ожидаемое время прибытия фрагментов.

Признаком окончания сборки является отсутствие незаполненных промежутков в потоке данных и прибытие последнего фрагмента (с равным нулю флагом MF) до истечения тайм-аута. После того как данные собраны, их можно передать вышележащему протоколу, например TCP.




©2015 studenchik.ru Все права принадлежат авторам размещенных материалов.