找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 中文模块 Demo
查看: 594|回复: 0

UDP ARQ 组件

[复制链接]
发表于 2022-3-14 20:04:16 | 显示全部楼层 |阅读模式
hpsocket-UDP ARQ 组件5 UDP ARQ
HP-Socket v5.5.x 版本开始,提供 UDP ARQ(自动重传请求 UDP、可靠 UDP)组件:
IUdpArqServer 和 IUdpArqClient。在低带宽、高延时或丢包严重的网络环境中,可以提供比
TCP 更高效的网络传输性能。
5.1 组件接口
UDP ARQ 组件 IUdpArqServer / IUdpArqClient 的操作方法和监听器接口与常规 UDP 组
件 IUdpServer / IUdpClient 一致,只在常规 UDP 组件的基础上增加了若干与 ARQ 通信相关
的参数设置、获取方法。、
UDP ARQ 组件5009
图 5.1-1 UDP 组件层次结构
5.2 握手协议
HP-Socket 使用 KCP 实现 ARQ 通信,但通信协商方式与常规 KCP 不同,常规 KCP 需
要通信双方使用相同的会话 ID,HP-Socket 使用自身的通信握手协议实现通信协商。通信双
方可以使用各自独立的会话 ID。
如图 5.2-1 所示,HP-Socket 的 ARQ 组件在开始通信之前需要进行通信握手。当
IUdpArqServer 组件接收到 OnAccept 事件或者 IUdpArqClient 组件接收到 OnConnect 事件时
即开始 ARQ 握手,握手方式为定时向对方发送握手报文并处理对方发过来的握手报文,直
至握手完成或超时终止。握手完成会接收到 OnHandshake 事件;握手超时会接收到 OnClose
事件,错误代码为 ERROR_TIMEOUT。
协商报文格式:
MM C F XXXX YYYY
✓ 报文长度 :12 字节
✓ 第 1-2 字节 :固定魔数 0xBB4F
✓ 第 3 字节 :命令类型,目前只使用了握手命令 0x01
✓ 第 4 字节 :命令标识,0x00 - 未完成,0x01 - 已完成
✓ 第 5-8 字节 :本方会话 ID
✓ 第 9-12 字节 :对方会话 ID,如未收到对方会话 ID 则用 0x00000000 填充
注意:IUdpArqServer 通过客户端“IP 地址 + 端口 + 会话 ID”标识一个远程连接,
在客户端断开又重连的情形下,服务端可能未收到前一个连接的断开通知。因此客户端需要
确保前后两个连接的“IP 地址 + 端口 + 会话 ID”不会完全相同。最简单的做法是让前后
两个连接使用不同的会话 ID

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

QQ|Archiver|手机版|小黑屋| HPsocket-国产高性能通讯框架 ( 豫ICP备19038015号-1 )|网站地图

GMT+8, 2024-4-27 02:29 Powered by Discuz! X3.5 *//

快速回复 返回顶部 返回列表