Có thể tải xuống bị hỏng với http?


11

Trong một thời gian dài, tôi đã cho rằng không thể tải xuống một tệp bị hỏng qua http miễn là nó không bị hỏng trên máy chủ và việc thực hiện giao thức http là chính xác, rất có thể là trường hợp đối với phần mềm chính hiện đại.

Vì vậy, tôi luôn cười thầm khi thấy một trang tải xuống cung cấp hàm băm md5 của tệp mà họ cung cấp để tải xuống. Tôi chưa từng thấy một trường hợp nào trước đây, nơi tôi tải xuống một tệp, kích thước chính xác nhưng nội dung thì không.

Vâng, hôm nay, tôi đã có một trường hợp đầu tiên về điều này. Tôi đã tải xuống một bản iso của Ubuntu, đã thử cài đặt nó, nó đã thất bại và sau một thời gian dài nghiên cứu (tôi không thể tin rằng lý do có thể là do tải xuống bị hỏng) Tôi đã kiểm tra MD5 và bạn biết không, nó đã sai (kích thước là chính xác). Vì vậy, tôi đã tải lại nó và nhận được một md5 sai. Chỉ trong lần tải xuống thứ ba của tôi, md5 đã chính xác.

Vì vậy, câu hỏi của tôi là, về nguyên tắc có thể tải xuống bị hỏng qua http, giả sử rằng việc thực hiện là đúng, quá trình chuyển đã kết thúc thành công và tệp đó là chính xác trên máy chủ. Nếu điều này là có thể, thì làm thế nào điều này có thể xảy ra?


Câu trả lời:


9

Có, điều đó là có thể, đặc biệt là trên các kết nối Internet chất lượng kém - thường là không dây, nhưng một số kết nối có dây (như kết nối tôi có) cũng có tỷ lệ lỗi cao ở tốc độ cao.

Giao thức HTTP không có bất kỳ quy định nào để đảm bảo tính toàn vẹn dữ liệu. Mở lớp truyền tải, TCP không có phát hiện lỗi bằng cách sử dụng một checksum, nhưng nó không phải là rất đáng tin cậy .


Có một lý do khác để cung cấp băm hoặc chữ ký số. Thông thường, các tệp thực tế được phân phối trên nhiều máy chủ nhân bản, không thể được đảm bảo an toàn 100%. Nếu không có băm hoặc chữ ký để xác minh, ai đó có quyền truy cập vào máy nhân bản (không nhất thiết phải hợp pháp) có thể thay thế các tệp và vẫn không bị phát hiện, mà không phải xâm nhập vào một máy chủ hoàn toàn khác nơi lưu trữ trang web.


Bạn có thể tự động xác minh tệp nếu bạn tải xuống Ubuntu qua BitTorrent thay vì HTTP. (Mỗi phần được xác minh tại thời điểm tải xuống, vì vậy bạn không bao giờ phải tải lại toàn bộ nội dung.)


1
Câu trả lời tốt. Tuy nhiên tôi muốn khám phá chủ đề nhiều hơn một chút, nếu bạn không phiền. Phần "tốc độ cao" hóa ra rất phù hợp. Tôi chưa bao giờ có bất kỳ vấn đề nào ở nhà, nhưng bản tải xuống Ubuntu ISO này mà tôi đã làm là ở tốc độ khoảng 5Mb / giây. Thật khó để tôi chấp nhận rằng TCP không đáng tin cậy, vì hầu hết mọi thứ xung quanh đều dựa trên TCP. Có gì khác ngoài bài viết trên wikipedia về TCP không đáng tin cậy này không? Bạn có biết chính xác tốc độ cao ảnh hưởng đến vấn đề như thế nào không? Cảm ơn bạn trước.
Andrew Savinykh

1
@zespri: TCP được cho là đáng tin cậy, nhưng tổng kiểm tra không thể bắt được 100% tất cả các lỗi. Tốc độ cao chỉ là một yếu tố với các loại kết nối nhất định hoặc qua các liên kết không đáng tin cậy ... Điều không may có thể xảy ra ở bất cứ đâu giữa bạn và máy chủ, không nhất thiết phải ngay lập tức ở cuối của bạn. (Tôi sẽ kiểm tra tải xuống từ các gương ở các quốc gia khác nhau.) Tất nhiên cũng có khả năng tệp của bạn đã bị hỏng trên hệ thống tệp của máy chủ ...
user1686

1
Nếu có một xác suất tham nhũng nhỏ, thì việc tăng số bước nhảy giữa bạn và máy chủ sẽ làm tăng cơ hội tham nhũng ???
Trevor Boyd Smith

1
@Trevor: Phụ thuộc vào chất lượng liên kết. Mười bước nhảy qua Ethernet đáng tin cậy hơn nhiều so với một bước nhảy qua WiFi. (Các bộ định tuyến / tự chuyển đổi hầu như không bao giờ làm hỏng dữ liệu; thường là kết nối thực hiện việc đó.)
user1686

Điều này không có nghĩa là bản thân HTTP bị hỏng và cần được sửa chữa?
still_dreaming_1

1

Như Grawity đã nói, điều đó là có thể, nhưng ngoài ra, những gì tôi đã nhận thấy:

Ngay cả với các kết nối internet ổn định, việc tải xuống có thể kết thúc sớm mà không có bất kỳ lý do hợp lệ nào - điều đó có thể xảy ra.

Và quan trọng nhất, nếu bạn có bộ nhớ kém, có thể phần tải xuống lưu trữ trong bộ nhớ trước khi ghi vào đĩa và vì bộ nhớ bị lỗi, nó ghi tệp không chính xác. Nếu bạn liên tục có tải xuống xấu, đây là một khả năng cao.


Ồ, tôi ghét các máy chủ web đã cắt ngẫu nhiên các lượt tải xuống ở mức ~ 50% mà không có bất kỳ sự hỗ trợ nào để tiếp tục ...
user1686

1
Wil: Yep, cắt bỏ thường xuyên, và vì điều này tôi đặc biệt loại trừ chúng khỏi câu hỏi của tôi, nói rằng tôi cho rằng kích thước là chính xác. Cảm ơn bạn đã bình luận.
Andrew Savinykh

Đúng đó là một tuyên bố chính cho câu hỏi này "kích thước hoàn toàn chính xác"
Trevor Boyd Smith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.