PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++: Fehler "machen"


Gast
2008-02-20, 15:59:28
Ich möchte gern in einem Protokoll den Umgang mit Übertragungsfehlern testen - und zwar fürs erste in Software. Ich hatte mir ein kleines Objekt überlegt, daß ein Datenpaket bekommt und darin einfach was kaputtmacht. Das ganze kopiert in den Datenbereich an zufälliger Stelle zufällige Daten. Man kann einstellen, wie hoch die Wahrscheinlichkeit ist, daß er bei einem Paket überhaupt zuschlägt und wie hoch dann die Wahrscheinlichkeit ist, daß er viel kaputtmacht.

Jetzt frage ich mich, wie realistisch dies ist und ob man "Übertragungsfehler" (ja, sehr allgemein) irgendwie effektiver simulieren kann bzw. ob es für dies evtl. etablierte Methoden gibt?

Vorallem überschreibt meine Methode stets ganze Bytes - eine Methode die bei einigen Paketen zufällig einige zufällige Bits umschaltet, wäre vielleicht realistischer? Wie geht man da am Besten vor? danke

DocEW
2008-02-20, 16:15:30
Vorallem überschreibt meine Methode stets ganze Bytes - eine Methode die bei einigen Paketen zufällig einige zufällige Bits umschaltet, wäre vielleicht realistischer? Wie geht man da am Besten vor? danke
Da kannst du XOR (Operator ^)mit einer Bitmaske machen. Musst dir nur überlegen, wie du die Bitmaske erstellst. Wenn du einfach eine Zufallszahl nimmst, hast du keine Kontrolle über die Anzahl der geänderten Bits. Ein einzelnes Bit zufällig ändern kannst du, indem du "1<<Bitnumber" machst. Das shifted die anfängliche 1 um "Bitnumber" Bits nach links.

Trap
2008-02-20, 19:37:46
Die Frage hat sehr wenig mit C++ zu tun.

Ist das Protokoll für OSI Schicht 1 oder 2? Wenn nicht ist das eine ziemlich unrealistische Testumgebung. Für irgendwas TCP-basierendes (also OSI 4+) wäre http://www.isi.edu/nsnam/ns/ passend.