没有合适的资源?快使用搜索试试~ 我知道了~
Linux TIPC协议
资源推荐
资源详情
资源评论
TIPC
TIPC(Transparent Inter-Process Communication,透明进程间通信)是一种专门为集群内
通信而设计的协议,它可以配置为通过 UDP 或直接通过以太网传输消息,消息传递具有顺
序保证、无丢失和流量控制功能。延迟时间比任何其他已知协议都短,而最大吞吐量与 TCP
相当或更高。
特点:网络中服务位置透明,节点通信无需关系使用的 IP 地址及端口,自动发现,可
靠性,标准套接口支持,支持 UDP、TCP、多播等
消息永远不会由于目标缓冲区溢出被丢弃。
相同的机制涵盖所有传输模式。
点对点和点对多点:“滑动窗口”算法。
多点对点:“协调滑动窗口”算法,TIPC 独有。
TIPC 提供服务
➢ 基于“一体式”L2 或 L3 的消息传输服务:
可靠的数据报单播、任意播和多播。
与流或消息传输的可靠连接。
位置透明服务寻址。
地址的多重绑定。
受监督的节点到节点传输链路,具有无损耗故障切换功能。
➢ 服务和拓扑跟踪功能:
跟踪节点、进程、套接字、地址和连接。
服务/功能地址的订阅/事件功能。
在服务、拓扑结构或连接发生变化时立即提供反馈。
自动邻居发现。
TIPC 地址分类
地址根据服务类别的分为以下几种:
#define TIPC_SERVICE_RANGE 1 /* 范围地址 */
#define TIPC_SERVICE_ADDR 2 /* 特定服务地址 */
#define TIPC_SOCKET_ADDR 3 /* socket 地址 */
Service Address. 此地址类型由 32 位服务类型标识符和 32 位服务实例标识符组成。类
型标识符通常由用户应用程序程序员确定和硬编码,但其值可能必须与同一集群中可能存在
的其他应用程序协调。实例标识符通常由程序根据特定于应用程序的标准进行计算。
Service Range. 此地址类型表示同一类型的服务地址范围,实例的范围在下限和上限之
间。通过将套接字绑定到此地址类型,可以使其表示许多实例,这在许多情况下都是有用的。
此地址类型也用作多播地址。
Socket Address. 此地址是群集中特定套接字的引用。它包含一个 32 位端口号和一个 32
位节点哈希号。端口号是在创建套接字时由系统生成的,节点哈希是根据前面解释的相应节
点标识生成的。这种类型的地址可用于连接或发送消息,使用方式与服务地址相同,但只有
在引用的套接字存在时才有效。
将套接字绑定到服务地址或地址范围时,必须指明绑定的可见性范围;分为:
TIPC_NODE_SCOPE /*本地可见 */
TIPC_CLUSTER_SCOPE /* 集群内可见 */
杂项:
TIPC 支持多播,组播,一个 node 可以通过设置 socket 选项主动加入或请求离开组播组:
TIPC_GROUP_JOIN /* 加入 */
TIPC_GROUP_LEAVE /* 离开 */
套接字可以通过新的 setsockopt() 调用 TIPC_GROUP_JOIN 加入组。如果它是组的第一
个 套 接 字 , 则 意 味 着 创 建 了 该 组 。 此 调 用 采 用 四 个 参 数 :“ type ” 用 作 组 标 识 符 ,
“instance”用作成员标识符,“scope”表示组的可见性(节点/集群/区域)。 最后,“flags”
指示套接字加入组的不同选项。 目前,只有两个这样的标志:1) 'LOOPBACK' 指示套接字的
创建者是否想要接收它发送到组的广播或多播消息的副本,2) EVENTS 指示它是否想要接收
成员身份 (加入/左)该组其他成员的活动。、
组是封闭的,即未加入组的套接字将无法向组成员发送消息或从组成员接收消息,反之
亦然,一个套接字一次只能是一个组的成员。
此外,还可以通过设置 socket 选项设置 TIPC 的报文接收策略,比如是否拒绝,是否丢
包,以及设置报文的优先级(低、中、高、紧急)等等
TIPC 消息
TIPC 消息分为两大类:1.Payload message 2. Internal message;根据用途又进一步分为如
下几类:
每一个 TIPC 消息由消息头(message header)和数据(data)两部分组成;
消息头格式取决于用户,长度范围为 6-11 个字,每个字 4 字节,即 24-44 字节,最大
不超过 60 字节,如下所示:
消息头内少数字段是所有消息头所共有的,其余字段对于单个用户来说是唯一的或由几
个用户使用。
数据部分的格式由用户决定,长度范围为 0-66000 字节。
Payload message
Payload message 在应用程序之间或应用程序与 TIPC 服务之间携带应用程序指定内容。
Palyload message 包含如下几种类型:
其 中 TIPC_NAMED_MSG 、 TIPC_DIRECT_MSG 都 是 基 于 无 连 接 的 消 息 通 信 ,
TIPC_NAMED_MSG 根据节点名找到节点标识,TIPC_DIRECT_MSG 是直接通过节点标识找到
目的地址,这里都不存在端口绑定,即无连接。
所有有效的 Payload Message 共享通用的基本头部格式,所不同的是头部长度的不同,
具体为:
TIPC_CONN_MSG 24bytes
TIPC_MCAST_MSG 44 bytes
TIPC_NAMED_MSG 40 bytes
TIPC_DIRECT_MSG 32 bytes
Payload Message 消息格式如下所示:
消息各字段解释如下:
R, RES, RESERVED:保留区域,这些位必须为 0。
Ver:3 位:消息协议版本号,目前为 2。
user:4 位:消息用户,用于指示消息的类型, 如前所述。
Hsize:4 位:消息头的大小,以 32 位字为单位,有效负载消息的消息头长度可以为
6 到 11 个字,具体取决于 Mtype 的值
N:1 位:非排序消息标志,如果该位清零,则该消息是链路端点之间正常消息流的
一部分。使用广播链路发送到所有集群节点的有效负载消息都设置了该位。
剩余34页未读,继续阅读
资源评论
进化中的码农
- 粉丝: 318
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功