-
Notifications
You must be signed in to change notification settings - Fork 867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IPE: ACK node overwritten message (impact unknown) #253
Comments
Further study states that:
Research result: minor problem, rather annoying, but it's a developer-uncomfortable situation of an unknown source of problems, even if they are minor. Recommended: Use some general class of a ring buffer and implement CACKWindow class anew on that base. Important is a possibility to track the running size of the ACK window. |
There should be determined the reason why this node overriding happens. If this isn't anything that influences the overall processing, then the log contents should be changed. |
Message can be seen when netem is applied:
SRT default settings with 100 ms latency over a local switch Note. Delete netem config
|
When deleting, only the parameters up to |
I am also experiencing the same problem with v.1.4.1. I think this is connected when you have higher jitter. |
Well, got these message too. Pretty constant by using OpenMPTCP link bonding while MLVPN is selected as VPN for ICMP and UDP packet stream. However, only as soon as the upload bandwidth of one link is completely exhausted by increasing the stream bitrate > eth1 max-upload size, therefore the router has to add a second link (eth2) to the bitstream. This event seems to relate/lead to the message "IPE: ACK node overwritten when acknowledging". From this point, a lot of these messages appear, even though the SRT stream runs smoothly and without visible disturbance. Once the bitrate drops below the maximum upload value of a single uplink gateway the messages disappear. Let me know if I can provide further information since the test-setup is probably kinda unusual. |
Hello, |
I've also seen excessive retransmissions on networks with high jitter / reordering even for packets within their TTL window. This patch took care of it, but it's probably a bit heavy handed. NAKs are still sent through other code paths for packets which are actually lost / late. |
There are two possible reasons for the "ACK node overwritten" error message:
int32_t ack = 0;
const int rtt = m_ACKWindow.acknowledge(ctrlpkt.getAckSeqNo(), ack);
if (rtt <= 0)
{
LOGC(inlog.Error,
log << CONID() << "IPE: ACK node overwritten when acknowledging " << ctrlpkt.getAckSeqNo()
<< " (ack extracted: " << ack << ")");
break;
} TODO
|
@rationalsa You are disabling periodic NAK reports, which could also be done using the SRTO_NAKREPORT socket option. To reduce the overhead of retransmissions, please enable a more clever retransmission algorithm using |
@maxsharabayko
Jitter and packet loss are set up on both ends. In case 8 which is the reproduction from here, I only see dropped packets. However, it's expected behavior due to high jitter and not enough latency which doesn't take the jitter into account. Should be at least 120.
Commands
Next steps:
|
This comment has been minimized.
This comment has been minimized.
@mbakholdina Just adding some jitter with |
Hi @rationalsa, I confirm the reproduction with the use of I setup
Commands
Important |
Thanks for the investigation! Now the reason is clear. The class E.g., ACKACK no. 10 arrives on the receiver, ACK records 1-10 are removed. TODO
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Status UpdateSRT v1.4.3 will preserve the current behavior of ignoring out-of-order ACKACK packets. To be improved in further versions. Meanwhile ,logs have been changed in PR #1876.
Error log will be shown if:
Please feel free to check the behavior with the latest master and provide your feedback. |
Is it possible that this problem creates a desync between audio and video? |
Not really. The issue mainly affects RTT estimations. |
There's a message appeared in one of tests:
Impact unknown, although this is qualified as IPE, so it shouldn't happen. This was during tests against 1.1.3 version (Makito) and it might come from the other side. Need to make sure that this kind of problem is never CAUSED by the 1.3 version client.
The text was updated successfully, but these errors were encountered: