на клієнті, а деякі використовуються і тим і іншим. Деякі компоненти не потрібні для забезпечення основних функціональних возможностеей, але становлять частину розширеного інтерфейсу NFS:
Протокол NFS визначає набір запитів (операцій), які можуть бути спрямовані клієнтом до сервера, а також набір аргументів і повертаються значення для кожного з цих запитів. Версія 1 цього протоколу існувала тільки в надрах Sun Microsystems і ніколи не була випущена. Всі реалізації NFS (у тому числі NFSv3) підтримують версію 2 NFS (NFSv2), яка вперше була випущена в 1985 році в SunOS 2.0. Версія 3 протоколу була опублікована в 1993 році і реалізована деякими фірмами-постачальниками. У таблиці 3.1 наведено повний набір запитів NFS. Протокол віддаленого виклику процедур (RPC) визначає формат всіх взаємодій між клієнтом і сервером. Кожен запит NFS посилається як пакет RPC. Розширене подання даних (XDR - Extended Data Representation) забезпечує машинно-незалежний метод кодування даних для пересилання через мережу. Всі запити RPC використовують кодування XDR для передачі даних. Слід зазначити, що XDR і RPC використовуються для реалізації багатьох інших сервісів, крім NFS. Програмний код сервера NFS відповідає за обробку всіх запитів клієнта і забезпечує доступ до експортованим файловим системам. Програмний код клієнта NFS реалізує всі звернення клієнтської системи до виділених файлів шляхом посилки серверу одного або декількох запитів RPC. Протокол монтування визначає семантику монтування та размонтирования файлових систем NFS. NFS використовує кілька фонових процесів-демонів. На сервері набір демонів nfsd очікують запити клієнтів NFS і відповідають на них. Демон mountd обробляє запити монтування. На клієнті набір демонів biod обробляє асинхронний ввід/вивід блоків файлів NFS. Менеджер блокувань мережі (NLM - Network Lock Manager) і монітор стану мережі (NSM - Network Status Monitor) разом забезпечують засоби для блокування файлів у мережі. Ці кошти, хоча формально не пов'язані з NFS, можна знайти в більшості реалізацій NFS. Вони забезпечують послуги не можливі в базовому протоколі. NLM і NSM реалізують функціонування сервера за допомогою демонів lockd і statd відповідно. Відсутність збереження стану
Можливо найбільш важливою характеристикою протоколу NFS є те, що сервер, щоб працювати коректно, не запам'ятовує станів і не потребує ні якої інформації про своїх клієнтів. Кожен запит є повністю незалежним від інших запитів і містить всю необхідну інформацію для його обробки. Серверу не потрібно підтримувати жодних записів про минулі запитах клієнтів, за винятком необов'язкових можливостей, які можуть використовуватися з метою кешування даних або для збору статистики. p> Наприклад, у протоколі NFS відсутні запити по відкривання і закривання файлів, оскільки вони створили б інформацію про стан, яка повинна запам'ятовуватися сервером. З цієї ж причини, запити read і write передають як параметр початкове зміщення, на відміну від опер...