1. 程式人生 > >TCP傳輸過程中丟包問題

TCP傳輸過程中丟包問題

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

例如伺服器給客戶端發大量資料,Send的頻率很高,
那麼就有可能在Send時發生錯誤(原因可能是又多種,可能是程式處理邏輯問題,多執行緒同步問題,緩衝區溢位問題等等)
如果沒有對Send失敗做處理重發資料,那麼客戶端收到的資料就會比理論應該收到的少,就會造成丟資料,丟包的現象。
這種現象,其實本質上來說不是丟包,也不是丟資料,只是因為程式處理有錯誤,導致有些資料沒有成功地被socket傳送出去