最近看计算机网络,了解到了动态ip这一概念,但是怎么也想不到这个功能是怎么实现的。
一个终端要接入因特网就需要有一个ip先,动态ip是每次上网的时候都给该终端分配一个随机的公网ip,也就是说还得先接入因特网才能获得动态ip,但是此时都没有公网ip,谈何做到接入因特网,获得本次上网的公网ip的呢。一直想不明白,感觉陷入了悖论,恳请大神解答!
最近看计算机网络,了解到了动态ip这一概念,但是怎么也想不到这个功能是怎么实现的。
一个终端要接入因特网就需要有一个ip先,动态ip是每次上网的时候都给该终端分配一个随机的公网ip,也就是说还得先接入因特网才能获得动态ip,但是此时都没有公网ip,谈何做到接入因特网,获得本次上网的公网ip的呢。一直想不明白,感觉陷入了悖论,恳请大神解答!
你应该没看完整,随机分配到的应该是一个局域网ip。
有个关键词是网络地址转换(NAT)。
假设有个拓扑网络是这样的:
stateDiagram-v2
主机(从路由器分配到的局域网ip192.168.0.2) --> 路由器(有两个ip,局域网ip192.168.0.1,公网ipx.x.x.1)
路由器(有两个ip,局域网ip192.168.0.1,公网ipx.x.x.1) --> 主机(从路由器分配到的局域网ip192.168.0.2)
路由器(有两个ip,局域网ip192.168.0.1,公网ipx.x.x.1) --> 某台公网服务器(公网ipx.x.x.2)
某台公网服务器(公网ipx.x.x.2) --> 路由器(有两个ip,局域网ip192.168.0.1,公网ipx.x.x.1)
公网服务器不知道本地主机的存在,
而路由器有一张 ip+端口
的地址转换表,转发本地主机、公网间的包。
主机 | 路由器 | 公网 |
---|---|---|
192.168.0.2:1 | x.x.x.1:1 | x.x.x.2:80 |
192.168.0.2:2(同台主机另一个请求) | x.x.x.1:2 | x.x.x.2:80 |
并不是说一定要有公网IP才行。比如说你的手机获取你家局域网wifi的地址,设备连接上的时候你家的路由器就已经给你分配好IP了。只不过这个IP是局域网内的IP。
再往外也是同理的从你家出去到小区的运营商交换机也是一个子网,交换机也会给你分配地址。从小区的交换机出去一直到运营商的交换机上也是同理的一环套一环,中间交叉重叠的部分就是这些设备。
你家的路由器、小区的交换机都是一个转发你请求的设备,转发到目标服务器上面。只不过大部分情况都是使用的子网IP在通讯。
你也可以粗犷的把中间的交换机、路由器理解成把你的网线延长的节点,把你的网线一直通到运营商分配IP的服务器上联通到互联网上。
2 回答578 阅读✓ 已解决
3 回答928 阅读
1 回答574 阅读✓ 已解决
1 回答682 阅读
371 阅读✓ 已解决
1 回答257 阅读✓ 已解决
没有 IP 地址,不能点对点发消息,DHCP 的很多消息都是通过广播的方式完成的,就是发送给能够连接到的所有机器。