TCP通信丟包原因總結

TCP協議本身是保證傳輸的數據完整性不會丟數據的。
如果通信中發現缺少數據或者丟包,
那麼,最大的可能在於程序發送的過程或者接收的過程出現問題。

例如服務器給客戶端發大量數據,Send的頻率很高,
那麼就有可能在Send時發生錯誤(原因可能是又多種,可能是程序處理邏輯問題,多線程同步問題,緩衝區溢出問題等等)
如果沒有對Send失敗做處理重發數據,那麼客戶端收到的數據就會比理論應該收到的少,就會造成丟數據,丟包的現象。
這種現象,其實本質上來說不是丟包,也不是丟數據,只是因爲程序處理有錯誤,導致有些數據沒有成功地被socket發送出去
發佈了24 篇原創文章 · 獲贊 53 · 訪問量 100萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章