结构
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 中定义
代理事件对。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
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 中定义
标识网状网网格上两个进程之间的单个网网流。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
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 严格
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
通过 fuchsia.overnet.protocol/SocketHandle 传递的套接字类型。
名称 | 值 | 说明 |
---|---|---|
DataGRAM |
0 |
面向数据报的套接字。 |
STREAM |
1 |
面向数据流的套接字。 |
表
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>
|
此节点发布的服务集。 |
SignalUpdate
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
信号状态更新。 对于每种句柄类型,以边信道的形式传输,这些句柄会传播一些信号位。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
assert_signals |
Signals
|
更新一些信号 |
联合
PeerMessage 设置为严格
在 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 严格
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
在适当的情况下,回复 PeerMessage 的消息。 ConfigResponse 消息必须已发送。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
update_link_status_ack |
Empty
|
确认 UpdateLinkStatus 消息 |
StreamControl 严格
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
流控制消息:如果帧类型为 1 (StreamControl),则发送,而不是通常的流帧。 TODO:还可以考虑使用 FIDL 定义数据流分帧格式。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
begin_transfer |
BeginTransfer
|
转移开始:发送节点想要转移控制权。 |
2 |
ack_transfer |
Empty
|
确认 begin_transfer - 发送者看到了之前发送的 begin_transfer,并对其作出响应。这应该是常规流中发送的最后一条消息。 |
3 |
end_transfer |
Empty
|
结束传输 - 表示排空流已完成排空。这应该是排空流中发送的最后一条消息。 |
4 |
shutdown |
zx/Status
|
以某种状态关闭数据流。 |
StreamRef 严格
在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义
StreamRef 标识新的代理流,并详细说明了该数据流将如何进入接收节点上。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
creating |
StreamId
|
正在创建新的代理,代理的另一端位于发送节点上。这种情况比较简单,我们只提供用于传输流量的 QUIC 流 ID。 |
2 |
transfer_initiator |
TransferInitiator
|
正在将一个现有代理转移到此节点。此节点应启动与对等端的通信。 |
3 |
transfer_waiter |
TransferWaiter
|
正在将一个现有代理转移到此节点。此节点应等待对等设备联系。 |
ZirconHandle 严格
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
要代理的单个句柄。 并非所有 Zircon 类型都受支持。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
channel |
ChannelHandle
|
代理信道。 |
2 |
socket |
SocketHandle
|
代理套接字。 |
3 |
event_pair |
EventPairHandle
|
代理事件对。 |
BITS
ChannelRights 严格
类型:uint32
在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义
频道权限。 Overnet 将权限视为对象类型,以减少可通过其传输格式传达的内容空间。系统始终假定存在转移权。
名称 | 值 | 说明 |
---|---|---|
读取 |
1 | |
写入 |
2 |
EventPairRights 严格
类型: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 ] |
将流端点从一个节点移动到另一个节点时会使用传输密钥。它用于标识单个传输,应该是唯一的(因此,由随机字节组成),并且应在传输结束时被舍弃。 |