子网掩码255.255.255.255_网络协议|OSI模型第三层网络层中的IP地址和子网掩码

81a1a02054762d2bfe510b3a89bbb86d.png

IP 地址

OSI第三层是网络层,第二层的作用是让局域网中的机器能够通信,第三层则让网络之间的机器能够通信,使我们可以从一个网络向另一个网络发送信息。

第二层中有 MAC 地址来标识不同的机器,那么第三层中就有 IP 地址来标识不同的网络,在 CMD 里面使用 tracert(windows环境)+ 主机名 可以查看本地主机连接到另一个网络的跟踪路径。

bdf32dcd7d1504719ff089bd33baf2f5.png

比如我这里使用 tracert http://www.zhihu.com,显示从我电脑所在的网络到达知乎服务器主机所在的网络,需要经过很多不同的网络,上面显示的每一行,对应在到达目标主机所在网络之前遇到的每一个网络。

IP 地址用以点分隔的 4 个字节来表示,比如 192.168.0.1 。每个字节的数字是用十进制来表示,一个字节是 8 个二进制位,可以取值 2 ^ 8 = 256 个,因此一个字节的取值范围是 0 到 255。

那么最小的 IP 地址是当所有二进制位均为 0 时: 0.0.0.0,最大的 IP 地址是当所有二进制位均为 1 时:255.255.255.255。(二进制的 00000000 转换为十进制为 0,二进制的 11111111 转换为十进制为255 )

IP地址实际上包含了两个部分,一部分是网络地址,另一部分是主机地址,IP 地址和子网掩码密不可分,子网掩码中定义了此 IP 地址的网络地址和主机地址。

子网掩码

子网掩码与 IP 地址的格式一样,4个字节32位

21cf70047b1ce46c351990dec5b4132c.png

子网掩码中为1的位必须在左边,为0的必须在右边,不能混合使用0和1。所以子网掩码中的每一个字节只能取以下几个值

00000000 —> 0

10000000 —> 128

11000000 —> 192

11100000 —> 224

11110000 —> 240

11111000 —> 248

11111100 —> 252

11111110 —> 254

11111111 —> 255

子网掩码中为1的二进制位代表 IP 地址中的网络地址,为0的二进制位代表IP地址中的主机地址,

比如上面显示我这台机器的IP地址是192.168.1.142,子网掩码是255.255.255.0,以二进制的形式写出来就是

192.168.1.142 —> 11000000.10101000.00000001.10001110

255.255.255.0 —> 11111111.11111111.11111111.00000000

因此,我这个IP地址的网络地址是192.168.1(对应二进制为11000000.10101000.00000001),主机地址是142(对应二进制为10001110)

如果分割刚好发生在一个字节中间,就只能以二进制的形式表示,不能再转回十进制了。比如IP地址192.168.1.142和子网掩码255.255.224.0

192.168.1.142 —> 11000000.10101000.00000001.10001110

255.255.224.0 —> 11111111.11111111.11100000.00000000

分割刚好在第三个字节中间,这个IP地址的网络地址为11000000.10101000.000,主机地址为00001.10001110

IP 地址范围的计算

属于同一网络中的所有主机,它们的网络地址都是相同的,如果两台主机的IP地址中的网络地址不同,则它们不属于同一网络。

因此,将主机地址位设置为不同的0或者1,就可以取到不同的IP值,所以网络中的第一个IP地址是主机地址所有位都为0的,网络中的最后一个IP地址是主机地址所有位都为1的。比如我这里IP地址192.168.1.142子网掩码255.255.255.0的取值范围为

11000000.10101000.00000001.00000000—>192.168.1.0

11000000.10101000.00000001.00000001—>192.168.1.1

……

11000000.10101000.00000001.11111110—>192.168.1.254

11000000.10101000.00000001.11111111—>192.168.1.255

网络中的地址数

要找到网络中的地址数量,只需知道主机地址的二进制位数即可,如果主机地址位数有1位,那么就能取值 2 ^ 1 = 2 个,如果主机地址位数有2位,那么就能取值 2 ^ 2 = 4 个……

而IP地址中的主机地址位数又由子网掩码中0的个数决定,所以网络中可用的IP地址数 = 2 ^ 子网掩码中0的个数。

比如我这里相关联的192.168.1.142 和 255.255.255.0,子网掩码转换为二进制是,11111111.11111111.11111111.00000000

因此子网掩码中有8个0,可用的IP地址数为 2 ^ 8 = 256,但是IP地址范围中的第一个地址是这个网络的地址本身,最后一个地址为广播地址,这两个地址不能为某个主机所用,因此我这里实际可用的IP地址数为256-2=254

上一篇:OSI模型第二层数据链路层

下一篇:OSI模型第三层网络层中的路由

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值