IPv4
如 10.100.122.2 就是一个 IPv4 地址。这个地址被点分隔为四个部分,每个部分 8 个 bit 总共是 32 位
分类
类别 | 组成 | ip地址范围 | 最大主机数 | 私有ip地址范围 | ||
---|---|---|---|---|---|---|
A | 0 | 网络号(7位) | 主机号(24位) | 0.0.0.0-127.255.255.255 | 166777214 | 10.0.0.0-10.255.255.255 |
B | 10 | 网络号(14位) | 主机号(16位) | 128.0.0.0-191.255.255.255 | 65534 | 172.16.0.0-172.31.255.255 |
C | 110 | 网络号(21位) | 主机号(8位) | 192.0.0.0-223.255.255.255 | 254 | 192.168.0.0-192.168.255.255 |
D | 1110 | 多播组号(28位) | ||||
E | 11110 | 留待后用(27位) |
D 类是组播地址。使用这一类地址,属于某个组的机器都能收到。这有点类似在公司里面大家都加入了一个邮件组。发送邮件,加入这个组的都能收到。
无类型域间选路(CIDR)
- What
这种方式打破了原来设计的几类地址的做法,解决了ip浪费问题。将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号。从哪里分呢?你如果注意观察的话可以看到,10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号。
- 计算网络号
将子网掩码和 IP 地址进行 AND 计算,就可得到网络号。网络号相等,则说明是局域网地址。
- 广播地址:二进制形式,原网络号 + 主机号全为1 。如果发送这个地址,所有该网段里面的机器都可以收到
- 子网掩码:二进制形式,网络号全为1 + 主机号全为0
- 出口地址:二进制形式,原网络号 + 主机号00000001
例子一:
前面三个 255,转成二进制都是 1。1 和任何数值取 AND,都是原来数值,因而前三个数不变,为 10.100.122。后面一个 0,转换成二进制是 0,0 和任何数值取 AND,都是 0,因而最后一个数变为 0,合起来就是 10.100.122.0。这就是网络号。
例子二:
我们来看 16.158.165.91/22 这个 CIDR。求一下这个网络的第一个地址、子网掩码和广播地址。
你要是上来就写 16.158.165.1,那就大错特错了。/22 不是 8 的整数倍,不好办,只能先变成二进制来看。16.158 的部分不会动,它占了前 16 位。中间的 165,变为二进制为10100101。除了前面的 16 位,还剩 6 位。所以,这 8 位中前 6 位是网络号,16.158.<101001>,而 <01>.91 是机器号。
第一个地址是 16.158.<101001><00>.1,即 16.158.164.1。子网掩码是 255.255.<111111><00>.0,即 255.255.252.0。广播地址为 16.158.<101001><11>.255,即 16.158.167.255。
动态主机配置协议(DHCP)
动态主机配置协议(Dynamic Host Configuration Protocol),简称 DHCP。
- DHCP Discover
- DHCP Offer
IPv6
fe80::f816:3eff:fec7:7975/64。这个有 128 位
MAC
MAC 地址全局唯一,是一个网卡的物理地址,用十六进制,6 个 byte 表示。
MAC 地址的通信范围比较小,局限在一个子网里面。