shadowsocks / shadowsocks/shadowsocks-org

feature request: sip003 mux / multiplexing spec

Open
#262 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
1k
Forks
694
PR merge metrics
No merged PRs in 30d

Description

There is no relay in sip003, currenty it's implemented by plugin self.

As it's shadowsocks is based on socks, entire payload can be encrypted, so there is no mux solution on shadowsocks payload.

Then, the mux should be done on plugin:

  1. mux on payload, add mux header before payload
    1. Mux.Cool
    2. please note: it seems no way to compatible mux and non mux solution as mux header is not optional
  2. mux on plugin's underlying protocol
    1. websockets based on http/1.1, use websockets's rsv and/or opcode.
      1. please note, there should be some simple stream flow control
    2. http2/http3, special stream and stream flow control
    3. other: I don't think other protocol can be supported by cdn

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the SIP003 feature request and compare the approaches it lists: Mux.Cool, plugin-payload headers, WebSockets, HTTP/2, and HTTP/3. No implementation files or tests are named. Done would require an agreed multiplexing specification addressing compatibility, stream flow control, and supported underlying protocols.

Written by the indexing model from the issue text.

Assessment

Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.