Полный курс лекций 2009-го года (1130357), страница 34
Текст из файла (страница 34)
Интересно отметить, что кодовое разделение каналов(режим CDMA) не используется. Представленные системы принципиально отличаются от существующих внастоящее время как по пропускной способности, так и по экономической эффективности. По-видимому, вближайшие несколько лет будут заявлены и новые сверхинформативные спутниковые системы. Ужесегодня активно идет процесс их системной интеграции (например, системное объединение космическихгруппировок геостационарных, среднеорбитальных и низкоорбитальных ИСЗ).Начало эксплуатации сверхинформативных систем позволит предоставить абонентам принципиальноновые услуги связи, например, видеотелефонную связь, формирование пакета телевизионных программ позаказу абонента и многое другое.
Из этого, конечно же, не следует, что в XXI в. не будут развиватьсяглобальные, континентальные и национальные спутниковые системы, действующие сегодня. Однако уже вначале XXI в. постепенное насыщение рынка телекоммуникаций приведет к необходимости пересмотра ихорганизационной структуры, стратегических планов развития и взаимной технической и коммерческойкоординации с целью оптимального участия в формировании и создании единого мировогоинформационного пространства. По-видимому, в недалеком будущем развитие средств связи в целомприведет к иной форме восприятия мира и новому этапу развития цивилизации.3. Канальный уровеньВ этой главе рассматриваются алгоритмы надежной и эффективной передачи данных между двумясоседними машинами.
Под словом «соседние» мы понимаем то, что эти машины физически соединеныпроводом. Под проводом мы будем понимать любую физическую среду передачи данных, для которойсправедливо, что биты поступают получателю точно в той последовательности, в какой их послалотправитель. Эта, простая, на первый взгляд, задача при детальном рассмотрении оказывается весьмасложной, если учесть, что при передаче по каналу могут возникать ошибки, возникают задержки, которыемогут вызывать дублирование данных, и т.д.3.1. Проблемы, решаемые на уровне канала данныхНа уровне канала данных решается ряд проблем, присущих только этому уровню: реализациясервиса для сетевого уровня, объединение битов, поступающих с физического уровня в кадры, обработкаошибок передачи, управление потоком кадров и другие.3.1.1.
Сервис, предоставляемый сетевому уровнюОсновная задача канального уровня - обеспечить сервис сетевому уровню по передаче и приемуданных. Назначение этого сервиса - передать данные от процесса на сетевом уровне одной машиныпроцессу на сетевой уровень другой машины. Как это происходит, показано на рисунке 3-1 (а).Фактически процесс передачи сложнее, что проиллюстрировано на рисунке 3-1 (b). Однако для простотыизложения мы будем придерживаться первой схемы.Рисунок 3-1.
Передача данных - виртуальная (a), фактическая (b)Канальный уровень может обеспечивать различный сервис. Хотя этот сервис может варьироваться отсистемы к системе, есть три общих видов сервиса:1.Сервис без уведомления и без соединения2.Сервис с уведомлением и без соединения3.Сервис с уведомлением и с соединениемСервис без уведомления и без соединения не предполагает, что до начала передачи должно бытьустановлено соединение, которое после передачи должно быть разорвано, что факт приема переданногокадра должен подтверждаться специальным сообщением. Если в результате помех на физическом уровнекадр будет потерян, то никаких попыток его восстановить на канальном уровне произведено не будет.Этот класс сервиса используется там, где физический уровень обеспечивает настолько высокуюнадежность при передаче, что потери кадров происходят редко и восстановление при потере кадровможно переложить на верхние уровни.
Этот вид сервиса также применяют при передаче данных вреальном времени там, где лучше потерять часть данных, чем увеличить задержку при их доставке.Например, передача речи, видео изображения. Большинство ЛВС использует этот вид сервиса наканальном уровне.Следующий вид сервиса – сервис с уведомлением без соединения. В этом виде сервиса получениекаждого посланного кадра должно быть подтверждено.
Если подтверждения не пришло в течениеопределенного промежутка времени, то считают, что кадр не принят и должен быть послан опять. Этот видсервиса используется в ненадежной физической среде передачи, например, беспроводной.Можно было бы, конечно, подтверждать не кадры, а все сообщение целиком на сетевом уровне.Однако это было бы невыгодно для больших сообщений. Например, если при передаче этих данныхразрушалось бы 10-20% кадров, то повторная передача таких сообщений заняла бы больше времени, чемпередача их отдельных фрагментов. Поэтому подтверждение на канальном уровне следует рассматриватькак минимизацию затрат на передачу данных, а не необходимость.Наиболее сложный класс сервиса на канальном уровне - сервис с соединением и уведомлением.
Этоткласс сервиса предполагает, что до начала передачи между машинами устанавливают соединение иданные передают по этому соединению. Каждый передаваемый кадр нумеруется, и канальный уровеньгарантирует, что он будет обязательно получен, причем только один раз, а также что все кадры будутполучены в надлежащей последовательности. При сервисе без соединения этого гарантировать нельзя,потому что потеря подтверждения получения кадра приведет к его пересылке, что, в свою очередь,приведет к появлению нескольких идентичных кадров.
Использование сервиса с соединением особеннополезно в том случае, когда канал образует СПД. Как мы уже видели, в СПД может быть достаточносложная организация канала, при которой может происходить коммутация потоков данных самымиразными способами. Здесь полезно вспомнить структуру кадра в Х.25, рассмотренную в разделе 2.3. Сточки зрения структуры, в Х.25 есть три вида кадров: с 3-битовым полем номера кадра, 7- и 12-битовым.Таким образом, в Х.25 предусмотрен сервис с соединением, причем, в зависимости от длины передаваемыхданных, можно оптимизировать затраты на поддержку соединения.При сервисе с соединением и уведомлением передача данных разбивается на три этапа.
На первомэтапе устанавливают соединение: на обеих машинах инициируют переменные и счетчики, отслеживающие,кадры с какими номерами были приняты, а с какими нет. На втором этапе передают нужные кадры. Натретьем - соединение разрывают: переменные, счетчики, буферы и другие ресурсы, использованные дляподдержки соединения, освобождают.На рисунке 3-2 показан типичный фрагмент WAN, где два маршрутизатора соединены черезтелефонную линию.
Когда кадр поступает на маршрутизатор, аппаратура проверяет контрольную сумму ипередает кадр канальному уровню. Канальный уровень проверяет, является ли поступивший кадрожидаемым, и если да, то передает пакет, расположенный в кадре, сетевому уровню на другой машине.Рисунок 3-2. Размещение протокола канального уровня3.1.2. Разбиение на кадрыСервис, создаваемый канальным уровнем для сетевого уровня, опирается на сервис, создаваемыйфизическим уровнем.
На физическом уровне принимают и передают потоки битов. Отправленноеколичество битов не обязательно должно быть равно принятому количеству битов, значение посланногобита также не обязательно должно быть равно принятому значению бита. Поэтому на канальном уровненужны специальные действия по обнаружению и исправлению таких ошибок.Типовой подход к решению подобных проблем - разбиение потока битов на кадры, подсчетконтрольной суммы для каждого кадра и передача этой суммы вместе с кадром данных.
При приемеконтрольная сумма вычисляется для каждого кадра заново и сравнивается с той, что хранится в кадре.Если они различаются, то это признак ошибки передачи. На канальном уровне должны быть приняты мерык исправлению ошибки, например, сбросить плохой кадр и послать сообщение об ошибке тому, ктоприслал этот кадр.Разбиение потока битов на кадры - задача не простая.
Один из способов - делать паузу междубитами разных кадров. Однако в сети, где нет единого таймера, нет гарантии, что эта пауза всегда будетодинаковой, или, наоборот, не появится новая пауза там, где ее не должно было быть.Так как методы, использующие временные задержки, не надежны, применяются другие методы.Здесь мы рассмотрим четыре основных метода:1.счетчик символов2.вставка специальных стартовых и конечных символов3.вставка стартовых и концевых битов4.нарушение кодировки на физическом уровнеПервый метод показан на рисунке 3-3. В начале каждого кадра указывают, сколько символов вкадре. При приеме кадра вновь подсчитывают число принятых символов.
Если число полученных символовотлично от ожидаемого числа, то этот факт воспринимают как ошибку. Однако этот метод имеетсущественный недостаток: счетчик символов может быть искажен при передаче. Тогда принимающаясторона не сможет обнаружить границы кадра. Даже обнаружив несовпадение контрольных сумм,принимающая сторона не сможет сообщить передающей, какой кадр надо переслать и сколько символовпропало. Этот метод сейчас используется редко.Рисунок 3-3. Поток символов: (а) без ошибок; (b) с одной ошибкойВторой метод построен на вставке специальных символов. Обычно для этого используютпоследовательность символов DLE STX для начала кадра и DLE ETX для конца кадра. DLE (Data LinkEscape), STX (Start TeXt), ETX (End TeXt) – это специальные символы, имеющие специальную кодировку.При этом методе, если даже была потеряна граница текущего кадра, нужно просто найти ближайшуюпоследовательность DLE STX или DLE ETX.
Однако здесь есть одна опасность: при передаче чисел илипрограммы в объектном коде такие последовательности могут уже содержаться в передаваемых данных.Для решения этой проблемы используют прием экранирования: каждая последовательность DLE или STXпросто дублируется в передаваемых данных. Поэтому, если при приеме есть два последовательных DLE, тоодин удаляется. Этот метод проиллюстрирован на рисунке 3-4.Рисунок 3-4. Метод экранированияОсновным недостатком только что рассмотренного метода является то, что он жестко связан сразмером байта и конкретным методом кодировки символов - ASCII. По мере развития сетей эта связьстановилась все более и более обременительной.