zl程序教程

您现在的位置是:首页 >  其他

当前栏目

IP 基础

2023-09-11 14:22:32 时间

1、IP地址

IP位于网络层,作用是主机间的通信,负责在没有直连的两个网络之间传输通信数据,而MAC位于数据链路层,作用是实现两个设备之间的直连通信

IP地址(IPv4)由32位二进制数表示,在计算机中是以二进制的方式处理的,人类为了方便记忆而采用了点分十进制的标记方式:也就是将32位二进制的IP地址以每8位为一组,共分为4组,组之间用“.”隔开,再将每组转换成十进制数表示。也就是说,IP地址的最大值就是232 = 4294967296

2、IP地址分类

互联网诞生之初,IP地址显得很充裕,因此计算机科学家们设计了分类地址。他们把IP地址分为五种类型:A、B、C、D、E。

类别IP地址范围最大主机数
A0.0.0.0 ~ 127.255.255.25516777214
B128.0.0.0 ~ 191.255.255.25565534
C192.0.0.0 ~ 223.255.255.255254

为什么要有网络号?因为除了需要定位某台具体的计算机,还需要定位某个网络。网络号和主机号的关系,就好比楼栋和住户的关系,也就是「网络号:主机号 == 楼栋号:住户」。

最大主机数 = 2主机号的位数 - 2,例如C类IP地址的主机号位数为8,那么C类IP地址的最大主机数 = 28 - 2 = 254。之所以要减2,是因为有两个IP是特殊的,分别是主机号全为1和主机号全为0。

3、无分类地址CIDR

不再有A、B、C、D、E等分类的概念,而是仅仅将32位的IP地址划分成两部分:网络号 + 主机号,形式为:a.b.c.d/x,其中/x表示前x位属于网络号,范围是0~32。例如10.100.122.2/24,通过CIDR也可以得到子网掩码。

计算出192.168.1.28/26的子网掩码、子网数、可用主机数、网关、广播地址。

那么子网掩码10进制转换到2进制就是:(11111111.11111111.11111111.11000000)

0和任何数相与都等于0,1和任何数相与都等于任何数本身。 

前面26位表示网络位,后面6位表示主机数,通过公式可计算出:

  • 子网掩码:255.255.255.192
  • 子网数:2^x次方=4个子网(C类默认是/24嘛。所以x=2,代表借用了2位主机号1)
  • 可用主机数:2^y次方=64-2=62(y是子网掩码中0的个数=6,-2代表扣除网络地址、广播地址)
  • 网络地址:192.168.1.0(计算方式:二进制的ip地址和子网掩码逻辑与计算之后的结果)
  • 广播地址:192.168.1.63(计算公式:二进制的子网掩码取反和网络地址或运算的结果)。所以广播地址就是11000000.10101000.00000001.00111111。换算成10进制即为:192.168.1.63。
  • 各子网分别是:192.168.1.0--63、192.168.1.64--127、
    192.168.1.128--191、192.168.1.192--253、

4、小知识

在A、B、C三类地址中,分别都有一个保留地址。

  • A类:10.0.0.0 ~ 10.255.255.255

  • B类:172.16.0.0 ~ 172.31.255.255

  • C类:192.168.0.0 ~ 192.168.255.255

也就是说,这三组地址是私有网络地址,在互联网上是用不了的

本机IP、127.0.0.1和localhost:经常可以在开发中看到这三个不同的IP地址。他们之间的区别是什么呢?

  • 本机IP:确切地说是本机物理网卡的IP地址,它发送和接收数据会受到防火墙和网卡的限制

  • 127.0.0.1:这是一个环回地址,也是一个特殊的网络接口,从它发出的任何数据包都不会出现在网络中,它发送和接收数据也会受到防火墙和网卡的限制

  • localhost:它是一个域名,过去它指向127.0.0.1这个IP地址,现在它同时还指向IPv6地址:[::1] ,它发送和接收数据不会受防火墙和网卡的限制