Лекции 2010-го года (1130544), страница 58
Текст из файла (страница 58)
контролировать ошибки и управлятьпотоками.Отсюда следует, что сервис на сетевом уровне не должен быть ориентирован насоединения, с примитивами типа SEND_PACKET, RECEIVE_PACKET. Никакой проверкиупорядоченности пакетов, управления потоком, перегрузками здесь не должно быть. Этовсе должны делать хосты. Каждый пакет должен нести полный адрес назначения,поскольку пакеты отправляются абсолютно независимо.Представители другого лагеря - телефонные компании, основываясь на своем столетнемопыте эксплуатации телефонных сетей, считают, что сетевой уровень должен бытьнадежным и ориентированным на соединения.
С их точки зрения соединения должныобладать следующими свойствами:• Прежде чем передача начнется, передающая сторона должна установитьсоединение с равнозначной сущностью на принимающей стороне. При этом ейдолжен быть сообщен специальный идентификатор, который используется втечение всей передачи.• Когда соединение установлено, два процесса начинают переговоры о параметрах,качестве и стоимости предоставляемого сервиса.4• Передача происходит в двух направлениях, а пакеты посылаются в определенномпорядке.• Управление потоком предоставляется автоматически, чтобы избежатьпереполнения на противоположной стороне.Другие возможности, такие как гарантированная доставка, явное подтверждение доставки,приоритетные пакеты являются необязательными. Как мы уже отмечали в главе 1, сервис,не ориентированный на соединение, подобен обычной почте, а ориентированный насоединение - телефонной системе.Спор между сторонниками сервиса с соединениями и без соединений - это, по существу,спор о том, где поместить основную вычислительную сложность.
Сервис,ориентированный на соединение, предполагает, что эта сложность приходится на сетевойуровень, т.е. на транспортную среду. Сервис без соединений - на транспортный уровень, астало быть - на хост. Защитники сервиса без соединения говорят, что стоимостьвычислительных средств падает, а их мощность растет, так что нет причин не нагрузитьхост. В то же время подсеть - это всеобщая инвестиция, и часто модернизировать подсетьвряд ли будет возможно. Так что она должна оставаться неизменной как можно дольше.Кроме этого, для многих приложений скорость доставки важнее, чем ее аккуратность.Сторонники сервиса, ориентированного на соединение, считают, что большинствопользователей не хотят гонять сложные транспортные протоколы на своих машинах.
То,что им надо, так это надежный сервис, а таковой могут предоставить соединения насетевом уровне. Более того, многие приложения, такие как передача звука и изображенияв реальном масштабе времени, легче связывать с соединениями на сетевом уровне, чем ссетевым уровнем без соединений.Так каким же должен быть сетевой уровень - надежным, ориентированным на соединения,или ненадежным без соединений? Два ответа на этот вопрос предоставляют Internet иATM. В Internet сетевой уровень действует без соединений и предполагается ненадежным.В АТМ - с соединениями и надежный.Естественный вопрос: как Internet работает над АТМ? Сначала на уровне АТМустанавливается соединение между источником и получателем, а потом над этимсоединением работает TCP/IP, как это показано на рисунке 5-1. Однако здесь очень многоизбыточности и ненужного дублирования.
Так, например, АТМ-уровень гарантирует, чтопакеты доставляются точно в том порядке, в каком они отправлялись источником, тем неменее, на уровне ТСР происходит проверка последовательности пакетов ипереупорядочение в соответствии с RFC 1577.Рисунок 5-1. Работа TCP/IP над АТМ55.1.2.
Внутренняя организация сетевого уровняС точки зрения внутренней организации сетевой уровень делится на ориентированный насоединения и без соединений. В первом случае соединение называют виртуальнымканалом, по аналогии с физическим каналом в телефонных сетях. Во втором случае опакетах говорят как о дейтаграммах, по аналогии с телеграммами.Идея виртуального канала – избежать маршрутизации для каждого пакета. Маршрутустанавливается один раз при установлении виртуального канала между отправителем иполучателем и в дальнейшем не меняется до тех пор, пока передача не закончится.Подсеть запоминает выбранный маршрут.
После окончания передачи, когда соединениеразрывается, виртуальный канал уничтожается.При подходе без соединения каждый пакет маршрутизируется независимо. Разные пакетымогут следовать разными маршрутами. Продвижение по разным маршрутам можеттребовать разное время. Вследствие такой организации подсеть более надежна, способнагибко реагировать на ошибки и перегрузки. Позже мы вернемся к обсуждению всех pro иcontra этих двух подходов.Каждый маршрутизатор в сети, ориентированной на виртуальные каналы, долженпомнить, какие каналы проходят через него. У каждого маршрутизатора есть таблицавиртуальных каналов.
Каждый пакет должен иметь дополнительное поле, где хранитсяномер виртуального канала. Когда пакет приходит к маршрутизатору, то, зная линию, покоторой он пришел, и номер виртуального канала, указанный в пакете, по таблицемаршрутизатор устанавливает, по какой линии надо отправить пакет далее.При установлении соединения номер виртуального канала выбирается из числанеиспользуемых в данный момент на данной машине.
Так как каждая машина выбираетномер канала независимо, то этот номер имеет лишь локальное значение. Заметим, чтокаждый процесс должен указать ожидаемое время освобождения виртуального канала. Впротивном случае возникнут проблемы с принятием решения при освобождениивиртуального канала: может быть, одна из машин на маршруте «зависла».6Итак, при использовании виртуальных каналов транспортной среде предстоит немалоработы. В случае дейтаграмм никакой таблицы виртуальных каналов в каждоммаршрутизаторе иметь не надо.
Вместо этого у них есть таблица, в которой указано,какую линию надо использовать, чтобы доставить пакет по тому или иному адресу. Такаятаблица нужна и при виртуальных каналах, когда устанавливается соединение.У каждой дейтаграммы должен быть полный адрес доставки. В больших сетях этот адресможет быть достаточно большим (десятки байт). Когда пакет поступает, маршрутизаторпо таблице и адресу определяет, по какой линии надо отправить эту дейтаграмму, ипосылает ее туда.5.1.3. Сравнение транспортных сред с виртуальными каналамии с дейтаграммамиРезультаты сравнения подсетей этих двух видов собраны в таблице 5-2. Выбор той илииной внутренней организации транспортной среды требует определенного компромисса.Так, например, использование виртуального канала избавляет от необходимостипрописывать в каждом пакете длинный адрес доставки.
Однако в то же время этопредполагает затраты памяти у маршрутизатора на хранение таблиц. Так что здесь явныйкомпромисс между пропускной способностью и памятью маршрутизатора.Таблица 5-2. Сравнение подсетей с виртуальными каналами и дейтаграммамиПризнакПодсеть с дейтаграммамиПодсеть с виртуальными каналамиНастройка каналаНе нужна.Необходима.АдресацияКаждый пакет содержит полный адресисточника и получателя.Каждый пакет содержит короткий номер ВК.Информация осостоянии подсетиПодсеть не располагает информацией осостоянии подсети.Каждый ВК требует таблицу состояния подсетиВыбор маршрутаКаждый пакет доставляется независимо.Маршрут выбирается после установления ВК;все пакеты направляются по этому маршруту.Влияние сбоямаршрутизатораНикакого, за исключением случая, когда вовремя сбоя теряются пакеты.Все ВК, проходящие через такоймаршрутизатор, обрываются.Контроль перегрузокСложныйПростой, если заранее будет выделенодостаточно буферов для каждого ВКДругим компромиссом является время установки соединения в сравнении с временем наразбор адреса доставки.
В подсетях с виртуальными каналами требуется время наустановление канала. Однако для один раз установленного канала не требуется большихусилий, чтобы направить по нему пакет. При дейтаграммном подходе надо выполнятькаждый раз достаточно сложную процедуру, чтобы определить, куда посылатьдейтаграмму.Виртуальные каналы имеют известные преимущества при борьбе с перегрузками, так какпри установке виртуального канала можно заранее зарезервировать ресурсы. Начавпередачу пакетов, можно быть уверенным, что необходимая пропускная способность иресурсы маршрутизатора есть.
Борьба с перегрузками при дейтаграммном подходенамного сложнее.Для систем обработки транзакций (кредитные карты, всякого рода покупки через сеть)накладные расходы на установление виртуального канала каждый раз были бырасточительны. Однако постоянные виртуальные соединения, устанавливаемые вручнуюна недели или месяцы, вполне оправданны.7Виртуальные каналы слабо устойчивы к сбоям. Если при работе подсети хоть на какое-товремя выйдут из строя маршрутизаторы, то все виртуальные каналы, проходящие черезних, будут разрушены. В то же время при использовании дейтаграмм самое худшее, чтопроизойдет при временном отказе маршрутизатора, - пропадут пакеты, находящиеся в этовремя в памяти маршрутизаторов.Следует подчеркнуть, что тип сервиса (с соединением или без) и внутренняя организациятранспортной среды - виртуальные каналы или дейтаграммы - вопросы независимые.Теоретически возможны все четыре комбинации.