{"id":86559,"date":"2020-06-26T19:42:13","date_gmt":"2020-06-26T17:42:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12"},"modified":"2020-06-26T19:42:13","modified_gmt":"2020-06-26T17:42:13","slug":"uchebnik-po-simulyatoru-seti-ns-3-glavy-12","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","title":{"rendered":"Lehrbuch f\u00fcr den ns-3 Netzwerk-Simulator. Kapitel 1,2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dieser Artikel er\u00f6ffnet eine Reihe von Ver\u00f6ffentlichungen mit der \u00dcbersetzung des Lehrbuchs &quot;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/docs\/release\/3.30\/tutorial\/ns-3-tutorial.pdf\">ns-3 Tutorial Version ns-3.29<\/a><\/noindex>&quot; zum ns-3 Netzwerksimulator. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Lehrbuch f\u00fcr den ns-3 Netzwerk-Simulator. Kapitel 1,2\" src=\"\/wp-content\/uploads\/2020\/06\/cddee391ba8763baab6eaa185e081bf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dieses Dokument ist eine \u00dcbersetzung des urspr\u00fcnglichen Dokuments in Englisch, das in <noindex><a rel=\"nofollow\" href=\"http:\/\/docutils.sourceforge.net\/rst.html\">reStructuredText<\/a><\/noindex> f\u00fcr <noindex><a rel=\"nofollow\" href=\"http:\/\/sphinx.pocoo.org\/\">Sphinx<\/a><\/noindex> verfasst ist und im Verzeichnis <em>doc\/tutorial<\/em> des Quellcodes von ns-3 gespeichert ist.<\/p>\n<p><\/p>\n<p>1 Einleitung<br \/>\n1.1 \u00dcber ns-3<br \/>\n1.2 F\u00fcr ns-2 Nutzer<br \/>\n1.3 Mitwirkung am Projekt<br \/>\n1.4 Organisation des Handbuchs<br \/>\n2 Informationsquellen<br \/>\n2.1 Netzwerk<br \/>\n2.2 Git<br \/>\n2.3 WAF<br \/>\n2.4 Entwicklungsumgebung<br \/>\n2.5 Socket-Programmierung<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">Kapitel 3<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497478\/\">Kapitel 4<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498372\/\">Kapitel 5<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500170\/\">Kapitel 6<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507472\/\">Kapitel 7<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507770\/\">Kapitel 8, 9<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508218\/\">Die \u00dcbersetzung als eine pdf-Datei herunterladen<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Die prim\u00e4re Dokumentation f\u00fcr das ns-3 Projekt ist in f\u00fcnf Formaten verf\u00fcgbar:<\/p>\n<p><\/p>\n<ul>\n<li>API-Dokumentation des Simulators: ns-3 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/doxygen\/index.html\">Doxygen<\/a><\/noindex>.<\/li>\n<li>Tutorial, Handbuch und Modellbibliothek f\u00fcr <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/documentation\/latest\/\">der letzten Version<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/ns-3-dev\/documentation\/\">Entwicklungsbaum<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/wiki\/Main_Page\">Wiki<\/a><\/noindex> ns-3.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<h2 id=\"glava-1\">Kapitel 1<\/h2>\n<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"predislovie\">Vorwort<\/h3>\n<p><\/p>\n<p>Der ns-3 Simulator ist ein ereignisbasierter Netzwerk-Simulator, der haupts\u00e4chlich f\u00fcr Forschungs- und Bildungszwecke gedacht ist. Das Projekt, das ns-3 entwickelt, wurde 2006 gestartet und ist ein Open-Source-Projekt.<\/p>\n<p><\/p>\n<p>Ziel dieses Handbuchs ist es, ns-3 neuen Nutzern auf systematische und strukturierte Weise vorzustellen. Manchmal kann es f\u00fcr Neulinge schwierig sein, die ben\u00f6tigten Informationen zu erhalten und diese in funktionierendes Modellieren umzusetzen. In diesem Handbuch setzen wir mehrere Modellierungsbeispiele um, w\u00e4hrend wir die Schl\u00fcsselbegriffe und Merkmale darstellen und erl\u00e4utern.<\/p>\n<p><\/p>\n<p>Im Laufe der Darstellung werden wir die vollst\u00e4ndige Dokumentation zu ns-3 bereitstellen und Links zum Quellcode f\u00fcr diejenigen geben, die an einem vertieften Verst\u00e4ndnis des Systems interessiert sind.<\/p>\n<p><\/p>\n<p>Zu Beginn sollten einige wichtige Punkte erw\u00e4hnt werden:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 hat Open-Source-Code, das Projekt strebt eine offene Umgebung an, in der Forscher ihren Beitrag leisten und ihre Softwareentwicklungen teilen k\u00f6nnen.<\/li>\n<li>ns-3 ist kein abw\u00e4rtskompatibles Erweiterung von ns-2, es ist ein neuer Simulator. Beide Simulatoren sind in C++ geschrieben, aber ns-3 ist ein neuer Simulator, der keine Schnittstellen von ns-2 unterst\u00fctzt.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"11-o-ns-3\">1.1 \u00dcber ns-3<\/h3>\n<p><\/p>\n<p>Der ns-3-Simulator wurde entwickelt, um eine offene, erweiterbare Plattform f\u00fcr die Modellierung von Netzwerken, Netzwerkforschung und Bildung bereitzustellen. Kurz gesagt, ns-3 bietet Modelle daf\u00fcr, wie Netzwerke f\u00fcr die paketvermittelte Daten\u00fcbertragung implementiert und betrieben werden, und gibt dem Benutzer einen Simulationsmotor, um Simulationsversuche durchzuf\u00fchren. Gr\u00fcnde f\u00fcr die Verwendung von ns-3 k\u00f6nnen Situationen sein, in denen eine Untersuchung erforderlich ist, die schwer oder unm\u00f6glich auf einem realen System durchzuf\u00fchren ist, die M\u00f6glichkeit, das Verhalten eines Systems in einer streng kontrollierten, reproduzierbaren Umgebung zu studieren, sowie Informationen dar\u00fcber zu erhalten, wie Netzwerke funktionieren. <\/p>\n<p><\/p>\n<p>Benutzer werden feststellen, dass der in ns-3 bereitgestellte Modellsatz auf die Modellierung der Funktionsweise von Internetprotokollen und -netzwerken fokussiert ist, aber ns-3 ist nicht nur auf Internetsysteme beschr\u00e4nkt; einige Benutzer verwenden ns-3 zur Modellierung von Systemen, die nicht auf Internettechnologien basieren.<\/p>\n<p><\/p>\n<p>Es gibt viele Netzwerkmodellierungswerkzeuge. Im Folgenden sind einige der herausragenden Merkmale von ns-3 im Vergleich zu anderen Werkzeugen aufgef\u00fchrt.<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 wurde als eine Sammlung von Bibliotheken entwickelt, die miteinander sowie mit anderen externen Softwarebibliotheken kombiniert werden k\u00f6nnen. W\u00e4hrend einige Modellierungsplattformen den Benutzern eine integrierte Umgebung mit einer grafischen Benutzeroberfl\u00e4che bieten, die alle Operationen steuert, ist ns-3 in dieser Hinsicht modularer. Mit ns-3 k\u00f6nnen mehrere externe Animator, Datenanalysetools und Visualisierungstools verwendet werden. Dennoch erwartet die Benutzer die Arbeit in der Kommandozeile und mit C++- und\\\/oder Python-Entwicklungstools.<\/li>\n<li>ns-3 wird haupts\u00e4chlich auf Linux- oder macOS-Systemen verwendet, obwohl es Unterst\u00fctzung f\u00fcr BSD-Systeme sowie f\u00fcr Windows-Plattformen gibt, die in der Lage sind, Code f\u00fcr Linux zu kompilieren, wie z. B. das Windows Subsystem f\u00fcr Linux oder Cygwin. Die native Windows-Version von Visual Studio wird derzeit nicht unterst\u00fctzt, obwohl der Entwickler an dieser M\u00f6glichkeit arbeitet. Windows-Benutzer k\u00f6nnen auch eine virtuelle Maschine mit Linux verwenden.<\/li>\n<li>ns-3 ist kein offiziell unterst\u00fctztes Produkt eines Unternehmens. Die Unterst\u00fctzung von ns-3 erfolgt mit maximaler Effizienz im Forum der ns-3-Benutzer (ns-3-users@googlegroups.com).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"12-dlya-polzovateley-ns-2\">1.2 F\u00fcr ns-2 Nutzer<\/h3>\n<p><\/p>\n<p>F\u00fcr diejenigen, die mit ns-2 (einem beliebten Tool, das ns-3 vorangegangen ist) vertraut sind, besteht die auff\u00e4lligste \u00e4u\u00dfere \u00c4nderung beim Umstieg auf ns-3 im Wechsel der Skriptsprache. Programme in ns-2 sind in OTcl geschrieben, und die Simulationsergebnisse k\u00f6nnen mit dem Netzwerk-Animator nam visualisiert werden. In ns-2 ist es unm\u00f6glich, eine Simulation ausschlie\u00dflich aus C++ (d. h. als main()-Programm ohne OTcl) zu starten. Dar\u00fcber hinaus sind einige Komponenten von ns-2 in C++ und andere in OTcl geschrieben. In ns-3 ist der Simulator vollst\u00e4ndig in C++ geschrieben, mit optionalen Bindungen an Python. Daher k\u00f6nnen die Simulationsscripte sowohl in C++ als auch in Python verfasst werden. Neue Animator- und Visualisierungstools sind verf\u00fcgbar und werden weiterentwickelt. Da ns-3 pcap-Paket-Trace-Dateien generiert, k\u00f6nnen auch andere Tools zur Analyse der Traces verwendet werden. In diesem Handbuch werden wir uns zuerst auf Szenarien konzentrieren, die in C++ realisiert sind, und die Ergebnisse \u00fcber die Analyse von Trace-Dateien interpretieren.<\/p>\n<p><\/p>\n<p>Es gibt jedoch auch \u00c4hnlichkeiten (zum Beispiel sind beide Tools auf C++-Objekten basiert, ein Teil des Codes von ns-2 wurde nach ns-3 portiert). Im Verlauf des Expos\u00e9s werden wir versuchen, die Unterschiede zwischen ns-2 und ns-3 aufzuzeigen.<\/p>\n<p><\/p>\n<p>Eine h\u00e4ufige Frage, die wir h\u00f6ren: &quot;Sollte ich weiterhin ns-2 verwenden oder auf ns-3 umsteigen?&quot; Laut dem Autor wird der Benutzer, wenn er aus irgendeinem Grund nicht an ns-2 gebunden ist (entweder aufgrund des bestehenden pers\u00f6nlichen Komforts und Wissens \u00fcber ns-2 oder aufgrund eines bestimmten Simulationsmodells, das nur in ns-2 verf\u00fcgbar ist), mit ns-3 produktiver sein aus den folgenden Gr\u00fcnden:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 wird aktiv unterst\u00fctzt, mit einer aktiven und reaktionsschnellen Benutzer-Mailingliste, w\u00e4hrend ns-2 nur leicht Unterst\u00fctzung findet und seit \u00fcber zehn Jahren keine nennenswerten \u00c4nderungen an seinem Hauptcodebaum gesehen hat.<\/li>\n<li>ns-3 bietet Funktionen, die in ns-2 nicht verf\u00fcgbar sind, wie zum Beispiel die Ausf\u00fchrungsumgebung f\u00fcr Implementierungscode (die es den Benutzern erm\u00f6glicht, echten Implementierungscode im Simulator auszuf\u00fchren).<\/li>\n<li>ns-3 bietet ein niedrigeres Grundabstraktionsniveau im Vergleich zu ns-2, was es ihm erm\u00f6glicht, besser mit der Art und Weise \u00fcbereinzustimmen, wie reale Systeme interagieren. Einige Einschr\u00e4nkungen, die in ns-2 festgestellt wurden (z. B. die ordnungsgem\u00e4\u00dfe Unterst\u00fctzung mehrerer Schnittstellentypen auf einem Knoten), wurden in ns-3 behoben.<\/li>\n<\/ul>\n<p><\/p>\n<p>Dank seiner langen Geschichte verf\u00fcgt ns-2 \u00fcber eine vielf\u00e4ltigere Sammlung unterst\u00fctzter Module als ns-3. Dennoch bietet ns-3 detailliertere Modelle in mehreren beliebten Forschungsbereichen (einschlie\u00dflich komplexer LTE- und WiFi-Modelle), und seine Unterst\u00fctzung f\u00fcr die Implementierung von Code erm\u00f6glicht eine sehr breite Palette von hochpr\u00e4zisen Modellen. Benutzer k\u00f6nnten \u00fcberrascht sein zu erfahren, dass der gesamte Netzwerkstack von Linux in einem ns-3-Knoten mit dem Framework f\u00fcr die direkte Codeausf\u00fchrung (DCE) kapselbar ist. Modelle aus ns-2 k\u00f6nnen manchmal nach ns-3 portiert werden, insbesondere wenn sie in C++ implementiert wurden.<\/p>\n<p><\/p>\n<p>Wenn Sie unsicher sind, w\u00e4re es eine gute Empfehlung, sich beide Simulatoren (sowie andere Simulatoren) anzusehen, insbesondere die f\u00fcr Ihre Forschung verf\u00fcgbaren Modelle. Bedenken Sie jedoch, dass Ihr Ergebnis m\u00f6glicherweise besser ist, wenn Sie ein Werkzeug verwenden, das derzeit aktiv entwickelt und unterst\u00fctzt wird (ns-3).<\/p>\n<p><\/p>\n<h3 id=\"13-uchastie-v-proekte\">1.3 Mitwirkung am Projekt<\/h3>\n<p><\/p>\n<p>ns-3 ist ein wissenschaftlicher Bildungsimulator f\u00fcr die Forschungs-Community. Er wird auf den aktuellen Beitr\u00e4gen der Community bei der Entwicklung neuer Modelle, der Fehlersuche oder der Unterst\u00fctzung bestehender Modelle und beim Austausch von Ergebnissen basieren. Es gibt einige Richtlinien, die hoffentlich die Menschen dazu ermutigen, zu ns-3 beizutragen, so wie sie es bei ns-2 tun:<\/p>\n<p><\/p>\n<ul>\n<li>Lizenzierung unter einer Open-Source-Lizenz, die mit der GNU GPLv2 kompatibel ist.<\/li>\n<li>wiki.<\/li>\n<li>Seite <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pocoo.org\/\">Code der Mitwirkenden<\/a><\/noindex>, \u00e4hnlich der beliebten Seite f\u00fcr ns-2.<\/li>\n<li>Verwendung von GitLab.com, einschlie\u00dflich des Fehlerverfolgungssystems:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Wir verstehen, dass selbst wenn Sie dieses Dokument lesen, Sie m\u00f6glicherweise nicht planen, zu diesem Zeitpunkt einen Beitrag zu leisten. Aber wir m\u00f6chten, dass Sie wissen, dass das Mitwirken im Sinne des Projekts steht und dass Ihr Feedback, selbst zu Ihren ersten Erfahrungen mit ns-3 (zum Beispiel &quot;dieser Abschnitt des Lehrbuchs war nicht klar &#8230;&quot;), ein Hinweis auf veraltete Dokumentation oder einen Kommentar im Code usw. wertvoll f\u00fcr uns sein wird\u2026 Der bevorzugte Weg, Korrekturen zu senden, ist entweder einen Fork auf <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex> mit Ihren Korrekturen zu erstellen und einen Merge-Request zu erstellen oder einen Antrag in unserem Tracker zu stellen und einen Patch hinzuzuf\u00fcgen.<\/p>\n<p><\/p>\n<h3 id=\"14-organizaciya-rukovodstva\">1.4 Organisation des Handbuchs<\/h3>\n<p><\/p>\n<p>Dieses Handbuch geht davon aus, dass neue Benutzer zun\u00e4chst m\u00f6glicherweise einem solchen Weg folgen:<\/p>\n<p><\/p>\n<ul>\n<li>Versuchen Sie, eine Kopie herunterzuladen und zu erstellen;<\/li>\n<li>Versuchen Sie, einige Beispielprogramme auszuf\u00fchren;<\/li>\n<li>Schauen Sie sich das Ergebnis der Simulation an und versuchen Sie, es anzupassen.<br \/>\nLetztendlich haben wir versucht, die Darstellung gem\u00e4\u00df diesen Schritten zu organisieren.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"glava-2\">Kapitel 2<\/h2>\n<p><\/p>\n<h2 id=\"istochniki-informacii\">Informationsquellen<\/h2>\n<p><\/p>\n<h3 id=\"21-set\">2.1 Netzwerk<\/h3>\n<p><\/p>\n<p>Es gibt mehrere wichtige Ressourcen, die jeder ns-3-Benutzer kennen sollte. Die Hauptwebsite befindet sich unter: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\">https:\/\/www.nsnam.org<\/a><\/noindex><br \/>\nund bietet Zugang zu grundlegenden Informationen \u00fcber das ns-3-System. Eine ausf\u00fchrliche Dokumentation ist \u00fcber die Hauptwebsite verf\u00fcgbar unter: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/documentation\/\">https:\/\/www.nsnam.org\/documentation\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Auf derselben Webseite finden Sie auch Dokumente, die sich auf die Architektur des Systems beziehen.<\/p>\n<p><\/p>\n<p>Es gibt eine Wiki-Seite, die die Hauptwebsite von ns-3 erg\u00e4nzt, die Sie unter folgendem Link finden: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/\">https:\/\/www.nsnam.org\/wiki\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dort finden Sie Antworten auf h\u00e4ufig gestellte Fragen f\u00fcr Benutzer und Entwickler sowie Fehlerbehebungsleitf\u00e4den, Drittanbieter-Code, Dokumente usw.<br \/>\nDen Quellcode finden und ansehen k\u00f6nnen Sie auf GitLab.com:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/nsnam\/\">https:\/\/gitlab.com\/nsnam\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dort befindet sich im Repository mit dem Namen <em>ns-3-dev<\/em> der aktuelle Entwicklungsbaum. Fr\u00fchere Releases und experimentelle Repositories der Kernel-Entwickler finden Sie ebenfalls unter Mercurial auf der alten Projekthomepage unter:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/code.nsnam.org\">http:\/\/code.nsnam.org<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"22-git\">2.2 Git<\/h3>\n<p><\/p>\n<p>Komplexe Softwaresysteme ben\u00f6tigen eine M\u00f6glichkeit, die Organisation und \u00c4nderung des Basiscodes und der Dokumentation zu verwalten. Es gibt viele Wege, dies zu erreichen, und Sie haben m\u00f6glicherweise von einigen der Systeme geh\u00f6rt, die normalerweise daf\u00fcr verwendet werden. Bis vor kurzem hat das ns-3-Projekt Mercurial als Versionskontrollsystem verwendet, aber im Dezember 2018 haben wir auf Git umgeschaltet. Obwohl Sie f\u00fcr das Lesen dieses Leitfadens nicht viel \u00fcber Git wissen m\u00fcssen, empfehlen wir Ihnen, sich damit vertraut zu machen und es zu verwenden, um auf den Quellcode zuzugreifen. GitLab.com bietet Ressourcen, um grundlegende Fertigkeiten zu erlernen unter: <noindex><a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/book\/ru\/v2\">https:\/\/git-scm.com\/book\/ru\/v2<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"23-waf\">2.3 WAF<\/h3>\n<p><\/p>\n<p>Nachdem Sie den Quellcode auf Ihren Computer heruntergeladen haben, m\u00fcssen Sie ihn kompilieren, um ein funktionsf\u00e4higes Programm zu erhalten. Wie im Fall der Verwaltung des Quellcodes stehen Ihnen viele Werkzeuge zur Verf\u00fcgung, um diese Funktion auszuf\u00fchren. Wahrscheinlich ist das bekannteste dieser Werkzeuge make. Es sollte jedoch angemerkt werden, dass es sich bei diesem Werkzeug um das komplexeste handelt, wenn es in einem sehr gro\u00dfen und flexibel konfigurierbaren System verwendet wird. Dies hat zur Entwicklung vieler Alternativen gef\u00fchrt. K\u00fcrzlich wurden solche Systeme unter Verwendung der Programmiersprache Python entwickelt.<\/p>\n<p><\/p>\n<p>Im Projekt ns-3 wird das Build-System Waf verwendet. Es handelt sich um eine neue Generation von Build-Systemen, die auf Python basieren. F\u00fcr den Build des bestehenden ns-3-Systems m\u00fcssen Sie Python nicht kennen.<\/p>\n<p><\/p>\n<p>F\u00fcr diejenigen, die sich f\u00fcr Details zur Verwendung von Waf interessieren, gibt es ein Buch, das unter folgender Adresse verf\u00fcgbar ist:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/waf.io\/book\/\">https:\/\/waf.io\/book\/<\/a><\/noindex><br \/>\nund der aktuelle Code:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/ita1024\/waf\/\">https:\/\/gitlab.com\/ita1024\/waf\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"24-sreda-razrabotki\">2.4 Entwicklungsumgebung<\/h3>\n<p><\/p>\n<p>Wie bereits erw\u00e4hnt, werden die Skripte in ns-3 in C++ oder Python ausgef\u00fchrt. Der gr\u00f6\u00dfte Teil der ns-3-API ist in Python verf\u00fcgbar, aber die Modelle sind in jedem Fall in C++ geschrieben. Dieses Handbuch setzt voraus, dass Sie mit objektorientierter Programmierung in C++ vertraut sind. Im Verlauf werden wir einige Zeit damit verbringen, die fortgeschrittensten Konzepte und m\u00f6glicherweise unbekannte Merkmale der Sprache wie Idiome und Entwurfsmuster zu behandeln. Wir m\u00f6chten nicht, dass dieses Handbuch zu einem Lehrbuch \u00fcber C++ wird, daher erwarten wir ein grundlegendes Verst\u00e4ndnis der Sprache. Es gibt viele Informationsquellen \u00fcber C++, die online oder in gedruckter Form verf\u00fcgbar sind.<\/p>\n<p><\/p>\n<p>Wenn Sie neu in C++ sind, sollten Sie sich zuerst die Grundlagen der Sprache aneignen, indem Sie auf ein Lehrbuch oder eine Website zur\u00fcckgreifen, die sich mit Schulung oder praktischen Rezepten besch\u00e4ftigt. Zum Beispiel mit diesem: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ashtanyuk\/CPP-2018\">https:\/\/github.com\/ashtanyuk\/CPP-2018<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Unter Linux verwendet das ns-3-System mehrere Komponenten aus dem GNU-Projekt-Toolset. Das Toolset ist eine Sammlung von Programmierwerkzeugen, die in dieser Softwareumgebung verf\u00fcgbar sind. F\u00fcr eine schnelle \u00dcbersicht \u00fcber die enthaltenen GNU-Tools siehe: <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/GNU_toolchain\">http:\/\/en.wikipedia.org\/wiki\/GNU_toolchain<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Der ns-3-Simulator verwendet gcc, GNU binutils und gdb. Gleichzeitig verwenden wir zum Build des Projekts weder make noch autotools aus den GNU-Tools. F\u00fcr diese Funktionen verwenden wir Waf.<\/p>\n<p><\/p>\n<p>In macOS wird das Xcode-Toolkit verwendet. Benutzern von ns-3 auf Mac wird dringend empfohlen, Xcode und die Command Line Tools \u00fcber den Apple App Store zu installieren. Weitere Informationen finden Sie auf der Installations-Wiki-Seite von ns-3: (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/Installation\">https:\/\/www.nsnam.org\/wiki\/Installation<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>In der Regel arbeitet der Autor von ns-3 in einer Linux- oder Unix-\u00e4hnlichen Umgebung. F\u00fcr diejenigen, die unter Windows arbeiten, gibt es Umgebungen, die in unterschiedlichem Ma\u00dfe eine Linux-Umgebung simulieren. F\u00fcr solche Benutzer hat das ns-3-Projekt in der Vergangenheit (aber nicht mehr) die Entwicklung in einer Cygwin-Umgebung unterst\u00fctzt. Weitere Einzelheiten zum Herunterladen und weitere Informationen zu Cygwin und ns-3 finden Sie auf der ns-3-Wiki-Seite:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.cygwin.com\/\">http:\/\/www.cygwin.com\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>MinGW wird derzeit offiziell nicht unterst\u00fctzt. Eine weitere Alternative zu Cygwin ist die Installation einer virtuellen Umgebung wie VMware Server, in der Sie Linux installieren k\u00f6nnen.<\/p>\n<p><\/p>\n<h3 id=\"25-programmirovanie-soketov\">2.5 Socket-Programmierung<\/h3>\n<p><\/p>\n<p>In den Beispielen, die in diesem Leitfaden verwendet werden, werden wir die grundlegenden Funktionen der Berkeley Sockets API nutzen. Wenn Sie neu im Umgang mit Sockets sind, empfehlen wir, sich mit der API und einigen g\u00e4ngigen Nutzungsszenarien vertraut zu machen. Als gute \u00dcbersicht \u00fcber die Programmierung von TCP\/IP-Sockets empfehlen wir: &quot;TCP\/IP Sockets in C&quot;, Donahoo und Calvert.<\/p>\n<p><\/p>\n<p>Es gibt eine zugeh\u00f6rige Website, die die Beispiele aus dem Buch enth\u00e4lt, die Sie unter folgender Adresse finden k\u00f6nnen:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/cs.baylor.edu\/~donahoo\/practical\/CSockets\/\">http:\/\/cs.baylor.edu\/~donahoo\/practical\/CSockets\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Wenn Sie die ersten vier Kapitel des Buches verstehen (oder wenn Sie keinen Zugang zu einer Kopie des Buches haben, die Echos von Clients und Servern zeigt, die auf der oben genannten Website verf\u00fcgbar sind), wird das ausreichen, um das Tutorial zu verstehen. Es gibt ein \u00e4hnliches Buch:<br \/>\n&quot;Multicast Sockets, Multicast Sockets&quot;, Makofske und Almeroth.<\/p>\n<p><\/p>\n<p>Es behandelt Material, das Sie m\u00f6glicherweise ben\u00f6tigen, wenn Sie Beispiele f\u00fcr Multicast im Distributionstudium untersuchen.<\/p>\n<p><\/p>\n<p>Fortsetzung: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">Kapitel 3<\/a><\/noindex><\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497106\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release ns-3.29&quot; \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0435\u0439 ns-3. \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0432 reStructuredText \u0434\u043b\u044f Sphinx \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 doc\/tutorial \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 ns-3. 1 \u041f\u0440\u0435\u0434\u0438\u0441\u043b\u043e\u0432\u0438\u0435 1.1 \u041e ns-3 1.2 \u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 ns-2 1.3 \u0423\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 1.4 \u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 2 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86560,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0438 ns-3. \u0413\u043b\u0430\u0432\u044b 1,2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-26T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-26T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Tutorial f\u00fcr den ns-3 Netzwerk-Simulator. Kapitel 1,2 | ProHoster","description":"Dieser Artikel er\u00f6ffnet eine Reihe von Ver\u00f6ffentlichungen mit der \u00dcbersetzung des Tutorials \"ns-3 Tutorial Release.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0438 ns-3. \u0413\u043b\u0430\u0432\u044b 1,2 | ProHoster","og:description":"\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u0430 &quot;ns-3 Tutorial Release.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-26T17:42:13+00:00","article:modified_time":"2020-06-26T17:42:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86559","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:48:32","updated":"2022-09-30 06:25:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/86559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=86559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/86559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/86560"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=86559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=86559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=86559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}