Why Fathom?
The browser's ubiquity, combined with the
diversity of applications it hosts, makes it
the ideal target for a wide range of network
measurement and troubleshooting tasks.
However, it's currently way too hard to
conduct truly generic network-level I/O from
within a web page. Today, the only real
option for building web-driven network
experiments that require truly flexible
network I/O capabilities consists of Java
applets. (For example, that's how we built
the ICSI
Netalyzr.) However, the use of Java
suffers from multiple shortcomings.
First of all, its networking capabilities
remain largely decoupled from the
browser. However, for the user real-world
connectivity problems manifest in crippled
page rendering, which is difficult to capture
accurately and portably in Java. Second, the
applet security policy limits the runtime's
capabilities, precluding e.g. pings and
traceroutes, as well as access to host-local
information about network properties such as
wireless signal strength. Finally, its
availability is becoming increasingly
unpredictable as virtually no normal websites
employ Java.
We believe the complexity and richness of
today's Internet applications requires a fresh
look at realizing browser-based network
measurement. Accordingly, Fathom allows you
to conduct measurements from right inside
the page, accessing the DOM as you
normally would, while at the same time
providing a wide array of network-related
APIs.
How can I get Fathom?
We currently provide Fathom in form of a
Firefox extension. To explore the platform,
just download it into your browser. One of
the cool things about Fathom is that we
figured out a way to realize it entirely as a
JavaScript-only Firefox extension, so it
remains open-source by definition.
Who's behind Fathom?
We are researchers with a strong history in
network monitoring and browser architecture. Our team:
Mohan Dhawan,
Justin Samuel,
Renata Teixeira,
Christian Kreibich,
Nick Weaver,
Mark Allman, and
Vern Paxson.
|