Pourquoi a-t NFS utiliser UDP par défaut?
Je suis sûr qu'il ya quelques héritage antique raison, mais qu'en est-il? Il semble comme un service orienté vers le fiable la livraison des données.
- apparaît NFS ne pas utiliser UDP par défaut plus, voir certaines des réponses. NFSv4 pourrait même que l'utilisation du protocole TCP?
- Oui, pour le NFSv4, voir tools.ietf.org/html/rfc7530#section-3.1. UDP est la plupart du temps aller à ce point.
Vous devez vous connecter pour publier un commentaire.
Noter que NFS v3+ peut utiliser le protocole TCP.
UDP est la valeur par défaut pour NFSv2 (dont personne ne devrait vraiment utiliser ces jours-ci), mais NFSv3 l'utilisation de TCP par défaut. TCP montures sont plus fiables et vous savez que vous avez un problème de réseau beaucoup plus rapidement qu'avec UDP.
UDP est apatride, le protocole TCP n'est pas, mais TCP a de nombreuses propriétés prédéfinies qui n'a pas de suite NFS, ou plutôt que NFS voulait gouverner les détails. En particulier, lorsque le protocole TCP est en train de faire des transferts de paquets, il ne régissent les délais d'attente, etc.
Avec UDP, vous perdez de frais généraux que vous n'avez pas particulièrement envie de toute façon. Lorsque le système de fichiers NFS, la pensée était à l'origine, le système effectue une écriture, et si seulement la moitié des finitions, que ce serait mauvais ... donc NFS (en mode difficile) continuera à réessayer pour compléter la transaction, à jamais, 1 minute, 5, 10, et pour l'heure, un jour ... quand la connexion est rétablie la transaction pourrait continuer à l'achèvement...
NFS s'occupe de "l'état" au lieu de TCP, dont la conception met en place un nouvel état sur la nouvelle connexion (ou de reconnexion), que la connexion (et l'état) pourrait mourir pour n'importe quoi (matériel) de la raison et une nouvelle connexion ne serait pas persister cet état ... Pense à propos de la transformation d'un fichier ... vous venez de quitter le seul processus, la connexion NFS gouttes un peu, mais quand il revient, tout va juste continuer.. Ces jours, les applications sont plus intelligents, les routes sont nombreuses, les choses sont plus modulaire, et nous sommes beaucoup plus d'impatience... si sa ne va pas plan .. quelqu'un reçoit un appel téléphonique et a de vous connecter et d'obtenir ce que ça va, de toute façon ils peuvent ... de retour dans la journée, quand il pourrait être de gauche, c'était un plus transparente chose ... La façon dont cela fonctionne est, aujourd'hui encore, mais ont beaucoup plus d'options maintenant, et ont tendance à avoir plus de gens qui règlerait tous les problèmes plus rapidement maintenant. Aussi l'idée de chaque fin de passage des objets session d'avant en arrière et ne pas s'engager dans la recherche d'emploi, jusqu'à ce que les deux parties sont d'accord qu'ils sont en fait -- retour dans la journée NFS fait beaucoup de cela pour vous ....
L'analogie est un peu similaire à la façon dont le RS232 choses travaillé ... électronique qui vont faire sa chose et de charger leurs tampons et obtenir la pleine et avoir à arrêter (ou perdre de l'information), ils peuvent passer que les flux d'info (et se vide les tampons et continuer) lors de la CTS (Clear to send pin - comme dans la tige de métal sur le bouchon) était élevé ou faible (ce qui jamais de sa censé être).
Ma conjecture est que c'est probablement l'héritage (historique) raisons. À l'origine, NFS a été probablement utilisé à faible temps de latence des réseaux où il y avait très peu de possibilité d'erreur, de sorte que les frais généraux de l'ouverture de la 3-way handshake pour configurer la connexion TCP (en collaboration avec le bi-directionnelle d'accusé de réception de tous les messages) l'emportaient sur la simplicité d'utilisation d'un protocole sans connexion comme UDP.
Lorsque UDP est utilisé comme protocole de transport, il sera sans doute jusqu'à la NFS client afin de 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 comment le faire, ou il peut être plus rapide (selon les conditions particulières de l'application). TCP est très belle, mais a beaucoup de frais généraux associés avec elle.
Performance. L'UDP a beaucoup moins de frais généraux que TCP. D'autre part NFS doit poignée de transport fiable sur son propre, puis (par rapport à TCP) mais comme c'est un protocole pour les réseaux où les problèmes de connexion et le paquet de gouttes (ou mieux: qui devrait être) pas un problème, il est optimisé pour la performance.
UDP a également été utilisé, car cela peut réduire considérablement l'utilisation de la mémoire. Dans les années 1980 lors de la NFS a été initialement développé, vous auriez un système UNIX avec comme 4-8 mo de RAM, et (au moins en milieu scolaire) le "serveur" peut tout simplement avoir été un de ces 4-8 mo de systèmes avec un peu plus de disques accroché à elle. RAM sur le serveur a été un grand sujet d'inquiétude, vous pourriez avoir perdu plusieurs mo pour TCP tampons mon ont été mieux utilisé comme cache disque. Il a également fait, il est facile de gérer la pression de la mémoire, surchargé le serveur NFS pourrait il suffit de déposer les demandes.
La connexion UDP stateless réduit le trafic réseau, le serveur NFS envoie un cookie au client une fois que le client est autorisé à accéder au volume partagé. Ce cookie est une valeur aléatoire stockées sur le serveur et transmis en même temps que les requêtes RPC du client.