From b9a1461700c65928388239a16931bd6d32565de5 Mon Sep 17 00:00:00 2001 From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> Date: Thu, 26 Jan 2023 09:59:13 -0500 Subject: [PATCH] Update muxcool.md --- docs/development/protocols/muxcool.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/development/protocols/muxcool.md b/docs/development/protocols/muxcool.md index 42c3e6c..f5c7528 100644 --- a/docs/development/protocols/muxcool.md +++ b/docs/development/protocols/muxcool.md @@ -47,21 +47,23 @@ Mux.Cool 使用对称传输格式,即客户端和服务器发送和接收相 ### 元数据 -元数据有若干种类型,由状态 S 来区分。所有类型的元数据都包含 ID 和 Opt 两项,其含义为: +元数据有若干种类型。所有类型的元数据都包含 ID 和 Opt 两项,其含义为: - ID: 子连接的唯一标识 + - 对于一般 MUX 子链接,ID 由 1 开始累加 + - 对于 XUDP,ID 始终为 0 - Opt: - D(0x01): 有额外数据 当选项 Opt(D) 开启时,额外数据格式如下: -| 2 字节 | L 字节 | +| 2 字节 | X-2 字节 | | ------ | ------ | -| 长度 L | 数据 | +| 长度 X-2 | 数据 | ### 新建子连接 (New) -| 2 字节 | 1 字节 | 1 字节 | 1 字节 | 2 字节 | 1 字节 | X 字节 | +| 2 字节 | 1 字节 | 1 字节 | 1 字节 | 2 字节 | 1 字节 | A 字节 | | ------ | ------ | -------- | ---------- | ------ | ---------- | ------ | | ID | 0x01 | 选项 Opt | 网络类型 N | 端口 | 地址类型 T | 地址 A | @@ -88,6 +90,7 @@ Mux.Cool 使用对称传输格式,即客户端和服务器发送和接收相 | ID | 0x02 | 选项 Opt | 在保持子连接时,若 Opt(D) 开启,则这一帧所带的数据需要被发往目标主机。 +XUDP 在 Opt(D) 之后加 UDP 地址,格式同新建子链接 ### 关闭子连接 (End) @@ -113,4 +116,4 @@ Mux.Cool 使用对称传输格式,即客户端和服务器发送和接收相 Mux.Cool 协议与底层协议无关,理论上可以使用任何可靠的流式连接来传输 Mux.Cool 的协议数据。 在目标导向的协议如 Shadowsocks 和 VMess 协议中,连接建立时必须包含一个指定的地址。 -为了保持兼容性,Mux.Cool 协议指定地址为“v1.mux.cool”。即当主连接的目标地址与之匹配时,则进行 Mux.Cool 方式的转发,否则按传统方式进行转发。 +为了保持兼容性,Mux.Cool 协议指定地址为“v1.mux.cool”。即当主连接的目标地址与之匹配时,则进行 Mux.Cool 方式的转发,否则按传统方式进行转发。(注:这是一个程序内的标记,VMess 和 VLESS 并不会发送“v1.mux.cool”地址)