INTERNET RELAY CHAT SERVICES FRAMEWORK: Gnuworld By
Total Page:16
File Type:pdf, Size:1020Kb
INTERNET RELAY CHAT SERVICES FRAMEWORK: GNUWorld By DANIEL ROBERT KARRELS A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2003 Copyright 2003 by Daniel Karrels I dedicate this thesis to my parents. ACKNOWLEDGMENTS I thank my Mother and Father for their persevering support. Even through difficult times, and decisions with which they did not agree, they supported me in my endeavors. I thank Joseph N. Wilson for his excellent teaching and helping to spark my interest in computer science. I thank my graduate committee, Beverly A. Sanders and Richard E. Newman, for their support and feedback. Without their assistance, I would not have made it this far. iv TABLE OF CONTENTS Page ACKNOWLEDGMENTS ................................................................................................. iv LIST OF TABLES............................................................................................................ vii LIST OF FIGURES ......................................................................................................... viii ABSTRACT....................................................................................................................... ix 1 OVERVIEW OF INTERNET RELAY CHAT ............................................................1 History of Internet Relay Chat......................................................................................3 Organization of Thesis..................................................................................................4 2 INTERNET RELAY CHAT NETWORK SERVICES................................................5 Maintaining Channel Order ..........................................................................................5 Channel Power Struggles..............................................................................................6 Network Abuse .............................................................................................................7 Overview of IRC Network Services.............................................................................8 Overview of GNUWorld ..............................................................................................9 History of Undernet IRC Network Services.................................................................9 3 GNUWorld AND THE VIRTUAL FILE SYSTEM MODEL...................................12 Overview of the Virtual File System Model...............................................................12 GNUWorld versus the VFS........................................................................................13 Function ......................................................................................................................14 Associating Files and Users........................................................................................14 Pages and Streams ......................................................................................................17 Summary.....................................................................................................................19 4 SIGNAL HANDLING................................................................................................20 Possible Solutions.......................................................................................................21 A Deterministic Solution ............................................................................................23 GNUWorld Signal Class.............................................................................................23 v Pitfalls.........................................................................................................................24 5 HOSTNAME TRIE ....................................................................................................26 Introduction.................................................................................................................26 Suffix Tries .................................................................................................................28 The GNUWorld Hostname Trie .................................................................................29 Wild Card Searches ....................................................................................................30 Performance................................................................................................................31 Structure......................................................................................................................32 Search Strings .............................................................................................................33 Pitfalls.........................................................................................................................37 Conclusions.................................................................................................................37 6 SUMMARY................................................................................................................38 Design Accomplishments ...........................................................................................38 The Future of GNUWorld ..........................................................................................39 LIST OF REFERENCES...................................................................................................41 BIOGRAPHICAL SKETCH .............................................................................................43 vi LIST OF TABLES Table page 5-1 Common search keys and comparisons against real hostnames..................................27 5-2 Common IRC hostname search strings .......................................................................36 vii LIST OF FIGURES Figure page 1-1 Sharing of network data among IRC servers.................................................................2 3-1 Modular design of GNUWorld....................................................................................14 3-2 Number of channels joined by each user on a large network......................................17 5-1 Structure of a hostname trie with four hostnames .......................................................30 5-2 Distribution of 125,996 hostnames found on the Undernet IRC network...................32 5-3 Total number of subtrees per node, organized by level...............................................34 5-4 Number of values per node in the hostname trie.........................................................35 5-5 Searches performed using nine realistic search strings ...............................................36 viii Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science INTERNET RELAY CHAT SERVICES FRAMEWORK: GNUWorld By Daniel Robert Karrels December 2003 Chair: Joseph N. Wilson Major Department: Computer and Information Science and Engineering GNUWorld is an Internet Relay Chat (IRC) server. IRC is a real-time text-communication mechanism. Used by hundreds of thousands of people on a daily basis, IRC has existed since the inception of the internet. Unlike other IRC servers, GNUWorld does not support IRC clients. Instead, it provides an IRC network-support mechanism. It may be custom tailored to perform any type of support operation necessary on IRC. GNUWorld is frequently used to ensure proper authentication of IRC users, and to aid in battling IRC network abuse. ix CHAPTER 1 OVERVIEW OF INTERNET RELAY CHAT Internet Relay Chat, (or IRC for short) is a real-time communication mechanism used on the internet. On IRC, users have the opportunity to communicate with each other either publicly or privately. Most IRC clients also provide the ability to share files. Users wishing to participate in one or more IRC conversations use an IRC client to connect to an IRC network. Users are identified by a unique sequence of characters chosen at the time of connection, known as a nickname. This nickname is usually chosen to represent the person’s personality or individuality, and most users attempt to use the same nickname each time they connect to IRC. If the desired nickname is already taken by another user, then another nickname must be chosen. Any specific nickname may or may not be available when a user attempts to connect to the IRC network. It is also possible to change nicknames while connected to IRC. Once connected, a user is free to communicate with a single individual in private messages, or with groups of individuals by joining channels. Private messaging takes place between exactly two users on an IRC network. A user engages in private messaging by sending a message to another user. Users choosing to engage in private messaging are not required to join any channel. However, any user may be on any number of channels, and may send private messages to other users while connected to an IRC network. 1 2 A channel provides a method for many users to communicate simultaneously on a given subject of interest to the group. Any text submitted by a user into a channel is transmitted to each user in that channel. An IRC network may have many thousands of channels to choose from, covering a wide range of topics. An IRC network is a group of one or more IRC servers connected to each other. Most servers on an IRC network accept incoming client connections.