问个关于ROUTER的问题

whocares

新手上路
注册
2003-03-02
消息
26
荣誉分数
0
声望点数
0
ROUTER把内网和外面的INTERNET区分开,对外网来说内网所有机器的IP都一样,或者说外网就不管内网的结构。
现在如果内网2台机器同时访问同1站点,比如HOTMAIL。ROUTER是怎么把HOTMAIL转回来的信息转发给不同的机器呢?
ROUTER能区分内网机器的办法也就是网卡上的MAC地址,如果R要知道PACKAGE往哪转发那就应该知道相应的MAC。那么也就是说从HOTMAIL里发过来的PACKAGE里有机器的MAC了?R在往外发的PACKAGE里加上MAC容易做到,但HOTMAIL往R着发PACKAGE里也把收到的MAC加进来吗?
以上是我想的,但不知道对不对。
所以问出来。望DX指教。
 
tcp协议通讯时要用到port(端口)。源端口用于标示sender,目的地端口用于标示要访问的目的主机上的应用程序。例如80 web, 20 21端口代表ftp.

现在的路由器基本上都是通过NAT来实现内网用户share一个公网ip来访问internet的。 在router上会自

动维护一张端口映射表。

例如:
1.当内网用户192.168.0.100要访问hotmail,他把请求发给router(192.168.0.1),数据包header中包含

源端口号:比如3333,源ip地址192.168.0.100,目的端口号:80,目的ip,hotmail 的ip。
2.然后router收到该数据包后修改header,并转发这个数据包。这个数据包中会包含新的源端口号:比如

4444,源ip地址192.168.0.1:目的端口号还是80,目的ip也不变。同时router会建立一个端口映射关系:

port:3333 ip:192.168.0.100---port:4444 ip:192.168.0.1。
3.hotmail受到这个请求后,响应的数据包中包含目的port:4444,目的ip 192.168.0.1
4运行nat的router受到这个数据包后将检查端口映射表,然后替换包头(header),将数据包转发给内网

的客户端。

btw,switch通过mac来转发数据包,router根据net id来转发数据包。
 
再问1声,那么对外网的用户来说有可能同时看到多个64。120。22。55:XXXX这样的包了?比如2台机器同时连接同1网站。
 
这样的文章越多越好。鼓励,支持,感谢。
 
hero

最初由 zxlmjj 发布
tcp协议通讯时要用到port(端口)。源端口用于标示sender,目的地端口用于标示要访问的目的主机上的应用程序。例如80 web, 20 21端口代表ftp.

现在的路由器基本上都是通过NAT来实现内网用户share一个公网ip来访问internet的。 在router上会自

动维护一张端口映射表。

例如:
1.当内网用户192.168.0.100要访问hotmail,他把请求发给router(192.168.0.1),数据包header中包含

源端口号:比如3333,源ip地址192.168.0.100,目的端口号:80,目的ip,hotmail 的ip。
2.然后router收到该数据包后修改header,并转发这个数据包。这个数据包中会包含新的源端口号:比如

4444,源ip地址192.168.0.1:目的端口号还是80,目的ip也不变。同时router会建立一个端口映射关系:

port:3333 ip:192.168.0.100---port:4444 ip:192.168.0.1。
3.hotmail受到这个请求后,响应的数据包中包含目的port:4444,目的ip 192.168.0.1
4运行nat的router受到这个数据包后将检查端口映射表,然后替换包头(header),将数据包转发给内网

的客户端。

btw,switch通过mac来转发数据包,router根据net id来转发数据包。
 
后退
顶部