NAT(network address translation) tcp udp 打洞

来源:互联网 发布:软件开发与信息技术 编辑:程序博客网 时间:2024/04/26 21:47

我们先来讲一种情况

现在有设备A在一个局域网内

内网地址 192.168.0.2:9527

局域网外部的设备若要与A通信就需要‘打洞’了。

假设A通过路由器R上网。

R的外网IP:183.247.161.25 网关IP:192.168.0.1

A请求外网服务器时发送的源地址就是192.168.0.2:9527

数据先会经过默认网关 192.168.0.1

这时路由器R会做NAT映射,

40157 —192.168.0.2:9527

同时把之前的源地址192.168.0.2换成外网IP:183.247.161.25.

那么外网服务器检测到请求IP为183.247.161.25:40157

之后外网服务器把源IP换成目标IP发送数据。

最终数据会传到路由器R. 路由器开始根据端口号40157查NAT表。如果这个端口号在表中存在,那么就会把地址解析回来192.168.0.2:9527。 A就收到了服务器的数据。

可以得出,外部局域网设备要访问A,必须知道A的NAT地址映射。

简便做法是A访问一台服务器T,T去维护A的NAT中转换后的地址,外部局域网设备去T查询A的NAT地址映射,然后和A建立UDP/TCP连接。

0 0
原创粉丝点击