本文主要是介绍MAC知识点006:IEEE802.3 Pause帧解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MAC知识点006:IEEE802.3 Pause帧解析
1、pause帧出处?
在IEEE802.3协议中规定中,pause帧是一种控制帧,用于控制对端设备暂停发送数据一段时间。802.3-2015_SECTION2 附录31B描述的Pause帧是均可以在1GB/s、10GB/s、40GB/s、100GB/s速率下实现,并不区分速率。
具体描述在802.3-2015_SECTION2 附录31B:
Annex 31B MAC Control PAUSE operation
本章节内容描述了Pause帧的作用,帧格式、以及实现原理,并且提出了一些要求:
2、pause帧格式
帧格式详见地址:MAC学习-基础知识002 pause报文格式
3、Pause帧处理流程
Pause帧使用流程详见:MAC知识点004:pause帧处理流程
4、IEEE802.3-2015对Pause帧的描述重点--限制
- Pause帧使得对端暂停发送数据帧(DATA frames)一段时间,不能禁止对端控制帧(control frames)的发送。备注:Pause帧也是控制帧的一种
- 全双工模式下才能使用Pause帧,半双工模式是不支持的
- 当MAC控制优先级操作使能时,MAC control Pause帧应该被disable
- Pause帧的传输并不是必须功能,如果支持此功能则必须实现协议描述的状态机
- 当对端接收Pause帧后会将非零的暂停时间(Pause_time)赋值给计数器count,当当前DATA帧发送完成后,开始暂停发送数据,count递减。
- 一旦接收到新的Pause帧,则新Pause帧的暂停时间会覆盖旧的暂停时间。备注:也就是会发生这2中情况:当前的Pause time还未结束,接收到新的非零Pause time,继续暂停发数据Pause_time。当前的Pause time还未结束,接收到新的全零Pause time,pause结束,可以立即发送Date frames。
- 暂停时间(Pause_time)太大会影响传输效率,因此需要一个上限。备注:建议Pause_time是可配置的,需要考虑上下游流控反压设计,经过计算得出一个合理的值。
- 设备接收到Pause帧后需要在一定时间内相应。如40GB/s模式下,接收到到Pause_time非零的Pause帧后,超过394个单位时间后,不可以发送新的数据帧。
协议部分截图如下:
相关文章:
这篇关于MAC知识点006:IEEE802.3 Pause帧解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!