IP地址查询的背后②:IP地址(IPv4)的构成、类型以及子网划分
自从各大平台将IP地址显示之后,相信广大网友对于IP地址相当不陌生了。而我们见到的IP地址往往只会显示在某市,更仔细的会看到有一段段字节所显示的字符串,而IP地址看似由很简单的1-255之间的数字所组成的四个部分,但其实质上则是二进制最后的体现形式。
其中每一个字节都代表着一个“八位字节”(其实就是8位的序列)。
IP地址存在 主机地址 、 网络地址 、 广播地址 不同种类
IP地址有很多种类,单个主机地址(eg: 192.168.57.25),就明确指向网络中的某一种特定主机。网络地址(eg: 192.168.0.0/16)则具有其特定的网络标识意义(感兴趣下次可以单独写,之前也有写过,可以翻之前的文章)。而广播地址(eg: 192.168.255.255)则会用于向特定的网络中的所有主机发送信息。
网络地址转换为二进制时需要进行特别处理
我们可以借助计算器八位字节对四个字段进行分别处理,进行网络地址和二进制之间的转换
Eg :
192.168.57.25→11000000.10101000.00111001.00011001;
192.168.0.0/16→11000000.10101000.00000000.00000000;
192.168.255.255→11000000.10101000.11111111.11111111。
而网络地址的最后若干位则全部为“0”,网络位数以“/X”表示给出
Eg :
192.168.0.0/16:网络位数“16”,这意味着该IP地址前16位为网络标识,其余位为“0”。
【资料来源: https://www.ipdatacloud.com/?utm-source=LMN&utm-keyword=?2092】
而广播地址则是与网络位相同,区别为其余位为“1”而非0。
但某些情况则会使IP地址的表示变得复杂
有些IP地址会将网络IP地址表示为192.168.0.0网络掩码255.255.0.0。
其实这里的“网络掩码”就是所有网络位都设为1的网络地址。
当子网与八位字节边界(/8、/16、/24)不匹配时,广播地址的计算就会变得棘手。
根据子网划分。IP地址是每个信息包的地址,当数据包到达路由器时,路由器会将数据包主机地址与自身网络的网络地址作比较。就是将IP 地址的初始位与各网络的位进行匹配(最多匹配到网络地址末尾“/x”所给出的网络位数)。
Eg :
某路由器拥有192.168.0.0/16网络,收到主机192.168.57.25的数据包。
该路由器还有其他网络,假设分别为192.160.0.0(/12)、192.168.0.0(/16)、192.168.0.0(/24)。
以二进制形式比较时,主机地址为11000000.10101000.00111001.00011001,网络1为11000000.1010(/12),网络2为11000000.10101000(/16),网络3为11000011.10101000.11100000(/24)。
路由器会将主机地址的前12位与网络1比较,前16位与网络2比较,前24位与网络3比较。
在此例中,前两个比较匹配,最终会依据最具体的网络,即网络2来路由数据包。
【资料来源: https://www.ipdatacloud.com/?utm-source=LMN&utm-keyword=?2092】
从十进制表示看,网络1为192.160.0.0(/12),网络2为192.168.0.0(/16),不容易看出来但二进制形式下可清晰看出网络2是网络1的子网。
这一系列关于IP地址的知识,能够对网络技术的学习或者进行相关互联网工作都是基础的知识点。