日期:2014-05-18  浏览次数:20946 次

关于NAT穿透
看到关于NAT穿透的 说内网的机器192.168.1.100通过网关192.168.1.1和公网上的一台机器通信 可以通过NAT穿透让内网机器“打洞”让公网机器可以传过路由和192.168.1.100通信 这个打洞是什么做的呢?糊涂ing。。。

------解决方案--------------------
以下是我自己的理解:有不当这处,希望纠正。
打洞就是在网关,建立一个session(非网页里的session),但是这个只能单向建立,即只能由内网向网关打洞。
一般我们由内网访问外网的某个IP,就会在网关中建立一个session,这样,当这个外网的ip需要发送信息给我们内网的这个机器时,只需要发送给网关,网关便会根据session将信息直接发送给对应的内网机器,而其它发送给内网的信息则会被抛弃。因此如果想要两台处于不同内网的机器要互相通信,就需要在各自的网关建立session,以便允许两台机器的通信不被网关所抛弃。就好像在这两台机器间打通了一条让这两台机器互相通信的燧道。

实际应用中,我们一般使用udp进行打洞。因为udp是属于无连接的。不过好像也有用tcp进行打洞的(这个没有具体了解)。