wiki:doc/OONI/CensorshipDetectionTools/NeuBot

NeuBot

General Overview

Implementation overview

Neubot is a python program. It does not use any networking framework and most of the functions are implemented from scratch.

The implementation is highly modular. All the tests are modules that are loosely i

Version

0.4.12

Availability

FLOSS software, released under GPLv3.

Source code available on github: https://github.com/neubot/neubot

Openness

Open Source or Free Software Open Data Open Methodologies
Free software y y

Platform support

Neubot is available for download on

  • MacOS
  • Ubuntu
  • Windows
  • Debian
  • Source (any machine with python)

Data Gathered

99% of the data are collected and published by Measurement Lab, while just 1% of the data is collected directly by the Neubot project published at http://releases.neubot.org/data every night.

Is the data collected made public under a free license?

Yes, Attribution 3.0 Unported (CC BY 3.0).

Is the data format that is used for publication easy to interact with?

Every test run is stored in a flat file with the results stored in json format.

Intended impact

Research on network performance.

Test methodology

The test uses documented and peer reviewed methodologies for testing:

This the list of publications made by the test authors:

Tests performed

The tests are made to neubot test server backends. Periodically the software downloads the master server information on the next test it should perform, including the name of the test, the test server to connect to and other parameters. If updates are available an update is served to the client.

Speed test

The speedtest test uses the HTTP protocol and measures: round trip time, download and upload goodput. It was originally inspired to speedtest.net test, hence the name. The test estimates the round trip time measuring the time required to connect and the average time to request and receive a zero-length resource. It also estimates the download and upload goodput dividing the number of bytes transferred by the time required to transfer them.

Bittorrent test

This emulates the bittorrent protocol and measures round trip time, download and upload goodput.

Since BitTorrent uses small messages, it is not possible to transfer a huge resource and divide the number of transmitted bytes by the time of the transfer. So, the test initially makes many back to back requests to fill the space between the client and the server of many flying responses. The measurement starts only when the requester thinks there are enough responses in flight to approximate a continuous transfer.

Reporting system

The reporting is done over HTTP Post. To create a report the client needs to have token that is given to the client via a negotiation phase.

All of these exchanges are sent unencrypted.

Does this tool offer an anonymous communications channel for submission?

Kind of. No registration is required, but the IP address of the user is stored.

If so, does it offer perspective pivoting?

No

If so, does it offer dynamic confirmation of resources?

No.

What impact or outcome is intended by using the tool or collecting data with this tool?

Strength

  • Very well designed architecture
  • Highly modular and expandable

Weaknesses

  • Limited scope of testing
  • Reporting is unencrypted

Check list

Open Source or Free Software Open Data Open Methodologies Used by users User education Collects sensitive information
GPLv3 Attribution 3.0 Unported (CC BY 3.0) y y y y
Last modified 6 years ago Last modified on Jun 18, 2012, 4:00:16 PM