zoukankan      html  css  js  c++  java
  • 关于子网掩码

    今天在知乎上看到一个关于子网掩码的解释,感觉说的很好,一下就对子网掩码的概念更加深刻了。

    网络上,数据从一个地方传到另外一个地方,是依靠 IP 寻址。
    从逻辑上来讲,是两步的。
    第一步,从 IP 中找到所属的网络,好比是去找这个人是哪个小区的;
    第二布,再从 IP 中找到主机在这个网络中的位置,好比是在小区里面找到这个人。

    第一步中的网络,就称之为「子网」(Subnet)。
    从逻辑上来讲,一般同一子网(Subnet)是使用相同的网关。就好比,一个小区的入口。

    IPv4 的 IP 地址是 32 位的,形式如 ,每一个 xxx 取值都是 0 - 255。
    到底是前三个 xxx 相同,就代表同一个子网,还是前两个,还是其他?这个并不一定。
    就好比小区有大有小,有的小区有上千户人家,有的小区只有区区几个。
    所以,就引入「子网掩码」(Subnet Mask)来标识该子网的大小。

    我们一般看到的 IP 地址是十进制的编码,所以如果换一个视角,从二进制的角度看,每一个 IP 地址就是 32 位 1 或 0。
    子网掩码,就是用来告诉这个子网的覆盖区间。这 32 位中,前多少位是网络段?当然,余下的就是主机段。

    举典型的例子:
    IP 中前 24 位代表子网号,后 8 位代表主机号。
    所以子网掩码就是 24 个 1(代表前 24 位是子网部分),加 8 个 0(后 8 位是主机部分)。
    如果沿用 IP 的标识方式,就是 255.255.255.0 。
    每一个 255 对应 8 个二进制 1,最后一个 0 对应 8 个二进制 0。
    该子网可以容纳最多 256 台主机,也就是主机号从 0 到 255。
    当然,实际情况没有这么多,有一些特殊数字有保留用处(广播、网关等)。


    作者:Dion
    链接:http://www.zhihu.com/question/21064101/answer/17056026
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    模块
    python运算符与表达式
    subShell与代码块
    参数展开与特殊字符
    变量和参数
    shelll Test
    Cypher查询语言--Neo4j 入门 (一)
    那些争议最大的编程观点
    大型网站架构不得不考虑的10个问题
    大型网站架构演变
  • 原文地址:https://www.cnblogs.com/a294098789/p/5330666.html
Copyright © 2011-2022 走看看