
Ich habe ein Szenario, in dem ich reine ACKs (TCP-ACKs ohne Daten) deaktivieren möchte, aber ich kann nicht herausfinden, wie das geht. Gibt es eine Option, die ich so einstellen kann, dass ACKs immer an das nächste Datenpaket angehängt werden (von dem ich sicher sein kann, dass es kommt)?
Ich habe versucht, QuickACKs über das ip route
Kommando für einen bestimmten Netzwerkbereich und ein bestimmtes Gerät zu deaktivieren, aber es schien keine Wirkung zu haben. Als zusätzliche Information: Ich verwende auf dieser Maschine einen 4.4-Kernel. Wenn Sie weitere Informationen benötigen, fragen Sie, und ich werde sie Ihnen geben.
Antwort1
Ein Paket muss innerhalb einer bestimmten Zeit vom Empfänger bestätigt werden, da der Sender sonst davon ausgeht, dass das Paket verloren gegangen ist und es erneut sendet. Wenn Ihr Empfänger trotzdem Daten sendet, wird die Bestätigung diesen Daten hinzugefügt. Wenn keine Daten gesendet werden, muss eine reine Bestätigung gesendet werden, um den Sender rechtzeitig darüber zu informieren, dass das Paket empfangen wurde.
Antwort2
Wie sich herausstellte, verwendete die Anwendung, die mir diese reinen ACKs gab, einen Socket mit gesetzter Option TCP_NODELAY, sodass jedes Paket so schnell wie möglich beantwortet würde, ohne auf weitere Daten warten zu müssen.