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
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.