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