在伺服器->客戶端 TCP 流上,來自伺服器的所有資料包都設定了 PSH 標誌。好心的老內格爾對這面旗幟的設置負有責任嗎?
答案1
推送標誌(PSH
或P
)由發送主機設定。如果發送應用程式使用 100 位元組的寫入或發送,則每個資料包都會PSH
設定。如果發送方發送 2000 字節,則會分兩個資料包發送,第二個資料包將帶有該PSH
標誌,假設標準幀大小為 1500。
推送標誌向接收主機指示接收到的資料應立即傳遞到接收應用程式。
答案2
Push Flag 的設定通常不是由發送應用程式控制,而是由發送 TCP 層控制。大多數現代 TCP/IP 堆疊在提供給 send() 的緩衝區末端設定 PSH 位元。
答案3
始終設定 P 位元是標準的正確行為,但效率低下,您可能會在舊的 TCP 堆疊中看到這種行為。