Network

1.TCP

  • 粘包
    TCP連接會啟用延遲傳送算法,在數據發送前緩存他們,短時間有多個數據發送,會緩沖到一起作一次發送,這樣可以減少IO消耗提高性能,一般在發送多條信息時需要處理粘包
    同時,TCP如果發現丟包的話,會重新發送緩存里的對應信息

    • 多次發送之間間隔一個等待時間
    • 關閉延遲傳送算法,每次send都不緩沖,直接發送
    • 封包和拆包,在數據包發送前,在其前后放一些有特征的數據,收到數據的時候根據特征數據分割出各個數據包
  • 可靠傳輸
    每次發送數據包都帶有一個SYN序列號,每個包對方收到后要返回一個ACk應答包,會進行超時重傳,接收方會根據序列號來拼接數據

  • 流量控制
    TCP頭里有window字段,為接收方還有多少緩沖區來接收數據,發送方就會根據接收放的處理能力來發送數據,避免接收方處理不過來

  • 慢啟動
    當TCP開始在網絡中傳輸數據時,為了避免擁塞,不能夠一開始就發送大尺寸的數據包,只能從一個尺寸的包開始發送,在發送和數據被對方確認的過程中去計算對方的接收速度,來逐步增加每次發送的數據包量,直到達到一個閥值為止

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容