have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)

have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes)
2014-04-08 16:30 ` Matt Whitlock
                   ` (2 more replies)
  
From: Angel Leon @ 2014-04-08 16:13 UTC (permalink / raw)
  To: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1356 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 2124 bytes --]

 permalink raw reply	[|nested]
2014-04-08 16:30 ` 
                   ` 
  
From: Angel Leon @ 2014-04-08 16:13 UTC (permalink / raw)
  To: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1356 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 2124 bytes --]

 permalink raw reply	[|nested]
2014-04-08 16:30 ` Matt Whitlock

  
From: Angel Leon @ 2014-04-08 16:36 UTC (permalink / raw)
  To: Matt Whitlock;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1539 bytes --]

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.

http://twitter.com/gubatron


On Tue, Apr 8, 2014 at 12:30 PM, Matt Whitlock <bip@mattwhitlock•name>wrote:

> 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.
>

[-- Attachment #2: Type: text/html, Size: 1978 bytes --]

 permalink raw reply	[|nested]
2014-04-08 16:13 [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes) Angel Leon
  2014-04-08 16:30 ` Matt Whitlock

  2014-04-08 16:48 ` Wladimir
  
From: Gregory Maxwell @ 2014-04-08 16:44 UTC (permalink / raw)
  To: Angel Leon;  Bitcoin Dev

On Tue, Apr 8, 2014 at 9:13 AM, Angel Leon <gubatron@gmail•com> wrote:
> 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.

> a home router that crashes or slows down by UDP traffic

We don't use UDP.

> 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.

> 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.



 permalink raw reply	[|nested]
2014-04-08 16:13 [Bitcoin-development] have there been complains about network congestion? (router crashes, slow internet when running Bitcoin nodes) Angel Leon
  2014-04-08 16:30 ` Matt Whitlock
  2014-04-08 16:44 ` Gregory Maxwell

  2014-04-08 17:33   ` Angel Leon
  
From: Wladimir @ 2014-04-08 16:48 UTC (permalink / raw)
  To: Angel Leon;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1704 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 3407 bytes --]

 permalink raw reply	[|nested]
2014-04-08 16:48 ` Wladimir

  
From: Angel Leon @ 2014-04-08 17:33 UTC (permalink / raw)
  To: Wladimir;  Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 2355 bytes --]

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!

http://twitter.com/gubatron


On Tue, Apr 8, 2014 at 12:48 PM, Wladimir <laanwj@gmail•com> wrote:

>
> 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
>
>

[-- Attachment #2: Type: text/html, Size: 4798 bytes --]

 permalink raw reply	[|nested]