Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Симплексный протокол для зашумленных каналов.



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

На первый взгляд может показаться, что нужно лишь добавить таймер к протоколу 2. Получатель будет возвращать подтверждение только в случае получения правильных данных. Неверные пакеты будут просто игнорироваться. Через некоторое время у отправителя истечет интервал времени, и он отправит кадр еще раз. Этот процесс будет повторяться до тех пор, пока кадр, наконец, не прибудет в целости.

В приведенной выше схеме имеется фатальный недостаток. Прежде чем читать дальше, попытайтесь решить, что неверно в данном алгоритме.

Чтобы понять, чем плох данный вариант протокола, вспомните, что задача уровня передачи данных заключается в предоставлении безошибочной прозрачной связи между двумя процессами сетевого уровня. Сетевой уровень машины A передает серию пакетов своему уровню передачи данных, который должен гарантировать доставку идентичной серии пакетов сетевому уровню машины B ее уровнем передачи данных. В частности, сетевой уровень машины B не может распознать недостачу пакета или дублирование пакета, поэтому уровень передачи данных должен гарантировать, что дублирования пакетов не произойдет ни при каких обстоятельствах.

Рассмотрим следующий сценарий.

1. Сетевой уровень машины A передает пакет 1 своему уровню передачи данных. Пакет доставляется в целости на машину B и передается ее сетевому уровню. Машина B посылает кадр подтверждения назад на машину A.

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

3. У уровня передачи данных машины A истекает интервал времени. Не получив подтверждения, он предполагает, что посланный им кадр с данными был поврежден или потерян, и посылает этот кадр еще раз.

4. Дубликат кадра прибывает на уровень передачи данных машины B и передается на сетевой уровень. Если машина A посылала на машину B файл, то часть этого файла продублировалась, таким образом, копия файла на машине B будет неверной. Другими словами, протокол допустил ошибку.

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

Поскольку отводить в кадре много места на заголовок нежелательно, возникает вопрос: какое минимальное количество бит достаточно для последовательного номера кадра? Единственная неопределенность в данном протоколе может возникнуть между кадром m и следующим за ним кадром m + 1. Если кадр m потерян или поврежден, получатель не подтвердит его и отправитель пошлет его еще раз. Когда он будет успешно принят, получатель пошлет отправителю подтверждение. Именно здесь находится источник потенциальной проблемы. В зависимости от того, будет получено подтверждение или нет, отправитель может послать кадр m или кадр m + 1.

Отправитель может начать посылать кадр m + 2, только когда получит подтверждение получения кадра m + 1. Но это означает, что кадр m уже был отправлен и подтверждение его получения было отправлено и получено. Следовательно, неопределенность может возникнуть только между двумя соседними кадрами.

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

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 169; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (4.392 с.)
Главная | Случайная страница | Обратная связь