Frage

Ich bin sicher, es gibt einigen alten Erbe Grund dafür, aber was ist es? Es scheint wie ein Dienst, der auf zuverlässige Datenlieferung ausgerichtet ist.

War es hilfreich?

Lösung

  • NFS wurde ursprünglich entwickelt, um auf einem LAN verwendet werden, in denen Verlustraten sehr niedrig sind.
  • UDP ist schneller und hat weniger Overhead
  • NFS ist staatenlos, also ist es einfach für die Kunden
  • erneut zu versuchen

Beachten Sie, dass NFS v3 + kann TCP verwenden.

Andere Tipps

UDP ist die Standardeinstellung für NFSv2 (was niemand wirklich in diesen Tagen verwenden sollte), aber NFSv3- verwenden TCP standardmäßig. TCP-Halterungen sind zuverlässiger und Sie wissen, Sie haben ein Netzwerk Problem viel schneller als mit UDP.

UDP ist staatenlos, TCP ist nicht, aber TCP hat viele vordefinierte Eigenschaften, die nicht NFS hat Hotel, oder besser gesagt, dass NFS wollte die Einzelheiten regeln. Insbesondere dann, wenn TCP Paketübertragungen tut, ist es Timeouts regieren, usw.

Mit UDP, verlieren Sie die Gemeinkosten, die Sie besonders keine Art und Weise wollen. Wenn das NFS-Dateisystem, das ursprünglich gedacht war, hat das System einen Schreib, und wenn es nur die Hälfte abgeschlossen ist, würde so schlimm sein ... so NFS (im Schweren Modus) wird auch weiterhin versuchen, die Transaktion für immer zu beenden, 1 Minute, 5, 10, und die Stunde, ein Tag ..., wenn die Verbindung die Transaktion bis zum Abschluss fortsetzen konnte kommt zurück ...

NFS sieht nach dem „Staat“ anstelle von TCP, dessen Design setzt einen neuen Zustand auf die neuen Verbindung (oder Wiederverbindung), die Verbindung (und Staat) für was auch immer (Hardware) Grund und eine neue Verbindung wouldn sterben könnte‘ t diesen Zustand bestehen bleiben ... Denken Sie über eine Datei processing ... Sie nur den Prozess in Ruhe lassen, fällt die NFS-Verbindung für ein bisschen, aber wenn es zurückkommt, wird alles nur weiter .. In diesen Tagen Anwendungen sind klüger, Routen zahlreich sind, sind die Dinge mehr modular, und wir viel mehr ungeduldig sind ... wenn es läuft nach Plan nicht .. jemand bekommt einen Anruf und muss sich anmelden und es trotzdem können sie loslegen ... wieder in den Tag wenn es gelassen werden konnte, war es eine nahtlose Sache ... Die Art und Weise, dass es funktioniert heute noch gut ist, haben aber so viele weitere Optionen jetzt, und neigen dazu, mehr Menschen alles prompt jetzt mehr Festsetzung zu haben. Auch die Idee von jedem Ende vorbei Sitzung Objekte hin und her und nicht zwischen Arbeitsplätzen zu begehen in, bis beide Seiten stimmen darin überein, dass sie fertig sind - wieder in den Tag NFS viel dies für Sie getan haben ....

Die Analogie ist etwas ähnlich wie die RS232 Sachen gearbeitet ... Elektronik würde seine Sache tun und ihre Puffer laden und erhalten voll und stoppen müssen (oder verlieren Infomationen), könnten sie diesen Strom von info (und leer übergeben ihre Puffer und weiter), wenn das CTS (Clear auf dem Stecker pin- wie in Metallstift zu senden) waren hoch oder niedrig ist (was auch immer sein, seine vermeintlichen).

Meine Vermutung ist, dass es wahrscheinlich für Legacy (historische) Gründe. Ursprünglich war NFS wahrscheinlich auf Low-Latency-Netzwerken eingesetzt, wo es sehr wenig Möglichkeit des Irrtums war, so dass der Aufwand für die Einleitung des 3-Wege-Handshake die TCP-Verbindung einzurichten (zusammen mit der bidirektionalen Bestätigung aller Nachrichten) überwog die Einfachheit unter Verwendung eines verbindungsloses Protokoll wie UDP.

Wenn UDP als Transportprotokoll verwendet wird, vermutlich würde es den NFS-Client seines bis erneute Übertragungen zu verwalten, falls erforderlich.

UDP verwendet, wenn das Protokoll, das von der Anwendung selbst verwaltet werden wird. Die App kann eine bessere Idee, wie es zu tun, oder es kann schneller sein (unter den besonderen Bedingungen der Anwendung). TCP ist sehr schön, aber hat Overhead viel mit ihm verbunden ist.

Performance. UDP hat einen viel geringeren Overhead als TCP. Auf der anderen Seite hat NFS zuverlässigen Transport auf eigene dann zu handhaben (im Vergleich zu TCP), aber da dies ein Protokoll für LANs ist, wo Verbindungsprobleme und Paket-Tropfen sind (oder besser: sollte) kein Problem, es ist für die Leistung optimiert.

UDP wurde auch verwendet, weil es stark die Speichernutzung reduzieren könnte. In den 1980er Jahren, als NFS ursprünglich entwickelt wurde, würden Sie ein UNIX-System mit wie 4-8mb RAM haben, und (zumindest in akademischen Umfeld) der „Server“ einfach eine dieser 4-8mb Systeme gewesen sein kann mit ein paar zusätzliche Festplatten angeschlossen, um es nach oben. Verwendung RAM auf dem Server war ein großes Anliegen, Sie mehrere MBs auf TCP-Puffer verloren haben könnte, die meine haben als Disk-Cache besser genutzt. Es machte es auch einfach, Speicherdruck, ein überfordert NFS-Server konnte einfach Anfragen fallen.

zu handhaben

Die stateless UDP-Verbindung minimiert den Netzwerkverkehr, da der NFS-Server dem Client ein Cookie sendet, nachdem der Client autorisiert ist, den gemeinsamen Datenträger zuzugreifen. Dieses Cookie ist ein Zufallswert auf der Seite des Servers gespeichert und wird zusammen mit RPC-Anfragen vom Client übergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top