Thesis topics in networking - 2009

I (t.moors AT unsw.edu.au) supervise theses (BE, ME/MEngSc, PhD) in the field of networking.

Most are in areas relating to my research interests, primarily network dependability (reliability), but that can cover many technical areas (e.g. wireless, routing, transport protocols, applications, peer-to-peer, etc).

I may be willing to supervise theses on other topics in networking if there is a very good match between your interests and background and mine. Please email me a short description of your proposal.

This web page lists several possible topics intended for undergraduate theses. They reflect my research interests, and so could be expanded (vastly, especially with more emphasis on fundamental theory than practical implementation) to form Masters or PhD theses.

I cannot possibly do a good job of concurrently supervising all of these projects, and generally only supervise 4-6 BE students per semester. Consequently, acceptance of students for topics will be done on a competitive basis, with the best qualified students getting first choice.

If you are interested in any of these topics, then please email your resume and academic record(s) to t.moors AT unsw.edu.au . The earlier you do that and can commit to a thesis (by completing a Thesis Nomination Form, available from the school office), the broader your choices will be.

For information about past theses that I have supervised, see http://uluru.ee.unsw.edu.au/~tim/netskunks/index.html#past_projects

Area Project
Network dependability Discovering network access problems
Estimating network dependencies
Renovating the Address Resolution Protocol (ARP)
Using web replicas to mask network faults
Monitoring and measuring server availability
Instant Messaging and Presence protocols for notifying users about service availability
Analysing email headers to detect server problems
Applications Instant Messaging (IM) client-side filtering
Wireless networking Wireless mesh networks
Transport protocols Negotiation of new transport protocols
Infrastructure and teaching Create an Ethernet switch from a PC
Develop a testbed for networking experiments
Software for enhancing computer-aided assessment
Build a Network Operations Centre (NOC) from open-source and custom components

Network dependability

Businesses depend on network reliability to retain market share, and customers get frustrated by network faults. Network reliability is also fun to study because of the surprising ways in which systems fail and the challenge of understanding and defending against complicated failure modes. Current work focuses on improving network reliability by end-user approaches to detect faults and adapt around them.

The web page http://uluru.ee.unsw.edu.au/~tim/dependable/ provides more context for this topic.

TM40: Discovering network access problems

