UDP打洞原理总结

一:UDP打洞的用途
    当你编写的程序,需要两个局域网能够进行通信的时候,UDP打洞不失为一种好方法。简而言之,UDP打洞是为了实现两个局域网进行直接通信。

    两个局域网为什么不能通信呢?(这里所说的是两个不同的局域网),主要原因就是局域网中的ip不能被互联网认识,与外网交互必须通过NAT服务。

    那什么是NAT服务呢?NAT服务一般继承在路由器,防火墙,或者单独的NAT设备中,英文全称为Network Address Translation.顾名思义,NAT服务的作用就是网络地址转换。

    简而言之,由于中国区域分配的ip太少,我们只有利用NAT服务来实现很多电脑使用一个ip的效果,许多共用一个上网ip的电脑组成了一个局域网,例如家里的路由器可以提供家里的手机,电脑,等一起上网。

    NAT服务的原理:当一台局域网的主机想连接互联网的时候,这台主机向往常一样,把自己的消息封装好,然后填上要发送的ip地址,然后发给局域网里的交换机,交换机收到消息后对ip地址进行判断,发现ip地址不在本局域网,交换机就会把消息发送给网关,(网关相当于自己局域网通向internet的大门,这个时候nat服务发生作用,)把这台主机的内网ip和端口号封装成可以在外网使用的ip和端口号,并记录下来,这个主机就对应这个ip和端口号,然后把消息发送出去,外边的主机发送消息给这台主机的时候,他们发送过来的消息的ip必须是刚才封装好的ip和端口号,然后网关接收到之后进行查询,就知道对应的是本局域网的那一台主机了,然后把消息发给它。从

你可能感兴趣的:(UDP打洞原理,NAT)