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


         

Формат пакета i –протокола



Рисунок 4.4.14.1.2. Формат пакета i –протокола


Заголовок начинается с флага ^g (восьмеричный код \007), далее следует 5-битовое поле пакет. Пакеты DATA, SPOS и CLOSE используют это поле для номера пакета. В пакетах NAK сюда заносится номер пакета, подлежащий повторной пересылке. В пакетах же ACK и SYNC это поле заполняется нулями. Поле ACK содержит 5 бит и служит для записи номера последнего пакета, принятого без ошибки. Это поле используется всеми типами пакетов. В трехбитовое поле тип определяет назначение пакета и может принимать следующие значения.



0 ‘DATA’

Информационный пакет;

1 ‘SYNC’

Пакет sync используется при инициализации соединения, поле пакет в для этого типа обнуляется;

2 ‘ACK’

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

3 ‘NAK’

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

4 ‘SPOS’

Пакет служит для изменения указателя файла. Пакет содержит 4 байта указателя файла (наиболее значащий байт первый).

5 ‘CLOSE’

Пакет служит для сообщения о прерывании связи. Противоположная сторона должна откликнуться пакетом CLOSE.

Однобитовое поле d =1 для пакетов клиента и =0 для пакетов сервера. Поле длины поля данных состоит из двух секций (полный байт содержит младшую часть), имеет суммарную протяженность 12 бит, что позволяет варьировать поле данных в пределах от 0 до 4095 байт. Однобайтовое поле контрольная сумма содержит код, который представляет собой результат операции XOR, выполненной для байт заголовка, начиная со второго по пятый. После заголовка следует поле данных, за которым помещается 32-разрядная контрольная сумма информационного поля (CRC).

При инициализации i-протокола стороны обмениваются SYNC-пакетами, которые содержат по крайней мере 3 байта. Первые два байта несут в себе максимальный размер пакетов, посылаемых удаленной стороной (старший байт первый).
Третий байт определяет размер окна, используемый удаленной стороной. При этом могут посылаться пакеты любого размера, но не больше указанного максимального. Если SYNC содержит четвертый байт, то он хранит в себе номер канала (1-7), который может использовать удаленная система. Размер окна определяет число пакетов, которое может быть послано, не дожидаясь подтверждения получения. Подтверждаться может не каждый пакет. Если получено подтверждение получения пакета n, все предшествующие считаются полученными корректно. Если потерян пакет, посланный одной из сторон, другая может передавать пакеты, как ни в чем не бывало. Команды посылаются в виде последовательности информационных пакетов с ненулевым полем номера локального канала. Последний из пакетов в этом случае должен содержать нулевой байт в конце (обычно команда укладывается в один пакет). Файла передаются в виде последовательности пакетов, завершающейся пакетом нулевой длины. При получении отклика sn пересылка файла абортируется. Применение номеров каналов позволяет посылать команды и пересылать файлы одновременно.



j-протокол. Этот протокол является разновидностью i-протокола написанного тем же автором. Протокол предназначен для коммуникационных каналов с возможностью перехвата некоторых символов, например xon или xoff. Протокол не выполняет детектирования или исправления ошибок. При инициализации j-протокола системы обмениваются последовательностями печатных ascii-символов, чтобы указать, какие из них стороны хотят исключить из употребления. Такая последовательность должна начинаться с символа ^ (восьмеричный код 136) и завершаться символом ~ (восьмеричный код 176). После отправления такой строки система ждет аналогичной посылки с противоположной стороны. Строки состоят из esc-последовательностей типа \ooo, где o – восьмеричная цифра. Например, посылка последовательности ^\021\023~ означает, что следует избегать символов xon и xoff. Блокировка использования символов из диапазона \040 - \176 запрещена. После указанного обмена включается стандартный i-протокол, но пакеты i-протокола вкладываются в j-пакеты.Заголовок j-пакетов содержит 7 байт. Формат заголовка пакета j-протокола показан на Рисунок 4.4.14.1.3.


Формат пакетов g-протокола



Рисунок 4.4.14.1. Формат пакетов g-протокола


Пакет начинается с восьмеричного кода 020, далее следует поле k (1 Ј k Ј 9). Для управляющих пакетов k=9. Для информационных пакетов k определяет размер поля данных. k=1 соответствует 32 байтам данных, а k=9 – 4096 байтам. Далее следуют два байта контрольной суммы, контрольный байт, определяющий тип пакета, и xor-байт. Последний равен результату операции xor для полей k, младшего байта контрольной суммы, старшего байта контрольной суммы и контрольного байта. Этот байт служит для контроля целостности заголовка пакета.

Управляющий байт заголовка содержит в себе три субполя (ttxxxyyy). Поле tt может принимать следующие значения.

0 Указатель управляющего пакета (k должно быть равно 9). При этом поле xxx определяет тип управляющего пакета;
1 Не используется UUCP;
2 Информационный пакет;
3 Короткий информационный пакет.

