Repository navigation
MTU Path discovery - #3633
MTU Path discovery#3633Wunka wants to merge 50 commits into
Conversation
|
So, a problem we have: |
At the end of the data it probably doesn't matter. Both techniques have performance impacts, and as long as the algorithm guarantees that only a small fraction of the throughput is probes, it shouldn't matter. |
IntegratedQuantum
left a comment
There was a problem hiding this comment.
Haven't reviewed the actual MTU discovery code yet, I'll check it another day
| try windowsError(c.WSAGetLastError()); | ||
| return error.UNKNOWN; | ||
| } | ||
| const setting: c_int = 1; |
There was a problem hiding this comment.
Instead of numbers, coud you maybe use c.TRUE?
| lossyChannel: Channel, // TODO: Actually allow it to be lossy | ||
| secureChannel: SecureChannel, | ||
| slowChannel: Channel, | ||
| slowChannel: ProbeChannel, |
There was a problem hiding this comment.
As mentioned in the call, the slow channel is independent, and instead you should just add a separate check at the callsite of slowChannel.sendNextPacketAndGetSize
Then you also don't need to introduce this wrapper channel, instead you can just add another helping function to the MtuHandler struct (which is where this functionality belongs anyways).
There was a problem hiding this comment.
Oh. I was not yet done with doing everything from the call. That's why this is still there
There was a problem hiding this comment.
Ah, I just saw it on the PR board and thought it was ready
Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
Co-authored-by: IntegratedQuantum <43880493+IntegratedQuantum@users.noreply.github.com>
Closes #819
This has still one big problem:
Changes:
probingState. This + theconnectionStateabout represent the State machine in RFC 8899. The only state missing is the Error state.ProbeChannel. That means it will query on the connectionsprobingStateif it should send a probe and if yes it queries which size it should have and gives theprobingStatetheSequenzIndexof the probe. With this we can then identify when a confirmation is for the probemtuMin. Here we can maybe in the future make better heuristics. But I don't think networking is such a bottleneck that we need that.