Эндрю Уэзеролл - Компьютерные сети. 5-е издание
- Название:Компьютерные сети. 5-е издание
- Автор:
- Жанр:
- Издательство:Питер
- Год:2011
- ISBN:9785446100682
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Уэзеролл - Компьютерные сети. 5-е издание краткое содержание
Компьютерные сети. 5-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Рис. 3.1. Соотношение между пакетами и кадрами
Хотя эта глава и посвящена детальному рассмотрению канального уровня и соответствующих протоколов, многие вопросы, обсуждаемые здесь, такие как контроль ошибок и контроль потока, относятся также к транспортным и другим протоколам. Обеспечение надежности — это общая цель, для достижения которой слаженно работать должны все уровни. На самом деле, во многих сетях эти функции являются прерогативой верхних уровней и вообще не относятся к канальному уровню, который выполняет лишь простейшие функции. С другой стороны, не так уж это важно, потому что принципы все равно остаются неизменными. Аргументом в пользу рассмотрения их именно в свете канального уровня является то, что здесь они предстают в наиболее простой форме и их легко показать в деталях.
3.1.1. Сервисы, предоставляемые сетевому уровню
Задача канального уровня заключается в предоставлении сервисов сетевому уровню. Основным сервисом является передача данных от сетевого уровня передающей машины сетевому уровню принимающей машины. На передающей машине работает некий процесс, который передает биты с сетевого уровня на канальный уровень для передачи их по назначению. Работа канального уровня заключается в передаче этих битов на принимающую машину, так чтобы они могли быть переданы сетевому уровню принимающей машины, как показано на рис. 3.2, а. В действительности данные передаются по пути, показанному на рис. 3.2, б, однако проще представлять себе два канальных уровня, связывающихся друг с другом при помощи протокола передачи данных. По этой причине на протяжении этой главы будет использоваться модель, изображенная на рис. 3.2, а .
Канальный уровень может предоставлять различные сервисы. Их набор может быть разным в разных протоколах. Обычно возможны следующие варианты, которые мы рассмотрим далее по очереди.
1. Сервис без подтверждений, без установки соединения.
2. Сервис с подтверждениями, без установки соединения.
3. Сервис с подтверждениями, ориентированный на соединение.
Рис. 3.2.Виртуальное соединение (а); реальное соединение (б)
Сервис без подтверждений и без установки соединения заключается в том, что передающая машина посылает независимые кадры принимающей машине, и принимающая машина не посылает подтверждений о приеме кадров. Хороший пример канального уровня, предоставляющего сервис такого класса, — Ethernet. Никакие соединения заранее не устанавливаются и не разрывается после передачи кадров. Если какой-либо кадр теряется из-за шума в линии, то на канальном уровне не предпринимается никаких попыток восстановить его. Данный класс сервисов приемлем при очень низком уровне ошибок. В этом случае вопросы, связанные с восстановлением потерянных при передаче данных, могут быть оставлены верхним уровням. Он также применяется в линиях связи реального времени, таких как передача речи, в которых лучше получить искаженные данные, чем получить их с большой задержкой.
Следующим шагом в сторону повышения надежности является сервис с подтверждениями, без установки соединения. При его использовании соединение также не устанавливается, но получение каждого кадра подтверждается. Таким образом, отправитель знает, дошел ли кадр до пункта назначения в целости или потерялся. Если в течение установленного интервала времени подтверждения не поступает, кадр посылается снова. Такой сервис полезен в случае использования каналов с большой вероятностью ошибок, например, в беспроводных системах. Среди сервисов такого класса можно назвать, например, 802.11 (WiFi).
Вероятно следует отметить, что предоставление подтверждений является скорее оптимизацией, чем требованием. Сетевой уровень всегда может послать пакет и ожидать подтверждения его доставки удаленной машине. Если за установленный период времени подтверждение не будет получено отправителем, сообщение может быть выслано еще раз. Проблема при использовании данной стратегии заключается в том, что она зачастую оказывается неэффективной. Кадры обычно имеют жесткое ограничение максимальной длины, связанное с аппаратными требованиями, а также существует определенная задержка доставки. На сетевом уровне эти параметры неизвестны. Сетевой уровень может разбивать сообщения, скажем, на 10 кадров. В среднем, два из них потеряются по дороге. Передача сообщения таким методом может занять очень много времени. Если подтверждать получение отдельных кадров, то ошибки можно будет исправлять напрямую и гораздо быстрее. В таких надежных каналах, как, например, оптоволоконный кабель, накладные расходы на подтверждения на канальном уровне только снизят пропускную способность канала, однако для беспроводной связи (ненадежной по своей природе) такие расходы окупятся и уменьшат время передачи длинных сообщений.
Наиболее сложным сервисом, который может предоставлять канальный уровень, является ориентированный на соединение сервис с подтверждениями. При использовании данного метода источник и приемник, прежде чем передать друг другу данные, устанавливают соединение. Каждый посылаемый кадр нумеруется, а канальный уровень гарантирует, что каждый посланный кадр действительно принят на другой стороне канала связи. Кроме того, гарантируется, что каждый кадр был принят всего один раз и что все кадры были получены в правильном порядке. Таким образом, ориентированный на соединение сервис предоставляет процессам сетевого уровня эквивалент надежного потока битов. Он подходит для длинных ненадежных связей, таких как спутниковый канал или междугородное телефонное соединение. В службе без установления соединения возможно, что при потере подтверждения один и тот же кадр будет послан несколько раз и, следовательно, несколько раз получен. Это лишняя нагрузка на канал и неразумное расходование полосы пропускания.
При использовании ориентированного на соединение сервиса передача данных состоит из трех различных фаз. В первой фазе устанавливается соединение, при этом обе стороны инициализируют переменные и счетчики, необходимые для слежения за тем, какие кадры уже приняты, а какие — еще нет. Во второй фазе передаются кадры данных. Наконец, в третьей фазе соединение разрывается, и при этом освобождаются все переменные, буферы и прочие ресурсы, использовавшиеся во время соединения.
3.1.2. Формирование кадра
Для обслуживания сетевого уровня канальный уровень должен использовать сервисы, предоставляемые ему физическим уровнем. Физический уровень принимает необработанный поток битов и пытается передать его по назначению. Если канал зашумлен, как обычно бывает с беспроводными и большинством проводных соединений, то на физическом уровне добавляются избыточные сигналы, чтобы снизить количество ошибок до допустимого уровня. Однако поток битов, получаемый на уровне передачи данных, не застрахован от ошибок. У некоторых битов могут быть другие значения, количество принятых бит может быть меньше, равно или больше числа переданных бит. Канальный уровень должен обнаружить ошибки и, если нужно, исправить их.
Читать дальшеИнтервал:
Закладка: