我为什么能在公司访问到百度
2022-07-27,突然想到,数据包在网络中是怎么传输到对应的点的? 有时候ip相同,为啥可以这样?
1 某公司内的所有员工的工作电脑的ip是不相同的,我所说的公司内,其实就是一个局域网的概念,员工使用的ip都是局域网(内网)ip, 除非公司很吊,这样可以使用公网ip,能有多屌才可以这样,我也不知道
2 其实, 公司能访问百度的网,也是花银子从运营商那儿牵过来的。可以想象运营商给公司一根网线,这个网线一端插在运营商的交换机(也有可能是路由器上),一端插在公司的交换机上(公司上百台电脑,路由器应该是满足不了,不排除有牛批的路由器)
3 运营商除了给公司一根网线,还分配了一个ip(当然子网掩码、网关、DNS地址这一套东西,都是有的),这个ip就是能访问的百度的ip。但与员工电脑上的ip不会是相同的。一个明显的原因是,两台机子的ip总不能是相同的吧,更何况公司那么多台电脑机
4 其实,这个就是利用公司的交换机,使用DHCP协议,将ABC类地址,分给公司的每台电脑,只要不冲突就可以,这ACB类的ip与公司外没任何关系,除了公司的网管知道,没有人知道。但是,当员工访问百度的时候,再利用NAT协议翻译ip, 将员工的ACB类ip翻译为运营商给的ip。至与NAT路由器怎么知道百度返回的数据是ip1需要的,还是ip2需要的。所以, 还需要NAPT技术处理,即除了伪装ip是 ip与port一起
ip1: 10.0.0.1:1205
ip2: 10.0.0.2:1025
=> 192.168.0.1:1001 与 192.168.0.1:1002
5 ipv4接近枯竭,其实从大方面来看,运营上牵过来的网线,以及给的ip, 也是运营商局域网下的ip,而不是公网ip。 说白了,我上网,还是要将数据包发往运营商的NAPT路由器去翻译一下真正的ip地址(假如,运营商能有外网ip)