Интегрированные сети ISDN


Формат пакетов g-протокола - часть 2


/p>

Контрольная сумма управляющего пакета равна 0хаааа – с, где с – контрольный байт заголовка. Контрольная сумма информационного пакета равна 0хаааа – (check ^ c), где ^ обозначает операцию исключающее ИЛИ, а check результат работы программы, приведенной ниже и обрабатывающей поле данных. Исходными параметрами для этой программы является указатель на начало блока данных z и число байтов в блоке c.

Int

igchecksum (z, c)

register const char *z;
register int c;

{

register unsigned int ichk1, ichk2;
ichk1 = 0xffff;
ichk2 = 0;
do
{
register unsigned int b;

/* rotate ichk1 left. */

if ((ichk1 & 0x8000) == 0)
ichk1

else
{
ichk1

++ichk1;
}

/* add the next character to ichk1. */

b = *z++ & 0xff;
ichk1 += b;

/* add ichk1 xor the character position in the buffer counting from the back to ichk2. */

ichk2 += ichk1 ^ c; /* if the character was zero, or adding it to ichk1 caused an overflow, xor ichk2 to ichk1. */

if (b == 0 || (ichk1 & 0xffff) < b)
ichk1 ^= ichk2;
}
while (--c > 0);
return ichk1 & 0xffff;

}

Когда g-протокол запускается в работу, посылается управляющий пакет INITA с кодом желательного значения максимального размера окна. Сервер откликается пакетом INITA со своим предложением размера окна. После этого аналогичный обмен производится пакетами INITB и INITC. В результате каждая из сторон может использовать свой размер окна и длину посылаемых пакетов.

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

f-протокол. Этот протокол предназначен для пересылки 7-битных текстовых файлов. Здесь используются только символы от \040 (пробел) до \176 (~) и возврат каретки.


Начало  Назад  Вперед