以太网交换控制电路流量控制研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通常,存储转发的以太网交换控制电路有 3 种缓冲方式: 端口输入缓冲,共享中央缓冲和端口输出缓冲。当发送方和 接收方数据传输率不匹配时,为了防止高速发送方的数据把 低速接收方“淹没”,需要通过流量控制机制使发送方在接收 方缓冲区将满时,停止发送数据帧,在缓冲区将空时,继续 发送数据帧。在数据链路层实现流量控制,可以调整连接设 备的传输速率、解决拥塞问题和减少帧丢失。
接收数据指示 控制指示
发送数据请求 控制请求
逻辑链路控制子层
MAC控制操作 MAC控制帧(接收)
MAC控制帧(发送)
MAC控制子层
数据帧(接收)
数据帧(发送)
数据帧(接收)
数据帧(发送)
数据帧(接收)
MAC控制帧(发送)
数据帧(接收)
数据帧(发送)
介质访问控制子层
图 2 MAC 控制层示意图
在 全 双 工 MAC 控 制 框 架 下 , 流 量 控 制 机 制 是 通 过 PAUSE 功能实现的。PAUSE 功能可以防止瞬时过载导致缓冲 区溢出时不必要的帧丢失。PAUSE 操作实现了一种简单的停 -等式流量控制机制。如果某个端口要停止帧的接收,可以发 送一个带有参数的 PAUSE 帧,参数指示全双工链路对方在开 始发送数据前需要等待的时间。当链路对方接收到 PAUSE 帧后,在参数指定的时间内停止发送数据。当指定时间超出, 或端口流量控制状态解除后,原拥塞端口重新发出操作参数
2 交换控制电路全双工流量控制机制的实现
本文设计的交换控制电路是数据链路层的存储转发式交 换控制器,遵循以太网协议 IEEE802.3,支持端wk.baidu.com半双工和 全双工模式、流量控制技术、虚拟局域网(VLAN)技术和生成 树技术,实现了以太网的二层交换功能。本节阐述了以太网 交换控制电路流量控制的实现,包括缓冲区高低水位的选择 及设计实现的流程。 2.1 PAUSE 操作的实现
第 33 卷 第 13 期 Vol.33 No.13
计算机工程 Computer Engineering
2007 年 7 月 July 2007
·工程应用技术与实现·
文章编号:1000—3428(2007)13—0268—04 文献标识码:A
中图分类号:TP393.07
以太网交换控制电路流量控制研究与实现
当链路双方通过自动协商启用流量控制以后,链路端口 可以生成 PAUSE 帧,同时在接收帧的过程中识别 PAUSE 帧, 响应停-等请求,交换控制电路 PAUSE 操作的实现主要有 3 个方面。
第 1 个方面:PAUSE 帧要及时发送。以太网交换设备按 序发送数据帧,当缓冲区将要溢出时插入 PAUSE 帧。PAUSE 帧会因为排队等候发送而造成延迟,因此,PAUSE 帧应该具 有发送优先权。如果在发送 PAUSE 帧前数据帧正在传输, PAUSE 帧必须等待当前数据帧传输完毕,在帧间隔过后才能 发送。
IEEE802.3 协议为 MAC 控制子层提供了一个全双工流量 控制结构框架,MAC 控制子层是介于逻辑链路控制子层和介 质访问控制子层间的可选功能,MAC 控制子层在 OSI 体系 中的位置如图 1 所示。
OSI参考模型
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
LLC——逻辑链路控制 MAC 控制——(可选项) M A C—— 介质访问控制
李 苗1,2,殷弼君2,王玉艳2,段国东2
(1. 上海交通大学电子工程系,上海 200030;2. 华东计算技术研究所,上海 200233)
摘 要:针对以太网交换控制电路帧丢失问题,研究了以太网交换的流量控制技术,在以太网交换控制电路设计中采用了流量控制机制, 实现了基于数据缓冲策略的流量控制功能,解决了数据缓冲区可用容量不足造成的数据帧丢失问题。 关键词:介质访问控制;流量控制;PAUSE 帧
本文研究了以太网交换电路半双工和全双工模式下流量 控制技术,重点阐述了全双工流量控制机制及以太网交换电 路设计采用的缓冲策略。
1 以太网流量控制技术
IEEE802.3 协议把数据链路层分为逻辑链路控制子层、 MAC 控制子层和介质访问控制(MAC)子层。其中 MAC 控制 子层为可选子层,该子层规定了一个通用的全双工流量控制 结构框架;载波侦听多路访问/冲突检测(CSMA/CD)算法则实 现了半双工流量控制。
第 1 种方法是在产生阻塞的端口上强制发出一组由 32~ 96 位构成的阻塞信号(JamSignal),这组阻塞信号与端口将要 接收的帧产生冲突,链路发送方发现冲突后,将等待一段后 退时间再重新发送帧。如果再次发现冲突,继续后退等待发 送。链路发送方如果尝试发送 16 次后还未将帧发送出去,会 将该帧丢弃。这种方法虽然可以延迟帧的发送,对流量进行 控制,但如果在链路发送方后退的这段时间内端口的拥塞已 经解除,发送方必须等待后退时间过后才能发送帧,这将造 成链路的空闲。
【Abstract】This paper studies the flow control technology in Ethernet switch to the problem of frames losing. The flow control technology to Ethernet switch is applied. In the design, the flow control mechanism based on the data buffer is realized and the data buffer in reason is distributed. Thus the frame losing which results from buffer can be resolved. 【Key words】MAC; flow control; pause frame
随着网络协议标准的深入研究和网络体系结构的进一步 完善,以太网技术取得了很大的进步,其应用范围越来越广。 介质传输技术的快速发展使得链路传输引起的误码率越来越 低,例如,以太网IEEE802.3 协议规定当采用铜介质时数据 位出错率为 10-8,当采用光纤介质时为 10-11,位出错率对于 数据链路层而言已经低到了可以忽略不计的程度,可以满足 高层协议或应用数据的可靠传输。
态撤销后,拥塞端口停止发送阻塞信号,此时链路对方可以 重新开始发送帧。这种方法使发送方能够及时发送数据帧, 避免发送方的后退等待,从而提高链路利用率。 1.2 全双工网络的流量控制技术
全双工网络中,交换控制电路端口不检测冲突,忽略可 延迟传送的载波侦听,所以不能采用背压技术解决拥塞,需 要采用显式的流量控制机制,使交换控制电路能够阻塞处于 拥塞状态的站点。
第 2 种方法是发生拥塞后,拥塞端口发出阻塞信号,链 路对方检测到冲突后将暂停帧的发送,当拥塞端口的拥塞状
作者简介:李 苗(1979-),女,硕士生、助理工程师,主研方向: 计算机体系结构,IC设计技术;殷弼君,助理工程师;王玉艳,高 级工程师;段国东,工程师 收稿日期:2006-09-29 E-mail:limiao111@sohu.com
为 0 的 PAUSE 帧,链路对方从暂停的位置继续发送数据帧。 MAC 控制帧是符合 IEEE802.3 协议的以太网帧,可以通
过其唯一的类型域标识符(0x8808)识别。MAC 控制帧在网络 上的发送和接收与数据帧类似,除了前导码和帧开始符外, 长度为以太网帧的最小帧长度(64 字节)。MAC 控制帧的数据 域内,前两个字节标识了 MAC 控制的操作码,表示帧请求 的控制功能。目前协议只定义了一种操作代码,即 PAUSE 操作,操作代码为 0x0001。操作码后是操作所需的参数,参 数只用了数据字段的 2 个字节,数据字段中其余位将填充 0。 PAUSE 帧格式如图 3 所示。
图 1 MAC 控制子层在 OSI 体系中的位置
交换控制电路要防止缓冲区溢出,可以利用 MAC 控制 子层来控制以太网介质访问控制子层的操作。当已用缓冲区 容量达到一个预先设定的阈值时,端口向全双工链路对方发 出停止发送数据的请求,这个请求通过 MAC 控制子层产生 的控制帧实现。
同样,端口可以接收由其他站点 MAC 控制子层产生的 控制帧,控制帧夹在客户数据帧流中发送,接收方会根据帧 的内容将控制帧分离出来,提交到 MAC 控制子层中的流量 控制模块,流量控制模块解析控制帧的内容,提取帧中的控 制参数,根据控制参数决定暂停发送的时间。MAC 控制子层 接收和发送的过程如图 2 所示。
第 2 个方面:对接收到的 PAUSE 帧进行识别。识别过程 需要 512 位链路传输时间,这是完整地接收 64 字节 PAUSE 帧所需的时间。接收端口对所有接收的帧进行协议分析,结
前导码 帧开始符 目的地址 源地址 类型 操作码 操作参数 (7字节) (1字节) (6字节) (6字节)(2字节)(2字节) (2字节)
保留 校验序列 (42字节) (4字节)
帧长 64字节
图 3 PAUSE 帧格式
PAUSE 帧各个字段定义如下: (1) 前 导 码 与 数 据 帧 前 导 码 相 同 , 为 连 续 7 字 节 的 10101010 序列,用于物理层设备的同步; (2) 帧 开 始 符 也 与 数 据 帧 帧 开 始 符 相 同 , 为 序 列 10101011,表示帧数据内容的开始; (3)目的地址为帧发送端口的 48 位 MAC 地址,它可以是 单播地址,也可以是组播地址,协议规定 PAUSE 的目的地址 为保留的组播地址 0x01-80-C2-00-00-01; (4)源地址为发送 PAUSE 帧端口的 48 位 MAC 地址; (5)类型域为所有 MAC 控制帧保留类型 0x8808; (6)操作码为 0x0001; (7)PAUSE 帧含有一个参数,为 2 字节的暂停时间参数。 它是 PAUSE 发送方请求对方停止发送数据帧的时间长度,通 常为 0xFFFF,时间度量单位是以当前传输速率传输 512 位数 据所用的时间,接收方实际暂停的时间为操作参数字段内容 与以当前传输速率传输 512 位数据所用时间的乘积; (8)帧末尾为 4 个字节的循环冗余校验序列(CRC)。
基于 IEEE802.3 协议的以太网交换控制电路属于数据链 路层设备,数据链路层完成的是网络中各个端口的数据通信, 发送方将用户数据封装成帧,同时为每个数据帧生成循环冗 余检验码(CRC),来解决物理线路的不可靠问题。由于硬件 成本和数据帧处理速度的限制,缓冲拥塞造成的丢帧率远远 大于链路传输中位出错率,因此,在数据链路层交换控制电 路的设计中必须解决缓冲拥塞造成的丢帧问题。
Research and Realization of Flow Control in Ethernet Switch
LI Miao1,2, YIN Bijun2, WANG Yuyan2, DUAN Guodong2
(1. Dept. of Electronic Engineering, Shanghai Jiaotong University, Shanghai 200030; 2. East China Institute of Computer Technology, Shanghai 200233)
背 压 技 术 是 交 换 控 制 电 路 发 出 一 种 伪 碰 撞 信 号 (false collision signal)技术。背压技术通常根据已用缓冲区的容量比 例来实现,当已用缓冲区容量达到一个预先设定的比例时, 端口将根据这个阈值生成阻塞信号,而当空闲缓冲区容量超 过另一个较低的比例时,端口将取消阻塞信号。在拥塞端口 所在的网段内,阻塞信号的传输可以使该网段里所有的端口 都能检测到冲突,等待阻塞信号结束后再传输数据帧,从而 阻止更多的碰撞,暂时中止了数据的传输,使缓冲区的空间 得到释放。实现方法有两种:
—268—
1.1 半双工网络的流量控制技术 当以太网交换控制电路端口工作在半双工模式时,符合
IEEE802.3 协议的载波侦听多路访问/冲突检测(CSMA/CD)算 法,可以实现隐式的流量控制,即采用背压技术(BackPressure) 防止缓冲区的溢出,在发送方数据到来前采取某种动作,阻 止发送方发送数据。
相关文档
最新文档