STRUCTS
BeginTransfer
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
fuchsia.overnet.protocol/StreamControl.begin_transfer 的正文。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
new_destination_node |
NodeId
|
此流端点的新所有者。 |
无默认应用 |
transfer_key |
TransferKey
|
用于标识此所有权转移的密钥。 |
无默认应用 |
ChannelHandle
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
代理渠道。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
rights |
ChannelRights
|
授予此标识名的标识名权限。 |
无默认应用 |
stream_ref |
StreamRef
|
为承载此频道而创建的 Overnet 代理流。通过该流传输的协议将为 |
无默认应用 |
ConnectToService
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
创建一个名为 stream_id 的新数据流,以便与通告的服务 service_name 进行通信。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
service_name |
string:255
|
要连接到哪项服务。 |
无默认应用 |
stream_ref |
StreamRef
|
此服务连接将在哪个 QUIC 流上形成。 |
无默认应用 |
rights |
ChannelRights
|
此连接的频道权限。 |
无默认应用 |
options |
ConnectToServiceOptions
|
此连接的辅助选项。 |
无默认应用 |
空白
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
<EMPTY>
EventPairHandle
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
代理的 eventpair。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
rights |
EventPairRights
|
授予此标识名的标识名权限。 |
无默认应用 |
stream_ref |
StreamRef
|
为承载此事件对而创建的 Overnet 代理流。此数据流不会发送任何载荷,但传输和信号控制消息将按照用于所有句柄类型的常规 StreamControl/SignalUpdate 协议进行。 |
无默认应用 |
NodeId
在 fuchsia.overnet.protocol/labels.fidl 中定义
叠加网络上节点的地址。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
id |
uint64
|
无默认应用 |
OpenTransfer
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
创建名为 stream_id 的新数据流,以完成名为 transfer_key 的转移作业。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
stream_id |
StreamId
|
此服务连接将在哪个 QUIC 流上形成。 |
无默认应用 |
transfer_key |
TransferKey
|
跟踪转移作业的转移作业密钥。 |
无默认应用 |
SocketHandle
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
代理套接字。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
rights |
SocketRights
|
授予此标识名的标识名权限。 |
无默认应用 |
stream_ref |
StreamRef
|
为承载此套接字而创建的 Overnet 代理流。通过该数据流传输的协议将为 |
无默认应用 |
socket_type |
SocketType
|
套接字选项(每个 |
无默认应用 |
StreamId
在 fuchsia.overnet.protocol/labels.fidl 中定义
标识 Overnet 网格上两个进程之间的单个 Overnet 流。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
id |
uint64
|
无默认应用 |
TransferInitiator
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
fuchsia.overnet.protocol/StreamRef.transfer_initiator 的正文。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
stream_id |
StreamId
|
此转移作业的漏极流。来自旧代理端的缓冲消息将通过此单向 QUIC 流发送,并且应在处理来自新端点的任何消息之前进行处理。 |
无默认应用 |
new_destination_node |
NodeId
|
我们应联系的此代理的对等节点 ID。 请注意,此节点可能是接收此消息的同一节点。 |
无默认应用 |
transfer_key |
TransferKey
|
用于标识此所有权转移的密钥。 |
无默认应用 |
TransferWaiter
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
fuchsia.overnet.protocol/StreamRef.transfer_waiter 的正文。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
stream_id |
StreamId
|
此转移作业的漏极流。来自旧代理端的缓冲消息将通过此单向 QUIC 流发送,并且应在处理来自新端点的任何消息之前进行处理。 |
无默认应用 |
transfer_key |
TransferKey
|
用于标识此所有权转移的密钥。 |
无默认应用 |
ZirconChannelMessage
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
通过 Overnet 流从 Zircon 通道代理的单条消息。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
bytes |
vector<uint8>:65536
|
载荷的字节部分。 |
无默认应用 |
handles |
vector<ZirconHandle>:64
|
处理部分载荷。 |
无默认应用 |
枚举
SocketType strict
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
通过 fuchsia.overnet.protocol/SocketHandle 进行通信的套接字类型。
| 名称 | 值 | 说明 |
|---|---|---|
DATAGRAM |
0 |
面向数据报的套接字。 |
流式传输 |
1 |
面向流的套接字。 |
TABLES
ConfigRequest
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
总体连接配置请求
| 序数 | 字段 | 类型 | 说明 |
|---|
ConfigResponse
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
总体连接配置响应 - 作为连接流上的第一个响应消息发送。
| 序数 | 字段 | 类型 | 说明 |
|---|
ConnectToServiceOptions
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
服务连接形成选项。
| 序数 | 字段 | 类型 | 说明 |
|---|
PeerDescription
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
单个节点的说明。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
services |
vector<string:255>
|
此节点发布的服务集。 |
SignalUpdate
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
信号状态更新。 这些信号作为每种句柄类型的边信道传输,会传播一些信号位。
| 序数 | 字段 | 类型 | 说明 |
|---|---|---|---|
1 |
assert_signals |
Signals
|
更新一些信号 |
UNIONS
PeerMessage strict
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
两个 Overnet 节点之间的点对点协议。 客户端 QUIC 连接通过 QUIC 流 0 将此 xunion 发送到服务器。
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
connect_to_service |
ConnectToService
|
请求创建到此对等方导出的服务的通道。 |
2 |
update_node_description |
PeerDescription
|
更新服务器上此对等方的说明。 |
4 |
open_transfer |
OpenTransfer
|
打开已转移的直播。 |
PeerReply strict
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
PeerMessage 的回复消息(如适用)。 ConfigResponse 消息必须已发送。
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
update_link_status_ack |
Empty
|
确认 UpdateLinkStatus 消息 |
StreamControl strict
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
数据流控制消息:如果帧类型为 1 (StreamControl),则发送此消息,而不是通常的数据流帧。 TODO: consider defining the stream framing format in FIDL also.
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
begin_transfer |
BeginTransfer
|
转移开始:发送节点想要转移控制权。 |
2 |
ack_transfer |
Empty
|
确认 begin_transfer - 发送者已看到之前发送的 begin_transfer 并对其做出了响应。 这应该是常规数据流中发送的最后一条消息。 |
3 |
end_transfer |
Empty
|
结束传输 - 发出信号,表明排空流已完成排空。 这应该是排空流上发送的最后一条消息。 |
4 |
shutdown |
zx/Result
|
关闭具有某种状态的流。 |
StreamRef strict
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
StreamRef 用于标识新的代理流,并详细说明该流将如何在接收节点上生成。
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
creating |
StreamId
|
系统正在创建一个新代理,该代理的另一端位于发送节点上。这是一种简单的情况,我们只需传达将用于承载流量的 QUIC 流 ID。 |
2 |
transfer_initiator |
TransferInitiator
|
现有代理正在转移到此节点。此节点应发起与对等节点的通信。 |
3 |
transfer_waiter |
TransferWaiter
|
现有代理正在转移到此节点。此节点应等待来自对等节点的联系。 |
ZirconHandle strict
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
要代理的单个句柄。 并非所有 Zircon 类型都受支持。
| 序数 | 变体 | 类型 | 说明 |
|---|---|---|---|
1 |
channel |
ChannelHandle
|
代理渠道。 |
2 |
socket |
SocketHandle
|
代理套接字。 |
3 |
event_pair |
EventPairHandle
|
代理的 eventpair。 |
BITS
ChannelRights strict
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
频道权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。
| 名称 | 值 | 说明 |
|---|---|---|
读取 |
1 | |
写入 |
2 |
EventPairRights strict
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
EventPair 权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。
| 名称 | 值 | 说明 |
|---|---|---|
DO_NOT_USE |
2147483648 |
信号严格
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
可传播的信号。 这些位是特意选择的,与 Zircon 中定义的位不同,目的是强制存在映射代码,并最大限度地降低 Zircon ABI 意外成为 Overnet 协议的可能性。
| 名称 | 值 | 说明 |
|---|---|---|
USER_0 |
1 | |
USER_1 |
2 | |
USER_2 |
4 | |
USER_3 |
8 | |
USER_4 |
16 | |
USER_5 |
32 | |
USER_6 |
64 | |
USER_7 |
128 |
SocketRights 严格执行
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
套接字权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。
| 名称 | 值 | 说明 |
|---|---|---|
读取 |
1 | |
写入 |
2 |
常量
| 名称 | 值 | 类型 | 说明 |
|---|---|---|---|
| MAX_SERVICE_NAME_LENGTH |
fuchsia.io/MAX_NAME_LENGTH
|
uint64 |
|
| TRANSFER_KEY_LENGTH |
16
|
uint32 |
转移密钥的长度。 |
别名
| 名称 | 值 | 说明 |
|---|---|---|
| TransferKey |
array[TRANSFER_KEY_LENGTH] |
将流端点从一个节点移至另一个节点时,会使用转移密钥。它用于标识单次传输,应具有唯一性(因此由随机字节组成),并且应在传输结束时舍弃。 |