一、 安装测试 1. TIPC内核模块安装 modprobe 利用depmod创建的依赖文件来自动加载相关的模块 insmod 向正在运行的内核加载模块 lsmod 显示当前加载的内核模块信息/proc/modules rmmod 从当前运行的内核中卸载内核模块 depmod 处理可加载内核模块的依赖关系 /proc/kallsyms 内核符号和模块符号表的信息 例如TIPC内核模块而言,直接用 root # modprobe tipc 就可以将tipc模块加载到内核 (当然,这里的TIPC模块是Linux已经支持的) 2. 配置TIPC 参考文档:Linux TIPC 1.7 User’s Guide 配置网络: root# tipc-config -netid=1234 -addr=1.1.8 -be=eth:eth0 远程管理: root# tipc-config -dest=1.1.9 -n 禁用远程管理: root# tipc-config -mng=disable 3. 通信测试 可以参考:tipc-config包中的demo 二、 TIPC编程 参考文档: Linux TIPC 2.0 Programmer’s Guide 1. TIPC网络结构 网络地址:<Zone, Cluster, Node> 255.4095.4095 网络ID:TIPC网络还使用网络ID,这允许多个逻辑网络使用相同的物理媒介(例如,相同的以太网网线),并且不会相互干扰,因为每个节点仅仅识别来自相同网络ID节点的流量。 当物理链接(如以太网)建立好了之后,TIPC会自动建立连接来和网络中其它节点通信。 注意: TIPC网络地址不像IP网络地址,在TIPC中每个节点仅有一个网络地址,即使节点有多个网络接口。网络管理员会分配网络地址和网络ID,程序员没必要关注到这些内容。网络管理员会配置好每个节点的网络接口。 2. 消息传送概览 TIPC应用程序在端点间( 端口)通过交换数据单元( 消息)进行通信。 从应用程序的角度,一个 消息就是从1~66000字节长的字符串,内部结构由应用程序决定,一个 端口是一个实体可以以连接或无连接的方式发送和接收消息。 注意点 TIPC网络包含的节点可能运行在不同的CPU类型上,或者使用不同的操作系统,应用程序必须保证他们的消息格式的一致性。在一些情况下,可能需要大小端转换或者强制使得消息域固定大小。一些相同的条件,阻止发送消息的条件可能也会使得阻止返回消息。 3. TIPC寻址 网络地址: <Z.C.N> <8bit, 12bit, 12bit> 端口ID: <Z.C.N:ref> ref也是32位整数 端口名称:虽然可以使用TIPC端口发送消息,通常情况下,使用功能性地址,而不使用发送端口来知晓目的地址的物理位置,这就简化了通信,尤其是服务端口动态创建、删除或重新定位的时候,或者多个端口提供服务的时候。在TIPC中功能地址的基本单元就是 端口名称。指定为{type, instance},大小为{32bit, 32bit}。 不像端口ID,端口名称在TIPC网络中可以不唯一,应用程序可以给一个端口名称分配多个端口,多个端口名称可以分配给一个端口。 端口名称序列:用于指定范围内相似的端口名称,{type, lower bound, upper bound},每个域大小32bit。 一些限制: type值0~63被TIPC保留端口名称和名称序列被服务端口使用,而不是客户端口。端口名称序列不能重叠。但不同节点上的重叠名称序列是可以的。 注意点: 程序员不得不担心选择TIPC名称和名称序列。在TIPC网络中好的名称(或名称序列)与IP网络中广为人知的端口号一样。应用程序必须使用与其他应用程序没有冲突的TIPC名称(或名称序列) 结合了一些有意思的特点,一些非常独特,来达到整体目标: 1) 整个集群从通信的角度来看是单个计算机 2) 能使得应用可以跟踪、适应拓扑变化 3) 进程通信的透明性,网络拓扑由内核模块TIPC维护 三、 TIPC2.0协议规范 参考文档: TIPC 2.0 Protocol Specification 主要内容是协议的细节,包括为什么提出该协议,与TCP,SCTP等协议相比的优点,以及对消息格式的定义和所有所提供的功能:基于port的通信,名称表,链路,广播链路,邻居检测,拓扑服务,配置服务,安全考虑,IANA(The Internet Assigned Numbers Authority)考虑。
转载于:https://www.cnblogs.com/wangshide/archive/2013/05/16/3082508.html