orignal
zzz for how long do you wait missing packets before you start including then in Ack in SSU2?
zzz
orignal, making sure I understand =
zzz
how long do I wait before sending an ack?
orignal
no
orignal
say I receive 1,2,4,5
orignal
for how long I wait for 3 before I start sending Ack without ranges and with acnt=4
zzz
for me:
zzz
I don't care if any or missing or not
zzz
after receiving the first packet, I wait:
zzz
rtt / 6, minimum 10, maximum 150 ms
zzz
then send the ack
zzz
maybe with nacks, maybe not
zzz
I don't ever change and send 'ack without ranges' until I get 3
zzz
if 3 is gone, it's gone forever
zzz
if you decide 3 is "too old" then ack 5-4, but don't "lie" and ack 5-1
orignal
fine
orignal
but when you start sensing 5-4 without ranges
orignal
?
zzz
I don't. I keep it simple. I don't "remember" when I got a packet
orignal
and what's wrong if I lie that I have received 3 say after 10 seconds
orignal
bascially my problem is
orignal
guys comlain that I send too much ranges
orignal
and it's execcive CPU usage
zzz
but if 10 seconds is long enough for 3, it's long enough for 2 and 1 also
zzz
how many ranges do you send?
orignal
up to 32
zzz
that's fine, but do you have a max total from beginning to end?
orignal
say before 10 second I send 1 range, after 10 secnds I send without range
orignal
like I have receied 3
zzz
I mean total size of bitfield. Could you send ACK 255 nack 1 ack 255 nack 1 ack 255 nack 1 ... 32 ranges total?
zzz
which would be 32 * 256 = 8K size?
orignal
I mean 32 ranges
orignal
e.g. 64 bytes
zzz
right
zzz
but what's the max size of your bitfield (unencoded), from first bit to last bit, before you encode it into ranges?
orignal
this problem is that I go through list of out-of -sequence packets too frequeitly
zzz
how many packets do you remember?
orignal
I don't use bitfields
orignal
up to 1024
orignal
not packets just numbers
orignal
and I remeber on out-of-sequence
orignal
so I think it's worth to delete it by time
zzz
ok so your total size, adding up all the acks and nacks, is less than 1024?
orignal
my total size never exeeeds 64 bytes
orignal
number of packets can be more
zzz
I don't think I'm explaining it right
zzz
when you send ack ranges, you're acking and nacking a number of packets
orignal
I can easily send all ranges with 0 nacks
orignal
e.g. uop to 32*255
zzz
the number of packets is 1 + (total of all acks and nacks in all ranges)
orignal
512 total?
orignal
yes but even 512 might produce bunch of ranges
zzz
sure
zzz
actually, I "shift" 128 at a time, so I only remember between 384 and 512 total, yes
zzz
but anything more than 512 is way too old
zzz
if you're "remembering" 32K, that's an easy fix, reduce to 512
orignal
my approach is different
orignal
I don't remeber in sequence packets
orignal
I remeber only out of sequence
orignal
not packet but numbers
zzz
yeah but if you send me more than 512 acks+nacks, I don't care, it's a waste, I already "forgot"
zzz
so just stop when you get to 512
zzz
ack 255 nack 0 ack 255 nack 0 -> stop, no more ranges needed
orignal
good idea
orignal
will do
orignal
so 512. right?
orignal
good point anyway
zzz
after that, I don't care, don't send more ranges to me )))
zzz
yes. 512 is what I have now. Even that _may_ be too much, but that's what I have right now
orignal
and I can delete all out of sequence beyond 512 I guess
zzz
correct
orignal
that's what I wanted to know
orignal
it improves a lot
zzz
great. try that before you do anything more complicated :)
orignal
CreateAckBlock consume 20% of SSU2 thread now
orignal
Vort has measured
zzz
whoa
zzz
Vort doing good work over there ))