我有下一张桌子:
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
我想找到路由器将发送到每个Hop的adreeses范围。例如,地址的IP:128.96.166.0将发送到Hop 1。
我不明白NetMak是如何帮助我解除它的。是不是总是会去跳1?
答案 0 :(得分:5)
要决定的算法是:
If (IP address BitwiseAND NetMask == NetwordAddress) Then
Forward to Next Hop
答案 1 :(得分:2)
首先,开始以二进制形式阅读网络掩码。在这种形式中,网络掩码始终为1s后跟0。网络掩码告诉您相关前缀的长度(以位为单位)(1表示相关位,0表示不相关位)。例如 128.96.166.1和128.96.166.2将被发送到Hop1 b / c,如果你只查看前24位,两个地址具有相同的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。但是,(正常)任何组件都会选择Hop1为128.96.166.1和128.96.166.2,因为该规则匹配更多位。这被称为“最长前缀匹配”,并且同意“如果有更多匹配位,则此跳将使数据包更接近最终目的地”。
答案 2 :(得分:1)
这里有一个简单的ip子网计算器:http://www.subnet-calculator.com/