PSH (Push)
O PSH (Push) é uma flag do protocolo TCP que indica que os dados recebidos devem ser entregues imediatamente à aplicação, sem aguardar que o buffer de recepção seja preenchido.
Como funciona?
Normalmente, o TCP pode acumular dados em um buffer antes de entregá-los à aplicação para aumentar a eficiência. Quando o transmissor define a flag PSH, ele solicita ao receptor que:
Não espere acumular mais dados.
Entregue imediatamente os dados recebidos ao processo da aplicação.
Importante: O PSH é uma solicitação, não uma obrigação. A implementação da pilha TCP do sistema operacional decide como tratá-la.
Exemplo prático
Imagine uma sessão Telnet ou SSH:
Você digita a letra “A”.
O cliente envia um segmento TCP contendo apenas esse caractere.
O segmento é enviado com a flag PSH.
O servidor entrega imediatamente o caractere ao processo Telnet/SSH, permitindo que ele apareça instantaneamente na tela.
Sem o PSH, o TCP poderia aguardar mais caracteres antes de entregá-los à aplicação.
No Wireshark ou tcpdump
Você verá algo semelhante a:
Flags [P.]
ou
PSH, ACK
Onde:
P = PSH (Push)
. = ACK (Acknowledgment)
Exemplo:
10.0.0.1:443 > 10.0.0.2:51234 Flags [P.], seq 1501:2001, ack 800, length 500
Significa que o servidor está enviando 500 bytes de dados e solicita que eles sejam entregues imediatamente à aplicação.
O PSH indica problema?
Não. A presença da flag PSH é completamente normal. Ela aparece com frequência em:
HTTPS (TLS)
SSH
Telnet
Aplicações web
Bancos de dados
APIs
Streaming de dados
É comum encontrar milhares de pacotes com PSH em uma captura de rede
Em análises de tcpdump ou Wireshark, um pacote com PSH geralmente significa:
O emissor enviou dados da aplicação.
O receptor deve disponibilizar esses dados imediatamente para a aplicação.
Por exemplo:
Cliente → Servidor
PSH, ACK
O servidor respondeu com dados (como uma resposta HTTP ou informações da aplicação).
Relação com outras flags TCP
| Flag | Significado |
| —- | ————————————————————– |
| SYN | Inicia a conexão TCP. |
| ACK | Confirma o recebimento de dados. |
| PSH | Solicita a entrega imediata dos dados à aplicação. |
| FIN | Encerra a conexão de forma normal. |
| RST | Reinicia ou aborta a conexão imediatamente. |
| URG | Indica que há dados urgentes (raramente utilizada atualmente). |
No seu contexto de análise de rede
Como você costuma analisar tcpdump para investigar instabilidades em conexões TCP (RADIUS, VPN, aplicações IoT etc.), a presença de PSH normalmente indica apenas que há troca efetiva de dados da aplicação. Por si só, ela não representa erro nem perda de comunicação. O que merece atenção é quando pacotes com PSH passam a ser seguidos por eventos como:
Retransmissões TCP (dados não confirmados).
RST (reinício abrupto da conexão).
Timeouts.
Longos intervalos sem ACK.
Repetição de PSH com o mesmo número de sequência (indicando retransmissão).
Nesses casos, o problema normalmente está relacionado à perda de pacotes, latência elevada, congestionamento ou falhas no caminho da comunicação, e não à flag PSH em si.