This project could, conceivably, be split into three smaller projects. To determine when problems exist, we intend to develop network performance monitoring software. This will take three forms: First, end-user software (e.g. web browser plug-in) that measures the performance of communication with systems that the end-user is currently interacting with (e.g. throughput and response times to web and DNS servers), and so provides timely detection of faults in communicating with systems of highest immediate interest to the end-user. Second, software on the end-user's platform will monitor general network performance, as seen from the local system, e.g. by processing data from TCP and link-layer MIBs about error rates etc, and by monitoring ECN fields of received IP packets. Third, software on the end-user's platform will monitor performance of frequently used resources (e.g. links) within the network using tools, which either already exist (e.g. see http://www.caida.org/tools/) or will be developed as part of this project, and services from network service providers and other "Internet weather" monitoring services (e.g. http://www.internettrafficreport.com/).

TM41: Estimating network dependencies

Other theses have considered how users of a network can be notified when network elements are/will-be (un)available, which end-users can use to explain network problems and avoid disappointment from attempting access during an outage. However, filtering to ensure that only relevant notices are shown to users requires knowledge of what (& when) network elements a user is interested in, either directly (e.g. a web server that they use) or indirectly (e.g. a router that is en-route to a web server that they use). This thesis will develop software to automate the acquisition of such knowledge, and so avoid the inaccuracy and cost associated with manual processes. It will be based on C/C++ code that uses the libpcap library to capture packets sent by an end-user, and tools such as traceroute to determine paths through networks.

TM55: Renovating the Address Resolution Protocol (ARP)

ARP is one of the linchpins of the Internet protocol suite, being used to map IP addresses into link layer addresses. However, a number of deficiencies in its design have been identified over the years. For example, being stateless, it does not match responses to requests, so spoofing and denial of service can be achieved by sending responses when no request has been issued. The current ARP also relies on broadcast transmission, which is unsuitable for non-broadcast multiple access networks (e.g. wireless mesh networks and ATM), and unnecessarily loads nodes on a broadcast medium that do not support the address format being ARPed (e.g. Appletalk nodes sharing a network with IP nodes, or IPv6 nodes sharing a network with IPv4 nodes). Finally, real-time traffic needs ARP just as much as non-real-time traffic, but ARP provides no way to give priority to requests in support of real-time service over those for non-real-time services, so real-time traffic can stall in a heavily loaded network when ARP bindings need to be refreshed (e.g. every 20 minutes). The goal of this project is to renovate ARP, in order to rectify these, and other, deficiencies. It will involve modifying the Linux implementation of ARP, and so requires strong C programming skills and networking knowledge, plus an interest in kernel hacking.

TM56: Analysing email headers to detect server problems

Since most e-mail users are not concerned with transmission details, e-mail client user interfaces tend to hide information that emails accumulate as they propagate from source to destination, including information about when they were received and forwarded by intermediate mail transfer agents. Analysis of such information (using text processing software to extract the relevant fields and basic statistics) can reveal server problems, e.g. which server(s) on the path caused a message to be delayed. This can be used for troubleshooting networks, and for choosing providers that do not cause such problems. Similarly, traffic analysis techniques can be applied to messages being received by a client to detect anomalies (e.g. nothing, not even spam, received for a period) that may indicate server problems. The goal of this thesis is to develop software to automatically perform such analyses.

TM46: Using web replicas to mask network faults

Web pages are often replicated (e.g. by a cache such as UNSW’s cache1.uwn.unsw.EDU.AU or Google’s cache http://www.google.com/help/features.html#cached, by mirrors e.g. http://mirror.cse.unsw.edu.au or other archives e.g. http://www.archive.org/). Often the intention is to enhance performance, but replicas can also be useful when the origin server is unavailable – e.g. when there is a network outage. Existing web browsers often use the local cache on disk to display content when there is a network outage, but are not sophisticated enough to refer to other caches when they haven’t previously cached the content on disk, or to determine whether other accessible caches may have more current versions of the content. This thesis will involve developing software to enable web browsers to access such replicas as a means towards enhancing effective availability despite network outages. More broadly, it may consider how users and protocols can express the required currency of a response, and how peers can collaboratively share cached information.

See also http://rentzsch.com/notes/googleCacheHacking

TM34: Monitoring and measuring server availability

The goal of this thesis is to develop and test tools that can be used to monitor and measure the availability of Internet services, such as HTTP and SMTP services. The challenge will lie in creating a range of tools that can accommodate a range of access to servers (from access only to the service itself for a commercial service, through non-root to root access to the server machines) and in ensuring accuracy of the measurements while limiting the load incurred by the measurement process. Existing approaches include repeatedly "ping"ing a server, analysing "last" logs and "uptime" on Unix boxes, etc. The resulting measurements will indicate the availability of Internet services and guide research into enhancing the dependability of Internet services.

TM32: Instant Messaging and Presence protocols for notifying users about service availability

This is part of a broader project.

Network services (e.g. web services such as webCT, IP services, etc) are not always continuously available, and service providers often seek mechanisms to notify users about service availability, e.g. about planned outages, or about why service is currently unavailable and the estimated time of return of service. Structuring such notifications and sending them electronically allows user-end software to automatically filter out notifications that are not currently relevant to the user, and to retrieve previously irrelevant notifications to explain current network behaviour. In 2004, a thesis student developed a proprietary system for structuring and sending such notifications. However, to maximise the deployment of such a system, it is desirable that it be generalised to provide for notification of arbitrary services (e.g. a person being available/present, road traffic conditions being congested/free-flowing, etc) and to use standard protocols and structures for describing such events. Thus, the goal of this thesis in 2005 is to develop a system that uses Instant Messaging protocols (e.g. Jabber, or others supported by clients such as Gaim) to disseminate these notifications, and standard calendaring formats (e.g. RFC 3283/2445) for describing the time of the event so that it can be integrated with other events in calendaring software such as Outlook.

TM47: Instant Messaging (IM) client-side filtering

This is part of a broader project.

Many email clients (e.g. Outlook and web-based mail such as Gmail) allow users to filter incoming messages according to criteria such as source or key words. Such filtering would also be useful for similar reasons for Instant Messaging clients, but current IM clients (e.g. GAIM) do not support such filters. IM filtering is also of particular interest to a UNSW project (see topic TM32) that uses IM to send structured service availability notices, e.g. about network outages, since the user's interest in such notices (and hence prominence of display by an IM client) should reflect the relevance of the notice to the user (e.g. low for services that the user doesn't or isn't currently using). This thesis will involve extending the source code of a popular open-source IM client (e.g. GAIM) to provide such filtering.

TM45: Wireless mesh networks

Various projects are available in the area of routing for wireless mesh networks, as part of a NICTA project.

TM48: Negotiation of new transport protocols

The Transmission Control Protocol (TCP) is the most popular transport protocol today, and is used for applications such as email, web browsing, and file sharing. It has withstood many tests of time since first introduced in the 1970s, but several new transport protocols have been proposed recently (notably SCTP and DCCP) to address some of the limitations of TCP. Unfortunately, a large impediment to the adoption of these technically superior protocols is the inertia behind existing TCP installations: Clients can be confident that a server supports TCP, but cannot readily determine which other transport protocols the server may support, and so tend to use TCP. This project will examine new ways of using TCP header fields to allow clients and servers to ascertain each other's capabilities (i.e. supported transport protocols) and choose a protocol that is best suited to their mutual needs, while still maintaining backward compatibility with traditional TCP implementations. It will involve Linux kernel hacking (C) and extend your knowledge of TCP gained from data networks courses and introduce you to more modern protocols that are likely to take over from TCP/IP, if only there existed mechanisms (as provided by this project) for end-systems to negotiate which protocol to use.

Infrastructure and teaching

TM44: Create an Ethernet switch from a PC

You will develop software so that a PC with multiple Ethernet interfaces can act an Ethernet switch (which will be used as a highly configurable switch in a lab). In doing so, you will learn in detail about how switches work (e.g. their learning algorithms, packet classification, and the Spanning Tree Protocol) and in writing network software for Linux (even kernel-level programming if you want to optimise performance). To make the switch transparent (not modify the source MAC address of passing frames) you will need to be tricky, e.g. use network interface cards with programmable addresses.

TM33: Develop a testbed for networking experiments

(Group thesis)
The goal of this thesis is to create laboratory infrastructure that can be used as a testbed for networking experiments, both for testing the performance of networking concepts that arise from research, and for demonstrating networking protocols in action for course laboratories. It will involve surveying and gathering existing tools (e.g. for load generation, fault injection, measurement and observation, as well as Linux implementations and emulators of devices such as routers and switches) and developing software (mainly C under Linux, plus some script writing) to interface these tools together and create new tools where existing tools are inadequate. Examples of existing tools include NISTnet and Dummynet, ethertap and Cisco CCNA router emulators. A related past thesis developed software for visualising protocol exchanges

TM50: Build a Network Operations Centre (NOC) from open-source and custom components

(Group thesis)
Network Operations Centers are used to manage (e.g. configure and monitor) networks, as well as to solve issues (e.g. fault reports) raised by users. The aim of this project is to build a NOC using primarily open-source software, plus some custom components to fill open-source voids. This project will give you insight into how networks are operated, and so possibly enhance your employment prospects. You should have done, or concurrently do, a network management course (e.g. TELE4354). Some suggestions for suitable open-source software includes www.opennms.org for network management, Nagios and mrtg for monitoring, help desk and trouble ticket software. An example of a custom component is a voice-mail-like system (built using a voice modem), through which users can make fault reports when the network is not working in digital (e.g. touch tone) and analog (e.g. voice) forms.

TM49: Software for enhancing computer-aided assessment

(Group thesis)
Computer-aided assessment (e.g. using webCT) has many potential benefits such as thorough analysis of student input and low labour overhead to administer tests. The goal of this project is to develop software to enhance current computer-aided assessment used for courses such as TELE3018 and TELE9301. An important part of the enhancement is to improve the feedback given to students after the test by consolidating the results of their assessment on individual questions to indicate specific areas of knowledge or skills that they, individually, need to develop. (Clearly this can also be applied to data from tests administered mechanically, e.g. pencil-based multiple choice tests.) Other areas for enhancement include creating a database of questions that records results of answers to those questions and can generate a question set with an appropriate degree of difficulty, and in developing free-standing software that allows the test to be administered securely, e.g. behind firewalls.