NAT类型不是A或B就不能常见的联机补丁类型吗

各种nat类型
我的图书馆
各种nat类型
NAT(Network Address Translation
,网络地址转换)
是一种广泛应用的解决IP
有效方法,
将内网地址转和端口号换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信。
从表面上看有三种类型:静态
、动态地址
、地址端口转换
:静态地址转换将内部私网地址与合法公网地址进行一对一的转换,且每个内部地址的转换都是确定的。
:动态地址转换也是将内部本地地址与内部合法地址一对一的转换,但是动态地址转换是从合法地址池中动态选择一个未使用的地址来对内部私有地址进行转换。
:它也是一种动态转换,而且多个内部地址被转换成同一个合法公网地址,使用不同的端口号来区分不同的主机,不同的进程。
从实现的技术角度,又可以将NAT
分成如下几类:全锥NAT(Full Cone NAT)
、限制性锥NAT
(Restricted Cone NAT
)、端口限制性锥NAT( Port
Restricted Cone NAT)
、对称NAT ( Symmetric NAT)
把所有来自相同内部IP
地址和端口的请求映射到相同的外部IP
地址和端口。任何一个外部主机均可通过该映射发送数据包到该内部主机。
)限制性锥NAT
:限制性锥NAT
把所有来自相同内部IP
地址和端口的请求映射到相同的外部IP
地址和端口。但是,
不同的是:只有当内部主机先给外部主机发送数据包,
该外部主机才能向该内部主机发送数据包。
)端口限制性锥NAT
:端口限制性锥NAT
与限制性锥NAT
只是多了端口号的限制,
即只有内部主机先向外部地址:端口号对发送数据包,
该外部主机才能使用特定的端口号向内部主机发送数据包。
种类型都不同,
不管是全锥NAT
,限制性锥NAT
还是端口限制性锥NAT
,它们都属于锥NAT
)。当同一内部主机使用相同的端口与不同地址的外部主机进行通信时,
会重新建立一个Session
,为这个Session
分配不同的端口号,或许还会改变IP
不仅实现地址转换,同时还起到防火墙的作用,隐藏内部网络的拓扑结构,保护内部主机。
不仅完美地解决了
地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
这样对于外部主机来说,内部主机是不可见的。但是,对于P2P
应用来说,却要求能够建立端到端的连接,所以如何穿透NAT
技术中的一个关键。
要让处于NAT
设备之后的拥有私有IP
地址的主机之间建立P2P
连接,就必须想办法穿
,现在常用的传输层协议主要有TCP
,下面就是用这两种协议来介绍穿透NAT
网络拓扑结构
下面假设有如图1
所示网络拓扑结构图。
网络拓扑结构图
(129.208.12.38
)是公网上的服务器,NAT-A
设备(可能是集成NAT
功能的路由器,防火墙等),它们具有若干个合法公网IP
阻隔的私有网络中有若干台主机【ClientA-1
,ClientA-N
】,在NAT-B
阻隔的私有网络中也有若干台主机【ClientB-1
,ClientB-N
】。为了以后说明问题方便,只讨论主机ClientA-1
和ClientB-1
假设主机ClientA-1
和主机ClientB-1
都和服务器Server
建立了“连接”,如图2
图2.ClientA-1
,ClientB-1
的透明性,所以ClientA-1
和ClientB-1
不用关心和Server
通信的过程,它们只需要知道Server
开放服务的地址和端口号即可。根据图1
,假设在ClientA-1
中有进程使用socket
(192.168.0.2
)和Server
通信,在ClientB-1
中有进程使用socket
(192.168.1.12:8000
)和Server
通信。它们通过各自的NAT
转换后分别变成了socket
(202.103.142.29
)和socket
(221.10.145.84
通常情况下,当进程使用UDP
和外部主机通信时,NAT
会建立一个Session
,这个Session
能够保留多久并没有标准,或许几秒,几分钟,几个小时。假设ClientA-1
在应用程序中看到了ClientB-1
在线,并且想和ClientB-1
通信,一种办法是Server
作为中间人,负责转发ClientA-1
和ClientB-1
之间的消息,但是这样服务器太累,会吃不消。另一种方法就是让ClientA-1
何ClientB-1
建立端到端的连接,然后他们自己通信。这也就是P2P
连接。根据不同类型的NAT
,下面分别讲解。
,穿透全锥型NAT
很容易,根本称不上穿透,因为全锥型NAT
将内部主机的映射到确定的地址,不会阻止从外部发送的连接请求,所以可以不用任何辅助手段就可以建立连接。
)限制性锥NAT
和端口限制性锥NAT
(简称限制性NAT
),穿透限制性锥NAT
会丢弃它未知的源地址发向内部主机的数据包。所以如果现在ClientA-1
直接发送UDP
数据包到ClientB-1
,那么数据包将会被NAT-B
无情的丢弃。所以采用下面的方法来建立ClientA-1
和ClientB-1
之间的通信。
.ClientA-1
(202.103.142.29:5000
)发送数据包给Server
,请求和ClientB-1
(221.10.145.84:6000
将ClientA-1
的地址和端口(202.103.142.29:5000
)发送给ClientB-1
,告诉ClientB-1
,ClientA-1
想和它通信。
3. ClientB-1
向ClientA-1
(202.103.142.29:5000
数据包,当然这个包在到达NAT-A
的时候,还是会被丢弃,这并不是关键的,因为发送这个UDP
包只是为了让NAT-B
记住这次通信的目的地址:端口号,当下次以这个地址和端口为源的数据到达的时候就不会被NAT-B
丢弃,这样就在NAT-B
上打了一个从ClientB-1
到ClientA-1
为了让ClientA-1
知道什么时候才可以向ClientB-1
发送数据,所以ClientB-1
在向ClientA-1
(202.103.142.29:5000
)打孔之后还要向Server
发送一个消息,告诉Server
它已经准备好了。
发送一个消息给ClientA-1
,内容为:ClientB-1
已经准备好了,你可以向ClientB-1
发送消息了。
6. ClientA-1
向ClientB-1
数据包。这个数据包不会被NAT-B
丢弃,以后ClientB-1
向ClientA-1
发送的数据包也不会被ClientA-1
丢弃,因为NAT-A
已经知道是ClientA-1
首先发起的通信。至此,ClientA-1
和ClientB-1
就可以进行通信了。
协议穿透NAT
的方式和使用UDP
协议穿透NAT
的方式几乎一样,没有什么本质上的区别,只是将无连接的UDP
变成了面向连接的TCP
。值得注意是:
在向ClientA-1
打孔时,发送的SYN
数据包,而且同样会被NAT-A
丢弃。同时,ClientB-1
需要在原来的socket
上监听,由于重用socket
,所以需要将socket
属性设置为SO_REUSEADDR
向ClientB-1
发送连接请求。同样,由于ClientB-1
到ClientA-1
方向的孔已经打好,所以连接会成功,经过3
次握手后,ClientA-1
到ClientB-1
之间的连接就建立起来了。
穿透对称NAT
上面讨论的都是怎样穿透锥(Cone
很不一样。对于
,当一个私网内主机和外部多个不同主机通信时,对称NAT
并不会像锥(Cone
,全锥,限制性锥,端口限制性锥)NAT
那样分配同一个端口。而是会新建立一个Session
,重新分配一个端口。参考上面穿透限制性锥NAT
的过程,在步骤3
时:ClientB-1
(221.10.145.84:
?)向ClientA-1
打孔的时候,对称NAT
将给ClientB-1
重新分配一个端口号,而这个端口号对于Server
、ClientB-1
、ClientA-1
来说都是未知的。同样, ClientA-1
根本不会收到这个消息,同时在步骤4
,ClientB-1
发送给Server
的通知消息中,ClientB-1
依旧是(221.10.145.84:6000
)。而且,在步骤6
时:ClientA-1
向它所知道但错误的ClientB-1
发送数据包时,NAT-1
也会重新给ClientA-1
分配端口号。所以,穿透对称NAT
的机会很小。下面是两种有可能穿透对称NAT
.同时开放TCP
Simultaneous
接收到一个来自
接,一般来
包,或者回送一个TCP RST
(connection reset
求方。但是,有一
却会接受这个“引入”连接。
规定:对于对称NAT
个接收到的
包中的源IP
端口都与NAT
中的地址信息相符
的是:怎样才是一个已经激活的TCP
连接?除了真正已经建立完成的TCP
连接外,RFC
规范指出:
恰好看到一个
送出去的一个
接收到的SYN
包中的地址
信息相符合的
被激活,并将允
同时开放TCP
策略就是利用这个时机来建立连接的。
彼此正确的
接分配的公网
端口,并且两个客
个面向对方的
包到达之前,自己
成功地建立了
端口猜测策略
同时开放TCP
策略非常依赖于猜测对方的下一个端口,而且强烈依赖于发送连接请求的时机,而且还有网络的不确定性,所以能够建立的机会很小,即使Server
充当同步时钟的角色。下面是一种通过UDP
穿透的方法,由于UDP
不需要建立连接,所以也就不需要考虑“同时开放”的问题。
为了介绍ClientB-1
的诡计,先介绍一下STUN
协议。STUN
Traversal of UDP Through NATs
)协议是一个轻量级协议,用来探测被NAT
映射后的地址:端口。STUN
结构,需要探测自己被NAT
转换后的地址:端口的Client
发送请求,Server
返回Client
转换后的地址:端口。
节中穿透NAT
,当ClientB-1
收到Server
发送给它的消息后,ClientB-1
。socket-0
向STUN Server
发送请求,收到回复后,假设得知它被转换后的地址:端口(
221.10.145.84:600
),socket-1
向ClientA-1
发送一个UDP
包,socket-2
再次向另一个STUN
发送请求,假设得到它被转换后的地址:端口(
221.10.145.84:60
)。通常,对称NAT
分配端口有两种策略,一种是按顺序增加,一种是随机分配。如果这里对称NAT
使用顺序增加策略,那么,ClientB-1
将两次收到的地址:端口发送给Server
后,Server
就可以通知ClientA-1
在这个端口范围内猜测刚才ClientB-1
发送给它的socket-1
映射后的地址:端口,ClientA-1
很有可能在孔有效期内成功猜测到端口号,从而和ClientB-1
成功通信。
从上面两种穿透对称NAT
的方法来看,都建立在了严格的假设条件下。但是现实中多数的NAT
,因为资源毕竟很重要,反观对称NAT
,由于太不节约端口号所以相对来说成本较高。所以,不管是穿透锥NAT
,还是对称NAT
,现实中都是可以办到的。除非对称NAT
真的使用随机算法来分配可用的端口。
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢_不是A就是B_的又一种并列句_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
_不是A就是B_的又一种并列句
&&语言学论文
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢我建立三台虚拟机分别是ABC。A联网,B和C共享A的网络。有没有可能实现?_百度知道
我建立三台虚拟机分别是ABC。A联网,B和C共享A的网络。有没有可能实现?
我有更好的答案
很简单A设两块虚拟网卡,一块联网并共享(共享给第二块网卡),B和C与A的第二块网卡设在同一虚拟网段内,这样B和C就能共享A的网段
虚拟机之间ping不通
如A 的第一块网卡地址192.168.1.1(此地址连网),A的第二块网卡地址192.168.2.1,B和C分别为192.168.2.2、192.168.2.3,这样用192.168.2网段ping,就能ping通
有时间的话留个qq。帮我远程弄一下,给你发红包。
虚拟机系统里没有共享网络的选项
vmwarehyper-v
找到大神了。有希望解决了
还的求您远程帮我弄一下。我这本地连接里没有那个选项
在服务里开启Internet Connection Sharing(ICS)服务和Windows Firewall服务在单位网络带宽有限,看看新闻还可以,远程无法使用
虽然我还没找到,还是谢谢您
采纳率:52%
来自团队:
我觉的在a添加一张网卡在网络设置里放到虚拟机网络里,这里A是两络网卡可以做网络共享,B 和C呢在网络部分里不是用桥接也不是用nat而是将其添加到与A相同的那个虚拟网络就可以了
可以,很简单的,把b和c网卡断掉就行了,望采纳
那怎么能共享A的网络呢?首先得在一个网段里吧
那就建立一个虚拟网卡。 建立一个内网
你成功过么?如果成功过你远程给我解决了我给你发红包
我是专门内网渗透的,
乌云网有我的漏洞,我去给你看
麻烦采纳下
其他1条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。这样算不算一个NAT,接光猫的路由器A的LAN口插路由器B的WAN口,通过B上网?_百度知道
这样算不算一个NAT,接光猫的路由器A的LAN口插路由器B的WAN口,通过B上网?
我有更好的答案
b路由,两台路由有n个是nat模式,那就是b的nat模式;如果光猫桥接,a是nat要看你设备的模式了。如果光猫是桥接模式,a是路由模式;如果光猫是路由模式,那就是a路由模式,b是路由就是双nat,b是nat模式
实际上这是两个NAT,两个路由器进行了两次地址转换。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 饥荒联机版 的文章

 

随机推荐