Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 9:

Протокол UUCP

Протокол g

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

В протоколе g используется шестибайтный заголовок, который присоединяется к пакету UUCP. Кроме обычных пакетов данных, в протоколе g предусмотрены специальные управляющие пакеты UUCP. С их помощью на основе параметров, полученных во время подтверждения открытия соединения, протокол g может управлять UUCP-соединением. На рис. 9.3 представлен заголовок пакета протокола g.

Заголовок пакета протокола g

Рис. 9.3. Заголовок пакета протокола g

В протоколе g в начале пакета применяется значение 0x10 (шестнадцатеричное), позаимствованное из ядра протокола UUCP. Далее следует значение К-байт. Величина К-байт показывает длину поля данных в пакете. Как уже отмечалось ранее, в поле данных протокола содержится ядро пакета UUCP. В табл. 9.11 представлены возможные значения К-байт.

Таблица 9.11. Значения К-байт в протоколе g.
Значения К-байта Длина поля данных (байт)
1 32
2 64
3 128
4 256
5 512
6 1024
7 2048
8 4096
9 0

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

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

Байт управления связан со значением К-байт и определяет назначение управляющего пакета. Формат байта управления показан на рис. 9.4. В зависимости от значения К-байт, меняются и параметры в байте управления.

Формат байта управления в протоколе g

Рис. 9.4. Формат байта управления в протоколе g

Если же значение К-байт равно 9, то байт управления определяет, какое управляющее действие должно быть выполнено на одном из двух компьютеров. Биты TT установлены в 0, а биты XXX представляют собой код операции управления. В битах YYY указывается значение операции управления. В табл. 9.12 приведены возможные значения битов XXX.

Таблица 9.12. Значения битов XXX в байте управления протокола g
Значение Мнемоника Описание
1 CLOSE Уведомление удаленного компьютера о том, что передатчик желает закрыть UUCP-соединение. Отметим, что это относится к завершению соединения по протоколу g, а не к завершению всего UUCP-соединения, хотя, как правило, это приводит к переходу в фазу подтверждения о закрытии UUCP-соединения
2 RJ Последний пакет был принят неправильно. В битах YYY отображается порядковый номер последнего принятого пакета
3 SRJ Пакет с определенным порядковым номером принят неправильно. Требуется повторить пакет. В битах YYY отображается порядковый номер неправильно принятого пакета. Этот код управления обычно в UUCP не используется
4 RR Пакет с определенным порядковым номером принят правильно. В битах YYY отображается порядковый номер последнего принятого пакета
5 INITC Идентифицирует последний управляющий пакет в фазе подтверждения установления соединения. Ведущий и ведомый компьютер посылают управляющий пакет INITC. В битах YYY отображается максимальный размер окна, которое будет использоваться в пакете. После того как компьютер принимает пакет INITC от другого компьютера, фаза подтверждения установления соединения в протоколе g считается завершенной.
6 INITB Идентифицирует второй управляющий пакет при подтверждении установления соединения. Ведущий и ведомый компьютер посылают управляющий пакет INITB. В битах YYY отображается наибольший размер пакета, который может быть принят компьютером. Значения здесь фактически идентичны значениям К-байт (со сдвигом на одно значение). Таким образом, значение INITB, равное 1, соответствует 64 байтам, 2 - 128 байтам и т.д.
7 INITA Идентифицирует начало фазы подтверждения установления соединения в протоколе g. Ведущий и ведомый компьютер посылают управляющий пакет INITA. Биты YYY отображают максимальный размер окна, которое может быть принято компьютером

Если значение К-байт меньше 9, то байт управления выполняет другие функции. В этом случае байт управления определяет тип пакета данных. Например, если значение битов ТТ равно 2, то это - длинный пакет данных. Если биты ТТ равны 3, то мы имеем дело с коротким пакетом данных.

В длинном пакете данных биты XXX и YYY байта управления используются для указания порядкового номера ( XXX ) пакета и номера уведомления ( YYY ). Каждому пакету присваивается порядковый номер и номер уведомления для того, чтобы можно было отследить потерю пакетов. Потерянные пакеты затем передаются повторно. Все байты, следующие в пакете за байтом управления (в зависимости от значения K-байт ), содержат данные. В них и заключается ядро пакета UUCP.

Короткие пакеты данных имеют незначительные отличия. Так, в них биты XXX и YYY байта управления используются для указания порядкового номера пакета и номера уведомления, но при этом первые два байта в поле данных отображают разницу между физическим и логическим размерами пакета. Как показано в табл. 9.11, значение K-байт, равное 1, указывает на то, что будет посылаться пакет данных длиной 32 байта. Если же у передатчика менее 32 байт данных, то он должен использовать короткий пакет данных. При этом первые два байта отображают разницу между логическим размером данных (32) и действительным физическим размером данных.

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

Последний байт в заголовке пакета протокола g используется для обнаружения ошибок. В качестве проверки на наличие ошибок в заголовке используется байт XOR. По сути, здесь производится операция "Исключающее ИЛИ" над значением K-байт, контрольной суммой и байтом управления. Эта операция выполняется для последней проверки на наличие ошибок в пакете протокола g. Этот байт используется в протоколе g благодаря его способности работать на зашумленных линиях с большим коэффициентом ошибок.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно