NAT(network address translation) tcp udp 打洞

我们先来讲一种情况

现在有设备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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值