Data Communication Computer Network 简明教程

Network Layer Protocols

网络中的每台计算机都有一个 IP 地址,可通过该地址对其进行唯一标识和寻址。IP 地址是第 3 层(网络层)的逻辑地址。此地址在每次计算机重启时都可能更改。计算机在某一时间可以有一个 IP,在另一时间可以有另一个 IP。

Address Resolution Protocol(ARP)

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

另一方面,公有域的 IP 地址很少更改。如果在出现某些故障的情况下更换了网卡,MAC 地址也会更改。这样,为了进行第 2 层通信,需要对两者进行映射。

arp

为了得知广播域中远程主机的 MAC 地址,希望启动通信的计算机发送一个 ARP 广播消息,询问“谁拥有这个 IP 地址?”由于是广播,网络段(广播域)上的所有主机都会接收并处理此数据包。ARP 数据包包含目标主机的 IP 地址,发送主机希望与此主机通信。当一台主机收到发往自己的 ARP 数据包时,它会用自己的 MAC 地址回复。

一旦主机获取了目标 MAC 地址,它就可以使用第 2 层链路协议与远程主机通信。此 MAC 到 IP 的映射将保存到发送和接收主机的 ARP 缓存中。下次如果需要通信,它们可以直接引用各自的 ARP 缓存。

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

Internet Control Message Protocol (ICMP)

ICMP 是一种网络诊断和错误报告协议。ICMP 属于 IP 协议套件,并使用 IP 作为载波协议。在构造 ICMP 数据包后,它会封装在 IP 数据包中。因为 IP 本身就是一种尽力而为的不可靠协议,所以 ICMP 也是如此。

任何有关网络的反馈都将发回源主机。如果网络中发生某些错误,将通过 ICMP 报告。ICMP 包含数十个诊断和错误报告消息。

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

Internet Protocol Version 4 (IPv4)

IPv4 是用作 TCP/IP 主机寻址机制的 32 位寻址方案。IP 寻址使 TCP/IP 网络上的每个主机都可以唯一标识。

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

  1. Class A - 它使用第一个八位字节进行网络地址编址,使用最后三个八位字节进行主机地址编址

  2. Class B - 它使用前两个八位字节进行网络地址编址,使用最后两个八位字节进行主机地址编址

  3. Class C - 它使用前三个八位字节进行网络地址编址,使用最后一个八位字节进行主机地址编址

  4. Class D - 与上述三个的分层结构相反,它提供了平面 IP 地址编制方案。

  5. Class E - 它用作实验。

IPv4 还拥有明确定义的地址空间,可作为私有地址(无法在互联网上路由)和公共地址(由 ISP 提供并可以在互联网上路由)使用。

虽然 IP 不是可靠的,但它提供了“尽力而为的交付”机制。

Internet Protocol Version 6 (IPv6)

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

IPv6 引入了 Anycast 地址指定,但去掉了广播概念。IPv6 使设备能够自动获取 IPv6 地址并在子网内通信。这种自动配置消除了对动态主机配置协议 (DHCP) 服务器的依赖。这样一来,即使该子网上的 DHCP 服务器宕机,主机也能相互通信。

IPv6 提供了 IPv6 移动性这一新特性。具备移动 IPv6 的机器可以在无需更改其 IP 地址的情况下漫游。

IPv6 仍处于过渡阶段,预计在未来几年将完全取代 IPv4。目前,只有少数网络在运行 IPv6。有一些过渡机制可用于使启用了 IPv6 的网络在 IPv4 上轻松地相互通信和漫游。这些机制包括:

  1. Dual stack implementation

  2. Tunneling

  3. NAT-PT