{"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\/en\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","title":{"rendered":"ns-3 Network Simulator Textbook. Chapters 1, 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>This article opens a series of publications translating the textbook \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/docs\/release\/3.30\/tutorial\/ns-3-tutorial.pdf\">ns-3 Tutorial Release ns-3.29<\/a><\/noindex>\" on the ns-3 network simulator. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"ns-3 Network Simulator Textbook. Chapters 1, 2\" src=\"\/wp-content\/uploads\/2020\/06\/cddee391ba8763baab6eaa185e081bf6.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>This document is a translation of the original document in English, which was written in <noindex><a rel=\"nofollow\" href=\"http:\/\/docutils.sourceforge.net\/rst.html\">reStructuredText<\/a><\/noindex> for <noindex><a rel=\"nofollow\" href=\"http:\/\/sphinx.pocoo.org\/\">Sphinx<\/a><\/noindex> and is stored in the directory <em>doc\/tutorial<\/em> of the ns-3 source code.<\/p>\n<p><\/p>\n<p>1 Preface<br \/>\n1.1 About ns-3<br \/>\n1.2 For ns-2 Users<br \/>\n1.3 Participation in the Project<br \/>\n1.4 Guide Organization<br \/>\n2 Sources of Information<br \/>\n2.1 Network<br \/>\n2.2 Git<br \/>\n2.3 WAF<br \/>\n2.4 Development Environment<br \/>\n2.5 Socket Programming<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">Chapter 3<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497478\/\">Chapter 4<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498372\/\">Chapter 5<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500170\/\">Chapter 6<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507472\/\">Chapter 7<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/507770\/\">Chapters 8, 9<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/508218\/\">Download the translation as a single PDF file<\/a><\/noindex><\/p>\n<p><\/p>\n<p>The primary documentation for the ns-3 project is available in five formats:<\/p>\n<p><\/p>\n<ul>\n<li>API documentation for the simulator: ns-3 <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/doxygen\/index.html\">Doxygen<\/a><\/noindex>.<\/li>\n<li>Tutorial, guide, and model library for <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/documentation\/latest\/\">the latest version<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/ns-3-dev\/documentation\/\">of the development tree<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.nsnam.org\/wiki\/Main_Page\">Wikipedia<\/a><\/noindex> ns-3.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<h2 id=\"glava-1\">Chapter 1<\/h2>\n<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"predislovie\">Preface<\/h3>\n<p><\/p>\n<p>The ns-3 simulator is a discrete event network simulator designed primarily for research and educational use. The project developing ns-3 started in 2006 and is an open-source project.<\/p>\n<p><\/p>\n<p>The goal of this guide is to introduce ns-3 to new users in a structured manner. Sometimes, it can be challenging for newcomers to obtain the necessary information and turn it into a workable simulation. In this guide, we will implement several simulation examples, demonstrating and explaining key concepts and features along the way.<\/p>\n<p><\/p>\n<p>As we proceed, we will present complete documentation on ns-3 and provide links to the source code for those interested in a deeper understanding of the system.<\/p>\n<p><\/p>\n<p>At the outset, it's worth noting a few key points:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 has open-source code, and the project aims to maintain an open environment where researchers can contribute and share their programming developments.<\/li>\n<li>ns-3 is not a backward-compatible extension of ns-2; it is a new simulator. Both simulators are written in C++, but ns-3 is a new simulator that does not support the APIs of ns-2.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"11-o-ns-3\">1.1 About ns-3<\/h3>\n<p><\/p>\n<p>The ns-3 simulator was developed to provide an open, extensible platform for network modeling, networking research, and education. In short, ns-3 provides models of how packet-switched networks are implemented and operate, and gives users a simulation engine to conduct simulation experiments. Reasons to use ns-3 may include situations where research needs to be conducted that is difficult or impossible to perform on a real system, the ability to study system behavior in a strictly controlled, reproducible environment, as well as to understand how networks function. <\/p>\n<p><\/p>\n<p>Users will notice that the set of models provided in ns-3 is focused on modeling internet protocols and networks, but ns-3 is not limited to internet systems; some users employ ns-3 to model non-Internet technology systems.<\/p>\n<p><\/p>\n<p>There are many network modeling tools. Below are some distinguishing features of ns-3 compared to other tools.<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 is designed as a set of libraries that can be combined together, as well as with other external software libraries. While some modeling platforms provide users with a single integrated environment with a graphical user interface that manages all operations, ns-3 is more modular in this regard. Multiple external animators, data analysis, and visualization tools can be used with ns-3. However, users can expect to work in the command line and with C++ and\/or Python software development tools.<\/li>\n<li>ns-3 is primarily used on Linux or macOS systems, although there is support for BSD systems as well as for Windows platforms capable of compiling Linux code, such as Windows Subsystem for Linux or Cygwin. The native Windows Visual Studio is currently not supported, although the developer is working on implementing this capability. Windows users can also use a Linux virtual machine.<\/li>\n<li>ns-3 is not officially supported by any company. Support for ns-3 is primarily provided through the ns-3 users forum (ns-3-users@googlegroups.com).<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"12-dlya-polzovateley-ns-2\">1.2 For ns-2 Users<\/h3>\n<p><\/p>\n<p>For those familiar with ns-2 (the popular tool that preceded ns-3), the most noticeable external change when transitioning to ns-3 is the switch in scripting languages. Programs in ns-2 are written in OTcl, and simulation results can be visualized using the nam network animator. In ns-2, it is not possible to run a simulation purely in C++ (that is, as a main() program without any OTcl). Moreover, some components of ns-2 are written in C++, while others are in OTcl. In ns-3, the simulator is written entirely in C++ with optional Python bindings. Therefore, simulation scripts can be written in both C++ and Python. New animators and visualizers are available and continue to be developed. Since ns-3 generates pcap packet trace files, other utilities can also be used to analyze the traces. In this guide, we will initially focus on scenarios implemented in C++ and interpreting results through the analysis of trace files.<\/p>\n<p><\/p>\n<p>But there are similarities as well (for instance, both tools are based on C++ objects, and some ns-2 code has been ported to ns-3). As we present the content, we will attempt to highlight the differences between ns-2 and ns-3.<\/p>\n<p><\/p>\n<p>A question we often hear is: \"Should I continue using ns-2 or switch to ns-3?\" In the author's opinion, if the user is not tied to ns-2 in any way (based on existing personal comfort and knowledge of ns-2, or on a specific simulation model that is only available in ns-2), then they will be more productive with ns-3 for the following reasons:<\/p>\n<p><\/p>\n<ul>\n<li>ns-3 is actively supported with a responsive user mailing list, while ns-2 is only lightly maintained and has not seen significant changes in its core code tree for over a decade.<\/li>\n<li>ns-3 provides features that are not available in ns-2, such as a runtime environment for implementation code (allowing users to run real implementation code in the simulator).<\/li>\n<li>ns-3 offers a lower base level of abstraction compared to ns-2, allowing it to better match how real systems interact. Some limitations found in ns-2 (such as proper support for multiple interface types on a node) have been addressed in ns-3.<\/li>\n<\/ul>\n<p><\/p>\n<p>Thanks to its long history, ns-2 has a more diverse set of supported modules than ns-3. However, ns-3 offers more detailed models in several popular research areas (including complex LTE and WiFi models), and its implementation code support allows for a very wide array of high-accuracy models. Users may be surprised to learn that the entire Linux network stack can be encapsulated in an ns-3 node using the direct code execution (DCE) framework. Models from ns-2 can sometimes be ported to ns-3, especially if they were implemented in C++.<\/p>\n<p><\/p>\n<p>If you're in doubt, a good recommendation would be to take a look at both simulators (as well as others), particularly the available models for your research. However, keep in mind that your results may be better using a tool that is currently actively developed and maintained (ns-3).<\/p>\n<p><\/p>\n<h3 id=\"13-uchastie-v-proekte\">1.3 Participation in the Project<\/h3>\n<p><\/p>\n<p>ns-3 is a scientific and educational simulator for the research community. It will rely on current contributions from the community in developing new models, debugging or supporting existing ones, and sharing results. There is some policy that we hope will encourage people to contribute to ns-3, just as they do for ns-2:<\/p>\n<p><\/p>\n<ul>\n<li>Open Source licensing based on compatibility with the GNU GPLv2 license.<\/li>\n<li>wiki.<\/li>\n<li>Page <noindex><a rel=\"nofollow\" href=\"http:\/\/www.pocoo.org\/\">Contributors' code<\/a><\/noindex>, similar to the popular page for ns-2.<\/li>\n<li>Using GitLab.com, including the bug tracking system:<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>We understand that even if you are reading this document, you may not plan to contribute to it at this stage. But we want you to know that contributing aligns with the spirit of the project, and we value your feedback about your early experiences with ns-3 (for example, \"this section of the textbook wasn't clear...\"), reports of outdated documentation, or comments in the code, etc. The preferred way to submit corrections is either to fork on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gitlab.com\/nsnam\">https:\/\/www.gitlab.com\/nsnam<\/a><\/noindex> This guide assumes that new users might initially proceed along a path such as:<\/p>\n<p><\/p>\n<h3 id=\"14-organizaciya-rukovodstva\">1.4 Guide Organization<\/h3>\n<p><\/p>\n<p>Try downloading and building a copy;<\/p>\n<p><\/p>\n<ul>\n<li>Try running a few example programs;<\/li>\n<li>Try to run several example programs.<\/li>\n<li>View the simulation results and try to adjust them.<br \/>\nUltimately, we attempted to structure the presentation according to these steps.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"glava-2\">Chapter 2<\/h2>\n<p><\/p>\n<h2 id=\"istochniki-informacii\">Information Sources<\/h2>\n<p><\/p>\n<h3 id=\"21-set\">2.1 Network<\/h3>\n<p><\/p>\n<p>There are several important resources that every ns-3 user should be aware of. The main website is located at: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\">https:\/\/www.nsnam.org<\/a><\/noindex><br \/>\nand provides access to basic information about the ns-3 system. Detailed documentation is available through the main website at: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/documentation\/\">https:\/\/www.nsnam.org\/documentation\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>On the same webpage, you can also find documents related to the system's architecture.<\/p>\n<p><\/p>\n<p>There is a wiki page that complements the main ns-3 website, which you can find at: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nsnam.org\/wiki\/\">https:\/\/www.nsnam.org\/wiki\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>There you will find answers to frequently asked questions for users and developers, as well as troubleshooting guides, third-party code, documents, etc.<br \/>\nThe source code can be found and viewed on 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>It is also in the repository named <em>ns-3-dev<\/em> which contains the current development tree. Past releases and experimental repositories for core developers can also be found under Mercurial on the old project website at:<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>Complex software systems require a way to manage the organization and changes of the underlying code and documentation. There are many ways to achieve this, and you may have heard of some of the systems that are commonly used for it. Until recently, the ns-3 project used Mercurial as its version control system, but in December 2018, we switched to using Git. While you do not need to know much about Git to read this guide, we recommend familiarizing yourself with it and using it to access the source code. GitLab.com provides resources for mastering the basic skills at: <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>After you have downloaded the source code to your computer, you will need to compile it to obtain a ready-to-use program. Just like with source code management, there are many tools available to perform this function. The most well-known of these tools is probably make. Along with being the most recognized, it should be noted that it proves to be the most complex to use in a very large and flexibly configurable system. This has led to the development of many alternatives. Recently, such systems have been developed using the Python language.<\/p>\n<p><\/p>\n<p>The ns-3 project uses the Waf build system. It is a new generation of build systems based on Python. To build the existing ns-3 system, you do not need to know Python.<\/p>\n<p><\/p>\n<p>For those interested in the details of using Waf, there is a book available at:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/waf.io\/book\/\">https:\/\/waf.io\/book\/<\/a><\/noindex><br \/>\nand the current 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 Development Environment<\/h3>\n<p><\/p>\n<p>As mentioned above, scripts in ns-3 are executed in C++ or Python. Most of the ns-3 API is available in Python, but the models are written in C++ anyway. This guide assumes that you are familiar with object-oriented programming in C++. As we present the material, we will take some time to overview some of the more advanced concepts and possibly unfamiliar features of the language such as idioms and design patterns. We do not want this guide to turn into a C++ textbook, so we expect a basic proficiency in the language. There are many resources available online or in print about C++.<\/p>\n<p><\/p>\n<p>If you are new to C++, then before continuing, familiarize yourself with the basics of the language through a textbook or a website dedicated to learning or ready-made recipes. For example, such as: <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>On Linux, the ns-3 system uses several components from the GNU project toolchain. The toolchain is a set of programming tools available in this software environment. For a quick overview of what is included in the GNU tools, see: <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>The ns-3 simulator uses gcc, GNU binutils, and gdb. At the same time, we do not use either make or autotools from the GNU tools to build the project. For these functions, we use Waf.<\/p>\n<p><\/p>\n<p>Xcode is used in macOS. Users of ns-3 on Mac are strongly recommended to install Xcode and the command line tools from the Apple App Store, and for additional information, visit the ns-3 installation wiki page: (<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>Usually, the author of ns-3 works in a Linux or Unix-like environment. For those working on Windows, there are environments that imitate the Linux environment to varying degrees. For such users, the ns-3 project previously (but not currently) supported development in the Cygwin environment. For details on downloading and additional information about Cygwin and ns-3, visit the ns-3 wiki page:<br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.cygwin.com\/\">http:\/\/www.cygwin.com\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>MinGW is currently not officially supported. Another alternative to Cygwin is to install a virtual environment such as VMware server, where you can set up Linux.<\/p>\n<p><\/p>\n<h3 id=\"25-programmirovanie-soketov\">2.5 Socket Programming<\/h3>\n<p><\/p>\n<p>In the examples used in this guide, we will leverage the basic capabilities of the Berkeley Socket API. If you are new to sockets, we recommend familiarizing yourself with the API and some common use cases. As a good overview of TCP\/IP socket programming, we recommend: \"TCP\/IP Sockets in C\" by Donahoo and Calvert.<\/p>\n<p><\/p>\n<p>There is a related website that contains the source examples from the book, which you can find at:<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>If you understand the first four chapters of the book (or for those who do not have access to a copy of the book, the echo clients and servers shown on the website linked above), this will be enough to understand the tutorial. There is a similar book<br \/>\n\"Multicast Sockets, Multicast Sockets\" by Makofske and Almeroth.<\/p>\n<p><\/p>\n<p>It covers material that you may need if you are studying examples of multicast distribution in the distribution.<\/p>\n<p><\/p>\n<p>Continuation: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/497318\/\">Chapter 3<\/a><\/noindex><\/p>\n<p>Source: <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\/en\/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=\"en_US\" \/>\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\/en\/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\udd47ns-3 Network Simulator Tutorial. Chapters 1, 2 | ProHoster","description":"This article opens a series of publications with translations of the \"ns-3 Tutorial Release.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/uchebnik-po-simulyatoru-seti-ns-3-glavy-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/86559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=86559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/86559\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/86560"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=86559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=86559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=86559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}