0

我有下一张桌子:

Network adress    NetMask         Next Hop
128.96.166.0      255.255.255.0   1
128.96.166.0      255.255.252.0   2
0.0.0.0           0.0.0.0         3

我想找到路由器将发送到每个跃点的地址范围。例如,地址的 IP:128.96.166.0 将发送到 Hop 1。

我不明白 NetMak 如何帮助我确定它。不是总是会跳到 1 跳吗?

4

3 回答 3

5

决定的算法是:

If (IP address BitwiseAND NetMask == NetwordAddress) Then
    Forward to Next Hop
于 2012-06-01T12:51:39.133 回答
2

首先,开始以二进制形式读取网络掩码。在这种形式中,网络掩码总是一些 1 后跟 0。网络掩码告诉您相关前缀的长度(以位为单位)(1 表示相关位,0 表示不相关位)。例如,如果您只查看前 24 位,则 128.96.166.1 和 128.96.166.2 将被发送到 Hop1 b/c,这两个地址具有相同的前 24 位,就像网络地址的前 24 位一样。但是地址 128.96.167.1 不会发送到 Hop1,b/c 第 24 位不同。但是 Hop2 的条目有不同的网络掩码。Hop2 的网络掩码表示只查看前 22 位。当仅查看前 22 位时,128.96.167.1 与 Hop2 的网络地址匹配,并且地址为 128.96.167.1 的数据包将通过 Hop2 发送。

进一步:查看前 22 位时,Hop1 和 Hop2 的网络地址匹配 128.96.166.1 和 128.96.166.2。但是,(通常)任何组件都会为 128.96.166.1 和 128.96.166.2 选择 Hop1,因为该规则匹配更多位。这被称为“最长前缀匹配”,并且与“如果有更多匹配位,此跃点将使数据包更接近最终目的地”的想法一致。

于 2012-06-01T12:58:41.107 回答
1

这里有一个简单的 ip 子网计算器:http: //www.subnet-calculator.com/

于 2012-06-01T13:09:58.167 回答