Литмир - Электронная Библиотека

VPN — обычная оверлейная сеть, использующаяся в качестве меры безопасности. Более подробно о VPN мы поговорим в главе 8.

5.5.4. Маршрутизация в объединенных сетях

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

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

Более того, оператор может не предоставлять другим операторам доступ к сведениям о весах и путях в своей сети, потому что в них может содержаться секретная информация (например, стоимость), важная в конкурентной борьбе.

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

Таким образом, нам необходим двухуровневый алгоритм маршрутизации. В пределах каждой сети для маршрутизации используется внутридоменный (intradomain) или внутренний шлюзовый протокол (interior gateway protocol; термин «шлюз» употреблялся раньше вместо термина «маршрутизатор»). Это может быть обычный протокол, учитывающий состояние линий. Между сетями применяется междоменный (interdomain) или внешний шлюзовый протокол (exterior gateway protocol). Сети могут использовать разные внутридоменые протоколы, но междоменный протокол обязан быть общим. В сети Интернет междоменный протокол называется BGP (Border Gateway Protocol пограничный межсетевой протокол). О нем мы поговорим в следующем разделе.

Здесь следует рассказать еще об одном важном понятии. Так как все сети управляются независимо, они часто называются АС автономными системами (AS — Autonomous System). Хорошая умозрительная модель АС — сеть ISP. На практике сеть ISP может состоять из нескольких АС, если они управляются независимо. Но разница не очень существенна.

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

До сих пор мы практически ничего не рассказали о том, как вычисляются маршруты в интерсети. В Интернете определяющим фактором является сотрудничество между сетями ISP. Каждая сеть может назначить цену за трафик другой сети. Еще один фактор заключается в том, что если маршрутизация в объединенных сетях требует пересечения границ государств, в игру могут неожиданно вступить законы этих государств. Так, в Швеции персональные данные граждан находятся под строжайшей защитой. Все эти внешние факторы объединяются в понятие политики маршрутизации (routing policy). В соответствии с ней автономные сети выбирают маршруты. К этому понятию мы еще вернемся, когда будем говорить о BGP.

5.5.5. Фрагментация пакетов

Все сети и каналы накладывают ограничения на размер своих пакетов. Эти пределы вызваны различными предпосылками, среди которых есть следующие:

1.    Аппаратные (например, размер кадра Ethernet).

2.    Операционная система (например, все буферы имеют размер 512 байт).

3.    Протоколы (например, количество бит в поле длины пакета).

4.    Соответствие какому-либо международному или национальному стандарту.

5.    Желание снизить количество пакетов, пересылаемых повторно из-за ошибок передачи.

6.    Желание предотвратить ситуацию, когда один пакет слишком долгое время занимает канал.

Результатом действия всех этих факторов является то, что разработчики не могут выбирать максимальный размер пакета по своему усмотрению. Максимальный размер поля полезной нагрузки составляет 1500 байт для сети Ethernet и 2272 байта для

802.11. Протокол IP более щедр: размер пакета может достигать 65 515 байт.

Обычно хосты стараются отправлять крупные пакеты, так как это уменьшает издержки — например, позволяет сэкономить на заголовках. Очевидно, возникает проблема, когда большой пакет хочет пройти по сети, в которой максимальный размер пакетов слишком мал. Эта проблема сохраняла свою актуальность долгое время, а ее решения разрабатывались во многом на основании опыта, полученного в сети Интернет.

Одно из решений состоит в предотвращении возникновения самой проблемы. Но сказать это проще, чем сделать. Обычно отправитель не знает, по какому пути пойдет пакет, и поэтому он также не может знать, какого размера должен быть пакет, чтобы он добрался до места назначения. Такой размер пакета называется путевым значением MTU (Path Maximum Transmission Unit максимальный размер пакета для выбранного пути). Не важно, знает ли отправитель путевое значение MTU. В сети, не требующей соединения (такой как Интернет), маршруты пакетов в любом случае выбираются независимо. Это значит, что путь может неожиданно измениться, а тогда изменится и путевое значение MTU.

Альтернативное решение проблемы заключается в разрешении шлюзам разбивать пакеты на фрагменты (fragments) и посылать каждый фрагмент в виде отдельного пакета сетевого уровня. Однако, как вам скажет любой родитель маленького ребенка, преобразование большого объекта в небольшие фрагменты существенно проще, чем обратный процесс. (Физики даже дали этому эффекту специальное название: второй закон термодинамики.) В сетях с коммутацией пакетов также существует проблема с восстановлением пакетов из фрагментов.

Компьютерные сети. 5-е издание - _291.jpg

Рис. 5.37. Фрагментация: а — прозрачная; б — непрозрачная

Для восстановления исходных пакетов из фрагментов применяются две противоположные стратегии. Первая стратегия заключается в том, чтобы фрагментация пакета, вызванная сетью с пакетами малых размеров, оставалась прозрачной для обоих хостов, обменивающихся этим пакетом. Этот вариант показан на рис. 5.37, а. Когда на G1 приходит пакет слишком большого размера, он разбивается на фрагменты. Каждый фрагмент адресуется одному и тому же выходному маршрутизатору, G2, восстанавливающему из этих фрагментов исходный пакет. Таким образом, прохождение данных через сеть с небольшим размером пакетов оказывается прозрачным. Соседние сети даже не догадываются о том, что у них под боком пакеты страшным образом нарезаются, а потом снова склеиваются. Прозрачная фрагментация проста, но тем не менее создает некоторые проблемы. Во-первых, выходной маршрутизатор должен уметь определять момент получения последней части пакета, поэтому каждый фрагмент должен содержать либо поле счетчика, либо признак конца пакета. Кроме того, тот факт, что для последующего восстановления пакета все фрагменты должны выходить через один и тот же маршрутизатор, ограничивает возможности маршрутизации. Таким образом, налагается запрет на использование фрагментами различных путей к окончательному получателю, и в результате может оказаться потерянной часть производительности. Но еще более важным является вопрос о том, какую работу должен будет выполнить при этом маршрутизатор. Возможно, ему потребуется помесить в буфер все прибывшие фрагменты и понять, в какой момент их можно выбросить, если какие-то фрагменты не дошли. Наконец, процессы фрагментации и последующей сборки пакетов при прохождении каждой сети с малым размером пакетов приводят к дополнительным накладным расходам. Другая стратегия фрагментации состоит в отказе от восстановления пакета из фрагментов на промежуточных маршрутизаторах. Как только пакет оказывается разбитым на отдельные фрагменты, с каждым фрагментом обращаются как с отдельным пакетом. Все фрагменты проходят через маршрутизаторы, как показано на рис. 5.37, б. Задача восстановления оригинального пакета возложена на получающий хост.

153
{"b":"639789","o":1}