unix - puerto - protocolo nfs ventajas y desventajas
¿Por qué NFS usa UDP por defecto? (8)
Estoy seguro de que hay alguna razón antigua de herencia, ¿pero qué es? Parece un servicio orientado a la entrega confiable de datos.
Actuación. UDP tiene una sobrecarga mucho menor que TCP. Por otro lado, NFS tiene que manejar el transporte confiable por sí mismo (en comparación con TCP) pero como este es un protocolo para LAN donde los problemas de conexión y los paquetes son (o mejor: deberían) no un problema, está optimizado para el rendimiento.
La conexión UDP sin estado minimiza el tráfico de red, ya que el servidor NFS envía al cliente una cookie después de que el cliente está autorizado para acceder al volumen compartido. Esta cookie es un valor aleatorio almacenado por el lado del servidor y se pasa junto con las solicitudes RPC del cliente.
Mi suposición es que es probablemente por razones heredadas (históricas). Originalmente NFS probablemente se usó en redes de baja latencia donde había muy pocas posibilidades de error, por lo que la sobrecarga de iniciar el intercambio de 3 vías para configurar la conexión TCP (junto con el reconocimiento bidireccional de todos los mensajes) compensaba la simplicidad de usando un protocolo sin conexión como UDP.
Cuando se usa UDP como protocolo de transporte, es posible que corresponda al cliente NFS gestionar las retransmisiones si es necesario.
UDP es el valor predeterminado para NFSv2 (que nadie debería usar actualmente) pero NFSv3 usa TCP de forma predeterminada. Los montajes TCP son más confiables y usted sabe que tiene un problema de red mucho más rápido que con UDP.
UDP es sin estado, TCP no lo es, pero TCP tiene muchas propiedades predefinidas que no se ajustaban a NFS, o más bien que NFS quería gobernar los detalles. En particular, cuando TCP realiza transferencias de paquetes, rige los tiempos de espera, etc.
Con UDP, pierde los gastos generales que no desea de ninguna manera. Cuando el sistema de archivos NFS, originalmente era el pensamiento, el sistema hace una escritura, y si solo termina a medias, sería malo ... así que NFS (en modo difícil) continuará intentándolo para completar la transacción por siempre, 1 minuto, 5, 10, y hora, un día ... cuando la conexión regrese, la transacción podría continuar hasta completarse ...
NFS busca el "estado" en lugar de TCP, cuyo diseño configura un nuevo estado en la nueva conexión (o reconexión), que la conexión (y el estado) podría morir por cualquier razón (hardware) y no persistiría una nueva conexión que estado ... Piense en procesar un archivo ... simplemente deja el proceso en paz, la conexión NFS se desconecta un poco, pero cuando vuelve, todo continuará. Actualmente, las aplicaciones son más inteligentes, las rutas son numerosas, las cosas son más modulares, y somos mucho más impacientes ... si no va a planificar ... alguien recibe una llamada telefónica y tiene que iniciar sesión y ponerlo en marcha de todos modos ... en el día, cuando podría dejarse, fue una cosa más perfecta ... La forma en que funciona sigue siendo buena hoy, pero tiene muchas más opciones ahora, y tiende a tener más personas arreglando todo más rápidamente ahora. Además, la idea de que cada sesión de pase final se mueva de un lado a otro sin comprometerse entre trabajos, hasta que ambas partes acuerden que ya terminaron; en el pasado, NFS hizo mucho por usted ...
La analogía es algo similar a cómo funcionaba el RS232 ... la electrónica hacía lo suyo y cargaba sus búferes y se llenaba y tenía que parar (o perder información), podían pasar ese flujo de información (y vaciar sus búferes y continuar) cuando el CTS (Borrar para enviar pin- como el alfiler de metal en el enchufe) era alto o bajo (lo que se supone que debe ser).
UDP se usa cuando la aplicación administra el protocolo. La aplicación puede tener una mejor idea de cómo hacerlo, o puede ser más rápida (bajo las condiciones especiales de la aplicación). TCP es muy bueno, pero tiene muchos gastos generales asociados.
UDP también se usó porque podría reducir en gran medida el uso de la memoria. En la década de 1980 cuando NFS se desarrolló originalmente, tendrías un sistema UNIX con como 4-8MB de RAM, y (al menos en el entorno académico) el "servidor" puede haber sido simplemente uno de estos sistemas de 4-8MB con algunos discos extra conectados. El uso de RAM en el servidor era una gran preocupación, podrías haber perdido varios MBs en búferes TCP que se han utilizado mejor como memoria caché de disco. También facilitó el manejo de la presión de la memoria, un servidor NFS sobrecargado simplemente podía soltar las solicitudes.
- NFS fue diseñado originalmente para ser utilizado en una LAN donde las tasas de pérdida son muy bajas.
- UDP es más rápido y tiene menos sobrecarga
- NFS no tiene estado, por lo que es sencillo para los clientes volver a intentarlo
Tenga en cuenta que NFS v3 + puede usar TCP.