TCP/IP 寻址学习笔记
IP 地址
IP 地址是互联网上设备的唯一标识,由 32 位二进制数字组成。
通常我们用“点分十进制”表示一个 IP 地址,即将 32 位二进制数字分成 4 组,每组 8 位,再将每组转换为十进制数,用点号隔开。
例如,192.168.1.1 就是一个 IP 地址。
IPv4 地址的范围是 0.0.0.0 到 255.255.255.255。其中,0.0.0.0 是保留地址,表示本地主机;255.255.255.255 是广播地址,代表网络上的所有设备。
在实际应用中,通常将一个网络划分成若干个子网,每个子网使用一个子网掩码来限定 IP 地址的范围。
例如,假设一个局域网使用 192.168.1.0/24 的地址段,其中 /24 表示子网掩码为 255.255.255.0,那么这个局域网最多可以连接 254 台设备,其中 192.168.1.1 是网关地址(即连接其他网络的设备)。
MAC 地址
MAC 地址是硬件设备的唯一标识,由 48 位二进制数字组成。
MAC 地址是固化在网卡中的,一般不会改变。在网络通信中,每个设备都需要有一个唯一的 MAC 地址,以便在数据帧传输时进行标识和识别。
例如,00-16-3E-0D-33-11 就是一个 MAC 地址。其中前 24 位是厂商编号,后 24 位是流水号。
ARP 协议
ARP(Address Resolution Protocol)是用于将 IP 地址转换为 MAC 地址的协议。
在 TCP/IP 网络中,每个设备都拥有一个 ARP 缓存表(ARP Cache Table),该表中存储了最近一段时间内与本机通信过的设备的 IP 地址和对应的 MAC 地址。
当一个设备需要与另一个设备通信时,如果该设备没有对应的 MAC 地址信息,就会发送一个 ARP 请求数据包,请求该设备回复其 MAC 地址。对方设备收到请求后,就会回复一个 ARP 响应数据包,携带自己的 MAC 地址信息。
例如,设备 A 需要向设备 B 发送数据。设备 A 先查询自己的 ARP 缓存表,看是否已经有设备 B 的 MAC 地址信息。如果没有,设备 A 就会向局域网广播一个 ARP 请求数据包,请求设备 B 回复自己的 MAC 地址。设备 B 收到请求后,就会回复一个 ARP 响应数据包,携带自己的 MAC 地址信息。设备 A 收到响应后,就可以将数据发送给设备 B 了。
示例
假设有一个局域网,其中有三台设备,它们的 IP 地址和 MAC 地址如下表所示:
设备 | IP 地址 | MAC 地址 |
---|---|---|
A | 192.168.1.2 | 00-11-22-33-44-55 |
B | 192.168.1.3 | 66-77-88-99-AA-BB |
C | 192.168.1.4 | CC-DD-EE-FF-11-22 |
当设备 A 需要向设备 B 发送数据时,设备 A 首先查询自己的 ARP 缓存表,发现没有设备 B 的 MAC 地址信息。于是设备 A 向局域网广播一个 ARP 请求数据包,请求设备 B 回复自己的 MAC 地址。设备 B 收到请求后,就会回复一个 ARP 响应数据包,携带自己的 MAC 地址信息。设备 A 收到响应后,就可以将数据发送给设备 B 了。
类似地,当设备 A 需要向设备 C 发送数据时,也需要先查询 ARP 缓存表,发现没有设备 C 的 MAC 地址信息。于是设备 A 向局域网广播一个 ARP 请求数据包,请求设备 C 回复自己的 MAC 地址。设备 C 收到请求后,就会回复一个 ARP 响应数据包,携带自己的 MAC 地址信息。设备 A 收到响应后,就可以将数据发送给设备 C 了。
需要注意的是,在大规模网络中,ARP 请求会导致网络中的广播风暴(Broadcast Storm),影响网络通信效率。因此,通常会使用一些技术手段来减少 ARP 请求的次数,例如 ARP 缓存、静态 ARP 表、ARP 抑制等。