Ich brauche einen TCP-option (ioctl) zum senden von Daten sofort

Ich habe eine ungewöhnliche situation: ich bin mit einem Linux-system in einer integrierten Lage (Intel box, derzeit mit einem 2.6.20-kernel.) die für die Kommunikation mit einem embedded system mit einer teilweise gebrochen TCP-Implementierung. Als nahe als ich kann sagen, gerade jetzt Sie erwarten, dass jede Nachricht von uns kommen in eine separate Ethernet-frame! Sie scheinen Probleme zu haben, wenn Nachrichten aufgeteilt sind über Ethernet-frames.

Sind wir auf dem lokalen Netzwerk mit dem Gerät, und es gibt keine Router zwischen uns (nur ein Schalter).

Sind wir natürlich versuchen, Sie zu zwingen, zu beheben Ihr system, aber das kann nicht am Ende als machbar.

Habe ich bereits TCP_NODELAY auf meine Steckdosen (habe ich eine Verbindung zu Ihnen), aber das hilft nur, wenn ich nicht versuchen, zu senden mehr als eine Nachricht gleichzeitig. Wenn ich mehrere ausgehende Nachrichten in einer Zeile, die diese Nachrichten neigen dazu, am Ende in ein oder zwei Ethernet-frames, die Ursachen der Probleme auf dem anderen system.

Kann ich generell das problem vermeiden, indem mit Hilfe eines Timers zu vermeiden, senden von Nachrichten zu nahe zusammen, aber offensichtlich Grenzen unserer Durchsatz. Weiter, wenn ich wieder Zeit nach unten zu niedrig, ich das Risiko von Netzwerk-Staus halten-Paket sendet und damit zu enden, dass mehr als eine meiner Nachrichten in der gleichen Paket.

Gibt es eine Möglichkeit, dass ich sagen kann, ob der Fahrer die Daten in der Warteschlange oder nicht? Gibt es eine Möglichkeit, ich kann erzwingen, dass die Treiber zum senden von unabhängigen schreiben, Anrufe in der independent transport layer-Pakete? Ich habe einen Blick durch die Buchse(7) und tcp(7) - man-Seiten und ich habe nichts gefunden. Es mag sein, dass ich nicht weiß, was ich Suche.

Offensichtlich, UDP wäre eine Möglichkeit, aber wieder, ich glaube nicht, dass wir machen können, das andere Ende nichts ändern viel an dieser Stelle.

Jede Hilfe sehr dankbar.

Schreibe einen Kommentar