端口自协商

版权声明:本文为博主原创文章,未经许可,不得转载! https://blog.csdn.net/bin_ge_love/article/details/78892366

1.端口自协商的背景

端口自协商是在95年5月由IEEE组织通过了百兆以太网标准之后引入的功能。在当时,链路中大量部署的是十兆的HUB,但是要使百兆以太网快速的兴起并投入运用,就必须要解决百兆和十兆HUB的互联互通问题,而自协商的引入完美的解决了这个问题。

2. 什么是自协商

自协商就是两个链路中的设备,通过交换彼此的通讯能力(这个通信能力包括:速率、双工、流控),来协商出一个最优的通讯能力来进行通讯。目的就是提高通讯效率,减轻网络工作者的工作量(省的配置),解决因速率、双工不匹配导致的冲突。

3. 自协商的分类

自协商分为电口协商和光口协商,细分的话,目前可以分为三类:千兆及以下电口协商(IEEE802.3 clause 28)、千兆光口协商(IEEE802.3 clause37)、万兆及以上光口协商(IEEE802.3 clause73)

4. 协商原理

光口和电口在协商的大致流程相同,今天主要是以电口协商过程为例说明,然后补充说明一下光口协商和电口协商的不同点。

首先,自协商这个过程是发生在OSI七层中的物理层,涉及到的硬件就是phy,也就是实际的协商过程是由phy来完成的。在讲解过程之前,先对涉及到的术语进行解释:

1. NLP(Normal Link Paulse):普通连接脉冲,这个脉冲是在设备上电之后,每隔16+/-8秒发送一次,作用仅表示对端设备在线。

2. FLP(Fast Link Paulse):快速连接脉冲,这个脉冲只是在两端设备进行协商的时候才会发送,此脉冲的发送周期为16+/-8ms。一个FLP包含33个脉冲位置,其中17个奇数位的脉冲为时钟脉冲,用来维持链路的同步;16个偶数位置的脉冲为数据脉冲,携带的就是协商所要用到的速率、双工、流控等信息。

3. LCW (Link Code Word):就是上面提到的16位用来协商的有效数据。

其中包含 BASE页 和 下一页

BASE页各bit表示含义:

bit 0 - 4 : 协议类型(00001 表示的是802.3)

bit5 :10BASE-T 半双工

bit6 :10BASE-T 全双工

bit7 :100BASE-TX 半双工

bit8 :100BASE-TX 全双工

bit9 :100BASE-T4 

bit10:对称流控 (TX能发送流控且RX能接收并处理流控)

bit11:非对称流控 (TX或者RX有一个不支持流控)

bit12:reserved(保留)

bit13:RemoteFault(远端错误,表示是否传输远端错误)

bit14:ACK 用来协商时向对端回复,表示本段已收到信息

bit15:NP(Next Page)标识是否存在下一页

下一页包含:规则页和不规则页

     规则页:bit 0-10:信息编码比特,主要与1000BASE-T的协商有关。

      bit11:Toggle 在下一页的传输过程中,用于保证链路的同步,一直进行0、1跳变,初始值为BASE页的bit11

      bit12:Reserved 保留

      bit13:RemoteFault(同上)

      bit14:ACK(同上)

      bit15:NextPage(同上)

      不规则页:bit 0-11 :数据比特 随意的值(厂家可定制),其他位和规则页一样。

协商过程:

1. 两端都是自协商

A、B两个设备都开启自协商的话,双方互相发送FLP,两端在收到3个连续一致的FLP后,进行解析,将解析出来的 值存在本端的5号寄存器(phy标准以太网寄存器),然后给对端回复ACK,经过和本端的通信能力进行匹配,得出最大 的通讯能力,然后去设置本端的状态寄存器(1号寄存器的bit5置为1),在自协商完成之前,该位一直为0,表示phy还 处于自协商状态。至此,自协商整个过程完成。

2. A端为自协商,B端为强制

这种情况下,因为A端为自协商,所以A端向B端发送的FLP,B端能够识别其中的信息并解析,匹配成功后将自身设 置为up,但是B端为强制,B端向A端发送的是NLP,A端不能识别,导致A端Down掉。

为了解决这一情况(一段up,一段down),引入了并行检测功能。这个功能就是:一旦自协商的一端在链路上检 测不到FLP,则会检测相应速率的特征信号,每个速率的特征信号不一样,由特征信号就可以确定速率,然后将自协商 (Down)的这端设置为up。但是并行检测无法得到双工和流控的信息,故A端的通讯模式默认不支持流控、双工模式为 半双工,这也是并行检测的缺点。

3. 两端都是强制

这种情况下,根据两端的具体配置,来决定端口的up和down(实际不参与协商)

5. 光口协商

光口协商大致流程和电口协商的流程相同。有两点不同的是:

1. 光口协商不协商速率,电口需要协商速率(原因:电口协商发生在phy中PMD层,这时候还没有进行链路同步(发生 在PMA层),所以需要协商速率;而光口协商发生在PCS层,是发生在链路同步之后,这时速率已经同步,所以不需要协商速率)

2. 电口协商时,发送的是FLP(只能在双绞线上传输,不能再光纤上传输),平常情况下发送NLP;

    光口协商时,发送的是/C/码(configure),平常情况下发送Idle码。

   C码中的具体bit和LCW也有所差异:

bit 0-4 Reserved(保留)

bit5:全双工

bit6:半双工

bit7:对称流控

bit8:非对称流控

   bit9-11:Reserved(保留)

      bit12:RemoteFault1

      bit13:RemoteFault2

      bit14:ACK

      bit15:NextPage

以上就是端口自协商的大致内容,完全由笔者根据个人理解所写,难免有错误之处,若与您的意见相左,欢迎讨论交流!














猜你喜欢

转载自blog.csdn.net/bin_ge_love/article/details/78892366
今日推荐