Dlaczego pliki do pobrania zawierają złe pliki? [Zamknięte]

-1

Dlaczego podczas pobierania błędy sieciowe powodują zakończenie pobierania i utworzenie niekompletnego pliku?

Czy pobieranie programu nie powinno być w stanie rozpoznać, czy plik jest X duży i tylko pobrał Y jak dotąd?

Zakładam, że jest to pobieranie, które zna rozmiar pliku.

Nathan Merrill
źródło
1
Przyzwoite pytanie, ale zbyt szerokie. Z przelewami internetowymi i gówniane sieci Widziałem mnóstwo uszkodzonych plików. Pochodzi z uruchomienia / zatrzymania połączenia. Najlepszym rozwiązaniem, z którym się z nimi zetknąłem, jest użycie narzędzia takiego jak „Pobierz je wszystkie”.
JakeGould
Zastanów się, czy ktoś wysłał Ci stronę 100 stron dokumentu po stronie. Dostajesz mnóstwo stron, a potem kilku nie pojawia się. Potem przychodzi jeszcze kilku (nie w tej samej kolejności). Jeśli pierwsza strona mówi, ile stron należy się spodziewać, to wiesz, ale co możesz zrobić, aby zmienić sposób i czas dostarczania stron? Nadal będziesz mieć niekompletny dokument ...
Kinnectus
@BigChris Sure, ale wolałbym plik .crdownload (w przypadku chrome), który wskazuje częściowe pobranie, niż źle wypełniony plik.
Nathan Merrill
Zależy to od jakości twojego menedżera pobierania. Niektóre z nich nie są zbyt dobrze napisane (aby być grzecznym). Plus, jak mówi @ Ƭᴇcʜιᴇ007, nie zawsze jest możliwe określenie rozmiaru pliku źródłowego. Dlatego wiele stron publikuje sumy kontrolne MD5, choć obecnie nie wydaje się, aby protokół pozwalał menedżerom pobierania danych na korzystanie z tych informacji.
AFH
1
@AFH „nie wydaje się, aby w chwili obecnej protokół pozwalał menedżerom pobierającym dane na korzystanie z tych informacji”. Więc i tak musisz pobrać całość, aby to sprawdzić. ;)
Ƭᴇcʜιᴇ007

Odpowiedzi:

3

Wiele mechanizmów przesyłania nie ma pojęcia, jaki jest rozmiar pobieranego pliku. Sprawdź to powiązane pytanie SU: Dlaczego niektóre pliki do pobrania nie znają własnego rozmiaru?

Ponadto mechanizmy transferu nie mają pojęcia, jakie dane są domniemany być w pliku; więc nie ma pojęcia, czy to 1 właśnie przeczytałem, że pobieranie rzeczywiście było 1 u źródła lub jeśli jest 1 z powodu korupcji podczas transferu.

Jeśli strumień pobierania napotka zbyt wiele prób, upłynął limit czasu lub inne rozpoznawalne transfer błędy, a następnie transfer zostanie zatrzymany. Ponieważ mechanizmy pobierania zapisują ten strumień pobierania w miarę jego nadejścia, zapisuje plik, dopóki przychodzący strumień nie zostanie zatrzymany, niezależnie od tego, dlaczego się zatrzyma. To, czy ten niekompletny plik jest przechowywany, czy nie, gdy wiadomo, że ma awarię transferu, zależy od użytego klienta / mechanizmu.

Ƭᴇcʜιᴇ007
źródło
Nie pytam o pliki do pobrania, które nie znają rozmiaru. Nie pytam, dlaczego złe dane wkradają się do pobierania, ale dlaczego te złe dane (lub brak danych) kończą pobieranie przedwcześnie.
Nathan Merrill
1
Pytałeś: „Czy pobieranie programu nie powinno być w stanie rozpoznać, że plik ma rozmiar X, a do tej pory pobrał tylko Y?” Stwierdziłem więc, że (często) nie mają pojęcia, jaki jest oczekiwany rozmiar pliku, aby wyjaśnić, dlaczego nie można go użyć do wykrycia problemu.
Ƭᴇcʜιᴇ007
Uświadomiłem sobie, że kiedy napisałeś i dokonałeś edycji: P
Nathan Merrill
Dlaczego pobierane są złe dane; ponieważ pojedynczy pakiet jest uszkodzony przez szum
Ramhound
Cóż… uszkodzenie danych… Jeśli pojedynczy pakiet jest uszkodzony w IP, zostanie odrzucony. Jeśli jest uszkodzony w TCP, zostanie przesłany ponownie. Dlatego mają sumy kontrolne. Skąd więc bierze się korupcja?
slhck