@eyedeekay
+R4SAS
+RN
+ReturningNovice
+StormyCloud
+T3s|4
+Xeha
+acetone
+orignal
Irc2PGuest75631
T3s|4_
aargh4
calamares
marek22k
mareki2p
n2_
not_bob_afk
profetikla
qend-irc2p
x74a6
zzz
what does "high performance" mean if it's different from bandwidth?
R4SAS
Happy new year, guys!
orignal
bandwidth means your network is wide
orignal
performance means your device is powerfull
orignal
say RPi can sit on high bandwidth but low performance
orignal
the idea of this flag tell that high preformance router is capable enough to handle serious load
orignal
in this case high loaded tunnels should be built through such high performance routers
zzz
good morning and happy new year
zzz
how would we measure "performance" and what would the threshold be for "high"?
orignal
you too
orignal
in first attempt it's simple
orignal
on x64
orignal
or you specify it explicitly
orignal
basically my problem is that "X" is not always "X"
orignal
e.g. "X" routers drop packets
orignal
also I think it would be nice to have one more code "Q"
orignal
like "up to 100 Mbs"
zzz
thing is
zzz
I don't think we can ever trust caps and use it to send that router lots of tunnels
zzz
sounds insecure
zzz
have to do it with profiling
orignal
my point is opposite
orignal
if you don't want your router get flooded don't set it as "high performance"
orignal
if you believe you are capable to do it, set it
orignal
if you are on arm it's always off
zzz
so then we need a "low performance" flag
orignal
a meesage to ddoser ))
orignal
X was good as "high performance"
orignal
until now
orignal
Ilita transfers 100 Mbs now but publishes X
orignal
limited by port there
zzz
we don't do anything with any of the caps really
zzz
we don't trust any of it
zzz
so not much use for Q
dr|z3d
what orignal appears to be referring to is what we have already in java. isSlow()
orignal
my point is that X is not really unlimited
dr|z3d
I'd suggest that the router itself should determine its performance level, not other routers.
orignal
how do you know is your peer is slow?
orignal
yes, that's my proposel
dr|z3d
you don't. you limit your own router.
orignal
to let router tell other if it's powerfull enough
dr|z3d
if a router is configured as isSlow() then it handles less tunnel requests, throttles sooner etc.
orignal
basically I would like to build high loaded tunnels trough high perfarmance routers
orignal
yes, and it should be use for expolratory or IRC only
dr|z3d
just keep an eye on the cpu load on the router, and start declining requests when it gets too high. don't need an explicit cap for that.
orignal
the worst thig is
orignal
a routers accepts a tunnel
orignal
and then start dropping messages
orignal
I prefer to know if a router I'm building a tunnl trough is capable enough
orignal
before I send build request
dr|z3d
sure, not great. so the router itself should be aware of the percentage of messages it's dropping, and if necessary self-throttle.
zzz
problem is, a cap doesn't help you know if that router has capacity for one more tunnel *right now*
orignal
I don't care if a router set code 30
orignal
I care if it starts dropping
dr|z3d
that's why I don't think a cap is the best idea. you want the router itself to be aware of what its limits are.
zzz
I could be medium capacity but have no load now
zzz
I could be high capacity but under extreme load now
orignal
the problem is that profiling finds a rouuter good on 100 Kbs
orignal
and it's out of limites on 1 Mbs
dr|z3d
publishing a high perf cap would just be an invitation to route traffic to high perf routers, and then they're overloaded.
orignal
dr|z3d yes and our routers are fine with it
orignal
R4SAS has 150 Mbs on his dedic for example
orignal
and can handle much more
orignal
and you don't need high performance routers for IRC tunnels
zzz
maybe F = medium loaded, don't use me so much; G = highly loaded, Go away
dr|z3d
I don't think this is going to be resolved by publishing a high perf cap. It's going to be solved by the router itself setting limits based on current performance.
dr|z3d
yeah, and I was seeing 42MB/s on a router before we started blocking offenders.
dr|z3d
doesn't much matter what router you use for irc, it's not going to be demanding much of the router.
dr|z3d
except not F.
dr|z3d
f is floodfill, so we don't want F. just confuses things.
dr|z3d
not even sure we need to publish anything. I still think the router itself should accept or reject requests based on self-profiling metrics.
zzz
D=Delayed (medium congestion) E=Empty(high congestion)
orignal
yes good point
orignal
masyb even separate optional property?
zzz
you could do capacity=75%, or tunnelsAvailable=123, or bwAvailable=3MBps, but I'm not sure what other routers would do with that
zzz
how does that minutes or hours old info help you decide whether to route 1 tunnel through him?
orignal
if it's one hour old
orignal
it might be right after connection
dr|z3d
no one's telling me why more self-awareness for routers isn't the best solution to this perceived problem.
dr|z3d
I don't need to tell you what I think my current capacity to host your tunnels is, I just don't host them if I'm under load.
dr|z3d
router to router, I might classify my tunnel requests as high bandwidth, or low latency, or perhaps both, with some requirements, and your router can accept or deny requests based on current performance. there was a paper published a while back that suggested difference classes of tunnels.
dr|z3d
the problem with setting performance thresholds for tunnels is that very soon everyone wants the fastest, lowest latency tunnels and all the network traffic gets funneled to a subset of routers.
orignal
hmm
dr|z3d
one thing you can do off the bat, orignal, is reduce the default max transit tunnels for arm/32bit and whatever else you deem to be slow.
orignal
for me number of trsit tunnels is not an issue
orignal
only traffic
dr|z3d
orignal: I use the isSlow() category to limit transit tunnels, max bandwidth share, min transit tunnels before throttle etc. combined, they should collectively serve to keep underpowered routers from handling more traffic than they're capable of, unless a user overrides the defaults.