Em um fluxo TCP servidor->cliente, todos os pacotes do servidor têm o sinalizador PSH definido. O bom e velho Nagle é o responsável pela colocação desta bandeira?
Responder1
O sinalizador push ( PSH
ou P
) é definido pelo host remetente. Se a aplicação de envio utilizar gravação ou envio de 100 bytes, cada pacote estará PSH
definido. Se o remetente enviar 2.000 bytes, ele será enviado em dois pacotes, e o segundo terá o PSH
flag, assumindo tamanho de quadro padrão de 1.500.
O sinalizador push indica ao host receptor que os dados recebidos devem ser passados imediatamente para o aplicativo receptor.
Responder2
A configuração do Push Flag geralmente não é controlada pelo aplicativo de envio, mas pela camada TCP de envio. A maioria das pilhas TCP/IP modernas definem o bit PSH no final do buffer fornecido para send() .
Fonte: Melhore a latência do TCP não aguardando o sinalizador Push
Responder3
Definir o bit P o tempo todo é um comportamento padrão correto, mas ineficiente, que você pode ver vindo de pilhas TCP antigas.