传输层架构
URPC 控制面使用 TCP/IP 连接传输控制消息(attach/detach/keepalive 等)。
flowchart TB
N0[// transport.c: 控制面 IP 传输]
N2[// └─ Client 端:发起 TCP 连接 → SSL 握手 → 发送控制消息]
N1 --> N2
N3[// 关键数据结构:]
N2 --> N3
N5[urpc_server_accept_manager // Server 连接管理]
N4 --> N5
SSL 握手流程
flowchart TB
N0[sockfd, false]
N1[ssl, &err]
N2[sockfd, true]
控制消息处理
flowchart TB
N0[msg_type, ctrl_msg]
Server 端管理
flowchart TB
N0[// ip_handshaker.c: Server 端监听与接受]
N1[int ip_handshaker_init]
N0 --> N1
N2[ip_create_listen_fd; // 创建监听 socket]
N1 --> N2
N3[urpc_mange_event_register; // 注册事件监听]
N2 --> N3
N4[ip_handle_listen_event; // 处理连接请求]
N3 --> N4
N6[// server_manage_channel.c: Server 通道管理]
N5 --> N6
N7[// ├─ server_manage_channel_init → 初始化通道表]
N6 --> N7
N8[// ├─ server_manage_channel_put → 注册通道]
N7 --> N8
Client 端管理
flowchart TB
N0[// client_manage_channel.c: Client 通道管理]
N1[// ├─ client_manage_channel_init → 初始化通道表]
N0 --> N1
N2[// ├─ client_channel_connect → 发起连接]
N1 --> N2
N3[// └─ client_channel_disconnect → 断开连接]
N2 --> N3
N4[// 连接建立流程:]
N3 --> N4
N5[// 1. urpc_channel_server_attach → 发起 attach 请求]
N4 --> N5
N6[// 2. client_connect_entry_get → 查找/创建连接条目]
N5 --> N6
N7[// 3. create_connection → 建立 TCP 连接]
N6 --> N7
N8[// 4. client_do_ssl_handshake → SSL 握手]
N7 --> N8
N9[// 5. 交换 bind_info → 建立逻辑连接]
N8 --> N9