Zahlen "generieren" < Zahlentheorie < Algebra+Zahlentheo. < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 20:54 Mi 25.06.2008 | Autor: | LL0rd |
Meine Frage bezieht sich nicht wirklich auf eine "Aufgabe", sondern auf ein reales Problem. Ich möchte Daten zwischen mehreren Nodes eines Netzwerks austauschen. Wenn soweit alles richtig läuft, dann dürfte eigentlich nichts passieren. Aber wer schonmal Kontakt mit der Realität hatte, wird feststellen, dass die Realität einen doch recht schnell einholt und Sachen "schiefgehen". Pakete kommen nicht an, es werden zwischendurch Pakete mit einer höheren Priorität losgeschickt, etc. Was ich noch vergessen habe zu sagen, ich habe bei den Datenpaketen eine feste Frame-Größe, ich kann max sagen wir mal 64kbyte Daten in einem Datenpaket unterbringen. Wenn ich größere Sendungen habe, muss ich die Nutzdaten auf mehrere Pakete aufteilen.
Dazu habe ich einen Header entwickelt, der unter anderem drei bytes enthällt (als 3 x 256 Werte). Dieses soll die Seriennummer des Paketes werden. Und anhand dieser Serial werden Pakete dann am Ende wieder zusammengeworfen. Damit ein Teilnehmer eine eindeutige Serial setzen kann, nutze ich das erste byte um dort die ID des Absenders zu kodieren. Somit bleiben mir nur noch zwei Bytes übrig.
Ich wollte deshalb nach einer Lösung fragen, wie ich erreiche, dass jeder Sender (egal was er macht) eine eindeutige ID aus drei Bytes senden kann. So rein aus dem Bauch heraus würde ich sagen, man muss etwas Primzahlen machen. Kann mir da jemand helfen?
|
|
|
|
> Meine Frage bezieht sich nicht wirklich auf eine "Aufgabe",
> sondern auf ein reales Problem. Ich möchte Daten zwischen
> mehreren Nodes eines Netzwerks austauschen. Wenn soweit
> alles richtig läuft, dann dürfte eigentlich nichts
> passieren. Aber wer schonmal Kontakt mit der Realität
> hatte, wird feststellen, dass die Realität einen doch recht
> schnell einholt und Sachen "schiefgehen". Pakete kommen
> nicht an, es werden zwischendurch Pakete mit einer höheren
> Priorität losgeschickt, etc. Was ich noch vergessen habe zu
> sagen, ich habe bei den Datenpaketen eine feste
> Frame-Größe, ich kann max sagen wir mal 64kbyte Daten in
> einem Datenpaket unterbringen. Wenn ich größere Sendungen
> habe, muss ich die Nutzdaten auf mehrere Pakete aufteilen.
>
> Dazu habe ich einen Header entwickelt, der unter anderem
> drei bytes enthällt (als 3 x 256 Werte). Dieses soll die
> Seriennummer des Paketes werden. Und anhand dieser Serial
> werden Pakete dann am Ende wieder zusammengeworfen. Damit
> ein Teilnehmer eine eindeutige Serial setzen kann, nutze
> ich das erste byte um dort die ID des Absenders zu
> kodieren. Somit bleiben mir nur noch zwei Bytes übrig.
>
> Ich wollte deshalb nach einer Lösung fragen, wie ich
> erreiche, dass jeder Sender (egal was er macht) eine
> eindeutige ID aus drei Bytes senden kann. So rein aus dem
> Bauch heraus würde ich sagen, man muss etwas Primzahlen
> machen. Kann mir da jemand helfen?
Ich jedenfalls nicht, denn so, wie Du das Problem beschreibst, erscheint es mir unlösbar.
Denn kein noch so superschlaues Kalkulieren (mit oder ohne Primzahlen) kann verhindern, dass zwei Sender zu demselben Ergebnis kommen (weil sie dieselbe Kalkulation der ID verwenden). Ohne eine Form der Kommunikation (etwa mit einer zentralen Instanz, die anderen Teilnehmern eindeutige IDs zuweist) oder Ausnutzung einer im Gesamtsystem bereits vorhandenen eindeutigen ID (analog zur Ethernet Adapter ID) werden beide Kalkulationen dasselbe Ergebnis liefern müssen. - Es sei denn, man würde ein zufälliges Element in die Kalkulation einbauen, aber dann würde die Verwendung derselben ID durch zwei verschiedene Sender (mit passend kleiner Wahrscheinlichkeit) deswegen auch nicht ganz unmöglich werden.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:30 Do 26.06.2008 | Autor: | LL0rd |
Naja, eine eindeutige ID gibt es ja, jeder Teilnehmer bekommt eine ID fest zugewiesen.
|
|
|
|
|
> Naja, eine eindeutige ID gibt es ja, jeder Teilnehmer
> bekommt eine ID fest zugewiesen.
Dann habe ich Deine Fragestellung falsch interpretiert. Denn am Ende Deiner Frage hattest Du nur noch von "einer ID" gesprochen. Du scheinst den Ausdruck ID abwechslungsweise für die Identifikation eines Teilnehmers und für die Identifikation eines einzelnen Datenpaketes zu verwenden. Möglicherweise brauchst Du einfach das, was üblicherweise als Sliding Window Protocol bezeichnet wird: Deine ID des Datenpaketes wäre dann die frame number im Sinne eines Sliding Window Protokolls. Es ist im Prinzip sogar möglich mit den Frame Nummern 0 und 1 (also einem einzigen Bit für die Sequentialisierung der Frames) auszukommen. Deine 2 Bytes würden für diesen Zweck vollauf genügen (wären wohl sogar eher zuviel des Guten).
Den recht simplen Code einer Implementation des Sliding Window Protokolls findest Du zum Beispiel im bekannten Buch "Computer Networks" von Andrew S. Tanenbaum (einfach im Index des Buches "Sliding window protocol" suchen).
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:23 Sa 28.06.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|