TIPC协议的地址分析
来源:互联网 发布:淘宝快递助手怎么授权 编辑:程序博客网 时间:2024/06/06 01:06
TIPC协议使用的套接字地址为struct sockaddr_tipc类型:
- struct sockaddr_tipc {
- unsigned short family;
- unsigned char addrtype;
- signed char scope;
- union {
- struct tipc_portid id;
- struct tipc_name_seq nameseq;
- struct {
- struct tipc_name name;
- __u32 domain; /* 0: own zone */
- } name;
- } addr;
- };
addrtype指明了地址类型,addrtype取值如下:
- #define TIPC_ADDR_NAMESEQ 1
- #define TIPC_ADDR_MCAST 1
- #define TIPC_ADDR_NAME 2
- #define TIPC_ADDR_ID 3
如果说TIPC_ADDR_NAMESEQ为发送消息时寻找服务而存在,那么TIPC_ADDR_NAME就是为绑定服务而存在。struct tipc_name的结构如下:
而instance则是该服务区别于其他服务的标识,和上文struct tipc_name_seq的lower、upper对应。
而TIPC_ADDR_MCAST和TIPC_ADDR_ID有什么作用呢?
从字面意思上看TIPC_ADDR_MCAST表明该地址为多播地址,上文中struct tipc_name_seq的lower、upper最多只能让对应同一服务的若干个节点接收消息,而多播应该是和服务无关吧(TIPC_ADDR_MCAST没有用过,也没有了解)。
TIPC_ADDR_ID更是没有了解。
struct tipc_portid的定义如下:
- struct tipc_portid {
- __u32 ref;
- __u32 node;
- };
node指明了节点地址,但ref的含义是什么呢,它和struct tipc_name_seq以及struct tipc_name中的type有联系吗,我不知道。
通过tipc-config查看节点信息时可以看到对应于struct tipc_portid的ref,node信息。例如在没有tipc用户程序启动时,运行 tipc-config -nt可以得到如下信息:
Type Lower Upper Port Identity Publication
-------------------------------- -------------------------- ------------------
0 16781313 16781313 <1.1.1:2111340545> 2111340546 zone
1 1 1 <1.1.1:2111381507> 2111381508 node
由上可以看到,type=0的节点的地址为<1.1.1>,ref为2111340545,type=1的节点的地址为<1.1.1>,ref为2111381507。
注意:值为0-63的type为TIPC保留type,不能被用户程序使用,type=0为配置服务类型(configuration service name type),type=1为拓扑服务类型(topology service name type)。
在struct sockaddr_tipc中我们还遗漏了一个元素,即domain,与struct tipc_name name共同组成struct name的domain。domain的取值范围如下:
在TIPC协议中,一台主机为一个节点,一个节点的地址是固定的,初次使用insmod安装tipc.ko后,可以通过tipc-config配置节点地址,但配置过后就不能再更改了,如果需要更改需要通过rmmod移除tipc.ko,然后再修改。
转载自:http://blog.csdn.net/henujava/article/details/9071505
- TIPC协议的地址分析
- TIPC协议的地址分析
- tipc协议详解
- TIPC协议和实现解析
- TIPC协议和实现解析
- citrix 的ICA协议的分析和下载地址
- TIPC通信协议
- tipc编程
- TIPC 链接
- 蓝牙协议分析_BLE地址类型
- 蓝牙协议分析_BLE地址类型
- 蓝牙协议分析(6)_BLE地址类型
- 蓝牙协议分析(6)_BLE地址类型
- 常考的地址协议
- 协议分析_qvod_获取快播视频的下载地址_20120203
- 五个好用的网络协议分析工具(附下载地址)
- 地址解析协议(ARP)的学习(通过wireshark抓包分析)
- 五个好用的网络协议分析工具(附下载地址)
- 黑马程序员---IO(输入输出)
- HDU 1677 Nested Dolls(排序+二分)
- _BLOCK_TYPE_IS_VALID(pHead->nBlockUse问题解析
- postgreSQL内核分析1
- AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~
- TIPC协议的地址分析
- Java 理论和实践: 了解泛型
- 开启 J2EE(七)— Model1、Model2和三层架构的演变
- Android ART运行时无缝替换Dalvik虚拟机的过程分析
- java web jsp原理图 ,静态包含,动态包含,out与response.getWrite()
- NSDate与时间戳的那点事
- Linux性能测试 vmstat命令
- 个比较乐观vjlkvfhj
- HDU 1254 推箱子