<<
>>

формирование кадра

Для предоставления сервиса сетевому уровню уровень передачи данных должен использовать сервисы, предоставляемые ему физическим уровнем. Физический уровень принимает необработанный поток битов и пытается передать его по назначению.
Этот поток не застрахован от ошибок. Количество принятых бит может быть меньше, равно или больше числа переданных бит; кроме того, значения принятых битов могут отличаться от значений переданных. Уровень передачи данных должен обнаружить ошибки и, если нужно, исправить их.

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

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

Поскольку для отметки начала и конца кадра полагаться на временные параметры слишком рискованно, были разработаны другие методы. В данном разделе мы рассмотрим четыре метода маркировки границ кадров.

1. Подсчет количества символов.

2. Использование сигнальных байтов с символьным заполнением.

3. Использование стартовых и стоповых битов с битовым заполнением.

4. Использование запрещенных сигналов физического уровня.

Первый метод формирования кадров использует поле в заголовке для указания количества символов в кадре. Когда уровень передачи данных на принимающем компьютере видит это поле, он узнает, сколько символов последует, и таким образом определяет, где находится конец кадра. Этот прием проиллюстрирован на рис. 3.4, а для четырех кадров размером 5, 5, 8 и 8 символов соответственно.

Недостаток такой системы в том, что при передаче может быть искажен сам счетчик. Например, если размер второго кадра из числа 5 станет из-за ошибки в канале числом 7, как показано на рис. 3.4, б, то принимающая машина потеряет синхронизацию и не сможет обнаружить начало следующего кадра. Даже если контрольная сумма не совпадет (скорее всего) и принимающий компьютер поймет, что кадр принят неверно, то он все равно не сможет определить, где начало следующего кадра. Запрашивать повторную передачу кадра также бесполезно, поскольку принимающий компьютер не знает, сколько символов нужно пропустить до начала повторной передачи. По этой причине метод подсчета символов теперь практически не применяется.

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

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

В передаваемых данных запросто может встретиться последовательность, используемая в качестве флагового байта. Возникновение такой ситуации, скорее всего, собьет синхронизацию. Одним из способов решения проблемы является добавление специального escape-символа (знака переключения кода, ESC) непосредственно перед случайно совпавшим с флаговым байтом внутри кадра. Уровень передачи данных получателя вначале убирает эти escape-символы, затем передает кадр на сетевой уровень. Такой метод называется символьным заполнением. Таким образом, настоящий флаг можно отличить от «подложного» по наличию или отсутствию перед ним ESC.

Следующий логичный вопрос: а что, если и символ ESC случайно окажется среди прочих данных? Решение такое же: вставить перед этим фиктивным escape- символом настоящий. Тогда любой одиночный ESC будет частью escape-после- довательности, а двойной будет указывать на то, что служебный байт случайно оказался в потоке данных. Некоторые примеры показаны на рис. 3.6, 6. В любом случае, байтовая последовательности после ее очищения от вставных символов в точности совпадает с исходной.

Схема символьного заполнения, показанная на рис. 3.5, — это немного упрощенная модель протокола РРР, с помощью которого большинство домашних компьютеров соединяется с интернет-провайдером. Мы изучим РРР в этой главе.

Главный недостаток этого метода заключается в том, что он тесно связан с 8-битными символами. Между тем не во всех кодировках один символ соответствует 8 битам. Например, UNICODE использует 16-битное кодирование. По мере развития сетевых технологий недостатки использования длины символьного кода в механизме формирования кадров становились все очевиднее. Поэтому потребовалось создание новой техники, допускающей использование символов произвольного размера.

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

Если в битовом потоке передаваемых данных встретится пять идущих подряд единиц, уровень передачи данных автоматически вставит в выходной поток нулевой бит. Битовое заполнение аналогично символьному, при котором в кадр перед случайно встретившимся среди данных флагом вставляется escape-символ.

Когда принимающая сторона встречает пять единиц подряд, за которыми следует ноль, она автоматически удаляет этот ноль. Битовое заполнение, как и символьное, является абсолютно прозрачным для сетевого уровня обоих компьютеров. Если флаговая последовательность битов (01111110) встречается в данных пользователя, она передается в виде 011111010, но в памяти принимающего компьютера сохраняется опять в исходном виде: 01111110. На рис. 3.6 приведен пример битового заполнения.

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

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

Наконец, последний метод формирования кадров приемлем только в сетях, в которых физический носитель обладает некоторой избыточностью. Например, некоторые локальные сети кодируют один бит данных двумя физическими битами. Обычно бит 1 кодируется парой высокого и низкого уровней сигналов (отрицательный перепад), а бит 0 — наоборот, парой низкого и высокого уровней (положительный перепад). В такой схеме каждый передаваемый бит данных содержит в середине переход, благодаря чему упрощается распознавание границ битов. Комбинации уровней сигналов (низкий—низкий и высокий—высокий) не используются для передачи данных, но используются в качестве ограничителей кадров в некоторых протоколах.

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

<< | >>
Источник: Э. ТАНЕНБАУМ. КОМПЬЮТЕРНЫЕ СЕТИ 4-Е ИЗДАНИЕ. 2003

Еще по теме формирование кадра:

  1. Композиция кадра
  2. КОНЦЕПЦИЯ ФОРМИРОВАНИЯ ПОЭТАПНОГО
  3. Формирование правительства
  4. ЛИЧНОСТЬ: ФОРМИРОВАНИЕ
  5. Причины формирования групп.
  6. ТЕОРИЯ ФОРМИРОВАНИЯ ДЕЙСТВИЙ УМСТВЕННЫХ
  7. § 2. Критерии формирования системы гражданских договоров
  8. § 4.3. Формирование и развитие социальных групп в организации
  9. § 5. Формирование Совета Федерации
  10. Порядок формирования
  11. 3.4. Формирование групп в эксперименте