[置顶] 关于子网掩码的用途

  1. windows查看路由命令:

    route print

  2. 路由主要分为:(参考http://blog.csdn.net/ghostly78/article/details/480706)

    @默认路由:当没有路由匹配时匹配该路由,特征一般表现为目标网络是0.0.0.0;

    @直联网段的路由记录:当路由器收到发往直联网段的数据包时匹配该路由,特征一般表现为路由记录的interface和gateway相同(windows下网关显示“ 在链路上”);

    @本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里

    @本地主机路由:当路由器收到发送给自己的数据包时将如何处理 

    @本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理 

    @组播路由:当路由器收到一个组播数据包时该如何处理 

    @广播路由:当路由器收到一个绝对广播时该如何处理 

  3. 我们给一个网卡配ip地址以后,系统会自动添加一条本网路由,当然还会添加主机路由和广播路由。

    比如,给网卡分配一个ip地址132.134.91.71/16,此时在cmd中输入route print,可以看到新增的路由的目标网络为132.134.0.0

    [置顶] 关于子网掩码的用途_第1张图片

4. 再来看下一情景:

    [置顶] 关于子网掩码的用途_第2张图片

    现在在pc1上ping pc2,整个情况如下:

    @pc1首先查看是否有合适的路由,本机有一条目标网络为132.134.100的路由,但是和132.134.254不匹配,所以走默认路由(如果以后的路你不知该往哪走,就跟我走吧~)所以pc1就把数据包的目的mac设为网关132.134.100.254的mac。

    @现在数据到达网关,网关一看目的ip为132.134.254.100,于是查看自身的路由表,如果有一条目标主机为132.134.254.100的主机路由,则会把该数据发往pc2;如果没有的话,网关会把该数据发送internel网络(如果是私有地址应该丢弃),该数据就再也无法到达pc2了,于是pc1上会显示主机不可达~

    如果把pc1的子网掩码设置为16,情况会怎样呢?

    @pc1还是先看路由表,找到一个目标网络为132.134.0.0的直联网段路由,说明两者在同一网络,于是就直接把数据传递给pc2了。

    @数据到了pc2,pc2会给pc1发送响应结果。pc2先查看路由表,发现没有合适的路由(直联网段路由为132.134.254.0),于是把数据发给默认网关。

    @现在数据到达网关,网关一看目的ip为132.134.100.100,于是查看自身的路由表,如果有一条目标主机为132.134.100.100的主机路由,则会把该数据发往pc1;如果没有的话,网关会把该数据发送internel网络(如果是私有地址应该丢弃),该数据就再也无法到达pc1了,所以ping的结果还是不通~

    小结:1、只有把pc1和pc2的子网都设置为16时,两者才能绕过网关直接通信,或者在网关处添加指定路由进行通信。

       2、整个过程最核心的动作就是路由表的查询匹配!!!

你可能感兴趣的:(网络,子网掩码)