UDP-Server-Client ( verlorene Pakete )



  • Ja also das verstehe ich auch nicht...
    Selbst wenn es z.B. die Person Müller genau 1000 mal gibt, soo schlimm wäre das doch nun auch nicht. Ein Datensatz zu einer Person wird ja nun auch nicht ellenlang sein, vielleicht 2-3 Kb ? Das wären zwar schon ca 2-3 Mb, aber in Zeiten von DSL sollte das ja nun auch nicht soo das Problem darstellen.
    Ausserdem, warum präzisierst du nicht einfach die Suchanfragen ? Z.B. Herr Müller aus Bochum oder sowas, dann kriegst du ja auch nur noch nen Bruchteil deiner Datensätze, und das oben geschilderte Szenario bleibt eher ein Extremfall.
    Hast du auch mal dran gedacht, dass die Datenbankabfrage für solche Personen auch einen großen Teil der Zeit in Anspruch nimmt ?
    Also da an der Verbindung mit UDP/TCP anzusetzen halte ich für ziemlich daneben...



  • Ich hätte das ganze ebenfalls mit TCP gehandelt und die Zig-Millionen Daten nicht in Multimaps gepackt, aber Chef will es so. Datenbankabfrage sowie TCP sind zu langsam sagt er. Hmm...



  • Petommy schrieb:

    Ich hätte das ganze ebenfalls mit TCP gehandelt und die Zig-Millionen Daten nicht in Multimaps gepackt, aber Chef will es so. Datenbankabfrage sowie TCP sind zu langsam sagt er. Hmm...

    Was meinst du wie viele Inteligente Menschen schon versucht haben TCP sicher(Im Bezug auf Verluste) UND schnell zu machen. Da wirst du es schwer haben das mit einer eigenen Implementierung zu überbieten.

    Flußsteuerung verlamsamt die Verbindung nicht wenn man bedenkt was das Neusenden von Paketen in Anspruch nimmt, wenn der Empfänger überlastet wird und eingehende Pakete einfach verwirft.

    Mit UDP wirst du dich mit folgenden Problemen herumschlagen müssen:
    1. verlohrene Pakete
    2. Überlast des Netzes und möglicherweise viele verlorene Pakete (keine Überlastkontrolle)
    3. Überflutung des Empfängers mit Paketen und Verlust dieser (keine Flusskontrolle)
    4. Pakete in Falscher Reihenfolge
    5. Was viele vergessen: Pakete können dubliziert werden und kommen mehrfach an.

    Und das allerfieseste:
    6. Pakete können ankommen von dem Computer der vorher die dynamische IP Adresse des Kommunikationsparters hatte (Auch noch viel später). Ist sehr lustig, wenn man nicht damit gerechnet hat, da diese ein "unerwartetes Format" haben können (Nicht die Daten die du erwartest), aber laut Prüfung ja nicht beschädigt sind und die zu erwartende IP Adresse tragen und wenn du sehr viel Pech hast auch noch den passenden Port... .

    Worauf du dich verlassen kannst: Ankommende Pakete sind unbeschädigt (mit seeeeeehr großer Wahrscheinlichkeit, aber nicht 100% ig aber TCP erkennt Fehler ja auch nur zu einer seeeehr großen Wahrscheinlichkeit und nicht 100% ig), da auch UDP Kontrollen durchführt.(Wenn du das nicht abschaltest)

    Das kannste immer mit der Post vergleichen bei der auch alle Fehler (Bis auf die Dublikate) auftreten können. 😃



  • Also nochmal Danke für die vielen Antworten.

    Ich habe mich nun dafür entschieden ( und auch mein Chef davon überzeugt ) ein Mix zwischen UDP u. TCP zu machen. Bei wichtigen Daten setze ich TCP ein und bei unwichtigen Daten UDP. Ist sowei implementiert und funktioniert auch wunderbar. Jetzt kann ich mir die ganzen Prüfungsroutinen sparen und muss nicht mehr auf verlorene Pakete achten...


Anmelden zum Antworten