В. Столлингс - Современные компьютерные сети (2-е издание, 2003) (1114681), страница 77
Текст из файла (страница 77)
На этом этапе стороны договариваются а параметрах, которые они будут использовать. После инициализации две стороны обмениваются данными пользователя и управлщошей информацией для контроля ошибок н управления потоком. Наконец, одна из станций сигнализирует а завершении работы. Инициализация Инициализация может быть запрещена любой стороной пу тем передачи одной из шести команд установки режима.
Эта команда служит трем целям: + Она сигнализирует другой станции о запросе инициализации. + Она сообщает, какай из трех режимов требуется. Эти режимы определяют, является ли одна из двух станций главной, управляющей обменом, или обе стороны соединения являются одноранговыми и сотрудничают при обмене. + Она указывает, какие (3-битовые или 7-битовые) порядковые номера должньт использоваться Если другая сторона принимает запрос, тогда модуль Н1]).С на этом конце передает кш(р с]А (1]пашпЬегес] Ас1спотч]ес]дешепс — ненумерованное подтверждение) обратно стороне-инициатору. Если запрос отвергнут, тогда посылается кадр 1]]т( (1)Ьсоппесгес] Мск1е — разъединенный режим).
346 Глава 11. Управление потоком и контроль ошибок на уровне передачи данных 11.4. Протокол Н01 С 347 Перенос данных Когда инициализация запрещена и при~ита, устанавливается логическое соединение. Обе стороны могут начинать передачу данных пользователя в 1-кадрах, па чивая с кадра с порядковым номером О. Поля И(5) и И(К) 1-кадра представляют собой порядковые номера, обеспечивающие управление потоком и контроль оши бок. Модуль Н1)ЕС, отправляющий последовательность |-кадров, будет нумеровать их последовательно по модулю 8 нли 128 в зависимости от того, используются ли 3-битовые или 7-битовые порядковые номера, и помещать порядковые номера в поле И(5).
Поле И(К) представляет собой поле полтверждения полученного 1-кадра. Опо позволяет модулю Н1)ЕС указать, 1-кадр с каким номером ан ожидает получить следующим. 5-кадры также используются для управления потоком и контроля ошибок Кадр КК (Кесе1уе Кеаг1у — готовность к приему) используется для подтверждения последнего принятого 1-кадра„для чего указывается номер следующего ожидаемого 1-кадра.
Кадр КК применяется в отсутствии встречного потока данных (1-кадров) для переноса подтверждения. Кадр ЙИК (Кеса(уе Иог Ксану — неготовность к приему), как и кадр КК, подтверждает получение 1-кадра, но также просит одноранговую сущность приостановить передачу 1-кадров. Когда сущность, атправиэшая кадр КИК, снова переходит в состояние готовности, она посылает кадр КК. Кадр КЕ1 (Крест — отказ) инициирует метод возврата на )т'шагов.
Он указывает, что последний полученный 1-кадр был отвергнуг и требуется повторная передача всех 1-кадров, начиная с кадра с номером И(К). Кадр 5КЕ) (5е!есйуе КЕ)ест — селективный отказ) применяется для запроса повторной передачи всего одного кадра. Разрыв соединения Разрыв соединения может ингщиировать любой из модулей Н1)ЕС либо по собственной инициативе, в случае какой-то неисправности, либо по запросу более высокого уровня.
Модуль НОВАС генерирует команду разрыва соединения, посылая кадр 1)15С (1)15Саппесс — разрыв соединения). Другая сторона обязана принять эту команду, ответив на нее кадром ()А. Пример работы На рис. 11.15 приведена несколько примеров, позволяющих лучше понять, как работает протокол НОВАС. На диаграммах каждая стрелка снабжена условным обозначением, включаюгдим название кадра, значение бита Р/Г, а также, где возможно, значения полей И(К) и И(5). Бит Р илн Р установлен в 1, если обозначение присутствует, и в О, если отсутствует.
На рнс. 11. 15, а показаны кадры, участвующие в установке н разрыве соединения. Одна Н1) ЕС-сугц ность посылает другой стороне команду 5АВМ (Бег Азупсйгопонз Мог1е Ва(апсег( — установить асинхронный сбалапсированньш режим)' и запускает таймер. Получив команду 5АВМ, другая сторона отвечает кадром БА и инициализирует локальные переменные и счетчики. Первая сущность получает ответ (кадр ' Команда БЛВГ11 инициирует обмен данными. Л«ннхроаэма «балансиров«алый режим <Л«упсьгопош Моде Ва!апс«4, ЛВМ) представляет собой 1««кем э«Р«качи данных, углубляться в ле«а«и которого мы ие станем. () А), устанавливает значения своих переменных и счетчиков и останавливает таймер.
Теперь логическое соединение активно, и обе стороны могут начинать передавать кадры. Как показано на рисунке. в случае, если время ожцдания истечет прежде, чем получен ответ, иннциируюпгая сторона будет повторять команду 5АВМ, пока не получит кадр ПА пли 1)М либо пока не пройдет определенное количество попыток, после чего сущность, инициируюшая соединение, «сдаетсяь и сообщает об ошибке управляющей сущности. В этом случае необходимо вмешательство более высокого уровня.
Там же (рнс. 11.15, а) показана процедура разрыва соединения. Одна из сторон генерирует команду 015С, а другая сторона отвечает кадром (ЗА, На рис. 11.15, б показан дуплексный обмен 1-кадрами. Когда сущность посылает подряд несколько 1-кадров, не получая входных данггых, тогда порядковый номер приема И(К) просто повторяется (например, 1, 1, 1; 1, 2, 1 в направлении от станции А к станции В). Когда сущность принимает подряд несколько!-кадров, не отправляя выходных данных, тогда порядковый номер приема в следующем исходящем кадре должен отражать суммарную активносп (например, 1, 1, 3 в направлении от станции В к станции А). Обратите внимание на та, что помимо 1-кадров обмен данными может включать контрольные кадры (5-кадры), На рис. 11.15, в показана работа при наличии состояния занятости.
Одна из сторон может быть занята, например в том случае, если НЫ.С-сущность не способна обрабатывать 1-кадры с той скоростью, с которой они поступают, или если пользователь уровня передачи данных не может принимать данные с той скоростью, с которой они прибывают в 1-кадрах.
В любом случае входной буфер Н1)ЕС-сущности переполняется, в результате чего ана вынуждена остановить входящий поток 1-кадров при помощи команды КИК. В данном примере станция А генерирует команду КИК, которая требует от другой стороны приостановить передачу 1-кадров. Станция, получившая команду КИК, как правило, начинает периодически опрашивать занятую станцию, посылая ей кадр КК с установленным в 1 битом Р. На это другая сторона должна ответить кадром КК или КИК. Когда станция А снова готова к приему, ана посылает станции В кадр КК. Пример восстановления протокола после ошибки при помощи команды КЕ1 показан на рнс. 11.15, х В данном примере станция А передает 1-кадры, пронумерованные числами 3, 4 и 5.
Кадр 4 повреждается. Станция В обнаруживает ошибку и отбрасывает этот кадр. Получив 1-кадр с номером 5, ста~щия В также отбрасывает его, так как он пришел с нарушением порядка, и посылает кадр КЕ.1 с И(К) = 4. Это заставляет станцию А начать повторную передачу всех посланных 1-кадров, начиная с кадра 4. После этого станция А может продолжать передачу 1-кадров. Пример восстановления протокола после ошибки при помощи тайм-аута показан на рис. 11.15, д.
В этом примере станция А передает 1-кадр с номером 3, который повреждается при переносе. Станция В обнаруживает ошибку и отбрасывает этот кадр. Однако станция В не может послать кадр КЕ), так как не в состоянии определить, что это был 1-кадр. При ошибке все биты кадра попадают под подозрение, и у принимающей стороны нет способа определить, что делать с этим кадрам. Прн его передаче станция А запустила таймер с достаточно большим временем срабатывания, чтобы стаяция В успела принять этот кадр и подтвердить его получение. Когда время ожидания истекает, станция А начинает процедуру восстановления после ошибки. Как правило, при этом другая сторона опрашивается командой КК установленным в 1 битом Р, чтобы определить состояние другой сто- 11.6.
Задания 349 А м(з) м(н1 н А Истек свидания 1~ 11.6. Задания Истек яерясд сбкиДанив Рис. 11.1В. Пример работы протокола НП.С 343 Глава 11. Управление гютоком и контроль ошибок нв уровне передачи данных роны. Поскольку на запрос должен быть послан ответ, сущность получит кадр, са держащий поле М(К), н сможет продолжать работу. В этом случае в ответе указы- вается, что был потерян кадр 3, который станция А передаст повторно, Эти примеры не являются исчерпывающими.
Тем пе менее, они должны дать читателю представление о работе протокола НР1.С. 11.5. Рекомендуемая литература ° ° Производительности протоколов уровня перелачн данных с автоматическим запросом на повторение посвящено огромное количество литературы. Имеет смысл прочитать статьи [221, [1411 н [431. В [1451 предоставляется удобочитаемое обозрение с упрогценными расчетами производительности. В [2481 содержится более поздний анализ. Двумя книгами, в которых подробно описывается тема производительности протокола уровня передачи данных, являются [2111 и [2291, [1381 и [1391 — две ключевые статьи, в которых рассматривается влияние гига- битных скоростей передачи данных на производительность.
1. Рассмотрим полудуплексную двухточечную линию, в которой используется схема с остановкой и ожиданием. По линии передается последовательность сообщений, каждое сообщение разбито на несколько кадров. Ошибки н накладные расходы игнорнрукггся. а) какое влияние на коэффициент использования линии окажет увеличение размера сообщения, так что потребуется меньшее количество сообщений? Остальные параметры не меняются; б) какое влияние на коэффициент использования липин окажет увеличение количества кадров для постоянного размера сообщения; в) какое влияние на коэффициент использования линии окажет увеличение размера кадра? 2. Скорость передачи данных в канале равна 4 Кбит/с, задержка распространения сигнала составляет 20 мс. Для какого диапазона размера кадров алгоритм остановки с ожиданием сможет обеспечить по меньшей мере 50-процентную эффективность? 3.