TIPC messaging3

Messaging

  • Datagram messaging

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

  • Connections

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

    1、使用数据传输信息的单向设置(也称为“0-RTT”)
    2、或传统的TCP样式设置
    TIPC messaging3_第2张图片

    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.
    TIPC messaging3_第3张图片
    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.

你可能感兴趣的:(TIPC,java,网络,服务器)