Η εικονικοποίηση δικτύων αποτελεί μία δυναμική μέθοδο ενσωμάτωσης εικονικών δικτυακών δομών σε φυσικές υποδομές. Παρέχει τη δυνατότητα ταυτόχρονης και παράλληλης λειτουργίας πολλαπλών αρχιτεκτονικών, connection-oriented υπηρεσιών και ετερογενών δικτυακών πειραμάτων σε μία κοινή διαμοιραζόμενη φυσική πλατφόρμα διασύνδεσης. Μία σημαντική πρόκληση που αντιμετωπίζει η μέθοδος είναι το πρόβλημα της ενσωμάτωσης των εικονικών γράφων στον κοινό φυσικό. Η αποδοτική απεικόνιση των εικονικών κόμβων και ζεύξεων πάνω στο υπόστρωμα, μεριμνώντας για την τήρηση των περιορισμών των στοιχείων, την καλύτερη δυνατή κατανομή των πόρων και την πλήρη αξιοποίηση της διαθέσιμης χωρητικότητας είναι ένα NP-δύσκολο πρόβλημα. Για το λόγο αυτό μεγάλο ποσοστό της έρευνας γύρω από αυτό το θέμα επικεντρώνεται στη σχεδίαση και χρήση ευριστικών αλγορίθμων με στόχο την εύρεση μίας αποδεκτής και οικονομικής λύσης. Στην εργασία αυτή χρησιμοποιείται ως βάση και τροποποιείται ένας αλγόριθμος της διεθνούς βιβλιογραφίας ο οποίος προγραμματίζεται εξαρχής σε γλώσσα C. Στηρίζεται στην ευριστική ανίχνευση του ισομορφισμού μεταξύ υπογράφων και χαρτογραφεί τους κόμβους και τις ζεύξεις στην ίδια φάση επιτυγχάνοντας υψηλή τάξη συγχρονισμού της απεικόνισης, αποδοτικές χαρτογραφήσεις και πολύ μεγάλη ταχύτητα λειτουργίας. Προσομοιώνεται ουσιαστικά με βάση τον αλγόριθμο αυτό ένα γρήγορο σύστημα διαχείρισης και εξυπηρέτησης πολλαπλών, δυναμικά αφικνούμενων αιτήσεων εικονικών δικτύων, εξάγοντας συμπεράσματα για την αποδεκτότητα και αποδοτικότητα των χαρτογραφήσεων που παράγει σε πραγματικό χρόνο υπό συνθήκες ποικίλου φόρτου. Η προσομοίωση στηρίζεται στην χρονοδρομολόγηση γεγονότων. Η εργασία αυτή είναι δομημένη ως εξής: Αρχικά στο μέρος Ι γίνεται μία εισαγωγή στην τεχνική της εικονικοποίησης δικτύων, στα πλεονεκτήματά της, στα προβλήματα που αντιμετωπίζει, στην υλοποίησή της και στο βασικό θέμα της εργασίας. Ακολούθως στο μέρος ΙΙ, γίνεται μία αναφορά σε ανάλογες εργασίες και δημοσιεύσεις που είναι σχετικές με το θέμα και στις μεθόδους και λύσεις οι οποίες προτάθηκαν σε αυτές. Κατόπιν στο μέρος ΙΙΙ δίνεται μία μαθηματική περιγραφή του μοντέλου του δικτύου (εικονικού και φυσικού) και του ίδιου του προβλήματος ενσωμάτωσης. Στο μέρος ΙV παρουσιάζεται ο πλήρης αλγόριθμος που χρησιμοποιήθηκε για την επίλυση του προβλήματος χρησιμοποιώντας ευριστικές μεθόδους. Επίσης προτείνεται για εξέταση ένας θεωρητικός αλγόριθμος εύρεσης μονοπατιού για πολλαπλές ροές και δύο αλγόριθμοι για την θεωρητική ανάκαμψη από φυσικές αστοχίες κόμβων και ζεύξεων. Το μέρος V περιέχει τα στοιχεία που αφορούν το περιβάλλον προσομοίωσης του βασικού αλγορίθμου και συγκεντρωτικά τα αποτελέσματα της προσομοίωσης, ακολουθούμενα από σχόλια και συμπεράσματα σχετικά με αυτά. Τέλος στο μέρος VI γίνεται μία συνολική ανασκόπηση της συνεισφοράς της εργασίας στην έρευνα γύρω από το θέμα της ενσωμάτωσης εικονικών δικτύων και διατυπώνονται κάποιες προτάσεις για μελλοντική έρευνα στον γενικότερο τομέα της εικονικοποίησης δικτύων. Επιπλέον, στο παράρτημα που βρίσκεται στο τέλος της εργασίας περιέχεται ο σχολιασμένος κώδικας σε C που χρησιμοποιήθηκε για τη διεξαγωγή της προσομοίωσης του αλγορίθμου.
Network virtualization is a dynamic method of embedding virtual networks in physical infrastructures. It provides the capability of simultaneous and parallel function of multiple architectures, connection-oriented services and heterogeneous network experiments on a common shared physical networking platform. An important challenge which this method faces is the problem of embedding the virtual graphs in the common physical graph. The efficient mapping of virtual nodes and links on the substrate network, while taking into account the constraints of the components, the optimal resource allocation and the full exploitation of the available substrate capacity is an NP-hard problem. Therefore, a substantial percentage of research around this topic is focused on the design and use of heuristic algorithms so as to find an acceptable and efficient solution. This dissertation uses as its basis an existing algorithm of the international bibliography, which is adjusted and reprogrammed from the beginning in C. The algorithm is based on the heuristic search of the isomorphism between subgraphs and maps the nodes and links during the same stage, yielding a high level of mapping synchronization, efficient mappings and a relatively high running speed. Essentially, a fast system which manages and serves multiple, dynamically arriving virtual network requests is simulated. Observations regarding its function lead to the deduction of numerous conclusions about the acceptability and efficiency of the mappings which are produced real-time and under diverse request loads. The simulation is based on event routing. This thesis is organized as follows: Firstly, part I contains an introduction to the technique of network virtualization, its advantages, the problems it faces, its implementation and the basic topic of the thesis. Sequentially, part II sums up similar research efforts and papers which are relative to the matter and presents some methods and solutions which they propose. In part III, a mathematical model of the networks (virtual and physical) and the formulation of the problem of virtual network embedding are presented. Part IV contains the algorithm which is used for the solution of the problem using heuristic techniques. Moreover three theoretical algorithms are presented: one regarding path-finding for multiple flows and two others which in theory face the problem of recovery from physical node and link failures. Part V describes the environment of the simulation of the basic algorithm and presents the experimental results extracted by the simulation, accompanied by useful comments and conclusions. Finally, part VI gives an overview of the contribution of this thesis to research around the topic of virtual network embedding and formulates some proposals of future research in the generic field of network virtualization. Additionally, the appendix which is placed at the end of the thesis contains the commented C code which was manufactured and used for the needs of the simulation of the algorithm.