The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа
next up previous contents index
Next: Буфер сверхоперативной памяти (кеш) Up: Файловая система Previous: Каналы   Contents   Index

Сокеты

Ранее было показано, каким образом взаимодействуют между собой процессы, протекающие на разных машинах, при этом обращалось внимание на то, что способы реализации взаимодействия могут быть различаться в зависимости от используемых протоколов и сетевых средств. Более того, эти способы не всегда применимы для обслуживания взаимодействия процессов, выполняющихся на одной и той же машине, поскольку в них предполагается существование обслуживающего (серверного) процесса, который при выполнении функций open или read будет приостанавливаться драйвером. В целях создания более универсальных методов взаимодействия процессов на основе использования многоуровневых сетевых протоколов для системы BSD был разработан механизм, получивший название ``sockets'' (гнезда). Рассмотрим некоторые аспекты применения гнезд (на пользовательском уровне представления).

Модель с использованием гнезд.

               Процесс-клиент       Процесс-сервер
                       |                 |
                       +--+           +--+
+-------------------------+--+     +--+--------------------------+
| Уровень гнезд              |     |          Уровень гнезд      |
+-------------------------+--+     +--+--------------------------+
|                        TCP |     | TCP                         |
| Уровень протоколов      |  |     |  |       Уровень протоколов |
|                        IP  |     | IP                          |
+-------------------------+--+     +--+--------------------------+
|                     Драйвер|     | Драйвер                     |
| Уровень устройств  Ethernet|     |Ethernet  Уровень устройств  |
+-------------------------+--+     +--+--------------------------+
                          +---+   +---+
                              |   |
                             С е т ь

Структура ядра имеет три уровня: гнезд, протоколов и устройств (рисунок). Уровень гнезд выполняет функции интерфейса между обращениями к операционной системе (системным функциям) и средствами низких уровней, уровень протоколов содержит модули, обеспечивающие взаимодействие процессов (на рисунке упомянуты протоколы TCP и IP), а уровень устройств содержит драйверы, управляющие сетевыми устройствами. Допустимые сочетания протоколов и драйверов указываются при построении системы (в секции конфигурации); этот способ уступает по гибкости вышеупомянутому потоковому механизму. Процессы взаимодействуют между собой по схеме клиент-сервер: сервер ждет сигнала от гнезда, находясь на одном конце дуплексной линии связи, а процессы-клиенты взаимодействуют с сервером через гнездо, находящееся на другом конце, который может располагаться на другой машине. Ядро обеспечивает внутреннюю связь и передает данные от клиента к серверу.



Alex Otwagin 2002-12-16



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру