网络层协议

网络中的每台计算机都有一个 IP 地址,通过该地址可以唯一地识别和寻址。 IP 地址是第 3 层(网络层)逻辑地址。 每次计算机重新启动时,此地址可能会更改。 一台计算机可以在某个时间拥有一个 IP,而在某个不同时间拥有另一个 IP。


地址解析协议(ARP)

在通信时,主机需要属于同一广播域或网络的目标计算机的第 2 层 (MAC) 地址。 MAC 地址被物理刻录到机器的网络接口卡 (NIC) 中,并且永远不会改变。

另一方面,公共域的 IP 地址很少更改。 如果在某些故障的情况下更换了 NIC,MAC 地址也会发生变化。 这样,要进行第 2 层通信,就需要两者之间的映射。

ARP机制

要知道广播域中远程主机的 MAC 地址,希望发起通信的计算机会发送一条 ARP 广播消息,询问"谁有这个 IP 地址?" 因为是广播,所以网段(广播域)上的所有主机都会收到这个包并进行处理。 ARP 数据包包含目标主机的 IP 地址,发送主机希望与之通信。 当主机收到发往它的 ARP 数据包时,它会用自己的 MAC 地址进行回复。

一旦主机获得目的MAC地址,它就可以使用二层链路协议与远程主机通信。 这个 MAC 到 IP 的映射被保存到发送和接收主机的 ARP 缓存中。 下次如果需要通信,可以直接参考各自的ARP缓存。

反向ARP是主机知道远程主机的MAC地址但需要知道IP地址才能进行通信的机制。


互联网控制消息协议 (ICMP)

ICMP 是网络诊断和错误报告协议。 ICMP属于IP协议族,使用IP作为载体协议。 构造ICMP包后,封装在IP包中。 因为 IP 本身是一种尽力而为的不可靠协议,所以 ICMP 也是。

任何有关网络的反馈都会发送回原始主机。 如果网络发生错误,则通过ICMP报告。 ICMP 包含许多诊断和错误报告消息。

ICMP-echo 和 ICMP-echo-reply 是检查端到端主机可达性的最常用的 ICMP 消息。 当主机收到一个 ICMP-echo 请求时,它必然会发回一个 ICMP-echo-reply。 如果中转网络出现任何问题,ICMP 会报告该问题。


互联网协议版本 4 (IPv4)

IPv4 是用作 TCP/IP 主机寻址机制的 32 位寻址方案。 IP 寻址使 TCP/IP 网络上的每台主机都能被唯一识别。

IPv4 提供分层寻址方案,使其能够将网络划分为子网,每个子网都有明确定义的主机数量。 IP地址分为很多类:

  • A 类  - 它使用第一个八位字节作为网络地址,最后三个八位字节作为主机地址

  • B 类  - 它使用前两个字节作为网络地址,后两个字节作为主机地址

  • C 类  - 它使用前三个字节作为网络地址,最后一个字节作为主机地址

  • D 类  - 它提供了扁平的IP寻址方案,与以上三个的分层结构形成对比。

  • E 类  - 用作实验。

IPv4 还具有明确定义的地址空间,可用作私有地址(不可在 Internet 上路由)和公共地址(由 ISP 提供且可在 Internet 上路由)。

虽然IP不可靠; 它提供了"Best-Effort-Delivery"机制。


互联网协议版本 6 (IPv6)

IPv4 地址的枯竭催生了下一代互联网协议第 6 版。IPv6 使用 128 位宽的地址为其节点寻址,从而为未来在整个地球或更远的地方使用提供充足的地址空间。

IPv6 引入了任播寻址,但删除了广播的概念。 IPv6 使设备能够自行获取 IPv6 地址并在该子网内进行通信。 这种自动配置消除了动态主机配置协议 (DHCP) 服务器的可靠性。 这样,即使该子网上的 DHCP 服务器关闭,主机也可以相互通信。

IPv6 提供了 IPv6 移动性的新特性。 配备 IPv6 的移动机器无需更改其 IP 地址即可漫游。

IPv6 仍处于过渡阶段,预计将在未来几年完全取代 IPv4。 目前,很少有网络在 IPv6 上运行。 有一些过渡机制可用于启用 IPv6 的网络,以便在 IPv4 上轻松地在不同的网络上讲话和漫游。 它们是:

  • 双栈实现
  • 隧道
  • NAT-PT