Question

Je suis sûr qu'il ya une raison de l'héritage antique pour elle, mais qu'est-ce? Il semble comme un service qui est orienté vers la fourniture de données fiables.

Était-ce utile?

La solution

  • NFS a été conçu à l'origine pour être utilisé sur un réseau local où les taux de perte sont très faibles.
  • UDP est plus rapide, et a moins de frais généraux
  • NFS est sans état, il est donc simple pour les clients de nouvelle tentative

Notez que NFS v3 + peut utiliser TCP.

Autres conseils

UDP est la valeur par défaut pour NFSv2 (que personne ne devrait vraiment utiliser ces jours-ci), mais NFSv3 utiliser TCP par défaut. supports TCP sont plus fiables et vous savez que vous avez un problème de réseau beaucoup plus rapidement qu'avec UDP.

UDP est apatride, TCP n'est pas, mais TCP possède de nombreuses propriétés prédéfinies qui ne NFS Suite, ou plutôt que NFS voulaient gouverner les détails. En particulier, lorsque TCP fait les transferts de paquets, il ne régit les délais d'attente, etc.

Avec UDP, vous perdez les frais généraux que vous ne voulez pas particulièrement d'aucune façon. Lorsque le système de fichiers NFS, la pensée était à l'origine, le système fait une écriture, et si elle ne se termine la moitié, ce serait mauvais ... alors NFS (en mode difficile) continuera à réessayer pour terminer toujours la transaction, 1 minute, 5, 10, et l'heure, un jour ... quand la connexion est la transaction pourrait continuer à la fin ...

NFS ressemble après l ' « état » au lieu de TCP, dont la conception met en place un nouvel état sur la nouvelle connexion (ou rebranchement), cette connexion (et de l'état) pourrait mourir pour tout (matériel) la raison et une nouvelle wouldn de connexion » t ... cet état persiste Pensez à traiter un fichier ... vous laisser seul tout le processus, la perte de la connexion NFS pour un peu, mais quand il revient, tout va tout simplement continuer .. Ces jours-ci sont des applications plus intelligentes, les routes sont nombreux, les choses sont plus modulaires, et nous sommes beaucoup plus impatients ... si elle ne va pas planifier .. quelqu'un reçoit un appel téléphonique et doit se connecter et obtenir ça va de toute façon qu'ils peuvent ... retour dans la journée , quand il pourrait être laissé, il était une chose plus transparente ... La façon dont cela fonctionne est encore bien aujourd'hui, mais ont beaucoup plus d'options maintenant, et ont tendance à avoir plus de gens fixer tout plus rapidement maintenant. Aussi l'idée de chaque objet de session qui passe arrière et en avant et ne pas commettre entre deux emplois, jusqu'à ce que les deux parties sont d'accord qu'ils font - retour dans la journée NFS a fait beaucoup de cela pour vous ....

L'analogie est un peu similaire à la façon dont les choses RS232 travaillé ... l'électronique serait faire sa chose et charger leurs tampons et auront plein et doivent arrêter (ou perdre infomation), ils pourraient passer ce flux d'informations (et vide leurs tampons et continuer) lorsque le CTS (à envoyer comme dans brochage broche métallique sur la fiche) était élevée ou faible (ce que jamais son supposé être).

Je pense que c'est probablement pour des raisons historiques (historiques). A l'origine NFS a probablement été utilisé sur les réseaux à faible latence où il y avait très peu de possibilités d'erreur, de sorte que les frais généraux d'engager la poignée de main à 3 voies pour établir la connexion TCP (en même temps que la reconnaissance bidirectionnelle de tous les messages) emportaient sur la simplicité en utilisant un protocole sans connexion comme UDP.

Lorsque UDP est utilisé comme protocole de transport, il serait sans doute au client NFS pour gérer les retransmissions, si nécessaire.

UDP est utilisé lorsque le protocole va être géré par l'application elle-même. L'application peut avoir une meilleure idée de la façon de le faire, ou il peut être plus rapide (dans les conditions particulières de l'application). TCP est très agréable, mais a beaucoup de frais généraux associés.

Performance. UDP a une tête beaucoup plus faible que TCP. D'autre part NFS doit gérer le transport fiable sur son propre alors (par rapport à TCP), mais comme cela est un protocole pour les réseaux locaux où les problèmes de connexion et des gouttes de paquet sont (ou mieux: devrait être) pas un problème, il est optimisé pour la performance.

UDP a également été utilisé car il pourrait réduire considérablement l'utilisation de la mémoire. Dans les années 1980 quand NFS a été développé à l'origine, vous auriez un système UNIX avec comme 4-8MB de RAM, et (au moins dans un environnement académique) le « serveur » peut-être tout simplement été l'un de ces systèmes 4-8MB avec quelques disques supplémentaires qui lui sont rattachés. l'utilisation de la RAM sur le serveur a été une grande préoccupation, vous pourriez avoir perdu plusieurs tampons TCP à MBs que ma ont été mieux utilisé en tant que cache disque. Il a également rendu facile à gérer la pression de la mémoire, un serveur NFS surtaxés pourrait simplement déposer des demandes.

La connexion UDP sans état réduit le trafic réseau, le serveur NFS envoie au client un cookie après que le client est autorisé à accéder au volume partagé. Ce cookie est une valeur aléatoire stockée du côté du serveur et transmis avec les requêtes RPC du client.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top