phy和fiber 自动协商原理

1. 自协商原理:
     
自协商是通过一种叫做快速连接脉冲(Fast Link Pulse)的信号实现的,简称FLP。自协商的双方通过FLP来交换数据。

在具备自协商能力的端口没有Link的情况下,端口一直发送FLP,在FLP中包含着自己的连接能力信息,包括支持的速率能力、双工能力、流控能力等。这个连接能力是从自协商能力寄存器中得到的(Auto-Negotiation Advertisement Register ,PHY标准寄存器地址4 )。FLP中的编码方式如图。依靠脉冲位置编码携带数据。一个FLP突发包含33个脉冲位置。17个奇数位置脉冲为时钟脉冲,时钟脉冲总是存在的;16个偶数位置脉冲用来表示数据:此位置有脉冲表示1,此位置没有脉冲表示0。这样1个FPL的突发就可以传输16bit的数据。自协商交互数据就这样通过物理线路被传输。

如果两端都支持自协商,则都会接收到对方的FLP,并且把FLP中的信息解码出来。得到对方的连接能力。并且把对端的自协商能力值记录在自协商对端能力寄存器中(Auto-Negotiation Link Partner Ability Register , PHY标准寄存器地址5 )。同时把状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)置成1。在自协商未完成的情况下,这个bit一直为0。然后各自根据自己和对方的最大连接能力,选择最好的连接方式Link。比如,如果双方都即支持10M也支持100M,则速率按照100M连接;双方都即支持全双工也支持半双工,则按照全双工连接。一定连接建立后,FLP就停止发送。直到链路中断,或者得到自协商Restart命令时,才会再次发送FLP。
并行检测
为了保证在对端不能支持自协商的情况下也能连接,引入了被称为并行检测(Parallel Detection)的机制。在一端打开自协商,另一端关闭自协商的情况下,连接的建立就依靠并行检测功能实现。
    并行检测机制是这样的:在具有自协商能力的设备端口上,如果接收不到FLP,则检测是否有10M链路的特征信号或100M链路的特征信号。
  1) 如果设备是10M设备,不支持自协商,则在链路上发送普通连接脉冲(Normal Link Pulse)简称NLP。NLP仅仅表示设备在位,不包含其它的额外信息。
  2) 如果是100M设备,不支持自协商,则在没有数据的情况下,在链路上一直发送4B/5B编码的Idle符号。
     并行检测机制如果检测到NLP,则知道对方支持10M速率;如果检测到4B/5B编码的Idle符号,则知道对方支持100M速率。但是对方是否支持全双工、是否支持流控帧这些信息是无法得到的。因此在这种情况下,认为对方只支持半双工,不支持全双工,且不支持流控帧。

  基于以上原理,在对端不打开自协商时,打开自协商的一方只能协商成半双工模式。

  802.3协议规定,通过并行检测建立连接后,PHY的状态寄存器(PHY标准寄存器地址1)的自协商完成bit(bit5)依然要置位成1,尽管链路上并非使用了真正的自协商操作。同时规定在自协商完成bit为1的情况下,本地自协商能力寄存器(PHY标准寄存器地址4)和对端自协商能力寄存器(PHY标准寄存器地址5)是有意义的。所以,要把寄存器5中的数据更新。如果建立的连接为10M,则寄存器5的10M能力bit(bit5)置1,其它bit置0,表示对端只能支持10M半双工;如果建立的连接为100M,则寄存器5的100M能力bit(bit7)置1,其它bit置0,表示对端只能支持100M半双工。

2. 自协商机制有两种,一种称为:Autonegotiation,另一种称为:Autosensing/SpeedDetection。
Autonegotiation包含以下要点:
   
标准的协商速度的握手机制,自动配置到最可能的连接(也就是100M全双工之类),能够和旧的或不支持自协商的设备互连。
Autosensing/Speed Detection包含以下要点:
    仅仅自动配置到10M或100M,而不作双工设置。
10BASE-T的以太网接口(它只支持10M,不支持自协商)在链路UP之前会发送Link Test Pulse(LTP),该脉冲用以检测链路是否应该UP;而100BASE-T以太网接口(它只支持100M,不支持自协商)在链路UP之前会发送FAST ETHERNET IDLE流,用以检测链路是否应该UP。

