IP 地址
IP 地址中的 “IP” 代表Internet Protocol(互联网协议),IP 地址是在 IP 协议下使用的地址,IP 地址有三个主要功能:标识设备或网络、定位和选择路由。由于 IPv4 是第一个架构中的主要版本,所以在没有特殊说明的时候,IP 地址一般指的是 IPv4 地址。
IPv4 地址
一个 IPv4 地址被 “.” 分割成 4 个部分,每个部分 8 个 bit,总共 32 位,使用十进制表示。在设计之初,IPv4 地址被分成 5 类,如下图所示,我们平时接触到的基本是 ABC 三类。一个 IPv4 地址被分为两部分,网络号 + 主机号,这种地址分类的方式叫做分类网络。
在分类网络中,A、B、C 三类的 IPv4 地址的数量分割一点都不合理,范围跨度太大了。随着互联网的快速发展,CIDR 取代了分类网络。
CIDR (Classless Inter-Domain Routing )无类别域间路由,旨在重新划分地址空间,将地址块可以较为自由合理的分配给用户。
-
CIDR(“/” 后带着数字这种表示形式,“/” 后)将 32 位的 IP 地址一分为二,网络号 + 主机号,例如 100.100.100.2/24,前 24 位是网络号,后 8 位是主机号
-
网络号全为 1 的就是子网掩码,主机号全为 1 的就是广播地址
-
将子网掩码和 IP 地址按位计算 AND,可以得到网络号,可用于判断一个 IP 地址是不是在当前子网内
示例: 100.100.100.2/24
- 子网掩码:255.255.255.0
- 广播地址:100.100.100.255,所有 100.100.100 网络里面的机器都可以收到
- 100.100.100.20 与子网掩码做按位与运算,得到 100.100.100.0,即为网络号
易错计算: 求 16.158.165.91/22 的网络号、第一个地址、子网掩码和广播地址
- 16.158.165.91/22 → 16.158. 101001/01. 01011011
- 网络号:16.158. 101001/00.0 → 16.158.164.0
- 第一个地址:16.158.164.1
- 子网掩码:255.255.252.0
- 广播地址:16.158.167.255
特殊 IPv4 地址
- 127.0.0.1 表示本机地址
- 0.0.0.0 有两种含义,默认路由地址和通配符地址。默认路由地址我们之后再说。通配符地址指的是,若进程监听了通配符地址,那么进程监听了本机上的所有 IP 地址
IPv6 地址
由于互联网的快速兴起, IPv4 地址很快就不够用了,于是出现了 IPv6 地址。一个 IPv6 地址被 “:” 分为 8 个部分,每个部分以 4 位十六进制方式表示,总共 128 位。比如:2001:0db8:85a3:08d3:1319:8a2e:0370:734。
IPv6 地址和 IPv4 地址相似,也使用网络号 + 主机号的形式划分。一个 IPv4地址可以很容易的转换成一个 IPv6 地址,如果一个地址是 IPv4 地址,可以直接表示成::ffff:IPv4地址
,比如 ::ffff:192.168.89.9
,这种格式叫做IPv4映射地址。而::1
类似于 IPv4 中的 127.0.0.1
。
IP 地址的功能
MAC 地址
和 IP 地址相似,由于此地址作用于 MAC 层,所以称之为 MAC 地址。MAC 地址是指网络设备的硬件地址,是由网络设备的制造商烧录在设备的网卡中的一个全球唯一的地址。类比现实生活的话,IP 地址更像是精确到门牌号的地址信息,而 MAC 地址则是拥有唯一身份证号的“人”。
IP 地址 和 MAC 地址的区别
区别 | IP地址 | MAC地址 |
---|---|---|
地址类型 | 逻辑地址 | 物理地址 |
分配方式 | 由运营商分配 | 由设备制造商烧录到设备的网卡中 |
作用范围 | 全球互联网上的通信 | 局域网内通信 |
主要功能 | 标识设备和选择路由 | 唯一标识设备 |
查看 IP 地址、MAC 地址
Linux 下使用 ip addr 或 ifconfig,Windows 下使用 ipconfig
- “1” 表示 MAC 地址,是一个网卡的物理地址,使用十六进制,6个byte表示
- “2” 表示 net_device flags,网络设备的状态标识
- BROADCAST 表示此网卡有广播地址,可以发送广播包
- MULTICAST 表示此网卡可以发送多播包
- UP 表示此网卡处于启动状态
- LOWER_UP 表示 L1 启动,即网线已插入
- mtu 1500 表示最大传输单元 MTU 为 1500,是以太网的默认值,即正文部分不允许超过 1500 个字节
- qdisc 表示 queueing discipline 排队规则,内核通过网络接口发送数据包时,需要按照 qdisc 配置的规则把数据包加入队列
- mq:是一个虚拟 qdisc,目的是为网络设备的每个硬件队列创建一个 pfifo_fast 队列
- pfifo:不对数据包做任何处理,先入先出
- pfifo_fast:数据包按照服务类型 TOS Type Of Service( IP 头中的一个字段)分配到不同的波段中,每个波段对应的优先级不同
小测验