所有 TCP 封包都設定了 PSH 標誌 - 誰/什麼會為此負責?

所有 TCP 封包都設定了 PSH 標誌 - 誰/什麼會為此負責?

在伺服器->客戶端 TCP 流上,來自伺服器的所有資料包都設定了 PSH 標誌。好心的老內格爾對這面旗幟的設置負有責任嗎?

答案1

推送標誌(PSHP)由發送主機設定。如果發送應用程式使用 100 位元組的寫入或發送,則每個資料包都會PSH設定。如果發送方發送 2000 字節,則會分兩個資料包發送,第二個資料包將帶有該PSH標誌,假設標準幀大小為 1500。

推送標誌向接收主機指示接收到的資料應立即傳遞到接收應用程式。

答案2

Push Flag 的設定通常不是由發送應用程式控制,而是由發送 TCP 層控制。大多數現代 TCP/IP 堆疊在提供給 send() 的緩衝區末端設定 PSH 位元。

來源: 透過不等待 Push 標誌來改善 TCP 的延遲

答案3

始終設定 P 位元是標準的正確行為,但效率低下,您可能會在舊的 TCP 堆疊中看到這種行為。

相關內容