1、 分类号 密级 UDC 学 位 论 文 千兆以太网 MAC 控制器 IP 软核的设计 (题名和副题名) 尉志伟 (作者姓名) 指导教师姓名 赵建明 副教授 电子科技大学 成 都 (职务、职称、学位、单位名称及地址) 申请学位级别 硕士 专业名称 微电子学与固体电子学 论文提交日期 2010.4 论文答辩日期 2010.5 学位授予单位和日期 电子科技大学 答辩委员会主席 评阅人 年 月 日 注 1 注明国际十进分类法 UDC的类号独 创 性 声 明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表
2、或撰写过的研究成果,也不包含为获得电 子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 签名: 日期: 年 月 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名: 日期: 年 月 日 摘要 I 摘 要 本 论
3、文的 课题是千兆以太网 MAC 控制器 IP 软 核 的 设计 研究 。 完成了10M/100M/1000M 以太网 MAC 控制器的设计及 AHB 总线从模块接口的设计 , 最终实现了一个基于 AHB 总线接口的千兆以太网 MAC 控制器 IP 软核 , 并完成了 IP核的仿真、测试及 FPGA 验证。 本文按照 TOP_DOWN 的设计方法,在确定系统架构方案后,对各个模块之间的接口信号及交互方 式进行了详细设计,然后确定 了 模块内部控制 通路 和数据通路的微架构,最后使用 Verilog 语言对 各 模块进行了具体的实现。对模块实现中所涉及到的协议和算法,如 CSMA/CD 算法、 C
4、RC 算法、 HASH 算法 及 AHB 协议等做了 分析 ,并给出了其硬件实现方法。本文设计了简化的 AHB 总线从模块接口,支持 32 位数据位宽和单个读写 、 固定长度突发传输两种模式。在 Verilog 底层实现时,遵循可综合的编码风格,并 综合 考虑面积、性能及健壮性等因素,在满足性能要求的前提下,实现 了 一款稳定、灵活、资源消耗少的 MAC 控制器 IP 核。最后,搭建 功能 测试 平台和 FPGA 原型验证平台,使用 Modelsim 完成功能仿真,使用 Quartus II 8.0 工具完成综合与布局布线,最终下载到 Altera 公司的 EP2S60 FPGA 开发板上进行
5、 硬件 测试 ,充分验证了设计的正确性和实用性。 本文的创新点在于:在以太网 MAC 控制器 IP 核的缓存设计中,提出了一种读指针可载入 的多模式异步 FIFO 设计方法,并将其应用于缓存结构中 。实现了 帧在缓存中连续存放 , 同时 亦 能够方便的实现帧重传和错误帧丢弃的功能,从而改进了现有 MAC 控制器缓存结构 中 缓存利用效率低或灵活性差的不足。 关键词: 以太网, MAC 控制器 , AHB 总线 , FPGAABSTRACT II ABSTRACT The design of Gigabit Ethernet MAC controller soft IP core is desc
6、ript in the dissertation. The main content of this dissertation is the design of 10M/100M/1000M Ethernet MAC controller and AHB bus slave interface. Finally this dissertation implements a Gigabit Ethernet MAC controller IP core which is AHB bus compatible. The IP core is tested by simulation tools a
7、s well as verified by FPGA. After determining the system architecture , following the TOP_DOWN design methodology , interface signals between modules and the interactive approach is designed in detail firstly , and then the micro architecture of controller and data path within each module is designe
8、d and implemented using Verilog HDL. Arithmetic and protocols to be implemented in these modules , such as CSMA/CD, CRC, HASH,and AHB, is introduced and implemented by hardware In this dissertation. A simplified AHB slave interface is designed, which supports single operation and fixed length burst
9、operation. A synthesizable coding style is used, and resource costs, performance and robusticity is considered as well, which promises a stable, smart and low cost MAC controller IP core. Last, testbench and FPGA prototype system is built, and the MAC controller IP core is firstly simulated using Mo
10、desim, then synthesized using Quartus II 8.0 tool, and at last downloaded to FPGA development board to run real-time simulation. The innovation point of this thesis is bringing forward a new kind of multiple mode asynchronous FIFO whose read pointer can be loaded by other module, and use it for buff
11、er architecture design, which can realize successive strorage of frames in MAC controller buffer, and can easily realize frame retransmittion and bad frame drop function as well. This is an improment of the exsiting MAC controller who has low efficiency or poor facility in buffer management. Key wor
12、ds: Ethernet, MAC Controller, AHB, FPGA目录 III 目 录 第一章 引言 . 1 1.1 课题的研究背景及意义 1 1.2 国内外研究现状 2 1.3 设计目标及主要设计内容 3 第二章 以太网 MAC 层协议及相关算法 . 5 2.1 以太网的发展历程 5 2.2 以太网 MAC 层协议介绍 5 2.2.1 以太网 MAC 帧格式 6 2.2.2 CSMA/CD 算法 . 7 2.2.3 全双工以太网 9 2.2.4 全双 工时的流量控制 . 10 2.2.5 物理层与 MAC 层的接口 . 12 2.2.5.1 介质无关接口( MII/GMII) 1
13、2 2.2.5.2 MII 管理接口 13 2.3 CRC 算法分析 15 第三章 以太网 MAC 层协议功能的实现 18 3.1 以太网 MAC 控制器 IP 核的设计规范 18 3.2 以太网 MAC 控制器 IP 核的总体架构 18 3.3 时钟管理模块 . 20 3.4 PHY 接口模块 21 3.5 接收模块 . 22 3.5.1 接收控制模块 . 24 3.5.2 地址过滤模块 . 24 目录 IV 3.5.3 接收状态机 . 26 3.5.4 CRC 校验模块 29 3.6 发送模块 . 29 3.6.1 发送数据通路 . 32 3.6.2 随机数模块 . 32 3.6.3 发送
14、状态机 . 33 3.6.4 发送控制模块 . 36 3.7 流量控制模块 . 37 3.7.1 发送流量控制模块 . 37 3.7.2 接收 流量控制模块 . 40 3.8 MII 管理模块 . 41 3.9 系统寄存器和中断模块 . 44 第四章 以太网 MAC 控制器缓存及 AHB 接 口设计 48 4.1 MAC 控制器缓存的设计 48 4.1.1 以太网 MAC 控制器缓存结构的比较 . 48 4.1.2 读指针可载入 异步 FIFO 的设计 49 4.1.3 发送缓存的设计 . 51 4.1.4 接收缓存的设计 . 54 4.2 AHB 总线接口设计 56 第五章 以太网 MAC
15、控制器 IP 核的验证 . 59 5.1 以太网 MAC 控制器测试平台结构 . 59 5.2 以太网 MAC 控制器 IP 核测试 方案 60 5.3 以太网 MAC 控制器 IP 核测试结果 60 5.3.1 接收模块功能验证 . 61 5.3.2 发送模块的功能验证 . 62 5.3.3 流量控制模块的功能验证 . 63 5.3.4 发送缓存模块的功能验证 . 64 5.3.5 MII/GMII 接口功能验 证 . 65 目录 V 5.3.6 MII 管理接口功能验证 66 5.3.7 AHB 从接口模块功能验证 66 5.4 以太网 MAC 控制器的 FPGA 验证 67 5.4.1
16、综合与布局布线 . 67 5.4.2 硬件开发平台测试 . 68 第六章 结论 72 致 谢 . 73 参考文献 . 74 附 录 . 76 攻硕期间取得的研究成果 . 77 第一章 引言 1 第一章 引言 1.1 课题的研究背景 及意义 本论文课题是符合 IEEE802.3u 及 IEEE802.3ab 协议规范的 10M/100M/1000M 以太网介质访问 控制器 ( MAC) IP 软 核 的 设计研究 , 来源于 中科院微电子研究所项目“ 宽带 通信数模混合 SOC 芯片研发”。 千兆以太网 MAC 控制器 IP 核 是该项目的重要研究内容。 在当今信息化社会,计算机网络已成为人们日
17、常生活中不可或缺的部分。 纵观计算机网络 的发展历程,以太网技术 可以说是 诸多网络技术中 影响力最大的 一种 。 以太网技术 具 有结构简单、网络灵活及良好的兼容性等优点,因而在其发展的 20 多年中,战胜了 ATM、令牌环及令牌总线等其他局域网技术,成为事实上的局域网标准。 目前以太网技术 占有 超过 90%的局域网市场 ,已经 成为 应用 最为广泛 的网络技术。 从 1980 年 首个 10M 以太网技术规范发布后很长时间内 ,由于当时的计算机 之间的 信息吞吐量 不高 ,因此 10Mbps 通信速率基本可以满足计算机在局域网中的通信要求 。 但随着信息技术的进步, 网络数据流量迅速增长
18、, 急需更高速度的以太网设 备 。 因此, 从 90 年代开始 ,快速以太网 、吉比特以太网和 万兆以太网 相继出现并成为 IEEE 的标准。 如今,吉比特以太网 技术 已经 非常 成熟并广泛应用于 个人计算机系统 中,但适用于 嵌入式 应用 的绝大多数以太网控制器仍仅支持 10M/100M速率 。 随着芯片制造技术及通信技术的进步,通信系统的速率越来越高, 例如 2009年 9 月最新通过的 IEEE 802.11n 无线局域网 标准 的最高 通信 速率可 达 600Mbps。因此 在高速通信 嵌入式 应用 中,传统 以太网和 快速以太网 的 接入 速度 已不能满足要求,吉比特以太网 实现技
19、术 的研究非常有必要性。 随着集成电 路制造技术的飞速发展以及系统对电路复杂度、速度、可靠性、功耗等的要求不断提高,传统板级系统的缺点已成为系统性能提高的瓶颈,片上系统 (system on chip)的设计方法逐渐成为系统设计的趋势。 片上系统 是将模拟电路( ADC、 DAC 等)、 各种 ASIC 功能单元、处理器核 、存储器 及各种 I/O 接口 ( USB、Ethernet 等 ) 集成到单个芯片上,从而成为可以满足某些应用的完整系统。 它 将原来板级电路需要几个 、几十个甚至更多芯片才能实现的系统集成于单个芯片中,电子科技大学硕士学位论文 2 不仅 提高 了系统的 性能及 可靠性
20、,而且实现了系统的小型化 。 片上 系统的设计方法 与传统板级系统相比有明显的优势,但同时也面临着巨大的挑战。当前片上系统芯片的规模可达几百万门甚至上千万门,如此复杂的系统,如果 其所有部分均需要从头设计,则设计的复杂性大大提高,设计周期大大延长。在这种情况下,设计的可重复使用性成为提高 片上系统 设计效率的关键途径。 但是 即使一个集成电路设计公司 具有很强的设计能力和设计工具 ,也不可能仅靠自身提供的已 设计完成的电路模块作为基本构件, 满足实现 各种不同的 SOC芯片的需求 。所以迫切需要各个集成电路设计公司提供一个将各种具有特定功能的集成电路模块集成在一起的单 元库,通过一定的接口标准
21、进行模块调用和模块间的各种数据交换,以方便广大用户和设计者。在这种前提下,以 IP(Intellectual Property)构件为基础的设计复用思想应运而生。 IP 核 是指在电子设计中预先 设计 的用于 搭建 系统芯片的可 重 用 构件, 可以分为软核、固核和硬核三种形式。软核 通常 以可综合的 RTL 代码的形式给出,不依赖于特定的工艺, 具有最好的灵活性 。 硬 IP 核是针对某种特定工艺生成的物理版图,具有 最优化且可预知的面积、速度和功耗,但其可移植性和灵活性较差。 固核是 前两者在灵活性和性能之间的折衷。 系统设计 者设计一个复杂系统时, 可以将团队 的努力 集中在所擅长的部分
22、,而对 其它模块 可以从市场上采购经过 充分 验证的 IP 核,然后在一个芯片上有效集成,从而构成一个功能强大的系统 。 这种设计方法降低了复杂系统的设计难度,同时大大缩短了芯片的上市时间, 已经成为今天 系统 芯片设计的趋势。 以太网技术主要研究 内容包括 物理层和 MAC 子层 。 MAC 子层 控制器既可以集成于网络终端设备中实现网络接入,同时又是 开发 网桥、交换机等 网络 互连设备 ,延伸以太网传输范围的基础,在以太网接入中起到很关键的作用。 另外,对于不同的 以太网 传输媒介 , MAC 子 层不需要 改动或者只需很小的改动 。 因此,开发以太网 MAC 控制器 的 IP 核具有重
23、要的意义。 1.2 国内外 研究 现状 以太网最初由 DEC、 Intel 和 Xerox 三个 公司共同研制, 因此又称为 DIX 规范 。随后, DIX 规范 被 工业界广泛接受 ,成为事实上的工业标准 ,后来发展成为以太网 1。 以太网此后 性能不断提升 , 传输速度 从最 初 时的 10Mbps 到 今天 最高 10Gbps。在速度提升的同时,工作模式也 不断 丰富 。 交换机 的 出现使得冲突域被隔离开,第一章 引言 3 从而 促使了全双工以太网的诞生。 全双工模式不仅提升了以太网的吞吐量,而且打破 了 传输距离的限制,从而 为 以太网技术由局域网到广域网的扩展 奠定了基础2。 目前
24、, 在以太网 MAC 子层 的实现研究 方面 , 以太网 MAC 控制器主要以两 种形式存在 。 一类 是 将 物理层与 MAC 层集成到一个芯片中, 成为具有完整功能的以太网卡,绝大多数的桌面系统及很多的嵌入式系统中都使用这 种 网卡来实现网络接入。市场上 10M/100M 接入芯片 产品 有 很多,最常用的如 Realtek 公司 的RTL8139;千兆 以太网接入方案主要有 Realtek 公司的 RTL8168、 Broadcom 公司的BCM5721 及 Marvell 公司的 88E8040 等 。 上述 网卡芯片 都集成了 物理层 和 MAC子 层, 多用于桌面应用 ,可以工作在
25、全双工或半双工模式,且都支持 PCI/PCIE 接口 ,可以 方便 的 与计算机连接。 常用于嵌入式应用的以太网芯片主要有, SMSC 公司的 LAN91C111 系列 、DAVICOM 公司的 DM9000 系列 、 ASIX 公司的 AX88796A 等 。 特点是 支持10M/100M 自适应接入, 支持至少 一种与处理器的总线接口,如 PCMCIA、 ISA 总线等,不支持 PCI 总线。 另一类是 MAC 控制器 作为一个独立的 IP 核存在 。国外已经有公司开发出商用的吉比特以太网 MAC 控制器 IP 核 , 如德国的 morethanIP 公司、 CAST 公司。此外, FPG
26、A 制造商 Altera 和 Xilinx 也分别推出了应用 于 各自 FPGA 的10M/100M/1000M 自适应 以太网 MAC 控制器 IP 核。 国内 也 有一些高校和研究机构在进行以太网 MAC 控制器的研究,主要有中科院计算所,复旦大学,电子科技大学 等 3-5。 但多是 对 10M/100M 以太网 MAC 控制器的研究,对吉比特 以太网 MAC 控制器的研究很少,因此有必要进行千兆以太网 MAC 控制器的实现研究。 1.3 设计目标及 主要设计 内容 以太网最重要的技术集中于物理层和 MAC 层 。 对于不同的传输介 质,物理层屏蔽掉了信道的不同对 MAC 的影响,因此 M
27、AC 层 相对的改动要少的多,这使得设计 MAC 控制器 IP 核具有很强的实际意义。 本论文 的目标是对 以太网 MAC 子层 和 AHB 总线 进行研究,完成符合 IEEE802.3u 及 IEEE802.3ab 协议规范 的 以太网MAC 控制器 及 AHB 从接口的设计、验证和综合,最终实现一个基于 AHB 总线的10M/100M/1000M 以太网 MAC 控制器 IP 核 。 论文 的 内容 安排如下 : 电子科技大学硕士学位论文 4 第一章, 引言 。 介绍本课题的研究背景及意义、国内外的研究现状、论文的设计目标及研究内容。 第二章, 以太网 MAC 层协议 及 相关算法 。 本
28、章 主要对以太网 MAC 层协议进行解析, 并对相关算法进行阐述 。 第三章, 以太网 MAC 层协议功能的实现。 本章 首先 给出 了 以太网 MAC 控制器 IP 核 的 设计规范及 体系结构 ,然后对以太网 MAC 控制器协议处理相关的 各 模块 的设计进行详细说明。 第四章, 以太网 MAC 控制器缓存及 AHB 接口的设计。 本章首先 对 已有的 以太网 MAC 控制器缓存结构进行 分析 比较 并提出了一种改进的缓存结构,然后进行了 AHB 总线 接口 的设计 。 第五章, 对各个模块及整个系统进行 功能 验证及 FPGA 验证。 第六章, 结束语 。 总结全文内容并提出下一步的工作
29、方向。 第二章 以太网 MAC 层协议及相关算法 5 第二章 以太网 MAC 层协议 及相关算法 2.1 以太网的发展历程 1972 年, Xerox 公司 研制出了 Alto aloha 网 ,用于 连接 Alto 工作 站、服务器以及激光打印机 , 数据传输速率达到了 2.94Mbps。这套网络 在 1973 年被命名为以太网,标志着以太网 的 诞生。 1980年, DEC、 Intel和 Xerox 公 司联合发布了第一个 10M以太网 技术 规范 ( DIX规范), 这是 世界上第一个局域网工业标准。与此同时, IEEE802.3 工作组也展开了对以太网技术标准的 研究,并于 1983
30、 年 6 月通过了第一个 802.3 标准。在随 后的几年里, 802.3 标准不断进行补充与更新, 增加了对新的传输媒介(同轴电缆和光纤)的支持, 另外还通过使用中继器扩展以太网的通信范围。 1990 年 9 月, IEEE 通过了 802.3i 标准 。 该标准规定使用双绞线 (10BASE-T)作为以太网传输介质, 双绞线 以太网技术很快在办公自动化应用中普及 2。 19911992 年, Grand Junction 网络公司研制出运行速度 100Mb/s 的高速以太网。在 DIX 规范诞生 十多 年后,以太网数据速率有了第一次飞跃。随后在 1995 年,IEEE 通过了 802.3u
31、 快速以太网标准。 在快速以太网标准发布后不到一年 , IEEE 802.3 工作组就开始了对千兆以太网的研究。 1998 年, 802.3z 千兆以太网标准通过, 随后对支持桌面应用的以双绞线作为传输介质的千兆以太网 技术 的研究又拉开了序幕 2。 1999 年 3 月, IEEE802.3 委员会设立 了高速研究组,开始 研究万兆以太网技术 。2002 年, 10 吉比特以太网标准 802.3ae 发布,标志这以太网进入万兆时代。 2.2 以太网 MAC 层协议 介绍 MAC 子层 属于 OSI 参考模型中的第二层数据链路层 , 其主要功能是控制通信网上的站点接入 和 访问媒介。 在局域
32、网的体系结构中,数据链路层又被划分为 介质访问控制 子层 (MAC)6和逻辑链路子层 (LLC)。 MAC 子 层位于物理层 和 LLC 子层之间, 具体来说, MAC 子层主要实现两大功能: 第一, 数据的封装与解封。包括寻址、差错校验等;第二,媒体接入控制。包括媒体分配和竞争处理。 其中,电子科技大学硕士学位论文 6 媒体接入控制算法是 MAC 子层中 最 重要的 部分,对网络的响应时间、吞吐率及有效利用率等都有重大影响。 2.2.1 以太网 MAC 帧 格式 MAC 帧是承载 LLC 子层数据的单位,以太网 MAC 帧格式 7包括前导码(Preamble)、帧起始定界符 (Start F
33、rame Delimiter)、目的地址 (Destination Address)、源地址 (Source Address)、帧长度类型 (Length/Type)、数据单元 (MAC Client Data),填充 码 (PAD)、 帧校验序列 (Frame Check Sequence)和扩展字段 (Extension), 如图 2-1所示 。 MAC 帧发送时的顺序为:字节顺序按图中从上到下的字段顺序,字节中的比特顺序为从 LSB 到 MSB 发送 。 各个字段简要说明如下 。 P A DP R E A M B L ES F DD E S T I N A T I O N A D D R
34、 E S SS O U R C E A D D R E S SL E N G T H / T Y P EM A C C L I E N T D A T AF R A M E C H E C K S E Q U E N C EE X T E N S I O N7 O C T E T S1 O C T E T6 O C T E T S6 O C T E T S2 O C T E T S4 6 - 1 5 0 0 O C T E T S4 O C T E T SL S BM S B0b 7bB I T S W I T H I NF R A M E T R A N S M I T T E DL E F
35、 T T O R I G H TO C T E T S W I T H I NF R A M E T R A N S M I T T E DT O P T O B O T T O M图 2-1 以太网帧格式 前导码字段:前导码由七个字节的 10101010 组成。物理层通过前导码完成接收帧 稳定的同步。 帧起始定界符字段: 该 字段长度为一个字节,值为 0x55。 该字段在前导码之后,标志着帧的开始。 目的地址字段:目的地址字段长度为 6 字节。该字段表示数据帧所要到达的目的站点,字节发送顺序为由地址低字节到高字节发送。 第二章 以太网 MAC 层协议及相关算法 7 源地址:源地址长度为 6
36、字节,表示数据帧发送站点的 MAC 地址。 长度类型字段( length/type):该字段长度为 2 字节,根据其值的不同表示不同的含义。如果这个字段值小于 0x0600,那么含义为该字段之后数据域的长度;如果大于 0x0600,则表示帧类型。 数据域和填充字段:数据 域 的长度范围是 46 1518 字节。如果上层 递交的 数据不足 46 字节,则 MAC 层 会在其后添加 填充 字段至满足数据 域 的长度要求。 PAD的 内容在协议中并没有做明确的规定。 帧校验字段:该字段长度为 4 字节,是从帧目的地址字段到填充字段的校验和, 802.3 协议规定使用 CRC-32 算法作为帧校验算法
37、。 扩展字段:该字段仅在千兆半双工模式下使用。 在千兆模式下,争用期扩展为 512 字节,但为了保持与百兆模式的兼容性,仍然使用 64 字节 作为最小帧长。如果帧长度不足 512 字节,需要 在帧校验字段后添加扩展字段,直到帧长达到 512字节 。 2.2.2 CSMA/CD 算法 媒体接入控制技术从接入方式上可以分为可以分为随机接入和受控接入两种6。这两种接入方式最根本的区别是在媒体访问过程中是否发生冲突。 受控接入的特点是各个用户不能随意接入信道,而必须服从一定的控制,因而不会存在多个用户同时接入信道的情况 。 受控接入又可以分为集中式控制(如多点线路轮询)和分散式控制(如令牌环网) 两种
38、 。 随机接入的特点是所有用户都可以根据自己的意愿随机的发送信息,当两 个或更多的用户同时都在共享的信道上发送信息时,就产生了冲突。随机接入的典型算法有 ALOHA 和载波监听多点接入 ( CSMA) 。 CSMA 是从 ALOHA 演变出的一种改进协议 。 ALOHA 的媒体接入策略为,发生冲突时,等待一段随机的时间然后重传,纯 ALOHA 接入方式效率较低。 CSMA与 ALOHA 的主要区别就是多了一个载波监听装置, 每个站点在发送前首先要监听媒介的状态 ,以确定当前媒介上是否有其它的站点正在发送 。依据 站点的坚持策略, 有三种监听协议 8: 1) 非坚持 CSMA。 一旦站点监听到信
39、道忙,就不再坚持听下去,而是根 据协议的算法延迟一个随机的时间后重新再监听 。 若进行载波监听时发现信道空闲,则将准备好的帧发送出去。 电子科技大学硕士学位论文 8 2) 1-坚持 CSMA。 该算法的原理为,如果站点监听到信道空闲,则发送帧;如果监听到信道忙,仍坚持监听下去,一直坚持到信道空闲为止。 这种策略的出发点是抓紧一些有利时机发送数据,但是如果有两个或更多的站同时在监听信道,则一旦信道空闲就必然使同时发送的帧相互冲突,反而不利于吞吐量的提高。 3) P-坚持 CSMA。 该算法是一种对 1-坚持算法的折衷,原理为,当监听到信道忙时,仍然监听下去。等到信道变为空闲时,就以概率 P 发
40、送数据,而以概率1-P 延迟一段时间 (端到端的传播延时) ,重新监听信道。这样的策略 称为 P 坚持CSMA。 CSMA 算法由于在发送数据之前进行载波监听,所以减少了冲突的机会。但由于 信道传播延时的存在, CSMA 算法冲突仍不可避免。这是因为, 当一个站点开始发送数据时,载波需要一定的时间才能传播到其它站点。如果在载波传播延时的这段时间 内 ,另外某个站点有数据要发送,它会监听到信道是空闲的,于是立即开始发送, 从而发生冲突 。 而且 只要发生冲突,信道就被浪费 较长 一段时间(帧传输时间 +信道延迟时间)。 CSMA/CD 比 CSMA 又增 加了一个功能,即边发送边监听,只要监听到
41、冲突发生,则冲突的双方就必须停止发送。这样,信道很快就空闲下来,因而提高了信道的利用率。这种边发送边监听的功能 6即称为冲突检测( Collision Detection)。IEEE 802.3 即使用 1-坚持的 CSMA/CD 算法 , 具体算法机制有: 一 ) 等待( Deference)机制 当站点有数据要发送时,首先要将数据交给 MAC 层封装成 MAC 帧。 MAC层准备好数据帧后,首先监听载波信号以明确是否有站点正在发送数据。 如果信道忙,则 MAC 推迟发送( Defer) 。等 载波变为空 闲 后, MAC 并不立即发送帧,而是等待一个合适的 帧间间隔时间 ,目的是给物理层和
42、其它站点的 MAC 处理上一个帧的时间。 在帧间间隔期间 MAC 继续监听载波,如果在 帧间间隔的前 2/3 时间内载波 重新变为 忙,则 MAC 放弃这次接入机会,重新开始等待 过程 ; 如果载波在前 2/3 时间内保持空闲, 则不管载波是否 又重新 变为忙, MAC 都 会在帧间间隔时间到后发送数据帧,帧间间隔的前 2/3 称为时间窗口。 这种机制保证了各站点接入媒介的公平性。 二 ) 冲突检测和处理 当某个站点开始发送数据时,正常情况下 只可能 在发送开始的一段时间内 遭遇 冲突,这段时间 的长度跟信道的最大长度及载波在信道上的传播速度有关,通常被 称为 争用期或碰撞窗口( Collis
43、ion Window)。 理论上争用期的长度为 端到端延第二章 以太网 MAC 层协议及相关算法 9 时( 载波传遍整个冲突域所需时间的两倍 ) ,但在实际计算中,还要考虑转发器时延 等 14 个因素 6,因此远大于该值。在 10M 以太网中,取 51.2us 作为争用期的长度 ,也即在信道上发送 64 字节数据所需要的时间 ;在 100M 以太网 中,为保持和10M 模式的兼容性,将最大电缆长度缩短至 100m, 并 取 5.12us 作为争用期长度,仍然对应在信道上发送 64 字节需要的时间 ; 而在千兆以太网中 ,若将最大电缆长度缩短至 10m 就没有什么实际价值了。为此千兆以太网中采用
44、“载波延伸”的方法, 将 争用时间 扩展 为 512 字节 。 发生在碰撞窗口之内的冲突,通常称为 Early Collision。这种冲突是一种正常的冲突。另外还有发生在碰撞窗口之外的冲突,被称为迟冲突( Late Collision)。在正常的网络中不会有迟冲突发生,因为在碰撞窗口内,载波已经传遍整个冲突域, 冲突域内的其它所有站点都已经检测到信道忙而推迟发送。迟冲突的发生是由于网络异常,例如电缆长度超过规定最大长度、某站点的物理层或 MAC 层 设备发生故 障等。迟冲突会被 MAC 层 报告为错误。 冲突窗口决定了以太网帧需要有最小帧长的的限制 。 这是 因为 , 如果所发送的帧 在信道
45、上的持续时间 小于争用期长度 ,那么 该帧 在冲突窗口结束前就已发送完毕,这样 发送站点 就有 可能检测不到发生的冲突 。 802.3 规定 MAC 帧最小长度为 64 字节, 所有小于该长度的帧被当作帧碎片处理。 当 MAC 层检测到冲突后,不是立即停止发送数据,而是发送一段阻塞码来强化冲突, 以 使 其他 站点能够可靠的检测到冲突。之后 MAC 停止发送数据,随机退避一段时间后重新尝试发送 。 802.3 协议规定使用截断二进制指数退避算法, 该算法的原理为: 1) 进行退避的时间单位 为 争用期长度 。 2) 设数据帧发生第 k 次重传, k 为整数, 0k10。 3) 取 r 为区间
46、02k上服从均匀分布的随机数,则 r 即为随机退避的时间 长度 。 802.3 协议 规定 帧的最大重传次数为 16,如果 重传次数超过 最大重传次数,则MAC 放弃 重试发送 该帧。 2.2.3 全双工以太网 全双工以太网 是指在同一条网络链路上可以同时进行数据的发送和接收 。 要实现全双工 通信 ,必须满足 3 个条件 7: 1) 物理媒体必须支持无干扰的同时发送和接收数据。 电子科技大学硕士学位论文 10 2) 链接网段上不能有多于 2 个的设备,即 有数据传输的两个站点之间为点到点传输。 3) 相互通信的 两 个设备都要支持全双工模式 。 以太网发展初期,由于传输介质或以太网设备的限制
47、,以太网一直工作在半双工模式下。 直到 1990 年, 使用双绞线作为传输介质以及 交换式集线器(简称交换机)问世促使了全双工以太网的诞生 。 交换机通常有多各端口,每个端口都直接与主机相连, 使 每一对相互通信的主机都能像独占通信媒体那样,进行无冲突的数据传输 。 全双工以太网中, 站点有数据要发送时 MAC 层不需要监听载波,而是直接发送数据,但是要保证当前发送的帧与上一发送帧之间的时间间隔满足最小帧 间间隔的要求。最小帧间间隔的目的是使得接收方的 PHY 和 MAC 有时间处理上一帧数据。 另外,在全双工以太网中不会发生冲突,因此从机制上没有最小帧长度的要求,但是 在全双工以太网中仍然保
48、留了最小帧长度限制。这样做是 为了保持与半双工以太网的一致性,以便 于上层驱动 和 应用软件能够无差别的对待全双工以太网和半双工以太网。 全双工模式不仅提升了以太网的吞吐量,而且打破 传统 CSMA/CD 以太网 传输距离的限制,从而 为 以太网技术由局域网到广域网的扩展 奠定了基础 2。 2.2.4 全双工时的 流量控制 全双工以太网在提高数据吞吐率 的 同时也带来了一些问题 。 在全双工通信模式下, MAC 不再监听载波 和冲突检测,因此 用于 半双工网络中 流量控制 的伪载波侦听及强迫冲突算法 9都不能工作。在以太网速度较低时,并没有考虑流量控制的问题,因为在低速情况下,网络的堵塞并不严
49、重。但是随着以太网的速度越来越高 ,带宽与网络吞吐量的 提升 使 拥堵 的 状况 越来越严重 10。 网络的拥堵将会导致丢失帧的情况发生,严重的影响了网路性能。针对这个问题, IEEE802.3X 工作组开发了用于全双工以太网的显式流量控制算法。 全双工以太网的显式流量控制通过 MAC 控制子层来实现。 MAC 控制子层属于数据链路层,它介于 CSMA/CD MAC 层和 MAC 客户端之间,其中 MAC 客户端可以是 桥接实体 (如交换机) 、 LLC 子层 或者其他应用。 MAC 控制子层可选的,如果 MAC 层客户端选择不使用流量控制,那么 MAC 控制子层对于 CSMA/CD 第二章 以太网 MAC 层协议及相关算法 11 MAC 及客户端都是透明的 , 仿佛客户端和 CSMA/CD MAC 直接相连而中间没有控制子层的存在一样 。