Http ile indirmeyi bozmak mümkün mü?


11

Uzun bir süredir, sunucuda bozuk olmadığı ve http protokolünün uygulanması doğru olduğu sürece, büyük olasılıkla modern ana yazılım için geçerli olan, bozuk bir dosyayı http üzerinden indirmenin gerçekten mümkün olmadığını varsaydım.

Bu yüzden her zaman bir indirme sitesi indirmek için sağladıkları bir dosyanın md5 karma teklif gördüğünde chuckled. Daha önce bir dosya görmedim, bir dosyayı indirdiğimde, boyut doğru ama içerik doğru değil.

Bugün bunun ilk vakası vardı. Bir Ubuntu iso indirdim, yüklemeye çalıştım, başarısız oldu ve uzun bir araştırmadan sonra (neden sadece bozuk bir indirme olabileceğine inanamadım) MD5'i kontrol ettim ve ne biliyorsunuz, yanlıştı (boyut doğru). Bu yüzden yeniden indirdim ve başka bir yanlış md5 aldım. Sadece üçüncü indirmemde md5 doğruydu.

Benim sorum, prensipte, uygulamanın doğru olduğunu, aktarımın başarıyla tamamlandığını ve dosyanın sunucuda doğru olduğunu varsayarak, http üzerinden bozuk indirmenin mümkün olması. Bu mümkünse, bu nasıl olabilir?


Yanıtlar:


9

Evet, özellikle düşük kaliteli İnternet bağlantılarında (genellikle kablosuz) mümkündür, ancak bazı kablolu bağlantılarda (sahip olduğum gibi) yüksek hızlarda yüksek hata oranları vardır.

HTTP protokolünde veri bütünlüğünü sağlamak için herhangi bir hüküm yoktur. Taşıma katmanda, TCP yapar bir sağlama kullanarak hata algılama var, ama çok güvenilir değil .


Karma veya dijital imza sağlamanın başka bir nedeni daha var. Çoğu zaman, gerçek dosyalar% 100 güvenli olduğu garanti edilemeyen birçok ayna sunucusu üzerinde dağıtılır. Doğrulanacak bir karma veya imza yoksa, bir aynaya erişimi olan (mutlaka yasal olmayan) bir kişi, web sitesinin barındırıldığı tamamen farklı bir sunucuya girmek zorunda kalmadan dosyaları değiştirebilir ve algılanamayabilir.


Ubuntu'yu HTTP yerine BitTorrent üzerinden indirirseniz dosyaların otomatik olarak doğrulanmasını sağlayabilirsiniz. (Her parça indirme zamanında doğrulanır, bu nedenle hiçbir zaman tüm içeriği yeniden indirmeniz gerekmez.)


1
İyi cevap. Ancak sakıncası yoksa konuyu biraz daha araştırmak istiyorum. "Yüksek hız" kısmının çok alakalı olduğu ortaya çıktı. Evde hiç sorun yaşamadım, ancak yaptığım bu Ubuntu ISO indirmeleri işteydi ve hız yaklaşık 5Mb / s idi. TCP'nin güvenilir olmadığını kabul etmek benim için zor, çünkü etraftaki neredeyse her şey TCP'ye dayanıyor. TCP güvenilmezliği hakkındaki bu wikipedia makalesinden başka bir şey var mı? Yüksek hızın sorunu tam olarak nasıl etkilediğini biliyor musunuz? Şimdiden teşekkür ederim.
Andrew Savinykh

1
@zespri: TCP'nin güvenilir olması gerekiyor , ancak sağlama toplamı tüm hataların% 100'ünü yakalayamıyor. Yüksek hız yalnızca belirli bağlantı türlerinde veya güvenilmez bağlantılarda bir faktördür ... Maalesef sizinle sunucu arasında herhangi bir yerde olabilir, hemen sonunda değil. (Farklı ülkelerde bulunan aynalardan indirmeyi test ederdim.) Tabii ki dosyanızın sunucunun dosya sisteminde zaten bozulmuş olma olasılığı da var ...
user1686

1
küçük bir yolsuzluk olasılığı varsa, o zaman sizinle sunucu arasındaki atlama sayısının artırılması yolsuzluk olasılığını artıracaktır ???
Trevor Boyd Smith

1
@Trevor: Bağlantı kalitesine bağlıdır. Ethernet üzerinden on atlama, WiFi üzerinden yapılan tek bir atlamadan çok daha güvenilirdir. (Yönlendiriciler / anahtarlar kendilerini neredeyse hiç bozmaz; genellikle bunu yapan bağlantıdır.)
user1686 14:11

Bu HTTP'nin kendisinin bozuk olduğu ve düzeltilmesi gerektiği anlamına gelmiyor mu?
still_dreaming_1

1

Grawity'nin dediği gibi, mümkündür, ancak ek olarak, fark ettiklerim:

İstikrarlı internet bağlantılarında bile, bir indirme işleminin geçerli herhangi bir sebep olmadan erken bitirilmesi mümkündür - sadece olabilir.

Ve en önemlisi, kötü belleğiniz varsa, diske yazılmadan önce bellekte indirme önbellekleri olabilir ve bellek kötü olduğu için, dosyayı yanlış yazıyor olabilir. Sürekli olarak kötü indirmeleriniz varsa, bu yüksek bir olasılıktır.


Oh, devam etmek için herhangi bir destek olmadan ~% 50 indirmeleri rastgele kesen web sunucularından nefret ediyorum ...
user1686 14:11

1
Wil: Evet, kesintiler sık ​​sık ve bu nedenle boyutlarımın tam olarak doğru olduğunu varsaydığımı söyleyerek onları özellikle sorumdan çıkardım. Yorumunuz için teşekkürler.
Andrew Savinykh

Evet bu soru için önemli bir ifade "boyutları tam olarak doğru"
Trevor Boyd Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.