什么是自动协商?
 
    802.3标准中的第28条是这样定义自动协商功能的:它允许一个设备向链路远端的设备通告自己所运行的工作方式,并且侦测远端通告的相应的运行方式。自动协商的目的是给共享一条链路的两台设备提供一种 交换信息的方法,并自动配置它们工作在最优能力下。
 
    照字面上来讲,自动协商就是一种在两台设备间达到可能的最大传输速率的方式。它允许设备用一种方式“讨论”可能的传输速率,然后选择双方可接受的最佳速率。它们使用叫做快速链路脉冲的FLP 交换各自传输能力的通告。FLP可以让对端知道源端的传输能力是怎样的。当交换FLP时,两个站点根据以下从高到低的优先级侦测双方共有的最佳方式。
  • 1000BASE-T全双工
  • 1000BASE-T
  • 100BASE-T2 全双工
  • 100BASE-TX 全双工
  • 100BASE-T2
  • 100BASE-T4
  • 100BASE-TX
  • 10BASE-T 全双工
  • 10BASE-T

    例如,A和B正在自动协商,并且A具有10/100/1000全半双工的能力,但是B只有10/100全半双工的能力,这样双方共有的最高链路能力为100,全双工。一旦双方进行自动协商,链路就会运行在双方能够支持的最佳能力下。
 
自动协商会产生什么问题?
    有关自动协商的大多数问题是由于有一方没有工作在自动协商方式。当一个站点工作在自动协商方式而另一方没有时,只有一方发送快速链路脉冲。另一方已经设定在特定的速率和双工方式下,这样就不会跟对端进行协商。他已经被强行设定,就不会再考虑他连接端的工作方式。
    由于强行设定的站点不会告诉正在协商的站点自己的速率和单双工方式,自动协商的站点就必须自己决定合适的速率和单双工方式来匹配对端,这叫做平行检测。协商站点监听从对端过来的链路脉冲能够辨别通信速率。10,100和1000Mbs以太网使用不同的信号方式,所以协商站点能识别对端的工作速率。
 
    然而,全半双工又是另外一回事了。因为强行设定的站点不进行协商,协商站点没有方法知道强行设定站点工作在哪种双工方式下。协商站点为了避免全半双工不匹配,根据802.3标准,它必需与强行站点使用相同的速率,但是工作在半双工方式下。不管速率如何(除了10Gig),半双工是以太网的默认方式。在许多情况下,这会产生全半双工不匹配问题。
为了两端都达到全双工方式,要么两端都自动协商,要么两端都强行设定。
务必不要一端自动协商,另一端强行设定。这会导致双工不匹配。建议把两端设置留在自动协商以减少人为错误。
 
以太网的自动协商总结:
1.默认情况下,使用铜线且支持多速率和双工配置的接口,都支持自动协商,通过自动协商选择链路的最佳速率和双工方式。
 
2.也可通过命令配置接口使用特定的速率和双工,并且在接口上配置了速率和双工后将禁用接口的自动协商。两端接口的速率和双工方式必须一致。如果速率不一致,接口状态将处于down/down; 如果双工方式不一致,接口状态会处于up/up,接口仍可以工作,但是接口工作效率低,工作性能差,会出现短暂的故障。
 
3.如果一端接口配置了特定的速率和双工(禁用自动协商),另一端没有配置时,另一端就无法通过自动协商确定速率和双工。但是它会检测到对端的速率,并且使用这一速率。对于双工模式则根据接口速率选择默认设置(有可能导致双工不匹配):
如果接口速率是10Mbit/s 或100M/s,默认使用半双工方式
如果接口速率是1000M/s或1G以上,默认使用全双工方式