Лекции 2010-го года (1130544), страница 91
Текст из файла (страница 91)
После этого активный модуль (например,«Server-DTP») открывает соединение и начинает передачу данных.4.После окончания передачи данных соединение между «Server-DTP» и «User-DTP»закрывается, но управляющее соединение «Server-PI» - «User-PI» остаетсяоткрытым. Пользователь, не закрывая сессии FTP, может еще раз открыть каналпередачи данных, передать необходимую информацию и т.д.FTP может использоваться не только при передаче файлов между клиентом и сервером, нои между двумя FTP-серверами, ни один из которых не расположен на локальном хостепользователя.Для этого пользователь сначала устанавливает управляющие соединения с двумя FTPсерверами, а затем устанавливает между ними канал передачи данных.
В этом случаеуправляющая информация передается через модуль «User-PI», но данные транслируютсячерез канал «Server1-DTP» - «Server2-DTP».Алгоритм работы FTP-схемы, изображенной на рисунке 7-100, выглядит следующимобразом:1.Пользователь «User-PI» указал серверу «Server1-PI» работать в пассивном режиме,после чего сервер «Server1-PI» отправил пользователю «User-PI» адрес и номерпорта (N), который он будет слушать.2.«User-PI» назначил сервер «Server2-PI» активным участником соединения и указалему передавать данные на хост «Server1-PI» на порт (N).3.«User-PI» подал серверу «Server1-PI» команду «сохранить поступившие данные втаком-то файле», а серверу «Server2-PI» - «передать содержание такого-то файла».4.Между серверами «Server1-DTP» и «Server2-DTP» образуется поток данных,который управляется клиентским хостом.Основу передачи данных FTP составляет механизм установления соединения междусоответствующими портами и механизм выбора параметров передачи. Каждый участникFTP-соединения должен поддерживать 21 порт передачи данных по умолчанию.
Поумолчанию «User-DTP» использует тот же порт, что и для передачи команд (обозначимего «U»), а «Server-DTP» использует порт номер (L-1), где L-управляющий порт. Однако,как правило, участниками соединения используются порты передачи данных, выбранныедля них «User-PI», поскольку из управляющих процессов, участвующих в соединении,только он может изменить порты передачи данных как у «User-DTP», так и у «ServerDTP».Пассивная сторона соединения должна до того, как будет подана команда начатьпередачу, слушать свой порт передачи данных. Активная сторона, подающая команду кначалу передачи, определяет направление перемещения данных.После того как соединение установлено, между «Server-DTP» и «User-DTP» начинаетсяпередача. Одновременно по каналу «Server-PI» - «User-PI» передаются уведомления ополучении данных.
Протокол FTP требует, чтобы управляющее соединение былооткрыто, пока по каналу обмена данными идет передача. Сессия FTP считается закрытойтолько после закрытия управляющего соединения.Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных.Сервер FTP должен самостоятельно закрыть канал передачи данных в следующихслучаях:1.Сервер закончил передачу данных в формате, который требует закрытиясоединения.2.Сервер получил от пользователя команду прервать соединение.3.Пользователь изменил параметры порта передачи данных.4.Было закрыто управляющее соединение.5.Возникли ошибки, при которых невозможно возобновить передачу данных.FTP-протокол имеет двух «младших братьев»: TFTP - Trivial FTP и SFTP - Simple FTP.7.5.2. Протокол TFTPTFTP-протокол - это простейший протокол передачи файлов.
Он работает поверхтранспортного протокола UDP и обеспечивает выполнение только самых элементарныхопераций передачи файлов, а именно, записи и чтения файлов. TFTP был разработан какпростой и легкий в применении протокол. Он не позволяет вызывать список каталога и неимеет никаких средств аутентификации, но может передавать 8-битную информацию всоответствии со всеми интернет-стандартами.Поскольку передача данных осуществляется поверх UDP, протокол TFTP реализуетсобственные методы надежной доставки данных - пакеты подтверждения, нумерацияблоков данных и пакетов подтверждения и т.п. Все это очень похоже на упрощенныйвариант эмуляции протокола TCP.TFTP работает лишь с пятью командами:1.Read request (RRQ) - запрос на чтение2.Write request (WRQ) - запрос на запись3.Data (DATA) - пакет данных4.Acknowledgment (ACK) - подтверждение5.Error (ERROR) - ошибкаПроцесс передачи данных начинается с поступления от клиента TFTP на сервер запросана чтение или запись файла.
Соединение устанавливается после полученияподтверждения готовности на один из запросов, либо на запись - WRQ, либо на чтение RRQ.При открытии соединения каждая из сторон выбирает (случайным образом) уникальныйидентификатор - TID, который используется в UDP как порт соединения. Каждыйпересылаемый пакет ассоциирован с двумя TID, соответствующими каждой сторонесоединения. Первоначальный запрос отправляется инициатором TFTP-соединения наUDP-порт (порт инициализации), в котором указывается порт соединения. Дальнейшийобмен уже происходит через порты, выбранные участниками передачи данных.Если сервер разрешает запрос, соединение открывается и указанный файл передается(блоками по 512 байт). Каждый пакет передаваемых данных содержит один блок (512байт) передаваемых данных и номер блока в передаваемом потоке.
Поступление каждогоблока на хост назначения должно быть подтверждено пакетом АСК (подтверждение) сномером поступившего блока. Только после получения пакета подтверждения будетотправлен следующий пакет данных.Если длина пакета менее 512 байт, это служит сигналом для закрытия канала связи. Вслучае потери пакета при передаче через некоторый промежуток времени сервер отправитэтот пакет данных повторно.Три типа ситуаций порождают отправку ошибочных пакетов:1.2.3.Не подтвержден запрос, например, не был найден файл, нет прав доступа, и др.Неправильный формат пакета, например, не был найден файл, нет прав доступа, идр.Потерян доступ к требуемому ресурсу.При большом количестве сообщений об ошибках соединение может быть закрыто поинициативе одной из сторон.7.5.3. Протокол SFTPSFTP-протокол передачи файлов пользуется популярностью в тех случаях, еслипользователю необходим чуть более гибкий и надежный протокол, чем TFTP, и не такойсложный и громоздкий, как FTP.SFTP поддерживает механизмы идентификации пользователя, передачу файлов, просмотркаталогов, изменение текущего каталога, переименование и удаление файлов.
Вбольшинстве операций, которые пользователь проводит с удаленным FTP-сервером, этогосервиса вполне достаточно. SFTP может передавать 8-битный поток данных и использует,подобно TFTP, только один канал соединения - как для команд, так и для данных. Вотличие от TFTP, SFTP работает поверх TCP, порт 115.Команды SFTP отправляются поочередно, после получения ответа обработкипредшествующей команды.
Все команды состоят из четырех ASCII-символов и символапробела, который отделяет команду от аргументов. Ответ сервера состоит из кода ответа итекстового сообщения.Команды SFTP имеют почти тот же синтаксис и предназначение, что и аналогичныекоманды FTP.7.6. Протокол работы во Всемирной паутине - HTTPHTTP (Hypertext Transfer Protocol, протокол передачи гипертекста) представляет собойпротокол прикладного уровня.
HTTP обеспечивает высокопроизводительный механизмтиражирования информации мультимедийных систем независимо от типа представленияданных. Протокол может быть использован для решения различных задач, например, дляработы с серверами имен или управления распределенными информационнымисистемами.Всемирная паутина (World Wide Web, или просто Web), состоит из компьютеров, которыепредоставляют доступ к хранящейся на них информации в графической форме.Способность хранить мультимедийную информацию, такую как видео, аудио,изображения, делает Web уникальным средством распространения информации.
Доступ кинформации в Web обеспечивает специальный клиент, который называют браузер. Webсервер представляет собой компьютер, на котором работает определенное программноеобеспечение, предоставляющее возможность пользователям за абонентскими машинами вИнтернете, на которых работает браузер, искать, выбирать и пользоваться web-ресурсами(что это такое, мы обсудим ниже).Идея создать сеть из документов, связанных гиперссылками и расположенных на разныхмашинах, была сформулирована Тимом Бернес-Ли в 1989 году. Создатель Web во времясвоей работы в лаборатории физики частиц института CERN в Женеве ощутилпотребность в распространении информации по физике высоких энергий дляисследователей по всему миру.
И он предложил гипертекстовую систему связи длякомпьютеров. Эта система позволяла его коллегам связывать ссылками разрозненныедокументы, размещенные в компьютерной сети, чтобы распространить свои научныенаходки. CERN способствовал развитию Web, со временем превратив ее из локального вглобальное общемировое приложение. Так же, как Pony Express превратилась в Почтовуюслужбу США, так и первоначальная концепция гипертекстовой системы расширилась израмок общества физиков до размеров Всемирной паутины.Первый раз Web начали использовать в январе 1992 года в Женеве (Швейцария), гдеисследователи могли получить данные с узла CERN.
Бернес-Ли предложил хранитьдокументы на компьютерах, которые он назвал веб-серверами.С 1990 года протокол HTTP используется в Интернете в качестве одного из основныхпротоколов прикладного уровня.7.6.1. Web-сервисыПротокол HTTP позволяет получать доступ к ресурсам и сервисам web-серверов. Дляунификации доступа к многофункциональным ресурсам web-серверы поддерживаюткомплекс интерфейсов, позволяющих структурировать уровни и методы работы сразличными сетевыми ресурсами.
По сути, каждый из интерфейсов представляет собойобъект (в программистском смысле этого слова) со своими методами и своей структурой.Согласованное взаимодействие этих объектов и составляет все разнообразие мира Web.URI (Uniform Resource Identifier, унифицированный идентификатор ресурса), URL(Uniform Resource Locator, унифицированный указатель ресурса), URN (Uniform ResourceName, унифицированное имя ресурса) - разные названия одного и того же сервиса,который предназначен для идентификации типов, методов работы и места расположенияресурса, доступного в Web через Интернет.
Этот сервис состоит из трех частей:• Схема. Идентифицирует тип сервиса, через который можно получить доступ кресурсу, например FTP- или web-сервер.• Адрес. Идентифицирует Интернет-адрес абонентской машины, на которойрасполагается ресурс, например, cmc.cs.msu.su• Имя или путь доступа. Идентифицирует полный путь к ресурсу на выбранномхосте, который мы хотим использовать для доступа к ресурсу, например,/curr/cn/mac.htmlНапример, файл "mac.html", расположенный на веб-сервере факультета ВМиК,представляет собой ресурс с идентификатором: http://cmc.cs.msu.su/curr/cn/mac.html.