Resumo

  • PUSH pede que o TCP não espere indefinidamente por mais bytes antes de encaminhar os dados já fornecidos.
  • PSH não é um marcador de registro: os limites de escrita, segmento, buffer de recepção e leitura podem ser diferentes.
  • Protocolos que precisam de mensagens devem definir seu próprio enquadramento acima do TCP.

De “carta” a fluxo

As primeiras especificações do TCP experimentaram a ideia de uma “carta”. A RFC 793 explica que esse mecanismo foi redescrito como uma função PUSH. A mudança é importante: TCP fornece um fluxo contínuo de octetos, não uma sequência de mensagens com bordas preservadas.

Ao solicitar PUSH, a aplicação pede que os dados já entregues sejam transmitidos e cheguem prontamente ao usuário remoto. Isso trata do tempo de espera permitido ao transporte; não altera o modelo de dados.

Limites que não coincidem

A RFC 9293 diz que, quando a interface permite indicar PUSH em SEND, PSH é colocado no último segmento criado a partir daquele buffer. O TCP ainda pode dividir o buffer, combinar dados ou juntar indicações PUSH sucessivas ao montar segmentos.

Quando a implementação não oferece PUSH ao remetente, ela tampouco pode reter dados indefinidamente: se não houver mais dados na fila, deve marcar com PSH o último segmento armazenado.

No receptor, um buffer cheio pode ser devolvido antes de PSH ser observado. Expor essa indicação à aplicação é opcional; se a interface optar por fazê-lo, PUSH também pode fazer com que um buffer parcialmente preenchido seja entregue. O tamanho das leituras da aplicação não precisa acompanhar o das escritas do remetente.

PSH sinaliza intenção de progresso, não o fim de uma mensagem. Não garante transmissão imediata, quantidade fixa de pacotes ou conclusão de uma leitura. Controle de fluxo, congestionamento, Nagle e a implementação continuam valendo.

Comprimentos, delimitadores, estruturas de tamanho fixo ou outra regra devem fornecer o enquadramento da aplicação. Uma captura mostra onde PSH apareceu em uma determinada segmentação, mas não revela sozinha limites oficiais de registros.

Fontes