From 7cd645eb1792a9bd2e75cc347af8af49a8312192 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Fri, 23 Jan 2026 16:27:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message.proto | 119 +++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 73 deletions(-) diff --git a/message.proto b/message.proto index eca1310..ce09b30 100644 --- a/message.proto +++ b/message.proto @@ -13,111 +13,80 @@ message SDLV6Info { bytes v6 = 2; } -// 设备网络地址信息 -message SDLDevAddr { - uint32 network_id = 1; - bytes mac = 2; - uint32 net_addr = 3; - uint32 net_bit_len = 4; - string network_domain = 5; -} - -// tcp通讯消息 -message SDLEmpty { - -} +// 所有需要建立请求和响应对应关系的,都是通过udp包头部4字节的packetId来对应 +// 客户端层面通过token或者账号密码登录, 服务器端不管这个, +// 只是验证凭证是否合法 (access_token) +// 这里修改成了扁平的结构, 否则有些字段不好找放的位置 message SDLRegisterSuper { uint32 version = 1; - string installed_channel = 2; - string client_id = 3; - SDLDevAddr dev_addr = 4; - string pub_key = 5; - string token = 6; - string network_code = 7; - string hostname = 8; + string client_id = 2; + uint32 network_id = 3; + bytes mac = 4; + uint32 ip = 5; + uint32 mask_len = 6; + string hostname = 7; + string pub_key = 8; + string access_token = 9; } +// 这里修改成了udp的方式,后续需要验证: session_token message SDLRegisterSuperAck { - SDLDevAddr dev_addr = 1; - bytes aes_key = 2; - uint32 upgrade_type = 3; - optional string upgrade_prompt = 4; - optional string upgrade_address = 5; + bytes aes_key = 1; + bytes session_token = 2; } +// 注册失败时候的消息体 message SDLRegisterSuperNak { uint32 error_code = 1; string error_message = 2; } // 网络地址查询 - message SDLQueryInfo { - bytes dst_mac = 1; + uint32 network_id = 1; + bytes dst_mac = 2; + bytes session_token = 3; } message SDLPeerInfo { - bytes dst_mac = 1; - SDLV4Info v4_info = 2; - optional SDLV6Info v6_info = 3; + uint32 network_id = 1; + bytes dst_mac = 2; + SDLV4Info v4_info = 3; + optional SDLV6Info v6_info = 4; } -// 事件定义 +// 事件定义, 下面的事件是服务器主动推送的,不需要响应 message SDLNatChangedEvent { - bytes mac = 1; - uint32 ip = 2; + uint32 network_id = 1; + bytes mac = 2; + uint32 ip = 3; } message SDLSendRegisterEvent { - bytes dst_mac = 1; - uint32 nat_ip = 2; - uint32 nat_port = 3; - uint32 nat_type = 4; - optional SDLV6Info v6_info = 5; + uint32 network_id = 1; + bytes dst_mac = 2; + uint32 nat_ip = 3; + uint32 nat_port = 4; + uint32 nat_type = 5; + optional SDLV6Info v6_info = 6; } message SDLNetworkShutdownEvent { - string message = 1; -} - -// 命令定义 - -message SDLChangeNetworkCommand { - SDLDevAddr dev_addr = 1; - bytes aes_key = 2; -} - -message SDLCommandAck { - // status = true, 表示成功;status = false 表示失败,message是失败原因描述 - bool status = 1; - optional string message = 2; -} - -message SDLFlows { - // 服务器转发流量 - uint32 forward_num = 1; - // p2p直接流量 - uint32 p2p_num = 2; - // 接收的流量 - uint32 inbound_num = 3; + uint32 network_id = 1; + string message = 2; } // UDP通讯消息 - message SDLStunRequest { - uint32 cookie = 1; - string client_id = 2; - uint32 network_id = 3; - bytes mac = 4; - uint32 ip = 5; - uint32 nat_type = 6; - optional SDLV6Info v6_info = 7; -} - -message SDLStunReply { - uint32 cookie = 1; + string client_id = 1; + uint32 network_id = 2; + bytes mac = 3; + uint32 ip = 4; + uint32 nat_type = 5; + optional SDLV6Info v6_info = 6; + bytes session_token = 7; } message SDLData { @@ -127,8 +96,11 @@ message SDLData { bool is_p2p = 4; uint32 ttl = 5; bytes data = 6; + bytes session_token = 7; } +// 这个是客户端之间的相互打洞的数据 + message SDLRegister { uint32 network_id = 1; bytes src_mac = 2; @@ -159,6 +131,7 @@ message SDLStunProbeReply { message SDLArpRequest { uint32 network_id = 1; uint32 target_ip = 2; + bytes session_token = 3; } message SDLArpResponse {