shadowsocks / shadowsocks/shadowsocks-rust

Need help calculating Shadowsocks UDP packets overhead for correct MTU setting

Open
#1,947 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
10.9k
Forks
1.5k
Avg merge
4d 15h
Merged PRs (30d)
5

Description

I'm setting up a Wireguard-over-Shadowsocks UDP-only connection using 2022-blake3-aes-256-gcm cipher method. In order to set up the Wireguard interface's MTU, I need to accomodate for Shadowsocks overhead.

I found the general structure of a packet which discusses the parts from which Shadowsocks packets are made, but the actual field sizes seem to be largely implementation dependent and/or cipher-dependent (e.g. padding size). Can somebody please help me figure out the exact overhead for these packets? I tried digging through the sources, but apparently it's buried somewhere deep, too deep for me since I'm really not a Rust guy.

Any help would be greatly appreciated!

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

No source file, test, or entry point is named. Start by tracing UDP packet construction for the 2022-blake3-aes-256-gcm cipher and compare it with the packet structure described in the issue. Done means documenting the exact Shadowsocks overhead needed to choose a WireGuard MTU.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.