• TIPC messaging3


    Messaging

    • Datagram messaging

      Unicast, anycast or multicast,取决于使用的地址类型、-套接字地址、服务地址或服务范围。
      如果有多个套接字与给定的服务地址匹配,则以循环方式选择目标。
      在这里插入图片描述
      1、可靠的节点间传输。
      2、接收socket 缓冲过载保护
      3、没有端到端的流控制,因此消息仍然可能被接收套接字拒绝。
      4、根据发送套接字的配置,被拒绝的消息可能会被丢弃或返回给发送方。
      5、如果返回,消息将被截断并带有错误代码。

    • Connections

      通过使用服务地址或套接字地址建立连接

      1、使用数据传输信息的单向设置(也称为“0-RTT”)
      2、或传统的TCP样式设置
      在这里插入图片描述

      1、Stream- or message oriented.
      2、End-to-end flow control for socket receive buffer overflow protection.
      3、No socket level sequence numbers, acknowledges or retransmissions, - link layer takes care of that.

      Connection breaks immediately if peer becomes unavailable.
      1、Leverages link level heartbeats and kernel/socket cleanup functionality.
      2、No socket level “keepalive” heartbeats needed.

    • Communication Groups(通信组)

      Communication groups can be described as brokerless message bus instances. Such instances are user created, - the first joining member socket implicitly creates the group. This feature is available from Linux 4.14.
      A socket joins a group by indicating a service address, - the address type field serves as group identity, the address instance field serves as member identity.
      Groups are closed, - members can only exchange messages with other sockets in the same group.
      Each member socket has two addresses: a socket address bound by the system and a service address (group:member tuple) bound by the user. Both addresses are delivered to a message receiving user.
      Member sockets may optionally provide the user with join/leave events for other group members, leveraging the service tracking capabilities of the binding table.
      Member sockets may optionally receive loopback copies of their own anycast/multicast/broadcast messages.
      在这里插入图片描述
      Within a group there are four different transmission modes available.
      Unicast when the sender indicates a socket address as destination.
      Anycast when the sender indicates a service address as destination. If there is more than one matching destination, one will be selected by round-robin, but also considering the destination’s load, which can be inferred from the destination’s advertised window.
      Multicast when the sender indicates a service range as destination. If there is more than one matching destination, all of them will receive a copy of the sent message.
      Broadcast when the sender uses the send() primitive with no destination address. All member sockets, irrespective of member instance number, receive a copy of the message.
      Both broadcast and multicast leverage Ethernet broadcast/UDP multicast when possible and deemed favorable.
      Delivery and sequence order is guaranteed, even between different transmission modes. Among other things, this implies that all messages must be subject to end-to-end flow control.
      Messages will never be dropped because of destination buffer overflow.
      Same mechanism covers all tranmsmission modes.
      Point-to-point and point-to-multipoint: - “sliding window” algorithm.
      Multipoint-to-point: - “coordinated sliding window” algorithm, unique for TIPC.

  • 相关阅读:
    交友盲盒完整版——详细源码分享
    时序预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元时间序列预测
    redis键的过期删除策略
    敏捷实践之单元测试及最佳实践
    一文了解 io.Copy 函数
    量子计算深化:大规模量子计算(相关论文108篇推荐)
    Mybatis传递实体对象只能直接获取,不能使用对象.属性方式获取
    Mybatis——SqlSession的工作流程
    【图论】二分图染色
    python+django+vue+nodejs服装定制商城销售系统
  • 原文地址:https://blog.csdn.net/a777122/article/details/125473198