2010-06-14 19 views
10

Ich weiß, dass UDP von Natur aus unzuverlässig ist, aber bei der Verbindung zu localhost würde ich erwarten, dass der Kernel die Verbindung anders behandelt, da alles intern behandelt werden kann. In diesem speziellen Fall wird UDP als zuverlässiges Protokoll betrachtet, oder wird der Kernel möglicherweise noch einige Pakete blockieren, wenn Puffer überlaufen werden?Zuverlässigkeit von UDP auf localhost

+3

Abgesehen von dem, was TomMD gesagt hat, würde ich mich fragen, warum Sie UDP überhaupt verwenden. Die wenigen Nachteile von TCP sind im Wesentlichen unerheblich, wenn es um die Verwendung von localhost geht. Der einzige wirkliche Gewinn, den Sie von UDP erhalten würden, wäre ein sehr geringer Verlust an Overhead, von dem die meisten wegfallen, wenn Sie es sowieso selbst zuverlässig machen müssen. –

+3

Nun, UDP können Sie auf beliebige unbekannte Clients übertragen ... – Michael

Antwort

8

Ich wiederhole eine previous answer zu einer verwandten Frage. Um portabel zu bleiben, antizipieren Sie immer, dass Ihre UDP-Sockets möglicherweise Pakete verwerfen oder Out-of-Order-Daten empfangen.

3

Ich glaube nicht, dass UDP (oder ein anderes Netzwerkprotokoll) etwas über ein anderes Verhalten bei der Verbindung zu localhost sagt. Die Antwort hängt also von dem spezifischen Kernel ab, den Sie verwenden. Am besten anzunehmen, dass UDP sich wie UDP verhält.

7

Ich habe gesehen, UDP zu localhost Pakete fallen. Wir denken, wir haben die Kernel-Warteschlange überlastet. Alles, was wir sicher wissen, ist, dass es Pakete fallen ließ.

Verwandte Themen