服务器如何区分同一路由器下的两台机器?

2015-12-12 12:51:22 +08:00
 KyL

比如我家的宽带分配的 IP 地址为 22.22.22.22 ,一个路由器上连接了两电脑,分配的地址为 192.168.0.10 和 192.168.0.20 。如果我访问一个网站,网站肯定会把数据发送到 22.22.22.22 ,那么路由器怎么分辨要把数据发往哪个电脑呢。

如果路由器只是把收到的数据广播,那么如果两台电脑同时访问一个网站时该怎么分辨呢?

3324 次点击
所在节点    互联网
16 条回复
bingwenshi
2015-12-12 12:55:25 +08:00
yexm0
2015-12-12 12:58:52 +08:00
mac 地址是唯一的:-)
bingwenshi
2015-12-12 13:02:25 +08:00
错了,这个问题的话,应该看交换机的 http://baike.baidu.com/view/116641.htm
KyL
2015-12-12 13:03:33 +08:00
@yexm0 但是目标服务器收到的请求中只有 IP ,没有源电脑的 MAC ,返回的响应里自然也只有 IP ,没有 MAC 啊。
des
2015-12-12 13:04:29 +08:00
powergx
2015-12-12 13:06:19 +08:00
nat 转换 , port 对应内网 ip
bingwenshi
2015-12-12 13:10:45 +08:00
@des 是的
a302800411
2015-12-12 13:23:14 +08:00
楼主需要看一下计算机网络,你的计算机像服务器发送请求建立一条连接,当连接建立成功,路由器就已经分配信道了,不仅仅是你家的路由器,也包括运营商的路由器。可以想象成逻辑上已经建立了一条独立的车道
jasontse
2015-12-12 13:46:31 +08:00
远端服务器只管回复数据包给 2.2.2.2 ,至于发给内网哪台电脑是 NAT 网关(路由器)的事情,路由器通过匹配 NAT 五元组记录来确定应该发给哪台电脑。
dalaomj
2015-12-12 13:52:51 +08:00
其实路由器也没那么聪明。只有这种简单的单层网络结构应付自如。
但只要网络结构稍微一复杂,数据包就不知往哪发了,极易产生“环路”问题。
pH
2015-12-12 14:35:57 +08:00
@dalaomj SPT 就派上用场了这时候
pH
2015-12-12 14:36:38 +08:00
@dalaomj 抱歉, STP ( Spanning Tree Protocol )
imn1
2015-12-12 14:46:48 +08:00
这事理应请教支付宝,他们是专家
e1eph4nt
2015-12-12 17:14:52 +08:00
google iptables, netfilter, snat, masquerade
Tink
2015-12-12 17:17:02 +08:00
nat
SPACELAN
2015-12-12 22:47:17 +08:00
路由器通过端口来判断包是发给子网里哪个电脑的,具体的映射关系也是存在路由器里面的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX