Common Protocol definition

本文详细介绍了SPICE协议中的消息确认机制,包括SPICE_MSG_SET_ACK和SPICE_MSGC_ACK消息的交互。同时,阐述了通道迁移的过程,涉及SPICE_MSG_MIGRATE和SPICE_MSGC_MIGRATE_DATA等消息,以及在迁移过程中的数据同步与安全性。此外,还提及了通道同步功能,通过SPICE_MSG_WAIT_FOR_CHANNELS实现消息的有序执行。
摘要由CSDN通过智能技术生成

Messages acknowledgment

  • Spice提供了一系列消息,用于对客户端接受的每个或多个消息进行确认。
  • 为了获取确认消息,server以请求确认的频率发送SPICE_MSG_SET_ACK ,client在接收到一定数量的消息之后发送确认信息。
  • 作为回应,client发送SPICE_MSGC_ACK_SYNC。
  • 每当client接收到一定请求信息之后,就会发送一个SPICE_MSGC_ACK 消息。

Channel 迁移( migration)

spice 支持spice server的迁移。以下普通消息与特殊的main channel 消息用于在spice server 之间迁移channel 连接。
将这些servers视作源和目标。Main channel 用于初始化和控制迁移过程。

具体过程如下:

  • server 发送SPICE_MSG_MIGRATE 消息开始channel迁移过程。
  • client 收到消息,验证附加的标记:如果server请求消息刷新,client发送SPICE_MSGC_MIGRATE_FLUSH_MARK 消息给server。这个过程用于确保在进行迁移动作之前安全发送所有发送中的消息。
  • 如果server请求数据迁移,client期望在server开始迁移到目标之前接收到server发送的最后一个消息。那么消息类型必须是SPICE_MSG_MIGRATE_DATA (server的消息)
  • 在连接交换中会把接收的消息内容转移到目标server中
  • 在这之后client替换交流的channel
  • 只有在所有channel完成迁移过程之后client才可以关闭与source server的连接。
  • 如果server侧要求数据转移,client将收到的SPICE_MSG_MIGRATE_DATA中的数据转移至SPICE_MSGC_MIGRATE_DATA 消息中。

Channel synchronization 通道同步

spice 提供了client侧同步通道消息执行的机制。
server发送一个SPICE_MSG_WAIT_FOR_CHANNELS 消息,包含一个需要等待的channel消息的列表。
spice client 会等所有在list中的消息被执行后再去执行其他的消息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值