如何解决IP地址不够用的问题

前言

为了准备面试,也是看了许多计算机网络的文章,但是有个问题困扰了我很久,那就是如何解决ip地址不够用的问题!如果说一个局域网只有一个公网ip,那么出去的时候还好说,就用那个公网ip出去就好了,但是服务器返回消息的时候怎么办呢?返回的是目的主机的ip是公网的ip,那怎么知道要给哪台局域网的电脑?
答案其实很简单,就是NAT协议(网络地址转换协议)

NAT协议

发送

当一个局域网的主机发送一个http请求的时候,会进行如下操作:
1. 在tcp数据报报头里面会加上主机发送的端口地址。
2. 然后在ip层会加上主机在局域网的ip地址。

当传输到DHCP服务器的时候,会将报文里面的内容进行替换:
1. 将tcp报头的端口更改为另外一个(没有被使用的)
2. 将ip报头的ip地址更改为公网ip

所以从服务器看来,这个数据就是这个机器发送的,而不会察觉到局域网的存在。

然后维护一张NAT转化表:
即局域网ip:端口号 与 公网ip:端口号 的映射表

服务器响应

服务器肯定是回复公网ip+端口号,所以通过查询NAT转化表,就可以定位到局域网的主机ip和端口号,也就实现了局域网多个主机访问外网的效果。
即那个进程发送的数据,服务器响应的时候还是会响应给哪个进程(即ip地址和端口号和发送的时候是一样的)。

体会

所以NAT就是通过一个具有公网ip的机器,将局域网机器发送的报文的ip地址和端口号进行更改,达到欺骗服务器的效果。

参考文章:点我查看

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值