.. include:: replace.txt .. ======================================================================================== Current translation in Greek was done as a project of a ns3-related seminar organized by Greek Free/Open Source Software Society (ellak.gr) at University of Patras in 2014. The members of the translation team were: * Costas Deltouzos (costas.deltouzos@gmail.com) * Vasileios Dimitropoulos (vasdimitrop@upatras.gr) * Giorgos Kaffezas (kaffezas@ceid.upatras.gr) The team that is responsible for keeping the translation up-to-date consists of: # Vasileios Dimitropoulos (vasdimitrop@upatras.gr) # Giorgos Kaffezas (kaffezas@ceid.upatras.gr) # Nikos Stathopoulos (stathopou@ceid.upatras.gr) # Enea Tsanai (tsanai@ceid.upatras.gr) ---------------------------------------------------------------------------------------- > Current file was initially translated by [Vasileios Dimitropoulos]. > Last update was performed at 28-04-2015 by [Vasileios Dimitropoulos]. ======================================================================================== Εισαγωγή -------- .. The |ns3| simulator is a discrete-event network simulator targeted primarily for research and educational use. The `ns-3 project `_, started in 2006, is an open-source project developing |ns3|. Ο |ns-3| προσομοιωτής είναι ένας προσομοιωτής δικτύου διακριτών-γεγονότων με στόχο την έρευνα και την εκπαιδευτική χρήση. Το `πρόγραμμα |ns-3| `_, ξεκίνησε το 2006, είναι ένα ανοιχτού κώδικα πρόγραμμα ανάπτυξης |ns-3|. .. The purpose of this tutorial is to introduce new |ns3| users to the system in a structured way. It is sometimes difficult for new users to glean essential information from detailed manuals and to convert this information into working simulations. In this tutorial, we will build several example simulations, introducing and explaining key concepts and features as we go. Ο σκοπός αυτού του οδηγού είναι να εισαγάγει νέους χρήστες |ns-3| στο σύστημα με ένα δομημένο τρόπο. Μερικές φορές είναι δύσκολο για τους νέους χρήστες να μαζέψουν τις απαραίτητες πληροφορίες από λεπτομερή εγχειρίδια και να τις μετατρέψουν στην εργασία προσομοίωσης. Σε αυτό το εγχειρίδιο, θα χτίσουμε αρκετά παραδείγματα προσομοιώσεων, εισαγωγής και εξήγησης των βασικών εννοιών και χαρακτηριστικών. .. As the tutorial unfolds, we will introduce the full |ns3| documentation and provide pointers to source code for those interested in delving deeper into the workings of the system. Καθώς το εγχειρίδιο συνεχίζει, θα εισάγουμε την πλήρη έκδοση του |ns-3| και παρέχονται υποδείξεις για τον πηγαίο κώδικα για όσους ενδιαφέρονται να ψάξουν βαθύτερα μέσα στη λειτουργία του συστήματος. .. A few key points are worth noting at the onset: Μερικά βασικά σημεία αξίζουν να σημειωθούν κατά την έναρξη: .. * |ns3| is open-source, and the project strives to maintain an open environment for researchers to contribute and share their software. * Ο |ns-3| είναι ανοιχτός-κώδικας, και το πρόγραμμα προσπαθεί να διατηρήσει ένα ανοιχτό περιβάλλον για τους ερευνητές ώστε να συμβάλλουν και να μοιράζονται το λογισμικό τους. .. * |ns3| is not a backwards-compatible extension of `ns-2 `_; it is a new simulator. The two simulators are both written in C++ but |ns3| is a new simulator that does not support the |ns2| APIs. Some models from |ns2| have already been ported from |ns2| to |ns3|. The project will continue to maintain |ns2| while |ns3| is being built, and will study transition and integration mechanisms. * Ο |ns-3| δεν είναι επέκταση του `ns-2 `_; Ο |ns-3| είναι ένας νέος προσομοιωτής. Οι δύο εξομοιωτές είναι γραμμένοι σε C++ αλλά ο |ns-3| είναι ένας νέος προσομοιωτής που δεν υποστηρίζει τις APIs του |ns-2|. Μερικά μοντέλα έχουν ήδη μεταφερθεί από τον |ns-2| στον |ns-3|. Το πρόγραμμα θα συνεχίσει να διατηρεί τον |ns-2| καθώς ο |ns-3| θα χτίζεται, και θα μελετήσει μηχανισμούς μετάβασης και ολοκλήρωσης. .. About |ns3| Σχετικά με τον |ns-3| ********************* .. |ns3| has been developed to provide an open, extensible network simulation platform, for networking research and education. In brief, |ns3| provides models of how packet data networks work and perform, and provides a simulation engine for users to conduct simulation experiments. Some of the reasons to use |ns3| include to perform studies that are more difficult or not possible to perform with real systems, to study system behavior in a highly controllled, reproducible environment, and to learn about how networks work. Users will note that the available model set in |ns3| focuses on modeling how Internet protocols and networks work, but |ns3| is not limited to Internet systems; several users are using |ns3| to model non-Internet-based systems. Ο |ns-3| έχει αναπτυχθεί για να παρέχει μια ανοιχτή, επεκτάσιμη πλατφόρμα προσομοίωσης δικτύου, για την δικτύωση της έρευνας και της εκπαίδευσης. Συνοπτικά, ο |ns-3| παρέχει μοντέλα για το πώς τα πακέτα δεδομένων των δικτύων δουλεύουν και εκτελούνται, και παρέχει μια μηχανή προσομοίωσης για τους χρήστες να διεξάγουν πειράματα προσομοίωσης. Μερικοί από τους λόγους για να χρησιμοποιήσετε τον |ns-3| περιλαμβάνουν την πραγματοποίηση μελετών που είναι πιο δύσκολο ή αδύνατο να διενεργηθεί με πραγματικά συστήματα, για να μελετήσουμε τη συμπεριφορά του συστήματος σε ένα ιδιαίτερα ελεγχόμενο, αναπαραγόμενο περιβάλλον, και να μάθουν για το πώς τα δίκτυα δουλεύουν. Οι χρήστες θα παρατηρήσουν ότι το διαθέσιμο πρότυπο που παρατίθεται στο |ns-3| εστιάζει στην μοντελοποίηση πώς τα πρωτόκολλα του Διαδικτύου και των δικτύων δουλεύουν, αλλά ο |ns-3| δεν περιορίζεται σε συστήματα Διαδικτύου - Οι διάφοροι χρήστες που χρησιμοποιούν |ns-3| για τη μοντελοποίηση των συστημάτων που δεν βασίζονται στο Διαδίκτυο. .. Many simulation tools exist for network simulation studies. Below are a few distinguishing features of |ns3| in contrast to other tools. * |ns3| is designed as a set of libraries that can be combined together and also with other external software libraries. While some simulation platforms provide users with a single, integrated graphical user interface environment in which all tasks are carried out, |ns3| is more modular in this regard. Several external animators and data analysis and visualization tools can be used with |ns3|. However, users should expect to work at the command line and with C++ and/or Python software development tools. Υπάρχουν πολλά εργαλεία προσομοίωσης για μελέτες προσομοίωσης του δικτύου. Παρακάτω είναι μερικά χαρακτηριστικά γνωρίσματα του |ns-3| σε αντίθεση με άλλα εργαλεία. * Ο |ns-3| έχει σχεδιαστεί ως ένα σύνολο βιβλιοθηκών που μπορούν να συνδυαστούν μεταξύ τους και επίσης με άλλες εξωτερικές βιβλιοθήκες λογισμικού. Ενώ ορισμένες πλατφόρμες προσομοίωσης παρέχουν στους χρήστες με ένα ενιαίο, ολοκληρωμένο γραφικό περιβάλλον χρήστη στις οποίες είναι όλες οι εργασίες που πραγματοποιούνται, ο |ns-3| είναι περισσότερο σπονδυλωτός στο θέμα αυτό. Αρκετά εξωτερικά animators και ανάλυση δεδομένων και τα εργαλεία οπτικοποίησης μπορούν να χρησιμοποιηθούν με τον |ns-3|. Ωστόσο, οι χρήστες θα πρέπει να περιμένουμε για να εργαστούν στη γραμμή εντολών και με C++ και/ή Python εργαλεία ανάπτυξης λογισμικού. .. * |ns3| is primarily used on Linux systems, although support exists for FreeBSD, Cygwin (for Windows), and native Windows Visual Studio support is in the process of being developed. * Ο |ns-3| χρησιμοποιείται κυρίως σε συστήματα Linux, αν και υπάρχει υποστήριξη για το FreeBSD, Cygwin (για Windows), και η υποστήριξη του Windows Visual Studio είναι στη διαδικασία της προετοιμασίας. .. * |ns3| is not an officially supported software product of any company. Support for |ns3| is done on a best-effort basis on the ns-3-users mailing list. * Ο | ns-3 | δεν είναι επίσημα προϊόν λογισμικού κάποιας εταιρείας. Υποστήριξη για τον | ns-3 | γίνεται με βάση λίστα με την καλύτερη δυνατή προσπάθεια για τους |ns-3| χρήστες. .. For |ns2| Users Για τους |ns-2| χρήστες *********************** .. For those familiar with |ns2| (a popular tool that preceded |ns3|), the most visible outward change when moving to |ns3| is the choice of scripting language. Programs in |ns2| are scripted in OTcl and results of simulations can be visualized using the Network Animator nam. It is not possible to run a simulation in |ns2| purely from C++ (i.e., as a main() program without any OTcl). Moreover, some components of |ns2| are written in C++ and others in OTcl. In |ns3|, the simulator is written entirely in C++, with optional Python bindings. Simulation scripts can therefore be written in C++ or in Python. New animators and visualizers are available and under current development. Since |ns3| generates pcap packet trace files, other utilities can be used to analyze traces as well. In this tutorial, we will first concentrate on scripting directly in C++ and interpreting results via trace files. Για όσους είναι εξοικειωμένοι με |ns-2| (ένα δημοφιλές εργαλείο που προηγήθηκε του |ns-3|), η πιο ορατή αλλαγή κατά τη μετακίνηση προς |ns-3| είναι η επιλογή γλώσσας του scripting. Προγράμματα σε |ns-2| είναι γραμμένα σε OTcl και τα αποτελέσματα των προσομοιώσεων μπορούν να απεικονιστούν χρησιμοποιώντας το Network Animator nam. Δεν είναι δυνατόν να εκτελέσετε μια προσομοίωση σε |ns-2| μόνο από την C++ (δηλαδή, ως ένα πρόγραμμα main () χωρίς OTcl). Επιπλέον, ορισμένα συστατικά του |ns-2| είναι γραμμένα σε C++ και τα άλλα στην OTcl. Στην |ns-3|, ο προσομοιωτής είναι γραμμένος εξολοκλήρου σε C++, με επιλογή σε Python bindings. Σενάρια προσομοίωσης μπορούν να γραφούν σε C++ ή Python. Νέα animators και visualizers είναι διαθέσιμα και σε εξέλιξη. Από την στιγμή που ο |ns-3| παράγει pcap packet trace files, άλλα εργαλεία μπορούν επίσης να χρησιμοποιηθούν για να αναλύσουν τα ίχνη. Σε αυτό τον οδηγό, αρχικά θα επικεντρωθούμε στην σε scripting απευθείας σε C++ και την ερμηνεία των αποτελεσμάτων μέσω αρχείων παρακολούθησης. .. But there are similarities as well (both, for example, are based on C++ objects, and some code from |ns2| has already been ported to |ns3|). We will try to highlight differences between |ns2| and |ns3| as we proceed in this tutorial. Από την άλλη έχουν και ομοιότητες καθώς (και τα δύο, για παράδειγμα βασίζονται σε C++, και ορισμένος κώδικας από τον |ns-2| έχει ήδη μεταφερθεί στον |ns-3|). Θα προσπαθήσουμε να τονίσουμε τις διαφορές μεταξύ του |ns-2| και του |ns-3|, καθώς προχωράμε αυτό τον οδηγό. .. A question that we often hear is "Should I still use |ns2| or move to |ns3|?" In this author's opinion, unless the user is somehow vested in |ns2| (either based on existing personal comfort with and knowledge of |ns2|, or based on a specific simulation model that is only available in |ns2|), a user will be more productive with |ns3| for the following reasons: Μία ερώτηση που συχνά ακούμε είναι «Πρέπει ακόμα να χρησιμοποιώ τον |ns-2| ή να μετακινηθώ στον |ns-3|;» Κατά την γνώμη του συγγραφέα, αν ο χρήστης κατά κάποιο τρόπο δεν ανήκει στον |ns-2| (είτε με βάση την υπάρχουσα προσωπική άνεση και γνώση του |ns-2|, είτε βασίζεται σε ένα συγκεκριμένο μοντέλο προσομοίωσης που είναι διαθέσιμο μόνο στον |ns-2|), ένας χρήστης θα είναι πιο παραγωγικός στον |ns-3| για τους ακόλουθους λόγους: .. * |ns3| is actively maintained with an active, responsive users mailing list, while |ns2| is only lightly maintained and has not seen significant development in its main code tree for over a decade. * Ο |ns-3| διατηρείται ενεργός με μία ενεργό, ενημερωτική λίστα χρηστών, ενώ ο |ns-2| διατηρείται λιγότερο καθώς δεν έχει δεί σημαντική εξέλιξη στον κεντρικό κώδικα του για πάνω από μια δεκαετία. .. * |ns3| provides features not available in |ns2|, such as a implementation code execution environment (allowing users to run real implementation code in the simulator) * Ο |ns-3| παρέχει λειτουργίες που δεν είναι διαθέσιμες στον |ns-2|, όπως ένα περιβάλλον εκτέλεσης κώδικα εφαρμογής (επιτρέποντας στους χρήστες να τρέχουν τον πραγματικό κώδικα της εφαρμογής στον προσομοιωτή). .. * |ns3| provides a lower base level of abstraction compared with |ns2|, allowing it to align better with how real systems are put together. Some limitations found in |ns2| (such as supporting multiple types of interfaces on nodes correctly) have been remedied in |ns3|. * Ο |ns-3| παρέχει ένα χαμηλότερο επίπεδο βάσης της αφαίρεσης σε σύγκριση με |ns-2|, επιτρέποντάς τον να προσαρμοστεί καλύτερα με το πώς πραγματικά τα συστήματα τοποθετούνται μαζί. Κάποιοι περιορισμοί που βρέθηκαν στον |ns-2| (όπως η σωστή υποστήριξη πολλαπλών τύπων διεπαφών στους κόμβους) έχουν διορθωθεί στον |ns-3|. .. |ns2| has a more diverse set of contributed modules than does |ns3|, owing to its long history. However, |ns3| has more detailed models in several popular areas of research (including sophisticated LTE and WiFi models), and its support of implementation code admits a very wide spectrum of high-fidelity models. Users may be surprised to learn that the whole Linux networking stack can be encapsulated in an |ns3| node, using the Direct Code Execution (DCE) framework. |ns2| models can sometimes be ported to |ns3|, particularly if they have been implemented in C++. Ο |ns-2| έχει ένα πιο διαφοροποιημένο σύνολο που συνέβαλαν στις ενότητες από ό,τι κάνει ο |ns-3|, λόγω της μακράς ιστορίας του. Ωστόσο, ο |ns-3| έχει πιο λεπτομερή μοντέλα σε διάφορες δημοφιλείς περιοχές της έρευνας (συμπεριλαμβανομένων εξελιγμένα μοντέλα LTE και WiFi), και η υποστήριξη της εφαρμογής του κώδικα αναγνωρίζει ένα πολύ ευρύ φάσμα μοντέλων υψηλής πιστότητας. Οι χρήστες μπορούν να εκπλαγούν όταν μάθουν ότι ολόκληρη η στοίβα δικτύου του Linux μπορεί να περιοριστεί σε ένα |ns-3| κόμβο, χρησιμοποιώντας την άμεση εκτέλεση κώδικα (Direct Code Execution - DCE) πλαίσιο. Τα μοντέλα του |ns-2| μπορούν μερικές φορές να μεταφερθούν και στον |ns-3|, συγκεκριμένα όταν έχουν υλοποιηθεί σε C++. .. If in doubt, a good guideline would be to look at both simulators (as well as other simulators), and in particular the models available for your research, but keep in mind that your experience may be better in using the tool that is being actively developed and maintained (|ns3|). Σε περίπτωση αμφιβολίας, μια καλή συμβουλή θα ήταν να δούμε τους δύο προσομοιωτές (καθώς και άλλους προσομοιωτές), και κυρίως τα διαθέσιμα μοντέλα για την έρευνά σας, αλλά να έχετε κατά νου ότι η εμπειρία σας μπορεί να είναι καλύτερη χρησιμοποιώντας το εργαλείο που είανι ενεργά αναπτυσσόμενο και διατηρείται (|ns-3|). .. Contributing Συνεισφορά ********** .. |ns3| is a research and educational simulator, by and for the research community. It will rely on the ongoing contributions of the community to develop new models, debug or maintain existing ones, and share results. There are a few policies that we hope will encourage people to contribute to |ns3| like they have for |ns2|: Ο |ns-3| είναι ένας ερευνητικός και εκπαιδευτικός προσομοιωτής, από και για την ερευνητική κοινότητα. Θα βασίζεται στις τρέχουσες εισφορές της κοινότητας για την ανάπτυξη νέων μοντέλων, διόρθωση ή διατήρηση των υπαρχόντων, και το μοίρασμα των αποτελεσμάτων. Υπάρχουν λίγες πολιτικές που ελπίζουμε ότι θα ενθαρρύνει τους ανθρώπους να συμβάλλουν στον |ns-3| όπως έχουν συμβάλλει για τον |ns-2|: .. * Open source licensing based on GNU GPLv2 compatibility * `wiki `_ * `Contributed Code `_ page, similar to |ns2|'s popular Contributed Code `page `_ * Open `bug tracker `_ * Αδειοδότηση ανοιχτού κώδικα με βάση τη συμβατότητα του GNU GPLv2 * `wiki `_ * `Σελίδα Κώδικα Συνεισφοράς `_, παρόμοια με τη δημοφιλή σελίδα του |ns-2| Κώδικα Συνεισφοράς `σελίδα `_ * Άνοιξε `bug tracker `_ .. We realize that if you are reading this document, contributing back to the project is probably not your foremost concern at this point, but we want you to be aware that contributing is in the spirit of the project and that even the act of dropping us a note about your early experience with |ns3| (e.g. "this tutorial section was not clear..."), reports of stale documentation, etc. are much appreciated. Αντιλαμβανόμαστε ότι, αν διαβάζετε αυτό το έγγραφο, συμβάλλοντας πίσω στο έργο είναι πιθανόν να μην είναι η κύρια ανησυχία σας σε αυτό το σημείο, αλλά θέλουμε να γνωρίζετε ότι η συνεισφορά είναι στο πνεύμα του έργου και ότι ακόμη και η πράξη της εγκατάλειψής μας μια σημείωση για την πρώιμη εμπειρία σας με |ns-3| (π.χ. «αυτό το τμήμα του οδηγού δεν ήταν σαφές ..."), reports σχετικά με το έγγραφο που εργάζεστε, κλπ. θα ήταν εκτιμήσιμο. .. Tutorial Organization Οδηγός Οργάνωσης **************** .. The tutorial assumes that new users might initially follow a path such as the following: Ο οδηγός υποθέτει ότι οι νέοι χρήστες αρχικά θα ακολουθήσουν μία απο τις παρακάτω ιστοσελίδες: .. * Try to download and build a copy; * Try to run a few sample programs; * Look at simulation output, and try to adjust it. * Προσπαθήστε να κατεβάσετε και να χτίσετε ένα αντίγραφο, * Προσπαθήστε να τρέξετε μερικά δείγματα-προγράμματα, * Κοιτάξτε στην έξοδο προσομοίωσης, και να προσπαθήστε να το ρυθμίσετε. .. As a result, we have tried to organize the tutorial along the above broad sequences of events. Ως αποτέλεσμα, έχουμε προσπαθήσει να οργανώσουμε τον οδηγό σύμφωνα με τα παραπάνω με ευρείες ακολουθίες γεγονότων.