Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные Сети(Смоленцев С.В., 2002).doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
967 Кб
Скачать
☆

2.6.Методы обнаружения и устранения ошибок передачи

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

Первая часть задачи – обнаружение ошибок состоит в том, что компьютер – адресат, приняв некоторую порцию информации (например – кадр) должен только по результатам анализа принятых данных сделать заключение – корректны ли принятые данные и нет ли в них искажений. Поскольку априорно содержимое принятого пакета неизвестно (иначе бы он не передавался), то сравнить его не с чем. Для решения этой задачи к передаваемой информации узлом-отправителем добавляется некоторая служебная информация, используя которую можно определить факт искажения принятой информации. Эта служебная информация (контрольная сумма) вычисляется как функция от основной информации по известному алгоритму. При приеме кадра адресат опять рассчитывает по тому же алгоритму контрольную сумму и сравнивает с переданной в составе кадра. В случае их совпадения делается вывод о достоверности принятых данных. Передача служебной информации, конечно, снижает полезную пропускную способность канала, но является платой за возможность обнаружения ошибок.

В настоящее время наиболее широкое распространение получили циклические избыточные коды (CRC – Cyclic Redundancy Code). В этом методе исходные данные рассматриваются как одно многоразрядное двоичное число. Это число делят на известное 17 или 33 разрядное число и получают остаток от деления (16 или 32 разрядный). Этот остаток и передается вместе с данными. При получении кадра опять производят деление на тоже число и сравнивают полученный остаток с принятым. Этот метод имеет достаточно высокие диагностические возможности – может обнаруживать все одиночные ошибки, двойные ошибки и ошибки в нечетном числе бит. При этом избыточность его минимальна.

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

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

Существует два метода организации процесса обмена квитанциями: с простоями и скользящего окна.

Метод с простоями требует, чтобы отправитель, послав кадр, дожидался получения положительной (или отрицательной) квитанции. И только после этого посылал новый кадр (или повторял искаженный). Если же по истечению тайм-аута никакой квитанции не получено, передача этого кадра повторяется. Этот метод обладает очень низкой производительностью и применяется в не надежных сетях с высоким уровнем ошибок.

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