2017-04-04 9 views
1

Ich und mein Freund werden ein Projekt starten. Wir werden die grundlegende Kommunikation zwischen einem Server und einem Client simulieren. Wir haben einen Pseudocode, den wir implementieren werden. Mit dieser Kommunikation versuchen wir, Fehler in der Kommunikation auf verschiedene Arten zu erkennen. Wir sind beide neu in beiden Softwares und möchten daher um Rat fragen, welche Software wir verwenden sollen. Irgendwelche Profis & Nachteile, die uns in die richtige Richtung führen würden, wäre nett.Die Wahl zwischen OMNET ++ oder NS3

Ein einfaches TCP/IP-Protokoll ist in Ordnung. Python, C#, Java, C oder C++ wäre nett. Keine spezifischen Anforderungen, da wir nur einige einfache Algorithmen verwenden werden, um zu erkennen, ob die Kommunikation zwischen dem Server oder dem Client fehlerhaft ist (Fehlermeldungen zwischen ihnen)

+0

Ein paar zusätzliche Informationen helfen Ihnen, in die Richtung eines der Simulatoren zu zeigen. Interessieren Sie sich für die Simulation eines Protokollstapels (vielleicht TCP/IP) des Clients/Servers? Gibt es spezifische Anforderungen für die Anwendung Ihres Projektszenarios? Einstellungen in Programmiersprachen oder Systemen? –

+0

@MichaelKirsche hat gerade einen Text hinzugefügt, um auf Ihre Frage zu antworten –

+0

https://www.google.de/search?q=comparison+of+network+simulators&gws_rd=cr,ssl&ei=3vXjWLrHEsihUd7lu-AN das wäre ein guter Ausgangspunkt . Ich bin ein OMNe ++ - Benutzer (kann also etwas voreingenommen sein). Aber es hat ein tolles Benutzerhandbuch und nettes Tutorial für Anfänger. Wenn es um die Benutzerfreundlichkeit geht, sollten Sie es tun. – user4786271

Antwort

6

Kurz gesagt, OMNeT ++ und NS-3, beide Diskrete Ereignissimulatoren, können eine gute Wahl für Sie sein, abhängig von Ihren genauen Bedürfnissen.

NS-3 ist ein Netzwerk-Simulator, der C++ und (optional) Python zur Simulation von Netzwerkprotokollen und (zum Beispiel) realen Implementierungen direkt aus dem Linux-Kernel unter anderen Anwendungsbereichen verwendet. Starke Punkte sind die genaue Darstellung flacher Pakete, gute Emulation und Socket-Unterstützung, PCAP-Ausgabe, die Analysen mit anderen Tools wie Wireshark und gute Community-Unterstützung ermöglicht. Schwachpunkte (im Vergleich zu anderen) sind wahrscheinlich die Visualisierung, die being enhanced compared zu ihrem Vorgänger ns-2 ist, aber immer noch mehr oder weniger eine Animation von Spuren. Für eine Übersicht der unterstützten Modelle nehmen Sie a look at this website.

OMNeT ++ kommt mit einer eigenen IDE (Eclipse-basiert) und einer GUI (heutzutage QT-basiert) für die Ausführung von Simulationen. Eine nette overview of the IDE is available online. OMNeT ++ verwendet C++ zur Definition des Quellcodes von Protokollen und Anwendungen und seiner eigenen NED-Sprache, um diese Implementierungen zu (Sub-) Modulen und Netzwerken zu kombinieren, die wiederum simuliert werden. Der Simulator hat eine sehr gute Visualisierungsunterstützung, die NS-3 deutlich übertrifft. Es hat eine umfangreiche Bibliothek vordefinierter Modelle, genau wie NS-3. Simulationsmodelle werden normalerweise in größeren Frameworks gruppiert, the INET framework wäre die erste Wahl für Ihren Fall. Hier ist a list of models included in INET. Community Support ist auch ziemlich gut, wie Sie hier auf Stackoverflow oder in the OMNeT Google Group sehen können.

Von Ihrer Aussage ("Erkennen einer fehlerhaften Kommunikation zwischen Client und Server") nehme ich an, dass Sie an Kommunikationsfehlern auf der Anwendungsschicht, nicht auf den IP/TCP-Schichten interessiert sind. Beide Simulatoren bieten Modelle für TCP/IP, aber wenn Sie an detaillierten Simulationen von Ethernet oder WLAN interessiert sind, könnte OMNeT ++ ein besserer Start sein. Wenn Sie eine vorhandene benutzerdefinierte Anwendung in einer VM verwenden und die Kommunikation zwischen beiden emulieren möchten, ist NS-3 möglicherweise die bessere Wahl. Wenn Sie niedrigere Ebenen ausschließen und einfach versuchen möchten, den grundlegenden Nachrichtenaustausch zwischen Entitäten zu implementieren, könnte ich auch OMNeT ++ bevorzugen.