android mux协议,协议细节 - Mux.Cool - 《Project V(V2RAY)文档手册》 - 书栈网 · BookStack...
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...相关推荐
- Wcdb android 目录,介绍 - 《WCDB - 腾讯开源的移动数据库框架》 - 书栈网 · BookStack...
WCDB 相关讨论可以加我们的QQ群WCDB 技术交流群: 190485752 WCDB iOS/macOS 群: 708134978 WCDB Android 群: 868268492 WCDB W ...
- Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...
源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...
- android引用ui,简介 - 如何引用 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...
在决定使用XUI前,你必须明确的一点是,此框架给出的是一整套UI的整体解决方案,如果你只是想使用其中的几个控件,那大可不必引入如此庞大的一个UI库,Github上会有更好的组件库.如果你是想拥有一套可 ...
- Android 系统(191)---ODM 开发用户常见需求文档(九)
Android 系统(191)---ODM 开发用户常见需求文档(九) 阅读数:1122 一:去除摄像头的假对焦框 (vendor/) (mediatek/proprietary/packages/a ...
- 蓝牙协议spec文档免费下载官网下载(免费)
网上找文档,到处需要收费,收积分. 自己动手丰衣足食 以蓝牙core_v5.2协议文档为例,官网下载. 1.进入官网 https://www.bluetooth.com/ 2.标题栏找到 " ...
- Android 系统 (131)---ODM 开发用户常见需求文档(五)
ODM 开发用户常见需求文档(五) 一:图库中的照片全屏显 (packages/apps/Gallery2/) 第一种: [java] view plaincopy diff --git a/src/ ...
- Android 系统 (130)---ODM 开发用户常见需求文档(四)
ODM 开发用户常见需求文档(四) 一:取消用户模式 (frameworks/) diff --git a/base/packages/SystemUI/res/layout/keyguard_sta ...
- Android开发人员官方站点文档 - 国内踏得网镜像
Android Developer 安卓开发人员官方站点无法正常訪问.即使FQ因为网络原因依旧訪问缓慢. 故整理相关字体.脚本.样式.页面资源,在踏得网server上建立了本地镜像.初始镜像时间201 ...
- 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 参考文档地址 )
文章目录 一.ProductFlavor 配置 1.ProductFlavor 引入 2.ProductFlavor 参考文档 Android Plugin DSL Reference 参考文档 : ...
最新文章
- MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率
- java dictionary 实例化_Java Dictionary put()用法及代码示例
- 你的密码安全吗?——索尼事件的教训
- elementUI Drawer 抽屉 Dialog 对话框 等弹出组件的遮罩层以及多层遮罩解决办法
- 如何建立MSSQL数据库
- jQuery.validator.addMethod 自定义验证方法
- UGUI的Button和Toggle
- kali linux 桌面消失_Kali安装好后,需要修改的一些常用配置
- 魔兽世界提取CG最新教程
- 透镜成像原理,眼球成像原理,小孔成像原理
- 《战狼2》,我可以说点什么
- 世界最快的超级计算机 神威太湖之光,揭秘全国产世界最快超级计算机“神威·太湖之光”(组图)...
- 请将磁盘插入‘‘U盘(F:)‘‘的解决方法
- oracle00312,ORA-00322 ORA-00312 恢复
- latex 分行 表格标题过长_使用latex撰写Elsevier论文,遇到的表格标题caption换行以及左对齐问题的解决办法...
- 恐怖的广告推送。其实,我们每天都在“裸奔”!
- .NET项目运行错误:未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块
- 22.01.23 《Unity 2018 Shaders and Effects Cookbook》笔记Chapter7
- 编程实践精华总结集锦系列2: SpringBoot/Maven/IDEA/Java/Kotlin/Redis等等
- 解决git拉取代码时报:Auto packing the repository in background for optimum performance