NaNi_Z
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

好久没来已经更新了这么多,要恶补一下了

感谢分享~

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

好久没见~有问题欢迎讨论~

0 项奖励
kinolucky163
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

你好,有个问题想咨询一下。

当局域网内的机器访问外网的一个servcie时,从ip数据包的角度来看的话

发送时是没问题的,数据包先到网关,再到service, 想问一下,service收到数据包时,里面的源ip是谁的ip?(应该是网关的吧)

再就是service返回数据包时,是如何正确回给局域网内的那台机器的?ip层没有会话的概念,是如何保证了这种会话的。是不是网关保证了这种会话,如果是,是如何实现的?有没有相关的参考资料

谢谢!

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

当局域网内的机器访问外网的一个servcie时,从ip数据包的角度来看的话

发送时是没问题的,数据包先到网关,再到service, 想问一下,service收到数据包时,里面的源ip是谁的ip?

在报文从原设备传输至目的设备的过程中,三层IP地址不会改变。但是,每一跳随着报文在路由器中被解封装和重新封装,二层数据链路地址都会改变。所以,源IP是局域网机器的IP。

再就是service返回数据包时,是如何正确回给局域网内的那台机器的?ip层没有会话的概念,是如何保证了这种会话的。

“如何正确回给局域网的机器”这个问题有点含糊,我理解这个问题和会话层应该是两个概念。能具体说一下吗?

0 项奖励
xidianlz
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

一般局域网的ip都是私有ip,在公网是找不到的,主要借助的是网关上的nat技术找到局域网的那台机器吧。

0 项奖励
kinolucky163
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

谢谢解答。

比如,局域内有一台机器,内网IP是192.168.1.2, 现在它访问了一个公网上的网站,网站服务器需要返回网页给这台机器

当网站服务器收到这台机器的请求的IP包时,

IP包内源IP是什么,如果是局域网的内网IP的话,就是192.168.1.2,

那网站服务器是如何返回数据给这个192.168.1.2的呢,没办法路由

如果不是192.168.1.2,那又是什么IP, 而当服务器返回数据给那个IP,最终数据又是如何到达192.168.1.2的?

0 项奖励
xidianlz
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

源ip是网关的ip。举个例子。

我现在要与8.8.8.8通信。我的ip是192.168.1.2,网关内部ip是192.168.1.1(这是私有地址),外部ip是9.9.9.9(这是共有地址,能在Internet上通信的)

数据先到达网关,网关会分配一些端口给你并记住这些端口是与你对应的。之后网关把源ip修改为9.9.9.9。正常与8.8.8.8通信,这步相信你已经了解了。网关收到8.8.8.8的信息以后,把目的地址改成192.168.1.2,送给你就好了(这一步是根据之前分配给你的端口来确定的)。

说的概念化一点应该就是网关会维护一直内部机器ip与网关端口的对应表,其实你可以把网关内部的机器类比成普通服务器上的程序。数据包到达你的机器,可是你的机器如何知道把数据包送给谁呢?通过的是端口,那么网关的作用也是类似的~

0 项奖励
kinolucky163
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

好的,明白了。

谢谢了!同时谢谢两位的解答!

0 项奖励
xidianlz
1 Nickel

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

没事 不谢~

0 项奖励
Zhang_Jiawen
4 Beryllium

Re: 网络基本功系列:细说网络那些事儿(12月1日更新)

我审题不仔细了谢谢xidianlz~

0 项奖励