É importante entender que o TCP é um protocolo de streaming, e a separação em segmentos é apenas um detalhe de implementação e é apenas porque alguns protocolos de nível inferior são baseados em pacotes.
Configurar o flag PSH é apenas uma indicação para o terminal de recebimento que deve liberar seu buffer para o aplicativo. Devido à natureza assíncrona da pilha TCP / IP, no momento em que o aplicativo for notificado de que há dados pendentes, vários outros pacotes mais recentes podem já ter sido recebidos, e tudo junto será enviado ao aplicativo. O TCP é um fluxo.
Além disso, esteja ciente de que não há garantia de que a separação em segmentos TCP também será preservada na rede. É verdade que geralmente é preservado, mas há proxies, firewalls de inspeção profunda, etc., que podem realmente colar vários pequenos segmentos em um maior, etc.