![Was bedeutet das TCP-Paket-Flag [P.] in der Ausgabe von tcpdump?](https://rvso.com/image/1596169/Was%20bedeutet%20das%20TCP-Paket-Flag%20%5BP.%5D%20in%20der%20Ausgabe%20von%20tcpdump%3F.png)
Wenn eine IP xxxx sich mit IP zzzz verbindet und dabei das [P.]-Flag für TCP-Pakete verwendet, was genau bedeutet dieses [P.]-Flag? Bedeutet es, dass xxxx Daten an zzzz sendet?
Antwort1
Was genau ist das für eine [P.] Flagge
Es ist ein PUSH-Flag.
Tcpflags sind eine Kombination aus S (SYN), F (FIN), P (PUSH), R (RST), U (URG), W (ECN CWR), E (ECN-Echo) oder „.“ (ACK) oder „none“, wenn keine Flags gesetzt sind.
QuelleManpage von TCPDUMP
Der Zweck der Push-Funktion und des PUSH-Flags besteht darin, Daten vom sendenden Benutzer zum empfangenden Benutzer durchzuschieben. Es wird kein Aufzeichnungsdienst bereitgestellt.
Es besteht eine Kopplung zwischen der Push-Funktion und der Verwendung von Datenpuffern, die die TCP/Benutzerschnittstelle durchlaufen. Jedes Mal, wenn ein PUSH-Flag mit Daten verknüpft ist, die in den Puffer des empfangenden Benutzers gestellt werden, wird der Puffer zur Verarbeitung an den Benutzer zurückgegeben, auch wenn der Puffer nicht gefüllt ist. Wenn Daten eintreffen, die den Puffer des Benutzers füllen, bevor ein PUSH erkannt wird, werden die Daten in Puffergrößeneinheiten an den Benutzer übergeben.
Quelle[PSH,ACK] Wireshark-Erfassung - Wireshark Q&A
PSH und die PUSH-Funktion
Wenn Sie Daten senden,
TCP
puffert Ihr TCP sie. Wenn Sie also ein Zeichen senden, wird es nicht sofort gesendet, sondern abgewartet, ob Sie mehr haben. Aber vielleicht möchten Sie, dass es direkt über die Leitung geht: Hier kommt die PUSH-Funktion ins Spiel. Wenn Sie Daten PUSHen, erstellt Ihr TCP sofort ein Segment (oder mehrere Segmente) unddrückenihnen.Aber die Geschichte endet hier nicht. Wenn der Peer-TCP die Daten empfängt, puffert er sie natürlichEs wird die Anwendung nicht für jedes einzelne Byte stören. Hier
PSH
kommt das Flag ins Spiel. Wenn ein empfangender TCP das PSH-Flag sieht, wird er sofortdrückendie Daten an die Anwendung.Es gibt keine API zum Setzen des
PSH
Flags. Normalerweise wird es vom Kernel gesetzt, wenn er den Puffer leert. Aus TCP/IP Illustrated:Dieses Flag wird üblicherweise verwendet, um anzuzeigen, dass der Puffer auf der Seite, die das Paket sendet, im Zusammenhang mit dem Senden des Pakets geleert wurde. Mit anderen Worten, als das Paket mit dem gesetzten PSH-Bitfeld den Absender verließ, hatte der Absender keine weiteren Daten mehr zu senden.
Aber seien Sie sich bewusst, dass Stevens auch sagt:
Push (der Empfänger soll diese Daten schnellstmöglich an die Anwendung weitergeben—nicht zuverlässig implementiert oder genutzt)
QuelleUnterschied zwischen Push- und Urgent-Flags in TCP, Antwort vonKnabberzeug