IP位于网络层,作用是主机间的通信,负责在没有直连的两个网络之间传输通信数据,而MAC位于数据链路层,作用是实现两个设备之间的直连通信
IP地址(IPv4)由32位二进制数表示,在计算机中是以二进制的方式处理的,人类为了方便记忆而采用了点分十进制的标记方式:也就是将32位二进制的IP地址以每8位为一组,共分为4组,组之间用“.”隔开,再将每组转换成十进制数表示。也就是说,IP地址的最大值就是232 = 4294967296
互联网诞生之初,IP地址显得很充裕,因此计算机科学家们设计了分类地址。他们把IP地址分为五种类型:A、B、C、D、E。
类别 | IP地址范围 | 最大主机数 |
---|---|---|
A | 0.0.0.0 ~ 127.255.255.255 | 16777214 |
B | 128.0.0.0 ~ 191.255.255.255 | 65534 |
C | 192.0.0.0 ~ 223.255.255.255 | 254 |
为什么要有网络号?因为除了需要定位某台具体的计算机,还需要定位某个网络。网络号和主机号的关系,就好比楼栋和住户的关系,也就是「网络号:主机号 == 楼栋号:住户」。
最大主机数 = 2主机号的位数 - 2,例如C类IP地址的主机号位数为8,那么C类IP地址的最大主机数 = 28 - 2 = 254。之所以要减2,是因为有两个IP是特殊的,分别是主机号全为1和主机号全为0。
不再有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位表示主机数,通过公式可计算出:
在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] ,它发送和接收数据不会受防火墙和网卡的限制