Wie unterscheiden sich die Kommunikationsprotokolle TCP und UDP (QUIC)?

Wie unterscheiden sich die Kommunikationsprotokolle TCP und UDP (QUIC)?

Allgemeines

In der Kommunikation zwischen der timeSensor LEGAL 365 Client App und der Datenbank (Backend) stehen zwei Protokolle zur Verfügung:
  • TCP
  • UDP (QUIC)
Dieser Artikel erläutert die Vor- und Nachteile der beiden Protokolle.

Unterschied TCP vs. UDP (QUIC)

  • TCP garantiert eine zuverlässige, geordnete Datenübertragung. Wenn Pakete verloren gehen, werden sie nachgesendet. Sobald aber die Verbindung unterbrochen ist (z. B. durch Timeout oder Routingproblem), merkt TCP das sofort und beendet die Verbindung.

  • UDP (QUIC) dagegen ist verbindungslos und tolerant gegenüber Paketverlusten. Die 4D Datenbank (bzw. QUIC als Transport-Layer) versucht, Datenströme trotz Störungen am Laufen zu halten. Das macht das System robuster gegenüber kurzen Netzwerkproblemen, aber es gibt keine hundertprozentige Garantie, dass alle Datenpakete in der richtigen Reihenfolge oder vollständig ankommen.

Wenn bei einer größeren Netzwerkstörung unter UDP

  • einzelne UDP-Pakete verloren gehen,

  • oder Pakete verspätet bzw. in falscher Reihenfolge ankommen,
    kann der Zustand der Client-Server-Synchronisation inkonsistent werden.

Beispiel:

  • Der Client fragt Datensatz ID 123 an.

  • Das Antwortpaket wird teilweise oder verspätet empfangen.

  • QUIC versucht zu rekonstruieren, aber Teile des Streams sind inkonsistent.

  • Der Client bekommt Daten, die formal korrekt aussehen (weil sie decodiert werden können), aber nicht mehr zu der erwarteten Anfrage passen.

So kann es zu folgendem Verhalten kommen:

Klick auf Datensatz A → Anzeige eines anderen Datensatzes.

Der Client „glaubt“ also, mit dem Server synchron zu sein, ist es aber nicht mehr.

Störungsquelle Anti-Virus Software

Antivirus-Software kann in Terminalserver- oder Remote-Desktop-Umgebungen massiv in den Netzwerkverkehr eingreifen, und das betrifft insbesondere UDP/QUIC-Verbindungen..

Wie Antivirus-Software in die Kommunikation eingreift

Viele moderne AV-Produkte (z. B. BitDefender, Kaspersky, ESET, Sophos usw.) enthalten Netzwerkschutzmodule, die:

  • sämtlichen Netzwerkverkehr abfangen und inspizieren,

  • ggf. TLS/SSL-Verbindungen aufbrechen und neu verschlüsseln,

  • Heuristiken oder „Intrusion Detection“ anwenden,

  • und „anormale“ UDP-Pakete verwerfen, wenn sie nicht ins erwartete Schema passen.

Das geschieht tief im Windows-Netzwerkstack, oft über:

  • NDIS-Treiber,

  • LSPs (Layered Service Provider),

  • oder WFP-Filter (Windows Filtering Platform).

Diese Hooks liegen unterhalb der Anwendungsebene, also auch unterhalb von 4D.
Das bedeutet: 4D merkt nicht, dass Pakete blockiert, verzögert oder verändert wurden.

Warum das besonders bei UDP/QUIC problematisch ist

UDP/QUIC ist zustandslos und zeitkritisch.
Wenn Pakete verspätet, blockiert oder „re-sequenziert“ werden:

  • stimmt die erwartete Paketfolge nicht mehr,

  • interne Streams von QUIC brechen asynchron ab,

  • oder bestimmte Sequenznummern „fehlen“.

Auch dies führt zu dem vorgehen beschriebenen Phänomen, dass die Client App weiter reagiert, aber falsche Datensätze oder unlogische Suchergebnisse liefert.

TCP wäre hier weniger anfällig, weil TCP eine fehlerhafte Übertragung erkennen und beenden würde – UDP/QUIC versucht dagegen, sich „durchzuschummeln“, und 4D arbeitet weiter mit inkonsistenten Daten.

Warum Terminalserver besonders betroffen sind

In Terminalserver-Umgebungen laufen:

  • viele gleichzeitige 4D-Client-Instanzen,

  • über die gleiche Netzwerkschnittstelle,

  • oft durch dieselbe AV-Überwachungsschicht.

Das erzeugt:

  • hohe Latenzen (weil der AV-Treiber jeden Stream prüft),

  • sporadische Paketverluste oder -blockaden,

  • und manchmal Memory-Leaks oder Deadlocks in den Filtertreibern.

Gerade bei „Security Suites“, die Netzwerkverkehr in Echtzeit analysieren oder „Schutz vor verdächtigen Verbindungen“ aktivieren, treten diese Phänomene auf.

Fazit

Verschiedene Ursachen können dazu führen, dass Pakete von der Client App nicht oder verspätet empfangen werden. Bei Verwendung des TCP Protokolls reagiert die 4D Datenbank sofort, indem bei einem Fehler die Verbindung verloren geht. Das ist zwar konsequent, kann aber unangenehm auffallen.

Bei Verwendung des UDP Protokolls ist die 4D Datenbank toleranter und versucht die Datenströme am Laufen zu halten. Es kann aber zu Situationen kommen, in welchen Client und Server nicht mehr synchron sind, ohne dass ein formaler Fehler auftritt. Das Problem macht sich dann zum Beispiel bemerkbar, wenn sich beim Doppelklick auf einen Datensatz ein anderer Datensatz öffnet. In so einem Fall muss die Client App neu gestartet werden.