网络技术:以太网
以太网#
以太网是一种基于竞用的介质访问方法,可以让一个网络中的所有主机共享链路带宽。以太网几乎占领了现有的有线局域网市场,对于本地区域联网具有极大的重要性。以太网是一个广泛部署的高速局域网,而且相比令牌环、FDDI 和 ATM 等技术都显得更为简单,这就使得排除故障变得容易。以太网在不断的发展中诞生了运行效率更高的版本,而且产品部署的费用更为便宜。同时以太网是可拓展的,也就是说通过以太网可以使得现有的网络基础设施方便地引入新技术。
MAC 地址#
硬件地址#
硬件地址又称为物理地址或 MAC 地址,硬件地址存在于适配器的 ROM 中。IEEE 802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符,它规定 MAC 地址字段采用 6 字节(48 位)。
适配器可能是由不同地区的不同公司生产的,怎么保证没有适配器具有相同的 MAC 地址呢?IEEE 的注册管理机构对 MAC 地址空间进行管理,他们负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符 OUI。地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。一个地址块可以生成 2^24 个不同的地址,这种 48 位地址称为 MAC-48,它的通用名称是 EUI-48。生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此 MAC 地址也叫做硬件地址 (hardware address)或物理地址。
以太网帧#
常用的以太网 MAC 帧格式有 DIX Ethernet V2 标准和 IEEE 的 802.3 标准,最常用的 MAC 帧是以太网 V2 的格式。
以太网 V2 的格式有 5 个字段,目的地址、源地址字段有 6 字节。类型字段 2 字节,类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。第四个字段是数据字段,长度在 46 ~ 1500 字节(最小长度 64 字节 - 18 字节的首部和尾部 = 数据字段的最小长度 46字节)。最后一个字段是帧检验序列 FCS 字段,长度是 4 字节。当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
MAC 地址表#
交换机有转发以太网帧的任务,帧会从交换机的某个端口进入,然后从某个端口送出。交换机为了知道要使用哪个端口传送帧,就需要先知道每个端口上连接了哪些设备。当交换机获取了端口和设备的关系之后,就会在可编址内存 (CAM) 表中构建一个 MAC 地址表,MAC 地址表将记录每个端口及其相连的设备的 MAC 地址。
MAC 地址学习#
MAC 地址表学习 MAC 地址的方式是,检查帧的源 MAC 地址。如果源 MAC 地址不存在于 MAC 地址表中,由于交换机显然知道帧是从哪个接口传入的,因此可以将端口和传入的帧的源地址作为一个映射,加入 MAC 地址中。如果源 MAC 地址已经存在与 MAC 地址表中,则交换机会更新该条目的刷新计时器。MAC 地址表的条目只会存在一段时间,以此来应对物理设备的加入和离开问题。
转发#
以太网帧的转发是通过检查目标 MAC 地址实现的,如果目标 MAC 地址为单播地址,该交换机会查找帧中的目的 MAC 地址和 MAC 地址表条目的匹配项。若表中存在目的 MAC 地址,因为 MAC 地址是用来标识设备的,因此说明知道了设备的所在之处,此时交换机会从到达该设备的端口把帧转发出去。如果表中不存在目的 MAC 地址,交换机会从出了传入端口外的所有端口转发出去,这个过程也可以成为未知单播。
转发的方式有存储转发和直通交换 2 种。
存储转发#
存储转发的方式是先把帧存起来,进行对帧的错误检测后,根据检测的结果决定转发的策略。查错的方式是循环冗余检测 (CRC),交换机会将帧的最后一个字段中的帧校验序列 (FCS)值和自己算出来的 FCS 进行比较。如果帧没有错误则对帧进行转发,否则就丢弃。
存储转发可以实现自动缓冲的功能,交换机会使用入口端口缓冲进程,以此支持任意组合的以太网速度。如果入口端口和出口端口的速率不匹配,则交换机会先将整个帧存储于缓冲区,FCS 检查之后再将帧转发到出口端口缓冲区后再发送出去。
直通交换#
直通交换相比存储转发,具有快速转发的特点。直通交换时交换机一旦在 MAC 地址表中查出帧的目的 MAC 地址,就会马上做出转发决策。由于直通交换是直接转发,因此不会对帧进行查错检测,因此这种方式会导致转发无效帧。如果网络中的无效帧很多,会导致对带宽的负面影响。直通交换还可以实现免分片交换,交换机在转发帧之前会等待冲突窗口 (64 字节) 通过。
CSMA/CD 协议#
以太网发生持续的严重冲突时,会导致延迟、拥塞和低吞吐量。以太网采用的 CSMA/CD (载波监听多点接入/碰撞检测)协议来协调资源,它可以帮助设备均匀地共享带宽,可以避免两台设备同时在网络介质上传输数据。
当主机想要通过网络传输数据时,在发送数据之前必须先检测信道。若检测到信道忙,则应不停地检测一直等待信道转为空闲,若检测到信道空闲就开始传输数据。但是 CSMA/CD 协议还没结束,它在发送过程中仍不停地检测信道,确保没有其他主机开始传输。如果该主机在线路上检测到其他信号,它将发送一个拓展的拥堵信号,使网段上的所有节点都不再发送数据。检测到拥堵信号之后,其他节点使用后退算法,等待一段时间再尝试传输。但若传输达 16 次仍不能成功,则停止传输而向上报错。
半双工与全双工#
半双工以太网最初在 IEEE 802.3 规范中定义,思科认为半双工以太网只使用一对导线,数字信号将在导线中双向传输。半双工以太网使用 CSMA/CD 协议帮助防范冲突,并在发送冲突时支持重传。
全双工以太网同时使用两对导线,在传输设备的发送和接受装置之间,全双工使用一条点对点连接。使用全双工是数据的传输速度比半双工快,而且不会发生冲突。同时每个全双工节点都必须有一个专用的交换机端口,主机的网卡和交换机端口都必须在全双工模式下运行。
全双工以太网应用于如下情况:
- 交换机到主机;
- 交换机到交换机;
- 主机到主机;
- 交换机到路由器;
- 路由器到路由器;
- 路由器到主机。
半双工以太网只有一个冲突域,其有效吞吐量比全双工以太网低。在全双工以太网中,通常每个端口都对应一个独立的冲突域。除了集线器,其他所有设备都可以在全双工模式下运行。
使用设备拓展以太网#
以太网布线#
以太网使用直通电缆、交叉电缆和反转电缆来布线。
直通电缆#
直通电缆用于主机到交换机或集线器,和路由器到交换机或集线器的连接。这种电缆只能用于以太网,不能用于语音网络、其他 LAN 和 WAN。直通电缆使用 4 根导线连接以太网设备:
交叉电缆#
交叉电缆用于连接以下情况:
- 交换机到交换机;
- 集线器到集线器;
- 主机到主机;
- 集线器到交换机;
- 路由器到主机;
- 路由器到路由器。
反转电缆#
反转电缆不用于组件以太网,但是可以将主机的 EIA-TIA 232 接口连接到路由器的串行通信 (COM) 接口。
物理层拓展#
传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。采用双绞线的以太网采用星形拓扑,在星形的中心则增加了集线器。
1990 年,IEEE 制定出星形以太网 10BASE-T 的标准 802.3i。这种 10 Mbit/s 速率的无屏蔽双绞线星形网的出现,既降低了成本又提高了可靠性,具有很高的性价比。10BASE-T 双绞线以太网的出现后,从此以太网的拓扑就从总线形变为更加方便的星形网络,它为以太网在局域网中的统治地位奠定了牢固的基础。
链路层拓展#
扩展以太网更常用的方法是在数据链路层进行,早期使用网桥,它根据 MAC 帧的目的地址对收到的帧进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。现在使用以太网交换机,以太网交换机可以暂时看做是多接口的网桥。
早期以太网采用无源的总线结构,现在采用以太网交换机的星形结构成为以太网的首选拓扑。总线以太网使用 CSMA/CD 协议,以半双工方式工作。而以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。但仍然采用以太网的帧结构,因此以太网并没有改名。
参考资料#
《CCNA 学习指南(第 7 版)》,[美] Todd Lammle 著,袁国忠 徐宏 译,人民邮电出版社
《计算机网络(第七版)》 谢希仁 著,电子工业出版社
链路层:以太网
链路层:MAC 地址
链路层:CSMA/CD 协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)