-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Increasing network packet size #3155
Comments
could you reference those here? |
It was mostly: libp2p/go-libp2p-secio@fa92b06 I think there was something more but it is deep in dependency tree. @whyrusleeping might remember more. |
These multistream changes were pretty significant: multiformats/go-multistream@d78b705 As well as the changes in bitswap and the dht that allow us to reuse streams to peers for multiple messages (avoiding the extra stream multiplexer framing for each message) |
0.4.4-dev as for August 30: One can see that 4 bytes packets were removed but there are a lot of 48 byte packets. Can we try tracking it down? Secio is 36 bytes, is something bellow secio wrapping the data? |
48 byte packets are dht provider rpcs |
Are DHT RPC calls just 12 bytes or did I do my math wrong about secio (SHA2 32bytes, length 4 bytes)? |
I think I found it: the 12 bytes frames we see are yamux frames: https://github.com/hashicorp/yamux/blob/master/spec.md . They are used for creation destruction of streams. We already worked on decreasing their overhead by reusing DHT RPC streams (which are currently probably the main source of new yamux streams), but this change requires both sides to to support it, it was introduced in 0.4.3-rc1 and after official 0.4.3 release we might be seeing reduced number of 12 bytes frames. |
This would be useful to do with a tool that can inspect what the data is We could have a mode of --disable-transport-encryption that keeps secio
|
I still think a writer wrapping the manet.Conn that delays writes for up to
|
I was investigating dumping not encrypted frames to the pcap format. So we can use wireshark and other tools to investigate them. Using |
Small packets are wasteful, Eth+IP+TCP is 66 bytes so everything smaller than that has more than 50% transfer overhead.
This was greatly improved by recent changes (we used send length in separate packet on few levels, which caused the number of packets to grow geometrically).
I would like to use this issue to show improvements that were made and also to set higher and higher aim.
Version 0.4.3-rc1:
Mean 110, Median 44
The text was updated successfully, but these errors were encountered: