局域网设计/以太网
以太网现在是共享总线结构的布线LAN中最常用的技术,因为它与其他LAN技术(如令牌环和令牌总线)相比,是一种简单且价格便宜的解决方案。
以太网存在两种版本,具有不同的帧格式
- DIX以太网II(1982):由DEC、英特尔和施乐开发的版本(此后称为“DIX”首字母缩略词);
- IEEE 802.3标准(1983):由IEEE 802工作组标准化的版本。
由于存在两种版本的以太网,因此在更高层协议封装中存在相当大的不一致性
- 较旧的协议(例如IP)和远离IEEE的协议使用DIX以太网II封装;
- 从一开始就被IEEE标准化的协议(例如STP)使用IEEE 802.3封装。
DIX以太网II数据包[1]具有以下格式
7字节 | 1字节 | 6字节 | 6字节 | 2字节 | 46到1500字节 | 4字节 | 12字节 |
前导码 | SFD | 目标MAC地址 | 源MAC地址 | EtherType | 有效载荷 | FCS | IFG |
DIX以太网II帧(64到1518字节) |
其中最重要的字段是
- 前导码(7字节):用于恢复发射机时钟和接收机时钟之间同步的比特序列。
- 只要数据包穿过集线器,前导码就可以缩短→在一个级联中不能连接超过4个集线器: 局域网设计/中继器和网桥#物理层互连;
- 帧起始分隔符(SFD)字段(1字节):标识帧开头的比特序列;
- EtherType字段(2字节):标识有效载荷中使用的上层协议(它是一个大于或等于1500的数字);
- 帧间隙(IFG)字段(12字节):暂停,即没有信号,标识帧的结束。
IEEE 802.3数据包可以具有以下两种格式之一
7字节 | 1字节 | 14字节 | 3字节 | 0到1497字节 | 0到43字节 | 4字节 | 12字节 |
前导码 | SFD | MAC头 | LLC头 | 有效载荷 | 填充 | FCS | IFG |
IEEE 802.3帧(64到1518字节) |
7字节 | 1字节 | 14字节 | 8字节 | 0到1492字节 | 0到38字节 | 4字节 | 12字节 |
前导码 | SFD | MAC头 | LLC SNAP头 | 有效载荷 | 填充 | FCS | IFG |
IEEE 802.3帧(64到1518字节) |
- 备注
- DIX以太网II和IEEE 802.3帧具有相同的最小和最大长度,因为IEEE必须指定与旧版本的以太网兼容的帧格式;
- 可以通过查看源MAC地址后面的字段中的值来区分DIX以太网II帧和IEEE 802.3帧
- 如果它小于或等于1500(“长度”字段),则该帧为IEEE 802.3;
- 如果它大于或等于1536(“EtherType”字段),则该帧为DIX以太网II;
- 在IEEE 802.3帧中,“长度”字段会使“帧间隙”(IFG)字段变得多余,但为了与DIX以太网II帧保持兼容而保留了该字段;
- 在DIX以太网II帧中,上层必须传输至少46个字节,而在IEEE 802.3帧中,帧可以根据需要通过一些填充扩展到最小尺寸;
- IEEE 802.3帧中的LLC和LLC SNAP头与DIX以太网II帧中的“EtherType”字段相比浪费了更多字节,尽管它们旨在实现相同的功能,即指定上层协议,这就是IEEE 802.3标准未被广泛采用,而是有利于DIX以太网II的原因。
10 Mbps以太网可以在以下传输物理介质上工作
- 同轴电缆:
- 10Base5:粗缆(最大500米);
- 10Base2:细缆(最大185米);
- 双绞线:
- 10BaseT:使用4对双绞线中的2对的电缆(最大100米)
- 非屏蔽(UTP):无屏蔽;
- 屏蔽(STP):使用单个全局屏蔽;
- 包覆(FTP):使用单个全局屏蔽+每对屏蔽;
- 10BaseT:使用4对双绞线中的2对的电缆(最大100米)
- 光纤(最大1-2公里)
一开始,共享总线在物理上是由同轴电缆组成的
- 吸血鬼接头:每张网卡通过吸血鬼夹连接到粗同轴电缆,这允许通过物理接触(电气连续性)进行电气传播→连接不便;
- T型接头:每张网卡通过T型接头连接到细同轴电缆→连接和断开主机需要拔掉整个网络。
随着双绞线的引入,布线(即建筑物中的电缆铺设)获得了更大的灵活性:每个主机都可以通过特定的RJ45连接器连接到RJ45壁式插座,所有插座又连接到一个机柜。
此外,电话机使用的RJ11连接器也可以连接到RJ45壁式插座→在布线中,RJ45插座可以放置在整个建筑物中,然后可以根据需要决定是连接以太网卡还是电话机,通过在机柜中切换数据连接和电话连接。
- 特性
- 不受电磁干扰的影响
- 距离更远
- 成本更高
- 灵活性较低
当同一个冲突域中的两个或多个节点同时传输,并且它们的信号重叠时,就会发生冲突。载波侦听多路访问/冲突检测(CSMA/CD)协议指定如何识别冲突(CD)以及如何恢复冲突(重传)。
CSMA/CD 是一种简单且分布式的 **随机访问** (即非确定性) **协议**:它不像令牌环那样需要中间设备或特殊的同步机制(令牌环的同步机制就是令牌本身) → CSMA/CD 协议在吞吐量方面效率很高,因为没有同步开销,在延迟和信道占用方面也是如此。
在 全双工模式 下,CSMA/CD 协议不再需要启用。
检测碰撞
[edit | edit source]节点可以使用 **碰撞检测** (CD) 来检测碰撞,而不是在传输完整个帧后再检查是否发生碰撞:在传输过程中,节点会尝试理解是否发生了碰撞(“边说边听”),如果发生碰撞,则立即停止传输,避免浪费信道进行无用的传输。
在实际应用中,碰撞检测的实现方式取决于传输介质的类型。
- 同轴电缆:传输和接收使用同一个信道 → 测量链路的平均直流电就足够了;
- 双绞线、光纤:有两个信道,一个用于传输,另一个用于接收
- 发送站:它们可以通过在传输过程中检测接收信道上的活动来判断是否发生了碰撞;
- 非发送站:它们只能通过检测接收帧上的错误 CRC 码来判断是否发生了碰撞。
- **阻塞序列** 是一种强大的信号,由检测到碰撞的节点发出,以确保 CRC 码无效,并最大程度地提高所有其他节点都理解发生了碰撞的可能性。
减少碰撞次数
[edit | edit source]**载波侦听** (CS) 可以减少碰撞次数:想要发送数据的节点在发送之前会侦听信道
- 如果侦听到信道空闲:节点会发送帧;
- 如果侦听到信道繁忙
- 1-持久 CSMA:节点会持续检查信道是否空闲,并在信道空闲后立即发送;
- 0-持久 CSMA:节点会在随机时间后再次尝试;
- -持久 CSMA:节点以 的概率等待随机时间(0-持久),以 的概率立即再次检查(1-持久)。
在局域网中,最坏情况下,信道占用率等于可用带宽的 30-40% → 以太网实现 1-持久 CSMA/CD,因为它针对的是平均负载低的网络,碰撞概率很低。
- CSMA 的局限性
然而,对于双绞线或光纤,CSMA 无法完全避免碰撞(否则 CD 就没有用):如果考虑传播时间,一个距离较远的节点可能会侦听到信道空闲,即使实际上信道繁忙,但传输还没有到达该节点
**脆弱区间** 定义为距离较远的节点开始传输会导致碰撞的时间间隔(它等于信道的传播延迟),并且该间隔随着距离的增加而增大 → 这种协议在小型网络中效果很好。
恢复碰撞
[edit | edit source]发生碰撞后,帧需要重新传输。如果参与碰撞的站立即重新传输,则会再次发生碰撞 → **后退算法** 在等待中插入一个与重传次数呈指数关系的随机元素
- 第一次重传:节点等待一个时间 ,该时间随机选择在 0 到 1 个时隙之间;
- 第二次重传:节点等待一个时间 ,该时间随机选择在 0 到 3 个时隙之间;
- 第三次重传:节点等待一个时间 ,该时间随机选择在 0 到 7 个时隙之间;
依此类推,根据公式
其中
- 是当前帧上发生的碰撞次数;
- 是 **时隙**,即发送最小尺寸(64 字节)的以太网帧所需的时间,相当于 51.2 µs。
在每次等待结束时,节点会通过 CS 再次侦听信道。
由于信道访问是竞争性的,当一个站点成功获得网络访问权限时,最好传输大数据包。需要建立帧的最小尺寸:如果帧太小,并且碰撞传输持续时间太短,则可能发生没有站点注意到碰撞的情况。
帧大小 和碰撞直径 之间存在约束,以便所有碰撞都能被识别:碰撞检测只有在往返时间 ,即往返时间,小于传输时间 时才有效。
其中 是传输速度, 是传播速度。
提高传输速度意味着增加帧的最小尺寸,或者对于相同的最小尺寸,它意味着减少节点之间的最大距离,但过大的帧会增加传输错误的概率,并会阻塞网络。
在以太网 DIX 中,理论上的碰撞直径不能超过 5750 米:[2]
在没有集线器的情况下,网络的最大尺寸受到传输介质支持的最大距离的限制(例如,由于信号衰减)。由于集线器,网络尺寸可以扩展(尽管最多只能扩展到 3 公里,因为设备不理想):集线器通常放置在星型拓扑中的星形中心,它会重新生成信号(中继器)并在内部模拟共享总线,从而允许通过双绞线将多个站点连接在一起: 局域网设计/中继器和网桥#物理层互连.