On a server->client TCP stream, all packets from the server have the PSH flag set. Is good old Nagle responsible for this flag being set?
On a server->client TCP stream, all packets from the server have the PSH flag set. Is good old Nagle responsible for this flag being set?
The push flag (
PSH
orP
) is set by the sending host. If the sending application uses write or send of 100 bytes, each packet will havePSH
set. If the sender sends 2000 bytes, it will be sent in two packets, and the second will have thePSH
flag, assuming standard frame size of 1500.The push flag indicates to the receiving host that the received data should be passed to the receiving application immediately.
Source: Improve latency for TCP by not waiting for Push flag
Setting the P bit all the time is a standard correct, but inefficient behavior that you might see coming from old TCP stacks.