支持自协商(Autonegotiation)的以太网接口则在链路UP之前发送FLP,FLP实际上是一组LTP和数据脉冲的组合,它们表明一种含义:例如我支持100M全双工。较旧的设备例如10BASE-T仍然将这些FLP识别为LTP,而自协商设备则能够识别FLP的含义并通过交互这种握手信息来使链路成为最优配置。如果自协商设备看到有一般的LTP(不是有特定含义的FLP)输入,它就将本端设置为10M半双工。如果自协商设备看到有FAST ETHERNET IDLE输入,它就将本端设置为100M半双工。以上所述的自协商机制只对10/100兆铜缆接口或千兆光/电口有效,100BASE-FX不支持自协商。

3. 下面举例说明10/100M自协商的过程:
如图1所示,两台支持自协商的设备互连。
图1 两台支持自协商的设备互连示意图
设备A和设备B都向外发送FLP,每台设备收到对端的FLP后在自己的FLP中将确认BIT置位,然后每台设备将自己的速率和双工设置为双方都支持的最优模式,并开始发送FAST ETHERNET IDLE,然后链路就UP了。
如图2所示,一台自协商设备和10BASE-T设备互连。
图2 一台自协商设备和10BASE-T设备互连示意图
设备A向外发送FLP,而设备B发送普通LTP。设备A“平行检测”到对端的LTP后,将本端置为10M半双工。这种情况有个危险情况,就是当B是10M全双工时,A协商的结果也是10M半双工。
如图3所示,一台自协商设备和100BASE-T设备互连。
图3 一台自协商设备和100BASE-T设备互连示意图
设备A向外发送FLP,而设备B发送FAST ETHERNET IDLE。设备A“平行检测”到对端的IDLE后,将本端置为100M半双工,并开始发送FAST ETHERNET IDLE。这种情况有个危险情况,就是当B是100M全双工时,A协商的结果也是100M半双工。
如图4所示,自协商引起的双工不匹配。
图4 两自协商引起的双工不匹配示意图
    设备A是自协商状态,设备B虽然支持自协商,但却被设置为100M全双工,并且关闭自协商功能。故设备A发送FLP,而设备B发送FASTETHERNET IDLE。设备A收到设备B的IDLE后就将本端设置为100M半双工,而设备B是强制的100M全双工,所以会出现下列问题:如果设备A和设备B同时发送一帧,设备A会认为发生了冲突并破坏自己发送的帧并丢弃设备B的帧,然后试图重发自己的帧。而设备B则不会重发帧,并将设备A的帧看作是corrupted帧。所以设备A这一侧会纪录很多Late Collisions,而设备B则会纪录很多CRC ERROR帧。
如图5所示,错误配置引起的连接不UP。
图5 错误配置引起的连接不UP案例示意图
    设备A被配置为100M全双工并使能自协商,设备B被配置为100M半双工(或仅仅是半双工)并使能自协商。每台设备都收到对端的FLP但由于双工不匹配又无法更改本地的状态,所以链路不会UP。
自协商设备和Autosensing设备的互操作。
    Autosensing设备不使用FLP,且将FLP识别为LTP。Autosensing设备初始时总是发送FAST ETHERNET IDLE,但是当收到了LTP或FAST ETHERNET IDLE后,本端会改变发送的脉冲,即收到了LTP,本端就发送LTP,收到了FASTETHERNET IDLE,本端继续发送FAST ETHERNET IDLE。这就有下列情况:设备A是自协商设备,设备B是Autosensing设备。初始设备A发送FLP,设备B发送FAST ETHERNET IDLE,设备A收到FAST ETHERNET IDLE后将本端设置为100M半双工,并开始发送FAST ETHERNET IDLE;设备B肯定先收到A的FLP并将其识别为LTP,同时将本端设置为10M半双工,同时发送LTP。链路UP(设备A以后发送的FAST ETHERNET IDLE都被B认为是垃圾数据,A也可能不理会B的LTP)。这就出现了一端10M,另一端100M的情况。
