NET原理
NAT(
Network Address Translation
,网络地址转换),用来将 内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发, 这就是NAT的工作原理。
NAT(
Network Address Translators
):称为基本的NAT,这种转换的核心是地址而不是端口,基本很少见了NAPT(
Network Address/Port Translators
):其实这种才是我们常说的 NAT,就以这种来说
NAT实现方式
- NAT有三种实现方式:
- 静态转换(
Static NAT
) - 动态转换(
Dynamic Nat
) - 端口多路复用(
Port address Translation,PAT
)
- 静态转换(
静态NAT:将特定的公网地址和端口 一对一 的映射到特定的私网地址和端口,且每个私网地址都是确定的。
动态地址NAT :将内部地址与公网地址一对一的转换,但是动态地址是从合法的地址池中动态的选择未使用的公网地址,是随机的;当用户断开连接后,再次连接,可能外部地址就会切换成了另一个
网络地址端口转换NAPT(端口多路复用) :这也算是一种动态的,将多个内部地址转换为同一个公网地址,用不同的端口来区别不同的主机,可以分为圆锥型NAT和对称性NAT
- NAPT NAT的分类:
- 全锥NAT(
Full Cone NAT
) - 限制性锥NAT(
Restricted Cone NAT
) - 端口限制性锥NAT(
PortRestricted Cone NAT
) - 对称NAT (
Symmetric NAT
)
- 全锥NAT(
内部主机----->私有地址----->NAT----公网地址----->外部主机
全锥NAT(Full Cone NAT) : 一个私有地址(addr)映射到公网地址(addr)后,内部地址(addr)可以收到任意外部主机(host)发到所映射公网地址(addr)的数据报
(地址)限制性锥NAT([Address-]Restricted Cone NAT) : 一个私有地址(addr)映射到公网地址(addr)后,只有当内部主机(host)先给该(任意)外部主机(host)发送数据包后,内部主机才能通过(所映射的)公网地址接收到 该(任意)外部主机 发送到 公网地址的数据包(不限端口)[外部主机从任意端口发送到公网地址的报文将会被转发到私网地址]
端口限制性锥NAT(Port-Restricted Cone NAT) : 这种实现方式与 限制性锥NAT
类似,只是多了 端口 的限制。一个私有地址(addr)映射到公网地址(addr)后,内部主机必须先向外部主机发过数据包之后,外部主机才能够通过 对应的端口 发包到达内部地址(从"哪"进从"哪"出)
对称NAT (Symmetric NAT) : 这种实现方式不同于以上3种,就是不属于 锥NAT(Cone NAT)。当同一台内部主机使用 相同的 端口与 不同的 外部主机通信时,对称NAT会重新建立一个会话,为这个会话分配不同的端口;只有收到报文的外部主机从其对应的端口发送回应的报文,才能被转换(从"哪"来回"哪"去)。即使内部主机使用之前用过的地址端口去连接不同外部主机(或端口)时,NAT网关也会建立新的映射关系
NAT作用
完美地解决了lP地址不足的问题
NAT不仅实现地址转换,同时还起到防火墙的作用,隐藏内部网络的拓扑结构,有效地避免来自网络外部的攻击,因为对于外部主机来说,内部主机是不可见的,NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP
同时,也对P2P这种端到端连接的应用造成了困扰