namehelp, version 1.0 release
AquaLab Research Group, Northwestern University
http://aqualab.cs.northwestern.edu/projects/namehelp.html



Please contact us with any concerns, problems, or feedback for namehelp:
http://aqualab.cs.northwestern.edu/contact.html



What is namehelp?

namehelp improves web performance by obtaining more accurate redirections to
nearby content delivery network servers.

To distribute content, most popular websites use content delivery networks
(CDNs), which operate servers in many locations. CDNs redirect users to a
nearby server, yielding a low latency connection to maximize performance.

Most CDNs use DNS-based redirection to choose a nearby server -- the CDN
chooses a server near to the DNS server. For some users, their DNS server is
located far away. This could result in being redirected to a far-away CDN
server, even though a closer one might be available. This scenario is most
common for users of public DNS services or in large ISPs with centralized DNS
servers.



System requirements:

- Python 2.X (http://www.python.org/download/)

- PyGTK 2.X (http://www.pygtk.org/downloads.html)
  (for Windows and Linux -- not Mac)



Configuration instructions:

1) Configure 127.0.0.1 as your primary DNS server through your OS
2) Run namehelp
   - On Linux or Mac, run in a terminal: sudo python namehelp_main.py
   - On Windows, open a terminal as admin, and run: python namehelp_main.py



Additional notes:

namehelp requires administrator privileges to communicate on the
privileged ports for DNS (53) and DHCP (67, 68).

A configuration file will be created the first time you start namehelp:
namehelp.cfg

Warnings and errors are logged to namehelp_log*, so you can check in these
files if you have trouble.

To ensure privacy, communication with namehelp servers uses secure HTTPS
connections, and no personally-identifiable information is transmitted.



Many thanks go to the projects and libraries used to build this tool:
- namebench (http://code.google.com/p/namebench/)
- BeautifulSoup (http://www.crummy.com/software/BeautifulSoup/)
- Crystal Clear (http://openiconlibrary.sourceforge.net/downloads.html)
- dnspython (http://www.dnspython.org/)
- graphy (http://code.google.com/p/graphy/)
- httplib2 (http://code.google.com/p/httplib2/)
- jinja (http://jinja.pocoo.org/)
- ntplib (http://pypi.python.org/pypi/ntplib/)
- pyasn1 (http://pyasn1.sourceforge.net/)
- pydhcplib (http://pydhcplib.tuxfamily.org/pmwiki/)
- Python-RSA (http://stuvel.eu/rsa)

