Quando uma conexão TCP é estabelecida, há um chamado "handshake de três vias" no início, que consiste em pacotes sem dados, apenas os cabeçalhos TCP com o conjunto de bits "Ack" e vários números de seqüência para satisfazer ambas as extremidades que tudo está bem.
Depois disso, é normal que o receptor reconheça periodicamente os dados recebidos. Geralmente isso é feito configurando o bit Ack em um bloco de dados de saída conveniente. Se a comunicação é principalmente de uma maneira, espero que o receptor tenha que ocasionalmente enviar um pacote vazio para confirmar o recebimento dos dados recebidos até o momento. Um grande bloco de dados é geralmente dividido em muitos pacotes pequenos para atravessar redes com MTUs (Unidades de Transmissão Máxima Baixa). Eu não tenho os detalhes para entregar, mas eu suspeito que o fim de transmissão pode ficar ansioso se ele enviar muitos pacotes e não receber uma confirmação, mesmo que o receptor não tenha mais nada a dizer.
Portanto, pacotes de reconhecimento que não contêm dados não são necessariamente motivo de preocupação.