|
NetPrintsAutomatically Diagnosing Home Network Misconfigurations |
|
The Problem
|
|
Today's home network is typically a collection of several devices and
applications. While the broadband modem acts as the home's window to the
Internet world, there are a variety of different hardware and software
components that interact within people's homes. For example, you may
have a wireless router attached to your broadband modem, with several
laptops and desktops connecting both through wires and wirelessly to the
router. Additionally, you may have special-purpose devices such as gaming
consoles or Wi-Fi media players connected as well. This creates an rich,
diverse and |
| "My Xbox does not connect to the Xbox Live service." |
| "My Xbox 360 doesn't’t work with the wireless network." |
| "My VPN client does not work from home." |
| "My browser takes ages to load any website." |
| "I have set up an FTP server on my machine but it does not work." |
| "My IM client does not work from home." |
|
When a home user runs into such problems, they typically troubleshoot the problem by either asking a friend if they can fix it, by looking online for solutions, or by calling technical support personnel. Very often, this manual process not only takes up a significant amount of time, it also causes immense frustration to the home user. |
|
Our concentration is on fixing application-specific networking problems
like the ones listed above. We believe that advanced systems like Windows
Vista already have diagnostics to resolve basic connectivity problems
such as "Cannot connect to the network", caused by an unplugged network
cable, a powered-off router, or similar issues. On the other hand,
consider problems such as this: your email client works just fine as
does your browser, but your instant messaging client fails to connect
to the network. Such problems are far more subtle and difficult to
resolve and can cause much more frustration to the users than basic
connectivity issues. Hence our emphasis is on the latter set of problems.
|
|
Our Solution in a Nutshell |
|
The objective of the NetPrints project is to alleviate home user
frustration by making the search for the correct configuration parameters
automatic. The main idea of the project is to use shared knowledge
to resolve misconfiguration issues in home networks. Say user A and
user B run the same application and, while it works well for user A,
it doesn't for user B. But say that user A had had the same problem
as user B in the past and had figured out a fix to the problem. User B
should then have access to the fix. Also, if the application has always
worked perfectly for user A, a comparison of A and B's home network
configurations can yield a solution to user B's problems.
|
|
This approach
is akin to how users today scour through online discussion forums looking
for a solution to their problem. However, a key distinction is that the
accumulation, indexing, and retrieval of shared knowledge in NetPrints
happens automatically, with little human involvement.
|
|
System Architecture |
|
|
An overview diagram showing the main components of the system.
|
|
NetPrints comprises client and server components. The
client component gathers configuration information from
the client host and from network devices such as the home
router. In addition, it captures a trace of
the network traffic associated with an application run and
extracts a set of features that characterize the corresponding
network communication. The client component then
uploads its local configuration information along with the
network traffic features to the server. In addition, in the
case of a failed application run, the user clicks a diagnose
button to invoke NetPrints diagnostics (this is the only
human input needed in NetPrints). This also signals to the
server that the configuration information and network traffic
features just uploaded correspond to an unsuccessful run of
the application. We term the combination of configuration
information, network traffic features, and the indication
of whether or not an application run was successful an
anecdote.
|
|
|
An example decision tree capturing good and bad configurations that affect Xbox Live connections.
|
|
The server gathers such anecdotes from clients and constructs a
decision tree (using a machine learning algorithm) for every
application to represent the knowledge of good and bad configurations. The
figure above shows an example decision tree that we obtained specific to
the Xbox 360 using three home routers. The tree informs us that whenever
UPNP is disabled on the router, or when the WAN MTU parameter is set
lower than 1300, or when the wireless authentication protocol is set
to WPA2, the configuration of the home network is "bad". In other words,
the Xbox console will not be able to connect to the Xbox Live service.
|
|
The server also uses a decision tree algorithm to identify the network
traffic features that are important, thereby generating a network
signature for each application. In addition, the server maintains a
suggestion table where, indexed by the network signature, it stores
a potential set of configuration fixes that other clients have previously
reported as their solution to a similar problem. The suggestion table
provides hints to solve the problem, which are particularly useful in
solving problems that are relatively less common since, in such cases,
the decision tree learning algorithm may not capture enough information
to resolve the issue.
|
|
When the server is presented with a client request
triggered by a user invoking "help", it walks down the
decision tree that codifies its knowledge and it identifies
configuration changes that might help resolve the problem
using a procedure we call configuration mutation. If the decision
tree traversal does not yield a suitable fix, the server
looks up the suggestion table for any isolated configuration
changes that might solve the problem. If both the tree
traversal and the suggestion table lookup fail in generating
a configuration fix, NetPrints infers that the problem is not
related to the client's home network configuration.
|
|
Current Status |
|
NetPrints is currently a research project and we are evaluating
its efficiency in the lab using our testbeds. Our results so far are
very promising, and we hope to show that such a service will provide huge
value to a typical home user by helping them fix problems with their
home networks.
|
|
Related work |
|
People |
|
The people who are contributing to the NetPrints project are:
Bhavish Aggarwal, an intern from IIT Mumbai. Ranjita Bhagwan, a researcher in the MNS group, Microsoft Research India. Venkat Padmanabhan, research manager of the MNS group, Microsoft Research India. Geoff Voelker, professor at UCSD, who visited MSRI from Sep 2007 to Feb 2008. |