Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Т2. Связь_Таненбаум_СРС_ПРИС.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.59 Mб
Скачать

86 Глава 2. Связь

ленным образом. Канальный уровень добавляет контрольную сумму к кадру. Ко­гда кадр принимается, приемник повторно вычисляет контрольную сумму данных и сравнивает результат с контрольной суммой, пришедшей вместе с кадром. Ес­ли они совпадают, кадр считается верным и принимается. Если они различны, получатель просит отправителя снова отправить этот кадр. Кадры последова­тельно нумеруются с указанием номеров в заголовке, так что все понимают, где какой кадр.

На рис. 2.3 мы видим случай (отчасти патологический) посылки двух сооб­щений 1 и 2 с машины А на машину В. Сообщение с данными 0 посылается с ма­шины А в момент времени 0. Когда в момент времени 1 это сообщение достигает машины В, обнаруживается, что оно повреждено помехами в линии передачи и контрольная сумма не соответствует действительности. Машина В обнаружи­вает это и в момент времени 2 запрашивает повторную посылку, отправляя соот­ветствующее контрольное сообщение 0. К сожалению, в тот же самый момент машина А посылает сообщение 1. В ответ на полученный машиной А запрос на повторную посылку отправляется сообщение 0. Когда машина В получает сооб­щение с данными 1 (а ведь она запрашивала сообщение с данными 0!), она посы­лает машине А новое контрольное сообщение 1, настаивая на том, что она хочет получить сообщение с данными 0, а не 1. Когда контрольное сообщение 1 дохо­дит до машины А, та посылает сообщение с данными 0 в третий раз.

Задача этого обсуждения — не показать, насколько хорош описанный прото­кол (он очень плох), а объяснить, что на каждом уровне существует необходи­мость во взаимодействии между отправителем и получателем. Типичные сооб­щения: «Пошли, пожалуйста, сообщение п заново» — «Уже посылал дважды» —

2.1. Уровни протоколов 87

« Нет, ты этого не делал» — «А я говорю, делал» — «Ну ладно, пускай делал, все равно пошли еще раз» и т. д. Это взаимодействие происходит в полях заголовка, где определены различные запросы и ответы и могут поддерживаться параметры (например, номера кадров).

Сетевой уровень

В локальных сетях у отправителя обычно нет необходимости находить местопо­ложение получателя. Он просто бросает сообщение в локальную сеть, а получа-тель забирает его оттуда. Глобальные сети, однако, содержат множество машин, каждая из которых имеет собственные линии связи с другими машинами. Так на крупномасштабной карте показано множество городов и соединяющих их дорог. Сообщение, посылаемое от отправителя к получателю, должно пройти массу сетевых сегментов, на каждом из которых происходит выбор исходящей линии. Задача выбора наилучшего пути называется маршрутизацией (routing) и является

основной задачей сетевого уровня.

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

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

протоколом является не требующий установки соединения протокол Интерне- (Internet protocol, IP), входящий в комплект протоколов Интернета. На сете-

вом уровне сообщение именуется термином пакет (packet). IP-пакет может быть

послан без какой-либо предварительной подготовки. Маршрут каждого из 1Р-па-

кетов до места назначения выбирается независимо от других пакетов. Никакие внутренние пути не выбираются заранее и не запоминаются.

Протоколом с соединением, приобретающим популярность в настоящее вре-мя является виртуальный канал (virtual channel) па базе сетей ATM. Виртуальный канал в ATM — это непрямое соединение, устанавливаемое от источника к приемнику, возможно, проходящее через несколько промежуточных АТМ-комутаторов. Чтобы между двумя компьютерами не устанавливать каждый из виртуальных каналов по отдельности, набор виртуальных каналов может быть сгрупирован в виртуальный путь (virtual path). Виртуальный путь сравним с предопределенным маршрутом между двумя узлами, вдоль которого выстраиваются его виртуальные каналы. Изменение маршрута виртуального пути означает юматическую перекладку всех ассоциированных с ним каналов [194].