diff options
author | Nick Mathewson <nickm@torproject.org> | 2023-10-12 12:27:58 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2023-10-12 12:27:58 -0400 |
commit | f7e5a95ee96d8ef52c1732d066c1249a6f84391e (patch) | |
tree | 2e1ddd85f471143518d0df7c7645d066d43bc149 /spec/pt-spec/architecture-overview.md | |
parent | e4e0d93d56ee8c1aec4c2efaa7046b651f0fe55c (diff) | |
download | torspec-f7e5a95ee96d8ef52c1732d066c1249a6f84391e.tar.gz torspec-f7e5a95ee96d8ef52c1732d066c1249a6f84391e.zip |
Convert text specifications to mdbook.
Diffstat (limited to 'spec/pt-spec/architecture-overview.md')
-rw-r--r-- | spec/pt-spec/architecture-overview.md | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/pt-spec/architecture-overview.md b/spec/pt-spec/architecture-overview.md new file mode 100644 index 0000000..44718b2 --- /dev/null +++ b/spec/pt-spec/architecture-overview.md @@ -0,0 +1,37 @@ +<a id="pt-spec.txt-2"></a> +# Architecture Overview + +```text + +------------+ +---------------------------+ + | Client App +-- Local Loopback --+ PT Client (SOCKS Proxy) +--+ + +------------+ +---------------------------+ | + | + Public Internet (Obfuscated/Transformed traffic) ==> | + | + +------------+ +---------------------------+ | + | Server App +-- Local Loopback --+ PT Server (Reverse Proxy) +--+ + +------------+ +---------------------------+ +``` + +On the client's host, the PT Client software exposes a SOCKS proxy +[RFC1928] to the client application, and obfuscates or otherwise +transforms traffic before forwarding it to the server's host. + +On the server's host, the PT Server software exposes a reverse proxy +that accepts connections from PT Clients, and handles reversing the +obfuscation/transformation applied to traffic, before forwarding it +to the actual server software. An optional lightweight protocol +exists to facilitate communicating connection meta-data that would +otherwise be lost such as the source IP address and port +[EXTORPORT]. + +All PT instances are configured by the respective parent process via +a set of standardized environment variables (3.2) that are set at +launch time, and report status information back to the parent via +writing output in a standardized format to stdout (3.3). + +Each invocation of a PT MUST be either a client OR a server. + +All PT client forward proxies MUST support either SOCKS 4 or SOCKS 5, +and SHOULD prefer SOCKS 5 over SOCKS 4. + |