我目前正在研究 CSMA 协议,我很难理解众所周知的定义中“听”的含义:
CSMA 基于“先感知后传输”或“先听后言”的原则。
例如:考虑站 A、B。假设电缆空闲。所以,A 开始传输(真的是说只有传输完成后才开始传播?)
现在,B 想要传输一些帧。B 如何知道 A 正在传输?A在开始传输之前向其他站发送了一些东西吗?
我目前正在研究 CSMA 协议,我很难理解众所周知的定义中“听”的含义:
CSMA 基于“先感知后传输”或“先听后言”的原则。
例如:考虑站 A、B。假设电缆空闲。所以,A 开始传输(真的是说只有传输完成后才开始传播?)
现在,B 想要传输一些帧。B 如何知道 A 正在传输?A在开始传输之前向其他站发送了一些东西吗?
如果站 A需要传输,它会在尝试之前尝试检测来自另一个节点的载波信号的存在。如果没有载波,则它开始传输并且该传输开始传播。
这意味着当第一个比特到达媒体的最远点时,A站仍在传输。
假设 B 站需要传输,它检测到媒体中的载波,然后等待正在进行的传输结束,然后再发起自己的传输。
每种媒体(空气、同轴电缆、UTP、光纤等)的传播延迟都不相同。这就是为什么每个媒体都有距离限制。确保每当一个电台需要使用媒体时,其他每个电台都知道它的状态。
超过建议的距离限制将导致后期碰撞:一种发生超出允许范围的碰撞类型。它将降低通信链路的吞吐量,因为数据错误将向上层传递。
在以太网段(冲突域)中,所有站都连接到公共介质或电缆。在最初的以太网实施中,它是一条穿过建筑物的物理同轴电缆——每个站都连接到这条电缆。所以当 A 发射时,B 和其他所有人都可以测量电信号并检测到 A 正在发射。因为它是一根电缆,所以信号以接近光速(约 0.6c)传播。
真的是说只有在完成传输时才开始传播吗?
不,信号一开始传输就开始传播,但传播需要时间。
现在,B 想要传输一些帧。B 如何知道 A 正在传输?
B 中的接收器将处于活动状态,并将检测来自 A 的信号。
不幸的是,对于纯 CSMA,A 开始传输但 B 不知道有一个时间窗口。如果 B 在此窗口期间开始传输,则您有冲突。
以太网通过使用冲突检测(因此是 CSMA/CD)来解决这个问题。如果检测到冲突,则两个发射器都会在重试之前退回一段随机时间。通过以下措施确保可靠地检测碰撞。
Wifi 使用不同的技术,因为直接碰撞检测在无线环境中是不可行的。