mirror of
https://github.com/xtaci/smux.git
synced 2024-04-21 10:51:48 +00:00
652b3cd889ece4b995e41ee6a5a68013153fb7c8
smux
simple multiplexing
goals
- receive window is shared among the streams.
- precise flow control(pluggable stragety like linux TC).
- precise memory control.
- maximized payload.
- optimized for high-speed streams.
- aim for game services.
FRAMETYPE=Data, OPTIONS=(flagSYN, flagACK, flagFIN, flagRST)
+---------------+--------------+------------+--------------+--------------------------------+
| | | | | |
| FRAMETYPE(1B) | OPTIONS(1B) | LENGTH(2B) | STREAMID(4B) | DATA(MAX 64K) |
| | | | | |
+---------------+--------------+------------+--------------+--------------------------------+
FRAMETYPE=WindowUpdate
+---------------+--------------+------------+
| | |
| FRAMETYPE(1B) | WINDOWSIZE(4B) |
| | |
+---------------+--------------+------------+
FRAMETYPE=Ping, OPTIONS=(flagSYN, flagACK)
+---------------+--------------+------------+------------+
| | | |
| FRAMETYPE(1B) | OPTIONS(1B) | PINGID(4B) |
| | | |
+---------------+--------------+------------+------------+
FRAMETYPE=GoAway
+---------------+---------------+
| | |
| FRAMETYPE(1B) | ERROR(2B) |
| | |
+---------------+---------------+
status
in-progress
Languages
Go
100%