Linux-Kernel-Holding-Paket?

Linux-Kernel-Holding-Paket?

Ich habe mir ein Drittanbieterprogramm zur DNS-Auflösung (auf einer eingebetteten Lösung) angesehen und im Code zum Senden der DNS-Abfrage an den Upstream-Server wird „connect()“ und dann „send()“ ausgeführt.

send() gibt die angegebene Anzahl an Bytes zurück (also nicht -1 oder errno gesetzt), aber ich sehe die DNS-Abfrage nie in Wireshark. Das DNS-Programm denkt also, das Paket sei gesendet worden, erhält aber nie eine Antwort darauf und die Zeit für das Paket wird überschritten. Nachfolgende DNS-Abfragen werden jedoch problemlos ausgeführt.

Hält der Kernel das Paket zurück und wenn ja, wie kann ich herausfinden, WARUM er das tut? Es gibt keine Regeln, die den Ausgang dieses Pakets blockieren.

Ich habe gehört, dass der Kernel ein Paket zurückhalten kann, wenn er glaubt, dass die Route zum Remote-Ziel nicht erreichbar ist. Passiert das und wenn ja, wie erfahre ich mehr darüber?

verwandte Informationen