<svg viewBox="0 0 960 520" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>
.bg { fill: #0f172a; }
.card { fill: #1e293b; rx: 12; ry: 12; stroke: #334155; stroke-width: 1.5; }
.text-title { fill: #f8fafc; font-family: system-ui, sans-serif; font-weight: 700; font-size: 22px; }
.text-subtitle { fill: #94a3b8; font-family: system-ui, sans-serif; font-size: 14px; }
.text-header { fill: #38bdf8; font-family: system-ui, sans-serif; font-weight: 600; font-size: 15px; }
.text-body { fill: #e2e8f0; font-family: system-ui, sans-serif; font-size: 13px; }
.text-muted { fill: #94a3b8; font-family: system-ui, sans-serif; font-size: 12px; }
.tag-1 { fill: #10b981; font-weight: bold; }
.tag-2 { fill: #eab308; font-weight: bold; }
.tag-3 { fill: #f97316; font-weight: bold; }
.tag-4 { fill: #ef4444; font-weight: bold; }
</style>
</defs>
<rect class="bg" height="520" width="960"></rect>
<text class="text-title" y="45" x="40">图 1.4：主机/主机游戏常见 NAT1 ~ NAT4 分级对比</text>
<text class="text-subtitle" y="70" x="40">对比不同 NAT 等级在网络拓扑、公网 IP 状态及 P2P 联机体验上的差异</text>
<rect stroke="#10b981" class="card" height="380" width="205" y="100" x="40"></rect>
<text class="text-header tag-1" y="130" x="55">NAT 1 (Full Cone)</text>
<text class="text-muted" y="155" x="55">🏠 通俗比喻：独栋别墅</text>
<path stroke="#334155" d="M 55 170 L 230 170"></path>
<text class="text-body" y="195" x="55">🌐 公网 IP: 直连 / 光猫桥接</text>
<text class="text-body" y="225" x="55">⚙️ 拓扑: 无二次 NAT 阻挡</text>
<text class="text-body" y="255" x="55">🔓 限制: 完全开放</text>
<text class="text-body" y="285" x="55">🎮 P2P 体验: ⭐⭐⭐⭐⭐</text>
<text class="text-muted" y="315" x="55">畅连所有玩家，可作为房间 Host 组队。</text>
<rect stroke="#eab308" class="card" height="380" width="205" y="100" x="265"></rect>
<text class="text-header tag-2" y="130" x="280">NAT 2 (Restricted)</text>
<text class="text-muted" y="155" x="280">🏢 通俗比喻：单元小区</text>
<path stroke="#334155" d="M 280 170 L 455 170"></path>
<text class="text-body" y="195" x="280">🌐 公网IP (经路由器NAT)</text>
<text class="text-body" y="225" x="280">⚙️ 拓扑: 单层宽松主路由</text>
<text class="text-body" y="255" x="280">🔒 限制: 需先发送数据包</text>
<text class="text-body" y="285" x="280">🎮 P2P 体验: ⭐⭐⭐⭐☆</text>
<text class="text-muted" y="315" x="280">绝大多数联机无压力，体验良好。</text>
<rect stroke="#f97316" class="card" height="380" width="205" y="100" x="490"></rect>
<text class="text-header tag-3" y="130" x="505">NAT 3 (Port Restricted)</text>
<text class="text-muted" y="155" x="505">🏬 通俗比喻：高安保写字楼</text>
<path stroke="#334155" d="M 505 170 L 680 170"></path>
<text class="text-body" y="195" x="505">🌐 公网 IP: 运营商 CGNAT</text>
<text class="text-body" y="225" x="505">⚙️ 拓扑: 多重 NAT / 严苛防火墙</text>
<text class="text-body" y="255" x="505">🔐 限制: 匹配 IP + 端口</text>
<text class="text-body" y="285" x="505">🎮 P2P 体验: ⭐⭐☆☆☆</text>
<text class="text-muted" y="315" x="505">容易断连、匹配困难，需加速器。</text>
<rect stroke="#ef4444" class="card" height="380" width="205" y="100" x="715"></rect>
<text class="text-header tag-4" y="130" x="730">NAT 4 (Symmetric)</text>
<text class="text-muted" y="155" x="730">🏰 通俗比喻：军事禁区</text>
<path stroke="#334155" d="M 730 170 L 905 170"></path>
<text class="text-body" y="195" x="730">🌐 公网 IP: 无 / 对称型 NAT</text>
<text class="text-body" y="225" x="730">⚙️ 拓扑: 目标不同端口变动</text>
<text class="text-body" y="255" x="730">🚫 限制: 拒绝外部主动打洞</text>
<text class="text-body" y="285" x="730">🎮 P2P 体验: ★☆☆☆☆</text>
<text class="text-muted" y="315" x="730">直连打洞几乎 100% 失败。</text>
</svg>
