I understand that Tor cells are 512 bytes each, and that they are encrypted by TLS, and that they pass through a TCP connection from the client through Tor to the server.

But how do packets work one level above that? Let's say Tor Browser (Firefox) makes an HTTP GET request to stackexchange.com. How does it go from this HTTP request to individual Tor cells?

Is the request simply broken down into these cells or does something more complex occur?

Moreover, who initiates the multiple TCP connections through the Tor network?

Thanks guys,

Steve

I understand that Tor cells are 512 bytes each, and that they are encrypted by TLS, and that they pass through a TCP connection from the client through Tor to the server.

That's not quite accurate, Tor cells travel over a TLS tunnel created between client and the entry guard or bridge and between relays through TLS tunnels built between them but the cell content is also encrypted using AES.

See this answer for more details.

Is the request simply broken down into these cells or does something more complex occur?

No that's pretty much the gist of it, there is overhead on the cells (information about the cell itself so that it can be properly routed) so it's not a full 512 bytes of data in each cell (and not all cells carry user data, there are various types of cells used for various activities).

Tor only cares about the stream data, so the data that you feed into Tor is split up into cells and sent across the network and the same stream data is sent on to your destination at the other side and inversely, data from the destination is sent back and comes back out at the other side.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.