2009-08-12 12 views
9

Qual è il protocollo migliore che posso utilizzare per trasferire un file di grandi dimensioni, che dovrebbe essere veloce e affidabile? Deve supportare sistemi a bassa larghezza di banda poiché ho bisogno di una trasmissione di file in tutta l'India. La dimensione del file può essere compresa tra 100 e 500 MB.Quale protocollo è migliore per il trasferimento di file

+5

È necessario fornire più contesto per questa domanda. Quanto è grande il file? Stai trasferendo il file su una LAN, una WAN ad ampia larghezza di banda, una connessione Internet a bassa larghezza di banda? – Amok

+1

Com'è questo C#? – Oskar

+0

E anche rilevanti nel contesto: si prega di specificare larghezza di banda bassa; sono 9600 bps; pacchetti per sms o <1Mbps? Qual è l'affidabilità della tua connessione? È probabile che la connessione cada? Quanti coetanei (o solo connessioni 1 a 1)? – Adriaan

risposta

3

Anche se FTP è il protocollo più efficiente per il trasferimento di file, è piuttosto difficile da attuare. Vorrei usare HTTP. Il supporto è integrato nella maggior parte delle piattaforme ed è più resistente ai firewall.

+7

Non ha senso implementare il protocollo da solo, basta usare alcune librerie esistenti. –

+0

vsftpd sarebbe l'opzione più semplice. Può essere installato tramite apt-get. – admrply

0

HTTP è probabilmente la soluzione ideale per file di piccole dimensioni e/o utenti non sofisticati. Dover configurare un firewall fermerà molti utenti a freddo. Quasi tutte le reti consentono i trasferimenti http sulla porta 80 senza alcuna configurazione speciale.

Hai detto File grandi, però. È possibile scrivere il codice di trasferimento in modo che utilizzi i trasferimenti di intervallo per riprovare i download interrotti.

Qualcuno ha probabilmente scritto una libreria di trasferimento file che gestisce i trasferimenti parziali e riprova automaticamente, anche se non ne conosco uno.

0

Questo potrebbe essere di qualche interesse correlato al trasferimento di file e .NET, non che il post originale menzionato .NET in qualche modo forma o forma.

Sending Files in Chunks with MTOM Web Services and .NET 2.0 Con Tim Mackey
Come inviare file di grandi dimensioni attraverso i servizi web in piccoli pezzi utilizzando MTOM (WSE 3)

Basta Si noti che è necessario installare Miglioramenti Servizio Web 3.0 (si vuole trova link pertinenti nell'articolo).

Buon giorno, signore!

-3

Beh penso che sia meglio usare il protocollo TCP. È affidabile e l'UDP no. Mentre UDP è più veloce come un protocollo best-effort non è "sicuro". I programmi P2P usano UDP perché è più veloce e in realtà non gli importa molto di perdere i pacchetti. FTP usa solitamente TCP. Quindi suggerirei di implementare TCP e programmare i socket. Usa una porta come 120000 o qualcosa del genere perché sono gratis.

10

Rsync è perfetto per questo problema. È progettato per inviare/aggiornare grandi file da remoto.

  • Esegue dalla riga di comando in modo che sia possibile avviarlo abbastanza facilmente come un processo esterno.
  • È possibile sincronizzare due file system remoti.
  • Gestisce dimensioni file grandi.
  • Ha un algoritmo intelligente che cerca di copiare solo le differenze nei file in giro.
  • È ampiamente implementato ed è open source.
  • Ha una capacità di limitazione in modo da poter limitare la quantità di una connessione WAN che si sta utilizzando con il trasferimento in modo da poterla regolare per evitare di affamare altri processi di connettività.
  • internamente utilizza zlib per comprimere blocchi di dati trasferiti

sito originale: http://samba.anu.edu.au/rsync/

difeso rsync con ssh: caratteristiche http://www.linux.com/archive/feature/113847

dettagliate: http://en.wikipedia.org/wiki/Rsync

0

GBProtocol può trasferire file più velocemente rispetto all'FTP, puoi verificare la demo al numero GBProtocol vs FTP

Problemi correlati