TCP/IP协议簇中的子网掩码有什么作用

前言

前几天在配置数据库主从结构时查询了一些IP配置,后来编写远程执行脚本时又配置了一些IP数据,在linux上使用 ifconfig 命令查询IP配置时发现子网掩码不是常用的3个255,而是 255.255.254.0,只是简单记得这样配置扩大了子网的范围,但是具体子网掩码怎么使用还是记不清楚了,所以查询了这些还给老师的知识,在此总结一下。

IP地址分类

关于IPv4的地址分类之前有专门的总结,可以参考这一篇《IP地址常见分类:A类、B类、C类、D类、E类》,其中常用到的也就是A类、B类、C类这三种,默认的子网掩码分别为 255.0.0.0255.255.0.0255.255.255.0,通过IP地址和子网掩码进行与运算可以得出IP地址所对应的网络地址。

子网掩码

子网掩码通过它的名字来判断肯定和子网有关系,掩码又有遮遮掩掩之意,合在一起其实就是通过其作用来进行的命名,也就是对IP地址进行遮掩,然后得到子网地址的作用。

掩码的作用

刚刚说通过子网掩码和IP地址可以获得网络地址,那么没有子网掩码可不可以呢?实际上如果进行某些约定就可以不使用子网掩码来获得网络地址,比如IPv4是通过4个字节来表示一个IP地址的,分为网络号和主机号两部分,A类IP地址可以使用第一字节表示网络号,B类地址使用前两个字节表示网络号,C类地址使用前3个字节表示网络号,其实这也是默认的表示方法。

加入子网掩码只是为了更灵活的配置子网,如果都按照默认的“规矩”进行划分就太死板了,难以适应复杂的需求环境,比如一个A类地址 10.0.48.36 默认的子网 10.0.0.0,可以容纳16777214台主机,这样如果一个子网的所需IP数量远远小于这个数字就会产生巨大的浪费。

再比如一个C类地址 192.168.0.1 的默认子网是 192.168.0.0,可以容纳254台主机,如果一个公司或者组织有500人,那么一个C类的子网就无法满足要求,需要分配B类地址才能解决问题,所以才有了子网掩码的出现,可以使子网的划分更加合理。

掩码表示

掩码的表示比较简单,它由四个字节构成,表示成二进制形式时为前1后0,可以像IP地址一样的格式来书写,也可以写出掩码中有多少个1,举个例子,下面表示一个IP和子网:

  • 192.168.1.1255.255.254.0

也可以将掩码中1的个数写在IP地址后面表示成:

  • 192.168.1.1/23

子网拆分

增加子网掩码中1的个数可以将子网进行拆分,比如地址 192.168.1.1192.168.1.130 在子网掩码是 255.255.255.0时都属于 192.168.1.0 这个子网,但是将子网掩码换成 255.255.255.128, 那么这两个IP地址就分别属于 192.168.1.0192.168.1.128 这两个子网。

子网合并

减少子网掩码中1的个数可以将子网进行合并,比如地址 192.168.1.1192.168.0.1 在子网掩码是 255.255.255.0时分别属于 192.168.1.0192.168.0.0 这两个子网,但是将子网掩码换成 255.255.254.0, 那么这两个IP地址就都属于 192.168.0.0 这个子网了。

网络包的传播

网络包在子网内是以广播的形式传播,靠的是MAC地址,通过ARP协议可以获得,但是子网间的传播依赖IP地址,需通过路由或者三层交换机才能实现。

总结

  • 通过IP地址和子网掩码进行按位与运算可以计算出IP地址所在的网络地址
  • 通过子网掩码可以更合理的划分子网,对默认子网进行拆分与合并,一定程度上减少浪费和拥堵
  • 子网内通信需要MAC地址,广播的形式来传递消息,这就是为什么网卡设置为混合模式可以截获到发给他人的消息
  • 子网间通信需要借助IP地址才能实现,不过MAC地址也是需要的,通常被设置为网管的MAC地址
  • 平时使用的 ping 命令,其实是 ICMP 协议的一部分,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

勤劳的人总能挤出时间来坚持自己的习惯,懒惰的人总能找到借口来逃避应该做的事情,认定的目标就要大胆的开始,无论什么想法只要迈出了第一步就不算晚~

2021-2-14 23:57:52

Albert Shi wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客