Протоколы нижних уровней
Транспортировка информации от одной машины к другой происходит при помощи высокоскоростного канала. Специфика работы этого канала состоит в том, что на приемном конце необходимо заранее знать длину принимаемого сообщения. Этого можно добиться, посылая перед каждым сообщением служебное сообщение фиксированной длины, в котором будет указана длина следующего сообщения. Но такой вариант работы требует лишнего прерывания в ВКМ. Сравнение накладных расходов на промежуточную перепись сообщения вместе с заголовком, где указана длина сообщения, в служебный буфер с накладными расходами на обработку прерывания показало предпочтительность переписи.
Форматы заголовков и служебных сообщений, используемых для синхронизации работы транспортных служб на разных машинах, достаточно традиционны и здесь не приводятся. Следует остановиться только на следующем. В связи с тем, что надежность высокоскоростного канала очень велика, была принята схема работы без подтверждений на нижнем уровне. В случае сбоя последствия устраняются за счет верхнего уровня. Вообще говоря, цена восстановления при такой схеме выше, чем при схеме с подтверждениями на нижнем уровне, но при нормальной работе (т. е. при отсутствии сбоев) экономится по одному прерыванию на каждое сообщение.
Информация о том, что произошел сбой канала, получается только на приемном конце (на передающем может только «закиснуть» обмен, что обнаруживается при помощи тайм-аутов). Основная трудность заключается в том, что после обнаружения сбоя на приемном конце трудно решить, являются ли принятые биты заголовком следующего сообщения или концом ошибочного сообщения. Было принято следующее решение: сторона, обнаружившая сбой, посылает служебное сообщение «запрос на чистку», после чего ожидает прием служебного сообщения «чистка» фиксированной длины. Приходящие до этого служебного сообщения «чистка» другие сообщения отвергаются. После приема такого сообщения продолжается обычный прием сообщений.
Итак, нижний уровень протоколов транспортной службы реализует следующие функции: установление и поддержание сетевого соединения между транспортными службами разных машин, транспортировку информации верхнего уровня, обнаружение ошибок и выбраковку информации с ошибками (исправление ошибок повторной передачей не производится).
Метки: Протоколы, Уровни, ЭВМ