
首先,如果這似乎是一個有點簡單的問題,我深感抱歉。
根據這個答案, TCP 封包已損壞每時每刻沒有校驗和捕獲它。
如果這種情況經常發生,為什麼不更引人注目呢?這是否會導致圖像損壞、腳本檔案包含錯誤的 ASCII 字元等?
當然,人們傾向於對關鍵檔案運行 md5 校驗和,但對於普通和日常網路應用程式來說,為什麼這不會造成比看起來更嚴重的破壞? (似乎它甚至沒有發生,但統計數據和邏輯在該答案中得到了檢驗)
答案1
如果這種情況經常發生的話...
它沒有,而且您提到的答案也沒有聲稱它有。 」常" 意味著大量資料包已損壞相對的傳輸的資料包的絕對數量。但這種情況並非如此。雖然您提到的答案聲稱許多資料包已損壞,損壞仍然存在稀有的相比於絕對傳輸的包裹數量。
除此之外,TCP 之上可能還有其他保護措施。例如,TLS(如 HTTPS 中使用的)幾乎會注意到所有資料損壞,因為用於檢測資料操作的 HMAC 比 TCP 中使用的簡單 CRC 更強大(但開銷也更大)。雖然在此階段檢測到問題不會像 TCP 校驗和錯誤那樣導致資料重新傳輸,但連接將簡單地視為已斷開,因此與日常連接斷開時遇到的許多其他錯誤無法區分。類似地,由於圖像格式的工作方式,圖像中的損壞資料通常實際上是不可見的,或者會導致整個圖像被破壞(無法渲染或在中間被切斷),這看起來也類似於典型的連接問題。
答案2
您正在描述抽樣偏差。僅僅因為您個人在使用 TCP 時沒有註意到許多損壞問題並不意味著它不會一直發生。確實如此。您連結到的答案在該主題上相當完整。