2016-12-11 1 views
0

Ich möchte eine Frage zu omnet ++ stellen. Ich sollte eine Übung in einem Aloha-Netzwerk machen. Ich muss eine Nachricht an einen zufälligen Host (Knoten) senden, aber die Nachricht muss zuerst den Aloha-Server durchlaufen. Das Problem ist, wenn der Server versucht, die Nachricht zu senden, ein Fehler auftritt, der besagt: "kann nicht über ein Eingabetor senden" in "". Ich habe versucht, ein Ausgangstor auf server.ned namens "output out" zu erstellen. Wenn ich dann versuche, die Simulation auszuführen, habe ich einen Fehler, der besagt, dass "Gate aloha.server.out nicht mit einem Geschwister- oder Elternmodul verbunden ist". Weiß jemand, wo ich das 'out' Gate angeben und wie? Ich bin neu bei omnet ++ und ich habe auch das Dokumentationshandbuch über Tore durchsucht, aber ich kann die Lösung nicht finden.Nachricht senden aloha network omnet ++

Antwort

1

Es gibt ein paar Dinge, die geklärt werden müssen.

  1. Senden einer Nachricht in Funk System (wie Aloha) in modellierte OMNeT++sendDirect() Methode. Es benötigt kein Ausgabetor. Referenz: OMNeT++ Simulation Manual.

  2. Das Aloha Beispiel ist sehr einfach und es gelten die folgenden Einschränkungen:

    • Host-Nachrichten nicht empfangen, nur Server empfängt sie,
    • Gastgeber haben keine Adressen.

Um Ihr Ziel zu erreichen, sollten Sie:

  • vorstellen Adressen von Hosts,
  • eine Zieladresse in Rahmen abgelegt hinzufügen,
  • Eingangsgatter @directIn in Host mit Anmerkung hinzufügen,
  • Verhalten des Servers ändern - es sollte empfangene Nachricht an jeden Host erneut übertragen,
  • Verhalten des Hosts ändern - er sollte eine Nachricht empfangen, seine Adresse überprüfen und die Nachricht verarbeiten, sofern die Zieladresse der eigenen Adresse entspricht.
+0

danke für die Antwort. Ich möchte fragen, ob es möglich ist, dass der Server nur an einen zufälligen Host sendet (mit Uniform etc.) und wie kann ich das erreichen? –

+0

Ja, es ist möglich. Der Server sollte eine Liste aller Hosts erhalten, dann einen aus dieser Liste auswählen und die empfangene Nachricht über 'sendDirect()' an diesen Host senden. Denken Sie daran, das Eingabe-Gate im Host hinzuzufügen. –