笔记

无言

简述

NAT是Network Address Translation的缩写,也就是网络地址转换的意思。
本质是为了解决ip地址不够用的问题,思路是将公网ip收到的包转换为私网ip接收使1个公网ip可以对应多个私网ip

详情

  1. 完全圆锥形NAT(Full Cone NAT)
    任何公网主机都可与之通讯。双方都可以主动发起
    完全圆锥型NAT把一个来自内部IP地址和端口的所有请求,始终映射到相同的外网IP地址和端口;同时,任意外部主机向该映射的外网IP地址和端口发送报文,都可以实现和内网主机进行通信,就像一个向外开口的圆锥形一样,故得名。
    这种模式很宽松,限制小,只要内网主机的IP地址和端口与公网IP地址和端口建立映射关系,所有互联网上的主机都可以访问该NAT之后的内网主机。

类似静态NAT

  1. 地址限制式圆锥形NAT(Address Restricted Cone NAT)
    只有内网主动连接的公网主机可与之通讯,必须内网主机发起。且此公网主机可通过任意端口与内网主机通讯。
    地址限制式圆锥形NAT同样把一个来自内部IP地址和端口的所有请求,始终映射到相同的外网IP地址和端口;与完全圆锥型NAT不同的是,当内网主机向某公网主机发送过报文后,只有该公网主机才能向内网主机发送报文,故得名。相比NAT1,NAT2 增加了地址限制,也就是IP受限,而端口不受限。

限制IP通信

  1. 端口限制式圆锥形NAT(Port Restricted Cone NAT)
    只有内网主动连接的公网主机的连接可与之通讯,必须内网主机发起。且此公网只能通过固定的端口与之进行通讯。
    端口限制式圆锥形NAT更加严格,在上述条件下,只有该公网主机该端口才能向内网主机发送报文,故得名。相比NAT2,NAT3 又增加了端口限制,也就是说IP、端口都受限。

Snipaste_2022-09-27_11-32-17.png

  1. 对称式NAT(Symmetric NAT)
    根据四元组创建NAT映射,四元组中的任何一项发生变化均导致NAT映射的更换。此形状双方一对一映射,因此被称之为对称NAT。
    对称式NAT把内网IP和端口到相同目的地址和端口的所有请求,都映射到同一个公网地址和端口;同一个内网主机,用相同的内网IP和端口向另外一个目的地址发送报文,则会用不同的映射(比如映射到不同的端口)。
    和端口限制式NAT不同的是,端口限制式NAT是所有请求映射到相同的公网IP地址和端口,而对称式NAT是为不同的请求建立不同的映射。它具有端口受限锥型的受限特性,内部地址每一次请求一个特定的外部地址,都可能会绑定到一个新的端口号。也就是请求不同的外部地址映射的端口号是可能不同的。这种类型基本上就告别 P2P 了。

Snipaste_2022-09-27_11-32-56.png

打洞(Hole Punching)

打洞的原理:内部主机通过 NAT 与外部通信时创建了session,确保,外部主机可以通过NAT上特定的端口访问内部。
对称式NAT几乎没有打洞的可能(因为每次通信使用的ip和端口都是不一样的),只有当两边都是圆锥式NAT时打洞才能成立。

p2p 基本过程

client1 -> server server获得一个client1方向的洞 (server 获得 client1 在外网通信的一个地址和端口)
client2 -> server server获得一个client2方向的洞 (server 获得 client2 在外网通信的一个地址和端口)
server(client2) -> client1 client2 请求 client1 (client2 通过 server 获得 client1 的地址并打洞)
client1 -> client2 (client1 通过这个洞建立到 client2 的链接)

Comment

This is just a placeholder img.