The GINI Router: A Routing Element for User-level Micro Internet by Weiling Xu DEPARTMENT OF COMPUTER SCIENCE MCGILL UNIVERSITY, MONTREAL JUNE,2004 A THESIS SUBMITTED TO MCGILL UNIVERSITY IN PARTIAL FULFILMENT OF THE REQUlREMENTS OF THE DEGREE OF MASTER OF SCIENCE © Weiling Xu 2004 Library and Bibliothèque et 1+1 Archives Canada Archives Canada Published Heritage Direction du Branch Patrimoine de l'édition 395 Wellington Street 395, rue Wellington Ottawa ON K1A ON4 Ottawa ON K1A ON4 Canada Canada Your file Votre référence ISBN: 0-494-06476-5 Our file Notre référence ISBN: 0-494-06476-5 NOTICE: AVIS: The author has granted a non­ L'auteur a accordé une licence non exclusive exclusive license allowing Library permettant à la Bibliothèque et Archives and Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par télécommunication ou par l'Internet, prêter, telecommunication or on the Internet, distribuer et vendre des thèses partout dans loan, distribute and sell th es es le monde, à des fins commerciales ou autres, worldwide, for commercial or non­ sur support microforme, papier, électronique commercial purposes, in microform, et/ou autres formats. paper, electronic and/or any other formats. The author retains copyright L'auteur conserve la propriété du droit d'auteur ownership and moral rights in et des droits moraux qui protège cette thèse. this thesis. Neither the thesis Ni la thèse ni des extraits substantiels de nor substantial extracts from it celle-ci ne doivent être imprimés ou autrement may be printed or otherwise reproduits sans son autorisation. reproduced without the author's permission. ln compliance with the Canadian Conformément à la loi canadienne Privacy Act some supporting sur la protection de la vie privée, forms may have been removed quelques formulaires secondaires from this thesis. ont été enlevés de cette thèse. While these forms may be included Bien que ces formulaires in the document page count, aient inclus dans la pagination, their removal does not represent il n'y aura aucun contenu manquant. any loss of content from the thesis. ••• Canada Abstract (English) Most routers, to our knowledge, are difficult for researchers and students without root privileges to implement or modify, because their implementation is in kemel space. GINI is an innovative platform on conventional PCs, which brings the whole functionality of a router into user space. GINI is able to create a complex virtual network consisting of User-Mode Linux (UML), virtual switches and routers. GINI is far more than a simulation engine, because packets on a virtual link may experience real networks by going through UDP tunnels. This thesis also presents a new architecture for building flexible and configurable routers in GIN!. They have a modular structure and are easy to extend. Our evaluation shows that the GINI router has a much better performance than UML to be a router. Since the GINI routers are lightweight and configurable, it is easy to run hundreds of them by a simple script on one or more PCs, without crashing them. 11 Résumé (Français) La plupart des routeurs sont, à notre connaissance, difficiles à appliquer ou à modifier pour des chercheurs et des étudiants sans privilèges de racine, parce que leur implantation s'effectue dans l'espace de grain. GINI est une plateforme innovatrice sur les PCs conventionnels, qui apporte la fonctionnalité entière d'un routeur dans l'espace d'utilisateur. GINI peut créer un réseau virtuel complexe constitué de Linux D'utilisateur­ mode (UML) , de commutateurs et routeurs virtuels . GINI est bien plus que de la émulation, parce que les paquets sur un lien virtuel peuvent traverser de vrais réseaux en passant par des tunnels UDP. Cette thèse présente également une nouvelle architecture pour la construction de routeurs virtuels flexibles et configurables. Ils ont une structure modulaire et sont faciles à prolonger. Notre évaluation prouve que le routeur de GINI est un routeur bien plus performant qu'UML. Comme les routeurs de GINI sont légers et configurables, il est facile de lancer des centaines d'eux par un script simple sur un ou plusieurs PCs, sans affecter le fonctionnement de ceux-ci. 111 Acknowledgements l would like to thank my supervisor Prof. Muthucumaru Maheswaran for his direction, assistance, and guidance. His recommendations and suggestions have been invaluable for the project and for software improvement. l am deeply grateful to Shah Asaduzzaman for giving me many use fui suggestions. l also wish to thank Arindam Mitra, who is the adrninistrator of ANRL lab and assisted me with setting up the environment for UML. Special thanks should be given to my colleagues in ARNL lab who helped me in many ways. Finally, words alone cannot express the thanks l owe to my parents Mingqian Xu and Junwen Zhang, and my husband Yuan Xu, for their encouragement and assistance. IV Table of Contents Chapter One: Introduction .................................................................................................... 1 1.1 Motivation for the Thesis .................................................................................... 1 1.2 Thesis Outline ..................................................................................................... 5 Chapter Two: Related Work and GINI ................................................................................. 7 2.1 Re1ated Work ...................................................................................................... 7 2.1.1 Virtual Router Improved ................................................................................. 7 2.1.2 Click ................................................................................................................ 8 2.1.3 Virtual Router ................................................................................................. 8 2.1.4 Extensible Open Router Platfonn & Zebra .................................................... 9 2.1.5 An Implementation of a Teaching Network with User-Mode Linux & Virtual Network User-Mode Linux ......................................................................................... 9 2.2 Elements of GINI .............................................................................................. Il Chapter Three: Background Knowledge ............................................................................... 12 3.1 Overview of User-Mode Linux (UML) ............................................................ 12 3.1.1 What is UML? .............................................................................................. 12 3.1.2 UML Networking .......................................................................................... 13 3.1.3 The Switch Daemon & the GINI Switch ...................................................... 14 3.1.4 Desired GINI Router ..................................................................................... 17 3.2 Hardware Router andthe GINI Router.. ........................................................... 18 3.2.1 Hardware Router Architecture ...................................................................... 20 3.2.2 What Can be Imp1emented in the GINI Router? .......................................... 22 Chapter Four: Design of the GINI Router.. ........................................................................ .24 4.1 Modular Structure ............................................................................................. 24 4.2 How Modules ColIaborate? .............................................................................. 26 Chapter Five: Implementation of the GINI Router.. ........................................................... 29 5.1 Essential Global Data Structures ...................................................................... 29 5.2 Common Routines Shared by AlI Modules ...................................................... 34 5.3 Organization of Files ......................................................................................... 38 5.4 CLI Module ....................................................................................................... 39 5.5 UML_ADAPTER Module ................................................................................ 41 5.6 IP Module .......................................................................................................... 46 5.7 ICMP Module ................................................................................................... 50 5.8 FRAGMENT Module ....................................................................................... 52 5.9 ARP Module ..................................................................................................... 53 5.10 QOS Module ..................................................................................................... 56 5.10.1 InternaI Structure ...................................................................................... 56 5.10.2 Worst Case Weighted Fair Queuing + ...................................................... 59 5.10.3 Message Flows .......................................................................................... 61 Chapter Six: Profiling Tooi in the GINI Router ................................................................... 63 6.1 Overvievv ........................................................................................................... 63 6.2 Statistical
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages125 Page
-
File Size-