码迷,mamicode.com
首页 > 其他好文 > 详细

关于子网掩码的用途

时间:2015-08-13 16:07:37      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

一直以来都觉得网络是个神奇的东西,在使用的时候也很令人费解,你觉得的呢?

你是不是也有过这样的疑惑: 子网掩码干啥用的? 为什么好像怎么配置它都可以上网呢(当然现在看来有时是拼的运气)?

预备知识:

  1. windows查看路由命令:

    route print

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

    @默认路由(如果以后的路你不知该往哪走,请跟我一起走)

    @直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个,或者是windows下的“ 在链路上”。

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

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

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

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

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

正文讲解:

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

    比如,给网卡分配一个ip地址132.134.91.71/16,此时在cmd中输入route print,可以看到新增的路由的目标网络为132.134.0.0。说明132.134.开头的ip都在同一广播域。

    技术分享

    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的结果还是不通~

    只有把pc1和pc2的子网都设置为16时,两者才能绕过网关直接通信,整个过程最核心的动作就是路由表的查询匹配!!!

先记那么多吧,希望可以抛砖引玉。这是一个神奇的东西----internel :)


思考:看了以上内容之后,会不会有这样的误解呢:子网掩码越小越好?

具体解释我还没想好,大家帮忙解答吧,哈哈

关于子网掩码的用途

标签:

原文地址:http://my.oschina.net/uindows/blog/491804

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!