对于Linux系统下的TCP IP协议的地址查询命令我们已经在前面的文章中介绍过了。现在接着前文,我们来继续讲解一下相关内容。在查询到地址之后,我们就必须有一套方法来对应 IP协议地址和实体地址了。
在此一过程中﹐关键点是如果将 IP协议地址对与实体地址做对应。有些使用简单实体地址的网路(如 proNET-10 )﹐其实体地址只占一个 byte 的长度﹐而且允许使用者在配置网路卡的是选择自己的实体地址。
在这样的网路上进行 IP协议地址和实体地址的对应﹐是比较简单的﹐我们可以把实体地址设为和 IP协议地址设为一样。例如﹐假设某一个节点的 IP协议地址为 192.168.1.17﹐那么我们可以将该实体地址设为 17。
这样﹐在 proNET 就可以轻易的根据 IP协议地址来得到实体地址。这样的对应非常简单﹐而且要维护起来也很容易﹐在新机器假如网路的时候﹐并不需要修改或重编已存的资料。
然而﹐我们知道在乙太网上﹐每一个实体界面都有一个 48bit(6byte) 的 MAC 地址﹐而 IP (v4)使用的地址则为 32bit(4byte)﹔每各地址格式都只提供相应的层级协定使用﹐彼此是不能互换使用的。这时候我们就无法用简单的数学关系来做 IP协议地址和实体地址的对应了。
IP协议地址和实体地址的对应方法
建立表格
首先﹐我们想到的最简单方法是在每一台机器上建立一个 IP协议地址和实体地址的对应表格( table )。不过这个方法还是没办法解决如下的情形:
◆ 网路上的节点数量多如恒河沙数﹐要想将全部节点的对应关系列入表格之中几近不可能任务。
◆ 如果某一个节点产生异动情形(例如更换网卡)﹐那么如果让所有表格正确做出相应修改﹐也是个头痛的问题。
◆ 对某无磁碟工作站来说﹐因为没有本机的储存设备﹐将无非建立表格。
写入高阶程式
除了建立表格﹐我们还可以将实际的网路地址写死在高阶网路程式里面。不过﹐和前一个方法一样﹐如果遇到硬体地址变更等异动动情形﹐那么﹐程式也需要重新编译过才行。
显然﹐上述两个方法都不怎么高明。