Domanda

Sono sicuro che ci sia qualche ragione antica eredità per questo, ma che cos'è? Sembra un servizio che è orientata verso la fornitura di dati affidabili.

È stato utile?

Soluzione

  • NFS è stato originariamente progettato per essere utilizzato su una rete LAN in cui i tassi di perdita sono molto bassi.
  • UDP è più veloce, e ha meno spese generali
  • NFS è senza stato, quindi è semplice per i clienti di riprovare

Si noti che NFS v3 + può utilizzare il protocollo TCP.

Altri suggerimenti

UDP è l'impostazione predefinita per NFSv2 (che nessuno dovrebbe davvero usare in questi giorni), ma NFSv3 utilizzare TCP per impostazione predefinita. supporti TCP sono più affidabili e sai di avere un problema di rete molto più veloce rispetto a UDP.

UDP è stateless, TCP non è, ma il protocollo TCP ha molte proprietà predefinite che non Suite NFS, o meglio che NFS volevano governare le specifiche. In particolare, quando TCP sta facendo i trasferimenti dei pacchetti, non governa timeout, ecc

Con UDP, si perdono le spese generali che non si desidera alcun modo particolare. Quando il file system NFS, il pensiero era in origine, il sistema fa una scrittura, e se solo finiture e mezzo, che sarebbe male ... così NFS (in modalità difficile) continuerà a riprovare per completare la transazione per sempre, 1 minuto, 5, 10, e un'ora, un giorno ... quando la connessione torna la transazione potrebbe continuare fino al completamento ...

NFS si occupa dello "stato" invece di TCP, il cui design istituisce un nuovo Stato sulla nuova connessione (o riconnessione), che la connessione (e lo stato) potrebbe morire per qualunque cosa (hardware) la ragione e una nuova wouldn connessione' t persistono quello stato ... Pensate elaborazione di un file ... basta lasciare il processo da solo, la connessione NFS cade fuori per un po ', ma quando si tratta di nuovo, tutto ciò sarà solo continua .. in questi giorni le applicazioni sono più intelligenti, percorsi sono numerosi, le cose sono più modulare, e ci sono un sacco più impazienti ... se non la sua intenzione di pianificare .. qualcuno riceve una telefonata e ha per accedere e farlo andare ogni modo possibile ... back in the day , quando potrebbe essere lasciato, è stata una cosa senza soluzione di continuità ... Il modo in cui funziona è ancora buono oggi, ma hanno così molte più opzioni ora, e tendono ad avere più persone di fissaggio tutto più prontamente ora. Anche l'idea di ciascuna estremità passando oggetti di sessione avanti e indietro e non commettere in mezzo di posti di lavoro, fino a quando entrambe le parti concordano sul fatto che hanno finito - indietro nel giorno NFS ha fatto un sacco di questo per voi ....

L'analogia è in qualche modo simile a come la roba RS232 lavorato ... elettronica sarebbe fare la sua cosa e caricare i loro buffer e avranno pieno e deve fermare (o perdere infomation), avrebbero potuto passare quel flusso di informazioni (e vuota i tamponi e continua) quando il CTS (Clear to send pin- come nel perno di metallo sulla spina) era alta o bassa (cosa mai la sua doveva essere).

La mia ipotesi è che è probabilmente per motivi legacy (historical). Originariamente NFS è stato probabilmente usato su reti a bassa latenza in cui vi era pochissima possibilità di errore, quindi l'overhead di avviare il 3-way handshake per configurare la connessione TCP (insieme con il riconoscimento bi-direzionale di tutti i messaggi) superato la semplicità di utilizzando un protocollo senza connessione come UDP.

Quando UDP viene utilizzato come protocollo di trasporto, presumibilmente sarebbe fino al client NFS per gestire ritrasmissioni, se necessario.

UDP viene utilizzato quando il protocollo sta per essere gestito dall'applicazione stessa. L'applicazione può avere una migliore idea di come farlo, o può essere più veloce (in base alle condizioni particolari della domanda). TCP è molto bello, ma ha un sacco di overhead associato con esso.

Prestazioni. UDP ha un overhead molto inferiore TCP. Invece NFS deve gestire trasporto affidabile da solo poi (rispetto al TCP) ma come questo è un protocollo per reti LAN dove i problemi di connessione e gocce pacchetto sono (o meglio: dovrebbe essere) non è un problema, è ottimizzato per le prestazioni.

UDP è stato utilizzato anche perché potrebbe ridurre notevolmente l'utilizzo della memoria. Nel 1980, quando NFS è stato originariamente sviluppato, si avrebbe un sistema UNIX con il simile 4-8mb di RAM, e (almeno in ambito accademico) il "server" potrebbe essere stato semplicemente uno di questi sistemi 4-8mb con pochi dischi aggiuntivi collegato ad esso. l'uso di RAM sul server è stato una grande preoccupazione, si potrebbe avere perso diversi MB di buffer TCP che il mio sono stati meglio utilizzati come cache del disco. Inoltre ha reso facile gestire la pressione di memoria, un server NFS oberati potrebbe semplicemente far cadere le richieste.

La connessione UDP stateless riduce al minimo il traffico di rete, come il server NFS invia un cookie al client dopo che il client è autorizzato ad accedere al volume condiviso. Questo cookie è un valore casuale memorizzato sul lato del server e viene trasmesso con le richieste RPC dal client.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top