网络基础

231 阅读2分钟

一些概念

  • 子网掩码 & 默认网关 & MAC地址
  • 网络(位)数 & 主机(位)数

子网掩码

简单点

简单来说, IP地址分为网络号 + 主机号, 而仅靠IP地址是无法得知/区分对应的网络号和主机号, 子网掩码就是为了区分IP地址中的哪一部分为主机号,哪一部分未网络号。

举个例子, 192.168.1.100/24 表示:

  • ip地址: 192.168.1.100
  • 子网掩码: 24个1加8个0(ipv4地址二进制共32位) 11111111 11111111 11111111 00000000
  • 网络(位)数: 24
  • 主机(位)数: 8

子网掩码决定了该IP地址的前24位代表网络号(即逻辑网络定义), 后8位代表主机号(即同一网络内的主机标识)。 例子中IP地址对应的网络号为 192.168.1, 对应的主机号为 100

认真点

子网掩码需要和默认网关和MAC地址放在一起来看。

首先回顾一下计算机发送数据的过程, IP地址是IP层的协议,而数据链路层在发送数据时只有MAC地址,因此发送数据前需要先确定目标的MAC地址。

根据IP地址查找MAC地址的具体过程如下:

  • 机器联网时,对外广播自己的IP地址和MAC地址;
  • 其它机器收到广播时,在自己的ARP表中记录收到的IP地址和MAC地址关系;
  • 需要发送数据时, 在自己的ARP表中检索IP地址:
    • 若能查到MAC地址, 则将数据发送到该MAC地址上
    • 若查不到, 则将要查询的IP地址广播出去,要求对应IP地址的机器执行第一步广播操作,并稍后重复检索自己的ARP表;

计算机在发送数据包时需要校验目标IP与本机IP是否在同一个子网内(逻辑网络), 如果在同一子网内,则直接发送数据,否则将数据包发送给默认网关进行处理。 判断两个IP地址是否在同一个子网内的方法就是: 判断两个IP地址与子网掩码按位与后的结果是否与自己的子网掩码相同。