代码库_自协商SGMII

代码库_自协商SGMII

  • 前言
  • README
    • 自协商的目的
    • 自协商原理
    • 光口自协商
    • 强制模式的问题

前言

光口/网口调通后,补充了一些理论和说明;
以下内容查找于网络,已编辑

README

自协商的目的

最早的以太网都是10M半双工的,所以需要CSMA/CD等一系列机制保证系统的稳定性。随着技术的发展,出现了全双工,接着又出现了100M,以太网的性能大大改善。但是随之而来的问题是:如何保证原有以太网络和新以太网的兼容?
于是,提出了自动协商技术来解决这种矛盾。自动协商的主要功能就是使物理链路两端的设备通过交互信息自动选择同样的工作参数。自动协商的内容主要包括双工模式、运行速率以及流控等参数。一旦协商通过,链路两端的设备就锁定在同样的双工模式和运行速率。
1、百兆以太网标准IEEE 802.3u规范,将自协商作为可选功能。
2、千兆以太网标准IEEE 802.3z规范,将自协商作为强制功能,所有设备必须遵循并且必须默认启用自协商。

自协商原理

在双绞线链路上,如果没有数据传输,链路并不是一直空闲,而是不断的互相发送一种频率较低的脉冲信号,任何具有双绞线接口的以太网卡都能识别这种信号。如果再插入一些频率更低的脉冲,这些脉冲称为快速链路脉冲FLP(Fast Link Pulse),两端设备也能识别。于是,可以利用FLP进行少量的数据传输,达到自动协商的目的。
以太网速率双工链路自协商优先级别从高到低,顺序如下:

1)1000M全双工
2)1000M半双工
3)100M全双工
4)100M半双工
5)10M全双工
6)10M半双工

如果协商通过,网卡就把链路置为激活状态,可以开始传输数据了。如果不能通过,则该链路不能使用。

如果有一端不支持自动协商,则支持自动协商的一端选择一种默认的方式工作,一般情况下是10M半双工模式。
例如:把一台使用100M网卡的计算机连接到1000M的交换机上,假如交换机的端口设置为自动协商,最终交换机的端口会协商为100M全双工模式。假如交换机的端口强制设置为1000M,将导致自协商不能通过,此计算机无法连接网络。
自协商完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销。
原文出处:http://www.net1980.com/2011/01/05/duplex/

光口自协商

电口和光口自协商主要区别在OSI中它们所处的位置不同,对于电口,自协商发生在链路信号传输之前;对于光口来说,自协商机制与PCS在同一层,这意味着光口的协商必须建立链路同步以后才可以进行协商

千兆光口可以工作在强制和自协商两种模式,802.3规范中千兆光口只支持1000M速率,支持全双工和半双工两种模式
自协商和强制最根本的区别在两者建立物理链路时发送的码流不同,自协商模式发送的是配置码流/C/码,强制模式发送的IDEL码流/I/

1 两端都为自协商
双方互相发送/C/码,连续接收到3个相同的/C/码且接收到的码流和本段工作方式相匹配,则返回给对方一个带有Ack应答的/C/码,对端接收到应答信号,认为两者可以互通,设置端口为UP状态
2 一端强制 一端自协商
强制端发送/I/码流无法给对端提供本端的协商信息,更无法返回Ack应答,自协商端DOWN,但强制端可以识别/C/码,认为对端是与自己匹配的端口,所以强制端口为UP状态
3 两端都为强制
与两端都为自协商相似,互相发送的是/I/码,直接设置本端端口为UP

强制模式的问题

1 以太网的两端工作模式必须设置一致
2 假如一端固定模式,另一端自协商模式,即便能够协商成功,自协商的那一端只能工作在半双工模式
3 假如一端工作在全双工,另外一端工作在半双工(包括自协商出来的半双工)Ping包没有问题,流量小的时候也没有问题,流量达到约15%以上时,就会出现冲突、错包,最终影响工作性能
4 两端都是自协商时,最后的协商结果是“连贯都支持的工作模式中优先级最高的哪一类”
5 如果A端自协商,B端设置为100M全双工,A自协商为100M半双工后,再强制将B改为10M全双工,A也会马上向下自协商到10M半双工;反之,如果B端先配置10M全双工再配置为100M全双工,A端会协商不成功,连接不上,重新插拔A端网线,就会重新自协商至100M半双工

你可能感兴趣的:(代码库)