9ffa124511
* upgrade to our go.mod enabled of psiphon-tunnel-core such that we're now using v2.0.24 of the tunnel-core; * upgrade to the latest lucas-clemente/quic-go release; * upgrade to the latest ooni/oohttp release (which is based on go1.19 but the diff seems good enough to continue using go1.18.x as well); * upgrade to the latest ooni/oocrypto release (for which we can make the same remarks regarding using go1.18.x); * deal with changes in lucas-clemente/quic-go API as well as changes in what a go1.19 *tls.Conn compatible type should look like. Unfortunately, we cannot switch to go1.19 because psiphon forks quic-go and their fork's still not building using such a version of go. Part of ooni/probe#2211. |
||
---|---|---|
.. | ||
chapter01 | ||
chapter02 | ||
chapter03 | ||
chapter04 | ||
chapter05 | ||
chapter06 | ||
chapter07 | ||
chapter08 | ||
README.md |
Tutorial: using the netxlite networking library
Netxlite is the underlying networking library we use in OONI. In most cases, network experiments do not use netxlite directly, rather they use abstractions built on top of netxlite (e.g., measurex). Though, you need to know about netxlite if you need to modify these abstractions.
For this reason, this chapter shows the basic netxlite primitives that we use when writing higher-level measurement primitives.
We will start from simple primitives and we will combine them together to reach to the point where we can perform GET requests to websites using already existing TLS or QUIC connections. (The code we will end up writing will look like a stripped down version of the measurex library, for which there is a separate tutorial.)
Index:
-
chapter01 shows how to establish TCP connections;
-
chapter02 covers TLS handshakes;
-
chapter03 discusses TLS parroting;
-
chapter04 shows how to establish QUIC sessions;
-
chapter05 is about the "system" DNS resolver;
-
chapter06 discusses custom DNS-over-UDP resolvers;
-
chapter07 shows how to perform an HTTP GET using an already existing TLS connection to a website;
-
chapter08 is like chapter07 but for QUIC.