底层网络问题: CSMA/CD 载波监听多点接入/碰撞检测协议的必要性

2021-08-10 16:32:45 +08:00
 huangya
现在的以太网构成的局域网大多情况下多台主机都是通过一个交换机(非 hub )连接在一起的,而不是采用总线型结构。那是不是意味着这个协议在真实环境下虽然还是在用,但其实在绝大部分情况下如果能关闭(我不知道是否能在网卡中关闭),也是可以关闭的?
1741 次点击
所在节点    宽带症候群
10 条回复
yanyumihuang
2021-08-10 16:36:06 +08:00
以太网,实际上星型,逻辑上仍然是总线型。如果你的所有设备全都工作在全双工模式,那就不会发生碰撞
raysonx
2021-08-10 16:38:42 +08:00
CSMA/CD 目前只用在 10M/100M 半双工以太网下。千兆以太网理论上也支持半双工但实际没有设备支持,网卡处于全双工工作模式下是不启用的。
Tianao
2021-08-10 16:43:01 +08:00
楼主的理解是对的,但据我所知,用户不能关闭 CD 机制。而且 CD 不是 CA (冲突避免),只有当检测到冲突发生时才会进行指数退避,在发送帧之前没有专门的 RTS-CTS 时间,理论上不会消耗额外的时隙。
scegg
2021-08-11 09:44:00 +08:00
楼主的想法是正确的,在你的场景下确实是没有 CD 的命中可能性。但协议要求支持,所以不能关闭(还记得民航机上的烟灰缸吗)。

另外楼上也提到了,CD 本身是监测发生到碰撞后再延迟重发,所以在不碰撞的环境下也不会带来性能开销。
no1xsyzy
2021-08-11 09:56:39 +08:00
协议需要支持
你真精简也就是每个以太网包一个字节的 prelude (好像有点记不得是不是这个名儿了……)可以去掉,然后 padding 可以去掉。
prelude 还有校准时钟的目的。padding 不清楚千兆有多长。
LGA1150
2021-08-11 16:09:40 +08:00
@no1xsyzy Preamble 和 SFD
benmaowang
2021-08-11 20:25:21 +08:00
@no1xsyzy 前导码 Preamble ( 7 字节)+ 起始符 SFD ( 1 字节)+ ... + 帧间隙(>=20 字节),去掉就没办法定帧了吧
no1xsyzy
2021-08-12 00:25:12 +08:00
@benmaowang 可以缩缩,蚊子肉?
帧间隙是为了 CD 保证最远距离下收到对面发出来的 Preamble 之时当前帧还没发完,不用 CD 的情况下确实可以缩缩。
不过大部分情况下不会那么小……
mxi1
2021-08-19 09:16:39 +08:00
@yanyumihuang #1 @huangya 这条回复说得对。现代的以太网设备都是全双工的了,并没有使用 CSMA/CD 机制。
lynn0977
2021-09-01 11:09:43 +08:00
对于取消 CSMA/CD,交换型网络和全双工,哪个是关键?

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

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

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

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

© 2021 V2EX