【TIPC】三、Messaging

 

Messaging

Datagram messaging

Unicast, anycast or multicast,取决于使用的地址类型、-套接字地址、服务地址或服务范围。
如果有多个套接字与给定的服务地址匹配,则以循环方式选择目标。

 

  • 可靠的节点间传输。
  • 接收socket 缓冲过载保护
  • 没有端到端的流控制,因此消息仍然可能被接收套接字拒绝。
  • 根据发送套接字的配置,被拒绝的消息可能会被丢弃或返回给发送方。
  • 如果返回,消息将被截断并带有错误代码。

Connections

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

  • 使用数据传输信息的单向设置(也称为“0-RTT”)
  • 或传统的TCP样式设置

  • 面向流或消息。
  • 用于套接字接收缓冲区溢出保护的端到端流控制。
  • 没有套接字级别的序列号,确认或重传,-链路层负责。

如果对等方不可用,连接立即中断。

  • Leverages link level heartbeats and kernel/socket cleanup functionality.
  • No socket level “keepalive” heartbeats needed.

 

Communication Groups(通信组)

通信组可以描述为无代理消息总线实例。这样的实例是用户创建的,-第一个加入成员套接字隐式地创建组。此功能可从Linux 4.14获得。

  • 套接字通过指示服务地址来加入组,-地址类型字段用作组标识,地址实例字段用作成员标识。
  • 组已关闭,-成员只能与同一组中的其他套接字交换消息。
  • 每个成员套接字有两个地址:一个由系统绑定的套接字地址和一个服务地址(group:member tuple)由用户绑定。这两个地址都传递给消息接收用户。
  • 成员套接字可以选择性地为用户提供其他组成员的加入/离开事件,利用绑定表的服务跟踪功能。
  • 成员套接字可以选择性地接收其自己的选播/多播/广播消息的环回副本。

 

在一个组中,有四种不同的传输模式可用。

  • 当发送方指示一个套接字地址作为目标时进行单播。
  • 当发送方将服务地址指示为目的地时的选播。如果有多个匹配的目的地,将通过循环选择一个,但也要考虑目的地的负载,这可以从目的地的播发窗口中推断出来。
  • 当发送方指示一个服务范围作为目的地时进行多播。如果有多个匹配的目的地,则所有目的地都将收到已发送邮件的副本。
  • 当发送方使用没有目标地址的send()原语时广播。所有成员套接字(无论成员实例编号如何)都将接收消息的副本。
  • 广播和多播都在可能和有利的情况下利用以太网广播/UDP多播。

即使在不同的传输模式之间,也能保证交付和顺序。除此之外,这意味着所有消息都必须服从端到端流控制。

  • 由于目标缓冲区溢出,消息永远不会被丢弃。
  • 相同的机制覆盖所有传输模式。
  • 点对点和点对多点:“滑动窗口”算法。
  • 多点对点:“协调滑动窗口”算法,TIPC独有。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值