Пусть длина поля данных, заданная k, равна 1, пусть также первый байт поля данных равен b1. Если b1 меньше 128, тогда истинное число байт в поле данных равно 1 – b1, начиная со второго байта. Если b1і 128 и второй байт поля данных b2, то истинное число байт в поле данных равно 1 – ((b1 & 0x7f) + (b2

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

В пакетах управления поле ххх может принимать следующие значения:

CLOSE Соединение должно быть оборвано немедленно (например, обнаружено слишком много ошибок).
RJ или NAK Последний пакет доставлен с ошибкой. В поле ууу записан номер последнего пакета, доставленного корректно.
SRJ Выборочный отказ. Поле ууу содержит номер пакета, доставленного с ошибкой. Пакет должен быть послан повторно. В UUCP обычно не используется.
RR или ACK Подтверждение получения пакета. Поле ууу содержит код номера последнего пакета, полученного корректно.
INITA Первый пакет инициализации. Поле ууу содержит код максимального размера окна.
INITB Второй пакет инициализации. Поле ууу содержит код размера пакетов, который планируется использовать.
INITC Третий пакет инициализации. Поле ууу содержит размер окна, который будет использован.
<
/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 (~) и возврат каретки.


Протокол весьма не эффективен для транспортировки 8-битовых данных. Его система контрольного суммирования не слишком надежна для больших файлов. Первоначально этот протокол предназначался для работы в сетях Х.25. В f-протоколе не предусмотрена процедура инициализации. При пересылке команды передается строка, завершающаяся символом возврат каретки. В процессе передачи файлов каждый байт b преобразуется в соответствии с таблицей.

0 b

0172, b + 0100 (0100 дo 0137)
040 b

b

(040 до 0171)
0172 b

0173, b – 0100 ( 072 до 077)
0200 b

0174, b – 0100 (0100 до 0137)

0240 b

0175, b – 0200 ( 040 до 0171)
0372 b

0176, b – 0300 ( 072 до 077)
Таким образом, байты между \040 и \171 включительно передаются без изменений, остальные перед отправкой преобразуются. Когда файл данных переслан, посылается 7-байтовая последовательность, включающая в себя два байта \176, за которыми следует 4 ASCII байта контрольной суммы (в шестнадцатеричном формате) и символ возврата каретки. Если контрольная сумма равна 0x1a2b, то будет послана последовательность \176\1761a2b\r.

При вычислении контрольной суммы туда сначала заносится код 0xffff. Для вычисления контрольной суммы (ichk) используется следующая программа, которая выполняется перед отправкой каждого байта.

/* rotate the checksum left. */

if ((ichk & 0x8000) == 0)
ichk

else
{
ichk

++ichk;
}
/* add the next byte into the checksum. */

ichk += b;
Принимающая файл сторона также вычисляет контрольную сумму данных и сравнивает ее с полученной по каналу. По результату этого сравнения передающей стороне посылается одно-символьный отклик, за которым следует код возврата каретки.

G Файл принят без ошибок;
R Ошибка в контрольной сумме, файл надо передать повторно;
Q Контрольная сумма неверна, но уже совершено много попыток и сессию следует прервать
t-протокол. Протокол предназначен для каналов, обеспечивающих надежную связь по схеме точка-точка (аналог TCP) для 8-битных данных.


При посылке команды сначала определяется ее длина с. Затем посылается (с/512 +1)*512 байт, которые включают в себя строку команды и соответствующее число нулевых байтов. При пересылке файлов обмен идет блоками по 1024 байта. Каждый блок начинается с 4 байтов, характеризующих объем данных в блоке (формат аналогичен используемому UNIX-утилитой htonl). В конце файла передается блок нулевых байтов.



e-протокол. Протокол подобен t-протоколу. Но здесь нет управления потоком и контроля ошибок. При посылке команды передается командная строка, завершающаяся нулевым байтом. При пересылке файла сначала посылается код его размера в виде ASCII десятичных цифр. Эта строка дополняется до 20 символов нулевыми байтами. Так, если длина файла 40000 байт, сначала посылается последовательность 40000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0, после чего посылается собственно файл.



G-протокол. Протокол используется SVR4 UUCP. Он идентичен G-протоколу за исключением того, что можно модифицировать окно и размер пакетов. В SVR4 реализации G-протокола размер окна всегда равен 7 а длина пакета 64 байтам.

\



i-протокол. Протокол написан Яном Лансом Тейлором и использован в taylor UUCP. Это протокол пересылки данных со скользящим окном, подобно G-протоколу. Но в отличие от этого протокола i-протокол поддерживает обмен данными в двух направлениях одновременно. Пакеты в этом протоколе имеют 6-байтовый заголовок. За полем данных следует 4-байтовая контрольная сумма. Определено 5 типов пакетов: DATA, SYNC, ACK, NAK, SPOS и CLOSE. Все они могут содержать поле данных. Пакеты типа DATA, SPOS и CLOSE имеют порядковые номера. Каждая из сторон нумерует пакеты независимо по модулю 32. Каждый из пакетов характеризуется локальным и удаленным номерами каналов. Каждому типу команд в локальной системе ставится в соответствие ненулевой локальный номер канала. Аналогичное правило справедливо и для удаленной системы. Это позволяет решить проблему одновременного двухстороннего информационного обмена. Для каждого файла протокол формирует указатель, в исходный момент равный нулю.После получения очередного пакета указатель соответствующим образом инкрементируется. Исключение представляют пакеты типа spos, которые служат для изменения указателя файла. Формат пакета i-протокола представлен на Рисунок 4.4.14.1.2.


Формат UDP-дейтограмм Длина сообщения



Рисунок 4.4.2.1 Формат UDP-дейтограмм

Длина сообщения равна числу байт в UDP-дейтограмме, включая заголовок. Поле UDP контрольная сумма содержит код, полученный в результате контрольного суммирования UDP-заголовка и поля данные. Не трудно видеть, что этот протокол использует заголовок минимального размера (8 байт).



Формат заголовка для y-пакетов



Рисунок 4.4.14.1.4. Формат заголовка для y-пакетов


Первое поле номер содержит два байта номера пакета, причем первый из байтов является младшей частью номера (это справедливо и для других полей заголовка). Нумерация начинается с нуля. Так как первый пакет всегда SYNC, информационные пакеты имеют номера, начиная с 1. Каждая из систем, участвующих в обмене, нумеруют пакеты независимо. Если старший бит 16-битового поля длины равен нулю, то в этом поле записано число байт в поле данных, следующем за заголовком. Если же старший бит равен 1, то данных в пакете нет, а сам он является управляющим пакетом. В этом случае поле длина определяет тип пакета. Содержимое двухбайтового поля контрольная сумма вычисляется по программе, приведенной в описании протокола f. Для пакетов, не содержащих данных, контрольная сумма равна нулю. Инициализация протокола начинается с того, что стороны обмениваются SYNC-пакетами. SYNC-пакет должен содержать по меньшей мере 4 байта данных. Первый из них содержит код версии протокола. Далее следует байт длины пакета, которая измеряется в блоках по 256 байт (максимальный размер поля данных 32768 байт, что соответствует коду длины 128). Завершается блок данных пакета SYNC двумя байтами флагов. В настоящее время их функции не определены и их следует обнулять. Определены следующие типы управляющих пакетов.

0хFFFE ‘YPKT_ACK’

подтверждение корректного приема файла;

0xFFFD ‘YPKT_ERR’

указывает на ошибку в контрольной сумме;

0xFFFC ‘YPKT_BAD’

указывает на ошибку в порядковом номере, в поле длины или какую-либо еще ошибку.

Если получен управляющий пакет, отличный от ‘YPKT_ACK’, соединение обрывается (это же делается при обнаружении других ошибок). Команда в y-протоколе представляет собой последовательность пакетов, завершающаяся нулевым байтом. Конец передачи файла отмечается посылкой пакета с нулем в поле длина.

Существуют также d-, h- и v-протоколы UUCP, но они не имеют заметного применения.



Формат заголовка j-пакета



Рисунок 4.4.14.1.3. Формат заголовка j-пакета


Заголовок начинается с кода символа ^. Далее следует два байта поля длина (первый из них старший), которые характеризуют полную длину пакета в байтах. Запись в этом поле осуществляется в виде ascii-символов. Истинная длина пакета вычисляется согласно формуле: (l1 – 040)*0100 + (l2 – 040), где 040 Ј l1 < 0177 и 040 Ј l2 < 0140. После поля длина следует байт 075 (символ =), за которым следует два байта длины поля данных (равна размеру вложенного i-пакета в октетах). Заголовок завершается символом @ (восьмеричный код 0100). Все символы, запрещенные к использованию при инициализации, в случае их наличия в i-пакете подменяются печатными ASCII-символами. При этом для каждой такой подмены вводится два индексных байта (index-h и index_l). Индексные байты непосредственно следуют за байтами данных. В индексных байтах закодировано положение “запретного” символа в i-пакете. Преобразование запретных символов производится следующим образом. Если код символа больше или равно 0200, из него вычитается 0200, если при этом результат меньше 020 или равен 0177, над ним производится операция xor 020. Индексные байты представляют собой ASCII-символы. Истинное положение запретного символа вычисляется по формуле: (index-h – 040) * 040 + (index_l – 040). Значение index_l должно лежать в пределах 040 Ј index_l < 0100, а index-h – 040 Ј index-h < 0176.

x-протокол. Протокол ориентирован на машины со встроенными картами Х.25 и предназначен для непосредственной пересылки 8-битовых данных без взаимодействия со слоями Х.28 или Х.29. Пересылка осуществляется 512 байтными пакетами.

y-протокол. Протокол разработан Йоргом Квиком и используется в FX uucico. Протокол осуществляет контроль и коррекцию ошибок, он предназначен для передачи 8-битовых данных в поточном режиме. Здесь не предусмотрено подтверждения получения пакетов, по этой причине протокол удобен для полудуплексных каналов. Каждый пакет имеет 6-байтовый заголовок. Формат заголовка для y-пакетов показан на Рисунок 4.4.14.1.4.



Краткий справочник по командам UNIX



10.18 Краткий справочник по командам UNIX

Первая версия UNIX была создана в 1971 году, в 1979 году была подготовлена 7-я редакция (Bourne Shell и компилятор С, разработанная Керниганом и Ритчи; тогда же фирма Microsoft купила права и разработала свою версию для РС - XENIX). Первая версия BSD (Беркли) была подготовлена в 1978 году. В 1981 году закончена версия, поддерживающая стек протоколов TCP/IP (4.2BSD). В 1990 году в UNIX была встроена система NFS. Несколько лет назад в университете Хельсинки (Линусом Торвальдсом) была разработана версия UNIX, известная под названием LINUX.

UNIX имеет двухуровневую структуру: ядро, где сконцентрированы базовые услуги и оболочка, куда входят редакторы, интерпретаторы, например СС, а также lp, routed, inetd, init

и т.д.

Код UNIX написан на Си (на 30% больше по объему и на 20% ниже по производительности, чем версия на ассемблере). Система открытая, рассчитанная на многозадачность и большое число пользователей.

Интерфейс системных вызовов предоставляет набор услуг ядра и определяет формат запросов. Ядро состоит из трех частей:

Файловая система

Система управления процессами и памятью

Система ввода/вывода.

Файловая система обеспечивает интерфейс доступа к данным на дисковых накопителях и в периферийных устройствах ввода/вывода. Одни и те же функции open(), read(0, write() могут использоваться при чтении/записи на диске и при выводе данных на принтер или терминал. Файловая система управляет правами доступа и привилегиями. Она обеспечивает перенаправление запросов, адресованных периферийным устройствам.

Система управления процессами ЭВМ, причем их число обычно превышает число ЦПУ. Специальной задачей ядра является планирование выполнением процессов (scheduler). Сюда входит управление ресурсами системы (временем ЦПУ, дисковым пространством, распределением памяти и т.д.). Данная система занимается созданием и удалением процессов, синхронизацией их работы и взаимодействием процессов (например, обменом данными).

Система ввода/вывода обслуживает запросы файловой системы и системы управления процессами для доступа к периферийным устройствам (дискам, лентам, печати, терминалам).
Эта система организует взаимодействие с драйверами этих устройств.

Файловая система UNIX представляет собой древовидную структуру. Каждый файл имеет имя, которое определяет его место на дереве файловой системы. Корнем этой системы является корневой каталог с именем /.

В этом каталоге обычно содержатся каталоги:



/bin
Каталог наиболее популярных системных команд и утилит.
/dev Каталог файлов для периферийных устройств, например дисковых накопителей (/dev/cdrom, /dev/mem, /dev/null или /dev/ttyp10).
/etc Здесь находятся конфигурационные файлы и утилиты администрирования, среди них скрипты инициализации системы.
/lib Каталог библиотечных файлов языка Си и других языков.
/lost+found Каталог “потерянных” файлов. Ошибки при неправильном выключении ЭВМ могут привести к появлению безымянных файлов (содержимое корректно, но нет ссылок на этот файл ни в одном из каталогов).
/mnt Каталог для установления временных связей (монтирования) физических файловых систем с корневой системой. Обычно каталог пуст.
/home Служит для размещения каталогов пользователей (в прежних версиях для этого служил каталог /usr.
/var Предназначен для размещения сервисных подкаталогов, например, электронной почты (/usr/spool), утилит UNIX (/usr/bin), программ, исполняемых на данной ЭВМ (/usr/local), файлов заголовков (/usr/include), системы справочника (/usr/man).
/tmp Служит для записи временных файлов.
Полные имена остальных файлов содержат путь – список каталогов, размещенных между / и данным файлом. По этой причине полное имя любого файла начинается с символа / (не содержит в отличие от Windows имени диска (например, CD), другого внешнего устройства или удаленной ЭВМ).

UNIX, тем не менее, не предполагает наличия лишь одной файловой системы. Число таких файловых систем в этой ОС не лимитировано, они могут располагаться на одном дисковом накопителе, на разных устройствах или даже на разных ЭВМ.

Каждый файл имеет сопряженные с ним метаданные, записанные в индексных дескрипторах – inode.


Имя файла является указателем на его метаданные (метаданные не содержат указателя на имя файла). Существует 6 типов файлов:

Обычный файл (regular)

Каталог (directory)

Файл внешнего устройства

Канал с именем (FIFO)

Связь (link)

socket



Обычный файл является наиболее распространенным типом. Для операционной системы такой файл представляется простой последовательностью байтов. Интерпретация содержимого такого файла находится в зоне ответственности прикладной программы, которая с ним работает.



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



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



Каналы с именем (FIFO) – это файлы, служащие для связи между процессами.

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



Socket служит для взаимодействия между процессами. Интерфейс socket используется, например, для доступа к сети TCP/IP.

Любой файл имеет двух владельцев – собственно создателя и группу (chown, chgrp и chmod). Файл создается не пользователем, а процессом, им запущенным. Атрибуты этого процесс присваиваются и файлу (r, w и x). Имеется также несколько дополнительных атрибутов, среди них sticky bit, который требует сохранения образа \исполняемого файла в памяти после завершения его работы. Атрибуты SUID и GUID позволяют изменить права пользователя в направлении расширения (до уровня создателя файла) на время исполнения данной программы (это используется, например, в случае работы с файлом /etc/passwd).


В случае каталогов sticky bit позволяет стереть только файлы, которыми владеет пользователь.

Различается несколько типов процессов.

Системные процессы являются частью ядра и резидентно размещены в оперативной памяти. Они запускаются при инициализации ядра системы. Системными процессами являются, например, kmadaemon (диспетчер памяти ядра), shed (диспетчер свопинга), bdfflush (диспетчер кэша), init (прародитель всех остальных процессов).

Демоны – не интерактивные процессы, запускаемые путем загрузки в память соответствующих программ и выполняемые в фоновом режиме. Демоны не ассоциируются ни с одним из пользователей (они служат, например, для организации терминального ввода, печатающего устройства, сетевого доступа).

Прикладные процессы – это остальные процессы принадлежащие, как правило, пользователям.

Процессы создаются процедурой fork и характеризуются набором атрибутов:



PID
(Process ID) представляет собой уникальное имя процесса (идентификатор нового процесса характеризуется большим кодом, чем идентификатор предыдущего). После уничтожения процесса ликвидируется и его PID и этот идентификатор может быть присвоен новому процессу.
PPID (Parent Process ID) – идентификатор процесса, породившего данный процесс.
Приоритет процесса (Nice Number) учитывается планировщиком при определении очередности запуска процессов.
TTY псевдотерминал, ассоциированный с процессом. Демоны не имеют псевдотерминала.
RID (Real ID) пользователя, запустившего данный процесс. Эффективный идентификатор (EUID) служит для определения прав доступа процесса к системным ресурсам.
Для запуска задачи процесс должен выполнить системный вызов exec. При этом не порождается новый процесс, а код процесса замещается полностью кодом запускаемой программы.

Так, когда пользователь вводит команду ls, текущий процесс shell осуществляет вызов fork, порождая новый процесс – копию shell. Порожденный процесс осуществит вызов exec, указав в качестве параметра имя исполняемого файла (ls). Ls замещает shell, а по завершении работы процесс уничтожается.



Сигналы



Сигналы служат для того, чтобы передавать от одного процесса к другому или от ядра к какому-то процессу, уведомление о происхождении некоторого события. Примером такого события может быть нажатие клавиши мышки или нажатие клавиш <Ctrl><C> (SIGINIT)или <Ctrl><Alt><Del>.

Для отправления сигнала служит команда kill pid, где sig_no – номер или символическое название сигнала, pid - идентификатор процесса, которому адресован сигнал. Для остановки процесса, выполняемого в фоновом режиме можно послать сигнал SIGTERM. Например, kill $!, где $! – переменная, где хранится идентификатор процесса (PID), запущенного последним.




Процессы


Процессы



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

Идентификатор пользователя – UID.

Эффективный идентификатор пользователя – ЕUID

Идентификатор группы GID

Эффективный идентификатор группы ЕGID.

Процессы с идентификаторами SUID и SGID ни при каких обстоятельствах не должны порождать других процессов.

Процесс при реализации использует разные системные ресурсы – память, процессор, возможности файловой системы и ввод/вывод. ОС создает иллюзию одновременного исполнения нескольких процессов (предполагается, что имеется только один процессор), распределяя ресурсы между ними и препятствуя злоупотреблениям.

Выполнение процесса может происходить в двух режимах – в режиме ядра (kernel mode) и в режиме пользователя (user mode). В режиме пользователя процесс исполняет команды прикладной программы, доступные на непривилегированном уровне. Для получения каких-либо услуг ядра процесс делает системный вызов. При этом могут исполняться инструкции ядра, но от имени процесса, реализующего системный вызов. Выполнение процесса переходит в режим ядра, что защищает адресное пространство ядра. Следует иметь в виду, что некоторые инструкции, например, изменение содержимого регистров управления памятью, возможно только в режиме ядра.

По этой причине образ процесса состоит из двух частей: данных режима ядра и режима пользователя. Каждый процесс представляется в системе двумя основными структурами данных – proc и user, описанными в файлах <sys/proc.h> и <say/user.h>, соответственно. Структура proc является записью системной таблицы процессов, которая всегда находится в оперативной памяти. Запись этой таблицы для активного в данный момент процесса адресуется системной переменной curproc. Каждый раз при переключении контекста, когда ресурсы процессора передаются другому процессу, соответственно изменяется содержимое переменной curproc, которая теперь будет указывать на proc активного процесса.


Структура user, называемая также u-area или u block, содержит данные о процессе, которые нужны ядру при выполнении процесса. В отличие от структуры proc, адресуемой с помощью указателя curproc, данные user размещаются в определенном месте виртуальной памяти ядра и адресуются через переменную u. u area также содержит стек фиксированного размера – системный стек или стек ядра (kernel stack). При выполнении процесса в режиме ядра операционная система использует стек, а не стек процесса.

Современные процессоры поддерживают разбивку адресного пространства на области переменного размера – сегменты, и области фиксированного объема – страницы.

Процессоры Intel позволяют разделить память на несколько логических сегментов. Виртуальный адрес при этом состоит из двух частей – селектора сегмента и смещения в пределах сегмента. Поле селектора INDEX указывает на дескриптор сегмента, где записано его положение, размер и права доступа RPL (Descriptor Privilege Level).

При запуске программы командный интерпретатор порождает процесс, который наследует все 4 идентификатора и имеет те же права, что и shell.Так как в сеансе пользователя прародителем всех процессов является login shell, то их идентификаторы будут идентичны. При запуске программы сначала порождается новый процесс, а затем загружается программа.

Процесс порождается с помощью системного вызова fork:

#include <sys/types.h>

#include <unistd.h>

pid_t fork(void);

Порожденный процесс (дочерний) является точной копией родительского процесса. Дочерний процесс наследует следующие атрибуты:

идентификатор пользователя и группы

все указатели и дескрипторы файлов

диспозицию сигналов и их обработчики

текущий и корневой каталог

переменные окружения

маску файлов

ограничения, налагаемые на процесс

управляющий терминал

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


Если код =0, то возврат осуществляется только в родительский процесс.

Для загрузки исполняемого файла используется вызов exec (аргумент – запускаемая программа). При этом существующий процесс замещается новым, соответствующим исполняемому файлу.

идентификаторы PID и PPID

все указатели и дескрипторы файлов, для которых не установлен флаг FD_CLOEXEC

идентификаторы пользователя и группы

текущий и корневой каталог

переменные окружения

маску файлов

ограничения, налагаемые на процесс

управляющий терминал

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

ОС UNIX создает иллюзию одновременного исполнения процессов, стараясь эффективно распределять между ними имеющиеся ресурсы. Выполнение процесса возможно в режиме ядра (kernel mode) и в режиме задачи (user mode). В последнем случае процесс реализует инструкции прикладной программы, допустимые на непривилегированном уровне защиты процессора. При этом системные структуры данных недоступны. Для получения таких данных процесс делает системный вызов (на время происходит переход процесса в режим ядра).

Каждый процесс представляется в системе двумя основными структурами данных – proc и user, описанными в файлах <sys/proc.h> и <sys/user.h>. Структура proc представляет собой системную таблицу процессов, которая находится в оперативной памяти резидентно. Текущий процесс адресуется системной переменной curproc. Структура user размещается в виртуальной памяти. Область user содержит также системный стек и стек ядра.

Распределение оперативной памяти всегда бывает динамическим. Процессы выполняются в своем виртуальном адресном пространстве. Виртуальные адреса преобразуются в физические на аппаратном уровне при активном участии ОС. Объем виртуальной памяти может значительно превышать объем физической. Процессоры обычно поддерживают разделение адресного пространства области переменного размера – сегменты и фиксированного размера - страницы.


Для каждой страницы может быть задано собственная схема преобразования виртуальных адресов в физические. Intel поддерживает работу с сегментами (сегментные регистры), где задается селектор сегмента (дескриптор) и смещение в пределах сегмента.

Распределение ресурсов процессора осуществляется планировщиком, который выделяет кванты времени каждому из активных процессов. Здесь приложения делятся на три класса:

Интерактивные

Фоновые

Реального времени

Каждый процесс в UNIX имеет свой контекст (контекст сохраняется при прерывании процесса). Контекст определяется следующими составляющими:

Адресное пространство процесса в режиме user

Управляющая информация (proc и user).

Окружение процесса (в виде пар переменная=значение).

Аппаратный контекст (регистры процессора)

Работа планировщика UNIX основана на использовании приоритетов процессов. Если процесс имеет наивысший приоритет и готов к работе, планировщик прервет работу текущего процесса, если у него более низкий приоритет, даже при условии, что он не выбрал до конца свой квант времени. Работа программы ядра обычно не прерывается. Это касается и процессов user, если они в данный момент осуществляют системный вызов.

Каждый процесс имеет два атрибута приоритета – текущий и относительный (nice). Первый служит для реализации планирования, второй присваивается при порождении процесса и воздействует на значение текущего приоритета. Текущий приоритет может характеризоваться кодами 0 (низший) – 127 (высший). Для режима user используются коды приоритета 0-65, а для ядра – 66-94 (системный диапазон).

Процессы с кодами 96-127 имеют фиксированный приоритет, который не может изменить ОС (обычно служат для процессов реального времени).

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


Фоновые же процессы, забирающие много времени ЦПУ, получают относительно низкий приоритет.

Каждую секунду ядро пересчитывает текущие значения кодов приоритета для процессов, ожидающих запуска (коды<65), повышая вероятность получения ими требуемого ресурса. Так 4.3BSD использует для расчета приоритета процесса следующую формулу:



p_cpu = p_cpu*(2*load)/(2*load+1), где load – среднее число процессов в очереди за последнюю секунду. В результате после долгого ожидания даже низкоприоритетный процесс имеет определенный шанс получить требуемый ресурс.

Ядро генерирует и посылает процессу сигнал в ответ на определенные события, вызванные самим процессом, другим процессом, прерыванием (например, терминальным) или внешним событием. Это могут быть Alarm, нарушение по выделенным квотам, особые ситуации, например деление на нуль и т.д. Некоторые сигналы можно заблокировать, отложить их обработку, или проигнорировать, для других (например, SIGKILL и SIGSTOP) это невозможно.

Взаимное влияние процессов в UNIX минимизировано (многозадачность!), но система была бы неэффективной, если бы она не позволяла процессам обмениваться данными и сигналами (IPC – Inter Process Communications). Для реализации этой задачи в UNIX предусмотрены:

каналы

сигналы

FIFO (First-In-First-Out - именованные каналы)

очереди сообщений

семафоры

совместно используемые области памяти

сокеты>

Для создания канала используется системный вызов pipe int pipe(int *filedes); который возвращает два дескриптора файла filedes[0] – для записи в канал и filedes[1] для чтения из канала. Когда один процесс записывает данные в filedes[0], другой получает их из filedes[1]. Здесь уместен вопрос, как этот другой процесс узнает дескриптор filedes[1]?

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


Для независимых процессов такой метод обмена недоступен. Канальный обмен может быть запущен и с консоли. Например:



cat file.txt | wc



Здесь символ | олицетворяет создание канала между выводом из файла file.txt и программой wc, подсчитывающей число символов в словах. Процессы эти не являются независимыми, так как оба порождены процессом shell.

Метод FIFO (в BSD не реализован) сходен с канальным обменом, так как также организует лишь однонаправленный обмен. Такие каналы имеют имена, что позволяет их применять при обмене между независимыми процессами. FIFO – это отдельный тип файла в файловой системе UNIX. Для формирования FIFO используется системный вызов mknod.



int mknod(char *pathname, int mode, int dev);



где pathname – имя файла (FIFO),

mode – флаги владения и прав доступа,

dev – при создании FIFO игнорируется.

Допускается создание FIFO и из командной строки: mknod name p.

FIFO также как и обычные канала работают с соблюдением следующих правил.

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

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

Если в канале ничего нет и ни один процесс не открыл его на запись, при чтении будет получено нуль байтов. Если один или более процессов открыло канал на запись, вызов read будет заблокирован до появления данных.

В случае записи в канал несколькими процессами, эти данные не перемешиваются.

При попытке записать большее число байтов, чем это позволено каналом или FIFO, вызов write блокируется до освобождения нужного места. Если процесс предпринимает попытку записи в канал, не открытый ни одним из процессов для чтения, процессу посылается сигнал SIGPIPE, а вызов write присылает 0 с кодом ошибки errno=EPIPE.




Протокол обмена UUCP



4.4.14.1 Протокол обмена UUCP

Этот протокол сыграл немалую роль в становлении современных телекоммуникационных технологий. Первые системы электронной почты использовали протокол UUCP (Unix-to-Unix Copy Program). Основополагающие идеи ОС UNIX расширили область взаимодействия вычислительных и управляющих процессов за рамки центрального процессора ЭВМ. Хотя большинство современных почтовых серверов базируется на протоколе SMTP, протокол UUCP продолжает применяться во многих приложениях, использующих ОС UNIX (см. www.isf.ru/~stas/doc/uucp-1.06/uucp_7.html).

Современные программные пакеты UUCP поддерживают приоритеты для всех команд, которые варьируются от a (наивысший) до z и далее a-z. В UNIX эти коды приоритетов вставляются в имена командных файлов, создаваемых UUCP или UUX. Имя командного файла обычно имеет вид: c.nnnngssss, где g – код приоритета (от слова grade), nnnn – имя удаленной системы, а ssss – четырех символьный номер. Например, командный файл создаваемый системой sun2 с уровнем приоритета d может иметь имя c.sun2d1111. При этом в имени удаленной системы сохраняется лишь 7 символов, чтобы обеспечить совместимость с 14-символьным ограничением для имен файлов.



Протокол UDP



4.4.2 Протокол UDP

Протокол UDP (user datagram protocol, RFC-768) является одним из основных протоколов, расположенных непосредственно над IP. Он предоставляет прикладным процессам транспортные услуги, немногим отличающиеся от услуг протокола IP. Протокол UDP обеспечивает доставку дейтограмм, но не требует подтверждения их получения. Протокол UDP не требует соединения с удаленным модулем UDP ("бессвязный" протокол). К заголовку IP-пакета udp добавляет поля порт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длина

udp-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Таким образом, если на уровне ip для определения места доставки пакета используется адрес, на уровне UDP - номер порта.

Примерами сетевых приложений, использующих UDP, являются NFS(network file system), TFTP(trivial file transfer protocol, RFC-1350), RPC (remote procedure call, RFC-1057) и SNMP (simple network management protocol, RFC-1157). Малые накладные расходы, связанные с форматом UDP, а также отсутствие необходимости подтверждения получения пакета, делают этот протокол наиболее популярным при реализации приложений мультимедиа, но главное его место работы - локальные сети и мультимедиа.

Прикладные процессы и модули UDP взаимодействуют через UDP-порты. Эти порты нумеруются, начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги (сервер), ожидает сообщений, направленных в порт, специально выделенный для этих услуг. Программа-сервер ждет, когда какая-нибудь программа-клиент запросит услугу.

Например, сервер snmp всегда ожидает сообщения, адресованного в порт 161. Если клиент snmp желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. На каждой машине может быть только один агент SNMP, т.к. существует только один порт 161. Данный номер порта является общеизвестным, т.е. фиксированным номером, официально выделенным в сети Internet для услуг SNMP. Общеизвестные номера портов определяются стандартами Internet (см. табл. 4.4.2.1).

Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части. Формат UDP-сообщений представлен ниже на Рисунок 4.4.2.1:



Сигналы


Имя сигнала

Функция по умолчанию

Описание

SIGABRT

Завершение + ядро

Результат системного вызова abort

SIGALRM

Завершение

Результат срабатывания таймера, установленного системными вызовом alarm или setitimer

SIGBUS

Завершение + ядро

Результат аппаратной ошибки. Сигнал посылается при обращении к виртуальному адресу, для которого отсутствует соответствующая физическая страница памяти.

SIGCHLD

Игнорирование

Сообщает родительскому процессу о завершении исполнения дочернего

SIGEGV

Завершение + ядро

Формируется при попытке обращения к неверному адресу или области памяти, для которой у процесса нет привилегий.

SIGFPE

Завершение + ядро

Сигнал возникает в случае деления на нуль или при переполнении в операциях с плавающей запятой.

SIGHUP

Завершение

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

SIGILL

Завершение + ядро

Посылается ядром при попытке процесса выполнить недопустимую команду.

SIGINT

Завершение

Посылается ядром всем процессам при нажатии комбинации клавиш <Del> или <Crtl><C>.

SIGKILL

Завершение

Сигнал прерывает выполнение процесса. Перехват или игнорирование этого сигнала невозможно.

SIGPIPE

Завершение

Результат попытки записи в канал или сокет, когда получатель данных закрыл соответствующий дескриптор.

SIGPOLL

Завершение

Результат реализации определенного события для устройства, которое опрашивается.

SIGPWR

Игнорирование

Результат угрозы потери питания (при переключении на UPS).

SIGQUIT

Завершение + ядро

Посылается ядром всем процессам текущей группы при нажатии клавиш <Crtl><\>.

SIGSTOP

Стоп

Посылается всем процессам текущей группы при нажатии пользователем комбинации клавиш <Crtl><Z>. Процесс останавливается.

SIGSYS

Завершение + ядро

Посылается ядром при попытке некорректного системного вызова

SIGTERM

Завершение

Предупреждение о скорой ликвидации процесса (ликвидировать временные файлы, прервать текущие обмены) Команда kill посылает именно этот сигнал.

SIGTTIN

Стоп

Формируется ядром при попытке фонового процесса выполнить чтение с консоли.

SIGTTOU

Стоп

Формируется ядром при попытке фонового процесса выполнить запись в консоль

SIGUSR1

Завершение

Предназначен для прикладных задач, как средство взаимодействия процессов.

SIGUSR2

Завершение

Предназначен для прикладных задач, как средство взаимодействия процессов.

<
/p> Сигнал может игнорироваться, могут быть предприняты действия, предусмотренные по умолчанию, или процесс может взять на себя функцию обработки сигнала. Если процесс не остановился, существует способ заставить его выполнить это требование, послав команду:



kill –9 pid



Иногда и это может не помочь, например, в случае процессов зомби (процесса нет а запись о нем имеется), операции в NFS или с ленточным ЗУ.

Атрибуты пользователя в файле /etc/passwd (одна строка – одна запись):



имя:passwd-encod:UID:GID:комментарии:home-dir:shell

имя уникальное регистрационное имя пользователя (вводится при login)



passwd-encod закодированный пароль пользователя. Часто пароль хранится в отдельном файле, а здесь вместо него проставляется символ х. Если в этом поле стоит символ *, то данный пользователь в систему войти не может (используется для псевдопользователей)



UID Идентификатор пользователя, который наследуется порожденными им процессами. ROOT имеет UID=0.



GID Идентификатор первичной группы пользователя, который соответствует идентификатору в файле /etc/group, где содержится список имен пользователей-членов группы.



Комментарии Обычно здесь записывается истинное имя пользователя, здесь может быть записана дополнительная информация, например, телефон или e-mail пользователя, считываемые программой finger.



home-dir Базовый каталог пользователя, где он оказывается после входа в систему.



Shell Название программы, используемой системой в качестве командного интерпретатора (например, /bin/sh). Разные интерпретаторы используют разные скрипты инициализации (.profole, .login и т.д.).

В первой строке скрипта помещается строка #! /bin/sh, указывающая на тип и размещения интерпретатора. Поскольку скрипт исполняется интерпретатором, работает он медленно. Значение PID сохраняется в переменной $$, что можно использовать при формировании имен временных файлов, гарантируя их уникальность. Переменные $1, $2 и т.д. несут в себе значения параметров, переданных скрипту. Число таких параметров записывается в переменной $#.Результат работы скрипта заносится в переменную $?. Ненулевое значение $? свидетельствует об ошибке. В переменной $! Хранится PID последнего процесса, запущенного в фоновом режиме. Переменная $* хранит в себе все переменные, переданные скрипту в виде единой строки вида: “$1 $2 $3 …”. Другое представление переданных параметров предлагает переменная $@= “$1” “$2” “$3” …




Сообщения


Сообщения



Очереди сообщения являются составной частью UNIX System V. Процесс, заносящий сообщение в очередь, может не ожидать чтения этого сообщения каким-либо другим процессом. Сообщения имеют следующие атрибуты:

Тип сообщения

Длина данных в байтах

Данные (если длина ненулевая)

Очередь сообщений имеет вид списка в адресном пространстве ядра. Для каждой очереди ядро формирует заголовок(msqid_ds), где размещаются данные о правах доступа к очереди (msg_perm), о текущем состоянии очереди (msg_cbytes – число байтов msg_qnum – число сообщений в очереди), а также указатели на первое и последнее сообщение. Создание новой очереди сообщений осуществляется посредством системного вызова msgget:

#include <sys/types.h>

#include <sys/ipc.h>

#include e <sys/ipc.h>

int msgget( key_t key, int msgflag );

Эта функция выдает дескриптор элемента очереди, или –1 - в случае ошибки. Процесс может с помощью оператора msgsnd поместить сообщение в очередь, получить сообщение из очереди посредством msgrcv и манипулировать сообщениями с помощью msgctl.

Семафоры

Для управления доступом нескольких процессов к разделяемым ресурсам используются семафоры. Семафоры являются одной из форм IPC (Inter-Process Communication). Для обеспечения работы нужно обеспечить выполнение следующих условий:

Семафор должен быть доступен разным процессам и, по этой причине, находиться в адресной среде ядра.

Операция проверки и изменения семафора должна быть реализована в режиме ядра.

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

Разделяемая память

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


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



Файловая система



В настоящее время UNIX использует виртуальную файловую систему, которая допускает работу с несколькими физическими файловыми системами самых разных типов. Система S5FS занимает раздел диска и состоит из трех компонентов.

Суперблока, где хранится общая информация о файловой системе, о ее архитектуре, числе блоков, и индексных дескрипторов (inode).

Массива индексных дескрипторов (ilist), где записаны метаданные всех файлов системы. Индексный дескриптор содержит статусные данные о файле и информацию о расположении этих данных на диске. Ядро обращается к inode по индексу массива ilist. Один inode является корневым, через него происходит доступ к структуре каталогов и файлов после монтирования файловой системы.

Блоки данных файлов и каталогов. Размер блока кратен 512 байтам.

Индексный дескриптор (inode) несет в себе информацию о файле, необходимую для обработки метаданных файла. Каждый файл ассоциируется с одним inode. При открытии файла ядро записывает копию inode в таблицу in-core inode.

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

Имена файлов хранятся в специальных файлах, называемых каталогами. По этой причине любой реальный файл данных может иметь любое число имен. Каталог файловой системы представляет собой таблицу, каждый элемент которой имеет длину 16 байтов: 2 байта номер индексного дескриптора, 14 – его имя. Число inode не может превышать 65535. Имя файла в этой системе (S5FS) не должно превышать 14 символов.

имеет имя “..”.

При удалении имени файла из каталога номер соответствующего inode устанавливается равным 0.


Ядро не удаляет свободные элементы, по этой причине размер каталога при удалении файлов не уменьшается.

Новая файловая система FFS (Berkeley Fast File System) использует те же структуры длинные имена файлов (до 255 символов). Записи каталога имеют следующую структуру:

d_namlen - Длина имени файла

d_name[] - Имя файла

Имя файла имеет переменную длину, дополняемую нулями до 4-байтовой границы. Метаданные активных файлов, на которые ссылаются один или более процессов, представлены в памяти в виде in-core inode. В виртуальной файловой системе в качестве in-core inode выступает vnode. Структура vnode одинакова для всех файлов и не зависит от типа файловой системы. vnode содержит данные, необходимые для работы виртуальной файловой системы, а также характеристики файла, такие как его тип.

Получение описания инструкций (Help): man <имя объекта>

Уход из UNIX Ctrl-d или logout.



passwd
Смена пароля пользователя
Вызов редактора ed - строчный редактор; sed - потоковый редактор
pwd Выдача полного имени текущего каталога
clear Очистка экрана терминала.
ls [-флаги...] имя... Распечатка каталога

Флаги:

-a печатает все имена файлов в каталоге;
-c сортирует список файлов по времени последней модификации;
-d печатает информацию только о каталогах (эквивалентно -l);
-f для каждого подкаталога выводит его содержимое, этот флаг выключает все другие флаги;
-g вместо идентификатора владельца печатается идентификатор группы;
-l печатает полную информацию о файлах;
-r сортирует список в обратном порядке;
-s выводит размер файлов в блоках;
-t сортировка по времени;
-u сортирует список файлов по времени последнего доступа.
lc Вывод содержимого каталога по столбцам (аналогична ls, но присутствует не во всех системах);
Образование нового каталога mkdir
Например: mkdir A B (образует 2 каталога)

Переход из каталога в каталог cd
Возвращение в предыдущий каталог cd ..
Переход в параллельный каталог b cd ../b
Возврат в базовый каталог cd ../../
<


/p>
Удаление каталога rmdir <имя_каталога>
Доступ к каталогу. Проверка существования файлов и каталогов, а также установленных для них возможностей.





test <параметр> <файл>
Команда test позволяет также сравнивать целые числа (напр., test "$X" -eq "$Y"). <параметр> возвращает значение true, если файл существует и:

-b является блочным специальным файлом;
-c символьным специальным файлом;
-d каталогом;
-f обычным файлом (не каталогом);
-g установлен бит идентификатора группы;
-k второй промежуточный бит округления;
-r доступен для чтения;
-s имеет ненулевой размер;
-t[fds] открытый файл с дескриптором fsd связан с терминалом (по умолчанию fsd=1);
-u установлен бит идентификатора пользователя;
-w доступен для записи;
-x для исполнения.
cat [файл1 файл2 ...] Слияние файлов (если указано одно имя команда выводит содержимое на терминал, эквивалентно команде page)
Копирование файлов (файла в файл или файлов в каталог)

cp файл1 файл2 или cp файл1 файл2 .... файлN каталог.



uucp
делает то же, что и cp, но между двумя UNIX машинами в сети.
uucp [флаги] файл1 имя_ЭВМ!файл2

имя ЭВМ отделяется от имени файла с помощью "!". Перед именем файл2 необходимо указать также имя каталога или поставить "~", если оно неизвестно.

Например: /usr/ivanov/news или ~ivanov/news.
Флаги:

-m посылает сообщение отправителю о доставке файла1;
-n посылает аналогичное сообщение получателю.
Переименование файлов или каталогов

mv файл1 файл2 или mv каталог1 каталог2



Печать файлов



Печать содержимого одного или нескольких файлов c автоматическим разбиением на страницы и с заголовком на каждой странице;



pr [флаги]...[файл]...



Флаги:

-h задает заголовок;
-ln задает длину страницы в n строк (по умолчанию - 60);
-m Печатать все файлы одновременно в своих колонках;
-n в n колонок;
+n начиная со страницы n;
-t не печатать 5 строк заголовка и 5 последних строк страницы;
-wn задает ширину стр. в n символов (по умолчанию - 72);
<


/p>
more [файл] Отображает файл поэкранно.
Печать файлов одновременно с выполнением других операций



lpr [флаги]...[файл]...



Флаги:

-c cкопировать файл перед печатью;
-m отправить почтовое сообщение по завершении печати;
-n не сообщать по почте о завершении печати (по умолчанию);
-r удалить файл после печати.
lp [флаги] [файл_1, файл_2,....файл_N]



Флаги:

-d задает имя принтера;
-o служит для задания субпараметров печати;
-n[число] задает число копий печати;
-m выводит на терминал сообщение по завершении печати;
-q[приоритет] определяет уровень приоритета для запросов печати (максимальный - 0, минимальный -39);
-s блокирует сообщение "request идентификатор";
-R удаляет напечатанные файлы;
-L использует подключенный к вашему терминалу локальный принтер;
lprint эквивалент команды pr -L;
lpstat выдает сообщение о статусе принтера;
cancel отменяет запрос вывода на печать.
Сравнение файлов

Сравнение файлов и выдача отчета о различиях;



cmp [-l][-s] файл1 файл2



Флаги:

-l выдача полного списка различий;
-s выдача кода результата; (если равны - 0; неравны - 1; хотя бы один недоступен - 2);
Удаление файлов



rm [флаги] файл



Флаги:

-f если для файла запрещена запись/чтение;
-i удаление в интерактивном режиме; ( * означает - все файлы каталога);
-r * удаление всех файлов и подкаталогов;
Поиск файлов



find каталог ... аргументы ...



Просматриваются рекурсивно все подкаталоги для каждого указанного каталога и ищутся файлы отвечающие условиям, заданным в аргументах. Числовые аргументы со знаком "+" означают "больше чем", а числовой аргумент со знаком "-" "меньше чем". Аргументы - это условия поиска; любому аргументу предшествует знак "-", все аргументы считаются соединенными знаком "И". -o соединитель ИЛИ, перед каждым символом "ИЛИ" должен ставиться знак "\";

Допускаются аргументы:

-name имя файла имя файла совпадает с заданным;
-type c тип файла совпадает с с;
-links n файл имеет n связей;
-user имя файл принадлежит пользователю с данным именем;
-group имя файл принадлежит группе с именем;
-size n длина файла равна n блокам;
-inum n индекс файла равен n;
-mtime n последняя модификация файла была n дней назад;
-exec команда выполняется команда UNIX;
-ok команда то же, что и -exec, но печатается на терминале;
-print печатается имя текущего файла;
-newer файл текущий файл был модифицирован позже заданного
<


/p> Очистка индексного дескриптора



clri файл-система индекс...



Удаляет индексный дескриптор для файла, отсутствующего в каталогах.

Библиотекарь



ar флаги [имя] библиотека [файл...]



Флаги:

a указывает (совместно с r или m) на то, что файлы следует помещать после заданного файла;
b то же, что и a, но файлы размещаются перед заданным файлом;
c создание библиотечного файла;
d удалить файлы из библиотеки;
l поместить временные файлы библиотекаря в текущем каталоге;
m переместить файлы в конец библиотеки или вслед за указанным файлом;
p напечатать содержимое заданных файлов;
q добавить файлы в конец библиотеки;
r заменить файлы в библиотеке на новые. Если файлов нет, они просто добавляются;
t перечислить файлы, входящие в библиотеку;
u совместно с r указывает, что будет заменяться только те файлы библиотеки, которые были модифицированы раньше заданных файлов.
v печать дополнительной информации (вид действия, имя файла) применяется совместно с d, m, r, x;
x скопировать файлы в текущий каталог;
Построение таблицы с содержанием библиотеки



ranlib [библиотека]



Служит для подготовки работы редактора связей.

Установка кода защиты файла chmod код
chmod код_защиты файл ...

4000 разрешение смены идентификатора пользователя;

2000 разрешение смены идентификатора группы;

1000 сохранение образа файла после отсоединения всех процессов;

0400 разрешение чтения владельцу файла;

0200 разрешение записи владельцу файла;

0100 разрешение записи, чтения и выполнения владельцу;

0070 разрешение записи, чтения и выполнения группе;

0007 разрешение чтения, записи, исполнения всем.

Символьная форма позволяет установить биты кода защиты индивидуально и имеет вид:



[ugoa][+-=][rwxstugo], где

u владелец,
g группа,
o прочие,
a все категории пользователей (по умолчанию),
+ разрешить доступ,
- запретить доступ,
r чтение,
w запись,
x исполнение,
s смена идентификатора пользователя или группы,
t сохранение образа файла в области выгрузки,
ugo оставить текущее значение бита доступа.
<


/p> Проверка корректности каталогов



dcheck [индексы][файловая система]



Сравнивает счетчик числа связей в индексном дескрипторе с числом записей в каталогах, ссылающихся на данный дескриптор. Индексы генерируются командой icheck. Проверка распределения памяти в файловой системе



icheck [-s][-b блок...][файловая система]



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

Флаги:

-b выдача диагностических сообщений для заданных

блоков.

-s создание списка свободных блоков;

Генерация имен файлов по заданным индексам



nchek [-i индексы] [-a][-s][файловая система]



Генерирует полные имена файлов для заданного списка индексов файловой системы, осуществляет поиск имен поврежденных файлов.

Флаги:

-a печатает тот же список, что и для флага -i и дополнительно все файлы, имена которых начинаются с "." и "..".
-i печатает полный список файлов для индексов, перечисленных после данного флага.
-s печатаются только специальные файлы и файлы с установленным режимом смены идентификатора пользователя.
Создание файловой системы



/etc/mkfs [файловая система][размер]



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

Создание специальных файлов



/etc/mknod имя [c][b] тип устройство



Создание специальных файлов, располагающихся в каталоге /dev, где описываются характеристики драйверов устройств и файловых систем. Аргументы тип и устройство относятся к драйверу и к специальному входу в драйвер.

Монтирование файловой системы



/etc/mount файловая-система [-r] имя файла



Демонтирование файловой системы



/etc/umount файловая-система



Временная смена идентификатора пользователя



su [идентификатор]



Изменяет идентификатор пользователя, и выполняет операции, которые возможно было бы нельзя выполнить с другим идентификатором из-за отсутствия права доступа.


Для возврата к исходной среде следует нажать ctrl-d.



Модификация суперблока - sync



Освобождаются буферы и модифицируется файловая система на диске. Sync автоматически выполняется через заданный промежуток времени, задаваемый администратором.

Библиотекарь магнитной ленты (или дискеты)



tar [флаги][имя]



Сохраняет и восстанавливает файлы и каталоги с использованием магнитной ленты (или дискет).

Флаги:

c создает новую ленту для записи на нее файлов;
r заданные файлы записываются в конец ленты;
t печатает список файлов и каталогов, имеющихся на ленте, из числа заданных в команде;
x чтение с ленты заданных файлов или каталогов, если имеется несколько версий, читается последняя;
u заданные файлы добавляются на ленту, если их там нет или если это новые версии. Следующие флаги используются для модификации вышеприведенных функций.
b коэффициент блокирования при чтении и записи, по умолчанию = 1, максимальное значение = 20;
f следующий за f аргумент рассматривается как имя устройства вместо принятого по умолчанию /dev/mt?.
l обеспечивает выдачу сообщения, если при записи не удается получить доступ ко всем файлам;
m сообщает программе tar, что не следует изменять время модификации при записи файлов на ленту;
v печать имен всех файлов и каталогов, при выполнении данной операции;
w печатает наименование заданного действия и имя файла, после чего ожидается ответ пользователя. При "y" действие выполняется.
0,...,7 определяет номер устройства, на котором установлена лента, по умолчанию 1.
Смена владельца файла chown



chown имя файл



Смена группы chgrp



chgrp группа файл



Изменение направления ввода/вывода

< > задает направление ввода/вывода;
<< >> задает направление, но добавляет к уже имеющемуся;
| служит для передачи данных от одной команды к другой.
tr [-cds][строка_1][строка_1]



Считывает данные из стандартного ввода. Символы, не совпадающие с символом в аргументе "строка_1", передается на стандартный вывод без изменения.


Символы же, совпадающие с символом в аргументе "строка_1", заменяются на соответствующие символы из аргумента "строка_2".

Асинхронное выполнение команд

& поставленное в конце командной строки позволяет продолжить работу, не дожидаясь окончания выполнения команды.
wait вводится, когда нужно подождать завершения какого-то процесса.

Появление приглашения после ввода команды wait указывает на завершение всех запущенных ранее процессов.



at время [дата_и_время][приращение] список_команд



Команда планирования выполнения заданий.

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



at -r идентификатор_задания



Отменяет запрос.



batch планирует задания на то время, когда это будет позволять система.

Системные команды



mail имя файла или mail [-r] [-q] [-p] [-f файл]



Обращение к почтовому серверу.

Флаги:

-f файл используется в качестве почтового ящика;
-p печать почты;
-q QUIT (прерывание процедуры);
-r упорядочение - раньше посланное сообщение читается раньше; без флага - обратный порядок.
При чтении почты можно пользоваться командами:

d удаление данного почтового сообщения;
m [имя] переслать сообщение указанному пользователю;
p напечатать сообщение еще раз и вернуться к предшествующему сообщению;
_ вернуться к предыдущему сообщению;
s [файл] записать сообщение в файл;
ctrl/d вернуть сообщение в почтовый ящик и завершить выполнение команды mail (= q).
x выход без изменения почтового ящика;
! временный выход в SHELL;
? напечатать список команд mail.
Сообщение всем работающим пользователям



wall администратор что-то сообщает всем.

Конец сообщения по ctrl/d.

Посылка сообщения другому пользователю



write имя [терминал]



Разрешение или отмена сообщений



mesg [y] [n] (флаги - "y" и "n") присылаемых другими пользователями.

Команды обработки файлов



comm [-[123]] файл1 файл2
поиск одинаковых и разных строк в файлах, флаги "123" обозначают номера колонок. Результат печатается в трех колонках:
<


1 - строки встречаются только в файле1;

2 - строки встречаются только в файле2;

3 - строки встречаются в обоих файлах.

Преобразование файла



dd [аргументы]
позволяет задавать входной и выходной файлы, указывать виды преобразований. Обычно используется для магнитных лент.
Аргументы:

if=имя имя входного файла;
of=имя имя выходного файла;
ibs=n размер входного блока в байтах (512 по умолчанию);
obs=n размер выходного блока (512 по умолчанию);
bs=n размер входного и выходного блоков;
cbs=n размер буфера преобразования в байтах;
skip=n перед копированием пропустить n входных записей;
files=n скопировать n файлов с входной ленты;
seek=n установить выходной файл на запись с номером n перед началом копирования;
count=n скопировать n входных записей.
Поиск строк с заданным шаблоном



grep [флаг] ... выражение [файл]



Служит для поиска соответствующих выражений (строк) в одном или нескольких файлах.

Флаги:

-b перед каждой обнаруженной строкой печатается номер блока, где она содержится;
-c печатается только число строк, содержащих шаблон;
-e используется перед шаблоном, который начинается с символа "-";
-h не печатаются имена файлов перед строками;
-l печатаются имена файлов, содержащие искомые строки;
-n перед каждой обнаруженной строкой печатается ее порядковый номер в файле;
-s вырабатывается только статус результата выполнения команды;
-v печатаются все строки, не содержащие шаблона;
-y строчные буквы в шаблоне считаются совпадающими как со строчными, так и прописными в файле.
egrep модифицированная версия grep.
fgrep упрощенная версия команды grep. Ищет только фиксированные строки, но работает быстрее чем grep.
Восьмеричный дамп файла



od[-флаги] файл[[+] смещение [.][b]].



Флаги:

-b каждый байт файла интерпретируется как восьмеричное число;
-c байты интерпретируются как символы ASCII, неграфические символы выдаются в виде:
  нулевой байт \0
  возврат на шаг \b
  перевод формата \f
  перевод строки \n
  возврат каретки \r
  горизонтальный TAB \t
  остальные ddd
<


/p>
-d каждое слово интерпретируется как десятичное число;
-o слова интерпретируются как восьмеричные числа;
-x слова интерпретируются как шестнадцатеричные числа.
Сохранение (зашита) файловой системы



dump [флаги[аргумент...] файловая система]



Используется администратором для обеспечения сохранности всех данных в файловой системе.

Флаги:

d задание плотности записи на ленту.
f задает устройство для защиты;
s задание размера ленты;
u запись времени защиты;
0-9 уровень защиты;
Восстановление файловой системы



restor флаги [аргументы]



Чтение магнитных лент, записанных командой dump.

Разбиение файла на части



split [-n][файл[имя]]



разбивает файл на части по n строк (по умолчанию n=1000).

Если задано имя выходного файла, то генерируется последовательность файлов с данным именем и буквами aa, ab, ac,... в конце. Если имя выходного файла не задано, используется имя "x".

Подсчет числа слов



wc[-lwc] [файл]



Определяет число строк, слов и символов в одном или более файлов. Строки в файле разделяются символом "\n", слова - пробелами, горизонтальной табуляцией или переводом строки.

Флаги:

l подсчет числа строк в файле;
w подсчет числа слов в файле;
c подсчет числа символов в файле;
Вывод одинаковых строк файла



uniq [-флаги[+n][-n]][вход][выход]



Находит одинаковые соседние строки файла. По умолчанию все одинаковые строки кроме одной удаляются.

Флаги:

c одинаковые строки удаляются, но в начале строки ставится их исходное число;
d выводятся только одинаковые строки;
-n первые n полей при сравнении пропускаются;
+n перед сравнением пропускаются первые n символов;
u выводятся только разные строки.
Обнаружение различий в файлах



diff[-флаги]файл1 файл2



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

Позволяет экономить место при хранении ряда версий файла.

Флаги:

-b игнорируются все пробелы и символы табуляции в конце строки, любые комбинации таких символов считаются эквивалентными;
-e выдает последовательность команд редактора ed, с помощью которых первый файл может быть сделан эквивалентным второму.
-f вырабатывает список изменений;
-h быстро обнаруживает различия, но не всегда корректно.
<


/p> Сортировка и слияние файлов

sort[-флаги...][+поз1[-поз2]]...[-o имя][-T каталог][имя]...

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

Флаги:

b при сравнении полей игнорируются пробелы и табуляции в начале строки;
c проверяется, отсортирован ли входной файл в соответствии с заданными правилами;
d "словарная сортировка": в сравнении участвуют только буквы, цифры и пробелы;
f прописные буквы воспринимаются как строчные;
i при нечисловых сравнениях игнорируются символы, не входящие в диапазон ASCII 040-0176;
m слияние файлов, которые предполагаются отсортированными;
n сортировка по арифметическому значению;
o имя, идущее после воспринимается как имя выходного файла;
r задается обратный порядок сортировки;
tx буква t указывает на то, что вместо принятого по умолчанию пробела в качестве разделителя используется горизонтальная табуляция;
T задает имя каталога, где размещаются временные файлы;
u если одному ключу соответствует несколько строк, выводится только одна из них.
Управление выполнением программы

Вывод аргументов

echo[-n][аргумент]

Выводит в стандартный файл заданные ей аргументы, разделяя их пробелами и завершая вывод переводом строки. Служит для сообщения о выполнении последовательности команд. Флаг -n предоставляет возможность отменить перевод строки после вывода аргументов.

Уничтожение процесса

kill [-флаг] процесс...

единственный флаг, допустимый в команде kill, - номер сигнала, например флаг -9 безусловно ликвидирует процесс.

Задержка выполнения команды

sleep время

Задерживает выполнение команды на время, заданное в секундах.

Понижение приоритета команды



nice [-число]команда[аргументы]



Позволяет выполнить другую команду, с более низким приоритетом. Аргумент-число определяет степень понижения приоритета. Чем больше число, тем меньше приоритет.

Дублирование стандартного вывода



tee [флаг]...[флаг]...



команда читает информацию из стандартного ввода и выводит ее одновременно на терминал и в заданные файлы.



Флаги:

-i игнорировать прерывания;
-a вывод будет добавлен к файлу, вместо принятого по умолчанию создания нового файла.
Печать и установка времени



date [ггммддччмм][.сс]]



гг год
мм месяц
дд день
чч час
мм минуты
сс секунды
Кто работает в системе?



who [файл] [am I]



выдает список всех пользователей, работающих в данный момент, и имена их терминалов. [файл] - имя файла, где хранится информация о текущих пользователях. По умолчанию /etc/utmp. [am I] - дает возможность сообщить под каким именем вы вошли в систему.

Получение имени терминала



tty печатает имя терминала, за которым вы работаете.

Состояние процессов



ps [флаг...][файл]



предоставляет информацию об активных процессах в системе.

Флаги:

a выдается информация обо всех процессах, управляемых терминалами.
x выдается информация обо всех процессах, не управляемых терминалами (системных).
l выдается полная информация с указанием состояния каждого процесса.
PID идентификатор процесса;
TTY номер терминала;
CMD команда, выполняемая процессом.
UID идентификатор пользователя;
PPID идентификатор процесса, породившего данный процесс;
CPU системная составляющая приоритета процесса;
PRI приоритет процесса, чем больше, тем ниже;
NICE пользовательская составляющая приоритета процесса;
ADDR для резидентного процесса адрес в памяти, в противном случае на диске;
SZ размер образа процесса в блоках;
WCHAN событие, которого ожидает процесс с состоянием S или W; пустое поле означает, что процесс работает.
pstat сообщает о статусе системы.
Сведения об использовании диска

du[-s][-a][имя...]

Флаги:

-s выводит только общее количество блоков для всех файлов.
-a печатает информацию для каждого файла.
Сведения о свободных блоках на диске



df [файловая система]



выводит количество блоков, доступных в заданной файловой системе.

Определение типа файла

file имя...

Определяется тип файла: .OBJ, .C, ASCII и т.д.

Печать календаря



cal [месяц]год





Установка функций терминала



stty [аргументы...]



позволяет узнать состояние любого терминала и настроить его на требуемый режим работы.

Аргументы:

even включить контроль по четности;
-even выключить контроль по четности;
odd включить контроль на нечетность;
raw включить прозрачный режим ввода;
nl концом строки считать символ "перевода строки";
-nl концом строки считать символ "возврат каретки";
echo отображать на экране каждый вводимый символ;
-echo не отображать вводимые символы;
lcase преобразовывать прописные символы в строчные;
tabs заменить символы табуляции на пробелы при выводе;
erase установит следующий за erase символ в качестве символа стирания;
kill установит следующий за kill символ в качестве символа отмены;
Установка табуляции



tabs [аргументы]

Устанавливает параметры табуляции для любого терминала.

Аргументы:

-n используется, когда левое поле текста не выравнивается;
терминал описывает тип рабочего терминала.


uncompress
разархивирует файлы, имеющие расширение .Z;


uncompress имя_файла
работает для файлов без расширения .Z.


uuencode файл указатель
используется для передачи двоичных (иногда и русских) файлов по электронной почте. Преобразует двоичный файл в ASCII-формат. Параметр указатель используется при декодировании и служит для указания маршрута и имени файла для команды uudecode. Результат кодировки можно положить в другой файл или непосредственно переслать по электронной почте.


uudecode файл
используется для передачи двоичных (иногда и русских) файлов по электронной почте. Преобразует двоичный файл в ASCII-формат. Параметр указатель используется при декодировании и служит для указания маршрута и имени файла для команды uudecode. Результат кодировки можно положить в другой файл или непосредственно переслать по электронной почте.


nslookup
выводит IP-информацию о домене;


crypt
кодирует файл по заданному пользователем ключу


uuname
выводит список узлов, известных данному узлу;


uux
выполняет команды на удаленной машине UNIX.
<


/p>

номеров UDP-портов приведена



Рисунок 4.4.2.2. Псевдозаголовок, используемый при расчете контрольной суммы

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


Так как максимальная длина IP-дейтограммы равна 65535 байтам, максимальная протяженность информационного поля UDP-дейтограммы составляет 65507 байт. На практике большинство систем работает с UDP-дейтограммами с длиной 8192 байта или менее. Детальное описание форматов, полей пакетов и пр. читатель может найти в RFC-768.



Данные из стандартного вывода добавляются



Таблица 2. Перенаправление потоков ввода/вывода


Обозначение Выполняемая операция
>файл Стандартный вывод перенаправляется в файл
>>файл Данные из стандартного вывода добавляются в файл
<файл Стандартный ввод перенаправляется в файл
p1|p2 Вывод программы p1 направляется на вход программы p2
n>файл Перенаправление вывода из файла с идентификатором n в файл
n>>файл Тоже, что и в предыдущей строке, но данные добавляются к содержимому файла
n>&m Объединение потоков с идентификаторами n и m
<<str “Ввод здесь” – используется стандартный ввод до подстроки str. При этом осуществляется подстановка метасимволов интерпретатора
<<\str То же, что и в предшествующей строке, но без подстановки.

Символ | иногда называется конвейером. Например, команда:

ps – ef | grep proс

осуществляет вывод данных о конкретном процессе proс. Несколько более корректна команда:

ps – ef | grep proс grep –v grep

так как в потоке, формируемом командой ps, присутствуют две строки, содержащие proс - строка процесса proс и строка процесса grep с параметром proс.
Для запуска выполнения команды в фоновом режиме достаточно завершить ее символов &.
Виртуальная память процесса состоит из сегментов памяти. Размер, содержимое и размещение сегментов определяется самой программой (например, применением библиотек). Исполняемые файлы могут иметь формат COFF (Common Object File Format) и ELF (Executable and Linking Format).
Функция main() является первой, определенной пользователем. Именное ей будет передано управление после формирования соответствующего окружения запускаемой программы. Функция main определяется следующим образом.

main(int argc, char *argv[], char *envp[]);

Аргумент argc определяет число параметров, переданных программе. Указатели на эти параметры передаются с помощью массива argv[], так через argv[0] передается имя программы, argv[1] – несет в себе первый параметр и т.д. до argv[argc-1]. Массив envp[] несет в себе список указателей на переменные окружения, передаваемые программе. Переменные представляют собой строки имя=значение_переменной.
В среде UNIX существует два базовых интерфейса для файлового ввода/вывода.
Интерфейс системных вызовов, непосредственно взаимодействующих с ядром ОС.
Стандартная библиотека ввода-вывода.
С файлом ассоциируется дескриптор, который в свою очередь связан с файловым указателем смещения, начиная с которого будет произведена последующая операция чтения/записи. Каждая операция чтения или записи увеличивает этот указатель на число переданных байтов. При открытии файла указатель принимает значение нуль.

Блок-схема кодирования/декодирования человеческого голоса (Vocoder)



Рисунок 2.4.2.1. Блок-схема кодирования/декодирования человеческого голоса (Vocoder)




Формат пакета IEEE



Рисунок 6.2.1 Формат пакета IEEE 802.10


Поле чистый заголовок включает в себя три субполя. MDF (Management Defined Field) является опционным и содержит информацию о способе обработки PDU. Четырехбайтовое субполе said (Security Association Identifier) - идентификатор сетевого объекта (VLAN ID). Субполе 802.10 LSAP (Link Service Access Point) представляет собой код, указывающий принадлежность пакета к протоколу vlan. Предусматривается режим, когда используется только этот заголовок.

Защищенный заголовок копирует себе адрес отправителя из mac-заголовка (MAC - Media Access Control), что повышает надежность.

Поле ICV (Integrity Check Value) - служит для защиты пакета от несанкционированной модификации. Для управления VLAN используется защищенная управляющая база данных SMIB(security management information base).

Наличие VLAN ID (said) в пакете выделяет его из общего потока и переправляет на опорную магистраль, через которую и осуществляется доставка конечному адресату. Размер поля data определяется физической сетевой средой. Благодаря наличию mac-заголовка VLAN-пакеты обрабатываются как обычные сетевые кадры. По этой причине VLAN может работать в сетях TCP/IP (Appletalk или Decnet менее удобны). В среде типа Netbios работа практически невозможна. Сети ATM прозрачны для VLAN. Протокол VLAN поддерживается корпорацией cisco, 3com и др.. Хотя VLAN ориентирован на локальные сети, он может работать и в WAN, но заметно менее эффективно. В последнее время разработано большое число специальных программных средств сетевой безопасности. Среди них Firewall занимает лидирующее положение.

В разделе “Повторители, мосты (бриджи), мультиплексоры, переключатели и маршрутизаторы” упоминалась технология виртуальных сетей (vlan). Созданная для целей безопасности эта техника оказалась полезной для структуризации локальных сетей, приводящей к улучшению их рабочих характеристик. В настоящее время доступны переключатели, маршрутизаторы и даже концентраторы, поддерживающие виртуальные сети.

Виртуальные сети просто необходимы, когда локальная сеть в пределах одного здания совместно используется несколькими фирмами, а несанкционированный доступ к информации желательно ограничить. Принцип построения виртуальной сети показан на Рисунок 6.2.2.



Кодировщики голоса (Vocoder)



2.4.2 Кодировщики голоса (Vocoder)

Эта технология находит применение в военных системах связи, в диспетчерских службах, а также в системах пейджерной связи. Разработчики преобразователей голоса учли особенности работы горла, голосовых связок и всего речевого аппарата. Звонкие и глухие звуки воспроизводятся здесь различными способами (с помощью импульсного генератора и генератора шума, соответственно). Блок-схема преобразователя звука типа вокодер показана на Рисунок 2.4.2.1. Исходный спектр человеческого голоса здесь делится на ряд субдиапазонов (на Рисунок 2.4.2.1 их число равно16) по 200 Гц каждый. Эти субдиапазоны выделяются узкополосными фильтрами, за которыми следуют выпрямители и фильтры низких частот (20 Гц). Выходные сигналы этих фильтров мультиплексируются и преобразуются в цифровую форму. Частота стробирования этих сигналов составляет примерно 50 Гц. Разрядность АЦП в этом случае может составлять 3 бита. На принимающей стороне осуществляется цифро-аналоговое преобразование (ЦАП) и мультиплексирование. Сбалансированные амплитудные модуляторы, управляемые ЦАП и переключателем, выдают сигналы на узкополосные фильтры. Все эти сигналы смешиваются в сумматоре, а результат воспроизводится.

Не трудно видеть, что в случае схемы, показанной на Рисунок 2.4.2.1, необходимое быстродействие передающей линии составляет 3 бита * 50 Гц * 16 каналов = 2,4 Кбит/с. Дальнейший выигрыш может быть получен за счет цифрового сжатия. Число каналов (фильтров) и ширина пропускаемой полосы частот может варьироваться, соответственно будет меняться и качество воспроизведения звука. Минимально возможная полоса пропускания передающей линии, при которой значение передаваемого текста еще воспринимается правильно, лежит ниже 1 Кбит/с.

Предшествующая фраза, включая пробелы и знаки препинания, содержит около 150 символов. Для ее произношения требуется около 10 сек (15 символов в сек). Но даже вокодеру потребуется для этого предложения передать не менее 10000 бит. Откуда такое отличие? Во-первых, человеческая речь индивидуальна и эта фраза, произнесенная разными людьми, будет звучать по-разному, кроме того, существует эмоциональная окраска, которой практически лишена буквенная запись.
Во-вторых, даже самая совершенная современная система сжатия звуковой информации не идеальна и остается широкое поле для дальнейшего совершенствования. Пути могут быть разными в зависимости от поставленной задачи. Если требуется передать только информацию, следует преобразовать звук в символьную (буквенную) форму, передать эти данные в цифровом виде, а на принимающей стороне осуществить обратное преобразование. Само буквенное представление может быть также подвергнуто некоторому сжатию, но это неизбежно увеличит задержку воспроизведения. В сущности, данная схема является развитием идей, заложенных в вокодере.

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


Оборудование, необходимое для видеоконференций



Рисунок 2.9.1. Оборудование, необходимое для видеоконференций


Для проведения видеоконференции необходимо иметь цифровой канал с пропускной способностью не менее 56-128кбит/с. Если канал не позволяет, можно ограничиться аудио телеконференцией (см. раздел IP-phone). Схеме оборудования, необходимого для видеоконференции показано на Рисунок 2.9.1.

Помимо стандартного оборудования рабочей станции (как правило, под ОС UNIX) требуется интерфейс для подключения видеокамеры и микрофонов. Этот интерфейс обычно снабжается аппаратной схемой сжатия видео и аудио данных. Многие современные мультимедиа интерфейсы снабжены входами для видеокамеры. Из обязательного оборудования на Рисунок 2.9.1 не показаны наушники и звуковые колонки. Полезным дополнением может служить сканнер, который позволит с высоким разрешением передать изображения документов или чертежей, видеомагнитофон, а также видео проектор для отображений принятого изображения на экране или телевизор с большим экраном.

Видеоконференции обеспечивают не только "живое" общение партнеров, но также оперативное обсуждение и редактирование чертежей и документов. При этом разрешающая способность может превышать в 10-100 раз ту, которая доступна для факсов.

Реализовать видеоконференцию можно разными путями, из них два наиболее реальны:

1.

Использование оборудования, каналов и программного обеспечения ISDN. Полоса и качество здесь гарантируются, но стоимость весьма высока

2.

Применение каналов Интернет, соответствующего (обычно общедоступного) программного обеспечения и оборудования общего применения. Вариант относительно дешев, но качество здесь пока не гарантируется, ведь информационный поток при проведении сеанса конкурирует с потоками от других процессов в Интернет

При видеоконференциях используется технология codec (coder/decoder) для выделенных и телефонных коммутируемых линий (>56 Кбит/с, интерфейс V35), применим и режим коммутации пакетов (multicast backbone, >256 Кбит/с). Перечень стандартов, регламентирующих протоколы видеоконференций можно найти в следующем разделе (2.9.1).
Но базовым протоколом для работы в локальных сетях, где не гарантируется нужный уровень qos), является h.323 (1996-98 гг.; вторая дата относится к принятию версии 2). Этот стандарт обеспечивает видеоконференции для соединений точка-точка и для многоточечных топологий в рамках стека протоколов tcp/ip, он регламентирует и принципы сжатия видео и аудио информации. Привлекательность стандарта заключается в том, что он применим к уже существующей инфраструктуре телекоммуникаций с широкими вариациями задержек отклика. Способствует этому возрастающая пропускная способность локальных (fast ethernet и gigabit ethernet) и региональных сетей (SDH, ATM, FDDI, Fibre Channel и т.д.). Способствуют этому как новейшие протоколы из семейства IP – RTP и RSVP, так и поддержка H.323 такими компаниями как Intel, Microsoft, Cisco и IBM. H.323 не привязан ни к одной операционной системе и не предполагает использования какого-либо специализированного оборудования. На Рисунок 2.9.2 показана структура системы H.323 и основных ее компонентов.


Пример реализации системв IP-телефонии



Рисунок 2.4.3.1. Пример реализации системв IP-телефонии


На рисунке MVW-модуль (Multiflex Voice/WAN), включаемый в маршрутизатор, например, CISCO-3662, служит для связи с общедоступной телефонной сетью. Если сеть “А” размещена в Рио-де-Жанейро, а “В” в Москве, то любой клиент нижней сети сможет разговаривать с клиентом в Рио “бесплатно”, а с клиентами телефонных сетей “А” и “B” по локальным тарифам. В левой части рисунка показаны телефонные аппараты, которые подключаются непосредственно к сегменту локальной сети. Такие приборы уже поступили в продажу.

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





Рисунок 6.2.2. Схема переключателя (или концентратора) с поддержкой VLAN.


Для формирования VLAN необходимо устройство, где возможно осуществлять управление тем, какие порты могут соединяться. Например, пусть запрограммирована возможность пересылки пакетов между портами 1, 3 и 6, 2 и 5, а также между портами 4, 7 и 8. Тогда пакет из порта 1 никогда не попадет в порт 2, а из порта 8 в порт 6 и т.д. Таким образом, переключатель как бы разделяется на три независимых переключателя, принадлежащих различным виртуальным сетям. Управление матрицей переключения возможно через подключаемый из вне терминал или удаленным образом с использованием протокола SNMP. Если система переключателей, концентраторов (и возможно маршрутизаторов) запрограммирована корректно, возникнет три независимые виртуальные сети.

Данная технология может быть реализована не только в рамках локальной сети. Возможно выделение виртуальной сети в масштабах Интернет. В сущности, идея создания корпоративных сетей в Интернет (ИНТРАНЕТ) является обобщением идей виртуальных сетей на региональные сети.

Такая корпоративная сеть должна иметь один шлюз для входа в Интернет. Такой шлюз может выполнять функции Firewall, решая проблемы безопасности корпоративной сети.



Схема шлюза IP/GSTN



Рисунок 2.9.4. Схема шлюза IP/GSTN


Узел управления доступом (gatekeeper) является центральным блоком сети H.323. Через него проходят все запросы обслуживания, при этом он выполняет функцию виртуального переключателя. Узел управления доступом осуществляет преобразование имен терминалов и шлюзов в их IP и IPX-адреса в соответствии со спецификацией RAS. Например, если администратор сети установил верхний предел на число участников конференции, при достижении этого порога узел управления доступом может отказать в установлении соединения. Совокупность терминалов, шлюзов и блоков MTU, управляемая общим блоком доступа, называется зоной H.323. Узел управления доступом может опционно маршрутизовать запросы H.323. Разработчики иногда совмещают функции шлюза, MCU и узла управления доступом, возможно независимое совмещение функций MCU и узла управления доступом. К числу обязательных функций узла управления доступом относится.

преобразование адресов (например, из стандарта E.164 в транспортный формат)

осуществление контроля доступа к локальной сети с использованием сообщений Admission Request, Confirm и Reject (возможен режим разрешения доступа для всех запросов)

управление полосой пропускания (поддержка сообщений Bandwidth Request, Confirm и Reject)

Управление зоной. Реализация всех вышеперечисленных функций для MCU, шлюза и терминалов, зарегистрированных в зоне.

Определены некоторые опционные функции узла управления доступом:

обработка запросов управления Q.931

осуществление авторизации терминалов (Q.931), допускаются ограничения доступа на определенные периоды времени

управление запросами (контроль занятости терминалов и использования полосы пропускания)

Для организации конференций с числом участников три и более используется блок многоточечного доступа (MCU). MCU включает в себя многоточечный контроллер (MC) и многоточечный процессор (MP). MC осуществляет согласование рабочих параметров терминалов для обеспечения совместимости при передаче видео и аудио информации в рамках протокола H.245.
Многоточечный контроллер управляет также ресурсами каналов, при этом поддерживается как уникастный, так и мультикастный обмен. Все терминалы посылают аудио, видео и данные MCU в режиме соединения точка-точка. Управляющая канальная информация H.245 передается непосредственно в MC. MP может выполнять перекодировку в случае использования кодеков различного типа. Конференция может быть организована в централизованном (все обмены идут через MCU) и децентрализованном режиме, когда терминалы непосредственно взаимодействуют друг с другом. Терминалы используют протокол H.245, для того чтобы сообщить MC, сколько видео- и аудио- потоков они могут обработать одновременно. MP может осуществлять отбор видеосигналов и смешение аудио-каналов при децентрализованной многоточечной конференции. Допускается и смешенный режим, когда одновременно реализуется централизованная и децентрализованная схема обменов.

Новейшая версия H.323 (v2) за счет аутентификации и шифрования/дешифрования обеспечивает безопасность и конфиденциальность (перехват в промежуточных узлах становится невозможным). Более подробно возможности версии 2 изложены в документе http://www.databeam.com/h323/.



Звуковой сигнал передается в оцифрованной и сжатой форме. Алгоритмы компрессии, поддерживаемые H.323, соответствуют требованиям стандартов ITU. Терминалы H.323 должны быть способны работать со стандартом компрессии голоса G.711 (56 или 64 Кбит/c). Голосовой кодек должен следовать рекомендациям G.723, а видео кодек должен соответствовать стандарту H.261 (поддержка H.263 является опционной, этот стандарт обеспечивает более высокое качество изображения). В таблице 2.9.1 приведены форматы для видео-конференций ITU.


Структура системы Hи основных ее компонентов



Рисунок 2.9.2. Структура системы H.323 и основных ее компонентов


H.323 определяет четыре главных составляющих коммуникационной системы:

Терминалы

Шлюзы

Блоки многоточечного управления

Системы управления доступом (gatekeepers)

Терминалы служат для предоставления пользователям определенных услуг и обеспечивают двухсторонний обмен данными в реальном масштабе времени. Все терминалы H.323 должны также поддерживать стандарт H.245, который служит для выбора параметров канала. Структура терминала показана на Рисунок 2.9.3.



323 являются видео кодеки, протоколы



Рисунок 2.9.3. Структура терминала H.323



Интерфейс RAS (registration/admission/status) служит для взаимодействия с блоком доступа (gatekeeper) и поддерживает протоколы RTP/RTCP. Опционными частями H. 323 являются видео кодеки, протоколы для проведения информационных конференций (T.120) и возможности поддержания многоточечной связи (mcu). Внешний шлюз также является опционным элементом конференций H.323. Шлюз может выполнять функции интерфейса для согласования с требованиями других форматов, например, H.225 – H.221 или других коммуникационных процедур, например, H.245 – H.242. Типичным шлюзом можно считать соединитель H.323 с коммутируемой телефонной сетью (GSTN). Блок схема такого шлюза показана на Рисунок 2.9.4.

Данный шлюз устанавливает аналоговую связь с терминалами GSTN, с терминалами H.320 по каналам ISDN и с терминалами H.324 по сети GSTN. Терминалы взаимодействуют со шлюзом через протоколы H.245 и Q.931. Применяя соответствующую перекодировку, можно обеспечить работу шлюза H.323 с терминалами, поддерживающими протоколы V.70, H.322, H.310 и H.321. Многие функции шлюза не стандартизованы, к их числу, например, относится нумерация подключенных терминалов.


Пакетная техника обеспечивает удовлетворительное качество



Таблица 2.9.1


Формат картинки для видео-конференции Размер изображения в пикселях H.261

H.263

Sub-QCIF

128*96

не специфицировано

необходимо

QCIF

176*44

необходимо

необходимо

CIF

352*288

опционно

опционно

4CIF

702*576

-

опционно

16CIF

1408*1152

-

опционно


Видеоконференции реализуемы на ЭВМ IBM/PC [1,2], Mackintosh, SUN, HP, DEC. Пакетная техника обеспечивает удовлетворительное качество изображения и звукового сопровождения при низкой загрузке канала и малой вероятности ошибок при передаче пакетов. Достижимое сжатие видеосигнала - 1000:1, звукового 8:1.

Например, система SPARC classic M позволяет передавать по сети Ethernet до 30 кадров в секунду при разрешении 768x576 точек (PAL). Рассмотренное оборудование может использоваться не только для "дальней" связи, но для коллективного редактирования документов и чертежей в пределах одного предприятия, используя локальную сеть. Это может найти применение при реализации систем САПР больших предприятий. Для компрессии применяются методы CellB, JFPEG, MPEG1, Capture (YUV, RGB-8).

Наиболее популярные программные продукты для телеконференций: vic, vat, nv, wb, sd, ivs. (см. http://www.anl.gov/linda/video.html.)

Такие программные средства как VAT (Visual Audio Tool, ftp.ee.lbl.gov), nevot (network voice terminal, gaia.cs.umass.edu:/pub/hgschulz/nevot), VIC (Video Conference), IVS (INTRA Videoconferencing System, avahi.inria.fr:/pub/videoconference), NV (Net Video, beta.xerox.com:/pub/net-research) или wb (whiteboard, ftp.ee.lbl.gov) базируются на утилитах X11, они позволяют пользователю осуществить связь ЭВМ-ЭВМ или сессии с большим числом участников по каналам Интернет. Поддерживаются следующие схемы кодирования и передачи данных: PCM (64 Кбит/с), DVI, GSM и LPC (8 Кбит/с). В wb имеется возможность импорта файлов Postscript (обычно используемых для прозрачек). При этом достигается разрешение 640*512, число цветов равно 256, число кадров 2-20, коэффициент сжатия информации ~20:1, а требуемая полоса пропускания канала >128 Кбит/с.


Эти параметры не идеальны. Желательно вдвое большее разрешение, число цветов должно быть равно 16 миллионам, а частота кадров 25-50, но это требует существенно большей пропускной способности каналов (> 2 Мбит/с). Но прогресс в области быстродействия каналов связи столь стремителен....

Система mmcc (Multimedia Conference Control program, ftp.isi.edu:confctrl/mmcc.tar.Z) во многом аналогична описанным выше, она позволяет клиенту осуществить вызов нужного партнера. Весьма полезной утилитой является SD (Session Directory, ftp.ee.lbl.gov:sd.tar.Z), которая может запускать приложения, необходимые для проведения видео конференций.

Пакет CUSeeMe (gated.cornell.edu:/pub/video/Mac.CU-SeeMe0.60b1) предназначен для персонального общения через Интернет, он работает на IBM/PC и MAC, требует 4 Мбайт оперативной памяти. Один кадр передается за 6-7 сек при полосе 28,8 Кбит/с, разрешение 320*240 пикселей. Такое качество соответствует скорее видео телефону. На экране предусмотрена область прокрутки, где можно напечатать какой-либо текст. Этим список доступных программных продуктов не исчерпывается. Приведенные здесь краткие описания даны лишь в качестве примеров.

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

Для экспериментов с передачей звука и изображения группой IETF (Internet Engineering Task Force) была сформирована структура мультикастинг-сети MBONE. MBONE (Multicast Backbone, до 300 Кбит/с) представляет собой виртуальную сеть, построенную из уникаст-туннелей, которые функционируют поверх Интернет. MBONE составляет около 3,5% от всего Интернет. Рабочие станции для доступа к MBONE должны поддерживать IP-мультикастинг (см. RFC-1112 "Host Extensions for IP Multicasting"). Следует иметь в виду, что не все маршрутизаторы поддерживают мультикастинг.

При работе с MBONE отправитель не должен знать, кто является получателем, а требуемая пропускная способность канала не зависит от того, обслуживается один клиент или 100.

Требуемая полоса канала для видеоконференций определяется необходимой разрешающей способностью и частотой кадров.>

Таблица



Таблица 2.4.3.1.




Пропускная способность
[бит/с]
Частота стробирования
[1/с]
9600 4000
14400 6000
19200 8000
28800 11000

Для подключения к сети ip-phone необходима мультимедийная карта, микрофон, динамики (или наушники), 8 Мбайт оперативной памяти, доступ к Интернет и соответствующее программное обеспечение. Качество передачи звука зависит от загруженности IP-канала. В качестве транспорта используется протокол UDP. Для обеспечения высокого качества звука нужна гарантированная ширина IP-канала, ведь задержанные сверх меры UDP-дейтограммы теряются безвозвратно, что и приводит к искажениям. Внедрение протоколов, гарантирующих определенную ширину канала сделают IP-phone значительно более привлекательным. Многие компании уже предлагают такое оборудование и программы. Программы и описания этого вида услуг можно найти по адресам:
ftp://cs.ucl.ac.uk/mice/videoconference

http://www.pulver.com/netwatch

http://www.planeteers.com

http://www.newparadigm.com

http://www.vocaltec.com

http://www.itelco.com

http://www.quarterdeck.com

В последнее время технология передачи звука по каналам Интернет стала широко использоваться для трансляции новостей и музыки. При этом обеспечивается вполне удовлетворительное качество даже при передаче стерео программ. В этом случае имеется возможность применить более эффективное сжатие информации и протоколы типа RTP и RTCP. Задержка при передаче в этом случае никакого значения не имеет, а качество доставки гарантировано. Современные системы ip-телефонии снабжены гибкой системой буферов, позволяющих использовать для передачи паузы, когда один из партнеров молчит. (См. также "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals. H. Schulzrinne, S. Petrack. May 2000" RFC-2833 и "URLs for Telephone Calls. A. Vaha-Sipila. April 2000". RFC-2806).
В настоящее время имеется практически полный набор технологий, чтобы создать электронную книгу. Такая книга будет представлять собой систему размером с ноут-бук, снабженное устройством для чтения CD-дисков.

Характеристики аудио-кодеков



Таблица 2.4.2. Характеристики аудио-кодеков

Кодек

Выходная скорость кодека

G.711

64 кбит/с

g.723.1

5,3 или 6,4 кбит/с

g.722

48, 56 или 64 кбит/с

g.728

16 кбит/с

g.728/g.729a

8 кбит/с

При внедрении ip-телефонии желательно, чтобы сетевая инфраструктура обеспечивала:

Время задержки в одну сторону менее 100 мсек.

Вероятность потери пакета менее 5%.

Оборудование должно соответствовать требованиям H.323v2, а механизмы безопасности - стандарту H.235.

Наличие функции привратника в маршрутизаторе/шлюзе (блокирует установку новых телефонных соединений при отсутствии необходимых ресурсов)

Одна из возможных реализаций IP-телефонии показана на Рисунок 2.4.3.1. (MVD – Multiflex Voice/WAN модуль, включаемый в маршрутизатор, например, Cisco-3662).



требований к каналу для передачи изображения представлена ниже



Таблица требований к каналу для передачи изображения представлена ниже.

Частота
кадров/с

Размер экрана (24 цветовых бит)

1280*1024

640*480

320*240

160*120

30

900 Мбит/с

211 Мбит/с

53 Мбит/с

13 Мбит/с

В таблице приведены требования на пропускную способность канала при использовании различных степеней сжатия передаваемых видеоданных для частоты кадров 30/с и 24 бит на пиксель для отображения цвета.

Степень сжатия данных

Размер экрана

 

1280*1024

640*480

320*240

160*120

100:1

9 Мбит/с

2.11 Мбит/с

0.53 Мбит/с

0.13 Мбит/с

50:1

18

4,22

1,06

0,26

25:1

36

8,44

2,12

0.52

12:1

75

17,58

4,4

1,08

6:1

150

35,17

8,8

2,16

Требования при передаче звука определяются необходимым качеством, так для получения полосы 6 Кгц нужно 64 Кбит/с, а для уровня, сопоставимого с CD, - 1,4 Мбит/с. Применение сжатия информации позволяет снизить эти требования в 4-8 раз. Общепринятыми стандартами для сжатия изображения при видеоконференциях являются JPEG, MPEG, H.261. Обычно они реализуются программно, но есть и аппаратные реализации.

Если сегодня базовым транспортным протоколом для мультимедиа является UDP, то в самое ближайшее время его потеснит RTR и дополнят RSVP и ST-II, что заметно повысит качество и надежность (см. также раздел IP-phone).

Набор стеков протоколов, которые могут использоваться для реализации видео конференций в рамках стандартов ITU (транспортный протокол H.320):

1.

GSTN – H.324 – H.320 – [T.120; H.243; H.281]

2.

ISDN – H.221 – H.320 – [T.120; H.243; H.281]

3.

ISDN – PPP – IP – H.323 – H.320 – [T.120; H.243; H.281]

4.

LC – PPP – IP – H.323 – H.320 – [T.120; H.243; H.281]

5.

ATM – AAL5 – IP – H.323 – H.320 – [T.120; H.243; H.281]

6.

ATM – AAL1 – H.221 – H.320 – [T.120; H.243; H.281]



Видеоконференции по каналам Интернет и ISDN



2.9 Видеоконференции по каналам Интернет и ISDN

Расширение международных контактов и реализация проектов с "удаленными" отечественными партнерами делает актуальной проблему экономии командировочных расходов особенно в случае коротких поездок (1-7 дней). Одним из средств решения проблемы является использование видеоконференций. Видеоконференции по каналам Интернет могут быть привлекательны для дистанционного обучения и медицинской диагностики. В отличие от телевизионных программ обучение с использованием Интернет предполагает диалог между преподавателем и обучаемым, что делает процесс более эффективным (эта техника может успешно дополнить WWW-методику, широко используемую в университетах США и Европы). Медицинские приложения еще более многообещающи. Видеоконференции позволят проконсультироваться в клинике, отстоящей на тысячи километров, устроить консилиум с участием врачей из разных городов, оперативно передать томограмму или многоканальную кардиограмму пациента с целью ее интерпретации и т.д. В более отдаленной перспективе технология видеоконференций может быть применена для целей телевидения.



Виртуальные локальные сети VLAN, Интранет



6.2 Виртуальные локальные сети VLAN, Интранет

Широкое внедрение ИНТРАНЕТ, где группы разбросанных по сети пользователей локальных сетей объединяются друг с другом с помощью виртуальных каналов VLAN (Virtual Local Area Network; http://www.3com.com/nsc/200374.html), потребовало разработки новых протоколов. Архитектура VLAN позволяет эффективно разделять трафик, лучше использовать полосу канала, гарантировать успешную совместную работу сетевого оборудования различных производителей и обеспечить высокую степень безопасности. При этом пакеты следуют между портами в пределах локальной сети. В последнее время для задач построения VLAN разработан стандартный протокол IEEE 802.10 (3-ий сетевой уровень). Этот протокол предполагает, что пакеты VLAN имеют свои идентификаторы, которые и используются для их переключения. Протокол может поддерживать работу 500 пользователей и более. Полное название стандарта - IEEE 802.10 Interoperable LAN/MAN Security (MAN - Metropolitan Area Network - региональная или муниципальная сеть). Стандарт принят в конце 1992 года. Количество VLAN в пределах одной сети практически не ограничено. Протокол позволяет шифровать часть заголовка и информационное поле пакетов.

Стандарт ieee 802.10 определяет один протокольный блок данных (PDU), который носит название SDE (Secure Data Exchange) PDU. Заголовок пакета ieee 802.10 имеет внутреннюю и внешнюю секции и показан на Рисунок 6.2.1.



Безопасность WEB-серверов



6.7 Безопасность WEB-серверов

WEB-сервер достаточно сложная и потому уязвимая для атак программа. Причем угрозы могут исходить из самых неожиданных мест. Так в конце июня 1997 года было обнаружено, что Windows-95 (и NT) “повисает” (полный перечень причин повисания этой системы может занять целый том) при приходе на ее вход ICMP-пакета с длиной, которая не соответствует значению, указанному в его поле заголовка Длина.

WEB-сервер, также как любая сеть должен иметь свою, желательно записанную на бумаге политику безопасности. Это должен быть достаточно простой документ типа приведенного ниже.

Доступ к WEB-серверу имеет пять уровней:

Общедоступный с возможностью только чтения всех URL за исключением тех, что помещены в каталогах /private.

Доступ сотрудников фирмы или организации, которой принадлежит сервер. Здесь также допустимо только чтение, но доступны и секции каталога /private.

Разработчики WEB-сервера. Имеют возможность модифицировать содержимое сервера, инсталлировать CGI-скрипты, прерывать работу сервера. Администраторы узла (сервера). Имеют те же привилегии, что и разработчики, но могут также реконфигурировать сервер и определять категорию доступа.

Системные администраторы. Имеют идентичные привилегии с администраторами сервера.

Для получения доступа на уровне 3-5 необходимо письменное разрешение директора организации или его заместителя по информационным системам. Доступ уровня 2 автоматически получают все сотрудники организации или фирмы при авторизации. Администраторы могут аннулировать авторизацию по решению заместителя директора по информационным системам, а при чрезвычайных обстоятельствах самостоятельно, но с последующим уведомлением руководства. Работа с локальной консоли WEB-сервера разрешается только администраторам. Удаленная работа администраторам запрещена, они должны работать только с локального терминала. CGI-скрипты устанавливаются на сервер после их проверки и одобрения как минимум двумя членами группы администраторов. Скрипты, исходные тексты которых недоступны, устанавливаются только по решению заместителя директора по информационным системам.

Информация из каталогов /private, которая считается конфиденциальной, доступна только с терминала самой ЭВМ.

При работе с WEB-сервером не допускается доступ к базам данных или файлам, если для этого не имеется соответствующего разрешения.

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

Приведенный текст описания политики безопасности может варьироваться в широких пределах, он зависит от используемой ОС и набора сетевых утилит.

Наиболее безопасной сетевой средой считается Macintosh OS. Это связано с тем, что она не включает в себя интерпретатора команд, не поддерживает скрипты и не предоставляет каких-либо дополнительных сетевых услуг, неавторизованный просмотр WEB-страниц на Макинтоше практически не возможен.

Системы Windows NT и UNIX обладают сопоставимыми и достаточно высокими уровнями безопасности. Большое число сообщений о дефектах безопасности UNIX свидетельствует о его массовом использовании.

Теперь рассмотрим, что нужно сделать, чтобы обеспечить максимально возможную безопасность WEB-cервера.

Выбрать наиболее безопасную ОС и сконфигурировать ее с учетом требования безопасности. Использовать все известные корректирующие программы, выпущенные разработчиком ОС.

Организовать мониторирование любой подозрительной активности на сервере (активность в ночное время, многократные попытки авторизации и т.д.).

Контролировать доступ к конфиденциальным документам. Доступ к таким документом должен быть разрешен только ограниченному числу пользователей. Доступ к таким частям сервера должен быть организован с использованием протокола SSL.

Тщательно разрабатывать и проверять используемые CGI-скрипты и аплеты.

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

Защитить локальную сеть от WEB-сервера. Исключить возможность проникновения к жизненно важным ресурсам сети через WEB-сервер, например, с помощью Firewall.

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

При работе с ОС Windows NT следует отключить доступ TCP/IP от услуг NETBIOS. Это может быть сделано с помощью Firewall, блокировкой доступа к портам 137 и 138 для UDP и TCP. Можно решить эту проблему отключения NETBIOS от TCP/IP драйвера переконфигурировав Windows NT.

Если WEB-сервер нуждается в контроле доступа, то в настоящее время (в HTTP/1.1) имеется две возможности. Первая (basic) - предполагает традиционный ввод и передачу по сети имени клиента и пароля. Эта схема проста, но допускает перехват параметров доступа (а между клиентом и сервером может быть достаточно много промежуточных узлов). Вторая схема (digest) для пользователя выглядит аналогично, но вводимое имя и пароль не передаются по сети непосредственно. На их базе формируется дайджест MD5, который пересылается по сети и используется для идентификации клиента.



Программное обеспечение WEB


4.5.6.1 Программное обеспечение WEB


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

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

Инструментальный каталог администратора. Этот каталог содержит утилиты, которыми пользуется администратор сервера. Здесь могут располагаться программы управления доступом, генерации криптографических ключей и формирования поисковых индексов.

Каталог файла регистрации операций (LOG-файла). Здесь фиксируются все процедуры доступа к серверу, а также все происходящие сбои и ошибки.

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

Каталог документов (корневой каталог документов). Этот каталог составляет основу иерархического дерева каталогов документов сервера. Каталог может включать субкаталоги типа html, java, icons и т.д.

Помимо перечисленных может присутствовать каталог security, где лежат параметры доступа (имена и пароли) авторизованных клиентов сервера.

Современные WEB-серверы трудно себе представить без CGI-скриптов (Common Gateway Interface). Эти скрипты позволяют существенно расширить возможности сервера, обеспечить доступ к базам данных, работать с документами, содержимое которых изменяется динамически, организовать игры в реальном масштабе времени, обрабатывать запросы клиентов, посылать сообщения по электронной почте и многое другое.
CGI-скрипты обеспечивают интерфейс между WEB-сервером и серверами GOPHER или FTP. Привлекательность CGI-скриптов и легкость их написания, к сожалению, дополняется тем, что совсем не просто написать их безошибочно.

CGI-скрипты (ISO 9636) представляют собой небольшие программы, которые являются независимыми от основной программы сервера. Когда удаленный пользователь запрашивает URL, который указывает на CGI-скрипт, сервер исполняет скрипт, передавая информацию о состоянии сессии. CGI-скрипт обрабатывает эти данные и выдает документ, который, вообще говоря, может быть и не только HTML-страницей. Среди информации, которую передает сервер CGI-скрипту, обычно присутствует строка запроса, содержащая данные, которые поступили от удаленного пользователя. Форма строки запроса произвольна. Она может содержать ключевые слова для поиска или SQL-предложение для обращения к серверу базы данных. Строка запроса может быть передана CGI-скрипту двумя способами. В первом случае она прикрепляется к URL. Например:

http://www.altavista.com/cgi-bin/query?pg=q&what=web&fmt=.&q=question

Все, что следует после знака вопроса, представляет собой строку запроса. В этой версии строка запроса должна следовать требованиям записи URL, т.е. пробелы должны заменяться символом + (ключевым словом в приведенном запросе является question). CGI-скрипт извлекает строку запроса с учетом переменной конфигурации (environment). Альтернативой этому является посылка строки запроса CGI методом HTTP POST. Этот метод обычно используется при заполнении пользователем форм и отправке их удаленному серверу. В этом случае WEB-сервер направляет строку запроса непосредственно на стандартный вход скрипта. Желательно пользоваться хорошо проверенными скриптами, а при написании новых следить за тем, чтобы они ни при каких обстоятельствах не допускали исполнения команд на машине сервера и не производили несанкционированной модификации файлов.

Пользователи WEB сервера, которые имеют доступ к документам и файлам поддержки обычно делятся на четыре категории: хозяин, автор, разработчик и администратор.Каждая их этих категорий имеет разные права доступа, показанные в таблице 4.5.6.1.


Региональные сети



4.3 Региональные сети

Номер раздела Название раздела Объем в страницах Объем в кбайт
4.3 Региональные сети 1 5
4.3.1 Эталонная сетевая модель ISO 5 68
4.3.2 Протоколы сетей X.25 18 213
4.3.3 Интегрированные сети ISDN 25 451
4.3.4 Протокол Frame Relay 6 77
4.3.5 Протоколы сетей ATM 21 254
4.3.6 Синхронные каналы SDH/SONET 9 165
4.3.7 Модемы 10 126

Региональные сети (WAN - Wide Area Network) с точки зрения архитектуры и протоколов практически не отличаются от глобальных. В региональных сетях обычно не используются трансокеанские кабели, но это отличие не может рассматриваться как принципиальное. Региональные сети решают проблему формирования из LAN (локальных сетей) сетей регионов и целых стран и даже наднациональных сетей (например, E-BONE для Европы). Как правило, эти сети строятся с использованием протоколов SDH, ATM, ISDN, Frame Relay или X.25. Архитектурно такие сети формируются из каналов со схемой точка-точка и мощных коммутаторов-мультиплексоров. Из таких фрагментов формируются и опорные сети (BackBone), которые позволяют сократить число шагов от узла к узлу. В этих сетях в основном используются оптоволоконные транспортные системы, а там где это нерентабельно, спутниковые или радиорелейные каналы.

С появлением корпоративных сетей типа Интранет понятия локальной и региональной сетей стало частично перекрываться. Для пользователя Интранет все узлы такой сети являются локальными, хотя и могут отстоять на сотни или даже тысячи километров друг от друга. По существу сети Интранет являются наложенными сетями по отношению к региональным сетям (WAN). Интернет также следует отнести к числу наложенных сетей по отношению к WAN.



Рост числа web-серверов в период - годов



Рисунок 4.5.6.1. Рост числа web-серверов в период 1995-99 годов


На февраль 1999 года число www-серверов равнялось 4.301.512.

Что же такое гипертекст?

Прежде всего, следует отметить, что гипертекст – это текст, состоящий из ascii-символов. Для обеспечения верстки и организации перекрестных ссылок в гипертексте используются слова-метки. Основу гипертекста составляют HTML-элементы. Такой элемент включает в себя имя, атрибуты, текст или гипертекст. HTML-элемент записывается в документ в виде (более подробное описание смотри в статье о html):

<имя_метки> текст </имя_метки>

<имя_метки> имя_атрибута=аргумент текст </имя_метки>

html-документ состоит из одного элемента: <html>

.... </html>, который состоит из html-элементов: <head>

... </head> и <body> ... </body>, последние в свою очередь могут содержать различные списки, внутренние и внешние метки и т.д.. Элементы <html>, <head> и <body> для совместимости с более старыми текстами сделаны пока необязательными. В html имеется 6 уровней заголовков (<h1>, .... <h6>), из них первый - главный. В версии HTML+ (и более поздних версиях) предусмотрены операторы позиционирования текста, например, <p align="center">. head-элементы могут содержать в себе:

<isindex>

говорит о том, что данный документ допускает индексный поиск (база данных).

<title> . . . </title>

описывает заголовок документа, этот заголовок характеризует содержимое окна.

<base href="url">

сообщает имя файла, в котором хранится данный документ.

<link rev="relationship" rel="relationship" href="url">

этот элемент позволяет установить связь между документом, содержащим метку (якорь), и документом, указанным в URL (Uniform Resource Locator). Атрибут rel устанавливает связь между HTML-файлом и URL. Атрибут rev (reverse) описывает взаимоотношения между URL и HTML-файлом.

Элементы body могут содержать элементы:


Текстовые элементы:

<p> индицирует конец параграфа и начало нового.

<pre> . . . </pre>

выделяет текст, который уже был сформатирован ранее (таблицы, программы, стихи, ...).

<blockquote> . . . </blockquote>

ограничивает часть текста, который должен быть выделен кавычками.

Гиперсвязи или якоря

<a name="anchor_name"> . . . </a>

определяет заданную позицию в документе.

<a href="#anchor_name"> . . . </a>

описывает ссылку на определенное место текущего документа.

<a href="url"> . . . </a>

устанавливает связь с другим файлом или ресурсом.

<a href="url#anchor_name"> . . . </a>

устанавливает связь с заданным местом в другом документе.

<a href="url?search_word+search_word"> . . . </a>

посылает серверу эталонную строку для поиска.

Различные системы поиска могут интерпретировать эту строку по-разному. Для того чтобы читатель незнакомый с гипертекстом, получил некоторое представление о том, как он выглядит, приведу пример:

<title> Протоколы и ресурсы Интернет </title>

<h1> Это уровень первого заголовка </h1>

<h2> Уровень второго заголовка </h2>

<p> Начало параграфа ....

Вам уже ясно, что подготовка гипертекстов "вручную" изнурительная задача и вспомогательные программные средства не повредят, особенно если вы хотите, чтобы ваш текст выглядел привлекательно. Заметим, что управляющие слова-метки могут записываться как строчными, так и прописными буквами (<H1> = <H1>), но они могут восприниматься различными программами просмотра по-разному (могут и игнорироваться вовсе). HTML поддерживает нумерованные (OL), ненумерованные (UL), и описательные списки (DL). Пример нумерованного списка:

Записано в гипертексте Отображено на экране
<ol>

<li> Белоруссия</li> 1. Белоруссия
<li> Россия</li> 2. Россия
<li> Украина</li> 3. Украина
<


/p> </ol>

Примером описательного списка может служить:

<dl>

<dt> ИТЭФ

<dd> Институт Теоретической и Экспериментальной Физики, Москва, Россия.

<dt> ИФВЭ

<dd> Институт Физики Высоких Энергий, Протвино.

</dl>

На экране это будет выглядеть примерно так:

ИТЭФ

Институт Теоретической и Экспериментальной Физики, Москва.

ИФВЭ

Институт Физики Высоких Энергий, Протвино.

<dt> - метка определения, а <dd> - метка данных описания. Как <dt> так и <dd> могут содержать много параграфов, разделенных меткой <p>. Допускается вложение списков друг в друга, например <fsu.html>:

<ul>

<li> Белоруссия</li>

<li> Россия</li>

<dl>

<dt> ИТЭФ

<dd> Институт Теоретической и Экспериментальной Физики, Москва.

<dt> ИФВЭ

<dd> Институт Физики Высоких Энергий, Протвино.

</dl>

<li> Украина</li>

</ul>

Некоторые символы являются служебными для html и для их отображения на экране требуются определенные ухищрения. Например:

Символ записывается как
< &lt;
> &gt;
& &amp;
&nbsp; (неразрывный пробел)
Символ ; (точка с запятой) является составной частью описания. Все предшествующее относилось к описанию представления текстов на экране. Теперь рассмотрим, как можно обозначить смысловые связи и ссылки друг на друга различных частей текста. Собственно именно ради этого и создавалась идеология гипертекстов. Метка, означающая наличие связи, имеет вид <a> и происходит от слова anchor (якорь). В общем виде ссылка имеет следующий формат:

<a href="url"> текст </a>

URL (universal resource locator) в простейшем случае может быть именем файла. Текст обозначает действительный текст в документе, который может быть подсвечен, выделен другим цветом или помечен цифрой. Этот текст говорит программе просмотра, что в URL можно найти связанную с данным документом информацию или изображение.


При использовании программы типа MS IE (или Netscape) для вызова этой информации или изображения на экран достаточно указать мышкой на текст и нажать кнопку. Если URL указывает на объект, находящийся не в вашей сети эта процедура может занять некоторое время. Чтобы вас как-то развлечь, программа показывает вам вращающийся земной шар в верхнем правом углу экрана. Метка <A> может использоваться и для ссылки на определенный раздел документа:

<a name="refname"> текст </a>,

где refname является меткой в вашем документе. Пусть в файле fsu.html определена следующая ссылка-якорь:

<a name="итэф"> ИТЭФ </a>

тогда, находясь в пределах этого документа, можно попасть в нужную точку с помощью:

<a href=#итэф> У-10 </a> протонный синхротрон.

В другом документе может присутствовать встречная ссылка, например:

У-10 в <a href="fsu.html#итэф"> ИТЭФ>/a>

Теперь, при нажатии кнопки мышки на слове ИТЭФ, программа отобразит fsu.html и отметит позицию со словом ИТЭФ (ссылка name=итэф). Вообще говоря, вы можете ссылаться на метки-якоря в файлах, находящихся на другой машине (на другом конце земли :-) ), приводя полное наименование URL. В общем случае url указывает тип и место расположения ресурса:

сервер://host.domain[:port]/path/объект,

где в качестве сервера может стоять: FTP, Telnet, HTTP, Gopher, Wais, News. Path описывает проход к каталогу, где лежит объект. Если программа просмотра (Netscape) способна воспроизводить изображения, можно ввести ссылки на файлы, содержащие нужные для пояснения текста картинки, например:

<img src="имя_файла.gif">

Обратите внимание, что здесь используется графический стандарт gif (Graphics Interchange Format). Приемлемы также графические форматы tiff, jpeg, rgb и hdf. Читатели, желающие сформировать титульную страницу (home page) своего института, фирмы или проекта, должны изучить предмет более углубленно, обратившись, например по адресу:

http://info.cern.ch/hypertext/www/provider/overview.html.



После этого недолгого экскурса в гипертекст, который является основой многих поисковых систем, вернемся к проблематике www. Следует заметить, что публично доступные клиент-серверы существуют для сред MS-DOS, VMS, MVS, UNIX, X-windows, Macintosh, NEXT. Это математическое обеспечение доступно через анонимный FTP из депозитария info.cern.ch секции /pub/www (или www.earn.net gnrt/www.html). Графические клиент-серверы доступны для UNIX, Windows, Macintosh, X-windows, Next.

Режим удаленного терминала можно реализовать через telnet по адресу info.cern.ch (при этом не требуется иметь авторизацию на какой-либо ЭВМ ЦЕРН). Многие серверы при старте выходят на приглашение login. Обычно для входа в WWW при этом достаточно напечатать WWW. Никакого слова-пропуска не требуется. Программный пакет PCTCP (и некоторые другие) допускает настройку на эмуляцию того или иного терминала, например:

tn -x vt100 info.cern.ch, где info.cern.ch - адрес WWW-сервера, который предполагает работу с терминалом VT-100 (или его эмулятором). При работе в строчном режиме (режим меню) вам предлагается возможность выбора одного из пунктов меню. Для этого вы печатаете номер этого пункта и нажимаете клавишу <enter>. Если все меню на экране не помещается, вы можете перемещаться по нему в любом направлении. Пояснения, содержащиеся на экране, позволяют работать c системой даже новичку.

WWW-сервер в простом варианте выполняет лишь команды get имя_файла, приходящие от клиент-сервера пользователя. Остальная работа выполняется www-клиентом.

Существует достаточно много "удаленных" тематических серверов, например:



Адрес
Тематика Страна
vms.huji.ac.il (128.139.4.3) Окружающая среда Израиль
info.cern.ch (128.141.201.74) Физика высоких энергий Швейцария
fatty.law.cornell.edu (132.236.108.5) Законодательство США
ukanaix.cc.ukans.edu (129.237.1.30) История США
www.njit.edu (128.235.163.2) США
www.erg.abdn.ac.uk Нейронные сети Англия
www.mech.gla.ac.uk   Англия
www.ai.univie.ac.at   Австрия
kal-el.ugr.es   Испания
opal.vcu.edu Нанотехнология США
galaxy.ph.tn.tudelft.nl Распознавание образов Нидерланды
info.funet.fi (128.214.6.102)   Финляндия
fserv.kfki.hu (148.6.0.3)   Венгрия
<


/p> Список этот не является исчерпывающим, существуют клиент-серверы и в России. Появились и первые зеркальные www-депозитарии в России (например, xxx.itep.ru (“зеркало” сервера LANL – Лос-Аламос, США), store.in.ru (зеркальный сервер по Linux – Red Hat и RFC) и т.д.. Хотя в вышеприведенной таблице указана тематика серверов, не следует думать, что этим ограничивается содержимое депозитариев. ЦЕРН является базовой организацией для справочных запросов (здесь работают многие авторы этой системы, www-bug@info.cern.ch). Для получения нужного файла по электронной почте следует послать mail по адресу listserv@info.cern.ch с командой send. Команда send присылает документ с данным www-адресом. Но следует иметь в виду ряд ограничений. Гипертекстные документы имеют стандартную ширину в 72 символа. В конце документа обычно имеется список других адресов документов по данной или близкой тематике. Гипертекстный документ имеет связи, которые помещаются в квадратные скобки. Обратите внимание на то, что, несмотря на наличие имени listserv в начале, - это не listserv-сервер. Максимальное число строк, получаемое пользователем, при этом не превышает 1000 (хотя сегодня найдется немного желающих пользоваться такой услугой, если имеется прямой доступ в Интернет). Все запросы мониторируются. При работе с графикой выбор того или иного объекта производится мышкой. Работая со строчным сервером, следует набрать номер строки меню и нажать клавишу <enter>. В WWW доступны некоторые команды (параметры команд помещаются в угловые скобки <>, в квадратных скобках приведены сокращенные названия команд для построчного просмотра; используется полное или сокращенное имя команды.):

Команда Сокращение Назначение
help [h] Выдает гипертекстный адрес текущего документа и список доступных команд, который является контекстно зависимым.
manual [m] Отображает пояснительные тексты, если таковые имеются.
quit   Уход из www.
up [u] Перемещает текущую страницу документа вверх [предшествующий экран].
down   Перемещает текущую страницу документа вниз [следующий экран].
top [t] Устанавливает указатель в начало документа.
bottom [bo] Устанавливает указатель в конец документа.
back [b] Возвращает просмотр к предшествующему документу.
home [ho] Возврат к первому документу.
next [n] Осуществляет переход к просмотру следующего документа.
previous [p] Осуществляет переход к просмотру предшествующего документа.
list [l] Выдает пронумерованный список связей текущего документа, для отслеживания связей следует отпечатать соответствующий номер.
recall [r] <number> Если число опущено, выдает пронумерованный список документов, которые вы просмотрели. Для просмотра определенного документа выполните команду с соответствующим номером.
find [f] <ключевое слово> Поиск ключевых слов в индексе. Список находок отображается вместе со ссылками возможных дополнений. Ключевые слова отделяются пробелами. find можно и не печатать, если ключевое слово не совпадает ни с одной из команд www. Команда find выполнима не всегда.
go [g] docaddress Просмотр документа с данным гипертекстным адресом.
print   Команда доступна только из unix. Печатает текущий документ. По умолчанию команда печати имеет имя lpr, но ее имя может быть определено переменной www_print_command.
<


/p> Стандартная форма обращения к www имеет вид:

www <option> <docaddress <ключевое слово>>,

где docaddress - гипертекстный адрес документа, который вы хотите просмотреть; а ключевое слово - объект поиска в индексе, предоставляемом docaddress. По умолчанию на экран вызывается первый документ. В нижней части экрана отображается строка выполнимых команд. Команды могут набираться как строчными, так и заглавными буквами. Имеются следующие возможности (опции):

-n Неинтерактивный режим. Документ форматируется и отображается на экране. Страницы разделяются символами form feed (FF)
-listrefs Добавляется список адресов всех ссылок вплоть до конца. Только не интерактивный режим
-pn Устанавливает длину страницы равной n строк. По умолчанию длина страницы равна 24 строкам. Команда без числа делает страницу бесконечной
-wn Устанавливает ширину страницы равной n колонкам. По умолчанию ширина равна 78, 79 или 80
-na Прячет ссылки в тексте, удобно при распечатке
-version Отображает версию используемой программы
Для перехода к следующей странице достаточно нажать клавишу <enter>. Ниже приведен пример меню World Wide Web (в настоящее время данный вид доступа представляет скорее исторический интерес):

the world-wide web virtual library: subject catalogue

the www virtual library

this is a distributed subject catalogue. see also arrangement by service type [1], and other subject catalogues of network information [2].

mail to maintainers of the specified subject or www-request@info.cern.ch to add pointers to this list, or if you would like to contribute to administration of a subject area.

see also how to put your data on the web [3]

aeronautics mailing list archive index [4]. see also nasa larc [5]

agriculture see agricultural info [6], almanac mail servers [7]

the agricultural genome [8] (national agricultural library, part of the u.s. department of agriculture)

archaeology [9] separate list

astronomy and astrophysics [10] separate list.

1-64, back, <return> for more, quit, or help:

Цифры в квадратных скобках представляют собой пункты меню. Для выбора одного из них достаточно напечатать его номер (после двоеточия) и нажать клавишу <enter>. Поиск возможен только в случае, когда в меню в нижней части экрана присутствует слово find. Рассмотренная выше версия является устаревшей, но она дает представление о том как работает WEB-сервер.

URL (uniform resource locator) идентифицирует ресурс Internet. В общем виде URL имеет вид:

access://host/path

где access = {FTP, Gopher, Telnet, ...}; host = имя ЭВМ-сервера; path = имя файла, имя каталога, или другая информация о ресурсе.

Например, url для анонимного FTP:

ftp.rpi.edu/pub/communications/internet-cmc.txt

означает:


Команды WAIS Основные



Таблица 4.5.13.1. Команды WAIS

Основные команды
h Выдать перечень команд [help]
? тоже что и h
q Уйти из WAIS (quit)
Смена текущей строки
DOWN Сместиться на одну строку вниз
j То же, что и DOWN
Ctrl-N То же, что и DOWN
UP Сместиться на одну строку вверх
k То же, что и UP
Ctrl-P То же, что и UP
число Переход к строке с указанным номером
/эталон Перейти к строке, начинающейся с эталона
J Сместиться на один экран вниз
Ctrl-D То же, что и J
K Сместиться вверх на один экран
Ctrl-U То же, что и K
Выбор источника
Пробел Выбор или отмена выбора источника
= Отменить выбор каких-либо источников
RETURN После выбора источников запрашивает новое ключевое слово
r Заново отображает результат предшествующего поиска
v Отображает техническую информацию об источнике
Выполнение поиска
RETURN Начало поиска после ввода ключевых слов
RETURN Отображает результат при просмотре результата поиска
w Запрос новых ключевых слов
s Повторное отображение первоначального экрана
Чтение статьи
пробел Отобразить следующий экран
q Прервать чтение статьи (quit).

Имеется возможность доступа к ресурсам системы WAIS и через электронную почту. Запрос посылается по адресу waismail@quake.think.com, строка Subject игнорируется. Далее (в теле сообщения) могут следовать команды (вертикальная черта (|) указывает на выбор параметров):

help отображение справочного файла
maxres number установка максимального числа искомых документов

search source-name | "source-name1 source-name2 ... " keywords

где: source-name имя источника, как оно было найдено в оглавлении сервера (с или без расширения .SRC). Если нужно провести поиск по нескольким источникам, их имена заключаются в двойные кавычки. keywords ключевые слова, по которым проводится поиск.

Можно сформулировать несколько запросов в одном e-mail. Если имя источника не будет узнано, вы получите список имен возможных источников.

retrieve docid

Извлечение копии документа из базы данных. docid является DocID (идентификатор найденного документа).
Если вы посылаете несколько запросов, они должны быть разделены пустыми строками. docid должен строго соответствовать имени документа, полученного вами в результате запроса-поиска (включая пробелы, если они имелись). Могут копироваться не только текстовые документы. Такие документы будут пересланы в формате UUENCODE.
DocID: docid
То же, что и retrieve. Эта форма идентична по форме ответу на поисковый запрос. Процедура делает возможным использовать replay в e-mail для копирования найденных документов.
Примеры использования WAIS
telnet quake.think.com

Trying 192.216.46.98 ... (IP-адрес сервера)

Connected to quake.think.com.

Escape character is '^]'.

SunOS UNIX (wais)

login: wais (ввод идентификатора)

Last login: Sun Aug 27 01:57:07 from france.cityu.edu

Welcome to swais, the text-terminal telnet client to WAIS.

Please type user identifier (optional, i.e. user@host): semenov@ns.itep.ru
(в качестве пароля предлагается напечатать ваш почтовый адрес).
TERM = (vt100) ibmpc (нужно ввести тип терминала, с которым вы работаете)
Starting up. This may take awhile...

SWAIS Source Selection Sources: 549


# Server Source Cost
001: [ wais.access.gpo.gov] 103_cong_bills Free
002: [ wais.access.gpo.gov] 104_cong_bills Free
003: [ wais.access.gpo.gov] 1992_cri Free
004: [ wais.access.gpo.gov] 1993_cri Free
005: [ wais.access.gpo.gov] 1994_cri Free
006: [ wais.access.gpo.gov] 1994_hob Free
007: [ wais.access.gpo.gov] 1994_record Free
008: [ wais.access.gpo.gov] 1994_register Free
009: [ wais.access.gpo.gov] 1994_unified_agenda Free
010: [ wais.access.gpo.gov] 1995_cri Free
011: [ wais.access.gpo.gov] 1995_hob Free
012: [ wais.access.gpo.gov] 1995_record Free
013: [ wais.access.gpo.gov] 1995_register Free
014: [ wais.access.gpo.gov] 1995_unified_agenda Free
015: [ archie.au] aarnet-resource-guide Free
016: [ndadsb.gsfc.nasa.gov] AAS_jobs Free
017: [ndadsb.gsfc.nasa.gov] AAS_meeting Free
018: [ munin.ub2.lu.se] academic_email_conf Free
<


Keywords:
<space> selects, w for keywords, arrows move, <return> searches, q quits, ? for Help
Слово Free на правом поле означает бесплатный доступ. Сразу после вывода на экран оказывается подсвеченной позиция <001> (номера позиций проставлены на левом поле). В квадратных скобках приведены адреса серверов, доступ к которым может быть предоставлен, сразу за ним следует наименование базы данных или документа. Используя стрелки <вверх> и <вниз>, можно подсветить нужную вам позицию. После нажатия клавиши <Enter> (или на некоторых клавиатурах RETURN) позиция будет выбрана и вам будет предложена возможность ввести ключевые слова для последующего поиска. Выберем для примера aarnet-resource-guide.src.
Enter keywords with spaces between them; <return> to search; ^C to cancel

Keywords: isdn (в качестве ключевого слова введено ISDN).

Searching aarnet-resource-guide.src...

Initializing connection...

Searching 1995_register

Found 1 items.

SWAIS Search Results Items: 1
# Score Source Title Lines
001: [1000] (aarnet-resource) Charles Sturt University 66

<space> selects, arrows move, w for keywords, s for sources, ? for help

Retrieving: Charles Sturt University

Getting "Charles Sturt University" from aarnet-resource-guide.src...

WARNING: terminal cannot "scroll backwards" (press RETURN)
(ниже следует текст документа)
Charles Sturt University


Address: Division of Information Technology PO Box 588 WAGGA WAGGA 2650

E-mail: cc_director@csu.edu.au Phone: +61 69 222206 Fax: +61 69 222454
Description:
The Division of Information Technology offers computing services for teaching, research and university administration and is a centrally funded support service of the University.
The University has a Facom 340S, VAX 6320 and 6310 systems (VMS), a HP935 (HP-UX), and a SUN 4/75S, as well as a range of workstation-level Unix hosts.
Numerous PC and Mac Networks are spread through the faculties and divisions.


ISDN links between the three campuses of CSU bring the ethernet/fibre "backbones" on each individual campus into a single university-wide TCPIP/LAT Network.
Network Access: Systems are generally available via AARNet and Austpac.

Who Can Use:

Computing services are provided to Charles Sturt University community.

Account for outside users are considered on a case by case basis.

Press any key to continue (для того чтобы продолжить просмотр текста следует нажать любую клавишу).

Возможна и несколько другая форма доступа к WAIS (например, из ЭВМ SUN):
ns> telnet info.funet.fi

Trying 128.214.6.21 ...

Connected to info.funet.fi.

Escape character is '^]'.

SunOS UNIX (info)

Finnish University and Research Network FUNET Information Service

The following information services are available:

gopher Menu-based global information tool
www World Wide Web, Global hypertext web
wais Wide Area Information Server, global databases on different topics
x500 X.500 clients are on nic.funet.fi, login: dua, no password
archie Database of Internet Archive contents
exit Exit FUNET information services

Select service (gopher/www/wais/archie/exit) ? wais (выбран WAIS)

Select WAIS interface:

swais VT100-based WAIS client

Select interface (return for back to main menu) ? swais

Supported terminal types are: vt100, xterm

Starting WAIS ..

  Source Selection Server Source Cost
001: [ archie.au] aarnet-resource-guide Free
002: [ munin.ub2.lu.se] academic_email_conf Free
003: [wraith.cs.uow.edu.au] acronyms Free
004: [ archive.orst.edu] aeronautics Free
005: [ ftp.cs.colorado.edu] aftp-cs-colorado-edu Free
006: [nostromo.oes.orst.ed] agricultural-market-news Free
007: [ archive.orst.edu] alt.drugs Free
008: [ wais.oit.unc.edu] alt.gopher Free
009: [sun-wais.oit.unc.edu] alt.sys.sun Free
010: [ wais.oit.unc.edu] alt.wais Free
011: [alfred.ccs.carleton.] amiga-slip Free
012: [ munin.ub2.lu.se] amiga_fish_contents Free
013: [ 150.203.76.2] ANU-Aboriginal-EconPolicies $0.00/minute
014: [ coombs.anu.edu.au] ANU-Aboriginal-Studies $0.00/minute
015: [ coombs.anu.edu.au] ANU-Asian-Computing $0.00/minute
016: [ coombs.anu.edu.au] ANU-Asian-Religions $0.00/minute
017: [ 150.203.76.2] ANU-Australian-Economics $0.00/minute
018: [ 150.203.76.2] ANU-CAUT-Academics $0.00/minute
<


Российского пользователя не остановит и плата за ресурс, если она составляет $0.00. Выберем позицию agricultural-market-new, а в качестве ключевого слова введем price (кого не интересуют цены на продукты питания?):
Keywords: price

Searching agricultural-market-news.src...

Initializing connection...

Found 40 items. (найдено 40 записей)

SWAIS Search Results Items: 40

# Score Source Title Lines

001: [1000] (agricultural-ma) Re: MG LS756
002: [772] (agricultural-ma) Re: MG LS754   211
003: [557] (agricultural-ma) Re: AM LS753 SUP%RIOR VIDEO 277
004: [514] (agricultural-ma) Re: MG LS750   155
005: [500] (agricultural-ma) Re: ML LS143 QUINCY AUCTION,QUINCY 158
006: [486] (agricultural-ma) Re: WA PY100 CHICKEN PURCHASES 480
007: [457] (agricultural-ma) Re: RH LS751   127
008: [443] (agricultural-ma) LS. MN LL Re: USDA 04/26/94 20:51 172
009: [443] (agricultural-ma) Re: ML LS144 TOPPENISH (RESEND) 161
010: [400] (agricultural-ma) Re: KO LS757 ADA WGTD AVG W/COWS 115
011: [371] (agricultural-ma) Re: RH LS764   138
012: [343] (agricultural-ma) Re: KO LS752 MCALESTER WGTD AVGW/COW 100
013: [343] (agricultural-ma) Re: MG LS752   91
014: [343] (agricultural-ma) Re: MG LS797   122
015: [343] (agricultural-ma) Re: RH LS750   107
016: [343] (agricultural-ma) Re: RH LS757 ROCKINGHAM FEEDER CATTLE 140
017: [343] (agricultural-ma) Re: RH LS758 STAUNTON UNION FEEDERCA 102
018: [343] (agricultural-ma) Re: RH LS795   114

<space> selects, arrows move, w for keywords, s for sources, ? for help
Выбираем позицию <3>. Ниже следует текст, выданный в результате на экран.
Retrieving: Re: AM LS753 SUPRIOR VIDEO "Re: SUP%RIOR

VIDEO" from agricultural-market-news.src...

SWAIS Document Display Page: 1

Subject: AM LS753 SUP%RIOR VIDEO

Date: Mon, 21 Aug 95 01:58:17 PM



AM LS753

Amarillo, Texas Mon Aug 21, 1995 USDA-TX Dept of Ag Market News

Superior Video Auction - Final Report - Two day auction Aug 18 & 19.

Offerings < 91,000
Trade and demand moderate to good. Cattle offered from 16 States, Mexico and Canada. Prices based on net weights after a 1-3 percent shrink or equivalent with a 4-10 cent slide on calves and 3-8 cent slide on yearlings. Offerings included 31 percent feeder steers and differs over 600 lbs and 69 percent feeders under 600 lbs.
************************************************************

Press any key to continue, 'q' to quit.

Southcentral States: Texas, Oklahoma, New Mexico,

Kansas and Missouri.

************************************************************
Feeder Steers Medium and Large 1

Head Weight Avg Wt Price Avg Price Delivery
220 425-425 425 74.10-74.10 74.10 Current
84 625-625 625 67.35-67.35 67.35 Current
60 850-850 850 62.00-62.00 62.00 Current
190 525-525 525 66.25-66.25 66.25 Septmbr
78 585-585 585 69.35-69.35 69.35 Septmbr
130 740-740 740 64.85-64.85 64.85 Septmbr
382 800-835 821 64.00-66.00 64.96 Septmbr
540 860-860 860 64.35-64.35 64.35 Septmbr
70 360-360 360 77.50-77.50 77.50 Oct+Nov

Press any key to continue, 'q' to quit. (таблица напечатана с сокращениями)
Если вы выдали более одного ключевого слова, тогда все документы, содержащие любое из перечисленных слов будут включены в список найденных.
Если нужно узнать о WAIS больше (библиография, утилиты, исходные тексты), обращайтесь к Barbara Lincoln Brooks из WAIS inc. Библиография доступна по адресу ftp.wais.com в секции /pub/wais-inc-doc. Общую информацию по WAIS можно найти через FTP по адресу: quake.think.com /wais/doc или sunsite.unc.edu /pub/docs/about-the-net/libsoft/wais.txt. Для любителей доступа через WWW: www.wais.com или www.earn.net. Те же, кто для целей поиска предпочитает gopher, могут воспользоваться сервером: gopher-gw.micro.umn.edu. Можно узнать кое-что о WAIS и через telnet: quake.think.com Login: wais.
Программы доступны по адресам (FTP): ftp.cnidr.org ftp.wais.com quake.think.com sunsite.unc.edu
По вопросам получения бесплатного программного обеспечения обращайтесь по адресу: freewais@cnidr.org. Подписной почтовый лист имеет адрес: wais-discussion@wais.com. Для подписки посылайте запрос по адресу (формат запросов описан в разделе LISTSERV): wais-discussion-request@wais.com. Группа новостей в USENET (FAQ): comp.infosystems.wais; полезную информацию можно получить и через анонимное FTP по адресу rtfm.mit.edu в каталоге /pub/usenet/news.answers/wais-faq.

Возможности различных категорий пользователей WEB-сервера



Таблица 4.5.6.1. Возможности различных категорий пользователей WEB-сервера

Пользователь

Тип файла

Конфигурационный

Инструментальный

LOG-файл

CGI

Документы

Хозяин

RW

R

R

RW

RW

Разработчик

-

-

-

RW

RW

Автор

-

-

-

R

RW

Клиент

-

-

-

R

R

R – разрешено чтение. W – разрешена запись и уничтожение.

Хозяином в данном случае считается администратор узла, где размещен WEB-сервер. Автор занимается подготовкой документов и рисунков. Разработчик имеет сходные функции с автором, но в его обязанности входит также разработка и модификация CGI-скриптов и модулей сервера. Клиент (посетитель) может запускать скрипты и читать любые документы. Приведенная иерархия возможностей для пользователей гарантирует устойчивую работу и безопасность WEB-сервера.



WAIS



4.5.12 WAIS

WAIS (Wide Area Information Server) распределенная система поиска информации. Поиск производится по базам данных, содержащим текстовые документы (но допустимы также графические, звуковые или видео документы). Тематика баз данных и поиска произвольны. Базы данных могут иметь любую структуру, но пользователю не нужно знать языка управления этими базами. WAIS использует естественный управляющий язык. WAIS доступен в Интернет. Для пользователей, имеющих доступ только к электронной почте, предназначен интерфейс, размещенный по адресу waismail@quake.think.com. В сети Интернет существует много серверов WAIS. Список депозитариев серверов достаточно широк, начать можно с анонимного FTP по адресу Think.com секция /wais, файл wais-sources.tar.Z (файл архивирован и пересылка должна осуществляться в режиме BINARY). В настоящее время многие WAIS-сервера интегрированы в сети WEB.

Доступ к WAIS-клиентам возможен и напрямую с помощью команды TELNET по адресам:

Авторизация Место расположения
quake.think.com (192.31.181.1) (login: wais) США
sunsite.unc.edu (152.2.22.81) (login: swais) США
info.funet.fi (128.214.6.102) (login: wais) Финляндия
swais.cwis.uci.edu (128.200.15.2) (login: swais) США
kunzu.cnidr.org (128.109.130.57) (login: wais) США
nnsc.nsf.net (128.89.1.178) (alogin: wais) США

Существуют клиент-серверы WAIS для систем MS-DOS, VMS, MVS, OS/2, UNIX и Macintosh, а также для GNU Emacs, NeXT, X-Windows, MS-Windows, Sunview и т.д. Эти продукты несколько отличаются друг от друга, но обычно процедура содержит следующие шаги:

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

Формулируется задание на поиск, выбираются ключевые слова.

В процессе поиска WAIS запрашивает информацию из всех указанных баз данных.

Отображаются заголовки документов, отвечающих критериям отбора. Документы аранжируются согласно их степени соответствия условиям запроса.

Для получения копии пользователь просто отбирает документы из предлагаемого списка.

При необходимости пользователь может переформулировать критерии отбора и повторить поиск.

Вновь найденные документы, если они не совпадают с уже известными будут добавлены в список.

Ниже приводится таблица команд WAIS



Whois



4.5.8.1 Whois

WHOIS обеспечивает каталожную службу для пользователей сети (RFC-0954). Эта служба заключается в поиске e-mail адресов, почтовых адресов и телефонных номеров. WHOIS может поставлять информацию о сетях, о структуре доменов и т.д. Главная база данных, относящихся к сетям, поддерживается Регистрационной службой Интернет (InterNic). В действительности имена при регистрации доменов и при выдаче IP-адресов автоматически вводятся в базу данных. Каждая запись в базе имеет уникальный идентификатор (handle), имя, тип записи и ряд других полей в зависимости от типа записи. База данных поддерживается в каждой сети независимо и взаимодействие между ними не всегда существует.

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

Сейчас создан новый протокол WHOIS++, в котором учтены прежние недостатки. WHOIS доступно для пользователей Интернет с помощью команды telnet. Возможна посылка запросов и по электронной почте.

Обращение к базе данных производится по команде WHOIS (значение параметра заключается в угловые скобки). Обращение к местному клиент-серверу производится по форме:

WHOIS <-h имя_сети> идентификатор

Где имя_сети - адрес домена, куда вы собираетесь послать запрос (например, whois.internic.net); идентификатор - фамилия человека, название сети или домена, IP-адрес. С идентификатором могут использоваться специальные символы, определяющие тип поиска.

. (точка)

перед идентификатором задает поиск по фамилии;

!

перед идентификатором задает поиск по handle;

... or

после идентификатора определяет режим частичного поиска: все, что начинается с идентификатора подходит.

@

(в идентификаторе) осуществляет поиск по e-mail адресу.
* перед идентификатором извлекает полный список рекордов, соответствующих идентификатору (например, сеть и все зарегистрированные пользователи).

%

перед идентификатором извлекает список всех зарегистрированных пользователей узла (или региона).

~

перед идентификатором выдает распечатку объекта, который точно соответствует идентификатору.
<
/p> Эти символы могут использоваться и в комбинации. Результат поиска отображается либо в виде полного текста найденной записи, либо в виде списка строк, характеризующих найденные рекорды. В обоих случаях handle следует в скобках за именем.

Для получения информации в интерактивном режиме используется telnet по адресу whois.internic.net (или whois.ripe.net). Далее прописные буквы обозначают приемлемые сокращения; опционные параметры помещаются в угловые скобки.

WHOIS Вызов программы;
? Вызов справочного материала;
HElp Вызов полномасштабной справочной поддержки;
Q, QUIT, Клавиша <Enter> Выход из WHOIS
<ключевое слово>идентификатор Поиск в базе записей, содержащих идентификатор, ключевое слово может использоваться, чтобы ограничить область поиска каким-то одним полем.
Можно использовать следующие ключевые слова:



PErson
Ограничивает поиск людьми;
DOmain Ограничивает поиск доменами (например, DO EARN.NET);
HOst Oграничивает поиск ЭВМ (например, HO PRINCETON);
NEtwork Ограничивает поиск сетями (например, NE EBONE);
Organization Ограничивает поиск организациями (например, O CERN)
NАme То же что и лидирующая '.' в идентификаторе;
HАndle То же что и ! в идентификаторе;
PАrtial То же что и завершающая '.' в идентификаторе;
Mailbox То же что и @ в идентификаторе;
EXPand То же что и '*' в идентификаторе;
SUBdisplay То же что и '%' в идентификаторе;
Full or '=' Детально отображает каждый найденный объект;
SUMmary or '$' Выдает лишь список найденного;
Использование базы данных для получения списка лиц для коммерческих целей категорически запрещено (при выявлении расстрел на месте преступления :-)).

Пример использования WHOIS.

telnet wais.ripe.net

Trying 39.13.5.97 ... (IP-адрес сервера)

Connected to info.ripe.net.

Escape character is '^]'.

RIPE Network Coordination Centre (NCC)

INTERACTIVE INFORMATION SERVICE

Report bugs to <ncc@ripe.net>.

Enter terminal type (? for help) [vt100]: ibmpc

Number of lines your terminal can display ? [24]



Information Services Menu

  1 - About RIPE and the RIPE NCC
  2 - Browse through the NCC Document Store (Gopher)
  3 - Keyword Search of the NCC Document Store (WAIS)
  4 - Search the RIPE Database (whois)
(DISABLED) 5 - Browse through the NCC Document Store (WWW)
  6 - HELP for mailing documents to the UK
  q - Quit
Enter Selection: 4 (выбираем позицию 4 - WHOIS)

Enter search key [q to quit]: msu.su. (Проводим поиск записей, относящихся к домену msu.su). Система выдает:

domain: MSU.SU

descr: Lomonosov Moscow State University

admin-c: SB16

admin-c: DA196

tech-c: DA196

tech-c: SN4-RIPE

zone-c: DA196

nserver: unisun.radio-msu.net sun01a.desy.de

nserver: ns1.barrnet.net ns2.barrnet.net

sub-dom: npi cs srcc phys chem cogsci bio bog mics math geogr med

sub-dom: econ rector logos geol lib sai journ cshe hist genebee

sub-dom: law soc pvt

changed: ada@radio-msu.net 950316

source: RIPE

person: Sergey F. Berezhnev

address: Nuclear Physics Institute

address: Moscow State University

address: 119899 Moscow

address: Russia

phone: +7 095 932 8974

phone: +7 095 939 5877

fax-no: +7 095 932 8974

e-mail: sfb@radio-msu.net

nic-hdl: SB16

notify: noc@radio-msu.net

changed: ada@radio-msu.net 950303

source: RIPE

person: Dmitry A. Avdeyev

address: Nuclear Physics Institute

address: Moscow State University

address: 119899 Moscow

address: Russia

phone: +7 095 932 8880

phone: +7 095 939 5877

fax-no: +7 095 932 8974

e-mail: ada@radio-msu.net

nic-hdl: DA196

notify: ada@radio-msu.net

mnt-by: RADIO-MSU-MNT

changed: ada@radio-msu.net 950302

source: RIPE

person: Serge Yu. Nikiphorov

address: Nuclear Physics Institute

address: Moscow State University

address: 119899 Moscow

address: Russia

phone: +7 095 932 8880

phone: +7 095 939 5877

e-mail: serg@radio-msu.net

nic-hdl: SN4-RIPE

changed: ada@radio-msu.net 950130

source: RIPE

Enter search key [q to quit]: q

Еще один пример поиска в базе данных WHOIS, здесь задача решается с помощью команды, обращенной к серверу RIPE. Ищется информация об узле itep.ru: whois –h whois.ripe.net itep.ru (ЭВМ SUN):

domain: ITEP.RU

descr: Institute for Theoretical and Experimental Physics

descr: ITEP, B.Cheremushkinskaja 25,

descr: Moscow 117259, Russia.

admin-c: Yuri Al. Semenov

tech-c: Andrey N. Bobyshev

zone-c: Andrey N. Bobyshev

nserver: ns.itep.ru suncom.itep.ru sun01a.desy.de

dom-net: 192.148.166.0 193.124.224.0 193.124.225.0 193.124.226.0

remarks: fully-managed

changed: bobyshev@cl.itep.ru 950218

source: RIPE

person: Yuri Al. Semenov

address: Institute for Theoretical

address: and Experimental Physics

address: B.Cheremushkinskaja 25,

address: Moscow 117259, Russia.

phone: +7 095 1230292

fax-no: +7 095 1236584

e-mail: semenov@cl.itep.ru

changed: bobyshev@cl.itep.ru 941005

source: RIPE

person: Andrey N. Bobyshev

address: ITEP

address: B.Cheremushkinskaja 25,

address: Moscow 117259, Russia.

phone: +7 095 1230292

fax-no: +7 095 1236584

e-mail: bobyshev@cl.itep.ru

nic-hdl: AB293

changed: bobyshev@cl.itep.ru 941005

source: RIPE

Существуют и другие программы для поиска информации о клиентах сети Internet (например, knowbot). Обращение к такой программе может быть выполнено, в частности, командой telnet nri.reston.va.us 185 (185 - номер порта). После входа в систему вы можете выдать запрос информации о возможностях системы поиска, напечатав ?, или просто выдав команду query vanja ivanov. Пользователи могут послать запрос через e-mail по адресу mailserv@internic.net. Команды записываются в поле subject. Текст сообщения обычно пуст, если subject не содержит команд, то интерпретируется первая строка текста сообщения. Запросы должны начинаться со слова WHOIS. Например: WHOIS \!EARN (\ представляет собой символ esc). Служба WHOIS документирована в RFC-1400. С любыми вопросами следует обращаться по адресу action@internic.net. Исчерпывающую информацию о WHOIS можно получить через анонимное FTP по адресам: nic.merit.edu /documents или sipb.mit.edu /pub/whois/whois-servers.list. Для этих же целей можно воспользоваться WWW: www.earn.net gnrt/whois.html или gopher: phantom.bsu.edu :4320/7whois%20rs.internic.net (число после двоеточия - номер порта). К материалам о WHOIS имеется доступ и с помощью telnet: rs.internic.net.

WWW



4.5.6 WWW

Определения и понятия

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

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

Человечество научилось усовершенствовать данные нам природой каналы информационного обмена. Сначала это были примитивные сигнальные системы типа костров на вершинах холмов (пропускная способность 0,5 бит/час). Появление письменности открыло возможность общения уже умерших людей с живыми, обеспечив процесс накопления знаний. Довольно большие объемы информации могли уже передаваться с использованием лошадей и кораблей на практически неограниченные расстояния. Но скорость такого обмена была ничтожна, доставка сообщения занимала часы, дни, а иногда и годы (никакого намека на работу современной почты я здесь не делаю).

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

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

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

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

К Интернет получили доступ десятки миллионов людей. Если в издательствах редакторы, заботясь о доходах и избегая убытков, блокируют доступ графоманов к широким массам читателей, такого механизма в Интернет не существует. Таким образом, программные средства, фильтрующие поток данных на входе вашего почтового или web-сервера, здесь также весьма актуальны. Ниже даются некоторые определения понятий, используемых в разделах о протоколе http, www и информационном поиске.

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

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


Одной из разновидностей знака является символ. Разновидностью знаковых систем являются языки, самым сложным из которых является естественный человеческий язык. Все проявления и применения знаков и знаковых систем изучает семиотика. Предметом семиотики является связь знаков друг с другом, с обозначаемыми ими объектами и явлениями, а также с субъектами их использующими для целей коммуникаций. Семиотика содержит в себе три раздела: семантика, синтактика и прагматика.

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

World Wide Web (всемирная сеть, WWW или 3W) представляет собой информационную систему, базирующуюся на использовании гипертекста. Разработка этой системы была начата Тимом Бернерс-Ли, которому в 1989 году пришла в голову мысль объединить гипертекст с Интернет. Идея впервые реализована в ЦЕРН (Женева). Доступ к WWW возможен только в рамках протоколов TCP/IP, но для использования 3w необязательно иметь сервер-клиент (browser) на вашей машине. С некоторыми ограничениями возможен доступ и через электронную почту (listserv@info.cern.ch). Если WWW-клиент-сервер не установлен, можно работать в режиме удаленного терминала. Весьма удобным программным интерфейсом для WWW является ms explorer, netscape и некоторые другие. Для подготовки документов в рамках HTML (Hypertext Markup Language) пригоден любой текстовый редактор (например, emacs в UNIX-машинах, ME в MS-DOS или Winword, в последних версиях которого уже допускаются гиперссылки). При подготовке гипертекстов вы можете использовать язык HTML или взять одно из множества доступных программных средств, которые позволяют преобразовать ваш документ в необходимый формат. Документы в гипертексте связываются друг с другом определенным набором слов. Пользователю не нужно знать, где находится тот или иной документ.Часто ссылки на серверы WWW начинаются с сокращения http:// (Hypertext Transfer Protocol). Гипертекст позволяет осуществлять ссылки-разъяснения на статьи, хранящиеся на удаленном сервере. Гипертекст подразумевает не только текстовые объекты (но и графические или звуковые), поэтому термин гиперсреда (hypermedia) более правилен. WWW может проводить поиск ключевых слов и в специфических документах-индексах, в этом случае выдаются указатели на искомые документы. WWW может использовать различные форматы документов и работать с разнообразными структурами информации, обеспечивая доступ к информационной вселенной. На Рисунок 4.5.6.1 показан рост числа WEB-серверов, базирующихся на разных программных продуктах (www.netcraft.com). В 2000 году скорость регистрации web-серверов достигла 1 в секунду.