目录
- 一、常见的概念
- 二、SDK的默认数值
-
三、P2P传输常见功能对接
- [选读] [P2P] 基于IOTCAPIs的局域网设备搜索
- [选读] [P2P] 基于AVAPIs的家用摄像头开发-APP端
- [选读] [P2P] 基于AVAPIs的家用摄像头开发-设备端
- [选读] [P2P] 基于P2PTunnelAPIs和TCPIP协议开发NAS(或者摄像头)-APP端
- [选读] [P2P] 基于P2PTunnelAPIs和TCPIP协议开发NAS(或者摄像头)-设备端
- [选读] [P2P] P2P连线的密码验证
- [选读] [P2P] P2P分区设定
- [选读] [P2P] RDT的切包和组包
- [选读] [P2P] 常见错误码解析
- [选读] [P2P] SDK日志设定和抓取
- [选读] [P2P] 低功耗设备对接流程
- [选读] [P2P] 事件的回放与下载参考
- [选读] [P2P] 文件传输(上传,下载)协议设计(公版参考版)
- [选读] [P2P] IOS模拟器的库合并方法
P2P模块介绍
TUTK P2P协议,是TUTK基于UDP/TCP协议自行开发的一套点对点通信协议,提供了设备快速连入P2P平台和APP方便快捷访问设备的能力。P2P SDK提供了透传的通道,方便接入各种类型的数据,并且提供了丰富的API,方便应用层自由开发各种功能。P2P SDK高效的穿透能力,为流媒体传输节省了大量服务器成本。
一、常见的概念
SDK License Key: App和设备端SDK使用,用以启动SDK,以及master ip解析。
UID: 设备端配置,用以平台识别设备的唯一ID。
ServerKey: P2P服务器使用,用以平台识别某台P2P服务器的唯一ID。
P2P License Key: P2P服务器使用,会被用以解析master ip。
Master服务器: 主服务器,UID的验证,P2P服务器的管理,分布于中国、亚洲、欧洲、北美。
P2P服务器: 用以管理UID的报到,连线,以及数据转发。全球分布,可以私有化部署。
连接(会话): APP和设备之间的一次访问,直到调用API断开或者异常断开。(了解更多:连接与通道)
连线模式:
- LAN - 局域网模式,即客户端与设备在同一个路由器下面。
- P2P - 点对点通信,即客户端与设备之间直接通信。
- RLY - 转发模式,即客户端与设备端的通信,需要服务器转发。
通道: 连接成功建立后,用以传输数据的管道。(了解更多:连接与通道)
区域: 服务器的区域,终端的区域,主要指地理空间。
VPG: 群组,以VID+PID+GID区分,每个厂商最少会有一个VPG,可以用不同的VPG管理不同的客户或者产品,多个VPG对于分区分流的服务器部署会比较有帮助。
VID: 厂商ID。
PID: 产品ID。
GID: 组ID。
NAT: 网络地址转换协议,直接影响P2P的穿透。
二、SDK的默认数值
| 模块 | 模块简介 | 描述 | 数值 |
|---|---|---|---|
| IOTCAPIs | 提供P2P连线接口和不可靠的传输接口,一般只用作设备报到,设备连线,以及连线的管理,主要操作对象是连线的ID(SID)。 | 最大连接数/个 | 128 |
| APP和设备端默认的心跳超时/秒 | 60(超时会返回-23,-20016等报错) | ||
| APP和设备端默认的心跳间隔/秒 | 1 | ||
| 设备端login心跳间隔/秒 | 40(3.1.10以下是25) | ||
| P2P服务器判定设备logout的心跳超时/分钟 | 5~10 | ||
| 每个连接的最大通道数/个 | 32 | ||
| authkey长度 | 8 | ||
| IOTC连线超时/秒 | 60 | ||
| AVAPIs | 基于IOTC模块来进行封装的数据传输(重传机制可配置),比如图像,声音,控制,状态等信息,对不同类型数据,封装了不同的接口,主要操作的对象是av通道(avIndex)。 | 每个连接的最大通道数/个 | 32 |
| 密码最大长度/位 | 257 | ||
| token最大长度/位 | 1024 | ||
| IO附带数据大小 | 3.3以下SDK不超过1020字节,3.3以上版本不限 | ||
| 视频帧大小 | 可以到1MB,要对应调大缓存区 | ||
| 音频帧大小 | 1280字节 | ||
| RDTAPIs | 基于IOTC模块进行封装的可靠的数据传输,只提供简单的Read和Write接口,需要自己设计上层协议和切包,主要操作的对象是RDTIndex。 | 最大可用RDT通道数/个 | 128 |
| buffer大小上限 | 不限制,依赖于系统内存容量 | ||
| P2PTunnelAPIs | 基于RDTAPIs模块进行封装的可靠的数据传输,提供的是虚拟的数据隧道服务,只需要简单的几行代码,便可以接入基于TCP/IP协议开发的协议,比如http、https、ftp、ssh、telnet、rtsp等。 | - | - |
三、P2P传输常见功能对接
[选读] [P2P] 基于IOTCAPIs的局域网设备搜索
详细内容请参考对应专项技术文档,包含局域网设备搜索的API调用流程、参数配置、异常处理等核心要点。
[选读] [P2P] 基于AVAPIs的家用摄像头开发-APP端
详细内容请参考对应专项技术文档,涵盖APP端与摄像头设备的AV通道建立、音视频数据传输、控制指令交互等开发细节。
[选读] [P2P] 基于AVAPIs的家用摄像头开发-设备端
详细内容请参考对应专项技术文档,包含设备端AV服务启动、音视频采集编码、数据推流、响应APP控制指令等实现方案。
[选读] [P2P] 基于P2PTunnelAPIs和TCPIP协议开发NAS(或者摄像头)-APP端
详细内容请参考对应专项技术文档,介绍APP端通过P2PTunnel建立虚拟隧道,搭配http或者RTSP等实现与NAS/摄像头设备的远程访问与数据交互。
[选读] [P2P] 基于P2PTunnelAPIs和TCPIP协议开发NAS(或者摄像头)-设备端
详细内容请参考对应专项技术文档,介绍设备端通过P2PTunnel建立虚拟隧道,搭配http或者RTSP等实现与NAS/摄像头设备的远程访问与数据交互。
[选读] [P2P] P2P连线的密码验证
详细内容请参考对应专项技术文档,包含密码验证机制原理、API调用方式、密码加密传输、验证结果处理等安全相关要点。
[选读] [P2P] P2P分区设定
详细内容请参考对应专项技术文档,介绍分区设定的配置方法、区域服务器选择策略、跨区域连接优化等实现细节。
[选读] [P2P] RDT的切包和组包
详细内容请参考对应专项技术文档,涵盖RDT协议的数据包拆分规则、组包逻辑、重传机制、缓冲区管理等核心技术点。
[选读] [P2P] 常见错误码解析
详细内容请参考对应专项技术文档,包含SDK开发中常见错误码的含义说明、排查步骤、解决方案等实用指南。
[选读] [P2P] SDK日志设定和抓取
详细内容请参考对应专项技术文档,介绍日志开启/关闭配置、日志级别设定、日志文件存储路径、问题排查时的日志抓取方法。
[选读] [P2P] 低功耗设备对接流程
详细内容请参考对应专项技术文档,包含低功耗设备的P2P连接建立、休眠唤醒机制、数据传输优化、功耗控制等对接要点。
[选读] [P2P] 事件的回放与下载参考
详细内容请参考对应专项技术文档,介绍设备事件数据的存储、APP端回放控制、历史数据下载、播放进度管理等实现方案。
[选读] [P2P] 文件传输(上传,下载)协议设计(公版参考版)
详细内容请参考对应专项技术文档,提供文件上传/下载的协议框架、数据分片传输、断点续传、校验机制等公版设计参考。
[选读] [P2P] IOS模拟器的库合并方法
详细内容请参考对应专项技术文档,介绍IOS模拟器环境下SDK库的合并步骤、依赖配置、编译打包等操作指南。
