Протокол пересылки файлов.
Finger является простым примером TCP / IP приложений, использующих ASCII-протокол. Finger это серверная программа, которая предоставляет информацию запрашивающему клиенту. Информация, обычно относится к учетным записям пользователей на хосте, хотя многие провайдеры используют Finger сервера для обеспечения информации о состоянии. Известный Finger порт TCP порт 79.
Finger клиент открывает порт, а затем посылает запрос, который либо является пустой строкой или именем пользователя. Сервер отвечает, посылая текст и закрытие соединения. Если пустая строка была отправлена, Вы можете получить информацию обо всех пользователях известных системе, имя пользователя будет возвращать информацию
о том, что вы конкретный пользователь.
Finger протокол был изобретен, прежде чем кто-то подумал о спаме. По понятным причинам, большинство организаций не работают с Finger серверами , так как они отвечают стандартным сообщением на любой запрос. С нашей точки зрения достопримечательность Finger сервера в том, что протокол чистый ASCII текст, как вы можете убедиться при подключении к серверу с помощью Telnet клиента.
Протокол пересылки файлов
Telnet позволяет вам взаимодействовать с приложением, запущенным на удаленном компьютере, но у него нет возможности позволяющей копировать файлы с жесткого диска вашего компьютера, ни для загрузки файлов на удаленную систему. Эта функция осуществляется с помощью File Transfer Protocol (FTP).
Спецификация FTP обслуживает несколько различных типов файлов, структуру и режим передачи, но на практике реализация FTP признаёт либо текстовые файлы или двоичные файлы. Текстовые файлы преобразуются из их собственного формата 7-битные ASCII с каждой строки, завершающейся возвратом каретки, перевода строки для передачи. Они преобразуются обратно в родной формат текста FTP-клиентом. Следовательно,FTP обеспечивает кросс-платформенный механизм передачи для текстовых файлов. Двоичные файлы передаются точно так, как есть.
Данные передаются в виде непрерывного потока байтов. Транспортный протокол TCP обеспечивает надежность всех данных, убедившись, что данные, которые потерялись повторно отправляет и убеждается , что они получены правильно. Стоит отметить, что обнаружение ошибок использует простую 16-битную контрольную сумму, так что вероятность необнаружения ошибки высока по сравнению с протоколом передачи файлов, как Zmodem, который использует 32-битный CRC.
FTP является необычным по сравнению с другими приложениями TCP, так как он использует два TCP-соединения. Контроль соединения с известным FTP портом 21, и он используется для передачи команд FTP и получения ответа. Отдельное подключение данных устанавливается всякий раз, когда файл или другая информация, должна быть передана, и закрывает порт , когда передача данных завершена. Хранение данных и команд отдельно , делает жизнь легче для клиентского программного обеспечения, и означает, что управляющее соединение всегда может отправить команду ABOR (прервать) прекратить длительные передачи данных.
FTP-команды передаются в виде обычного 7-битного ASCII, и состоят из команды до 4 символов следующих от ноля или других параметров (тем, кто знаком с текстовым режимом FTP-клиентов, таких которые поставляются Microsoft Windows, возможно, будет любопытно, что FTP-команды не те же команды, которые передаются клиенту FTP). Ответы состоят из трех цифр с последующим необязательным объяснением текста, например, «250 CWD команда прошла успешно». Цифры — для удобства интерпретации клиентского программного обеспечения FTP, объяснения в интересах пользователей.
Поучительно посмотреть, что происходит во время простой FTP-сессии. При подключении к серверу FTP (TCP порт 21) он посылает ему префикс приветствие числовой код 220. FTP клиент запрашивает ваше имя пользователя, которые он затем отправляет с использованием FTP команды «USER имя пользователя». Сервер может ответить «331 Need пароль имя пользователя». Клиент определяет это, предлагает ввести пароль и отправляет на сервер с помощью команды «PASS пароль». Если пароль верный клиент получит ответ «230 Доступ разрешен».
Следующая вещь, которую вы можете сделать, это набрать DIR, чтобы вывести текущую директорию на сервере. Эта команда для клиента результата в двух FTP командах выдаётся на сервер. Во-первых, «PORT х, х, х, х, y1, y2» сообщает серверу IP-адрес (хххх) и номер порта (y1 * 256 + y2), используемый для передачи данных. Номер порта, один в диапазоне от 1024 до 4999 , используемый для эфемерных соединений (те, которые используются для некоторых конкретных целей). Во-вторых, LIST, заставляет сервер открыть указанный порт, отправить список каталогов, и закрыть его снова.
Загрузка
Последовательность загрузки файла очень похожа на получение списка каталогов. Во-первых, используется команда порта, чтобы указать порт подключения данных, а затем команда «RETR файла» отправляет указатель, какой файл будет восстановлен. Сервер открывает порт данных и отправляет данные, которые клиент пишет на жесткий диск. Сервер закрывает соединение TCP на порте данных при завершенной передаче файлов, который является сигналом для клиента, чтобы закрыть только что созданный файл.
Хотя вам вряд ли придется написать собственный клиент или сервер для любых из этих протоколов, описание выше предлагает некоторые полезные идеи в работе Интернет-приложений. Возможно, наиболее поразительное об интернет-протоколах, какие они простые. Поскольку нижние уровни протокола заботятся о надежности, маршрутизации и физической передаче, применяемые протоколы занимаются только вещами, связанными с приложением. Это красота с использованием многоуровневого стека протоколов.