Comments (3)
There are multiple limits on the amount of data you can send at any particular point in time. Some are under the sender's control, some the receiver's (flow control). Flow control limits aren't currently exposed directly. They could be, but that information might become out of date immediately. What are you trying to achieve, specifically?
from quinn.
I am creating a VPN between China and USA. but the connection is not stable. I have a relay node in HK. So I created two connections between my China and USA nodes. One direct, another one relay by the HK nodes.
When I send data from USA to China, I want to intelligently pick which connection to use. If one is seriously delayed, I will use another one.
On the receiving side, my node is intelligent enough to drop duplicate data ... etc.
So, my main problem is: How to determine which connection is in relatively bad shape? Which one should I use at the moment?
Thanks.
from quinn.
Hmm, I know I typed up a response to this, but I must have forgotten to send it...
"bad shape" and "not stable" are vague. Are you trying to use the connection with the lowest latency? The highest throughput? The least packet loss? Some weighted combination of those? Most likely you should be looking at PathStats
(via Connection::stats
), rather than anything to do with stream buffer state.
from quinn.
Related Issues (20)
- Create my own AsyncUdpSocket HOT 1
- "SendableFrames was SendableFrames { acks: false, other: true }, but only ACKs have been written" HOT 11
- Black hole detection false-positives HOT 5
- Expose Packet Decoder? HOT 2
- ReadExactError::FinishedEarly byte count is sometimes incorrect HOT 1
- How to receive data in blocking way HOT 3
- Inconsistent documentation on platform availability of `local_ip` HOT 3
- long running bi stream HOT 5
- seems like quinn 0.11 not working well under heavy load HOT 12
- API for awaiting for stream reset on the reader HOT 5
- build fails on Solaris HOT 4
- Rotation of Connection IDs HOT 5
- How to run insecure connection example? HOT 1
- Weird issue when transferring large file HOT 3
- `ACKs are delivered in order` panic when packets are reordered
- Allow a client to specify Initial Connection ID HOT 2
- Bundle flow control and ACK frames opportunistically
- RTT calculation of connection is pretty unreliable when _just_ using the library as is HOT 8
- `SendStream::stopped` suffers excessive delay in terminating with `ZeroRttRejected`
- Dropping `Endpoint` can cause unnecessary "Incoming dropped without passing to..." warnings
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 quinn.