Research | News
Free Tool Pinpoints Errors in the Most Complex Networked Applications
- By Dian Schaffhauser
Application failures from network issues are tough to identify and fix since the problems could be due to something that's invisible to the application, such as those that happen as a result of network address translation or firewall devices or those that surface from some outside source such as an end host. Plenty of tools have been developed to help diagnose application failures, but few of those work on really complex applications such as Firefox or Skype. A team of researchers from three institutions have developed a tool to address this gap.
NetCheck, recently introduced in a paper presented at the USENIX Symposium on Networked Systems Design and Implementation, treats an application as a "blackbox" and requires only a single input, system call invocation traces from end-hosts, reported the researchers. Those syscalls are "easily collected," according to the research paper. To do its diagnosis, NetCheck performs a simulation to help identify those syscalls that deviate from expected network semantics as laid out against a network model. Those deviations are mapped to a diagnosis using a set of heuristics.
The tool is so good, it identified 95 percent of the failures reported in 30 popular open-source projects by bug trackers, people from outside of the organization who uncover and report bugs. When applied to injected faults in a testbed, NetCheck identified the primary causes 90 percent of the time. To identify the issues that cause failures, the tool relies on modeling and simulating networking behaviors.
The work is a project of researchers from the School of Engineering at the Polytechnic Institute of New York University, University of British Columbia and University of Washington.
They intended the output generated by NetCheck to be used by application developers and network administrators. The tool generates high-level diagnostic information ("an MTU issue on a flow is the likely cause of loss"), which would be useful to network admins. And the tool produces "low-level" information about the sequence of systems calls that triggered the high-level diagnosis. That level of detail can help developers "locate the underlying issue in the application code."
"Most applications are designed to function in an ideal network environment, but that's never the case in the real world," said Justin Cappos, an assistant professor at NYU-Poly. That's a shortcoming of current diagnostics, he noted. "NetCheck builds a simulated environment that allows programmers to see how applications perform amid unexpected network behaviors and configurations, and to address the errors that inevitably surface."
The research team has released NetCheck under an open source license, making it freely available.
The project was supported by the National Science Foundation and the NYU Wireless research center and Center for Advanced Technology in Telecommunications.