Opened 4 years ago

Last modified 16 months ago

#13978 new task

Get tor working with ns-3

Reported by: teor Owned by:
Priority: Medium Milestone: Tor: very long term
Component: Core Tor/Tor Version: Tor: unspecified
Severity: Normal Keywords: tor lorax
Cc: yawning Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


We could use ns-3's direct code environment (DCE) or perhaps their sim kernel to run tor.

[14:29] <Yawning> (you know what would be a neat gsoc project?  figuring out how to get Tor to play nice with ns-3)
[14:31] <Yawning> (yes, we have shadow, but ns-2/ns-3 is the standard for certain kinds of research)
[14:33] <teor> Yawning: re ns-3, that would be porting tor to the Direct Code Execution environment?
[14:34] <Yawning> teor: yah, or looking at it
[14:34] <Yawning> ideally running a full test network
[14:34] <teor> Do we know how large the gap is?
[14:35] <Yawning> no idea
[14:35] <Yawning> last time I was doing this sort fo work, it was called ns-2
[14:35] <Yawning> :P
[14:38] <Yawning> teor: I was really suprised that they wrote shadow instead of extendign ns, but I never asked why they did that
[14:38] <teor> they?
[14:39] <Yawning> them tor folks
[14:39] <Yawning> :P
[14:39] <teor> It looks like we'd have to avoid clock_gettime in ns, and might have to be really careful around threads and processes
[14:40] <Yawning> yah, it's not something I'd expect to be easy
[14:40] <teor> According to
[14:40] <Yawning> but it'd be really strong for stuff likelooking at kist
[14:41] <teor> And we might be missing some important APIs
[14:41] <teor> s/we/DCE/
[14:42] <Yawning> hey, that's why I said it was a gsoc project :P
[14:42] <Yawning> for a really really enthusiastic student
[14:42] <dgoulet> hrm ns-3 is an offline simulator and by that I mean it does not use the OS network stack for experiment, not sure if that would reflect correctly reality
[14:43] <teor> The kernel can be used, see
[14:43] <teor> Well, kernel sources
[14:44] <Yawning> teor: that's new-ish
[14:44] <Yawning> but yeah
[14:44] <dgoulet> ouf work++ to make it work with the kernel eheh
[14:45] <Yawning> dgoulet:all the researchers do their modeling with ns and then write the kernel patches :P
[14:45] <dgoulet> reserach and kernel patch in the same sentence! wow :P :P
[14:46] <Yawning> yah well the tcp research community is filled with interesting people >.>
[14:46] <dgoulet> Yawning: I guess if you want to implement some new nice TCP congestion algorithm in kernel, that makes sense but testing userspace app on top of that, does that work well?
[14:46] <teor> Well, I know what I need to do next, and it's not this :-)
[14:46] <Yawning> for something like what we want to do in certain cases?
[14:47] <Yawning> I'd want a lot of the tooling or something similar >.>
[14:47] <Yawning> but yeah, ENOTIME
[14:47] <Yawning> and maybe shadow does all of what I want
[14:47] <dgoulet> right for sure a nice big network simulation would be awesome
[14:48] <teor> Yawning: ENOMEM as well, sometimes
[14:48] <Yawning> if for say we wanted to move to sctp or a udp transport, we'd need simulation capabilities like this
[14:48] <dgoulet> indeed
[14:49] <Yawning> (and it's the sort of tool that people that cound do "how to make tor faster" would be faimilar with)
[14:49] <Yawning> just an idle thought, if I find a younger version of myself with more time on their hands than I have, I'll suggest it to them :P

Child Tickets

Change History (2)

comment:1 Changed 4 years ago by teor

Component: PoniesTor

I actually want this to come up in the Tor list. But it's still Yawning's pony Yawning's idea.

Last edited 4 years ago by teor (previous) (diff)

comment:2 Changed 16 months ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

Note: See TracTickets for help on using tickets.