面试官问我NAT是什么?我是拒绝的

一开始面试官问我NAT是什么?我是拒绝的,因为我特么不懂。

        后来我觉得我是搞路由器的,应该是要懂一下下的。后来我就等了,我就觉得说,我不懂NAT竟然好意思说自己是搞路由器的,真特么逗!不过没关系,我本身就很逗,这一点我早已习惯。

        好!废话少说,咩系NAT?——

        网络地址转换(Network Address Translation)!
        家里的电话或手机连上WiFi后,我们就可以上网,但问题是,我们其实是处于局域网当中,一般ip地址是192.168.1.100什么的。但实际上我家的电脑ip是192.168.1.100,你家的也是192.168.1.100,小明他家的手机也是192.168.1.100,外网的应用要发信息给局域网中的192.168.1.100,到底发给我还是发给小明?

    重点是,根本不是同一个网段,外网根本ping不通我家的192.168.1.100,如何发消息给我?

      实际上是路由器搞了些手脚。

    当你用192.168.1.100发消息出去的外网的时候,人家不知道你是192.168.1.100,因为你发的数据包的原地址ip都被改了,改成了你家的路由器得到的那个外网ip,端口号也可能改了,如下图:

 你自己有个应用192.168.1.100:6666发了东西出去外网,这些数据包到路由器被他整容了,整成了7.7.7.7:9999,外网只认识7.7.7.7:9999这张脸,不认识192.168.1.100:6666。所以外网想发东西给192.168.1.100:6666,实际上他只会发给7.7.7.7:9999,路由器收到之后,又会把目标地址改成192.168.1.100:6666,这样就算是不同的局域网的两个应用,只要连上外网,依旧也可以通信。

        大体上是这样,实际上还有很多坑。NAT往往会阻挡外网主动连接内网的服务,一般是内网有应用主动访问外网的服务,然后外网服务再回应内网的应用。所以会涉及一些反向代理东西,这是后话,以后再说。

        大家晚安。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值