![O que significa o sinalizador do pacote TCP [P.] na saída do tcpdump?](https://rvso.com/image/1596169/O%20que%20significa%20o%20sinalizador%20do%20pacote%20TCP%20%5BP.%5D%20na%20sa%C3%ADda%20do%20tcpdump%3F.png)
Se um IP xxxx se conectar ao IP zzzz usando o sinalizador [P.] para pacote TCP, o que exatamente esse sinalizador [P.] significa? Isso significa que xxxx envia alguns dados para zzzz?
Responder1
O que exatamente esta bandeira [P.]
É uma bandeira PUSH.
Tcpflags são alguma combinação de S (SYN), F (FIN), P (PUSH), R (RST), U (URG), W (ECN CWR), E (ECN-Echo) ou `.' (ACK) ou `none' se nenhum sinalizador estiver definido.
FontePágina de manual do TCPDUMP
O objetivo da função push e do sinalizador PUSH é enviar dados do usuário remetente para o usuário receptor. Não fornece um serviço de registro.
Existe um acoplamento entre a função push e o uso de buffers de dados que atravessam a interface TCP/usuário. Cada vez que um sinalizador PUSH é associado a dados colocados no buffer do usuário receptor, o buffer é retornado ao usuário para processamento, mesmo que o buffer não esteja cheio. Se chegarem dados que preencham o buffer do usuário antes que um PUSH seja visto, os dados serão passados ao usuário em unidades de tamanho de buffer.
Fonte[PSH,ACK] captura wireshark - Perguntas e respostas sobre Wireshark
PSH e a função PUSH
Quando você envia dados, você
TCP
os armazena em buffer. Portanto, se você enviar um personagem, ele não será enviado imediatamente, mas espere para ver se você tem mais. Mas talvez você queira que ele siga direto: é aqui que entra a função PUSH. Se você PUSH dados, seu TCP criará imediatamente um segmento (ou alguns segmentos) eempurrareles.Mas a história não para aqui. Quando o peer TCP recebe os dados, ele os armazena naturalmente em buffernão atrapalhará o aplicativo para cada byte. É aqui que o
PSH
sinalizador entra em ação. Se um TCP receptor vir o sinalizador PSH, ele irá imediatamenteempurraros dados para o aplicativo.Não há API para definir o
PSH
sinalizador. Normalmente é definido pelo kernel quando esvazia o buffer. Do TCP/IP ilustrado:Este sinalizador é convencionalmente usado para indicar que o buffer no lado que envia o pacote foi esvaziado em conjunto com o envio do pacote. Em outras palavras, quando o pacote com o campo de bits PSH definido deixou o remetente, o remetente não tinha mais dados para enviar.
Mas esteja ciente de que Stevens também diz:
Push (o receptor deve passar esses dados para o aplicativo o mais rápido possível—não implementado ou usado de forma confiável)
FonteDiferença entre sinalizadores push e urgentes no TCP, responda porcnicutar