-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve basic on-device data analysis #87
Comments
After trial and error, I have determined that, in general, to decide whether we need follow-up measurements, we need just the result of four events in the HTTP round trip: - RESOLVE_DONE - CONNECT - HANDSHAKE_DONE - ROUND_TRIP_DONE In some cases it may be possible to run operations inline while in others it's probably best to run concurrently or later. Regardless of the implementation strategy, this diff makes sure that by combining this four events only, we have enough information to conclude whether to trigger more measurements. This conclusion is based on my analysis using ooni/jafar, it may be of course that later we'll need to tweak this a bit. I've been doing refactoring for quite some time to prepare this. Master issue: ooni/probe-engine#87
After trial and error, I have determined that, in general, to decide whether we need follow-up measurements, we need just the result of four events in the HTTP round trip: - RESOLVE_DONE - CONNECT - HANDSHAKE_DONE - ROUND_TRIP_DONE In some cases it may be possible to run operations inline while in others it's probably best to run concurrently or later. Regardless of the implementation strategy, this diff makes sure that by combining this four events only, we have enough information to conclude whether to trigger more measurements. This conclusion is based on my analysis using ooni/jafar, it may be of course that later we'll need to tweak this a bit. I've been doing refactoring for quite some time to prepare this. Master issue: ooni/probe-engine#87
A MeasurementRoot can contain an alternative LookupHost function which may be used to bypass the usual chain. This is also functional to the OONI reactive system. See ooni/probe-engine#87
A MeasurementRoot can contain an alternative LookupHost function which may be used to bypass the usual chain. This is also functional to the OONI reactive system. See ooni/probe-engine#87
Work related to ooni/probe-engine#87
Work related to ooni/probe-engine#87
Work related to ooni/probe-engine#87
Work related to ooni/probe-engine#87
Implement a scoreboard and write there what we see. The follow up action may or may not be required. This is also functional to the OONI reactive system. See ooni/probe-engine#87
Implement a scoreboard and write there what we see. The follow up action may or may not be required. This is also functional to the OONI reactive system. See ooni/probe-engine#87
The scoreboard package will probably benefit from some more precise unit testing with respect to returned keys. Work related to ooni/probe-engine#87
The scoreboard package will probably benefit from some more precise unit testing with respect to returned keys. Work related to ooni/probe-engine#87
Functional to enable follow-up measurements. Xref: ooni/probe-engine#87
Functional to enable follow-up measurements. Xref: ooni/probe-engine#87
I am going to mark this issue as complete. The https://github.com/ooni/netx library is the place where I have implemented the following functionality:
To implement all of this, I needed to deeply refactor the library. I have tagged this issue in a bunch of refactoring PRs that are mostly relevant to it, however, I'd say that all commits since ooni/netx@556048a until ooni/netx@aa7ac63 have been guided by the objective of implementing all the above. On this note, I also wrote a tool https://github.com/ooni/jafar to simulate several kind of censorship and of unreliable networks (for #88) such that I could test whether the code I was writing was correctly measuring specific scenarios and was able to correctly bypass SNI blocking and react to returned bogon address. |
No description provided.
The text was updated successfully, but these errors were encountered: