tanenbaum_seti_all.pages (525408), страница 68
Текст из файла (страница 68)
АО) А получает (О, О, ВО) А отправляет (1, О, А1) В отправляет (О, 1, ВО) В получает (О, 1, АО)* 8 отправляет (О. О. 80) В получает (О, О, АО) Ватпрввляет(1 О 81) В палучвет (1, О, 41)' В отправляет (1, 1, 81) А папучзет (1, О, 81)* А отправляет (1, 1, А1) В палучвет (1, 1, А1) В атпрввпявт (О, 1, 82) Время Рио. 3.10.
двв сценария дпя протокола 4: нормальная ситуация (в); нештатная ситуация (б), Обозначения: (зеж вой, номер пакета). Звездочка означает, что сетевой уровень принял пакет Поле полтвсрждения содержит номер последнего полученного без ошибок кадра. Если этот номер совпадает с номером кадра, который пытастся передать отправитель, последний понимает, что этот кадр успешно принят получателем, и что он может пересылать следуюший кадр. В противном случае он должен продолжать попытки переслать тот же калр. Теперь давайте изучим протокол й и посмотрим, насколько оц устойчив к нестанлартным ситуациям.
Предположим, что машина А пытается послать кадр О машине В, а ма!пина В пытается послать кадр О машине А. Предположим такжс, что на машине А установлен слишком короткий период ожидания подтверждения, Соотвстстнснно, машина А посылает серию одинаковых кадров со значениями полей зес=0 и асх-1. Когда первый неповрежденный кадр прибудет ца машину В, он будет принят, и значсние переменной йгдае ехрестеб будет установлено равным 1. Все послелующис кадры будут цроипюрированы, поскольку машина В будет теперь ожидать кадра с порядковым номером 1, а не О. Более того, поскольку у всех калров дубликатов значение поля аск-1, а машина В продштжает ожидать подтверждения для кадра О, то В н не станет запрашивать новый пакет у своего сстевого уровня.
В ответ на каждьш отвергнутый дубликат, присылаемый машиной А, машина В посыласт кадр, солержащий поля зег)=0 и аск=0. 1!аконец, один из этих кадров принимается машиной А, в результате чего машина А переходит к передачс Протоколы скользящего окна 257 следующего пакета. Никакая комбинация потерянных кадров или преждевременно истекших интервалов ожидания не может заставить этот протокол ни выдать сетевому уровню дубликат пакета, нн пропустить пакет, ни зависнуть. Однако, если обе стороны одновременно вьпилют друг другу начальный пакет, возникает запутанная ситуация, проиллюстрированная на рис. 3.10. В левой части рисунка показано нормальное функционирование протокола.
Правая часть рисунка демонстрирует аномальную ситуацию. Если ьчашина В ожидает первого кадра от машины А, прежде чем послать свой первый кадр, то последовательность будет такой, как показана в левой части рисунка. При этом принимается каждый кадр. Однако если машины А и В одновременно начнут передачу, их первые кадры псрссекутся и уровни передачи данных попадут в ситуацию б. В ситуации а с каждым кадром прибывал новый пакет и дубликатов пег. В ситуации б половина кадров содержит дубликаты несмотря на то, что ошибок в канале связи не было.
Подобные ситуации могут возникнуть в результате преждевременного истечения периода ожидания, даже если одна сторона начнет диалог первой. В самом деле, если время ожидания истечет слишком быстро, кадр может быть послан три и более раз. Протокол с возвратом на и До сих пор мы по умолчанию подразумевали, что время, необходимое на передачу кадра от отправителя к получателю, и время, необходимое на персдачу подтверждения от получателя к отправителю, пренебрежимо малы. Иногда это предположение является совершенно неверным. В таких ситуациях большое время прохождения кадров по ости может значительно снижать эффективность использования пропускной способности канала.
В качестве примера рассмотрим спутниковый канал связи с пропускной способностью 50 Кбит/с и временем, требусмым для прохождения сигнала в оба конца, равным 500 мс. Попытаемся использовать протокол 4 для пересылки кадров размером в 1000 бнт через спутник. В момент времени г = 0 отправитель начинает посылать первый кадр. В момент времени ~ = 20 мс кадр полностью послан. В момент времени г = 270 мс получатель принял кадр полностью и отправил обратно подтверждение. В итоге в лучшем случае только через 520 мс после начала передачи кадра подтверждение будет получено отправителем.
В данном случае еще предполагается, что приемник не тратит времени на обработку принятого кадра и подтверждение такое короткое, что временем его передачи и приема можно пренебречь. Это означает, что передающая машина была заблокирована в течение 500/520, или 96 Ж времени, Другими словами, использовалось только 4 М достушюй пропускной способности.
Очевидно, что сочетание большого времени прохождения сигнала, высокой пропускной способности и коротких кадров совершенно неприемлемо с точки зрения эффективности. Описанная проблема является следствием правила, заставлявшего отправителя дожидаться подтверждения, прежде чем посылать следующий калр. Смягчив это требование, можно значительно повысить эффективность. Решение проблемы заключастся в разрешении отправителю послать не один кадр, а несколько, например щ прежде чем остановиться н перейти в режим ожидания подтвержде- 258 Глава 3. Уровень передачи данных ний, Можно подобрать число ге так, чтобы отправитель мог безостановочно посылать кадры.
В приведенном ранее примере ге должно быть равно, по меньшей мере, 26. Отправитель начинает, как и ранее, с передачи калра О. К тому моменту, когда он закончит отправку 26 кадров (в момент времени г = 520 мс), как раз прибудет подтверждение калра О. Затем полтверждения станут прибывать каждые 20 мс. Таким образом, отправитель будет получать разрешения на передачу следующего кадра как раз вовремя. В любой момент времени у отправителя будет 25 или 26 неподтвержденных кадров и, следовательно, достаточно будет окна размером 26.
Такая техника называется конвейерной обработкой. Если пропускная способность канала равна Ь бит/с, размер кадра равен 1 бит, то время передачи одного кадра составит!/Ь с. Пусть время прохождения сигнала по каналу в оба конца равно Я с. После отправки последнего бита информационного кадра в течение Я/2 с происходит его пересылка получателю и в течение еще по крайней мере й/2 с — прием полтверждения отправителем. Поэтому общая задержка составляет Я с. В протоколе с ожилапием линия занята в течение 1/Ь с и свободна в течение А с, что лает коэффиписнт эффектшшости использования линии равный 1/(1 е И). При 1 < И эффективность использования линии будет менее 50%. Конвейерный режим может использоваться для загрузки избежания простаивания линии, если время прохожления сигнала значительно по сравнению со временем самой передачи.
Если жс задержка распространения сигнала мала, дополнительное усложнение протокола нс является оправланным. При конвейерном рсжиме передачи кадров по ненадежному каналу возникает ряд серьезных проблем. Во-первых, что произойдет, сслп повредится илп потеряется калр в середине длинного потока? Большое количество последующих кадров прибудет к получателю прежде, чем отправитель обнаружит, что произошла ошибка. Когда поврежденный кадр приходит получателю, он, конечно, должен быть отвергнут, однако что должен лелать получатель со всеми правильными последующими кадрами? Как уже говорилось, получающий уровень передачи данных обязан перславать пакеты сетевому уровню, соблюдая строгий порядок.
На рис. 3.11 изображен эффект, оказываемый конвейерной обработкой на исправление ошибок. Сейчас мы рассмотрим этот вопрос более подробно. Есть два способа решения проблемы возникновения ошибок при конвейеризации кадров. Первый способ называется возвратом на и и закшочается просто в игнорировании всех калров, следующих за ошибочным. Для таких кадров подтверждения не посылаются. Эта стратегия соответствует приемному окну размера 1.
Другими словами, уровень передачи данных отказывается принимать какой-либо кадр, кроме кадра со следующим номером, который он лолжсн передать сетевому уровню. Если окно отправителя заполнится раньше, чем истечет время ожидания, конвейер начнет простаивать. Наконец, лимит времени у отправителя истечет, и он начнет передавать повторно сразу все кадры, не получившие подтверждения, начиная с поврежденного или потерянного калра. Такой подход при высоком уровне ошибок может привести к потере большой доли пропускной способности канала. Протоколы скользящего окна 269 На рис.