端口地址转换 (PAT)(也称为 NAT 过载),将多个私有 IPv4 地址映射到单个私有 IPv4 地址或几个地址。 大多数家用路由器正是如此。 ISP 为路由器分配了一个地址,而几个家庭成员可以同时访问 Internet。 这是 NAT 的最常用方式。

PAT 可以将多个地址映射到一个或少数几个地址,因为每个私有地址也会用端口号加以跟踪。 当设备发起 TCP/IP 会话时,它将生成 TCP 或 UDP 源端口值,以唯一标识会话。 当 NAT 路由器收到来自客户端的数据包时,将使用其源端口号来唯一确定特定的 NAT 转换。

PAT 利用 Internet 上的服务器确保设备对每个会话使用不同的 TCP 端口号。 当服务器返回响应时,源端口号(在回程中变成目的端口号)决定路由器将数据包转发到哪个设备。 PAT 流程还会检查是否请求过传入的数据包,因此这在一定程度上提高了会话的安全性。

单击图中的“播放”和“暂停”按钮控制动画播放。

动画演示了 PAT 流程。 PAT 会将唯一的源端口号添加到内部全局地址上来区分不同的转换。

当 R2 处理各数据包时,它使用端口号(本例中为 1331 和 1555)来识别发起数据包的设备。 源地址 (SA) 为内部本地地址加上 TCP/IP 分配的端口号。 目的地址 (DA) 为外部本地地址加上服务的端口号。 在本示例中,HTTP 服务端口为 80。

对于源地址,R2 会将内部本地地址转换为内部全局地址,并添加端口号。 目的地址未做更改,但此时称为外部全局 IP 地址。 当 Web 服务器做出回复时,路径正好相反。