2012-04-10 21 views
0

Ich habe Dateien von einigen Diensten heruntergeladen, die Hosting anbieten. Sehr oft, wenn ich als ein freier Benutzer Firefox (andere Browser auch herunterladen, habe nicht alle überprüft, obwohl) zeigt mir, dass Download-Geschwindigkeit 400KB und 10 Minuten bis zum Ende bleibt. Dies ist BS, weil es 45 Minuten oder länger dauert, eine Datei herunterzuladen und z.B. "1 Minute 40 Sekunden Remaning" wird für ein paar Sekunden angezeigt.falsche Schätzung der Downloadzeit

Das Geschenk der Benutzer eine höhere Geschwindigkeit. Wie haben sie das gemacht? Ist dieses HTTP-Protokoll Cheat oder Browser-Cheat? Warum zeigt Firefox den falschen Wert?

Antwort

1

Ich habe das noch nie erlebt, aber ich benutze Firefox nie wieder zum Herunterladen von Dateien.

Das heißt, der Remote-Server kann die Dateien mit hoher Geschwindigkeit senden, aber in kurzen Datenstößen, die sich auf ihre "freie Benutzer" -Geschwindigkeit ausrechnen. Firefox sieht möglicherweise die Geschwindigkeit, mit der Daten während dieser Bursts heruntergeladen werden, und nicht die durchschnittliche Gesamtgeschwindigkeit.

+1

Ich bin mir sicher, dass das Design ist. z.B. https://rapidshare.com/ oder http://uploaded.to/ machen Sie das. Da 95% Benutzer den Browser zum Herunterladen verwenden, schaffen sie es irgendwie, diese Schätzung zu fälschen. –

+0

Ich denke, das ist zumindest für mich der Fall. Was ich sehe ist, dass der Download von Zeit zu Zeit hängen bleibt, bis einige Zeit verstrichen ist und er wieder beginnt. – chamibuddhika

-1

Viele Fortschrittsbalken existieren nur, damit Sie sich besser fühlen. Für etwas wie das Herunterladen einer Datei ist es sehr schwierig, genau zu schätzen.

Wie viele Pakete werden gelöscht und erneut gesendet? Was passiert, wenn die Bandbreite irgendwo zwischen Ihrem Computer und dem Server unterbrochen wird? Wie viele Daten müssen gesendet werden? (Für einen Datei-Download könnten Sie zuerst Metadaten senden, aber das kann in vielen Fällen aus vielen Gründen kompliziert werden).

Dies sind alles Fragen, die schwierig oder unmöglich genau zu beantworten sind, und sie können problematisch zu erraten sein.

Holen Sie sich die Idee, dass Benutzer Don't perceive download times accurately anyway, und die Aussicht auf die Umsetzung einer genauen Fortschrittsbalken ist sehr unattraktiv. Der einfache Ausweg ist, einen Fortschrittsbalken zu machen, der lügt. Selbst die besten Implementierungen überprüfen ständig eine bestmögliche Schätzung, und es kann keine Garantie für die Richtigkeit dieser Schätzung geben.

Die Lösung besteht darin, Download-Zeit-Schätzungen mit etwas Skepsis zu behandeln, und nur geduldig sein.

+0

handelt es sich nicht um genaue Schätzung. Es ist absichtlich höherer Ordnung oder Größenordnung. –

+0

Der Browser lügt über die verbleibende Zeit, und deshalb. Der Browser kann die tatsächlich verbleibende Zeit nicht zuverlässig bestimmen. Angesichts der Wahl zwischen einem oft ungenauen Fortschrittsbalken und überhaupt keinem Fortschrittsbalken sind Benutzer glücklicher mit etwas Feedback, unabhängig davon, wie nützlich dieses Feedback ist. Vor diesem Hintergrund ist die Tendenz zu Fortschrittsbalken, die versuchen, zu schätzen, aber oft nur zu bilden. –

+0

@Chris: Nein, Fortschrittsbalken funktionieren heutzutage sehr gut bei normalen Downloads. Sicher, sie können sich anpassen, wenn die Rate auf halbem Weg fällt, aber die Frage ist etwas anderes. Es handelt sich um einen speziellen Trick (möglicherweise Pakete mit Inhalten zu senden, die CRC-Prüfungen nicht bestehen und daher fallen gelassen werden), die von einigen Servern verwendet werden, um freie Benutzer zu frustrieren, mit dem Ziel, sie für echte hohe Download-Raten bezahlen zu lassen. Das hängt nur entfernt mit Ihren sehr allgemeinen Bemerkungen zusammen und besagt, wie/all/Download-Bars nur raten. – DerManu

-1

Hier ist, wie die reale Bandbreite zu erhalten:

https://superuser.com/questions/356907/how-to-get-real-time-network-statistics-in-linux-with-kb-mb-bytes-format-and-for

dieses Skript machen namens "NetBPS" ausführbare

#!/usr/bin/perl 
use strict; 
use warnings; 
use Time::HiRes; 

my $reporting_interval = 10.0; # seconds 
my $bytes_this_interval = 0; 
my $start_time = [Time::HiRes::gettimeofday()]; 

while (<>) { 
    if (/ length (\d+):/) { 
    $bytes_this_interval += $1; 
    my $elapsed_seconds = Time::HiRes::tv_interval($start_time); 
    if ($elapsed_seconds > $reporting_interval) { 
     my $bps = $bytes_this_interval/$elapsed_seconds; 
     printf "%02d:%02d:%02d %10.2f Bps\n", (localtime())[2,1,0],$bps; 
     $start_time = [Time::HiRes::gettimeofday()]; 
     $bytes_this_interval = 0; 
    } 
    } 
} 

sudo tcpdump -i wlan0 -l -e -n | ./netbps

Alles, was ich sagen kann, ist Firefox ist falsch. Dieses Skript gibt Ihnen eine gute Schätzung von Bytes pro Sekunde. Es ist ungefähr 1/4 der von firefox's Schätzung. Also neue Regel: Wenn es sich anfühlt, als würde Firefox eine zu kurze Zeit geben, multiplizieren Sie mit 4, um die wahre Zeit zu erhalten.