Comments (6)
I conducted the same test on the updated version and noticed much better performance. I did not encounter any lost connections in tests with both high loss and latency. It looks so far like all issues have been fixed.
from aioquic.
This is now fixed!
from aioquic.
I was testing this implementation within two containers talking to each other on a docker network. I was simulating various stressful network conditions using the linux trafic control tool and found that the client and server connection hangs up and stops transmitting packages when there is relatively little (10%) loss on the network. I'm not sure the cause of this issue, but I will investigate further and try to provide more details.
from aioquic.
Does the transfer stall after receiving some data or no data at all? Currently retransmissions should be working well for the 1-RTT epoch ("application data"), however the earlier phases (INITIAL + HANDSHAKE) are currently missing retransmissions, so it's possible for the connection to stall at the very beginning.
I have created issue #9 to track this, let's continue the discussion there
from aioquic.
It stalls after a successful handshake and receiving some data. The test sends encoded images over multiple streams so the stress and loss conditions may just overwhelm the simulated docker network. I will do more tests and try to determine the cause.
from aioquic.
OK I found and fixed some logic errors, re-transmission of app data should work reliably. There is a unit test which exercises this with a 25% packet loss here:
aioquic/tests/test_connection.py
Line 875 in e94acbd
Re-transmission of initial / handshake packets is starting to work, but it's not finished yet.
Neertheless could you try again and let me know if you see an improvement?
from aioquic.
Related Issues (20)
- aioquic 0.9.22 dosent have your latest code changes and commits HOT 1
- HTTP/3 Datagram terminology is out of sync with RFC9297 HOT 7
- HTTP3 upload too slow HOT 2
- pip install -e . error HOT 1
- FINs are swallowed if data is fully ACKed
- How to use QUIC in video streaming?
- Do not leave stray file after test_packet.py is run HOT 1
- Any async delay operation while an aioquic.client object exists makes it silently fail HOT 8
- Improve `asyncio` layer docs regarding `transmit()`
- `QuicStreamAdapter` should implement more methods of `BaseTransport` HOT 2
- What's the expected behavior if the server restarts and receives living client's frame? HOT 1
- only support IPv6 socket? HOT 1
- Which versions are supported by aioquic?
- HTTP/3 headers need further validation HOT 1
- Idle timeout should be a small value between local idle timeout and remote max idle timeout from transport parameters HOT 1
- Providing callable to create_protocol results in AttributeError HOT 2
- server unable to decrpt ACK packet
- Add HTTP/2 Alt-Svc feature to HTTP3 Server/Client examples HOT 6
- Specifying cafile loads the CA file in addition to certifi and not instead of certifi HOT 4
- Support SO_REUSEPORT HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aioquic.