37 votes

Pourquoi Dropbox peut-il être super rapide par rapport au FTP ?

J'aimerais savoir pourquoi techniquement Dropbox est beaucoup plus rapide que le FTP ? Quel type de technologie utilise-t-il ?

Je ne parle pas de fichiers différents, je parle du transfert de nouveaux fichiers ; dans les deux cas, Dropbox est beaucoup plus rapide.

Je veux dire, beaucoup plus rapide, peut-être 10 fois plus rapide que FTP pour les fichiers que j'ai téléchargés. Je referai l'expérience pour des fichiers plus gros plus tard.

2 votes

Quels sont la taille, le type et le nombre de fichiers que vous avez téléchargés ? Combien de temps le téléchargement a-t-il pris pour chacun d'entre eux ? Où avez-vous téléchargé les fichiers par FTP ? Dropbox n'est pas magique. L'explication la plus simple est que le serveur FTP sur lequel vous avez téléchargé les fichiers dispose d'une bande passante bien inférieure à celle d'Amazon.

2 votes

S'ils l'ont déjà, il ne se recharge pas à nouveau ;p

4 votes

Vous dites "nouveaux fichiers", mais à moins que ces fichiers ne soient des données fraîches et aléatoires, vous bénéficiez probablement d'une synchronisation au niveau des blocs (comme dans la section rsync et d'autres outils).

30voto

David Spillett Points 23094

