have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)
6 messages, 8 Apr 2014. Started by Angel Leon.
Angel Leon (3), Matt Whitlock, Greg Maxwell, Wladimir J. van der Laan
I was wondering if the level of traffic a Bitcoin node gets is or will be so high that you have heard/will hear complains like the following:
1. a home router that crashes or slows down when its NAT pin-hole table overflows, triggered by many TCP connections. 2. a home router that crashes or slows down by UDP traffic 3. a home DSL or cable modem having its send buffer filled up by outgoing data, and the buffer fits seconds worth of bytes. This adds seconds of delay on interactive traffic. For a web site that needs 10 round trips to load this may mean 10s of seconds of delay to load compared to without bittorrent. Skype or other delay sensitive applications would be affected even more.
These are issues the bittorrent community faced and eventually solved brilliantly with uTP, which uses a congestion window algorithm that allows you to use as much of the TCP bandwidth as possible and automatically throttling down if there's any cross traffic, while also taking into consideration things like the optimum MTUs (Path MTU discovery), Clock Drift phenomena and other features.
I was wondering if we have or expect to have these issues in the future, perhaps uTP could help greatly the performance of the entire network at some point.
Detailed information about uTP here http://www.libtorrent.org/utp.html
@gubatron
On Tuesday, 8 April 2014, at 12:13 pm, Angel Leon wrote:
Quoted text (3 lines)
> I was wondering if we have or expect to have these issues in the future, > perhaps uTP could help greatly the performance of the entire network at > some point.
Or people could simply learn to configure their routers correctly. The only time I ever notice that Bitcoind is saturating my upstream link is when I try to transfer a file using SCP from a computer on my home network to a computer out on the Internet somewhere. SCP sets the "maximize throughput" flag in the IP "type of service" field, and my router interprets that as meaning low priority, and so those SCP transfers get stalled behind Bitcoind. But mostly everything else (e.g., email, web browsing, instant messaging, SSH) shows no degration whatsoever regardless of what Bitcoind is doing. The key is to move the packet queue from the cable modem into the router, where intelligent decisions about packet priority and reordering can be enacted.
µTP pretty much reinvents the wheel, and it does so in userspace, where the overhead is greater. There's no need for it if proper QoS is in effect.
only that in the real world most routers suck and people don't even know how to configure them (reminds me of the convo about people not installing plugins) this is why the wheel had to be reinvented for the bittorrent world, and it works.
On Tue, Apr 8, 2014 at 12:30 PM, Matt Whitlock <bip@mattwhitlock•name>wrote:
Quoted text (20 lines)
> On Tuesday, 8 April 2014, at 12:13 pm, Angel Leon wrote: > > I was wondering if we have or expect to have these issues in the future, > > perhaps uTP could help greatly the performance of the entire network at > > some point. > > Or people could simply learn to configure their routers correctly. The > only time I ever notice that Bitcoind is saturating my upstream link is > when I try to transfer a file using SCP from a computer on my home network > to a computer out on the Internet somewhere. SCP sets the "maximize > throughput" flag in the IP "type of service" field, and my router > interprets that as meaning low priority, and so those SCP transfers get > stalled behind Bitcoind. But mostly everything else (e.g., email, web > browsing, instant messaging, SSH) shows no degration whatsoever regardless > of what Bitcoind is doing. The key is to move the packet queue from the > cable modem into the router, where intelligent decisions about packet > priority and reordering can be enacted. > > µTP pretty much reinvents the wheel, and it does so in userspace, where > the overhead is greater. There's no need for it if proper QoS is in effect. >
On Tue, Apr 8, 2014 at 9:13 AM, Angel Leon <gubatron@gmail•com> wrote:
Quoted text (2 lines)
> a home router that crashes or slows down when its NAT pin-hole table > overflows, triggered by many TCP connections.
We don't form or need to form a great many connections.
Quoted text (1 line)
> a home router that crashes or slows down by UDP traffic
We don't use UDP.
Quoted text (8 lines)
> a home DSL or cable modem having its send buffer filled up by outgoing data, > and the buffer fits seconds worth of bytes. This adds seconds of delay on > interactive traffic. For a web site that needs 10 round trips to load this > may mean 10s of seconds of delay to load compared to without bittorrent. > Skype or other delay sensitive applications would be affected even more. > > These are issues the bittorrent community faced and eventually solved > brilliantly with uTP, which uses a congestion window algorithm that allows
Yes, TCP has a congestion window too, still sometimes some poorly designed or configured routers suffer from buffer bloat.
Quoted text (1 line)
> perhaps uTP could help greatly
Adding our own UDP network stack involving a ton of exposed code sounds like a great way to gain inadvertent bugs or backdoors.
But there doesn't have to be and shouldn't just be one network transport for Bitcoin. You can gateway to other protocols and run them in parallel. I think it would be great for someone to go build an alternative transport protocol to gateway to and see what useful things they can accomplish.
On Tue, Apr 8, 2014 at 6:13 PM, Angel Leon <gubatron@gmail•com> wrote:
Quoted text (8 lines)
> I was wondering if the level of traffic a Bitcoin node gets is or will be > so high that you have heard/will hear complains like the following: > > > 1. a home router that crashes or slows down when its NAT pin-hole > table overflows, triggered by many TCP connections. > >
The default maximum amount of connections is 125, which only happens if you have a stable node that accepts incoming connections. The maximum number of outgoing connections is always 8. Should be no problem even for cheapass routers.
Quoted text (11 lines)
> 1. a home router that crashes or slows down by UDP traffic > > N/A - We don't use UDP > 1. a home DSL or cable modem having its send buffer filled up by > outgoing data, and the buffer fits seconds worth of bytes. This adds > seconds of delay on interactive traffic. For a web site that needs 10 round > trips to load this may mean 10s of seconds of delay to load compared to > without bittorrent. Skype or other delay sensitive applications would be > affected even more. > > Filling up the send buffer is certainly possible.
Adding throttling wouldn't be horribly hard, but this is postponed until parallel block download is implemented, so that other peers will not get stuck on your throttled node.
Quoted text (7 lines)
> > 1. > > I was wondering if we have or expect to have these issues in the future, > perhaps uTP could help greatly the performance of the entire network at > some point. >
There is enough lower-hanging fruit left.
If you're interested in speeding up the performance I think it's important to start with benchmarking and analysis to find out where the pain points are.
Wladimir
Those clarifications are what I needed to hear. For some reason I started thinking about this last night and wanted to bring it up just in case it would help, but def. not necessary. Will get back to more low hanging fruit in the UI/UX as I get to know the project more.
Gregory: "But there doesn't have to be and shouldn't just be one network transport for Bitcoin." is there a formal abstraction for a Transport layer? I suppose if there isn't it'll be there when needed.
Thanks!
On Tue, Apr 8, 2014 at 12:48 PM, Wladimir <laanwj@gmail•com> wrote:
Quoted text (51 lines)
> > On Tue, Apr 8, 2014 at 6:13 PM, Angel Leon <gubatron@gmail•com> wrote: > >> I was wondering if the level of traffic a Bitcoin node gets is or will be >> so high that you have heard/will hear complains like the following: >> >> >> 1. a home router that crashes or slows down when its NAT pin-hole >> table overflows, triggered by many TCP connections. >> >> > The default maximum amount of connections is 125, which only happens if > you have a stable node that accepts incoming connections. The maximum > number of outgoing connections is always 8. > Should be no problem even for cheapass routers. > > >> 1. a home router that crashes or slows down by UDP traffic >> >> N/A - We don't use UDP > > >> 1. a home DSL or cable modem having its send buffer filled up by >> outgoing data, and the buffer fits seconds worth of bytes. This adds >> seconds of delay on interactive traffic. For a web site that needs 10 round >> trips to load this may mean 10s of seconds of delay to load compared to >> without bittorrent. Skype or other delay sensitive applications would be >> affected even more. >> >> Filling up the send buffer is certainly possible. > Adding throttling wouldn't be horribly hard, but this is postponed until > parallel block download is implemented, so that other peers will not get > stuck on your throttled node. > >> >> 1. >> >> I was wondering if we have or expect to have these issues in the future, >> perhaps uTP could help greatly the performance of the entire network at >> some point. >> > > There is enough lower-hanging fruit left. > > If you're interested in speeding up the performance I think it's important > to start with benchmarking and analysis to find out where the pain points > are. > > Wladimir > >