凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 752990
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:32
个人简介

小公司研发总监,既当司令也当兵!

文章分类

全部博文(144)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2015-06-22 09:21:39


nat类型介绍-凯发app官方网站

    我们平时使用nat时,可能没有注意用的是哪种类型的nat。事实上,nat按照网络通讯的限制,大致可以分为以下四类:full cone nat(完全圆锥型)address restricted cone nat(地址限制圆锥型)port restricted cone nat(端口限制圆锥型)symmetric nat(对称型)

内网主机建立一个udp socket(localip:localport),第一次使用这个socket给外部主机发送数据时,nat会给其分配一个公网(publicip:publicport),以后用这个socket向外面任何主机发送数据都将使用这对公网(publicip:publicport)。此外,任何外部主机只要知道这个(publicip:publicport),就可以发送数据给(publicip:publicport),内网的主机就能收到这个数据包。

具体来说就是,如图1所示,nat会将客户机地址{x:y}转换成公网地址{a:b}并绑定,任何包都可以通过地址{a:b}送到客户主机的{x:y}地址上。

     

1 full cone nat

   

内网主机建立一个udp socket(localip:localport),第一次使用这个socket给外部主机发送数据时,nat会给其分配一个公网(publicip:publicport),以后用这个socket向外面任何主机发送数据都将使用这对(publicip:publicport)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(publicip:publicport),并且内网主机之前用这个socket曾向这个外部主机ip发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(ip,任何端口)发送数据给(publicip:publicport),内网的主机就能收到这个数据包。

 

2 address restricted cone nat

具体的说就是,如图2所示,nat会将客户机地址{x:y}转换成公网地址{a:b}并绑定,只有来自主机{p}的包才能和主机{x:y}通信。

 

内网主机建立一个udp socket(localip:localport) 第一次使用这个socket给外部主机发送数据时nat会给其分配一个公网(publicip:publicport),以后用这个socket向外面任何主机发送数据都将使用这对(publicip:publicport)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(publicip:publicport)并且内网主机之前用这个socket曾向这个外部主机(ip,port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(ip,port)发送数据给(publicip:publicport),内网的主机就能收到这个数据包。

具体来说就是,如图3所示,nat会将客户机地址{x:y}转换成公网地址{a:b}并绑定,只有来自主机{p,q}的包才能和主机{x:y}通信。

 

3 port restricted cone nat

内网主机建立一个udp socket(localip,localport),当用这个socket第一次发数据给外部主机1时,nat为其映射一个(publicip-1,port-1),以后内网主机发送给外部主机1的所有数据都是用这个(publicip-1,port-1)。如果内网主机同时用这个socket给外部主机2发送数据,第一次发送时,nat会为其分配一个(publicip-2,port-2),以后内网主机发送给外部主机2的所有数据都是用这个(publicip-2,port-2)。如果nat有多于一个公网ip,则(publicip-1)和(publicip-2)可能不同。如果nat只有一个公网ip,则(port-1)和(port-2)肯定不同,也就是说一定不能是(publicip-1)等于(publicip-2)且(port-1)等于(port-2)。此外,如果任何外部主机想要发送数据给这个内网主机,那么它首先应该收到内网主机发给它的数据,然后才能往回发送,否则即使它知道内网主机的一个(publicip,port),也不能发送数据给内网主机,这种nat无法实现udp-p2p通信。

具体的说就是,如图4所示,nat会将客户机地址{x:y}转换成公网地址{a:b}并绑定为{x:y}|{a:b}<->{p:q}nat只接受来自{p:q}incoming packet,将它转给{x:y} ,每次客户机请求一个不同的公网地址和端口时,nat就会新分配一个端口号{c,d}

 

4 symmetric nat

 

阅读(2981) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图