Читаем Компьютерные сети. 5-е издание полностью

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

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

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

На рис. 3.11 показан пример для окна с максимальным размером 1. Вначале кадров в окне нет, поэтому само окно пустое и его верхний и нижний края совпадают, однако с течением времени ситуация меняется. В отличие от окна отправителя, окно получателя всегда сохраняет первоначальный размер, поворачиваясь по мере приема и передачи на сетевой уровень очередного кадра.

Рис. 3.11. Скользящее окно размера 1 с 3-битовым порядковым номером: а — начальная ситуация; б — после отправки первого кадра; в — после приема первого кадра; г — после приема первого подтверждения

3.4.1. Протокол однобитового скользящего окна

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

Данный протокол приведен в листинге 3.5. Как и другие протоколы, он начинается с определения некоторых переменных. Переменная next_frame_to_send содержит номер кадра, который отправитель пытается послать. Аналогично переменная frame_expected хранит номер кадра, ожидаемого получателем. В обоих случаях, возможными значениями могут быть только 0 и 1.

Листинг 3.5. 1-битовый протокол скользящего окна

Листинг 3.5 (продолжение)

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

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

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

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

Когда первый неповрежденный кадр прибудет на машину B, он будет принят, и значение переменной frame_expected будет установлено равным 1. Все последующие входящие кадры будут проигнорированы, поскольку машина B будет теперь ожидать кадр с порядковым номером 1, а не 0. Более того, поскольку у всех кадров дубликатов значение поля ack=1, а машина B продолжает ожидать подтверждения для кадра 0, то и не станет запрашивать новый пакет у своего сетевого уровня.

Перейти на страницу:

Все книги серии Классика computer science

Компьютерные сети. 5-е издание
Компьютерные сети. 5-е издание

Перед вами — очередное, пятое издание самой авторитетной книги по современным сетевым технологиям, написанной признанным экспертом в этой области Эндрю Таненбаумом в соавторстве с профессором Вашингтонского университета Дэвидом Уэзероллом. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером и использовалось в качестве базового учебника в ведущих технических вузах. В книге последовательно изложены основные концепции, определяющие современное состояние и тенденции развития компьютерных сетей. Авторы подробнейшим образом объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до уровня прикладных программ. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования Интернета и компьютерных сетей различного типа. Пятое издание полностью переработано с учетом изменений, происшедших в сфере сетевых технологий за последние годы и, в частности, освещает такие аспекты, как беспроводные сети стандарта 802.12 и 802.16, сети 3G, технология RFID, инфраструктура доставки контента CDN, пиринговые сети, потоковое вещание, интернет-телефония и многое другое.

А. Гребенькова , Джеймс Уэзеролл

Технические науки

Похожие книги

102 способа хищения электроэнергии
102 способа хищения электроэнергии

Рассмотрена проблема хищений электроэнергии и снижения коммерческих потерь в электрических сетях потребителей. Приведены законодательно–правовые основы для привлечения к ответственности виновных в хищении электроэнергии. Изложены вопросы определения расчетных параметров средств учета электроэнергии, показаны схемы подключения счетчиков электрической энергии. Описаны расчетные и технологические способы хищения электроэнергии. Обсуждаются организационные и технические мероприятия по обнаружению, предотвращению и устранению хищений.Для работников энергоснабжающих организаций и инспекторского состава органов Ростехнадзора. Материалы книги могут быть использованы руководителями и специалистами энергослужб предприятий (организаций) для правильного определения расчетных параметров средств учета и потерь электроэнергии в электрических сетях.Если потенциальные расхитители электроэнергии надеются найти в книге «полезные советы», они должны отдавать себе отчет, что контролирующие структуры информированы в не меньшей степени и, следовательно, вооружены для эффективной борьбы с противоправной деятельностью.Настоящая книга является переработанным и дополненным изданием выпущенной в 2005 г. книги «101 способ хищения электроэнергии».

Валентин Викторович Красник

Технические науки / Образование и наука
Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
100 великих чудес инженерной мысли
100 великих чудес инженерной мысли

За два последних столетия научно-технический прогресс совершил ошеломляющий рывок. На что ранее человечество затрачивало века, теперь уходят десятилетия или всего лишь годы. При таких темпах развития науки и техники сегодня удивить мир чем-то особенным очень трудно. Но в прежние времена появление нового творения инженерной мысли зачастую означало преодоление очередного рубежа, решение той или иной крайне актуальной задачи. Человечество «брало очередную высоту», и эта «высота» служила отправной точкой для новых свершений. Довольно много сооружений и изделий, даже утративших утилитарное значение, тем не менее остались в памяти людей как чудеса науки и техники. Новая книга серии «Популярная коллекция «100 великих» рассказывает о чудесах инженерной мысли разных стран и эпох: от изобретений и построек Древнего Востока и Античности до небоскребов в сегодняшних странах Юго-Восточной и Восточной Азии.

Андрей Юрьевич Низовский

История / Технические науки / Образование и наука