[tor-bugs] #9022 [Pluggable transport]: Create an XMPP pluggable transport

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jul 4 16:02:50 UTC 2013


#9022: Create an XMPP pluggable transport
---------------------------------+------------------------------------------
 Reporter:  asn                  |          Owner:  feynman 
     Type:  task                 |         Status:  accepted
 Priority:  normal               |      Milestone:          
Component:  Pluggable transport  |        Version:          
 Keywords:                       |         Parent:          
   Points:                       |   Actualpoints:          
---------------------------------+------------------------------------------

Comment(by feynman):

 The good news is I think I found maximum throughput you can send through a
 given JID.

 The bad news is it seems to be 5kb/s.

 The other good news is it seems you can log into that same JID as much as
 you want (use the --num_logins command line argument). So with a few
 thousand logins, it should be possible to run a tor relay over several
 chat servers.

 The other bad news is that you create a couple of threads every time you
 login, and a couple more every time you establish a connection. I looked
 into nonblocking sockets, but that is definitely not an option for
 sleekxmpp (if you don't believe me, look at the __read_xml function in the
 xmlstream.py file).

 Nonblocking sockets might be an option for the client sockets (the ones
 that are not being used to talk to the chat server) but they would still
 require some locking for each write and possibly each read. I was worried
 that the locking would hold up reading/writing to other sockets, and I
 thought it would be safer to got with the blocking+threading technique.

 Let me know if you think the blocking+threading technique is a terrible
 idea, and I will look into nonblocking+select+sequential read/writes.

 Until this proves to not be scalable (or I am told otherwise), I  am
 sticking with the blocking+threading technique.

 The bootup takes around 15 minutes for ~300 connections, so testing the
 program with a large numbers of connections is a very slow process. I am
 working my way to a few thousand connections (which will have to boot up
 overnight), and I will keep this ticket updated with my progress.

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/9022#comment:80>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list