tanenbaum_seti_all.pages (525408), страница 131
Текст из файла (страница 131)
Благодаря независимости сетей друг от друга, они часто называются автономными системами (АБ) (АС). Типичный интерсетевой пакет, отправляясь из своей локальной сети, адресуется своему локальному многопротокольному маршрутизатору (адрес прописываегся в заголовке МАС-уровня). Когда он попадаег туда, сетевой уровень с помощью своих таблиц решает, какому многопротокольному маршрутизатору переслать этот пакет. Если до соответствующего маршрутизатора можно добраться с помощью «родного» сетевого протокола пакета, он направляется туда напрямую.
В противном случае он туннелируется туда, для чего используются пакет и протокол промежуточной сети. Этот процесс повторяется до тех пор, пока пакет не прибудет в сеть адресата. Одно из различий внутрисетевой и межсетевой маршрутизаций состоит в том, что при межсетевой маршрутизации часто требуется пересечение международных границ.
Неожиданно вступают в игру различные законы, как, например, строгое шведское законодательство, касающееся экспорта личных сведений о шведских гражданах за пределы Швеции. другим примером является канадский закон, гласящий, что поток данных, начинающийся и заканчивающийся в Канаде, не может покидать пределы страны. Это означает, что трафик из Виндзора, штат Онтарио, в Ванкувер не может проходить через окрестности соседнего Детройта, даже если такой путь быстрее и дешевле. Другим различием внутрисетевой и межсетевой маршрутизаций является их стоимость. В пределах одной сети обычно применяется единый алгоритм тарификации.
Однако различные сети могут управляться различными организация- 492 Глава 5. Сетевой уровень ми, и один маршрут может оказаться дешевле другого. Аналогично, качество обслуживания, предлагаемое в Разных сетях, также может различаться, что также может послужить причиной выбора того или иного маршрута. Фрагментация Все сети накладывают ограничения на размер своих пакетов. Эти пределы вызваны различными предпосылками, среди которых есть следующие: 1. Аппаратные (например, размер кадра Е111сгпег).
2. Операционная система (например, все буферы имеют размер 512 байт). 3. Протоколы (например, количество бит в поле длины пакета). 4. Соответствие какому-либо международному или национальному стандарту, 5, Желание снизить количество пакетов, пересылаемых повторно из-за ошибок передачи. 6. Желание предотвратить ситуацию, когда один пакет слишком долгое время занимает канал. Результатом действия всех этих факторов является то, что разработчики не могут выбирать максимальный размер пакета по своему усмотрению. Максимальный размер поля полезной нагрузки варьируется от 48 байт (АТМ-ячейки) до 65 515 байт (1Р-пакеты), хотя па более высоких уровнях размер поля полезной нагрузки часто бывает больше. Очевидно, возникает проблема, когда большой пакет хочет пройти по сети, в которой максимальный размер пакетов слишком мзл.
Одно из решений состоит в предотвращении возникновения самой проблемы. Другими словами, объединенная сеть должна использовать такой алгоритм маршрутизации, который не допускает пересылки пакетов по сетям, которые пе могут их принять. Однако это решение вовсе не является решением. Что произойдет, если исходный пакет окажется слишком велик для сети адресата? Алгоритм маршрутизации будет в данном случае бессилен. Следовательно, единственное решение проблемы заключается в разрешении шлюзам разбивать пакеты на фрагменты и посылать каждый фрагмент в виде отдельного межсетевого пакета.
Однако, как вам скажет любой родитель маленького ребенка, преобразование объекта в небольшие фрагменты существенно проще, чем обратный процесс. (Физики даже дали этому эффекту ломания игрушек специальное название: второй закон термодинамики.) В сетях с коммутацией пакетов также существует проблема с восстановлением пакетов из фрагментов. Для восстановления исходных пакетов из фрагментов применяются две пРотивоположные стратегии.
Первая стратегия заключается в том, чтобы фрагментация пакета, вызванная сетью с пакетами малых размеров, оставалась прозрачной для обоих хостов, обменивающихся пакетом. Этот вариант показан на рис. 5А4, а. «Мелкопакетная» сеть имеет шлюзы (скорее всего, это специализированные маршрутизаторы), предоставляющие интерфейсы другим сетям. Когда на такой шлюз приходит пакет слишком большого размера, он разбивается на фрагменты.
Объединение сетей 493 Кало(ьгй фрагмент адресуется одному и тому же выходному шлюзу, восстанавливающему из этих фрагментов исходный пакет. Таким образом, прохождение данных через мелкопакетную сеть оказывается прозрачным. Соседние сети даже не догадываются о том, что у них под боком пакеты страшным образом нарезаются, а цотом снова склеиваются. В сетях АТМ, например, есть даже специальная аппаратура для обеспечения прозрачной фрагментации пакетов (разбивания на ячейки) и обратной сборки ячеек в пакеты. В мире АТМ фрагментацию называют сегментацией. Концепция та же самая, а отличия есть только в некоторых деталях, Сеть 1 Сеть 2 Пакет ОО (61) НО +Я ( ) + ЯЗ ( ) — +(()4~ Шлюз ОЗ ШЛЮЗ гх4 снова опять фрагментирует восстанавливает Шлюз Сз Шлюз 02 фрвгментирует восстанавливает большой пакет пакет из фрагментов Пакет ООа НО ОО ЯНΠ— ~.[Я НΠ— ~ ['ЯОΠ— ~.[Я ОО ОО ОО О ОО Шлюз С( фрагментирует большой пакет Фрагменты нв собираются до тех пор, пока они не доходят до окончательного получателя (хоста) б Рис.
б.44. Прозрачная фрагментация (а); непрозрачная фрагментация (б) Прозрачная фрагментация проста, но, тем не менее, создает некоторые проблемы. Во-первых, выходной шлюз должен уметь определять момент получения последней части пакета, поэтому каждый фрагмент должен содержать либо поле счетчика, либо признак конца пакета. Во-вторых, все фрагменты должны выходить через один и тот же шлюз. Таким образом, налагается запрет на использование фрагментами различных путей к окончательному получателю, и в результате может оказаться потерянной часть производительности. Наконец, процессы фРагментации и последующей сборки пакетов при прохождении каждой сети с малым размером пакетов приводят к дополнительным накладным расходам.
Сетям АТМ требуется прозрачная фрагментация. Другая стратегия фрагментации состоит в отказе от восстановления пакета из фрагментов на промежуточных маршрутизаторах, Как только пакет оказывается Разбитым на отдельные фрагменты, с каждым фрагментом обращаются как с отдельным пакетом. Все фрагменты проходят через выходной шлюз (или несколько), как показано на рис. 5А4, б. Задача восстановления оригинального пакета возложена на получающий хост. Так работает (Р.
С непрозрачной фрагментацией связаны свои проблемы. Например, она требует, чтобы каждый хост мог восстановить пакет из фрагментов. Кроме того, при фрагментации большого пакета возрастают суммарные накладные расходы, так 494 Глава 5. Сетевой уровень как каждый фрагмент должен иметь заголовок. В то время как в случае прозрачной фрагментации лишние заголовки при выходе из мелкопакетной сети исчезали, в данном методе накладные расходы сохраняются на протяжении всего пути. Однако преимущество непрозрачной фрагментации состоит в возможности использовать для передачи фрагментов несколько различных маршрутов, что повышает производительность. Естественно, при использовании модели сцепленных виртуальных каналов это преимушество оказывается бесполезным, Фрагменты пакета должны нумероваться таким образом, чтобы можно было восстановить исходный поток данных.
Один из способов нумерации фрагментов состоит в использовании дерева. Если пакет 0 должен быть расщеплен, фрагменты получают номера 0.0, 0.1, 0.2 и т. д, Если эти фрагменты в дальнейшем сами фрагментируются, получающиеся кусочки нумеруются так: 0.0.0, 0.0.1, 0.0.2...,, 0.1.0, 0.1.1, 0.1.2 и т. д. Если в заголовках зарезервировано достаточно места для случая наиболее глубокого разбиения и при этом отсутствуют дубликаты, то такая схема гарантирует правильную сборку пакета получателем независимо от порядка, в котором будут получены отдельные фрагменты. Однако если одна из сетей нечаянно потеряет или удалит один или несколько фрагментов, то понадобится повторная передача всего пакета с тяжелыми последствиями для системы нумерации. Представим, что передается пакет длиной 1024 байта. При первой передаче пакета он разбивается на четыре одинаковых фрагмента с номерами 0.0, 0.1, 0.2 и 0.3.
Фрагмент 0.1 теряется по дороге, а остальные успешно добираются до получателя. Отправитель не получает подтверждения на переданный пакет и посылает его снова. Но на этот раз срабатывает закон бутерброда (или закон Мерфи): пакет пересылается по другому маршруту и проходит через сеть с 512-байтовым ограничением на размер пакетов, поэтому пакет разбивается всего на два фрагмента, Получив фрагмент с номером 0.1, получатель может подумать, что это — как раз недостающая деталь, и в результате соберет пакет неверно. Совершенно иной и гораздо более совершенный подход к решению данной проблемы состоит в определении размера элементарного фрагмента, достаточно малого, чтобы он мог пройти по любой сети.