Сетевое ПО Лекция 6 (Электронные лекции)
Описание файла
Файл "Сетевое ПО Лекция 6" внутри архива находится в следующих папках: Электронные лекции, 2 модуль СПО. PDF-файл из архива "Электронные лекции", который расположен в категории "". Всё это находится в предмете "сетевое программное обеспечение" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "сетевое программное обеспечение" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Сетевое ПО. Лекция 6(2014 г.)1Оглавление12Файловые серверы типа stateful и stateless ...................................................................................................1Примеры сетевых файловых служб: FTP и NFS .......................................................................................... 32.1 Протокол передачи файлов FTP .............................................................................................................32.1.1Состав модулей FTP ......................................................................................................................
42.1.2Общая схема взаимодействия клиента и сервера..........................................................................52.2 Файловая система NFS ........................................................................................................................... 82.2.1Задачи NFS................................................................................................................................... 102.2.2Протоколы NFS............................................................................................................................
102.2.3Реализация NFS ........................................................................................................................... 133 Выз ов удаленных процедур(Remote Procedure Call, RPC). ................................................................. 163.1 Концепция удаленного вызова процедур ............................................................................................. 163.2 Достижение прозрачности механизма RPC.......................................................................................... 181 Файловые серверы типа stateful и statelessФайловый сервер может быть реализован по одной из двух схем: с запоминанием данных о последовательности файловых операцийклиента - по схеме stateful. без запоминания данных о последовательности файловых операцийклиента - по схеме stateless.Серверы stateful работают по схеме, обычной для любой локальнойфайловой службы.
Такой сервер поддерживает тот же набор вызовов, что илокальная система, то есть вызовы open, read, write, seek и close.Открывая файлы по вызову open, переданному по сети клиентом, серверstateful должен запоминать в своей внутренней системной таблице, какиефайлы открыл каждый пользовательОбычно при открытии файла клиентскому приложению возвращается посети дескриптор файла fd или другое число, которое используется припоследующих вызовах для идентификации файла.При поступлении вызова read, write или seek сервер используетдескриптор файла для определения, какой файл нужен.
В этой таблицехранится также значение указателя на текущую позицию в файле,относительно которой выполняется операция чтения или записи.Сервер stateless после получения запроса от клиента, выполняет его,отсылает ответ, а затем удаляет из своих внутренних таблиц всю информацию озапросе.2Сетевое ПО. Лекция 6(2014 г.)Между запросами на сервере не хранится никакой текущей информации осостоянии клиента. Для сервера stateless каждый запрос должен содержатьисчерпывающую информацию (полное имя файла, смещение в файле и т.
п.),необходимую серверу для выполнения требуемой операции. Очевидно, что этаинформация увеличивает длину сообщения и время, которое тратит сервер налокальное открытие файла каждый раз, когда над ним производится очереднаяоперация чтения или записи.Серверы, работающее по схеме stateless, не поддерживают в протоколеобмена с клиентами таких операций, как открытие (open) и закрытие (close)файлов.Принципиально набор команд, предоставляемый клиенту серверомstateless, может состоять только из двух команд: read и write . Эти командыдолжны передавать в своих аргументах всю необходимую для сервераинформацию — имя файла, смещение от начала файла и количество читаемыхили записываемых байт данных.Для того чтобы обеспечить приложениям, работающим на клиентскихмашинах, привычный файловый интерфейс, включающий вызовы открытия изакрытияфайлов,клиентфайловойслужбыдолженсамостоятельноподдерживать таблицы открытых его приложениями файлов.Основным последствием переноса таблиц открытых файлов на клиентовпри применении серверов stateless является реакция файловой службы на отказсервера.При отказе сервера stateful теряются все его таблицы, и послеперезагрузкинеизвестно,какиефайлыоткрылкаждыйпользователь.Последовательные попытки провести операции чтения или записи с открытымифайлами будут безуспешными.Серверы stateless в этом плане являются более отказоустойчивыми,позволяя клиентам продолжать операции с открытыми файлами, и это являетсяосновным аргументом в пользу их применения.Сетевое ПО.
Лекция 6(2014 г.)3Платой за отказоустойчивость может быть скорость работы сервера, так какему приходится выполнять больше операций с файлами.Кроме того, применение серверов stateless затрудняет реализациюблокировок файлов, так как информацию о блокировке файла одним изпользователей необходимо запоминать на всех клиентах файлового сервера.Преимущества каждого из подходов можно обобщить следующимобразом.Серверы stateless: отказоустойчивы; не нужны вызовы open/close; меньше памяти сервера расходуется на таблицы; нет ограничений на число открытых файлов; отказ клиента не создает проблем для сервера.Серверы stateful: более короткие сообщения при запросах; лучше производительность; возможно опережающее чтение; возможна блокировка файлов.2 Примеры сетевых файловых служб: FTP и NFS2.1 Протокол передачи файлов FTPСетевая файловая служба на основе протокола FTP (File TransferProtocol) представляет собой одну из наиболее ранних служб, используемыхдля доступа к удаленным файлам.До появления службы WWW это была самая популярная служба доступак удаленным данным в Интернете и корпоративных IP-сетях.Клиенты FTP встроены сегодня в программы просмотра (браузеры)Интернета, так как архивы файлов на основе протокола FTP по-прежнемупопулярны и для доступа к таким архивам браузером используется протоколFTP.4Сетевое ПО.
Лекция 6(2014 г.)Протокол FTP позволяет целиком переместить файл с удаленногокомпьютера на локальный и наоборот, то есть работает по схеме загрузкивыгрузки.Кроме того, он поддерживает несколько команд просмотра удаленногокаталога и перемещения по каталогам удаленной файловой системы.Поэтому FTP особенно удобно использовать для доступа к тем файлам,данные которых нет смысла просматривать удаленно, а гораздо эффективнейцеликомпереместитьнаклиентскийкомпьютер(например,файлыисполняемых модулей приложений).В протокол FTP встроены примитивные средства аутентификацииудаленных пользователей на основе передачи по сети пароля в открытомвиде.Кроме того, поддерживается анонимный доступ, не требующий указанияимени пользователя и пароля, который является более безопасным, так как неподвергает пароли пользователей угрозе перехвата.Протокол FTP выполнен по схеме клиент-сервер.2.1.1 Состав модулей FTPКлиент FTP состоит из нескольких функциональных модулей:UserпринимающийInterfaceот—пользовательскийпользователясимвольныеинтерфейс,командыиотображающий состояние сеанса FTP на символьном экране.User-PI — интерпретатор команд пользователя.
Этотмодуль взаимодействует с соответствующим модулем сервераFTP.User-DTP — модуль, осуществляющий передачуданных файла по командам, получаемым от модуля User-PI попротоколуклиент-сервер.Этотмодульвзаимодействуетслокальной файловой системой клиента.FTP-сервер включает следующие модули:oServer-PI—модуль,которыйпринимаети5Сетевое ПО. Лекция 6(2014 г.)интерпретирует команды, передаваемые по сети модулем User-PI.oServer-DTP — модуль, управляющий передачейданных файла по командам от модуля Server-PI.
Взаимодействует слокальной файловой системой сервера.Клиент и сервер FTP поддерживают параллельно два сеансауправляющий сеанссеанс передачи данных.Управляющий сеанс открывается при установлении первоначальногоFTP-соединения клиента с сервером, причем в течение одного управляющегосеанса может последовательно выполняться несколько сеансов передачиданных, в рамках которых передаются или принимаются несколько файлов.2.1.2 Общая схема взаимодействия клиента и сервера1. Сервер FTP всегда открывает управляющий порт TCP 21 дляпрослушивания, ожидая приход запроса на установление управляющегосеанса FTP oт удаленного клиента.2. После установления управляющего соединения клиент отправляет насервер команды, которые уточняют параметры соединения: имя и пароль клиента; рольучастниковсоединения(активнаяилипассивная); порт передачи данных; тип передачи; тип передаваемых данных (двоичные данныеили ASCII-код); директивы на выполнение действий (читатьфайл, писать файл, удалить файл и т.
п.).3. Послесогласованияпараметровпассивныйучастниксоединения переходит в режим ожидания открытия соединения на портпередачи данных. Активный участник инициирует это соединение и6Сетевое ПО. Лекция 6(2014 г.)начинает передачу данных.4. После окончания передачи данных соединение по портамданных закрывается, а управляющее соединение остается открытым.Пользователь может по управляющему соединению активизироватьновый сеанс передачи данных.Порты передачи данных выбирает клиент FTP (по умолчаниюклиент может использовать для передачи данных порт управляющегосеанса), а сервер должен использовать порт, на единицу меньший портаклиента.Протокол FTP использует при взаимодействии клиента с серверомнесколько команд (не следует их путать с командами пользовательскогоинтерфейса клиента, которые использует человек).Эти команды делятся на три группы:команды управления доступом к системе;команды управления потоком данных;команды службы FTP.В набор команд управления доступом входят следующиекоманды:USER — доставляет серверу имя клиента.