amxx 发表于 2017-7-4 11:42:00

局域网电脑访问外网服务器中间经过多层路由的问题

先看一下网络拓扑图

这个问题想了有一段时间没有想明白,请各位懂网络的朋友讲解一下
办公室内部电脑向外网服务器铜管IP地址请求数据的时候,是如何将数据发送到服务的,更重要的是服务器是如何将数据回应给相应请求的这台设备的。
我的理解:电脑(192.168.2.2)向服务器请求数据时
第1步:将自己的数据包发送给办公室路由器,通过办公室路由器(192.168.2.1)(网关)查看自己的内部网络中是否有185.0.0.1这个IP地址的服务器
第2步:如果办公室路由器(192.168.2.1)在内部网络中找不到IP为185.0.0.1的服务器就将数据包向上一级公司路由器(192.168.1.1)请求
第3步:公司路由器(192.168.1.1)在自己的内部网络中找不到IP为185.0.0.1的服务器就将数据包向上一级电信路由器(10.0.0.1)请求
第4步:这里我比较迷惑了因为作为外网端口电信的总路由器它的IP地址为123.0.0.2,而服务器的IP地址为185.0.0.1,他们并不在一个网段内,这里是否存在一个更高更大的网关,在统领着全球的公网IP,又或者是通过地址掩码的方式来进行识别的?
第5步:不管通过什么样的方式将数据最终发到了服务器,这个时候服务器通过数据包看到的IP地址为电信公网的IP地址(123.0.0.2)
第6步:服务器如何通过电信的公网IP地址又将处理好的数据发送给最开始的请求设备的?

这里做个假设,假设每个路由器在数据请求的时候都做了目标IP与源IP的映射关系,比如在办公室路由192.168.2.1这里它做了一个192.168.2.2-----185.0.0.1的映射关系,当该路由器接收到服务器185.0.0.1地址发来的数据时就自动的转给了192.168.2.1这个设备,目前我这个假设可以解释得了1对1通信的过程,但是当终端设备比如192.168.2.2,和192.168.2.3同时对服务器发起请求时,该路由器如何处理服务器返回来的数据问题?
问题有点多,字也有点多,麻烦大家仔细阅读。

canspider 发表于 2017-7-4 11:50:12

因为除了IP地址还有端口号
路由器通过ip加端口号做映射的
每一个理由器都会维护着么一张映射表,这个表有有效期
一段时间不通讯这个映射关系就断了

tcm123 发表于 2017-7-4 11:50:42

因特网中存在很多网关,每个网关会根据目标IP地址自动路由发送到下一级网关,直到送到目标设备。网络我觉得是运营商的事,把它当透明就行,它能把你的包送到就行了。至于能正确返回数据到发起设备,是因为每个IP包有源地址和目标地址,并且网关会记录每条链接的IP和端口

amxx 发表于 2017-7-4 11:58:47

统一回复上面两位兄台给的答案,我觉得这也没有办法解释,服务器能把数据准确的送到相应设备的这个链路问题。
因为服务器在它接收的数据包里,它能看到的IP以及port是电信服务器的,也就是说在办公室内部网络发到服务器后,他们的数据包呈现在服务器面前的都是电信的IP地址和端口号,那么当他们同时请求时,路由器是如何知道服务器是需要准确的将某一个数据包发送给某个请求的设备?希望给出一个完整的信号链路过程,大家一起讨论。

canspider 发表于 2017-7-4 12:38:58

很好理解吧,我们简化一下ip地址,只取后两位
1.5和1.6通过1.1去访问2.3
1.5的包出去是这样的(1.5:500,2.3:500)
经过1.1之后(1.1:10500,2.3:500),1.1维护这个映射关系
2.3收到(1.1:10500,2.3:500)的包,处理后回给1.1:10500
1.1看到1.1:10500的包,通过映射表还原成1.5:500给1.5
1.6发一个(1.6:500,2.3:500)的包,1.1把他映射成(1.1:20500,2.3:500)...
后面的不用说也知道怎么样了吧

stdio 发表于 2017-7-4 12:48:41

内网与外网,请搜索 “NAT”。
外网,一般不叫网关,两台路由器之间的连接习惯叫网段。每台路由器有自己的路由表(可能很庞大),用于指挥IP包的转发。很多路由器构成一张象蜘蛛网一样的网,跟内网不同。内网网关的路由表一般很简单:不是本网段就做NAT并转出,转入的做NAT后送内网。

amxx 发表于 2017-7-4 13:32:42

canspider 发表于 2017-7-4 12:38
很好理解吧,我们简化一下ip地址,只取后两位
1.5和1.6通过1.1去访问2.3
1.5的包出去是这样的(1.5:500,2. ...

OK,明白了!是有个地方把自己绕进去了

amxx 发表于 2017-7-4 13:34:22

stdio 发表于 2017-7-4 12:48
内网与外网,请搜索 “NAT”。
外网,一般不叫网关,两台路由器之间的连接习惯叫网段。每台路由器有自己的 ...

谢谢,讲解!总的来说你们的解答,把我的疑惑算是给解除了。谢谢!
页: [1]
查看完整版本: 局域网电脑访问外网服务器中间经过多层路由的问题