GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Herausfinden, ob eine Nachricht über TCP zugestellt wurde

Es ist der beste Weg, den Empfänger eine Bestätigung zurücksenden zu lassen, auch wenn es sich "unangenehm" anfühlt. Denken Sie daran, dass IP Ihre Daten möglicherweise in mehrere Pakete aufteilt und sie wieder zusammensetzt. Dies könnte während einer Übertragung mehrmals erfolgen, wenn verschiedene Router auf dem Weg unterschiedliche MTUs haben und Ihr Konzept von "einem Paket" und TCPs möglicherweise nicht übereinstimmen.

Es ist viel besser, Ihr "Paket" zu senden, egal ob es sich um eine Zeichenfolge, ein serialisiertes Objekt oder binäre Daten handelt, und den Empfänger alle erforderlichen Überprüfungen durchführen zu lassen, damit es da ist, und dann eine Bestätigung zurückzusenden.


Das sendende TCP weiß zwar, wann die Daten vom anderen Ende bestätigt werden, aber der einzige Grund dafür ist, dass es weiß, wann es die Daten verwerfen kann (weil jetzt jemand anderes dafür verantwortlich ist, sie an die Anwendung auf der anderen Seite zu bringen ).

Normalerweise werden diese Informationen nicht an die sendende Anwendung weitergegeben, da dies (trotz des Anscheins) nicht wirklich bedeuten würde viel zu der sendenden Anwendung. Die Bestätigung bedeutet nicht, dass die empfangende Anwendung die Daten bekommen und etwas Sinnvolles damit gemacht hat – es bedeutet lediglich, dass sich das sendende TCP nicht mehr darum kümmern muss. Die Daten könnten noch unterwegs sein – beispielsweise innerhalb eines zwischengeschalteten Proxy-Servers oder innerhalb des empfangenden TCP-Stacks.

"Daten erfolgreich empfangen" ist wirklich ein Konzept auf Anwendungsebene - was es bedeutet, hängt von der Anwendung ab (z. B. wäre es für viele Anwendungen nur sinnvoll, die Daten als "empfangen" zu betrachten, sobald sie auf der empfangenden Festplatte synchronisiert wurden Seite). Das bedeutet, dass Sie es selbst implementieren müssen, denn als Anwendungsentwickler sind Sie wirklich der einzige, der weiß, wie es für Ihre Anwendung sinnvoll ist.


Linux
  1. Verlorene Daten/Partition wiederherstellen?

  2. Leistungsstarke TCP-Socket-Programmierung in .NET C#

  3. Btrfs über mdadm raid6?

  4. Vorteile für Arch Linux gegenüber Kali Linux

  5. Das System hängt, wenn der Speicher knapp wird

Süßes und Saures für Sysadmins und Ops

So finden Sie heraus, welche Datei sich in einem bestimmten Sektor befindet

Lesen Sie alternative Datenströme über SMB mit Linux

Herausfinden, mit welchen Parametern ein Programm gestartet wurde

Herausfinden, was die Festplatte hochfährt

Auf großen Dateisystemen läuft fsck nicht mehr genügend Arbeitsspeicher