Протокол TFTP (Trivial File Transfer Protocol). NFS
Для функционирования службы передачи файлов с использованием транс-портного UDP-протокола применяется TFTP-протокол (протокол простой доставки файлов). В соответствии с этим протоколом все файлы передаются блоками по 512 байтов (рис.1). Первые два байта (октета) каждого блока содержат код операции. Для установления соединения используются два сообщения: “Запрос на чтение файла” и “Запрос на запись файла”. После приёма запроса начинается передача данных. Каждое сообщение “Доставка данных” содержит номер блока данных и сами данные (512 байтов).
На каждый блок данных принимающая сторона отвечает квитанцией «Под-тверждение принятого блока». При возникновении ошибки генерируется специальная квитанция “Сообщение об ошибке”. Принимающая и передающая стороны устанавливают тайм-аут на ожидание следующего блока. Если блок данных или квитанция теряется, то передающая сторона по истечении тайм-аута повторяет передачу блока, а принимающая — передачу квитанции. Этот протокол выполняет очень важную функцию: восстанавливает последовательность фрагментов исходного файла, переданного с помощью UDP- протокола.
Сетевая файловая система. Протокол NFS (Network File System)
Дальнейшим развитием служб передачи файлов является протокол сетевой файловой системы NFS (RFC-1094), разработанный фирмой Sun Microsystems.
Он обеспечивает множественный распределенный доступ к файлам через сеть в оперативном режиме (on¬line). С помощью NFS-протокола пользователь (процесс) практически не различает локальные и удаленные файлы. Когда процесс обращается к файлу (рис.2), ОС определяет, к какому локальному или сетевому файлу обращается клиент, и переадресует управление соответственно локальной или сетевой файловой системе.
Удаленный вызов процедур и преобразование данных.
NFS реализуется одновременно с двумя другими протоколами — удаленного вызова процедур (Remote Procedure Call — RPC, RFC- 1057) и внешнего представления данных (external Data Representation — XDR, RFC-1014). Такое деление позволяет разработчику приложений независимо обращаться к каждому из протоколов и использовать только необходимый набор функций. В совокупности же разработчик получает мощный инструмент для создания распределенных систем.
При разработке, например, системы клиент- сервер RPC-протокол позволяет определить на пользовательской станции некоторые процедуры как удаленные (remote). Эти процедуры будут включены в серверное ПО и декларированы как доступные для удаленного вызова. Далее компиляторы автоматически включат в приложение абонента код, который реализует RPC-протокол и ответствен за взаимодействие распределенных частей системы.
XDR-протокол также облегчает разработку распределённых приложений для разнородных программно-аппаратных сред. Он берёт на себя функцию учёта особенностей платформ, на которых работает. Например, если клиент и сервер используют представления целых чисел с различным порядком следования младших и старших символов (байтов), то XDR-протокол устраняет данное различие.