On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Интерфейсы

   Функциональное описание взаимодействия между пользователем и Internet 
протоколом будет, в лучшем случае, умозрительным в силу специфики 
операционной системы. Следовательно, мы должны предупредить читатетлей, 
что различные реализации Internet протокола будут иметь различный 
интерфейс с пользователем. Тем не менее, все реализации должны давать 
определенный минимальный набор услуг, с тем, чтобы гарантировать , что все 
они придерживаются единой иерархи протоколов. Данная глава описывает 
интерфейс с функцией, обызательный для всех реализаций.
   Internet протокол взаимодействует, с одной стороны, с локальной 
сетью, а с другой - с протоколом более высокого уровня или прикладной 
программой. В дальнейшем протокол более высокого уровня или прикладную 
программу (или даже программу межсетевого шлюза) мы будем называть 
"пользователем", поскольку они используют Internet модуль для своих 
целей. Поскольку Internet протокол - это протокол работы с датаграммами, 
то в промежутке между этапами их передачи системе придаются минимальные 
ресурсы памяти, она поддерживает определенные регистры состояния, а 
следовательно, каждый вызов пользователем Internet протокола сообщает 
системе всю информацию, необходимую для осуществления требуемого сервиса. 
                  Пример интерфейса с вышестоящим уровнем                 
   Два примера вызовов, приведенные ниже, удовлетворяют запросы 
пользователя в общении с Internet протоколом (символ "=>" означает 
возвращаемое значение).SEND(src,dst,prot,TOS,TTL,BufPTR,len,Id,DF,opt => result)
где  src    - адрес отправителя  dst    - адрес получателя  prot   - протокол
  TOS    - тип сервиса  TTL    - время жизни  BufPTR - указатель буфера
  len    - длина данных в буфере  Id     - идентификатор
  DF     - запрет фрагментации  opt    - опции  result - ответ:
     Ok    - успешная посылка датаграммы
     Error - ошибка в аргументах функции или в локальной сети
   Заметим, что тип сервиса TOS включает приоритет, а требование 
безопасности передается в качестве опции.
RECV(BufPTR,prot => result,src,dst,TOS,len,opt)  BufPTR - указатель буфера
  prot   - протокол  result - ответ:      Ok    - успешное получение датаграммы
      Error - ошибка в аргументах  len    - длина буфера 
  src    - адрес отправителя  dst    - адрес получателя  TOS    - тип сервиса
  opt    - опции
   Когда пользователь отправляет датаграмму, он осуществляет SEND вызов, 
сопровождаемый всеми аргументами. Модуль Internet протокола по получении 
этого вызова проверяет аргументы, приготавливает и отправляет сообщение. 
Если аргументы в порядке, а датаграмма принята локальной сетью, то вызов 
завершается успешно. Если же агрументы неверны или датаграмма не принята 
локальной сетью, то вызов завершается с ошибкой. В последнем случае должен 
быть сделан соответствующий отчет о причине проблемы, однако детали таких 
отчетов относятся уже к конкретным реализациям. 
   В момент, когда датаграмма приходит на модуль Internet протокола из 
локальной сети, может присутствовать ожидающий ее RECV вызов от 
пользователя - адресата, а может и не присутствовать. В первом случае 
ожидающий вызов удовлетворяется посылкой информации из датаграммы к 
пользователю. Во втором случае пользователю - адресату посылается 
напоминание о ждущей его датаграмме. Если пользователь - адресат не 
присутствует, отправителю возвращается ICMP сообщение об ошибке, а 
принятые данные разрушаются.
   Напоминание пользователю может быть выполнено через псевдопрерывание 
или с помощью аналогичного механизма в соответствии с конкретной 
операционной системой, поддерживающей данную реализацию.
   Сделанный пользователем запрос RECV может быть немедленно удовлетворен 
ждущей этого датаграммой или же он может быть задержан до получения 
соответствующей датаграммы.
   Адрес отправителя включается в запрос на посылку, если отправляющий 
датаграмму хост-компьютер имеет несколько адресов (несколько физических 
соединений или же чисто логических адресов). Internet модуль должен 
следить за тем, чтобы адрес отправителоя был одним из разрешенных адресов 
для данного хоста.
   Реализация протокола может допускать или даже требовать применения 
запроса к Internet модулю для обозначения заинтересованности, или же, 
наоборот, использование исключительно какого-либо класса датаграмм (т.е. 
всех датаграмм, которые имеют в поле протокола определенное занчение).
   Данная глава характеризует функции интерфейса между пользователем и 
Internet протоколом. Используемые обозначения аналогичны большинству 
процедур функций вызовов на языках высокого уровня, однако данный способ 
обращения с Internert протоколом не является правилом для запросов на 
обслуживание типа ловушек (т.е. SVC, UUO, EMT), или для любой другой формы 
общения между процессами.
Назад       Содержание       Вперёд