图6 自协商设备和Autosensing设备的互操作
或者初始设备A发送FLP,设备B发送FAST ETHERNET IDLE,设备B先收到A的FLP并将其识别为LTP,同时将本端设置为10M半双工,并发送LTP;设备A收到B的LTP后并将本端设置为10M半双工,链路UP。
图7 两台支持自协商的设备互连示意图
下面说明1000M自协商的过程:
    千兆自协商和10/100兆自协商使用同样的机制,1000BASE-LX和1000BASE-SX使用自协商机制来协商双工和流控。1000BASE-T设备的自协商还会包含附加域(例如是MASTER还是SLAVE)的协商。千兆设备几乎没有半双工的情况(虽然可以协商),所以很多双工的问题都不存在了。
如图8所示,1000BASE-LX和1000BASE-SX自协商和非自协商的互连。

图8 两台支持自协商的设备互连示意图

设备A使能自协商,设备B关闭自协商,这种结果是一端UP,一端DOWN或两端都不UP。
如图9所示,1000BASE-T自协商和非自协商的互连。
图9 1000BASE-T自协商和非自协商的互连示意图
设备A使能自协商,设备B关闭自协商,这种结果是一端UP,一端DOWN或两端都不UP。但设备这种情况可以UP。
说明:
两个互连的电接口,一端设置成强制,一端设置成自协商,电口可以UP。但是强烈建议用户不要这样使用,否则可能会出现报文交互异常的现象。

 

4 千兆光口自协商

       千兆光口可以工作在强制和自协商两种模式。802.3规范中千兆光口只支持1000M速率,支持全双工(Full)和半双工(Half)两种双工模式。

千兆光口自协商过程:

1) 两端都设置为自协商模式

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

     双方互相发送/I/码流,一端接收到/I/码流后,认为对端是与自己相匹配的端口,直接设置本端端口为UP状态

注意:

      以太网交换机的两个千兆电口对接时,如果一端配置成强制千兆全双工模式,那么协商结果很可能是千兆全双工模式。这个结果和常识相悖。正常情况下,一端强制一端自协商的话,协商结果应该是半双工模式。
  之所以出现上面的情况,是因为这里的强制模式是假象,实际上端口依然工作在自协商模式,只是取消了千兆全双工以外的能力。这样,两个自协商模式的端口对接,协商出全双工模式也就是意料之中的事了。如果再深入一点点,就会产生一个疑问——为什么交换机要这样设定呢?这要从千兆电口的工作原理说起。
  两个千兆电口对接时,一端要工作在master模式,另一端则工作在slave模式。Slave一端不使用自己的时钟,而是从接收到的信号中恢复时钟,自己发送信号时就使用恢复出来的时钟。这样,可以有效保证双方的同步。但是,谁当master,谁又当slave呢?这就要通过自协商功能做出裁决。正是因为这个原因,IEEE 802.3ab-1999标准规定,自协商功能是1000BASE-T以太网的必选项。

 


  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHY以太网自动协商原理是指通过物理层传输介质适配器(PHY)之间的通信,自动协商和确定以太网的最佳传输速率、双工模式和帧长度等参数。 PHY以太网自动协商原理的步骤如下: 1. 连接建立:当两个网络设备(如交换机或路由器)通过以太网电缆连接时,它们的PHY适配器会开始自动协商。 2. 基本能力交换:连接建立后,PHY适配器会互相发送基本能力集信息,其中包括支持的最高速率、支持的双工模式(全双工或半双工)和最大帧长度等。 3. 速率协商PHY适配器会根据收到的基本能力集信息,选择两者都支持的最高速率。这意味着若其中一方适配器只支持较低速率,将会降低双方的传输速率以保持一致。 4. 双工模式协商:根据双方PHY适配器的基本能力集信息,双方会自动协商最佳的双工模式。如果两者都支持全双工模式,它们将采用全双工模式进行通信,否则将选择半双工模式。 5. 帧长度协商PHY适配器还会协商最大可接收的帧长度。这是为了避免MTU(最大传输单元)不匹配,导致数据包分片的问题。 通过PHY以太网自动协商原理,网络设备能够自动确定最佳的传输速率、双工模式和帧长度等参数,以优化以太网的性能和可靠性。这确保了网络设备之间的协同工作,提高了数据传输的效率。此外,PHY适配器还能在网络中发现并适应其他设备的能力,从而实现更好的兼容性和互操作性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值