Il peut y avoir plusieurs raisons à cela.
Le protocole FTP est loin de l'efficacité.

  1. Un transfert FTP nécessite au moins deux connexions (une pour le contrôle et une pour les données) alors que DropBox peut n'utiliser qu'une seule connexion HTTP. En outre, la connexion de données d'une session FTP peut être ouverte du serveur vers votre client et, si vous êtes soumis à une NAT, cette connexion peut échouer, de sorte que votre client FTP peut essayer de se connecter de cette manière, échouer puis essayer de se connecter dans l'autre sens.

  2. Il y a beaucoup de va-et-vient sur une connexion FTP. Pour envoyer un fichier, le client doit envoyer au moins deux commandes (une pour ouvrir la connexion de données et une pour lancer l'envoi) et, à chaque fois, il doit attendre la réponse du serveur, ce qui ajoute une latence supplémentaire. En plus de ces deux allers-retours par fichier, il y a plusieurs allers-retours commande-réponse pour la connexion initiale - un pour envoyer le nom d'utilisateur, un pour le mot de passe, et au moins un pour définir les paramètres de transfert (pour s'assurer que le serveur attend des données binaires et non ASCII). Le client peut également émettre quelques commandes supplémentaires pour obtenir du serveur des informations sur lui-même. Il est probable que Dropbox n'utilise que cette seule requête HTTP, ou tout au plus deux (une pour l'authentification, une pour l'envoi des données).

  3. En outre, selon le client que vous utilisez pour les transferts FTP (ce que vous ne précisez pas, il serait bon de modifier votre question pour inclure cette information), il se peut que la connexion soit interrompue après chaque opération d'envoi et qu'elle soit reconnectée la fois suivante. Il n'est pas improbable que DropBox maintienne une connexion ouverte pendant un certain temps à des fins de sondage prolongé, pour réagir dès qu'il le peut à la disponibilité de nouvelles données que ce client devrait télécharger, de sorte que s'il doit établir une nouvelle connexion HTTP pour envoyer un fichier, il n'aura pas besoin de se réauthentifier.

  4. Il n'est pas improbable que le client DropBox compresse les données avant de les envoyer (pour améliorer la vitesse et économiser la bande passante) alors que votre client FTP ne le fera pas. Ainsi, même pour les fichiers volumineux (à moins qu'ils ne soient précomprimés ou cryptés), DropBox et les utilitaires similaires peuvent être plus rapides qu'un transfert FTP de base.

Pour les fichiers volumineux, les trois premiers points ci-dessus seront insignifiants par rapport au temps nécessaire au transfert effectif des données, mais le point 4 peut encore être très important. Pour les petits fichiers, tout le temps de configuration supplémentaire ajouté par le protocole FTP peut potentiellement être deux fois plus long que le temps nécessaire à l'envoi effectif des données.

0 votes

+1 pour la réponse détaillée. Moi aussi je m'étais demandé comment Dropbox était si rapide.

1 votes

J'ai lu quelque part que les données de Dropbox sont cryptées avant d'être transférées - il serait donc logique qu'elles soient également (au moins un peu) compressées.

1 votes

Un fichier crypté ne devrait pas être compressible - de toute façon, je ne pense pas que Drop Box crypte les fichiers pendant le transfert.

14voto

Chris Johnsen Points 36743

Comme d'autres l'ont mentionné, Dropbox peut sauter des parties de fichiers qui n'ont pas été modifiées . Mais aussi, Dropbox ne téléchargera pas de fichiers s'il en a déjà une copie sur le serveur. (un que vous ou quelqu'un d'autre a déjà téléchargé).

Ainsi, si vous essayez de télécharger un fichier identique à un fichier que Dropbox possède déjà, le téléchargement est ignoré (et les autres machines liées peuvent commencer à le télécharger à partir des serveurs Dropbox). Si vous téléchargez un fichier presque identique à un autre fichier déjà téléchargé (il n'est pas précisé si le fichier déjà téléchargé doit être le vôtre ou s'il peut provenir de n'importe quel utilisateur), le système enverra juste assez de parties du fichier pour le recréer sur le serveur lorsqu'il sera combiné au fichier déjà téléchargé.

FTP ne peut rien faire de tout cela (il s'agit d'un simple protocole permettant d'envoyer et de recevoir des flux de données sans référence à d'autres données disponibles à l'extrémité distante). Des outils comme rsync y Unison peuvent "sauter des morceaux que l'autre partie possède déjà", mais sont généralement limitées à la comparaison de morceaux à l'intérieur de fichiers situés à un chemin identique dans la hiérarchie synchronisée. Dropbox semble étendre cette idée à des collections de fichiers (ainsi, si vous "téléchargez" deux fichiers presque identiques, on peut supposer qu'il pourrait s'arranger pour n'en envoyer qu'un seul, plus une "différence" suffisante pour recréer l'autre).

10voto

Jawa Points 2446

Je suppose que vous voulez dire plus rapide en termes de transfert de fichiers. Lorsque vous enregistrez un fichier dans votre dossier Dropbox, Dropbox n'envoie que l'adresse de l'ordinateur. delta (ou diff) des données vers le serveur de stockage distant. FTP envoie (très probablement) le fichier octet par octet (plutôt que d'envoyer uniquement les modifications), ce qui prend potentiellement beaucoup plus de temps à transférer sur un réseau. De même, lors de la synchronisation von le serveur distant, les clients locaux ne téléchargeront que les modifications.

La fonction de synchronisation en réseau local peut aussi potentiellement accélérer les synchronisations et réduire le trafic réseau nécessaire.

0 votes

En effet, je parle de nouveaux dossiers pour les deux cas.

1voto

Sun Points 5974

Bien que Dropbox utilise d'autres services, elle a historiquement utilisé Amazon AWS (Amazon Web Services). Il semble que votre transfert de la source à la destination ait un très gros tuyau de transfert. D'après mon expérience, Dropbox utilise une destination qui peut accepter de grandes quantités de données à la fois. Dropbox distribue également le téléchargement à différentes adresses IP. Le site vers lequel vous vous connectez par FTP a probablement un tuyau de transfert beaucoup plus petit et n'a pas la capacité de distribuer les téléchargements aussi efficacement.

Si vous exécutez Moniteur de ressources (resmon) et allez dans l'onglet Réseau, vous remarquerez les différents processus qui utilisent la bande passante du réseau.

  • Sous Processus avec activité de réseau, sélectionnez la colonne correspondant à Total (B/sec)
  • Sous Connexions TCP, sélectionnez la colonne pour les Total (B/sec)

Pour moi, lorsque je télécharge un fichier sur Dropbox, il utilise 4 connexions pour envoyer 4 adresses IP différentes.

enter image description here

0voto

Greenleader Points 536

Dropbox peut être plus rapide lorsque vous envoyez une grande quantité de fichiers. Le FTP est le plus rapide que l'on puisse obtenir lorsque l'on parle de vitesse, mais il faut trop de "conversation" entre le serveur et l'ordinateur client pour chaque fichier, de sorte que le FTP semble plus lent. Si vous téléchargez une application open source avec des milliers de fichiers, il est plus pratique de compresser tous les fichiers, de les télécharger via FTP et de les décompresser sur le serveur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X