發送方產生粘包
採用 TCP 協議傳輸數據的客戶端與服務器經常是保持一個長連接的狀態(一次連接發一次數據不存在粘包),雙方在連接不斷開的情況下,可以一直傳輸數據。但當發送的數據包過於的小時,那麼 TCP 協議默認的會啓用 Nagle 算法,將這些較小的數據包進行合併發送(緩衝區數據發送是一個堆壓的過程);這個合併過程就是在發送緩衝區中進行的,也就是說數據發送出來它已經是粘包的狀態了。
接收方產生粘包
接收方採用 TCP 協議接收數據時的過程是這樣的:數據到接收方,從網絡模型的下方傳遞至傳輸層,傳輸層的 TCP 協議處理是將其放置接收緩衝區,然後由應用層來主動獲取(C 語言用 recv、read 等函數);這時會出現一個問題,就是我們在程序中調用的讀取數據函數不能及時的把緩衝區中的數據拿出來,而下一個數據又到來並有一部分放入的緩衝區末尾,等我們讀取數據時就是一個粘包。(放數據的速度 > 應用層拿數據速度)
TCP粘包是怎麼產生的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
爲什麼Netflix“永不宕機”?
核子可乐
2021-11-25 15:48:52
解開 IP 的“窄腰”:名稱和 Web 服務的尋址敏捷性
Marwan Fayed
2021-11-12 10:48:58
6 個多雲架構設計,實現有效的雲策略
Jignesh Solanki
2021-10-15 15:03:50
定位你的到底是App,還是手機廠商的操作系統?
Tina
2021-10-14 19:08:57
團隊管理之如何成爲核心員工
小诚信驿站
2021-10-13 14:03:53
富途證券因數據中心故障導致交易中斷,創始人發文道歉
Tina
2021-10-12 17:13:56
完全低估黑客的攻擊手段,這家新遊還沒開服就遭受有預謀的攻擊
罗燕珊
2021-09-14 16:14:01
黑客過於強勢,谷歌微軟已承諾投入數十億美元做網絡安全
闫园园
2021-09-03 17:59:05
安全界的“奧斯卡”獎揭曉,微軟系統漏洞被列爲“史詩般的失敗”
施尧
2021-08-18 13:44:01
ExpressVPN 宣佈開源 Lightway 協議,VPN 市場將有大變化?
辛晓亮
2021-08-12 18:18:51
七牛雲產品發佈會 | 以“PISA”之名開啓智能運維新時代
InfoQ 中文站
2021-07-14 10:04:58
阿里雲視頻雲全景創新峯會
InfoQ 中文站
2021-07-14 10:04:58
繼進入緊急狀態後,美國再次提升優先級,將黑客攻擊與恐怖襲擊並列
Tina
2021-06-04 17:13:56