This topic created in 2827 days ago, the information mentioned may be changed or developed.
如题,从知乎看到的,感觉挺有意思的问题,下面是详细设定:
1、有两台 PC A 和 B,通过 HUB 连接到同一子网下
2、A 和 B 网卡同一型号,MAC 地址、IP 地址相同,通信方式为半双工
3、A 和 B 操作系统、软件等设置完全一致
问 A 和 B 是否可以访问互联网,如果可以网络质量咋样?如果不可以,为什么呢,原理是啥?
22 replies • 2018-09-08 14:11:40 +08:00
 |
|
1
Moorj Sep 7, 2018
会提示 IP 地址冲突吧
|
 |
|
4
rrfeng Sep 7, 2018
理论上是可以,但是很有可能引起软件崩溃(包括系统)
|
 |
|
5
rexyan Sep 7, 2018 via iPhone
arp 就过不了
|
 |
|
7
ShadowStar Sep 7, 2018
理论上没问题,HUB 是全广播的,ARP 可以过。 也不会引起什么系统崩溃,毕竟系统协议栈就会丢弃掉非自身的交互的报文。 提示 IP 地址冲突这种是操作系统提供的“附加”功能,取决于系统是否会检测冲突。
|
 |
|
8
dongyulin353 Sep 7, 2018 1
网络 7 层了解下,数据链路层交换数据是靠 arp 协议,通过 mac 地址来识别设备的,你 mac 地址一样,不知道交换机怎么处理 arp 应答的
|
 |
|
9
lrvy Sep 7, 2018
@ ShadowStar #7 是的是的,我也是这么认为, 另“ 提示 IP 地址冲突” 这个也可以举个极端情况,很多嵌入式系统都木有这个 feature @ dongyulin353 #8 没有交换机啊,用的 hub,仔细看设定 2
|
 |
|
11
lcdtyph Sep 7, 2018 via iPhone 1
基于 tcp 的通信应该不能用了,udp 还可以。
|
 |
|
12
billlee Sep 7, 2018
现在真的还有不带转发表的 hub 吗?
|
 |
|
13
sujin190 Sep 7, 2018 via Android 1
就算链路能通,tcp udp 应用层也无法组包吧,那这样发的数据还有什么用啊,这样不能说正常联网了吧
|
 |
|
14
benmaowang Sep 7, 2018 1
可以访问互联网。 网络质量不咋地。 ARP 不会有任何问题。 如果 A 和 B 碰巧每次使用的本地端口都不一样,TCP 和 UDP 应该都是可以的。但实际并不会有这么好的运气,本地端口相同时,你会发现几乎没法上网,TCP 会断,UDP 会神经错乱。
|
 |
|
15
asyqm Sep 8, 2018
通常一个访问请求会被分为若干个数据包传输,这种情况通常会有部分包失败导致数据不全。可用性比较差。
|
 |
|
16
msg7086 Sep 8, 2018
交换机会绑定 MAC 和网线端口,所以每隔一段时间,这个映射被改变,会导致往这个 MAC 发送的数据被发送到另一根网线上,所以很有可能你 A 机发出的数据包,返回的时候被交换机发到 B 机去了。
如果你使用的是傻瓜集线器( Layer 1 设备),那是有可能可行的。不过像是封包里的时间戳和编号之类的东西就没办法了。
|
 |
|
17
yangqi Sep 8, 2018
不能,如上面说的两台机器虽然 mac 相同,但端口不一样,导致两台机器都接受不到完整的数据,现象就是两台机器都上不了互联网。
|
 |
|
18
smg Sep 8, 2018 via Android
用的是 HUB,A 和 B 可以访问互联网,但他们之间不能通信。但 HUB 现在几乎绝迹了。 如果交换机的话直接就是不能。
|
 |
|
19
initialdp Sep 8, 2018
HUB 会怎么处理? 不同端口下的 MAC 和 IP 相同,HUB 轮流给数据? 这样的话,每台设备收到的数据都不完整。。我觉得是无法访问互联网的。
|
 |
|
20
yingfengi Sep 8, 2018 via Android
不可以,别折腾了
|
 |
|
22
LGA1150 Sep 8, 2018 via Android
@ benmaowang TCP 就算本地端口不同也可能会断,另一台收到了错误的 TCP 包后会发 RST
|