Mux.Cool 协议

Mux.Cool 协议是一个多路复用传输协议,用于在一条已建立的数据流中传输多个各自独立的数据流。

版本

当前版本是 1 Beta。

依赖

底层协议

Mux.Cool 必须运行在一个已建立的可靠数据流之上。

通讯过程

一个 Mux.Cool 连接中可传输若干个子连接,每个子连接有一个独立的 ID 和状态。传输过程由帧(Frame)组成,每一帧用于传输一个特定的子连接的数据。

客户端行为

当有连接需求时并且没有现有可用的连接时,客户端向服务器发起一个新连接,以下称为“主连接”。一个主连接可用于发送若干个子连接。客户端可自主决定主连接可承载的子连接数量。

对于一个新的子连接,客户端必须发送状态New以通知服务器建立子连接,然后使用状态Keep来传送数据。

当子连接结束时,客户端发送End状态来通知服务器关闭子连接。

客户端可自行决定何时关闭主连接,但必须确定服务器也同时保持连接。

客户端可使用 KeepAlive 状态来避免服务器关闭主连接。

服务器端行为

当服务器端接收到新的子连接时,服务器应当按正常的连接来处理。当收到状态End时,服务器端可以关闭对目标地址的上行连接。

在服务器的响应中,必须使用与请求相同的 ID 来传输子连接的数据。

服务器不能使用New状态。

服务器可使用 KeepAlive 状态来避免客户端关闭主连接。

传输格式

Mux.Cool 使用对称传输格式,即客户端和服务器发送和接收相同格式的数据。

帧格式2 字节L 字节X 字节元数据长度 L元数据额外数据

元数据

元数据有若干种类型,由状态 S 来区分。所有类型的元数据都包含 ID 和 Opt 两项,其含义为:ID: 子连接的唯一标识

Opt:D(0x01): 有额外数据

当选项 Opt(D) 开启时,额外数据格式如下:2 字节L 字节长度 L数据

新建子连接 (New)2 字节1 字节1 字节1 字节2 字节1 字节X 字节ID0x01选项 Opt网络类型 N端口地址类型 T地址 A

其中:网络类型 N:0x01:TCP,表示当前子连接的流量应当以 TCP 的方式发送至目标。

0x02:UDP,表示当前子连接的流量应当以 UDP 的方式发送至目标。

地址类型 T:0x01:IPv4

0x02:域名

0x03:IPv6

地址 A:当 T = 0x01 时,A 为 4 字节 IPv4 地址;

当 T = 0x02 时,A 为 1 字节长度(L) + L 字节域名;

当 T = 0x03 时,A 为 16 字节 IPv6 地址;

在新建子连接时,若 Opt(D) 开启,则这一帧所带的数据需要被发往目标主机。

保持子连接 (Keep)2 字节1 字节1 字节ID0x02选项 Opt

在保持子连接时,若 Opt(D) 开启,则这一帧所带的数据需要被发往目标主机。

关闭子连接 (End)2 字节1 字节1 字节ID0x03选项 Opt

在保持子连接时,若 Opt(D) 开启,则这一帧所带的数据需要被发往目标主机。

保持连接 (KeepAlive)2 字节1 字节1 字节ID0x04选项 Opt

在保持连接时:若 Opt(D) 开启,则这一帧所带的数据必须被丢弃。

ID 可为随机值。

应用

Mux.Cool 协议与底层协议无关,理论上可以使用任何可靠的流式连接来传输 Mux.Cool 的协议数据。

在目标导向的协议如 Shadowsocks 和 VMess 协议中,连接建立时必须包含一个指定的地址。为了保持兼容性,Mux.Cool 协议指定地址为“v1.mux.cool”。即当主连接的目标地址与之匹配时,则进行 Mux.Cool 方式的转发,否则按传统方式进行转发。

修订历史

2017.04.12 重构页面,加入 KeepAlive 状态

2017.04.03 初版

android mux协议,协议细节 - Mux.Cool - 《Project V(V2RAY)文档手册》 - 书栈网 · BookStack...相关推荐

  1. Wcdb android 目录,介绍 - 《WCDB - 腾讯开源的移动数据库框架》 - 书栈网 · BookStack...

    WCDB 相关讨论可以加我们的QQ群WCDB 技术交流群: 190485752 WCDB iOS/macOS 群: 708134978 WCDB Android 群: 868268492 WCDB W ...

  2. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...

    源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...

  3. android引用ui,简介 - 如何引用 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...

    在决定使用XUI前,你必须明确的一点是,此框架给出的是一整套UI的整体解决方案,如果你只是想使用其中的几个控件,那大可不必引入如此庞大的一个UI库,Github上会有更好的组件库.如果你是想拥有一套可 ...

  4. Android 系统(191)---ODM 开发用户常见需求文档(九)

    Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...

  5. 蓝牙协议spec文档免费下载官网下载(免费)

    网上找文档,到处需要收费,收积分. 自己动手丰衣足食 以蓝牙core_v5.2协议文档为例,官网下载. 1.进入官网 https://www.bluetooth.com/ 2.标题栏找到 " ...

  6. Android 系统 (131)---ODM 开发用户常见需求文档(五)

    ODM 开发用户常见需求文档(五) 一:图库中的照片全屏显 (packages/apps/Gallery2/) 第一种: [java] view plaincopy diff --git a/src/ ...

  7. Android 系统 (130)---ODM 开发用户常见需求文档(四)

    ODM 开发用户常见需求文档(四) 一:取消用户模式 (frameworks/) diff --git a/base/packages/SystemUI/res/layout/keyguard_sta ...

  8. Android开发人员官方站点文档 - 国内踏得网镜像

    Android Developer 安卓开发人员官方站点无法正常訪问.即使FQ因为网络原因依旧訪问缓慢. 故整理相关字体.脚本.样式.页面资源,在踏得网server上建立了本地镜像.初始镜像时间201 ...

  9. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 参考文档地址 )

    文章目录 一.ProductFlavor 配置 1.ProductFlavor 引入 2.ProductFlavor 参考文档 Android Plugin DSL Reference 参考文档 : ...

最新文章

  1. MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率
  2. java dictionary 实例化_Java Dictionary put()用法及代码示例
  3. 你的密码安全吗?——索尼事件的教训
  4. elementUI Drawer 抽屉 Dialog 对话框 等弹出组件的遮罩层以及多层遮罩解决办法
  5. 如何建立MSSQL数据库
  6. jQuery.validator.addMethod 自定义验证方法
  7. UGUI的Button和Toggle
  8. kali linux 桌面消失_Kali安装好后,需要修改的一些常用配置
  9. 魔兽世界提取CG最新教程
  10. 透镜成像原理,眼球成像原理,小孔成像原理
  11. 《战狼2》,我可以说点什么
  12. 世界最快的超级计算机 神威太湖之光,揭秘全国产世界最快超级计算机“神威·太湖之光”(组图)...
  13. 请将磁盘插入‘‘U盘(F:)‘‘的解决方法
  14. oracle00312,ORA-00322 ORA-00312 恢复
  15. latex 分行 表格标题过长_使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法...
  16. 恐怖的广告推送。其实,我们每天都在“裸奔”!
  17. .NET项目运行错误:未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块
  18. 22.01.23 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter7
  19. 编程实践精华总结集锦系列2: SpringBoot/Maven/IDEA/Java/Kotlin/Redis等等
  20. 解决git拉取代码时报:Auto packing the repository in background for optimum performance

热门文章

  1. cesium获取模型高度_Cesium专栏-空间分析之剖面分析(附源码下载)
  2. NAT 技术最全详解 : 换个马甲就能上网
  3. 服务客户的重要原则:“悦近来远”
  4. 中职计算机专业英语ppt,中职计算机英语教学方法论文
  5. Kafka KSQL安装
  6. 运筹说 第42期 | 算法介绍之运输问题
  7. 系统分析师和系统架构师的区别?
  8. SpringBoot banner图样
  9. Xshell和Xftp官方家庭免费版
  10. USB连接默认更改为传输文件