Siguiente: Cambios que hemos hecho Superior: Mejorando NFS Anterior: Introducción |
Para su funcionamiento, NFS utiliza un sistema para llamar a funciones a través de la red de forma más o menos transparente llamado RPC, desarrollado por SUN. RPC se basa a su vez en XDR, un sistema de descripción de tipos de datos que permite hacer las RPCs independientes de la arquitectura y plataforma. De esta forma, NFS logra ser independiente de la arquitectura y de la plataforma, cumpliendo así el primero de sus parámetros de diseño.
El segundo objetivo de diseño, que es conseguir que se recupere frente a caídas del servidor, lo logra haciendo éste sin estado y las operaciones idempotentes en la medida de lo posible1. Aunque no todas las operaciones pueden ser idempotentes, se intenta que lo sean en la medida de lo posible, por ejemplo, una cache de operaciones recientes. Read y write son idempotentes, así que copy también lo es por haber sido diseñada de forma parecida (enviando la posición u offset del fichero origen y destino) y además, al no ser más que la suma de read y write, dos operaciones idempotentes, a la fuerza tiene que ser idempotente si está bien implementada.