[Codel] better tc support for bittorrent/diffserv
dave taht
dave.taht at gmail.com
Mon May 14 11:51:08 EDT 2012
I spent a little time this weekend thinking about how to make bittorrent
do more of the right thing on a fq_codel equipped edge gateway. I set up
a seeder (transmission-gtk) and watched it go. I was also going to try
hekate on the router itself but couldn't get it to cross build.
Notes:
0) No ecn on transmission, at least. :( Packets not marked as CS1,
either. What are these characteristics on other torrent protocol clients?
1) The port number is consistent, but user-settable. Felix tells me that
the port number varies wildly, however, on other implementations, and
that dpi is required. His current implementation of dpi for torrent is
95% accurate with no false positives but requires connection tracking.
2) Doing fair queuing on traffic that is artificially rate limited by
transmission below the actual egress rate makes bittorrent 'vanish'.
Totally never noticed it running, even though I got as far as seeding
32+ machines downstream. I imagine things get worse with 1000 seeds
running but would like to setup a test... on a legal file that everybody
wants to have. (suggestions for a good seed torrent welcomed)
3) There is a new feature of linux, for containers, that let you run
apps in network containers and set packet priorities based on that.
(priorities in this case is a netfilter-ism, which lets you mark packets
based on which control group a process is in). This new feature holds
great promise to re-mark things like skype, at the source, for example,
and control apps (like torrent) in new ways.
4) Syntactically tc is missing some ip6 functionality, notably an
orthogonal "tos" field to the ipv4 version.
More information about the Codel
mailing list