• 集群通信TIPC协议


    一、 安装测试
     
    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会自动建立连接来和网络中其它节点通信。
     
    注意:
    1. TIPC网络地址不像IP网络地址,在TIPC中每个节点仅有一个网络地址,即使节点有多个网络接口。
    2. 网络管理员会分配网络地址和网络ID,程序员没必要关注到这些内容。
    3. 网络管理员会配置好每个节点的网络接口。
    2. 消息传送概览
     
    TIPC应用程序在端点间(端口)通过交换数据单元(消息)进行通信。
     
    从应用程序的角度,一个消息就是从1~66000字节长的字符串,内部结构由应用程序决定,一个端口是一个实体可以以连接或无连接的方式发送和接收消息。
     
    注意点
    1. TIPC网络包含的节点可能运行在不同的CPU类型上,或者使用不同的操作系统,应用程序必须保证他们的消息格式的一致性。在一些情况下,可能需要大小端转换或者强制使得消息域固定大小。
    2. 一些相同的条件,阻止发送消息的条件可能也会使得阻止返回消息。
     
    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。
     
    一些限制:
    1. type值0~63被TIPC保留
    2. 端口名称和名称序列被服务端口使用,而不是客户端口。
    3. 端口名称序列不能重叠。但不同节点上的重叠名称序列是可以的。
    注意点:
    1. 程序员不得不担心选择TIPC名称和名称序列。
    2. 在TIPC网络中好的名称(或名称序列)与IP网络中广为人知的端口号一样。
    3. 应用程序必须使用与其他应用程序没有冲突的TIPC名称(或名称序列)
     
    结合了一些有意思的特点,一些非常独特,来达到整体目标:
    (1) 整个集群从通信的角度来看是单个计算机
    (2) 能使得应用可以跟踪、适应拓扑变化
    (3) 进程通信的透明性,网络拓扑由内核模块TIPC维护
     
    三、 TIPC2.0协议规范
     
    参考文档:TIPC 2.0 Protocol Specification
     
    主要内容是协议的细节,包括为什么提出该协议,与TCP,SCTP等协议相比的优点,以及对消息格式的定义和所有所提供的功能:基于port的通信,名称表,链路,广播链路,邻居检测,拓扑服务,配置服务,安全考虑,IANA(The Internet Assigned Numbers Authority)考虑。
  • 相关阅读:
    【写一个自己的js库】 5.添加修改样式的方法
    【写一个自己的js库】 4.完善跨浏览器事件操作
    js跑马灯效果
    jquery hover延时
    chart
    【写一个自己的js库】 3.添加几个处理字符串的方法
    【写一个自己的js库】 2.实现自己的调试日志
    django踩坑记录
    单元测试框架unittest-3
    单元测试框架unittest-2
  • 原文地址:https://www.cnblogs.com/wangshide/p/3082508.html
Copyright © 2020-2023  润新知